@harness-engineering/core 0.12.0 → 0.13.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
@@ -1,8 +1,8 @@
1
1
  import { Result, WorkflowStep, WorkflowStepResult, Workflow, WorkflowResult, SkillLifecycleHooks, SkillContext, SkillResult, TurnContext, CICheckName, CIFailOnSeverity, CICheckReport, Roadmap, FeatureStatus } from '@harness-engineering/types';
2
2
  export * from '@harness-engineering/types';
3
3
  import { z } from 'zod';
4
- import { C as Collector, A as ArchConfig, a as ConstraintRule, M as MetricResult, b as ArchMetricCategory, c as ArchBaseline, d as ArchDiffResult, T as ThresholdConfig } from './matchers-D20x48U9.js';
5
- export { e as ArchBaselineSchema, f as ArchConfigSchema, g as ArchDiffResultSchema, h as ArchHandle, i as ArchMetricCategorySchema, j as ArchitectureOptions, k as CategoryBaseline, l as CategoryBaselineSchema, m as CategoryRegression, n as CategoryRegressionSchema, o as ConstraintRuleSchema, p as MetricResultSchema, q as ThresholdConfigSchema, V as Violation, r as ViolationSchema, s as archMatchers, t as archModule, u as architecture } from './matchers-D20x48U9.js';
4
+ import { C as Collector, A as ArchConfig, a as ConstraintRule, M as MetricResult, b as ArchMetricCategory, c as ArchBaseline, d as ArchDiffResult, T as ThresholdConfig } from './matchers-Dj1t5vpg.js';
5
+ export { e as ArchBaselineSchema, f as ArchConfigSchema, g as ArchDiffResultSchema, h as ArchHandle, i as ArchMetricCategorySchema, j as ArchitectureOptions, k as CategoryBaseline, l as CategoryBaselineSchema, m as CategoryRegression, n as CategoryRegressionSchema, o as ConstraintRuleSchema, p as MetricResultSchema, q as ThresholdConfigSchema, V as Violation, r as ViolationSchema, s as archMatchers, t as archModule, u as architecture } from './matchers-Dj1t5vpg.js';
6
6
 
7
7
  /**
8
8
  * Represents an error code for identifying specific error types.
@@ -522,12 +522,12 @@ declare const ManifestSchema: z.ZodObject<{
522
522
  schema: string;
523
523
  }>, "many">>;
524
524
  }, "strip", z.ZodTypeAny, {
525
- name: string;
526
525
  version: string;
526
+ name: string;
527
527
  include: string[];
528
528
  keywords: string[];
529
- layers?: Record<string, string[]> | undefined;
530
529
  description?: string | undefined;
530
+ layers?: Record<string, string[]> | undefined;
531
531
  minHarnessVersion?: string | undefined;
532
532
  boundaries?: {
533
533
  name: string;
@@ -536,11 +536,11 @@ declare const ManifestSchema: z.ZodObject<{
536
536
  schema: string;
537
537
  }[] | undefined;
538
538
  }, {
539
- name: string;
540
539
  version: string;
540
+ name: string;
541
541
  include: string[];
542
- layers?: Record<string, string[]> | undefined;
543
542
  description?: string | undefined;
543
+ layers?: Record<string, string[]> | undefined;
544
544
  minHarnessVersion?: string | undefined;
545
545
  keywords?: string[] | undefined;
546
546
  boundaries?: {
@@ -675,12 +675,12 @@ declare const BundleSchema: z.ZodObject<{
675
675
  schema: string;
676
676
  }>, "many">>;
677
677
  }, "strip", z.ZodTypeAny, {
678
- name: string;
679
678
  version: string;
679
+ name: string;
680
680
  include: string[];
681
681
  keywords: string[];
682
- layers?: Record<string, string[]> | undefined;
683
682
  description?: string | undefined;
683
+ layers?: Record<string, string[]> | undefined;
684
684
  minHarnessVersion?: string | undefined;
685
685
  boundaries?: {
686
686
  name: string;
@@ -689,11 +689,11 @@ declare const BundleSchema: z.ZodObject<{
689
689
  schema: string;
690
690
  }[] | undefined;
691
691
  }, {
692
- name: string;
693
692
  version: string;
693
+ name: string;
694
694
  include: string[];
695
- layers?: Record<string, string[]> | undefined;
696
695
  description?: string | undefined;
696
+ layers?: Record<string, string[]> | undefined;
697
697
  minHarnessVersion?: string | undefined;
698
698
  keywords?: string[] | undefined;
699
699
  boundaries?: {
@@ -799,15 +799,15 @@ declare const BundleSchema: z.ZodObject<{
799
799
  }>;
800
800
  contributions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
801
801
  }, "strip", z.ZodTypeAny, {
802
- name: string;
803
802
  version: string;
803
+ name: string;
804
804
  manifest: {
805
- name: string;
806
805
  version: string;
806
+ name: string;
807
807
  include: string[];
808
808
  keywords: string[];
809
- layers?: Record<string, string[]> | undefined;
810
809
  description?: string | undefined;
810
+ layers?: Record<string, string[]> | undefined;
811
811
  minHarnessVersion?: string | undefined;
812
812
  boundaries?: {
813
813
  name: string;
@@ -842,14 +842,14 @@ declare const BundleSchema: z.ZodObject<{
842
842
  minHarnessVersion?: string | undefined;
843
843
  contributions?: Record<string, unknown> | undefined;
844
844
  }, {
845
- name: string;
846
845
  version: string;
846
+ name: string;
847
847
  manifest: {
848
- name: string;
849
848
  version: string;
849
+ name: string;
850
850
  include: string[];
851
- layers?: Record<string, string[]> | undefined;
852
851
  description?: string | undefined;
852
+ layers?: Record<string, string[]> | undefined;
853
853
  minHarnessVersion?: string | undefined;
854
854
  keywords?: string[] | undefined;
855
855
  boundaries?: {
@@ -898,16 +898,16 @@ declare const LockfilePackageSchema: z.ZodObject<{
898
898
  integrity: z.ZodOptional<z.ZodString>;
899
899
  provenance: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
900
900
  }, "strip", z.ZodTypeAny, {
901
- source: string;
902
901
  version: string;
902
+ source: string;
903
903
  installedAt: string;
904
904
  contributions?: Record<string, unknown> | null | undefined;
905
905
  resolved?: string | undefined;
906
906
  integrity?: string | undefined;
907
907
  provenance?: string[] | undefined;
908
908
  }, {
909
- source: string;
910
909
  version: string;
910
+ source: string;
911
911
  installedAt: string;
912
912
  contributions?: Record<string, unknown> | null | undefined;
913
913
  resolved?: string | undefined;
@@ -926,16 +926,16 @@ declare const LockfileSchema: z.ZodEffects<z.ZodObject<{
926
926
  integrity: z.ZodOptional<z.ZodString>;
927
927
  provenance: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
928
928
  }, "strip", z.ZodTypeAny, {
929
- source: string;
930
929
  version: string;
930
+ source: string;
931
931
  installedAt: string;
932
932
  contributions?: Record<string, unknown> | null | undefined;
933
933
  resolved?: string | undefined;
934
934
  integrity?: string | undefined;
935
935
  provenance?: string[] | undefined;
936
936
  }, {
937
- source: string;
938
937
  version: string;
938
+ source: string;
939
939
  installedAt: string;
940
940
  contributions?: Record<string, unknown> | null | undefined;
941
941
  resolved?: string | undefined;
@@ -944,8 +944,8 @@ declare const LockfileSchema: z.ZodEffects<z.ZodObject<{
944
944
  }>>;
945
945
  }, "strip", z.ZodTypeAny, {
946
946
  packages: Record<string, {
947
- source: string;
948
947
  version: string;
948
+ source: string;
949
949
  installedAt: string;
950
950
  contributions?: Record<string, unknown> | null | undefined;
951
951
  resolved?: string | undefined;
@@ -956,8 +956,8 @@ declare const LockfileSchema: z.ZodEffects<z.ZodObject<{
956
956
  lockfileVersion?: 1 | undefined;
957
957
  }, {
958
958
  packages: Record<string, {
959
- source: string;
960
959
  version: string;
960
+ source: string;
961
961
  installedAt: string;
962
962
  contributions?: Record<string, unknown> | null | undefined;
963
963
  resolved?: string | undefined;
@@ -968,8 +968,8 @@ declare const LockfileSchema: z.ZodEffects<z.ZodObject<{
968
968
  lockfileVersion?: 1 | undefined;
969
969
  }>, {
970
970
  packages: Record<string, {
971
- source: string;
972
971
  version: string;
972
+ source: string;
973
973
  installedAt: string;
974
974
  contributions?: Record<string, unknown> | null | undefined;
975
975
  resolved?: string | undefined;
@@ -980,8 +980,8 @@ declare const LockfileSchema: z.ZodEffects<z.ZodObject<{
980
980
  lockfileVersion?: 1 | undefined;
981
981
  }, {
982
982
  packages: Record<string, {
983
- source: string;
984
983
  version: string;
984
+ source: string;
985
985
  installedAt: string;
986
986
  contributions?: Record<string, unknown> | null | undefined;
987
987
  resolved?: string | undefined;
@@ -1088,6 +1088,223 @@ declare function removeProvenance(lockfile: Lockfile, packageName: string): {
1088
1088
  */
1089
1089
  declare function removeContributions(config: Record<string, unknown>, contributions: Contributions): Record<string, unknown>;
1090
1090
 
