micro-contracts 0.16.4 → 0.17.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/micro-contracts.bundle.mjs +4682 -0
- package/dist/micro-contracts.bundle.mjs.map +7 -0
- package/package.json +20 -23
- package/dist/agents/context-builder.d.ts +0 -5
- package/dist/agents/context-builder.d.ts.map +0 -1
- package/dist/agents/context-builder.js +0 -239
- package/dist/agents/context-builder.js.map +0 -1
- package/dist/agents/formatter.d.ts +0 -9
- package/dist/agents/formatter.d.ts.map +0 -1
- package/dist/agents/formatter.js +0 -124
- package/dist/agents/formatter.js.map +0 -1
- package/dist/agents/index.d.ts +0 -5
- package/dist/agents/index.d.ts.map +0 -1
- package/dist/agents/index.js +0 -3
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/orchestrator.d.ts +0 -5
- package/dist/agents/orchestrator.d.ts.map +0 -1
- package/dist/agents/orchestrator.js +0 -105
- package/dist/agents/orchestrator.js.map +0 -1
- package/dist/agents/types.d.ts +0 -21
- package/dist/agents/types.d.ts.map +0 -1
- package/dist/agents/types.js +0 -2
- package/dist/agents/types.js.map +0 -1
- package/dist/cli/templates.d.ts +0 -22
- package/dist/cli/templates.d.ts.map +0 -1
- package/dist/cli/templates.js +0 -445
- package/dist/cli/templates.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -1142
- package/dist/cli.js.map +0 -1
- package/dist/commands/audit-guardrails.d.ts +0 -13
- package/dist/commands/audit-guardrails.d.ts.map +0 -1
- package/dist/commands/audit-guardrails.js +0 -32
- package/dist/commands/audit-guardrails.js.map +0 -1
- package/dist/commands/audit-openapi.d.ts +0 -13
- package/dist/commands/audit-openapi.d.ts.map +0 -1
- package/dist/commands/audit-openapi.js +0 -32
- package/dist/commands/audit-openapi.js.map +0 -1
- package/dist/commands/propose-overlays.d.ts +0 -13
- package/dist/commands/propose-overlays.d.ts.map +0 -1
- package/dist/commands/propose-overlays.js +0 -32
- package/dist/commands/propose-overlays.js.map +0 -1
- package/dist/commands/review-published.d.ts +0 -13
- package/dist/commands/review-published.d.ts.map +0 -1
- package/dist/commands/review-published.js +0 -32
- package/dist/commands/review-published.js.map +0 -1
- package/dist/generated/commands.d.ts +0 -2
- package/dist/generated/commands.d.ts.map +0 -1
- package/dist/generated/commands.js +0 -2
- package/dist/generated/commands.js.map +0 -1
- package/dist/generated/dsl/agents.d.ts +0 -34
- package/dist/generated/dsl/agents.d.ts.map +0 -1
- package/dist/generated/dsl/agents.js +0 -98
- package/dist/generated/dsl/agents.js.map +0 -1
- package/dist/generated/dsl/handoffs.d.ts +0 -457
- package/dist/generated/dsl/handoffs.d.ts.map +0 -1
- package/dist/generated/dsl/handoffs.js +0 -205
- package/dist/generated/dsl/handoffs.js.map +0 -1
- package/dist/generated/dsl/index.d.ts +0 -13
- package/dist/generated/dsl/index.d.ts.map +0 -1
- package/dist/generated/dsl/index.js +0 -10
- package/dist/generated/dsl/index.js.map +0 -1
- package/dist/generated/dsl/tasks.d.ts +0 -26
- package/dist/generated/dsl/tasks.d.ts.map +0 -1
- package/dist/generated/dsl/tasks.js +0 -133
- package/dist/generated/dsl/tasks.js.map +0 -1
- package/dist/generated/dsl/workflows.d.ts +0 -34
- package/dist/generated/dsl/workflows.d.ts.map +0 -1
- package/dist/generated/dsl/workflows.js +0 -84
- package/dist/generated/dsl/workflows.js.map +0 -1
- package/dist/generated/index.d.ts +0 -7
- package/dist/generated/index.d.ts.map +0 -1
- package/dist/generated/index.js +0 -7
- package/dist/generated/index.js.map +0 -1
- package/dist/generated/policy-runtime.d.ts +0 -114
- package/dist/generated/policy-runtime.d.ts.map +0 -1
- package/dist/generated/policy-runtime.js +0 -195
- package/dist/generated/policy-runtime.js.map +0 -1
- package/dist/generated/policy.d.ts +0 -619
- package/dist/generated/policy.d.ts.map +0 -1
- package/dist/generated/policy.js +0 -802
- package/dist/generated/policy.js.map +0 -1
- package/dist/generated/program.d.ts +0 -112
- package/dist/generated/program.d.ts.map +0 -1
- package/dist/generated/program.js +0 -266
- package/dist/generated/program.js.map +0 -1
- package/dist/generated/schemas.d.ts +0 -778
- package/dist/generated/schemas.d.ts.map +0 -1
- package/dist/generated/schemas.js +0 -1005
- package/dist/generated/schemas.js.map +0 -1
- package/dist/generated/types.d.ts +0 -395
- package/dist/generated/types.d.ts.map +0 -1
- package/dist/generated/types.js +0 -3
- package/dist/generated/types.js.map +0 -1
- package/dist/generator/dependencyGenerator.d.ts +0 -43
- package/dist/generator/dependencyGenerator.d.ts.map +0 -1
- package/dist/generator/dependencyGenerator.js +0 -159
- package/dist/generator/dependencyGenerator.js.map +0 -1
- package/dist/generator/index.d.ts +0 -39
- package/dist/generator/index.d.ts.map +0 -1
- package/dist/generator/index.js +0 -720
- package/dist/generator/index.js.map +0 -1
- package/dist/generator/inputHash.d.ts +0 -23
- package/dist/generator/inputHash.d.ts.map +0 -1
- package/dist/generator/inputHash.js +0 -145
- package/dist/generator/inputHash.js.map +0 -1
- package/dist/generator/linter.d.ts +0 -26
- package/dist/generator/linter.d.ts.map +0 -1
- package/dist/generator/linter.js +0 -352
- package/dist/generator/linter.js.map +0 -1
- package/dist/generator/overlayProcessor.d.ts +0 -90
- package/dist/generator/overlayProcessor.d.ts.map +0 -1
- package/dist/generator/overlayProcessor.js +0 -541
- package/dist/generator/overlayProcessor.js.map +0 -1
- package/dist/generator/schemaGenerator.d.ts +0 -10
- package/dist/generator/schemaGenerator.d.ts.map +0 -1
- package/dist/generator/schemaGenerator.js +0 -299
- package/dist/generator/schemaGenerator.js.map +0 -1
- package/dist/generator/serviceGenerator.d.ts +0 -41
- package/dist/generator/serviceGenerator.d.ts.map +0 -1
- package/dist/generator/serviceGenerator.js +0 -296
- package/dist/generator/serviceGenerator.js.map +0 -1
- package/dist/generator/templateProcessor.d.ts +0 -245
- package/dist/generator/templateProcessor.d.ts.map +0 -1
- package/dist/generator/templateProcessor.js +0 -821
- package/dist/generator/templateProcessor.js.map +0 -1
- package/dist/generator/typeGenerator.d.ts +0 -9
- package/dist/generator/typeGenerator.d.ts.map +0 -1
- package/dist/generator/typeGenerator.js +0 -424
- package/dist/generator/typeGenerator.js.map +0 -1
- package/dist/generator/typeGenerator.test.d.ts +0 -2
- package/dist/generator/typeGenerator.test.d.ts.map +0 -1
- package/dist/generator/typeGenerator.test.js +0 -122
- package/dist/generator/typeGenerator.test.js.map +0 -1
- package/dist/guardrails/allowlist.d.ts +0 -45
- package/dist/guardrails/allowlist.d.ts.map +0 -1
- package/dist/guardrails/allowlist.js +0 -261
- package/dist/guardrails/allowlist.js.map +0 -1
- package/dist/guardrails/config.d.ts +0 -40
- package/dist/guardrails/config.d.ts.map +0 -1
- package/dist/guardrails/config.js +0 -174
- package/dist/guardrails/config.js.map +0 -1
- package/dist/guardrails/docs.d.ts +0 -24
- package/dist/guardrails/docs.d.ts.map +0 -1
- package/dist/guardrails/docs.js +0 -138
- package/dist/guardrails/docs.js.map +0 -1
- package/dist/guardrails/drift.d.ts +0 -23
- package/dist/guardrails/drift.d.ts.map +0 -1
- package/dist/guardrails/drift.js +0 -127
- package/dist/guardrails/drift.js.map +0 -1
- package/dist/guardrails/index.d.ts +0 -19
- package/dist/guardrails/index.d.ts.map +0 -1
- package/dist/guardrails/index.js +0 -23
- package/dist/guardrails/index.js.map +0 -1
- package/dist/guardrails/lint.d.ts +0 -20
- package/dist/guardrails/lint.d.ts.map +0 -1
- package/dist/guardrails/lint.js +0 -274
- package/dist/guardrails/lint.js.map +0 -1
- package/dist/guardrails/manifest.d.ts +0 -63
- package/dist/guardrails/manifest.d.ts.map +0 -1
- package/dist/guardrails/manifest.js +0 -299
- package/dist/guardrails/manifest.js.map +0 -1
- package/dist/guardrails/runner.d.ts +0 -43
- package/dist/guardrails/runner.d.ts.map +0 -1
- package/dist/guardrails/runner.js +0 -365
- package/dist/guardrails/runner.js.map +0 -1
- package/dist/guardrails/typecheck.d.ts +0 -15
- package/dist/guardrails/typecheck.d.ts.map +0 -1
- package/dist/guardrails/typecheck.js +0 -104
- package/dist/guardrails/typecheck.js.map +0 -1
- package/dist/guardrails/types.d.ts +0 -202
- package/dist/guardrails/types.d.ts.map +0 -1
- package/dist/guardrails/types.js +0 -8
- package/dist/guardrails/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types.d.ts +0 -583
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -305
- package/dist/types.js.map +0 -1
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Check runner for guardrails
|
|
3
|
-
*
|
|
4
|
-
* Orchestrates running multiple guardrail checks.
|
|
5
|
-
* Supports both built-in checks and custom checks from guardrails.yaml.
|
|
6
|
-
*/
|
|
7
|
-
import { runAllowlistCheck } from './allowlist.js';
|
|
8
|
-
import { runDriftCheck } from './drift.js';
|
|
9
|
-
import { runManifestCheck } from './manifest.js';
|
|
10
|
-
import { runCustomCommandCheck } from './lint.js';
|
|
11
|
-
import { loadGuardrailsConfigWithPath } from './config.js';
|
|
12
|
-
/**
|
|
13
|
-
* Gate descriptions for display
|
|
14
|
-
*/
|
|
15
|
-
export const GATE_DESCRIPTIONS = {
|
|
16
|
-
1: 'Change Allowlist',
|
|
17
|
-
2: 'OpenAPI Contract Validation',
|
|
18
|
-
3: 'Generated Artifact Integrity',
|
|
19
|
-
4: 'Code Quality',
|
|
20
|
-
5: 'Doc Consistency & Static Analysis',
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Built-in checks (always available)
|
|
24
|
-
*/
|
|
25
|
-
const builtinChecks = [
|
|
26
|
-
{
|
|
27
|
-
name: 'allowlist',
|
|
28
|
-
description: 'Verify changes are within allowed paths',
|
|
29
|
-
gate: 1,
|
|
30
|
-
run: runAllowlistCheck,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: 'drift',
|
|
34
|
-
description: 'Check for uncommitted generated file changes',
|
|
35
|
-
gate: 3,
|
|
36
|
-
run: runDriftCheck,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: 'manifest',
|
|
40
|
-
description: 'Verify generated artifact integrity',
|
|
41
|
-
gate: 3,
|
|
42
|
-
run: runManifestCheck,
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
/**
|
|
46
|
-
* Legacy built-in checks (deprecated - use guardrails.yaml checks instead)
|
|
47
|
-
* These are only included if no custom checks are defined in guardrails.yaml
|
|
48
|
-
*/
|
|
49
|
-
const legacyChecks = [
|
|
50
|
-
// Removed: use spec-lint in guardrails.yaml instead
|
|
51
|
-
// Removed: use code-typecheck in guardrails.yaml instead
|
|
52
|
-
// Removed: use docs-sync, docs-links in guardrails.yaml instead
|
|
53
|
-
];
|
|
54
|
-
/**
|
|
55
|
-
* Load custom checks from guardrails.yaml
|
|
56
|
-
*/
|
|
57
|
-
function loadCustomChecks(options) {
|
|
58
|
-
const { config } = loadGuardrailsConfigWithPath(options.guardrailsPath);
|
|
59
|
-
const customChecks = [];
|
|
60
|
-
if (config?.checks) {
|
|
61
|
-
for (const [name, checkConfig] of Object.entries(config.checks)) {
|
|
62
|
-
if (!checkConfig || checkConfig.enabled === false) {
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
customChecks.push({
|
|
66
|
-
name,
|
|
67
|
-
description: `Custom check: ${name}`,
|
|
68
|
-
gate: checkConfig.gate,
|
|
69
|
-
run: (opts) => runCustomCommandCheck(name, checkConfig.command, opts),
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return customChecks;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get all available checks (built-in + custom)
|
|
77
|
-
*/
|
|
78
|
-
function getAllChecks(options) {
|
|
79
|
-
const customChecks = loadCustomChecks(options);
|
|
80
|
-
const customNames = new Set(customChecks.map(c => c.name));
|
|
81
|
-
// Start with built-in checks
|
|
82
|
-
const allChecks = [...builtinChecks];
|
|
83
|
-
// Add legacy checks only if not overridden by custom checks
|
|
84
|
-
for (const legacyCheck of legacyChecks) {
|
|
85
|
-
if (!customNames.has(legacyCheck.name)) {
|
|
86
|
-
allChecks.push(legacyCheck);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// Add custom checks
|
|
90
|
-
allChecks.push(...customChecks);
|
|
91
|
-
// Create index map to preserve original order within same gate
|
|
92
|
-
const indexMap = new Map(allChecks.map((c, i) => [c.name, i]));
|
|
93
|
-
// Sort by gate number (G1 → G2 → G3 → G4 → G5, then undefined)
|
|
94
|
-
// Within the same gate, preserve the order defined in guardrails.yaml
|
|
95
|
-
allChecks.sort((a, b) => {
|
|
96
|
-
const gateA = a.gate ?? 999;
|
|
97
|
-
const gateB = b.gate ?? 999;
|
|
98
|
-
if (gateA !== gateB) {
|
|
99
|
-
return gateA - gateB;
|
|
100
|
-
}
|
|
101
|
-
// Same gate: preserve original order (config file order)
|
|
102
|
-
return (indexMap.get(a.name) ?? 0) - (indexMap.get(b.name) ?? 0);
|
|
103
|
-
});
|
|
104
|
-
return allChecks;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Get list of available checks
|
|
108
|
-
*/
|
|
109
|
-
export function getAvailableChecks(options = {}) {
|
|
110
|
-
return getAllChecks(options);
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Filter checks based on options
|
|
114
|
-
*/
|
|
115
|
-
function filterChecks(allChecks, options) {
|
|
116
|
-
let filtered = [...allChecks];
|
|
117
|
-
// Filter by --gate (highest priority)
|
|
118
|
-
if (options.gates && options.gates.length > 0) {
|
|
119
|
-
filtered = filtered.filter(c => c.gate !== undefined && options.gates.includes(c.gate));
|
|
120
|
-
}
|
|
121
|
-
// Filter by --only
|
|
122
|
-
if (options.only && options.only.length > 0) {
|
|
123
|
-
filtered = filtered.filter(c => options.only.includes(c.name));
|
|
124
|
-
}
|
|
125
|
-
// Filter by --skip
|
|
126
|
-
if (options.skip && options.skip.length > 0) {
|
|
127
|
-
filtered = filtered.filter(c => !options.skip.includes(c.name));
|
|
128
|
-
}
|
|
129
|
-
return filtered;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Run all guardrail checks
|
|
133
|
-
*/
|
|
134
|
-
export async function runAllChecks(options = {}) {
|
|
135
|
-
const results = [];
|
|
136
|
-
const allChecks = getAllChecks(options);
|
|
137
|
-
const checksToRun = filterChecks(allChecks, options);
|
|
138
|
-
const skippedChecks = allChecks.filter(c => !checksToRun.includes(c));
|
|
139
|
-
// Add skipped results (by filter, not reported in streaming)
|
|
140
|
-
for (const check of skippedChecks) {
|
|
141
|
-
results.push({
|
|
142
|
-
name: check.name,
|
|
143
|
-
status: 'skip',
|
|
144
|
-
duration: 0,
|
|
145
|
-
message: 'Skipped by filter',
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
// Run enabled checks
|
|
149
|
-
for (const check of checksToRun) {
|
|
150
|
-
// Notify check is starting
|
|
151
|
-
if (options.onCheckStart) {
|
|
152
|
-
options.onCheckStart(check);
|
|
153
|
-
}
|
|
154
|
-
let result;
|
|
155
|
-
try {
|
|
156
|
-
result = await check.run(options);
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
result = {
|
|
160
|
-
name: check.name,
|
|
161
|
-
status: 'fail',
|
|
162
|
-
duration: 0,
|
|
163
|
-
message: error instanceof Error ? error.message : String(error),
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
results.push(result);
|
|
167
|
-
// Notify check completed
|
|
168
|
-
if (options.onCheckComplete) {
|
|
169
|
-
options.onCheckComplete(result, check);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
// Calculate summary
|
|
173
|
-
const passed = results.filter(r => r.status === 'pass').length;
|
|
174
|
-
const failed = results.filter(r => r.status === 'fail').length;
|
|
175
|
-
const skipped = results.filter(r => r.status === 'skip').length;
|
|
176
|
-
return {
|
|
177
|
-
passed,
|
|
178
|
-
failed,
|
|
179
|
-
skipped,
|
|
180
|
-
results,
|
|
181
|
-
checks: allChecks,
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Format a single check result for streaming output
|
|
186
|
-
*/
|
|
187
|
-
export function formatSingleCheckResult(result, check, verbose = false) {
|
|
188
|
-
const icon = result.status === 'pass' ? '✓' : result.status === 'fail' ? '✗' : '○';
|
|
189
|
-
const status = result.status.toUpperCase().padEnd(4);
|
|
190
|
-
const gateStr = check.gate !== undefined ? `[G${check.gate}] ` : '';
|
|
191
|
-
let output = ` ${icon} ${gateStr}${result.name.padEnd(20)} ${status} (${result.duration}ms)`;
|
|
192
|
-
if (result.message && (verbose || result.status !== 'pass')) {
|
|
193
|
-
output += `\n ${result.message}`;
|
|
194
|
-
}
|
|
195
|
-
return output;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Format check start message for streaming output
|
|
199
|
-
*/
|
|
200
|
-
export function formatCheckStart(check) {
|
|
201
|
-
const gateStr = check.gate !== undefined ? `[G${check.gate}] ` : '';
|
|
202
|
-
return ` ⋯ ${gateStr}${check.name.padEnd(20)} running...`;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Format summary only (for use after streaming individual results)
|
|
206
|
-
*/
|
|
207
|
-
export function formatCheckSummary(summary, checksWithGates) {
|
|
208
|
-
const lines = [];
|
|
209
|
-
// Summary
|
|
210
|
-
lines.push('');
|
|
211
|
-
lines.push('─'.repeat(50));
|
|
212
|
-
lines.push('');
|
|
213
|
-
lines.push(` Passed: ${summary.passed}`);
|
|
214
|
-
lines.push(` Failed: ${summary.failed}`);
|
|
215
|
-
if (summary.skipped > 0) {
|
|
216
|
-
lines.push(` Skipped: ${summary.skipped}`);
|
|
217
|
-
}
|
|
218
|
-
lines.push('');
|
|
219
|
-
if (summary.failed > 0) {
|
|
220
|
-
lines.push('❌ Some checks failed. Fix issues before committing.');
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
lines.push('✅ All checks passed!');
|
|
224
|
-
}
|
|
225
|
-
lines.push('');
|
|
226
|
-
// Show details for failed checks
|
|
227
|
-
const failedWithDetails = summary.results.filter(r => r.status === 'fail' && r.details && r.details.length > 0);
|
|
228
|
-
if (failedWithDetails.length > 0) {
|
|
229
|
-
lines.push('');
|
|
230
|
-
lines.push('━'.repeat(50));
|
|
231
|
-
lines.push('📋 Failed Check Details');
|
|
232
|
-
lines.push('━'.repeat(50));
|
|
233
|
-
for (const result of failedWithDetails) {
|
|
234
|
-
lines.push('');
|
|
235
|
-
lines.push(`▶ ${result.name}`);
|
|
236
|
-
lines.push('─'.repeat(40));
|
|
237
|
-
for (const detail of result.details) {
|
|
238
|
-
lines.push(` ${detail}`);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
lines.push('');
|
|
242
|
-
}
|
|
243
|
-
return lines.join('\n');
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Format check results for CLI output
|
|
247
|
-
*/
|
|
248
|
-
export function formatCheckResults(summary, verbose = false, checksWithGates) {
|
|
249
|
-
const lines = [];
|
|
250
|
-
lines.push('');
|
|
251
|
-
lines.push('🔍 AI Guardrail Check Results');
|
|
252
|
-
lines.push('═'.repeat(50));
|
|
253
|
-
lines.push('');
|
|
254
|
-
// Build a map of check name -> gate for display
|
|
255
|
-
const gateMap = new Map();
|
|
256
|
-
if (checksWithGates) {
|
|
257
|
-
for (const check of checksWithGates) {
|
|
258
|
-
gateMap.set(check.name, check.gate);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
// Group results by gate if gate info is available
|
|
262
|
-
const hasGateInfo = checksWithGates && checksWithGates.some(c => c.gate !== undefined);
|
|
263
|
-
if (hasGateInfo && verbose) {
|
|
264
|
-
// Group by gate for verbose output
|
|
265
|
-
const byGate = new Map();
|
|
266
|
-
for (const result of summary.results) {
|
|
267
|
-
const gate = gateMap.get(result.name);
|
|
268
|
-
if (!byGate.has(gate)) {
|
|
269
|
-
byGate.set(gate, []);
|
|
270
|
-
}
|
|
271
|
-
byGate.get(gate).push(result);
|
|
272
|
-
}
|
|
273
|
-
// Output by gate
|
|
274
|
-
const sortedGates = [...byGate.keys()].sort((a, b) => {
|
|
275
|
-
if (a === undefined)
|
|
276
|
-
return 1;
|
|
277
|
-
if (b === undefined)
|
|
278
|
-
return -1;
|
|
279
|
-
return a - b;
|
|
280
|
-
});
|
|
281
|
-
for (const gate of sortedGates) {
|
|
282
|
-
const results = byGate.get(gate);
|
|
283
|
-
if (gate !== undefined) {
|
|
284
|
-
lines.push(` Gate ${gate}: ${GATE_DESCRIPTIONS[gate]}`);
|
|
285
|
-
lines.push(' ' + '─'.repeat(40));
|
|
286
|
-
}
|
|
287
|
-
else {
|
|
288
|
-
lines.push(` Other Checks:`);
|
|
289
|
-
lines.push(' ' + '─'.repeat(40));
|
|
290
|
-
}
|
|
291
|
-
for (const result of results) {
|
|
292
|
-
const icon = result.status === 'pass' ? '✓' : result.status === 'fail' ? '✗' : '○';
|
|
293
|
-
const status = result.status.toUpperCase().padEnd(4);
|
|
294
|
-
lines.push(` ${icon} ${result.name.padEnd(20)} ${status} (${result.duration}ms)`);
|
|
295
|
-
if (result.message && (verbose || result.status !== 'pass')) {
|
|
296
|
-
lines.push(` ${result.message}`);
|
|
297
|
-
}
|
|
298
|
-
// Show details inline only for non-failed checks in verbose mode
|
|
299
|
-
// Failed check details are shown after the summary
|
|
300
|
-
if (verbose && result.details && result.status !== 'fail') {
|
|
301
|
-
for (const detail of result.details) {
|
|
302
|
-
lines.push(` ${detail}`);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
lines.push('');
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
// Flat output
|
|
311
|
-
for (const result of summary.results) {
|
|
312
|
-
const icon = result.status === 'pass' ? '✓' : result.status === 'fail' ? '✗' : '○';
|
|
313
|
-
const status = result.status.toUpperCase().padEnd(4);
|
|
314
|
-
const gate = gateMap.get(result.name);
|
|
315
|
-
const gateStr = gate !== undefined ? `[G${gate}] ` : '';
|
|
316
|
-
lines.push(` ${icon} ${gateStr}${result.name.padEnd(20)} ${status} (${result.duration}ms)`);
|
|
317
|
-
if (result.message && (verbose || result.status !== 'pass')) {
|
|
318
|
-
lines.push(` ${result.message}`);
|
|
319
|
-
}
|
|
320
|
-
// Show details inline only for non-failed checks in verbose mode
|
|
321
|
-
// Failed check details are shown after the summary
|
|
322
|
-
if (verbose && result.details && result.status !== 'fail') {
|
|
323
|
-
for (const detail of result.details) {
|
|
324
|
-
lines.push(` ${detail}`);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
// Summary
|
|
330
|
-
lines.push('');
|
|
331
|
-
lines.push('─'.repeat(50));
|
|
332
|
-
lines.push('');
|
|
333
|
-
lines.push(` Passed: ${summary.passed}`);
|
|
334
|
-
lines.push(` Failed: ${summary.failed}`);
|
|
335
|
-
if (summary.skipped > 0) {
|
|
336
|
-
lines.push(` Skipped: ${summary.skipped}`);
|
|
337
|
-
}
|
|
338
|
-
lines.push('');
|
|
339
|
-
if (summary.failed > 0) {
|
|
340
|
-
lines.push('❌ Some checks failed. Fix issues before committing.');
|
|
341
|
-
}
|
|
342
|
-
else {
|
|
343
|
-
lines.push('✅ All checks passed!');
|
|
344
|
-
}
|
|
345
|
-
lines.push('');
|
|
346
|
-
// Show details for failed checks (always shown, not just in verbose mode)
|
|
347
|
-
const failedWithDetails = summary.results.filter(r => r.status === 'fail' && r.details && r.details.length > 0);
|
|
348
|
-
if (failedWithDetails.length > 0) {
|
|
349
|
-
lines.push('');
|
|
350
|
-
lines.push('━'.repeat(50));
|
|
351
|
-
lines.push('📋 Failed Check Details');
|
|
352
|
-
lines.push('━'.repeat(50));
|
|
353
|
-
for (const result of failedWithDetails) {
|
|
354
|
-
lines.push('');
|
|
355
|
-
lines.push(`▶ ${result.name}`);
|
|
356
|
-
lines.push('─'.repeat(40));
|
|
357
|
-
for (const detail of result.details) {
|
|
358
|
-
lines.push(` ${detail}`);
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
lines.push('');
|
|
362
|
-
}
|
|
363
|
-
return lines.join('\n');
|
|
364
|
-
}
|
|
365
|
-
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/guardrails/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TypeScript type check for guardrails
|
|
3
|
-
*
|
|
4
|
-
* Runs tsc --noEmit to verify TypeScript compilation.
|
|
5
|
-
*/
|
|
6
|
-
import type { CheckResult, CheckOptions } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* Find tsconfig.json files
|
|
9
|
-
*/
|
|
10
|
-
export declare function findTsConfigs(baseDir?: string): string[];
|
|
11
|
-
/**
|
|
12
|
-
* Run TypeScript type check
|
|
13
|
-
*/
|
|
14
|
-
export declare function runTypecheckCheck(options: CheckOptions): Promise<CheckResult>;
|
|
15
|
-
//# sourceMappingURL=typecheck.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../../src/guardrails/typecheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAY,GAAG,MAAM,EAAE,CAmB7D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA2EnF"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TypeScript type check for guardrails
|
|
3
|
-
*
|
|
4
|
-
* Runs tsc --noEmit to verify TypeScript compilation.
|
|
5
|
-
*/
|
|
6
|
-
import { execSync } from 'child_process';
|
|
7
|
-
import fs from 'fs';
|
|
8
|
-
import path from 'path';
|
|
9
|
-
/**
|
|
10
|
-
* Find tsconfig.json files
|
|
11
|
-
*/
|
|
12
|
-
export function findTsConfigs(baseDir = '.') {
|
|
13
|
-
const configs = [];
|
|
14
|
-
// Check common locations
|
|
15
|
-
const candidates = [
|
|
16
|
-
'tsconfig.json',
|
|
17
|
-
'packages/contract/tsconfig.json',
|
|
18
|
-
'server/tsconfig.json',
|
|
19
|
-
'frontend/tsconfig.json',
|
|
20
|
-
];
|
|
21
|
-
for (const candidate of candidates) {
|
|
22
|
-
const fullPath = path.join(baseDir, candidate);
|
|
23
|
-
if (fs.existsSync(fullPath)) {
|
|
24
|
-
configs.push(fullPath);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return configs;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Run TypeScript type check
|
|
31
|
-
*/
|
|
32
|
-
export async function runTypecheckCheck(options) {
|
|
33
|
-
const start = Date.now();
|
|
34
|
-
try {
|
|
35
|
-
// Find tsconfig files
|
|
36
|
-
const tsconfigs = findTsConfigs();
|
|
37
|
-
if (tsconfigs.length === 0) {
|
|
38
|
-
return {
|
|
39
|
-
name: 'typecheck',
|
|
40
|
-
status: 'skip',
|
|
41
|
-
duration: Date.now() - start,
|
|
42
|
-
message: 'No tsconfig.json found',
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
const errors = [];
|
|
46
|
-
let hasErrors = false;
|
|
47
|
-
for (const tsconfig of tsconfigs) {
|
|
48
|
-
try {
|
|
49
|
-
// Run tsc --noEmit
|
|
50
|
-
execSync(`npx tsc --noEmit -p "${tsconfig}"`, {
|
|
51
|
-
encoding: 'utf8',
|
|
52
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
hasErrors = true;
|
|
57
|
-
if (error && typeof error === 'object' && 'stdout' in error) {
|
|
58
|
-
const output = error.stdout;
|
|
59
|
-
if (output) {
|
|
60
|
-
errors.push(`${tsconfig}:`);
|
|
61
|
-
// Parse tsc output for specific errors
|
|
62
|
-
const lines = output.split('\n').filter(line => line.includes('error TS'));
|
|
63
|
-
for (const line of lines.slice(0, 10)) { // Limit to first 10 errors
|
|
64
|
-
errors.push(` ${line.trim()}`);
|
|
65
|
-
}
|
|
66
|
-
if (lines.length > 10) {
|
|
67
|
-
errors.push(` ... and ${lines.length - 10} more errors`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else if (error && typeof error === 'object' && 'stderr' in error) {
|
|
72
|
-
const stderr = error.stderr;
|
|
73
|
-
if (stderr) {
|
|
74
|
-
errors.push(`${tsconfig}: ${stderr.trim()}`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (hasErrors) {
|
|
80
|
-
return {
|
|
81
|
-
name: 'typecheck',
|
|
82
|
-
status: 'fail',
|
|
83
|
-
duration: Date.now() - start,
|
|
84
|
-
message: `Type errors in ${errors.length > 0 ? 'config(s)' : 'project'}`,
|
|
85
|
-
details: errors,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
return {
|
|
89
|
-
name: 'typecheck',
|
|
90
|
-
status: 'pass',
|
|
91
|
-
duration: Date.now() - start,
|
|
92
|
-
message: `${tsconfigs.length} project(s) passed type check`,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
return {
|
|
97
|
-
name: 'typecheck',
|
|
98
|
-
status: 'fail',
|
|
99
|
-
duration: Date.now() - start,
|
|
100
|
-
message: error instanceof Error ? error.message : String(error),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=typecheck.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../src/guardrails/typecheck.ts"],"names":[],"mappings":"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"}
|