@hongmaple0820/scale-engine 0.21.2 → 0.24.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.
Files changed (135) hide show
  1. package/README.en.md +35 -11
  2. package/README.md +54 -23
  3. package/dist/api/cli.js +476 -5
  4. package/dist/api/cli.js.map +1 -1
  5. package/dist/api/doctor.d.ts +1 -0
  6. package/dist/api/doctor.js +83 -0
  7. package/dist/api/doctor.js.map +1 -1
  8. package/dist/artifact/types.d.ts +1 -1
  9. package/dist/artifact/types.js.map +1 -1
  10. package/dist/cli/phaseCommands.js +22 -6
  11. package/dist/cli/phaseCommands.js.map +1 -1
  12. package/dist/cli/runCommand.d.ts +39 -0
  13. package/dist/cli/runCommand.js +113 -0
  14. package/dist/cli/runCommand.js.map +1 -0
  15. package/dist/config/profiles.d.ts +52 -0
  16. package/dist/config/profiles.js +162 -0
  17. package/dist/config/profiles.js.map +1 -0
  18. package/dist/context/ContextBudget.d.ts +25 -1
  19. package/dist/context/ContextBudget.js +72 -7
  20. package/dist/context/ContextBudget.js.map +1 -1
  21. package/dist/context/ProjectAnatomy.d.ts +18 -0
  22. package/dist/context/ProjectAnatomy.js +287 -0
  23. package/dist/context/ProjectAnatomy.js.map +1 -0
  24. package/dist/dashboard/DashboardServer.d.ts +3 -0
  25. package/dist/dashboard/DashboardServer.js +114 -0
  26. package/dist/dashboard/DashboardServer.js.map +1 -1
  27. package/dist/dashboard/MetricsAggregator.d.ts +38 -0
  28. package/dist/dashboard/MetricsAggregator.js +99 -0
  29. package/dist/dashboard/MetricsAggregator.js.map +1 -0
  30. package/dist/dashboard/index.d.ts +2 -0
  31. package/dist/dashboard/index.js +1 -0
  32. package/dist/dashboard/index.js.map +1 -1
  33. package/dist/dashboard/server.js +1 -1
  34. package/dist/dashboard/server.js.map +1 -1
  35. package/dist/evolution/AutoDefectCreator.d.ts +11 -2
  36. package/dist/evolution/AutoDefectCreator.js +46 -2
  37. package/dist/evolution/AutoDefectCreator.js.map +1 -1
  38. package/dist/evolution/EvolutionEngine.d.ts +3 -0
  39. package/dist/evolution/EvolutionEngine.js +18 -2
  40. package/dist/evolution/EvolutionEngine.js.map +1 -1
  41. package/dist/evolution/RuleMaturity.d.ts +39 -0
  42. package/dist/evolution/RuleMaturity.js +70 -0
  43. package/dist/evolution/RuleMaturity.js.map +1 -0
  44. package/dist/guardrails/ActiveRedTeam.d.ts +46 -0
  45. package/dist/guardrails/ActiveRedTeam.js +203 -0
  46. package/dist/guardrails/ActiveRedTeam.js.map +1 -0
  47. package/dist/guardrails/DependencyAuditor.d.ts +68 -0
  48. package/dist/guardrails/DependencyAuditor.js +331 -0
  49. package/dist/guardrails/DependencyAuditor.js.map +1 -0
  50. package/dist/hooks/BugPatternDetector.d.ts +36 -0
  51. package/dist/hooks/BugPatternDetector.js +207 -0
  52. package/dist/hooks/BugPatternDetector.js.map +1 -0
  53. package/dist/hooks/HookGeneratorEnhanced.js +301 -5
  54. package/dist/hooks/HookGeneratorEnhanced.js.map +1 -1
  55. package/dist/hooks/WorkflowHooksManager.js +24 -0
  56. package/dist/hooks/WorkflowHooksManager.js.map +1 -1
  57. package/dist/index.d.ts +10 -0
  58. package/dist/index.js +7 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/knowledge/CerebrumManager.d.ts +25 -0
  61. package/dist/knowledge/CerebrumManager.js +127 -0
  62. package/dist/knowledge/CerebrumManager.js.map +1 -0
  63. package/dist/knowledge/SQLiteKnowledgeBase.d.ts +1 -0
  64. package/dist/knowledge/SQLiteKnowledgeBase.js +31 -3
  65. package/dist/knowledge/SQLiteKnowledgeBase.js.map +1 -1
  66. package/dist/knowledge/TfidfIndex.d.ts +50 -0
  67. package/dist/knowledge/TfidfIndex.js +177 -0
  68. package/dist/knowledge/TfidfIndex.js.map +1 -0
  69. package/dist/output/GovernanceDashboard.d.ts +2 -0
  70. package/dist/output/GovernanceDashboard.js +31 -0
  71. package/dist/output/GovernanceDashboard.js.map +1 -1
  72. package/dist/routing/PromptCachePolicy.d.ts +37 -0
  73. package/dist/routing/PromptCachePolicy.js +97 -0
  74. package/dist/routing/PromptCachePolicy.js.map +1 -0
  75. package/dist/runtime/ModelUsageLedger.d.ts +50 -0
  76. package/dist/runtime/ModelUsageLedger.js +92 -0
  77. package/dist/runtime/ModelUsageLedger.js.map +1 -0
  78. package/dist/runtime/index.d.ts +1 -0
  79. package/dist/runtime/index.js +1 -0
  80. package/dist/runtime/index.js.map +1 -1
  81. package/dist/skills/SkillDiscovery.js +1 -1
  82. package/dist/skills/SkillDiscovery.js.map +1 -1
  83. package/dist/tools/CommandOutputCompressor.d.ts +28 -0
  84. package/dist/tools/CommandOutputCompressor.js +242 -0
  85. package/dist/tools/CommandOutputCompressor.js.map +1 -0
  86. package/dist/tools/CommandRunLedger.d.ts +77 -0
  87. package/dist/tools/CommandRunLedger.js +111 -0
  88. package/dist/tools/CommandRunLedger.js.map +1 -0
  89. package/dist/tools/index.d.ts +2 -0
  90. package/dist/tools/index.js +2 -0
  91. package/dist/tools/index.js.map +1 -1
  92. package/dist/workflow/EngineeringStandards.js +91 -2
  93. package/dist/workflow/EngineeringStandards.js.map +1 -1
  94. package/dist/workflow/GovernanceTemplatePacks.js +2 -2
  95. package/dist/workflow/GovernanceTemplates.js +93 -92
  96. package/dist/workflow/GovernanceTemplates.js.map +1 -1
  97. package/dist/workflow/TaskLevelDetector.d.ts +41 -0
  98. package/dist/workflow/TaskLevelDetector.js +219 -0
  99. package/dist/workflow/TaskLevelDetector.js.map +1 -0
  100. package/dist/workflow/WorkflowOrchestrator.d.ts +59 -0
  101. package/dist/workflow/WorkflowOrchestrator.js +326 -0
  102. package/dist/workflow/WorkflowOrchestrator.js.map +1 -0
  103. package/dist/workflow/autonomous/BackgroundHunter.d.ts +74 -0
  104. package/dist/workflow/autonomous/BackgroundHunter.js +220 -0
  105. package/dist/workflow/autonomous/BackgroundHunter.js.map +1 -0
  106. package/dist/workflow/autonomous/index.d.ts +1 -0
  107. package/dist/workflow/autonomous/index.js +1 -0
  108. package/dist/workflow/autonomous/index.js.map +1 -1
  109. package/dist/workflow/gates/GateSystem.d.ts +33 -6
  110. package/dist/workflow/gates/GateSystem.js +176 -25
  111. package/dist/workflow/gates/GateSystem.js.map +1 -1
  112. package/dist/workflow/gates/MetaGovernanceGates.d.ts +70 -0
  113. package/dist/workflow/gates/MetaGovernanceGates.js +617 -0
  114. package/dist/workflow/gates/MetaGovernanceGates.js.map +1 -0
  115. package/dist/workflow/gates/VisualGate.d.ts +41 -0
  116. package/dist/workflow/gates/VisualGate.js +174 -0
  117. package/dist/workflow/gates/VisualGate.js.map +1 -0
  118. package/dist/workflow/index.d.ts +1 -0
  119. package/dist/workflow/index.js +1 -0
  120. package/dist/workflow/index.js.map +1 -1
  121. package/dist/workflow/types.d.ts +6 -1
  122. package/docs/ACTIVE_SECURITY_VISUAL_GATES.md +87 -0
  123. package/docs/BACKGROUND_HUNTER.md +62 -0
  124. package/docs/CONTEXT_BUDGET.md +32 -6
  125. package/docs/DEPENDENCY_AUDIT.md +89 -0
  126. package/docs/EVOLUTION_SHADOW_MODE.md +63 -0
  127. package/docs/GOVERNANCE_DASHBOARD.md +21 -5
  128. package/docs/README.md +24 -12
  129. package/docs/start/README.md +29 -3
  130. package/docs/start/artifact-lifecycle.md +326 -0
  131. package/docs/start/workflow-upgrade.md +150 -0
  132. package/image/wechat-public.jpg +0 -0
  133. package/image/wxPay.jpg +0 -0
  134. package/image/zfb.jpg +0 -0
  135. package/package.json +7 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowOrchestrator.js","sourceRoot":"","sources":["../../src/workflow/WorkflowOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { type DiffInput } from '../ReviewAnalyzer.js';