1091
+ interface ComplexityThresholds {
1092
+ cyclomaticComplexity?: {
1093
+ error?: number;
1094
+ warn?: number;
1095
+ };
1096
+ nestingDepth?: {
1097
+ warn?: number;
1098
+ };
1099
+ functionLength?: {
1100
+ warn?: number;
1101
+ };
1102
+ parameterCount?: {
1103
+ warn?: number;
1104
+ };
1105
+ fileLength?: {
1106
+ info?: number;
1107
+ };
1108
+ hotspotPercentile?: {
1109
+ error?: number;
1110
+ };
1111
+ }
1112
+ interface ComplexityConfig {
1113
+ enabled?: boolean;
1114
+ thresholds?: ComplexityThresholds;
1115
+ }
1116
+ interface ComplexityViolation {
1117
+ file: string;
1118
+ function: string;
1119
+ line: number;
1120
+ metric: 'cyclomaticComplexity' | 'nestingDepth' | 'functionLength' | 'parameterCount' | 'fileLength' | 'hotspotScore';
1121
+ value: number;
1122
+ threshold: number;
1123
+ tier: 1 | 2 | 3;
1124
+ severity: 'error' | 'warning' | 'info';
1125
+ message?: string;
1126
+ }
1127
+ interface ComplexityReport {
1128
+ violations: ComplexityViolation[];
1129
+ stats: {
1130
+ filesAnalyzed: number;
1131
+ functionsAnalyzed: number;
1132
+ violationCount: number;
1133
+ errorCount: number;
1134
+ warningCount: number;
1135
+ infoCount: number;
1136
+ };
1137
+ }
1138
+
1139
+ interface CouplingThresholds {
1140
+ fanOut?: {
1141
+ warn?: number;
1142
+ };
1143
+ fanIn?: {
1144
+ info?: number;
1145
+ };
1146
+ couplingRatio?: {
1147
+ warn?: number;
1148
+ };
1149
+ transitiveDependencyDepth?: {
1150
+ info?: number;
1151
+ };
1152
+ }
1153
+ interface CouplingConfig {
1154
+ enabled?: boolean;
1155
+ thresholds?: CouplingThresholds;
1156
+ }
1157
+ interface CouplingViolation {
1158
+ file: string;
1159
+ metric: 'fanOut' | 'fanIn' | 'couplingRatio' | 'transitiveDependencyDepth';
1160
+ value: number;
1161
+ threshold: number;
1162
+ tier: 1 | 2 | 3;
1163
+ severity: 'error' | 'warning' | 'info';
1164
+ message?: string;
1165
+ }
1166
+ interface CouplingReport {
1167
+ violations: CouplingViolation[];
1168
+ stats: {
1169
+ filesAnalyzed: number;
1170
+ violationCount: number;
1171
+ warningCount: number;
1172
+ infoCount: number;
1173
+ };
1174
+ }
1175
+
1176
+ interface SizeBudgetConfig {
1177
+ enabled?: boolean;
1178
+ budgets: Record<string, {
1179
+ warn?: string;
1180
+ }>;
1181
+ dependencyWeight?: {
1182
+ info?: string;
1183
+ };
1184
+ }
1185
+ interface SizeBudgetViolation {
1186
+ package: string;
1187
+ currentSize: number;
1188
+ budgetSize: number;
1189
+ unit: 'bytes';
1190
+ tier: 2 | 3;
1191
+ severity: 'warning' | 'info';
1192
+ }
1193
+ interface SizeBudgetReport {
1194
+ violations: SizeBudgetViolation[];
1195
+ stats: {
1196
+ packagesChecked: number;
1197
+ violationCount: number;
1198
+ warningCount: number;
1199
+ infoCount: number;
1200
+ };
1201
+ }
1202
+
1203
+ interface ConfigPattern {
1204
+ name: string;
1205
+ description: string;
1206
+ severity: 'error' | 'warning';
1207
+ files: string[];
1208
+ rule: {
1209
+ type: 'must-export';
1210
+ names: string[];
1211
+ } | {
1212
+ type: 'must-export-default';
1213
+ kind?: 'class' | 'function' | 'object';
1214
+ } | {
1215
+ type: 'no-export';
1216
+ names: string[];
1217
+ } | {
1218
+ type: 'must-import';
1219
+ from: string;
1220
+ names?: string[];
1221
+ } | {
1222
+ type: 'no-import';
1223
+ from: string;
1224
+ } | {
1225
+ type: 'naming';
1226
+ match: string;
1227
+ convention: 'camelCase' | 'PascalCase' | 'UPPER_SNAKE' | 'kebab-case';
1228
+ } | {
1229
+ type: 'max-exports';
1230
+ count: number;
1231
+ } | {
1232
+ type: 'max-lines';
1233
+ count: number;
1234
+ } | {
1235
+ type: 'require-jsdoc';
1236
+ for: ('function' | 'class' | 'export')[];
1237
+ };
1238
+ message?: string;
1239
+ }
1240
+ interface PatternMatch {
1241
+ line: number;
1242
+ column?: number;
1243
+ message: string;
1244
+ suggestion?: string;
1245
+ }
1246
+ interface PatternConfig {
1247
+ patterns: ConfigPattern[];
1248
+ customPatterns?: Array<{
1249
+ name: string;
1250
+ description: string;
1251
+ severity: 'error' | 'warning';
1252
+ check: (...args: unknown[]) => PatternMatch[];
1253
+ }>;
1254
+ ignoreFiles?: string[];
1255
+ }
1256
+ interface PatternViolation {
1257
+ pattern: string;
1258
+ file: string;
1259
+ line: number;
1260
+ column?: number;
1261
+ severity: 'error' | 'warning';
1262
+ message: string;
1263
+ suggestion?: string;
1264
+ }
1265
+ interface PatternReport {
1266
+ violations: PatternViolation[];
1267
+ stats: {
1268
+ filesChecked: number;
1269
+ patternsApplied: number;
1270
+ violationCount: number;
1271
+ errorCount: number;
1272
+ warningCount: number;
1273
+ };
1274
+ passRate: number;
1275
+ }
1276
+
1277
+ interface DriftConfig {
1278
+ docPaths: string[];
1279
+ checkApiSignatures: boolean;
1280
+ checkExamples: boolean;
1281
+ checkStructure: boolean;
1282
+ ignorePatterns: string[];
1283
+ }
1284
+ interface DeadCodeConfig {
1285
+ entryPoints?: string[];
1286
+ includeTypes: boolean;
1287
+ includeInternals: boolean;
1288
+ ignorePatterns: string[];
1289
+ treatDynamicImportsAs: 'used' | 'unknown';
1290
+ }
1291
+ interface EntropyConfig {
1292
+ rootDir: string;
1293
+ parser?: LanguageParser;
1294
+ entryPoints?: string[];
1295
+ analyze: {
1296
+ drift?: boolean | Partial<DriftConfig>;
1297
+ deadCode?: boolean | Partial<DeadCodeConfig>;
1298
+ patterns?: boolean | PatternConfig;
1299
+ complexity?: boolean | Partial<ComplexityConfig>;
1300
+ coupling?: boolean | Partial<CouplingConfig>;
1301
+ sizeBudget?: boolean | Partial<SizeBudgetConfig>;
1302
+ };
1303
+ include?: string[];
1304
+ exclude?: string[];
1305
+ docPaths?: string[];
1306
+ }
1307
+
1091
1308
  interface InternalSymbol {
1092
1309
  name: string;
1093
1310
  type: 'function' | 'class' | 'variable' | 'type';
@@ -1151,36 +1368,7 @@ interface CodebaseSnapshot {
1151
1368
  config: EntropyConfig;
1152
1369
  buildTime: number;
1153
1370
  }
1154
- interface DriftConfig {
1155
- docPaths: string[];
1156
- checkApiSignatures: boolean;
1157
- checkExamples: boolean;
1158
- checkStructure: boolean;
1159
- ignorePatterns: string[];
1160
- }
1161
- interface DeadCodeConfig {
1162
- entryPoints?: string[];
1163
- includeTypes: boolean;
1164
- includeInternals: boolean;
1165
- ignorePatterns: string[];
1166
- treatDynamicImportsAs: 'used' | 'unknown';
1167
- }
1168
- interface EntropyConfig {
1169
- rootDir: string;
1170
- parser?: LanguageParser;
1171
- entryPoints?: string[];
1172
- analyze: {
1173
- drift?: boolean | Partial<DriftConfig>;
1174
- deadCode?: boolean | Partial<DeadCodeConfig>;
1175
- patterns?: boolean | PatternConfig;
1176
- complexity?: boolean | Partial<ComplexityConfig>;
1177
- coupling?: boolean | Partial<CouplingConfig>;
1178
- sizeBudget?: boolean | Partial<SizeBudgetConfig>;
1179
- };
1180
- include?: string[];
1181
- exclude?: string[];
1182
- docPaths?: string[];
1183
- }
1371
+
1184
1372
  interface DocumentationDrift {
1185
1373
  type: 'api-signature' | 'example-code' | 'structure';
1186
1374
  docFile: string;
@@ -1207,6 +1395,7 @@ interface DriftReport {
1207
1395
  };
1208
1396
  severity: 'high' | 'medium' | 'low' | 'none';
1209
1397
  }
1398
+
1210
1399
  interface DeadExport {
1211
1400
  file: string;
1212
1401
  name: string;
@@ -1228,218 +1417,43 @@ interface DeadInternal {
1228
1417
  type: 'function' | 'class' | 'variable';
1229
1418
  reason: 'NEVER_CALLED' | 'ONLY_CALLED_BY_DEAD';
1230
1419
  }
1231
- interface UnusedImport {
1232
- file: string;
1233
- line: number;
1234
- source: string;
1235
- specifiers: string[];
1236
- isFullyUnused: boolean;
1237
- }
1238
- interface ReachabilityNode {
1239
- file: string;
1240
- reachable: boolean;
1241
- importedBy: string[];
1242
- imports: string[];
1243
- }
1244
- interface DeadCodeReport {
1245
- deadExports: DeadExport[];
1246
- deadFiles: DeadFile[];
1247
- deadInternals: DeadInternal[];
1248
- unusedImports: UnusedImport[];
1249
- stats: {
1250
- filesAnalyzed: number;
1251
- entryPointsUsed: string[];
1252
- totalExports: number;
1253
- deadExportCount: number;
1254
- totalFiles: number;
1255
- deadFileCount: number;
1256
- estimatedDeadLines: number;
1257
- };
1258
- reachabilityTree?: ReachabilityNode;
1259
- }
1260
- interface ConfigPattern {
1261
- name: string;
1262
- description: string;
1263
- severity: 'error' | 'warning';
1264
- files: string[];
1265
- rule: {
1266
- type: 'must-export';
1267
- names: string[];
1268
- } | {
1269
- type: 'must-export-default';
1270
- kind?: 'class' | 'function' | 'object';
1271
- } | {
1272
- type: 'no-export';
1273
- names: string[];
1274
- } | {
1275
- type: 'must-import';
1276
- from: string;
1277
- names?: string[];
1278
- } | {
1279
- type: 'no-import';
1280
- from: string;
1281
- } | {
1282
- type: 'naming';
1283
- match: string;
1284
- convention: 'camelCase' | 'PascalCase' | 'UPPER_SNAKE' | 'kebab-case';
1285
- } | {
1286
- type: 'max-exports';
1287
- count: number;
1288
- } | {
1289
- type: 'max-lines';
1290
- count: number;
1291
- } | {
1292
- type: 'require-jsdoc';
1293
- for: ('function' | 'class' | 'export')[];
1294
- };
1295
- message?: string;
1296
- }
1297
- interface CodePattern {
1298
- name: string;
1299
- description: string;
1300
- severity: 'error' | 'warning';
1301
- check: (file: SourceFile, snapshot: CodebaseSnapshot) => PatternMatch[];
1302
- }
1303
- interface PatternMatch {
1304
- line: number;
1305
- column?: number;
1306
- message: string;
1307
- suggestion?: string;
1308
- }
1309
- interface PatternConfig {
1310
- patterns: ConfigPattern[];
1311
- customPatterns?: CodePattern[];
1312
- ignoreFiles?: string[];
1313
- }
1314
- interface PatternViolation {
1315
- pattern: string;
1316
- file: string;
1317
- line: number;
1318
- column?: number;
1319
- severity: 'error' | 'warning';
1320
- message: string;
1321
- suggestion?: string;
1322
- }
1323
- interface PatternReport {
1324
- violations: PatternViolation[];
1325
- stats: {
1326
- filesChecked: number;
1327
- patternsApplied: number;
1328
- violationCount: number;
1329
- errorCount: number;
1330
- warningCount: number;
1331
- };
1332
- passRate: number;
1333
- }
1334
- interface ComplexityThresholds {
1335
- cyclomaticComplexity?: {
1336
- error?: number;
1337
- warn?: number;
1338
- };
1339
- nestingDepth?: {
1340
- warn?: number;
1341
- };
1342
- functionLength?: {
1343
- warn?: number;
1344
- };
1345
- parameterCount?: {
1346
- warn?: number;
1347
- };
1348
- fileLength?: {
1349
- info?: number;
1350
- };
1351
- hotspotPercentile?: {
1352
- error?: number;
1353
- };
1354
- }
1355
- interface ComplexityConfig {
1356
- enabled?: boolean;
1357
- thresholds?: ComplexityThresholds;
1358
- }
1359
- interface ComplexityViolation {
1360
- file: string;
1361
- function: string;
1362
- line: number;
1363
- metric: 'cyclomaticComplexity' | 'nestingDepth' | 'functionLength' | 'parameterCount' | 'fileLength' | 'hotspotScore';
1364
- value: number;
1365
- threshold: number;
1366
- tier: 1 | 2 | 3;
1367
- severity: 'error' | 'warning' | 'info';
1368
- message?: string;
1369
- }
1370
- interface ComplexityReport {
1371
- violations: ComplexityViolation[];
1372
- stats: {
1373
- filesAnalyzed: number;
1374
- functionsAnalyzed: number;
1375
- violationCount: number;
1376
- errorCount: number;
1377
- warningCount: number;
1378
- infoCount: number;
1379
- };
1380
- }
1381
- interface CouplingThresholds {
1382
- fanOut?: {
1383
- warn?: number;
1384
- };
1385
- fanIn?: {
1386
- info?: number;
1387
- };
1388
- couplingRatio?: {
1389
- warn?: number;
1390
- };
1391
- transitiveDependencyDepth?: {
1392
- info?: number;
1393
- };
1394
- }
1395
- interface CouplingConfig {
1396
- enabled?: boolean;
1397
- thresholds?: CouplingThresholds;
1398
- }
1399
- interface CouplingViolation {
1400
- file: string;
1401
- metric: 'fanOut' | 'fanIn' | 'couplingRatio' | 'transitiveDependencyDepth';
1402
- value: number;
1403
- threshold: number;
1404
- tier: 1 | 2 | 3;
1405
- severity: 'error' | 'warning' | 'info';
1406
- message?: string;
1407
- }
1408
- interface CouplingReport {
1409
- violations: CouplingViolation[];
1410
- stats: {
1411
- filesAnalyzed: number;
1412
- violationCount: number;
1413
- warningCount: number;
1414
- infoCount: number;
1415
- };
1416
- }
1417
- interface SizeBudgetConfig {
1418
- enabled?: boolean;
1419
- budgets: Record<string, {
1420
- warn?: string;
1421
- }>;
1422
- dependencyWeight?: {
1423
- info?: string;
1424
- };
1420
+ interface UnusedImport {
1421
+ file: string;
1422
+ line: number;
1423
+ source: string;
1424
+ specifiers: string[];
1425
+ isFullyUnused: boolean;
1425
1426
  }
1426
- interface SizeBudgetViolation {
1427
- package: string;
1428
- currentSize: number;
1429
- budgetSize: number;
1430
- unit: 'bytes';
1431
- tier: 2 | 3;
1432
- severity: 'warning' | 'info';
1427
+ interface ReachabilityNode {
1428
+ file: string;
1429
+ reachable: boolean;
1430
+ importedBy: string[];
1431
+ imports: string[];
1433
1432
  }
1434
- interface SizeBudgetReport {
1435
- violations: SizeBudgetViolation[];
1433
+ interface DeadCodeReport {
1434
+ deadExports: DeadExport[];
1435
+ deadFiles: DeadFile[];
1436
+ deadInternals: DeadInternal[];
1437
+ unusedImports: UnusedImport[];
1436
1438
  stats: {
1437
- packagesChecked: number;
1438
- violationCount: number;
1439
- warningCount: number;
1440
- infoCount: number;
1439
+ filesAnalyzed: number;
1440
+ entryPointsUsed: string[];
1441
+ totalExports: number;
1442
+ deadExportCount: number;
1443
+ totalFiles: number;
1444
+ deadFileCount: number;
1445
+ estimatedDeadLines: number;
1441
1446
  };
1447
+ reachabilityTree?: ReachabilityNode;
1448
+ }
1449
+
1450
+ interface CodePattern {
1451
+ name: string;
1452
+ description: string;
1453
+ severity: 'error' | 'warning';
1454
+ check: (file: SourceFile, snapshot: CodebaseSnapshot) => PatternMatch[];
1442
1455
  }
1456
+
1443
1457
  type FixType = 'unused-imports' | 'dead-files' | 'dead-exports' | 'commented-code' | 'orphaned-deps' | 'forbidden-import-replacement' | 'import-ordering' | 'trailing-whitespace' | 'broken-links' | 'sort-imports';
1444
1458
  interface FixConfig {
1445
1459
  dryRun: boolean;
@@ -1514,6 +1528,7 @@ interface SuggestionReport {
1514
1528
  };
1515
1529
  estimatedEffort: 'trivial' | 'small' | 'medium' | 'large';
1516
1530
  }
1531
+
1517
1532
  interface AnalysisError {
1518
1533
  analyzer: 'drift' | 'deadCode' | 'patterns' | 'complexity' | 'coupling' | 'sizeBudget';
1519
1534
  error: EntropyError;
@@ -1837,12 +1852,12 @@ declare const PatternConfigSchema: z.ZodObject<{
1837
1852
  match: z.ZodString;
1838
1853
  convention: z.ZodEnum<["camelCase", "PascalCase", "UPPER_SNAKE", "kebab-case"]>;
1839
1854
  }, "strip", z.ZodTypeAny, {
1840
- match: string;
1841
1855
  type: "naming";
1856
+ match: string;
1842
1857
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
1843
1858
  }, {
1844
- match: string;
1845
1859
  type: "naming";
1860
+ match: string;
1846
1861
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
1847
1862
  }>, z.ZodObject<{
1848
1863
  type: z.ZodLiteral<"max-exports">;
@@ -1874,10 +1889,10 @@ declare const PatternConfigSchema: z.ZodObject<{
1874
1889
  }>]>;
1875
1890
  message: z.ZodOptional<z.ZodString>;
1876
1891
  }, "strip", z.ZodTypeAny, {
1892
+ severity: "error" | "warning";
1893
+ description: string;
1877
1894
  files: string[];
1878
1895
  name: string;
1879
- description: string;
1880
- severity: "error" | "warning";
1881
1896
  rule: {
1882
1897
  type: "must-export";
1883
1898
  names: string[];
@@ -1895,8 +1910,8 @@ declare const PatternConfigSchema: z.ZodObject<{
1895
1910
  type: "no-import";
1896
1911
  from: string;
1897
1912
  } | {
1898
- match: string;
1899
1913
  type: "naming";
1914
+ match: string;
1900
1915
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
1901
1916
  } | {
1902
1917
  type: "max-exports";
@@ -1910,10 +1925,10 @@ declare const PatternConfigSchema: z.ZodObject<{
1910
1925
  };
1911
1926
  message?: string | undefined;
1912
1927
  }, {
1928
+ severity: "error" | "warning";
1929
+ description: string;
1913
1930
  files: string[];
1914
1931
  name: string;
1915
- description: string;
1916
- severity: "error" | "warning";
1917
1932
  rule: {
1918
1933
  type: "must-export";
1919
1934
  names: string[];
@@ -1931,8 +1946,8 @@ declare const PatternConfigSchema: z.ZodObject<{
1931
1946
  type: "no-import";
1932
1947
  from: string;
1933
1948
  } | {
1934
- match: string;
1935
1949
  type: "naming";
1950
+ match: string;
1936
1951
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
1937
1952
  } | {
1938
1953
  type: "max-exports";
@@ -1950,10 +1965,10 @@ declare const PatternConfigSchema: z.ZodObject<{
1950
1965
  ignoreFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1951
1966
  }, "strip", z.ZodTypeAny, {
1952
1967
  patterns: {
1968
+ severity: "error" | "warning";
1969
+ description: string;
1953
1970
  files: string[];
1954
1971
  name: string;
1955
- description: string;
1956
- severity: "error" | "warning";
1957
1972
  rule: {
1958
1973
  type: "must-export";
1959
1974
  names: string[];
@@ -1971,8 +1986,8 @@ declare const PatternConfigSchema: z.ZodObject<{
1971
1986
  type: "no-import";
1972
1987
  from: string;
1973
1988
  } | {
1974
- match: string;
1975
1989
  type: "naming";
1990
+ match: string;
1976
1991
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
1977
1992
  } | {
1978
1993
  type: "max-exports";
@@ -1990,10 +2005,10 @@ declare const PatternConfigSchema: z.ZodObject<{
1990
2005
  ignoreFiles?: string[] | undefined;
1991
2006
  }, {
1992
2007
  patterns: {
2008
+ severity: "error" | "warning";
2009
+ description: string;
1993
2010
  files: string[];
1994
2011
  name: string;
1995
- description: string;
1996
- severity: "error" | "warning";
1997
2012
  rule: {
1998
2013
  type: "must-export";
1999
2014
  names: string[];
@@ -2011,8 +2026,8 @@ declare const PatternConfigSchema: z.ZodObject<{
2011
2026
  type: "no-import";
2012
2027
  from: string;
2013
2028
  } | {
2014
- match: string;
2015
2029
  type: "naming";
2030
+ match: string;
2016
2031
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2017
2032
  } | {
2018
2033
  type: "max-exports";
@@ -2131,12 +2146,12 @@ declare const EntropyConfigSchema: z.ZodObject<{
2131
2146
  match: z.ZodString;
2132
2147
  convention: z.ZodEnum<["camelCase", "PascalCase", "UPPER_SNAKE", "kebab-case"]>;
2133
2148
  }, "strip", z.ZodTypeAny, {
2134
- match: string;
2135
2149
  type: "naming";
2150
+ match: string;
2136
2151
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2137
2152
  }, {
2138
- match: string;
2139
2153
  type: "naming";
2154
+ match: string;
2140
2155
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2141
2156
  }>, z.ZodObject<{
2142
2157
  type: z.ZodLiteral<"max-exports">;
@@ -2168,10 +2183,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2168
2183
  }>]>;
2169
2184
  message: z.ZodOptional<z.ZodString>;
2170
2185
  }, "strip", z.ZodTypeAny, {
2186
+ severity: "error" | "warning";
2187
+ description: string;
2171
2188
  files: string[];
2172
2189
  name: string;
2173
- description: string;
2174
- severity: "error" | "warning";
2175
2190
  rule: {
2176
2191
  type: "must-export";
2177
2192
  names: string[];
@@ -2189,8 +2204,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2189
2204
  type: "no-import";
2190
2205
  from: string;
2191
2206
  } | {
2192
- match: string;
2193
2207
  type: "naming";
2208
+ match: string;
2194
2209
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2195
2210
  } | {
2196
2211
  type: "max-exports";
@@ -2204,10 +2219,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2204
2219
  };
2205
2220
  message?: string | undefined;
2206
2221
  }, {
2222
+ severity: "error" | "warning";
2223
+ description: string;
2207
2224
  files: string[];
2208
2225
  name: string;
2209
- description: string;
2210
- severity: "error" | "warning";
2211
2226
  rule: {
2212
2227
  type: "must-export";
2213
2228
  names: string[];
@@ -2225,8 +2240,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2225
2240
  type: "no-import";
2226
2241
  from: string;
2227
2242
  } | {
2228
- match: string;
2229
2243
  type: "naming";
2244
+ match: string;
2230
2245
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2231
2246
  } | {
2232
2247
  type: "max-exports";
@@ -2244,10 +2259,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2244
2259
  ignoreFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2245
2260
  }, "strip", z.ZodTypeAny, {
2246
2261
  patterns: {
2262
+ severity: "error" | "warning";
2263
+ description: string;
2247
2264
  files: string[];
2248
2265
  name: string;
2249
- description: string;
2250
- severity: "error" | "warning";
2251
2266
  rule: {
2252
2267
  type: "must-export";
2253
2268
  names: string[];
@@ -2265,8 +2280,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2265
2280
  type: "no-import";
2266
2281
  from: string;
2267
2282
  } | {
2268
- match: string;
2269
2283
  type: "naming";
2284
+ match: string;
2270
2285
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2271
2286
  } | {
2272
2287
  type: "max-exports";
@@ -2284,10 +2299,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2284
2299
  ignoreFiles?: string[] | undefined;
2285
2300
  }, {
2286
2301
  patterns: {
2302
+ severity: "error" | "warning";
2303
+ description: string;
2287
2304
  files: string[];
2288
2305
  name: string;
2289
- description: string;
2290
- severity: "error" | "warning";
2291
2306
  rule: {
2292
2307
  type: "must-export";
2293
2308
  names: string[];
@@ -2305,8 +2320,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2305
2320
  type: "no-import";
2306
2321
  from: string;
2307
2322
  } | {
2308
- match: string;
2309
2323
  type: "naming";
2324
+ match: string;
2310
2325
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2311
2326
  } | {
2312
2327
  type: "max-exports";
@@ -2340,10 +2355,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2340
2355
  } | undefined;
2341
2356
  patterns?: boolean | {
2342
2357
  patterns: {
2358
+ severity: "error" | "warning";
2359
+ description: string;
2343
2360
  files: string[];
2344
2361
  name: string;
2345
- description: string;
2346
- severity: "error" | "warning";
2347
2362
  rule: {
2348
2363
  type: "must-export";
2349
2364
  names: string[];
@@ -2361,8 +2376,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2361
2376
  type: "no-import";
2362
2377
  from: string;
2363
2378
  } | {
2364
- match: string;
2365
2379
  type: "naming";
2380
+ match: string;
2366
2381
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2367
2382
  } | {
2368
2383
  type: "max-exports";
@@ -2396,10 +2411,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2396
2411
  } | undefined;
2397
2412
  patterns?: boolean | {
2398
2413
  patterns: {
2414
+ severity: "error" | "warning";
2415
+ description: string;
2399
2416
  files: string[];
2400
2417
  name: string;
2401
- description: string;
2402
- severity: "error" | "warning";
2403
2418
  rule: {
2404
2419
  type: "must-export";
2405
2420
  names: string[];
@@ -2417,8 +2432,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2417
2432
  type: "no-import";
2418
2433
  from: string;
2419
2434
  } | {
2420
- match: string;
2421
2435
  type: "naming";
2436
+ match: string;
2422
2437
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2423
2438
  } | {
2424
2439
  type: "max-exports";
@@ -2458,10 +2473,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2458
2473
  } | undefined;
2459
2474
  patterns?: boolean | {
2460
2475
  patterns: {
2476
+ severity: "error" | "warning";
2477
+ description: string;
2461
2478
  files: string[];
2462
2479
  name: string;
2463
- description: string;
2464
- severity: "error" | "warning";
2465
2480
  rule: {
2466
2481
  type: "must-export";
2467
2482
  names: string[];
@@ -2479,8 +2494,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2479
2494
  type: "no-import";
2480
2495
  from: string;
2481
2496
  } | {
2482
- match: string;
2483
2497
  type: "naming";
2498
+ match: string;
2484
2499
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2485
2500
  } | {
2486
2501
  type: "max-exports";
@@ -2522,10 +2537,10 @@ declare const EntropyConfigSchema: z.ZodObject<{
2522
2537
  } | undefined;
2523
2538
  patterns?: boolean | {
2524
2539
  patterns: {
2540
+ severity: "error" | "warning";
2541
+ description: string;
2525
2542
  files: string[];
2526
2543
  name: string;
2527
- description: string;
2528
- severity: "error" | "warning";
2529
2544
  rule: {
2530
2545
  type: "must-export";
2531
2546
  names: string[];
@@ -2543,8 +2558,8 @@ declare const EntropyConfigSchema: z.ZodObject<{
2543
2558
  type: "no-import";
2544
2559
  from: string;
2545
2560
  } | {
2546
- match: string;
2547
2561
  type: "naming";
2562
+ match: string;
2548
2563
  convention: "camelCase" | "PascalCase" | "UPPER_SNAKE" | "kebab-case";
2549
2564
  } | {
2550
2565
  type: "max-exports";
@@ -3260,13 +3275,13 @@ declare const FailureEntrySchema: z.ZodObject<{
3260
3275
  description: z.ZodString;
3261
3276
  }, "strip", z.ZodTypeAny, {
3262
3277
  type: string;
3263
- description: string;
3264
3278
  date: string;
3279
+ description: string;
3265
3280
  skill: string;
3266
3281
  }, {
3267
3282
  type: string;
3268
- description: string;
3269
3283
  date: string;
3284
+ description: string;
3270
3285
  skill: string;
3271
3286
  }>;
3272
3287
  type FailureEntry = z.infer<typeof FailureEntrySchema>;
@@ -3329,14 +3344,14 @@ declare const GateResultSchema: z.ZodObject<{
3329
3344
  output: z.ZodOptional<z.ZodString>;
3330
3345
  duration: z.ZodOptional<z.ZodNumber>;
3331
3346
  }, "strip", z.ZodTypeAny, {
3332
- name: string;
3333
3347
  passed: boolean;
3348
+ name: string;
3334
3349
  command: string;
3335
3350
  output?: string | undefined;
3336
3351
  duration?: number | undefined;
3337
3352
  }, {
3338
- name: string;
3339
3353
  passed: boolean;
3354
+ name: string;
3340
3355
  command: string;
3341
3356
  output?: string | undefined;
3342
3357
  duration?: number | undefined;
@@ -3344,8 +3359,8 @@ declare const GateResultSchema: z.ZodObject<{
3344
3359
  }, "strip", z.ZodTypeAny, {
3345
3360
  passed: boolean;
3346
3361
  checks: {
3347
- name: string;
3348
3362
  passed: boolean;
3363
+ name: string;
3349
3364
  command: string;
3350
3365
  output?: string | undefined;
3351
3366
  duration?: number | undefined;
@@ -3353,8 +3368,8 @@ declare const GateResultSchema: z.ZodObject<{
3353
3368
  }, {
3354
3369
  passed: boolean;
3355
3370
  checks: {
3356
- name: string;
3357
3371
  passed: boolean;
3372
+ name: string;
3358
3373
  command: string;
3359
3374
  output?: string | undefined;
3360
3375
  duration?: number | undefined;
@@ -3417,13 +3432,13 @@ declare const HarnessStateSchema: z.ZodObject<{
3417
3432
  description: z.ZodString;
3418
3433
  status: z.ZodEnum<["open", "resolved"]>;
3419
3434
  }, "strip", z.ZodTypeAny, {
3435
+ status: "resolved" | "open";
3420
3436
  id: string;
3421
3437
  description: string;
3422
- status: "resolved" | "open";
3423
3438
  }, {
3439
+ status: "resolved" | "open";
3424
3440
  id: string;
3425
3441
  description: string;
3426
- status: "resolved" | "open";
3427
3442
  }>, "many">>;
3428
3443
  progress: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["pending", "in_progress", "complete"]>>>;
3429
3444
  lastSession: z.ZodOptional<z.ZodObject<{
@@ -3449,9 +3464,9 @@ declare const HarnessStateSchema: z.ZodObject<{
3449
3464
  decision: string;
3450
3465
  }[];
3451
3466
  blockers: {
3467
+ status: "resolved" | "open";
3452
3468
  id: string;
3453
3469
  description: string;
3454
- status: "resolved" | "open";
3455
3470
  }[];
3456
3471
  schemaVersion: 1;
3457
3472
  position: {
@@ -3473,9 +3488,9 @@ declare const HarnessStateSchema: z.ZodObject<{
3473
3488
  decision: string;
3474
3489
  }[] | undefined;
3475
3490
  blockers?: {
3491
+ status: "resolved" | "open";
3476
3492
  id: string;
3477
3493
  description: string;
3478
- status: "resolved" | "open";
3479
3494
  }[] | undefined;
3480
3495
  position?: {
3481
3496
  task?: string | undefined;
@@ -3492,20 +3507,80 @@ declare const HarnessStateSchema: z.ZodObject<{
3492
3507
  type HarnessState = z.infer<typeof HarnessStateSchema>;
3493
3508
  declare const DEFAULT_STATE: HarnessState;
3494
3509
 
3495
- declare function loadState(projectPath: string, stream?: string): Promise<Result<HarnessState, Error>>;
3496
- declare function saveState(projectPath: string, state: HarnessState, stream?: string): Promise<Result<void, Error>>;
3497
- declare function appendLearning(projectPath: string, learning: string, skillName?: string, outcome?: string, stream?: string): Promise<Result<void, Error>>;
3498
- declare function loadRelevantLearnings(projectPath: string, skillName?: string, stream?: string): Promise<Result<string[], Error>>;
3499
- declare function appendFailure(projectPath: string, description: string, skillName: string, type: string, stream?: string): Promise<Result<void, Error>>;
3500
- declare function loadFailures(projectPath: string, stream?: string): Promise<Result<Array<{
3510
+ declare function loadState(projectPath: string, stream?: string, session?: string): Promise<Result<HarnessState, Error>>;
3511
+ declare function saveState(projectPath: string, state: HarnessState, stream?: string, session?: string): Promise<Result<void, Error>>;
3512
+
3513
+ declare function clearLearningsCache(): void;
3514
+ declare function appendLearning(projectPath: string, learning: string, skillName?: string, outcome?: string, stream?: string, session?: string): Promise<Result<void, Error>>;
3515
+ /**
3516
+ * Parse date from a learning entry. Returns the date string or null.
3517
+ * Entries look like: "- **2026-03-25 [skill:X]:** content"
3518
+ * or heading format: "## 2026-03-25 — Task 3: ..."
3519
+ */
3520
+ declare function parseDateFromEntry(entry: string): string | null;
3521
+ interface LearningPattern {
3522
+ tag: string;
3523
+ count: number;
3524
+ entries: string[];
3525
+ }
3526
+ /**
3527
+ * Analyze learning entries for recurring patterns.
3528
+ * Groups entries by [skill:X] and [outcome:Y] tags.
3529
+ * Returns patterns where 3+ entries share the same tag.
3530
+ */
3531
+ declare function analyzeLearningPatterns(entries: string[]): LearningPattern[];
3532
+ interface BudgetedLearningsOptions {
3533
+ intent: string;
3534
+ tokenBudget?: number;
3535
+ skill?: string;
3536
+ session?: string;
3537
+ stream?: string;
3538
+ }
3539
+ /**
3540
+ * Load learnings with token budget, two-tier loading, recency sorting, and relevance filtering.
3541
+ *
3542
+ * - Session learnings (primary): always loaded first if session is provided
3543
+ * - Global learnings (secondary): loaded to fill remaining budget
3544
+ * - Sorted by recency (newest first) within each tier
3545
+ * - Filtered by relevance to intent (matching entries prioritized)
3546
+ * - Capped at tokenBudget (default 1000 tokens)
3547
+ */
3548
+ declare function loadBudgetedLearnings(projectPath: string, options: BudgetedLearningsOptions): Promise<Result<string[], Error>>;
3549
+ declare function loadRelevantLearnings(projectPath: string, skillName?: string, stream?: string, session?: string): Promise<Result<string[], Error>>;
3550
+ interface PruneResult {
3551
+ kept: number;
3552
+ archived: number;
3553
+ patterns: LearningPattern[];
3554
+ }
3555
+ /**
3556
+ * Archive learning entries to .harness/learnings-archive/{YYYY-MM}.md.
3557
+ * Appends to existing archive file if one exists for the current month.
3558
+ */
3559
+ declare function archiveLearnings(projectPath: string, entries: string[], stream?: string): Promise<Result<void, Error>>;
3560
+ /**
3561
+ * Prune global learnings: analyze patterns, archive old entries, keep 20 most recent.
3562
+ *
3563
+ * Pruning triggers when:
3564
+ * - Entry count exceeds 30, OR
3565
+ * - Entries older than 14 days exist AND total count exceeds 20
3566
+ *
3567
+ * Returns the prune result with pattern analysis and counts.
3568
+ */
3569
+ declare function pruneLearnings(projectPath: string, stream?: string): Promise<Result<PruneResult, Error>>;
3570
+
3571
+ declare function clearFailuresCache(): void;
3572
+ declare function appendFailure(projectPath: string, description: string, skillName: string, type: string, stream?: string, session?: string): Promise<Result<void, Error>>;
3573
+ declare function loadFailures(projectPath: string, stream?: string, session?: string): Promise<Result<Array<{
3501
3574
  date: string;
3502
3575
  skill: string;
3503
3576
  type: string;
3504
3577
  description: string;
3505
3578
  }>, Error>>;
3506
- declare function archiveFailures(projectPath: string, stream?: string): Promise<Result<void, Error>>;
3507
- declare function saveHandoff(projectPath: string, handoff: Handoff, stream?: string): Promise<Result<void, Error>>;
3508
- declare function loadHandoff(projectPath: string, stream?: string): Promise<Result<Handoff | null, Error>>;
3579
+ declare function archiveFailures(projectPath: string, stream?: string, session?: string): Promise<Result<void, Error>>;
3580
+
3581
+ declare function saveHandoff(projectPath: string, handoff: Handoff, stream?: string, session?: string): Promise<Result<void, Error>>;
3582
+ declare function loadHandoff(projectPath: string, stream?: string, session?: string): Promise<Result<Handoff | null, Error>>;
3583
+
3509
3584
  declare function runMechanicalGate(projectPath: string): Promise<Result<GateResult, Error>>;
3510
3585
 
3511
3586
  declare const StreamInfoSchema: z.ZodObject<{
@@ -3593,6 +3668,53 @@ declare function archiveStream(projectPath: string, name: string): Promise<Resul
3593
3668
  declare function getStreamForBranch(index: StreamIndex, branch: string): string | null;
3594
3669
  declare function migrateToStreams(projectPath: string): Promise<Result<void, Error>>;
3595
3670
 
3671
+ /**
3672
+ * Resolves the directory path for a session.
3673
+ * Optionally creates the directory if it does not exist.
3674
+ */
3675
+ declare function resolveSessionDir(projectPath: string, sessionSlug: string, options?: {
3676
+ create?: boolean;
3677
+ }): Result<string, Error>;
3678
+ /**
3679
+ * Updates the session index.md file with an entry for the given session.
3680
+ * Creates the file if it does not exist.
3681
+ * Updates existing entries in-place (per-slug line ownership).
3682
+ */
3683
+ declare function updateSessionIndex(projectPath: string, sessionSlug: string, description: string): void;
3684
+
3685
+ /**
3686
+ * Data required to write a session summary.
3687
+ * Required fields: session, lastActive, skill, status, keyContext, nextStep.
3688
+ * Optional fields: phase, spec, plan.
3689
+ */
3690
+ interface SessionSummaryData {
3691
+ session: string;
3692
+ lastActive: string;
3693
+ skill: string;
3694
+ phase?: string;
3695
+ status: string;
3696
+ spec?: string;
3697
+ plan?: string;
3698
+ keyContext: string;
3699
+ nextStep: string;
3700
+ }
3701
+ /**
3702
+ * Writes a session summary to the session directory and updates the session index.
3703
+ * Creates the session directory if it does not exist.
3704
+ * Overwrites any existing summary for this session.
3705
+ */
3706
+ declare function writeSessionSummary(projectPath: string, sessionSlug: string, data: SessionSummaryData): Result<void, Error>;
3707
+ /**
3708
+ * Loads a session's summary.md contents.
3709
+ * Returns the raw markdown string, or null if the file does not exist.
3710
+ */
3711
+ declare function loadSessionSummary(projectPath: string, sessionSlug: string): Result<string | null, Error>;
3712
+ /**
3713
+ * Lists active sessions by reading the session index file.
3714
+ * Returns the raw markdown contents of index.md, or null if it does not exist.
3715
+ */
3716
+ declare function listActiveSessions(projectPath: string): Result<string | null, Error>;
3717
+
3596
3718
  type StepExecutor = (step: WorkflowStep, previousArtifact?: string) => Promise<WorkflowStepResult>;
3597
3719
  declare function executeWorkflow(workflow: Workflow, executor: StepExecutor): Promise<WorkflowResult>;
3598
3720
 
@@ -3724,9 +3846,9 @@ declare const SecurityConfigSchema: z.ZodObject<{
3724
3846
  } | undefined;
3725
3847
  }>>;
3726
3848
  }, "strip", z.ZodTypeAny, {
3727
- rules: Record<string, "error" | "warning" | "info" | "off">;
3728
3849
  enabled: boolean;
3729
3850
  strict: boolean;
3851
+ rules: Record<string, "error" | "warning" | "info" | "off">;
3730
3852
  exclude: string[];
3731
3853
  external?: {
3732
3854
  semgrep?: {
@@ -3738,9 +3860,9 @@ declare const SecurityConfigSchema: z.ZodObject<{
3738
3860
  } | undefined;
3739
3861
  } | undefined;
3740
3862
  }, {
3741
- rules?: Record<string, "error" | "warning" | "info" | "off"> | undefined;
3742
3863
  enabled?: boolean | undefined;
3743
3864
  strict?: boolean | undefined;
3865
+ rules?: Record<string, "error" | "warning" | "info" | "off"> | undefined;
3744
3866
  exclude?: string[] | undefined;
3745
3867
  external?: {
3746
3868
  semgrep?: {
@@ -3797,35 +3919,6 @@ interface RunCIChecksInput {
3797
3919
  }
3798
3920
  declare function runCIChecks(input: RunCIChecksInput): Promise<Result<CICheckReport, Error>>;
3799
3921
 
3800
- /**
3801
- * An index of mechanical findings, queryable by file + line range.
3802
- * Used in Phase 5 (VALIDATE) to determine whether an AI-produced finding
3803
- * overlaps with a mechanical finding and should be excluded.
3804
- */
3805
- declare class ExclusionSet {
3806
- /** Findings indexed by file path for O(1) file lookup */
3807
- private byFile;
3808
- private allFindings;
3809
- constructor(findings: MechanicalFinding[]);
3810
- /**
3811
- * Returns true if any mechanical finding covers the given file + line range.
3812
- *
3813
- * A mechanical finding "covers" a range if:
3814
- * - The file matches, AND
3815
- * - The finding has no line (file-level finding — covers everything), OR
3816
- * - The finding's line falls within [startLine, endLine] inclusive.
3817
- */
3818
- isExcluded(file: string, lineRange: [number, number]): boolean;
3819
- /** Number of findings in the set */
3820
- get size(): number;
3821
- /** Returns a copy of all findings */
3822
- getFindings(): MechanicalFinding[];
3823
- }
3824
- /**
3825
- * Build an ExclusionSet from mechanical findings.
3826
- */
3827
- declare function buildExclusionSet(findings: MechanicalFinding[]): ExclusionSet;
3828
-
3829
3922
  /**
3830
3923
  * A finding produced by a mechanical check (lint, typecheck, security scan, harness validate/deps/docs).
3831
3924
  * Used as input to the exclusion set and reported when the pipeline stops due to mechanical failures.
@@ -3876,6 +3969,7 @@ interface MechanicalCheckOptions {
3876
3969
  /** Only scan these files for security (e.g., changed files from a PR) */
3877
3970
  changedFiles?: string[];
3878
3971
  }
3972
+
3879
3973
  /**
3880
3974
  * Change type detected from commit message prefix or diff heuristic.
3881
3975
  */
@@ -3993,6 +4087,7 @@ interface ContextScopeOptions {
3993
4087
  /** Pre-gathered commit history entries. If provided, included in all bundles. */
3994
4088
  commitHistory?: CommitHistoryEntry[];
3995
4089
  }
4090
+
3996
4091
  /**
3997
4092
  * Model tier — abstract label resolved at runtime from project config.
3998
4093
  * - fast: haiku-class (gate, context phases)
@@ -4071,6 +4166,7 @@ interface FanOutOptions {
4071
4166
  /** Context bundles from Phase 3 (one per domain) */
4072
4167
  bundles: ContextBundle[];
4073
4168
  }
4169
+
4074
4170
  /**
4075
4171
  * Assessment decision — determines exit code and PR review action.
4076
4172
  */
@@ -4145,6 +4241,36 @@ interface EligibilityResult {
4145
4241
  /** Human-readable reason when not eligible */
4146
4242
  reason?: string;
4147
4243
  }
4244
+
4245
+ /**
4246
+ * An index of mechanical findings, queryable by file + line range.
4247
+ * Used in Phase 5 (VALIDATE) to determine whether an AI-produced finding
4248
+ * overlaps with a mechanical finding and should be excluded.
4249
+ */
4250
+ declare class ExclusionSet {
4251
+ /** Findings indexed by file path for O(1) file lookup */
4252
+ private byFile;
4253
+ private allFindings;
4254
+ constructor(findings: MechanicalFinding[]);
4255
+ /**
4256
+ * Returns true if any mechanical finding covers the given file + line range.
4257
+ *
4258
+ * A mechanical finding "covers" a range if:
4259
+ * - The file matches, AND
4260
+ * - The finding has no line (file-level finding — covers everything), OR
4261
+ * - The finding's line falls within [startLine, endLine] inclusive.
4262
+ */
4263
+ isExcluded(file: string, lineRange: [number, number]): boolean;
4264
+ /** Number of findings in the set */
4265
+ get size(): number;
4266
+ /** Returns a copy of all findings */
4267
+ getFindings(): MechanicalFinding[];
4268
+ }
4269
+ /**
4270
+ * Build an ExclusionSet from mechanical findings.
4271
+ */
4272
+ declare function buildExclusionSet(findings: MechanicalFinding[]): ExclusionSet;
4273
+
4148
4274
  /**
4149
4275
  * Configuration mapping abstract model tiers to concrete model identifiers.
4150
4276
  * All tiers are optional — unmapped tiers resolve to undefined (use current model).
@@ -4552,12 +4678,12 @@ declare const QuestionSchema: z.ZodObject<{
4552
4678
  default: z.ZodOptional<z.ZodString>;
4553
4679
  }, "strip", z.ZodTypeAny, {
4554
4680
  text: string;
4555
- default?: string | undefined;
4556
4681
  options?: string[] | undefined;
4682
+ default?: string | undefined;
4557
4683
  }, {
4558
4684
  text: string;
4559
- default?: string | undefined;
4560
4685
  options?: string[] | undefined;
4686
+ default?: string | undefined;
4561
4687
  }>;
4562
4688
  declare const ConfirmationSchema: z.ZodObject<{
4563
4689
  text: z.ZodString;
@@ -4601,12 +4727,12 @@ declare const EmitInteractionInputSchema: z.ZodObject<{
4601
4727
  default: z.ZodOptional<z.ZodString>;
4602
4728
  }, "strip", z.ZodTypeAny, {
4603
4729
  text: string;
4604
- default?: string | undefined;
4605
4730
  options?: string[] | undefined;
4731
+ default?: string | undefined;
4606
4732
  }, {
4607
4733
  text: string;
4608
- default?: string | undefined;
4609
4734
  options?: string[] | undefined;
4735
+ default?: string | undefined;
4610
4736
  }>>;
4611
4737
  confirmation: z.ZodOptional<z.ZodObject<{
4612
4738
  text: z.ZodString;
@@ -4646,8 +4772,8 @@ declare const EmitInteractionInputSchema: z.ZodObject<{
4646
4772
  stream?: string | undefined;
4647
4773
  question?: {
4648
4774
  text: string;
4649
- default?: string | undefined;
4650
4775
  options?: string[] | undefined;
4776
+ default?: string | undefined;
4651
4777
  } | undefined;
4652
4778
  confirmation?: {
4653
4779
  text: string;
@@ -4667,8 +4793,8 @@ declare const EmitInteractionInputSchema: z.ZodObject<{
4667
4793
  stream?: string | undefined;
4668
4794
  question?: {
4669
4795
  text: string;
4670
- default?: string | undefined;
4671
4796
  options?: string[] | undefined;
4797
+ default?: string | undefined;
4672
4798
  } | undefined;
4673
4799
  confirmation?: {
4674
4800
  text: string;
@@ -4793,4 +4919,4 @@ declare function getUpdateNotification(currentVersion: string): string | null;
4793
4919
  */
4794
4920
  declare const VERSION = "0.11.0";
4795
4921
 
4796
- export { AGENT_DESCRIPTORS, ARCHITECTURE_DESCRIPTOR, type AST, type ActionContext, type ActionEvent, type ActionEventHandler, type ActionEventType, type ActionResult, type ActionSink, type ActionTracker, type ActionType, type AgentAction, AgentActionEmitter, type AgentExecutor, type AgentMapLink, type AgentMapSection, type AgentMapValidation, type AgentProcess, type AgentReviewResult, type AgentType, type AgentsMapConfig, ArchBaseline, ArchBaselineManager, ArchConfig, ArchDiffResult, ArchMetricCategory, BUG_DETECTION_DESCRIPTOR, type BaseError, type Baseline, BaselineManager, type BaselinesFile, type BenchmarkResult, type BenchmarkRunOptions, BenchmarkRunner, type BlueprintData, BlueprintGenerator, type BlueprintModule, type BlueprintOptions, type BoundaryDefinition, type BoundaryValidation, type BoundaryValidator, type BoundaryViolation, type BrokenLink, type Bundle, type BundleConstraints, BundleConstraintsSchema, BundleSchema, COMPLIANCE_DESCRIPTOR, type ChangeType, type ChangedFile, ChecklistBuilder, type CircularDependency, CircularDepsCollector, type CircularDepsResult, type CleanupFinding, type CodeBlock, type CodeChanges, type CodePattern, type CodeReference, type CodebaseSnapshot, Collector, type CommentedCodeBlock, type CommitFormat, type CommitHistoryEntry, type CommitValidation, ComplexityCollector, type ComplexityConfig, type ComplexityReport, type ComplexityThresholds, type ComplexityViolation, type ConfigError, type ConfigPattern, type Confirmation, ConfirmationSchema, type ConflictReport, ConsoleSink, type ConstraintError, type ConstraintNodeStore, ConstraintRule, type Content, ContentPipeline, type ContextBundle, type ContextError, type ContextFile, type ContextFilterResult, type ContextScopeOptions, type Contributions, ContributionsSchema, type Convention, CouplingCollector, type CouplingConfig, type CouplingReport, type CouplingThresholds, type CouplingViolation, type CoverageOptions, type CoverageReport, type CriticalPathEntry, CriticalPathResolver, type CriticalPathSet, type CustomRule, type CustomRuleResult, DEFAULT_PROVIDER_TIERS, DEFAULT_SECURITY_CONFIG, DEFAULT_STATE, DEFAULT_STREAM_INDEX, type DeadCodeConfig, type DeadCodeReport, type DeadExport, type DeadFile, type DeadInternal, type DeduplicateFindingsOptions, DepDepthCollector, type DependencyEdge, type DependencyGraph, type DependencyValidation, type DependencyViolation, type DetectStaleResult, type DiffInfo, type DocumentationDrift, type DocumentationFile, type DocumentationGap, type DriftConfig, type DriftReport, type EligibilityResult, type EmitInteractionInput, EmitInteractionInputSchema, EntropyAnalyzer, type EntropyConfig, EntropyConfigSchema, type EntropyError, type EntropyReport, ExclusionSet, type ExecutorHealth, type Export, type ExportMap, type FailureEntry, FailureEntrySchema, type FanOutOptions, type FeedbackAgentConfig, type FeedbackConfig, type FeedbackError$1 as FeedbackError, type FileCategory, FileSink, type FindingSeverity, type Fix, type FixConfig, type FixResult, type FixType, ForbiddenImportCollector, type ForbiddenImportViolation, type ForbiddenPattern, type GateConfig, GateConfigSchema, type GateResult, GateResultSchema, type GenerationSection, type GitHubInlineComment, type GraphAdapter, type GraphComplexityData, type GraphCouplingData, type GraphCoverageData, type GraphCriticalPathData, type GraphDependencyData, type GraphHarnessCheckData, type GraphImpactData, type Handoff, HandoffSchema, type HarnessState, HarnessStateSchema, type HealthCheckResult, type Hotspot, type HotspotContext, type Import, type InlineReference, type IntegrityReport, type InteractionType, InteractionTypeSchema, type InternalSymbol, type JSDocComment, type LanguageParser, type Layer, type LayerConfig, LayerViolationCollector, type Lockfile, type LockfilePackage, LockfilePackageSchema, LockfileSchema, type LogEntry, type LogFilter, type Manifest, ManifestSchema, type MechanicalCheckOptions, type MechanicalCheckResult, type MechanicalCheckStatus, type MechanicalFinding, type MergeResult, type Metric, MetricResult, type ModelProvider, type ModelTier, type ModelTierConfig, type ModuleDependency, ModuleSizeCollector, NoOpExecutor, NoOpSink, NoOpTelemetryAdapter, type OrphanedDep, type ParseError, type PatternConfig, PatternConfigSchema, type PatternMatch, type PatternReport, type PatternViolation, type PeerReview, type PeerReviewOptions, type PipelineContext, type PipelineFlags, type PipelineOptions, type PipelineResult, type PrMetadata, type PriorReview, ProjectScanner, type ProviderDefaults, type Question, QuestionSchema, REQUIRED_SECTIONS, type ReachabilityNode, RegressionDetector, type RegressionReport, type RegressionResult, type ReviewAgentDescriptor, type ReviewAssessment, type ReviewChecklist, type ReviewComment, type ReviewContext, type ReviewDomain, type ReviewFinding, type ReviewItem, type ReviewOutputOptions, type ReviewPipelineResult, type ReviewStrength, type RuleOverride, RuleRegistry, type RunCIChecksInput, type RunPipelineOptions, SECURITY_DESCRIPTOR, type SafetyLevel, type ScanResult, type SecurityCategory, type SecurityConfidence, type SecurityConfig, SecurityConfigSchema, type SecurityFinding, type SecurityRule, SecurityScanner, type SecuritySeverity, type SelfReviewConfig, SharableBoundaryConfigSchema, SharableForbiddenImportSchema, SharableLayerSchema, SharableSecurityRulesSchema, type SizeBudgetConfig, type SizeBudgetReport, type SizeBudgetViolation, type SkillExecutor, type SourceFile, type Span, type SpanEvent, type StaleConstraint, type StepExecutor, type StreamIndex, StreamIndexSchema, type StreamInfo, StreamInfoSchema, type StructureValidation, type Suggestion, type SuggestionReport, type SyncChange, type SyncOptions, type TelemetryAdapter, type TelemetryHealth, ThresholdConfig, type TimeRange, type TokenBudget, type TokenBudgetOverrides, type Trace, type Transition, TransitionSchema, type TurnExecutor, TypeScriptParser, type UnusedImport, type UpdateCheckState, VERSION, type ValidateFindingsOptions, type ValidationError, type WorkflowPhase, addProvenance, analyzeDiff, appendFailure, appendLearning, applyFixes, applyHotspotDowngrade, archiveFailures, archiveStream, buildDependencyGraph, buildExclusionSet, buildSnapshot, checkDocCoverage, checkEligibility, classifyFinding, configureFeedback, constraintRuleId, contextBudget, contextFilter, createBoundaryValidator, createCommentedCodeFixes, createError, createFixes, createForbiddenImportFixes, createOrphanedDepFixes, createParseError, createSelfReview, createStream, cryptoRules, deduplicateCleanupFindings, deduplicateFindings, deepMergeConstraints, defaultCollectors, defineLayer, deserializationRules, detectChangeType, detectCircularDeps, detectCircularDepsInFiles, detectComplexityViolations, detectCouplingViolations, detectDeadCode, detectDocDrift, detectPatternViolations, detectSizeBudgetViolations, detectStack, detectStaleConstraints, determineAssessment, diff, executeWorkflow, expressRules, extractBundle, extractMarkdownLinks, extractSections, fanOutReview, formatFindingBlock, formatGitHubComment, formatGitHubSummary, formatTerminalOutput, generateAgentsMap, generateSuggestions, getActionEmitter, getExitCode, getFeedbackConfig, getPhaseCategories, getStreamForBranch, getUpdateNotification, goRules, injectionRules, isSmallSuggestion, isUpdateCheckEnabled, listStreams, loadFailures, loadHandoff, loadRelevantLearnings, loadState, loadStreamIndex, logAgentAction, migrateToStreams, networkRules, nodeRules, parseDiff, parseManifest, parseRoadmap, parseSecurityConfig, parseSize, pathTraversalRules, previewFix, reactRules, readCheckState, readLockfile, removeContributions, removeProvenance, requestMultiplePeerReviews, requestPeerReview, resetFeedbackConfig, resolveFileToLayer, resolveModelTier, resolveRuleSeverity, resolveStreamPath, resolveThresholds, runAll, runArchitectureAgent, runBugDetectionAgent, runCIChecks, runComplianceAgent, runMechanicalChecks, runMechanicalGate, runMultiTurnPipeline, runPipeline, runReviewPipeline, runSecurityAgent, saveHandoff, saveState, saveStreamIndex, scopeContext, secretRules, serializeRoadmap, setActiveStream, shouldRunCheck, spawnBackgroundCheck, syncConstraintNodes, syncRoadmap, touchStream, trackAction, validateAgentsMap, validateBoundaries, validateCommitMessage, validateConfig, validateDependencies, validateFileStructure, validateFindings, validateKnowledgeMap, validatePatternConfig, violationId, writeConfig, writeLockfile, xssRules };
4922
+ export { AGENT_DESCRIPTORS, ARCHITECTURE_DESCRIPTOR, type AST, type ActionContext, type ActionEvent, type ActionEventHandler, type ActionEventType, type ActionResult, type ActionSink, type ActionTracker, type ActionType, type AgentAction, AgentActionEmitter, type AgentExecutor, type AgentMapLink, type AgentMapSection, type AgentMapValidation, type AgentProcess, type AgentReviewResult, type AgentType, type AgentsMapConfig, ArchBaseline, ArchBaselineManager, ArchConfig, ArchDiffResult, ArchMetricCategory, BUG_DETECTION_DESCRIPTOR, type BaseError, type Baseline, BaselineManager, type BaselinesFile, type BenchmarkResult, type BenchmarkRunOptions, BenchmarkRunner, type BlueprintData, BlueprintGenerator, type BlueprintModule, type BlueprintOptions, type BoundaryDefinition, type BoundaryValidation, type BoundaryValidator, type BoundaryViolation, type BrokenLink, type BudgetedLearningsOptions, type Bundle, type BundleConstraints, BundleConstraintsSchema, BundleSchema, COMPLIANCE_DESCRIPTOR, type ChangeType, type ChangedFile, ChecklistBuilder, type CircularDependency, CircularDepsCollector, type CircularDepsResult, type CleanupFinding, type CodeBlock, type CodeChanges, type CodePattern, type CodeReference, type CodebaseSnapshot, Collector, type CommentedCodeBlock, type CommitFormat, type CommitHistoryEntry, type CommitValidation, ComplexityCollector, type ComplexityConfig, type ComplexityReport, type ComplexityThresholds, type ComplexityViolation, type ConfigError, type ConfigPattern, type Confirmation, ConfirmationSchema, type ConflictReport, ConsoleSink, type ConstraintError, type ConstraintNodeStore, ConstraintRule, type Content, ContentPipeline, type ContextBundle, type ContextError, type ContextFile, type ContextFilterResult, type ContextScopeOptions, type Contributions, ContributionsSchema, type Convention, CouplingCollector, type CouplingConfig, type CouplingReport, type CouplingThresholds, type CouplingViolation, type CoverageOptions, type CoverageReport, type CriticalPathEntry, CriticalPathResolver, type CriticalPathSet, type CustomRule, type CustomRuleResult, DEFAULT_PROVIDER_TIERS, DEFAULT_SECURITY_CONFIG, DEFAULT_STATE, DEFAULT_STREAM_INDEX, type DeadCodeConfig, type DeadCodeReport, type DeadExport, type DeadFile, type DeadInternal, type DeduplicateFindingsOptions, DepDepthCollector, type DependencyEdge, type DependencyGraph, type DependencyValidation, type DependencyViolation, type DetectStaleResult, type DiffInfo, type DocumentationDrift, type DocumentationFile, type DocumentationGap, type DriftConfig, type DriftReport, type EligibilityResult, type EmitInteractionInput, EmitInteractionInputSchema, EntropyAnalyzer, type EntropyConfig, EntropyConfigSchema, type EntropyError, type EntropyReport, ExclusionSet, type ExecutorHealth, type Export, type ExportMap, type FailureEntry, FailureEntrySchema, type FanOutOptions, type FeedbackAgentConfig, type FeedbackConfig, type FeedbackError$1 as FeedbackError, type FileCategory, FileSink, type FindingSeverity, type Fix, type FixConfig, type FixResult, type FixType, ForbiddenImportCollector, type ForbiddenImportViolation, type ForbiddenPattern, type GateConfig, GateConfigSchema, type GateResult, GateResultSchema, type GenerationSection, type GitHubInlineComment, type GraphAdapter, type GraphComplexityData, type GraphCouplingData, type GraphCoverageData, type GraphCriticalPathData, type GraphDependencyData, type GraphHarnessCheckData, type GraphImpactData, type Handoff, HandoffSchema, type HarnessState, HarnessStateSchema, type HealthCheckResult, type Hotspot, type HotspotContext, type Import, type InlineReference, type IntegrityReport, type InteractionType, InteractionTypeSchema, type InternalSymbol, type JSDocComment, type LanguageParser, type Layer, type LayerConfig, LayerViolationCollector, type LearningPattern, type Lockfile, type LockfilePackage, LockfilePackageSchema, LockfileSchema, type LogEntry, type LogFilter, type Manifest, ManifestSchema, type MechanicalCheckOptions, type MechanicalCheckResult, type MechanicalCheckStatus, type MechanicalFinding, type MergeResult, type Metric, MetricResult, type ModelProvider, type ModelTier, type ModelTierConfig, type ModuleDependency, ModuleSizeCollector, NoOpExecutor, NoOpSink, NoOpTelemetryAdapter, type OrphanedDep, type ParseError, type PatternConfig, PatternConfigSchema, type PatternMatch, type PatternReport, type PatternViolation, type PeerReview, type PeerReviewOptions, type PipelineContext, type PipelineFlags, type PipelineOptions, type PipelineResult, type PrMetadata, type PriorReview, ProjectScanner, type ProviderDefaults, type PruneResult, type Question, QuestionSchema, REQUIRED_SECTIONS, type ReachabilityNode, RegressionDetector, type RegressionReport, type RegressionResult, type ReviewAgentDescriptor, type ReviewAssessment, type ReviewChecklist, type ReviewComment, type ReviewContext, type ReviewDomain, type ReviewFinding, type ReviewItem, type ReviewOutputOptions, type ReviewPipelineResult, type ReviewStrength, type RuleOverride, RuleRegistry, type RunCIChecksInput, type RunPipelineOptions, SECURITY_DESCRIPTOR, type SafetyLevel, type ScanResult, type SecurityCategory, type SecurityConfidence, type SecurityConfig, SecurityConfigSchema, type SecurityFinding, type SecurityRule, SecurityScanner, type SecuritySeverity, type SelfReviewConfig, type SessionSummaryData, SharableBoundaryConfigSchema, SharableForbiddenImportSchema, SharableLayerSchema, SharableSecurityRulesSchema, type SizeBudgetConfig, type SizeBudgetReport, type SizeBudgetViolation, type SkillExecutor, type SourceFile, type Span, type SpanEvent, type StaleConstraint, type StepExecutor, type StreamIndex, StreamIndexSchema, type StreamInfo, StreamInfoSchema, type StructureValidation, type Suggestion, type SuggestionReport, type SyncChange, type SyncOptions, type TelemetryAdapter, type TelemetryHealth, ThresholdConfig, type TimeRange, type TokenBudget, type TokenBudgetOverrides, type Trace, type Transition, TransitionSchema, type TurnExecutor, TypeScriptParser, type UnusedImport, type UpdateCheckState, VERSION, type ValidateFindingsOptions, type ValidationError, type WorkflowPhase, addProvenance, analyzeDiff, analyzeLearningPatterns, appendFailure, appendLearning, applyFixes, applyHotspotDowngrade, archiveFailures, archiveLearnings, archiveStream, buildDependencyGraph, buildExclusionSet, buildSnapshot, checkDocCoverage, checkEligibility, classifyFinding, clearFailuresCache, clearLearningsCache, configureFeedback, constraintRuleId, contextBudget, contextFilter, createBoundaryValidator, createCommentedCodeFixes, createError, createFixes, createForbiddenImportFixes, createOrphanedDepFixes, createParseError, createSelfReview, createStream, cryptoRules, deduplicateCleanupFindings, deduplicateFindings, deepMergeConstraints, defaultCollectors, defineLayer, deserializationRules, detectChangeType, detectCircularDeps, detectCircularDepsInFiles, detectComplexityViolations, detectCouplingViolations, detectDeadCode, detectDocDrift, detectPatternViolations, detectSizeBudgetViolations, detectStack, detectStaleConstraints, determineAssessment, diff, executeWorkflow, expressRules, extractBundle, extractMarkdownLinks, extractSections, fanOutReview, formatFindingBlock, formatGitHubComment, formatGitHubSummary, formatTerminalOutput, generateAgentsMap, generateSuggestions, getActionEmitter, getExitCode, getFeedbackConfig, getPhaseCategories, getStreamForBranch, getUpdateNotification, goRules, injectionRules, isSmallSuggestion, isUpdateCheckEnabled, listActiveSessions, listStreams, loadBudgetedLearnings, loadFailures, loadHandoff, loadRelevantLearnings, loadSessionSummary, loadState, loadStreamIndex, logAgentAction, migrateToStreams, networkRules, nodeRules, parseDateFromEntry, parseDiff, parseManifest, parseRoadmap, parseSecurityConfig, parseSize, pathTraversalRules, previewFix, pruneLearnings, reactRules, readCheckState, readLockfile, removeContributions, removeProvenance, requestMultiplePeerReviews, requestPeerReview, resetFeedbackConfig, resolveFileToLayer, resolveModelTier, resolveRuleSeverity, resolveSessionDir, resolveStreamPath, resolveThresholds, runAll, runArchitectureAgent, runBugDetectionAgent, runCIChecks, runComplianceAgent, runMechanicalChecks, runMechanicalGate, runMultiTurnPipeline, runPipeline, runReviewPipeline, runSecurityAgent, saveHandoff, saveState, saveStreamIndex, scopeContext, secretRules, serializeRoadmap, setActiveStream, shouldRunCheck, spawnBackgroundCheck, syncConstraintNodes, syncRoadmap, touchStream, trackAction, updateSessionIndex, validateAgentsMap, validateBoundaries, validateCommitMessage, validateConfig, validateDependencies, validateFileStructure, validateFindings, validateKnowledgeMap, validatePatternConfig, violationId, writeConfig, writeLockfile, writeSessionSummary, xssRules };