2
+ import { type EngineeringStandardSeverity } from '../EngineeringStandards.js';
3
+ import type { DiagnosticLoopInput } from '../DiagnosticLoop.js';
4
+ export type HuntFindingSource = 'engineering-standards' | 'review-analyzer';
5
+ export type HuntFindingStatus = 'open' | 'ignored';
6
+ export interface HuntFinding {
7
+ id: string;
8
+ fingerprint: string;
9
+ source: HuntFindingSource;
10
+ status: HuntFindingStatus;
11
+ severity: EngineeringStandardSeverity;
12
+ category: string;
13
+ ruleId: string;
14
+ path?: string;
15
+ line?: number;
16
+ message: string;
17
+ evidence?: string;
18
+ fix?: string;
19
+ ignoreReason?: string;
20
+ diagnosticInput: DiagnosticLoopInput;
21
+ }
22
+ export interface HuntSummary {
23
+ total: number;
24
+ open: number;
25
+ ignored: number;
26
+ blocking: number;
27
+ bySeverity: Record<EngineeringStandardSeverity, number>;
28
+ bySource: Record<HuntFindingSource, number>;
29
+ }
30
+ export interface HuntScanReport {
31
+ projectDir: string;
32
+ generatedAt: string;
33
+ findings: HuntFinding[];
34
+ summary: HuntSummary;
35
+ warnings: string[];
36
+ }
37
+ export interface BackgroundHunterOptions {
38
+ projectDir?: string;
39
+ scaleDir?: string;
40
+ store?: HuntFindingStore;
41
+ }
42
+ export interface BackgroundHunterScanOptions {
43
+ now?: Date;
44
+ changedFiles?: string[];
45
+ statusOutput?: string;
46
+ diffs?: DiffInput[];
47
+ }
48
+ export interface IgnoredHuntFinding {
49
+ id: string;
50
+ fingerprint: string;
51
+ reason?: string;
52
+ ignoredAt: string;
53
+ }
54
+ export declare class BackgroundHunter {
55
+ private readonly projectDir;
56
+ private readonly scaleDir;
57
+ private readonly store;
58
+ constructor(options?: BackgroundHunterOptions);
59
+ scan(options?: BackgroundHunterScanOptions): HuntScanReport;
60
+ createDiagnosticInput(finding: HuntFinding): DiagnosticLoopInput;
61
+ private fromEngineeringStandard;
62
+ private reviewFindings;
63
+ private fromReviewFinding;
64
+ }
65
+ export declare class HuntFindingStore {
66
+ private readonly path;
67
+ constructor(options?: {
68
+ projectDir?: string;
69
+ scaleDir?: string;
70
+ });
71
+ listIgnored(): IgnoredHuntFinding[];
72
+ ignore(finding: IgnoredHuntFinding): IgnoredHuntFinding;
73
+ }
74
+ export declare function createDiagnosticInput(finding: Pick<HuntFinding, 'id' | 'source' | 'ruleId' | 'path' | 'message' | 'evidence'>): DiagnosticLoopInput;
@@ -0,0 +1,220 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { isAbsolute, join, relative, resolve, sep } from 'node:path';
4
+ import { analyzeReview } from '../ReviewAnalyzer.js';
5
+ import { scanEngineeringStandards, } from '../EngineeringStandards.js';
6
+ export class BackgroundHunter {
7
+ constructor(options = {}) {
8
+ this.projectDir = resolve(options.projectDir ?? process.cwd());
9
+ this.scaleDir = options.scaleDir ?? '.scale';
10
+ this.store = options.store ?? new HuntFindingStore({ projectDir: this.projectDir, scaleDir: this.scaleDir });
11
+ }
12
+ scan(options = {}) {
13
+ const now = options.now ?? new Date();
14
+ const standardsReport = scanEngineeringStandards({
15
+ projectDir: this.projectDir,
16
+ scaleDir: this.scaleDir,
17
+ now,
18
+ changedFiles: options.changedFiles,
19
+ });
20
+ const findings = [
21
+ ...standardsReport.findings.map(finding => this.fromEngineeringStandard(finding)),
22
+ ...this.reviewFindings(options),
23
+ ].sort(compareHuntFindings);
24
+ const ignored = this.store.listIgnored();
25
+ const resolvedFindings = findings.map(finding => {
26
+ const ignoredFinding = ignored.find(item => item.id === finding.id || item.fingerprint === finding.fingerprint);
27
+ if (!ignoredFinding)
28
+ return finding;
29
+ return {
30
+ ...finding,
31
+ status: 'ignored',
32
+ ignoreReason: ignoredFinding.reason,
33
+ };
34
+ });
35
+ return {
36
+ projectDir: this.projectDir,
37
+ generatedAt: now.toISOString(),
38
+ findings: resolvedFindings,
39
+ summary: summarizeHuntFindings(resolvedFindings),
40
+ warnings: standardsReport.warnings,
41
+ };
42
+ }
43
+ createDiagnosticInput(finding) {
44
+ return createDiagnosticInput(finding);
45
+ }
46
+ fromEngineeringStandard(finding) {
47
+ const fingerprint = stableFingerprint([
48
+ 'engineering-standards',
49
+ finding.ruleId,
50
+ normalizePath(finding.path),
51
+ String(finding.line ?? ''),
52
+ finding.message,
53
+ ]);
54
+ const id = huntId(fingerprint);
55
+ const path = normalizePath(finding.path);
56
+ const result = {
57
+ id,
58
+ fingerprint,
59
+ source: 'engineering-standards',
60
+ status: 'open',
61
+ severity: finding.severity,
62
+ category: finding.category,
63
+ ruleId: finding.ruleId,
64
+ path,
65
+ line: finding.line,
66
+ message: finding.message,
67
+ evidence: finding.evidence,
68
+ fix: finding.fix,
69
+ diagnosticInput: createDiagnosticInput({
70
+ id,
71
+ source: 'engineering-standards',
72
+ ruleId: finding.ruleId,
73
+ path,
74
+ message: finding.message,
75
+ evidence: finding.evidence,
76
+ }),
77
+ };
78
+ return result;
79
+ }
80
+ reviewFindings(options) {
81
+ if (!options.statusOutput || !options.diffs?.length)
82
+ return [];
83
+ return analyzeReview({
84
+ statusOutput: options.statusOutput,
85
+ diffs: options.diffs,
86
+ }).findings.map(finding => this.fromReviewFinding(finding));
87
+ }
88
+ fromReviewFinding(finding) {
89
+ const path = finding.file ? normalizePath(finding.file) : undefined;
90
+ const fingerprint = stableFingerprint([
91
+ 'review-analyzer',
92
+ finding.category,
93
+ finding.severity,
94
+ path ?? '',
95
+ finding.description,
96
+ finding.evidence ?? '',
97
+ ]);
98
+ const id = huntId(fingerprint);
99
+ const severity = reviewSeverityToStandardSeverity(finding.severity);
100
+ return {
101
+ id,
102
+ fingerprint,
103
+ source: 'review-analyzer',
104
+ status: 'open',
105
+ severity,
106
+ category: finding.category,
107
+ ruleId: `review-${finding.category}`,
108
+ path,
109
+ message: finding.description,
110
+ evidence: finding.evidence,
111
+ diagnosticInput: createDiagnosticInput({
112
+ id,
113
+ source: 'review-analyzer',
114
+ ruleId: `review-${finding.category}`,
115
+ path,
116
+ message: finding.description,
117
+ evidence: finding.evidence,
118
+ }),
119
+ };
120
+ }
121
+ }
122
+ export class HuntFindingStore {
123
+ constructor(options = {}) {
124
+ const projectDir = resolve(options.projectDir ?? process.cwd());
125
+ const scaleDir = options.scaleDir ?? '.scale';
126
+ const scaleRoot = isAbsolute(scaleDir) ? scaleDir : join(projectDir, scaleDir);
127
+ this.path = join(scaleRoot, 'hunt', 'ignored-findings.json');
128
+ }
129
+ listIgnored() {
130
+ if (!existsSync(this.path))
131
+ return [];
132
+ try {
133
+ const parsed = JSON.parse(readFileSync(this.path, 'utf-8'));
134
+ return Array.isArray(parsed.ignored)
135
+ ? parsed.ignored.filter(item => typeof item.id === 'string' && typeof item.fingerprint === 'string')
136
+ : [];
137
+ }
138
+ catch {
139
+ return [];
140
+ }
141
+ }
142
+ ignore(finding) {
143
+ const current = this.listIgnored();
144
+ const next = [
145
+ ...current.filter(item => item.id !== finding.id && item.fingerprint !== finding.fingerprint),
146
+ finding,
147
+ ].sort((a, b) => a.id.localeCompare(b.id));
148
+ const dir = this.path.slice(0, this.path.lastIndexOf(sep));
149
+ if (!existsSync(dir))
150
+ mkdirSync(dir, { recursive: true });
151
+ writeFileSync(this.path, JSON.stringify({ version: 1, ignored: next }, null, 2) + '\n', 'utf-8');
152
+ return finding;
153
+ }
154
+ }
155
+ export function createDiagnosticInput(finding) {
156
+ const changedFiles = finding.path ? [finding.path] : [];
157
+ const verificationCommand = finding.path
158
+ ? `scale standards doctor --changed-files ${finding.path}`
159
+ : 'scale standards doctor';
160
+ return {
161
+ taskId: `HUNT-${finding.id.toUpperCase()}`,
162
+ symptom: `${finding.source} ${finding.ruleId}: ${finding.message}`,
163
+ reproductionCommand: verificationCommand,
164
+ expectedFailure: finding.evidence ?? finding.message,
165
+ changedFiles,
166
+ verificationCommands: [verificationCommand],
167
+ };
168
+ }
169
+ function summarizeHuntFindings(findings) {
170
+ const bySeverity = { info: 0, warn: 0, fail: 0 };
171
+ const bySource = {
172
+ 'engineering-standards': 0,
173
+ 'review-analyzer': 0,
174
+ };
175
+ for (const finding of findings) {
176
+ bySeverity[finding.severity] += 1;
177
+ bySource[finding.source] += 1;
178
+ }
179
+ return {
180
+ total: findings.length,
181
+ open: findings.filter(finding => finding.status === 'open').length,
182
+ ignored: findings.filter(finding => finding.status === 'ignored').length,
183
+ blocking: findings.filter(finding => finding.status === 'open' && finding.severity === 'fail').length,
184
+ bySeverity,
185
+ bySource,
186
+ };
187
+ }
188
+ function compareHuntFindings(a, b) {
189
+ return severityRank(b.severity) - severityRank(a.severity) ||
190
+ (a.path ?? '').localeCompare(b.path ?? '') ||
191
+ a.ruleId.localeCompare(b.ruleId) ||
192
+ a.id.localeCompare(b.id);
193
+ }
194
+ function severityRank(severity) {
195
+ if (severity === 'fail')
196
+ return 3;
197
+ if (severity === 'warn')
198
+ return 2;
199
+ return 1;
200
+ }
201
+ function reviewSeverityToStandardSeverity(severity) {
202
+ if (severity === 'CRITICAL' || severity === 'HIGH')
203
+ return 'fail';
204
+ if (severity === 'MEDIUM')
205
+ return 'warn';
206
+ return 'info';
207
+ }
208
+ function stableFingerprint(parts) {
209
+ return parts.map(part => part.trim()).join('\0');
210
+ }
211
+ function huntId(fingerprint) {
212
+ return createHash('sha256').update(fingerprint).digest('hex').slice(0, 12);
213
+ }
214
+ function normalizePath(path) {
215
+ const normalized = path.replace(/\\/g, '/');
216
+ if (!isAbsolute(path))
217
+ return normalized.replace(/^\.\//, '');
218
+ return relative(process.cwd(), path).replace(/\\/g, '/');
219
+ }
220
+ //# sourceMappingURL=BackgroundHunter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackgroundHunter.js","sourceRoot":"","sources":["../../../src/workflow/autonomous/BackgroundHunter.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './WorklogManager.js';
2
2
  export * from './AutonomousDevLoop.js';
3
+ export * from './BackgroundHunter.js';
@@ -1,4 +1,5 @@
1
1
  // SCALE Engine — Autonomous Module Index
2
2
  export * from './WorklogManager.js';
3
3
  export * from './AutonomousDevLoop.js';
4
+ export * from './BackgroundHunter.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workflow/autonomous/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workflow/autonomous/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA"}
@@ -2,6 +2,9 @@ import type { IEventBus } from '../../core/eventBus.js';
2
2
  import type { GateStage, GateResult } from '../types.js';
3
3
  import { WorkflowArtifactWriter } from '../WorkflowArtifactWriter.js';
4
4
  import { type ResolvedVerificationCommand, type VerificationCommandConfig, type VerificationRuntimeEvidenceConfig } from '../VerificationCommands.js';
5
+ import { type CommandOutputCompressionResult } from '../../tools/CommandOutputCompressor.js';
6
+ import { type CommandRunEvidenceOptions } from '../../tools/CommandRunLedger.js';
7
+ import { type DependencyAuditMode } from '../../guardrails/DependencyAuditor.js';
5
8
  export interface IGate {
6
9
  stage: GateStage;
7
10
  name: string;
@@ -10,7 +13,7 @@ export interface IGate {
10
13
  execute(): Promise<GateResult>;
11
14
  }
12
15
  type RequiredLevel = 'S' | 'M' | 'L' | 'ALWAYS' | 'CRITICAL';
13
- interface CommandResult {
16
+ export interface CommandResult {
14
17
  code: number;
15
18
  stdout: string;
16
19
  stderr: string;
@@ -18,6 +21,15 @@ interface CommandResult {
18
21
  startedAt: number;
19
22
  endedAt: number;
20
23
  cwd: string;
24
+ outputCompression?: CommandOutputCompressionResult;
25
+ commandRunEvidenceId?: string;
26
+ commandRunEvidenceError?: string;
27
+ }
28
+ export interface RunShellCommandOptions {
29
+ compressOutput?: boolean;
30
+ compressionMaxChars?: number;
31
+ compressionMaxLines?: number;
32
+ commandRunEvidence?: CommandRunEvidenceOptions;
21
33
  }
22
34
  export interface SecurityGateOptions {
23
35
  rootDir?: string;
@@ -25,8 +37,12 @@ export interface SecurityGateOptions {
25
37
  maxFileBytes?: number;
26
38
  maxFindings?: number;
27
39
  strict?: boolean;
40
+ scaleDir?: string;
41
+ dependencyAudit?: boolean;
42
+ dependencyAuditMode?: DependencyAuditMode;
43
+ dependencyAuditChangedPackages?: string[];
28
44
  }
29
- export declare function runShellCommand(command: string, timeout: number, cwd?: string): Promise<CommandResult>;
45
+ export declare function runShellCommand(command: string, timeout: number, cwd?: string, options?: RunShellCommandOptions): Promise<CommandResult>;
30
46
  export declare class GateSystem {
31
47
  private eventBus;
32
48
  private gates;
@@ -40,6 +56,8 @@ export declare class GateSystem {
40
56
  private persistEvidence;
41
57
  private recordCompletedGate;
42
58
  executeAll(order?: GateStage[]): Promise<GateResult[]>;
59
+ registerMetaGates(scaleDir?: string): void;
60
+ executeMetaGovernance(scaleDir?: string): Promise<GateResult[]>;
43
61
  getResult(stage: GateStage): GateResult | undefined;
44
62
  getAllResults(): Map<GateStage, GateResult>;
45
63
  private registerDefaultGates;
@@ -80,38 +98,42 @@ export declare class TDDGate implements IGate {
80
98
  }
81
99
  export declare class BuildGate implements IGate {
82
100
  private command;
101
+ private runtimeEvidence?;
83
102
  stage: GateStage;
84
103
  name: string;
85
104
  description: string;
86
105
  requiredLevel: RequiredLevel;
87
- constructor(command: ResolvedVerificationCommand);
106
+ constructor(command: ResolvedVerificationCommand, runtimeEvidence?: VerificationRuntimeEvidenceConfig | undefined);
88
107
  execute(): Promise<GateResult>;
89
108
  }
90
109
  export declare class LintGate implements IGate {
91
110
  private command;
111
+ private runtimeEvidence?;
92
112
  stage: GateStage;
93
113
  name: string;
94
114
  description: string;
95
115
  requiredLevel: RequiredLevel;
96
- constructor(command: ResolvedVerificationCommand);
116
+ constructor(command: ResolvedVerificationCommand, runtimeEvidence?: VerificationRuntimeEvidenceConfig | undefined);
97
117
  execute(): Promise<GateResult>;
98
118
  }
99
119
  export declare class TestGate implements IGate {
100
120
  private command;
121
+ private runtimeEvidence?;
101
122
  stage: GateStage;
102
123
  name: string;
103
124
  description: string;
104
125
  requiredLevel: RequiredLevel;
105
- constructor(command: ResolvedVerificationCommand);
126
+ constructor(command: ResolvedVerificationCommand, runtimeEvidence?: VerificationRuntimeEvidenceConfig | undefined);
106
127
  execute(): Promise<GateResult>;
107
128
  }
108
129
  export declare class CoverageGate implements IGate {
109
130
  private command;
131
+ private runtimeEvidence?;
110
132
  stage: GateStage;
111
133
  name: string;
112
134
  description: string;
113
135
  requiredLevel: RequiredLevel;
114
- constructor(command: ResolvedVerificationCommand);
136
+ constructor(command: ResolvedVerificationCommand, runtimeEvidence?: VerificationRuntimeEvidenceConfig | undefined);
115
137
  execute(): Promise<GateResult>;
116
138
  }
117
139
  export declare class SecurityGate implements IGate {
@@ -124,6 +146,10 @@ export declare class SecurityGate implements IGate {
124
146
  private maxFileBytes;
125
147
  private maxFindings;
126
148
  private strict;
149
+ private scaleDir;
150
+ private dependencyAudit;
151
+ private dependencyAuditMode?;
152
+ private dependencyAuditChangedPackages?;
127
153
  constructor(options?: SecurityGateOptions);
128
154
  execute(): Promise<GateResult>;
129
155
  private scan;
@@ -132,6 +158,7 @@ export declare class SecurityGate implements IGate {
132
158
  private rulesForFile;
133
159
  private findEmptyCatchBlocks;
134
160
  private summarize;
161
+ private dependencyEvidence;
135
162
  private isTestPath;
136
163
  private isRuleDefinition;
137
164
  private isSecurityTestFixture;