@codeledger/cli 0.2.1 → 0.5.1
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/artifacts/summary.d.ts +6 -0
- package/dist/artifacts/summary.d.ts.map +1 -0
- package/dist/artifacts/summary.js +49 -0
- package/dist/artifacts/summary.js.map +1 -0
- package/dist/commands/activate.d.ts.map +1 -1
- package/dist/commands/activate.js +155 -19
- package/dist/commands/activate.js.map +1 -1
- package/dist/commands/bundle.d.ts.map +1 -1
- package/dist/commands/bundle.js +28 -5
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/checkpoint.d.ts +26 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +382 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/cowork-snapshot.d.ts.map +1 -1
- package/dist/commands/cowork-snapshot.js +3 -2
- package/dist/commands/cowork-snapshot.js.map +1 -1
- package/dist/commands/doctor.d.ts +9 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +169 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +46 -12
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/intent.d.ts +37 -0
- package/dist/commands/intent.d.ts.map +1 -0
- package/dist/commands/intent.js +408 -0
- package/dist/commands/intent.js.map +1 -0
- package/dist/commands/manifest.d.ts +8 -0
- package/dist/commands/manifest.d.ts.map +1 -0
- package/dist/commands/manifest.js +144 -0
- package/dist/commands/manifest.js.map +1 -0
- package/dist/commands/policy.d.ts +8 -0
- package/dist/commands/policy.d.ts.map +1 -0
- package/dist/commands/policy.js +27 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/refine.d.ts.map +1 -1
- package/dist/commands/refine.js +16 -0
- package/dist/commands/refine.js.map +1 -1
- package/dist/commands/review-coverage.d.ts +12 -0
- package/dist/commands/review-coverage.d.ts.map +1 -0
- package/dist/commands/review-coverage.js +142 -0
- package/dist/commands/review-coverage.js.map +1 -0
- package/dist/commands/review-gate.d.ts +12 -0
- package/dist/commands/review-gate.d.ts.map +1 -0
- package/dist/commands/review-gate.js +130 -0
- package/dist/commands/review-gate.js.map +1 -0
- package/dist/commands/session-cleanup.js +1 -0
- package/dist/commands/session-cleanup.js.map +1 -1
- package/dist/commands/session-progress.d.ts.map +1 -1
- package/dist/commands/session-progress.js +29 -1
- package/dist/commands/session-progress.js.map +1 -1
- package/dist/commands/session-summary.d.ts.map +1 -1
- package/dist/commands/session-summary.js +620 -37
- package/dist/commands/session-summary.js.map +1 -1
- package/dist/commands/setup-ci.d.ts +9 -0
- package/dist/commands/setup-ci.d.ts.map +1 -0
- package/dist/commands/setup-ci.js +139 -0
- package/dist/commands/setup-ci.js.map +1 -0
- package/dist/commands/shared-summary.d.ts +15 -0
- package/dist/commands/shared-summary.d.ts.map +1 -0
- package/dist/commands/shared-summary.js +194 -0
- package/dist/commands/shared-summary.js.map +1 -0
- package/dist/commands/sign-manifest.d.ts +8 -0
- package/dist/commands/sign-manifest.d.ts.map +1 -0
- package/dist/commands/sign-manifest.js +58 -0
- package/dist/commands/sign-manifest.js.map +1 -0
- package/dist/commands/verify.d.ts +13 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +288 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +153 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/github-actions.d.ts +17 -0
- package/dist/integrations/github-actions.d.ts.map +1 -0
- package/dist/integrations/github-actions.js +64 -0
- package/dist/integrations/github-actions.js.map +1 -0
- package/dist/manifest/build.d.ts +19 -0
- package/dist/manifest/build.d.ts.map +1 -0
- package/dist/manifest/build.js +82 -0
- package/dist/manifest/build.js.map +1 -0
- package/dist/manifest/schema.d.ts +2 -0
- package/dist/manifest/schema.d.ts.map +1 -0
- package/dist/manifest/schema.js +2 -0
- package/dist/manifest/schema.js.map +1 -0
- package/dist/manifest/write.d.ts +13 -0
- package/dist/manifest/write.d.ts.map +1 -0
- package/dist/manifest/write.js +69 -0
- package/dist/manifest/write.js.map +1 -0
- package/dist/policy/load.d.ts +21 -0
- package/dist/policy/load.d.ts.map +1 -0
- package/dist/policy/load.js +63 -0
- package/dist/policy/load.js.map +1 -0
- package/dist/policy/resolve.d.ts +18 -0
- package/dist/policy/resolve.d.ts.map +1 -0
- package/dist/policy/resolve.js +86 -0
- package/dist/policy/resolve.js.map +1 -0
- package/dist/policy/schema.d.ts +22 -0
- package/dist/policy/schema.d.ts.map +1 -0
- package/dist/policy/schema.js +82 -0
- package/dist/policy/schema.js.map +1 -0
- package/dist/session-paths.d.ts +8 -0
- package/dist/session-paths.d.ts.map +1 -1
- package/dist/session-paths.js +16 -0
- package/dist/session-paths.js.map +1 -1
- package/dist/signing/canonicalize.d.ts +17 -0
- package/dist/signing/canonicalize.d.ts.map +1 -0
- package/dist/signing/canonicalize.js +50 -0
- package/dist/signing/canonicalize.js.map +1 -0
- package/dist/signing/hmac.d.ts +8 -0
- package/dist/signing/hmac.d.ts.map +1 -0
- package/dist/signing/hmac.js +16 -0
- package/dist/signing/hmac.js.map +1 -0
- package/dist/signing/signer.d.ts +16 -0
- package/dist/signing/signer.d.ts.map +1 -0
- package/dist/signing/signer.js +2 -0
- package/dist/signing/signer.js.map +1 -0
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +9 -2
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/templates/config.d.ts.map +1 -1
- package/dist/templates/config.js +48 -10
- package/dist/templates/config.js.map +1 -1
- package/dist/verify/evaluate.d.ts +10 -0
- package/dist/verify/evaluate.d.ts.map +1 -0
- package/dist/verify/evaluate.js +117 -0
- package/dist/verify/evaluate.js.map +1 -0
- package/dist/verify/policy-snapshot.d.ts +7 -0
- package/dist/verify/policy-snapshot.d.ts.map +1 -0
- package/dist/verify/policy-snapshot.js +36 -0
- package/dist/verify/policy-snapshot.js.map +1 -0
- package/dist/verify/report.d.ts +11 -0
- package/dist/verify/report.d.ts.map +1 -0
- package/dist/verify/report.js +64 -0
- package/dist/verify/report.js.map +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { execSync } from 'node:child_process';
|
|
4
|
+
import { buildBundleViaEngine } from '@codeledger/core-engine';
|
|
5
|
+
import { buildRepoIndex } from '@codeledger/repo';
|
|
6
|
+
import { intentHash as computeIntentHash, intentNorm as norm, intentNormArr as normArr, } from '@codeledger/selector';
|
|
7
|
+
import { buildManifest } from '../manifest/build.js';
|
|
8
|
+
import { writeManifest } from '../manifest/write.js';
|
|
9
|
+
import { resolvePolicy } from '../policy/resolve.js';
|
|
10
|
+
import { evaluatePolicy } from '../verify/evaluate.js';
|
|
11
|
+
import { buildVerifyReport } from '../verify/report.js';
|
|
12
|
+
import { writePolicySnapshot } from '../verify/policy-snapshot.js';
|
|
13
|
+
import { canonicalize } from '../signing/canonicalize.js';
|
|
14
|
+
import { createHmacSigner } from '../signing/hmac.js';
|
|
15
|
+
import { buildChecksSummary } from '../artifacts/summary.js';
|
|
16
|
+
import { isGitHubActions, emitAnnotations, writeStepSummary } from '../integrations/github-actions.js';
|
|
17
|
+
import { CLI_VERSION } from '../version.js';
|
|
18
|
+
/**
|
|
19
|
+
* `codeledger verify --task "..." [--policy-root <dir>] [--artifacts-dir <dir>]`
|
|
20
|
+
*
|
|
21
|
+
* CI enforcement bridge: build bundle → compute confidence/drift → resolve policy
|
|
22
|
+
* → evaluate violations → emit report + manifest + policy snapshot.
|
|
23
|
+
*
|
|
24
|
+
* Exit codes:
|
|
25
|
+
* 0 = pass (or observe/warn mode with violations)
|
|
26
|
+
* 1 = policy fail (block mode + violations)
|
|
27
|
+
* 2 = internal error
|
|
28
|
+
*/
|
|
29
|
+
export async function runVerify(cwd, flags) {
|
|
30
|
+
const task = flags['task'];
|
|
31
|
+
if (!task) {
|
|
32
|
+
console.error('--task is required. Usage: codeledger verify --task "your task description" [--policy-root <dir>]');
|
|
33
|
+
process.exit(2);
|
|
34
|
+
}
|
|
35
|
+
// Validate git repo
|
|
36
|
+
if (!existsSync(join(cwd, '.git'))) {
|
|
37
|
+
console.error('Not a git repository. codeledger verify requires a git repo.');
|
|
38
|
+
process.exit(2);
|
|
39
|
+
}
|
|
40
|
+
// Load config
|
|
41
|
+
const configPath = join(cwd, '.codeledger', 'config.json');
|
|
42
|
+
if (!existsSync(configPath)) {
|
|
43
|
+
console.error('No .codeledger/config.json found. Run "codeledger init" first.');
|
|
44
|
+
process.exit(2);
|
|
45
|
+
}
|
|
46
|
+
let config;
|
|
47
|
+
try {
|
|
48
|
+
config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
console.error('Failed to parse .codeledger/config.json. Check for syntax errors.');
|
|
52
|
+
process.exit(2);
|
|
53
|
+
}
|
|
54
|
+
// Resolve policy (may throw on malformed JSON → exit 2)
|
|
55
|
+
let policy;
|
|
56
|
+
try {
|
|
57
|
+
policy = resolvePolicy({
|
|
58
|
+
cwd,
|
|
59
|
+
policyRoot: flags['policy-root'],
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
console.error(err.message);
|
|
64
|
+
process.exit(2);
|
|
65
|
+
}
|
|
66
|
+
// Ensure repo index
|
|
67
|
+
const indexPath = join(cwd, config.workspace.cache_dir, 'repo-index.json');
|
|
68
|
+
if (!existsSync(indexPath)) {
|
|
69
|
+
buildRepoIndex({
|
|
70
|
+
root: cwd,
|
|
71
|
+
repoConfig: config.repo,
|
|
72
|
+
outputPath: indexPath,
|
|
73
|
+
log: () => { },
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
let repoIndex;
|
|
77
|
+
try {
|
|
78
|
+
repoIndex = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
console.error('Failed to parse repo index. Try running "codeledger scan" to rebuild it.');
|
|
82
|
+
process.exit(2);
|
|
83
|
+
}
|
|
84
|
+
// Build bundle using existing engine
|
|
85
|
+
let bundle;
|
|
86
|
+
try {
|
|
87
|
+
bundle = await buildBundleViaEngine({
|
|
88
|
+
taskText: task,
|
|
89
|
+
repoIndex,
|
|
90
|
+
selectorConfig: config.selector,
|
|
91
|
+
budget: config.selector.default_budget,
|
|
92
|
+
explain: false,
|
|
93
|
+
indexPath,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
console.error(`Bundle engine error: ${err.message}`);
|
|
98
|
+
process.exit(2);
|
|
99
|
+
}
|
|
100
|
+
// Compute intent hash
|
|
101
|
+
const contract = {
|
|
102
|
+
version: 1,
|
|
103
|
+
objective: task,
|
|
104
|
+
deliverable: null,
|
|
105
|
+
scope_in: [],
|
|
106
|
+
scope_out: [],
|
|
107
|
+
constraints: [],
|
|
108
|
+
acceptance_criteria: [],
|
|
109
|
+
risk_flags: [],
|
|
110
|
+
repo_paths_in_scope: [],
|
|
111
|
+
timestamp: '',
|
|
112
|
+
};
|
|
113
|
+
const intentHashValue = computeIntentHash(contract);
|
|
114
|
+
const normalizedIntent = {
|
|
115
|
+
acceptance_criteria: normArr(contract.acceptance_criteria),
|
|
116
|
+
constraints: normArr(contract.constraints),
|
|
117
|
+
deliverable: contract.deliverable ? norm(contract.deliverable) : null,
|
|
118
|
+
objective: norm(contract.objective),
|
|
119
|
+
repo_paths_in_scope: normArr(contract.repo_paths_in_scope),
|
|
120
|
+
risk_flags: normArr(contract.risk_flags),
|
|
121
|
+
scope_in: normArr(contract.scope_in),
|
|
122
|
+
scope_out: normArr(contract.scope_out),
|
|
123
|
+
version: contract.version,
|
|
124
|
+
};
|
|
125
|
+
// Determine artifacts directory
|
|
126
|
+
const commitSha = getCommitSha(cwd);
|
|
127
|
+
const artifactsBase = flags['artifacts-dir'] ?? join(cwd, '.codeledger', 'artifacts');
|
|
128
|
+
const sha = commitSha ?? 'unknown';
|
|
129
|
+
const artifactsDir = join(artifactsBase, sha);
|
|
130
|
+
mkdirSync(artifactsDir, { recursive: true });
|
|
131
|
+
// Compute drift from previous manifest (if exists)
|
|
132
|
+
const driftScore = computeDriftFromBaseline(artifactsBase, intentHashValue);
|
|
133
|
+
// Build manifest (Phase 1 — unchanged, no policy fields)
|
|
134
|
+
const repoName = getRepoName(cwd);
|
|
135
|
+
const manifest = buildManifest({
|
|
136
|
+
bundle,
|
|
137
|
+
repoRoot: cwd,
|
|
138
|
+
repoName,
|
|
139
|
+
commitSha,
|
|
140
|
+
codeledgerVersion: CLI_VERSION,
|
|
141
|
+
intentNormalized: normalizedIntent,
|
|
142
|
+
intentHash: intentHashValue,
|
|
143
|
+
driftScore,
|
|
144
|
+
});
|
|
145
|
+
// Load optional coverage attestation
|
|
146
|
+
let coverageAttestation;
|
|
147
|
+
const coverageAttestationPath = flags['coverage-attestation'];
|
|
148
|
+
if (coverageAttestationPath && existsSync(coverageAttestationPath)) {
|
|
149
|
+
try {
|
|
150
|
+
coverageAttestation = JSON.parse(readFileSync(coverageAttestationPath, 'utf-8'));
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
console.error(`Warning: Failed to parse coverage attestation at ${coverageAttestationPath}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Evaluate policy violations
|
|
157
|
+
const violations = evaluatePolicy(manifest, policy, coverageAttestation);
|
|
158
|
+
// Build verify report
|
|
159
|
+
const report = buildVerifyReport({
|
|
160
|
+
manifest,
|
|
161
|
+
policy,
|
|
162
|
+
violations,
|
|
163
|
+
codeledgerVersion: CLI_VERSION,
|
|
164
|
+
});
|
|
165
|
+
// Write all artifacts
|
|
166
|
+
const manifestPath = join(artifactsDir, 'context-manifest.json');
|
|
167
|
+
writeManifest(manifest, manifestPath);
|
|
168
|
+
const reportPath = join(artifactsDir, 'verify-report.json');
|
|
169
|
+
writeFileSync(reportPath, JSON.stringify(report, null, 2) + '\n');
|
|
170
|
+
const snapshotPath = join(artifactsDir, 'policy-snapshot.json');
|
|
171
|
+
writePolicySnapshot(policy, snapshotPath);
|
|
172
|
+
// Optionally sign manifest if secret is present
|
|
173
|
+
const secret = process.env['CODELEDGER_SIGNING_SECRET'];
|
|
174
|
+
if (secret) {
|
|
175
|
+
const signedPath = join(artifactsDir, 'signed-context-manifest.json');
|
|
176
|
+
const canonical = canonicalize(manifest);
|
|
177
|
+
const signer = createHmacSigner(secret);
|
|
178
|
+
const signatureValue = await signer.sign(Buffer.from(canonical, 'utf-8'));
|
|
179
|
+
const signed = {
|
|
180
|
+
schema_version: 'mustang/signed-manifest/v1',
|
|
181
|
+
payload: manifest,
|
|
182
|
+
signature: {
|
|
183
|
+
alg: signer.alg,
|
|
184
|
+
value: signatureValue,
|
|
185
|
+
key_id: signer.keyId,
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
writeFileSync(signedPath, JSON.stringify(signed, null, 2) + '\n');
|
|
189
|
+
}
|
|
190
|
+
// Write checks-summary.txt (Phase 5)
|
|
191
|
+
const summaryText = buildChecksSummary(report);
|
|
192
|
+
writeFileSync(join(artifactsDir, 'checks-summary.txt'), summaryText);
|
|
193
|
+
// GitHub Actions annotations (Phase 5)
|
|
194
|
+
if (isGitHubActions()) {
|
|
195
|
+
if (violations.length > 0) {
|
|
196
|
+
emitAnnotations(report);
|
|
197
|
+
}
|
|
198
|
+
writeStepSummary(report, summaryText);
|
|
199
|
+
}
|
|
200
|
+
// Mode-specific output
|
|
201
|
+
if (policy.mode === 'warn' && violations.length > 0) {
|
|
202
|
+
for (const v of violations) {
|
|
203
|
+
console.error(`Warning: [${v.code}] ${v.message}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Summary
|
|
207
|
+
const status = report.decision.passed ? 'PASS' : 'FAIL';
|
|
208
|
+
console.log(`Verify: ${status} (${policy.mode} mode, ${violations.length} violation(s))`);
|
|
209
|
+
console.log(`Artifacts: ${artifactsDir}`);
|
|
210
|
+
// Exit code based on mode
|
|
211
|
+
if (!report.decision.passed) {
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function getRepoName(cwd) {
|
|
216
|
+
try {
|
|
217
|
+
const url = execSync('git remote get-url origin', {
|
|
218
|
+
cwd,
|
|
219
|
+
encoding: 'utf-8',
|
|
220
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
221
|
+
}).trim();
|
|
222
|
+
const parts = url.replace(/\.git$/, '').split('/');
|
|
223
|
+
return parts[parts.length - 1] ?? 'unknown';
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
const parts = cwd.replace(/\/$/, '').split('/');
|
|
227
|
+
return parts[parts.length - 1] ?? 'unknown';
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
function getCommitSha(cwd) {
|
|
231
|
+
try {
|
|
232
|
+
return execSync('git rev-parse HEAD', {
|
|
233
|
+
cwd,
|
|
234
|
+
encoding: 'utf-8',
|
|
235
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
236
|
+
}).trim();
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Compute drift from the most recent baseline manifest in the artifacts directory.
|
|
244
|
+
* If no previous manifest exists, drift is 0.0 (first run).
|
|
245
|
+
*/
|
|
246
|
+
function computeDriftFromBaseline(artifactsBase, currentIntentHash) {
|
|
247
|
+
if (!existsSync(artifactsBase))
|
|
248
|
+
return 0.0;
|
|
249
|
+
// Walk artifact subdirectories to find the most recent context-manifest.json
|
|
250
|
+
// (by directory name, which is a commit sha)
|
|
251
|
+
try {
|
|
252
|
+
const { readdirSync, statSync } = require('node:fs');
|
|
253
|
+
const entries = readdirSync(artifactsBase);
|
|
254
|
+
let latestManifest = null;
|
|
255
|
+
let latestMtime = 0;
|
|
256
|
+
for (const entry of entries) {
|
|
257
|
+
const manifestPath = join(artifactsBase, entry, 'context-manifest.json');
|
|
258
|
+
if (existsSync(manifestPath)) {
|
|
259
|
+
const mtime = statSync(manifestPath).mtimeMs;
|
|
260
|
+
if (mtime > latestMtime) {
|
|
261
|
+
try {
|
|
262
|
+
const content = readFileSync(manifestPath, 'utf-8');
|
|
263
|
+
const parsed = JSON.parse(content);
|
|
264
|
+
if (parsed.intent?.intent_hash) {
|
|
265
|
+
latestManifest = parsed;
|
|
266
|
+
latestMtime = mtime;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// Skip malformed files
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
if (!latestManifest)
|
|
276
|
+
return 0.0;
|
|
277
|
+
if (latestManifest.intent.intent_hash === currentIntentHash)
|
|
278
|
+
return 0.0;
|
|
279
|
+
// Different intent hash — basic drift detection
|
|
280
|
+
// Full drift would require the original TaskContractV1; for CI we use a
|
|
281
|
+
// simple binary: same hash = 0, different hash = a moderate drift signal
|
|
282
|
+
return 0.3;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return 0.0;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAoCA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBhE"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,17 @@ import { runCoworkStart } from './commands/cowork-start.js';
|
|
|
17
17
|
import { runCoworkRefresh } from './commands/cowork-refresh.js';
|
|
18
18
|
import { runCoworkSnapshot } from './commands/cowork-snapshot.js';
|
|
19
19
|
import { runCoworkStop } from './commands/cowork-stop.js';
|
|
20
|
+
import { runDoctor } from './commands/doctor.js';
|
|
21
|
+
import { runCheckpoint } from './commands/checkpoint.js';
|
|
22
|
+
import { runSharedSummary } from './commands/shared-summary.js';
|
|
23
|
+
import { runIntent } from './commands/intent.js';
|
|
24
|
+
import { runManifest } from './commands/manifest.js';
|
|
25
|
+
import { runSignManifest } from './commands/sign-manifest.js';
|
|
26
|
+
import { runPolicy } from './commands/policy.js';
|
|
27
|
+
import { runVerify } from './commands/verify.js';
|
|
28
|
+
import { runSetupCi } from './commands/setup-ci.js';
|
|
29
|
+
import { runReviewCoverage } from './commands/review-coverage.js';
|
|
30
|
+
import { runReviewGate } from './commands/review-gate.js';
|
|
20
31
|
import { CLI_VERSION } from './version.js';
|
|
21
32
|
const args = process.argv.slice(2);
|
|
22
33
|
const command = args[0];
|
|
@@ -27,7 +38,7 @@ export function parseArgs(argv) {
|
|
|
27
38
|
if (arg.startsWith('--')) {
|
|
28
39
|
const key = arg.slice(2);
|
|
29
40
|
const next = argv[i + 1];
|
|
30
|
-
if (next && !next.startsWith('--')) {
|
|
41
|
+
if (next !== undefined && !next.startsWith('--')) {
|
|
31
42
|
result[key] = next;
|
|
32
43
|
i++;
|
|
33
44
|
}
|
|
@@ -38,10 +49,47 @@ export function parseArgs(argv) {
|
|
|
38
49
|
}
|
|
39
50
|
return result;
|
|
40
51
|
}
|
|
52
|
+
// Known flags per command for unknown flag warnings (Fix 2.3)
|
|
53
|
+
const KNOWN_FLAGS = {
|
|
54
|
+
activate: new Set(['task', 'scope', 'branch-aware', 'continue', 'near-misses', 'blast-radius', 'expand', 'layer-order', 'explain', 'budget', 'max-files', 'session', 'quiet', 'stale-after', 'mode', 'coverage-threshold']),
|
|
55
|
+
bundle: new Set(['task', 'json', 'scope', 'near-misses', 'blast-radius', 'explain', 'expand', 'layer-order', 'budget', 'max-files']),
|
|
56
|
+
refine: new Set(['learned', 'drop', 'add-keywords', 'budget', 'max-files', 'session']),
|
|
57
|
+
'session-summary': new Set(['session', 'quiet', 'final']),
|
|
58
|
+
'session-progress': new Set(['session', 'quiet']),
|
|
59
|
+
checkpoint: new Set(['session', 'quiet', 'id']),
|
|
60
|
+
intent: new Set(['objective', 'deliverable', 'scope-in', 'scope-out', 'constraint', 'accept', 'risk', 'paths', 'session', 'as-baseline']),
|
|
61
|
+
manifest: new Set(['task', 'out', 'artifacts-dir']),
|
|
62
|
+
'sign-manifest': new Set(['in', 'out']),
|
|
63
|
+
policy: new Set(['print', 'policy-root']),
|
|
64
|
+
'setup-ci': new Set(['mode', 'output']),
|
|
65
|
+
verify: new Set(['task', 'policy-root', 'artifacts-dir', 'coverage-attestation']),
|
|
66
|
+
init: new Set(['force']),
|
|
67
|
+
'review-coverage': new Set(['session']),
|
|
68
|
+
'review-gate': new Set(['session']),
|
|
69
|
+
};
|
|
70
|
+
function warnUnknownFlags(command, flags) {
|
|
71
|
+
const known = KNOWN_FLAGS[command];
|
|
72
|
+
if (!known)
|
|
73
|
+
return;
|
|
74
|
+
for (const key of Object.keys(flags)) {
|
|
75
|
+
if (key === '_sub')
|
|
76
|
+
continue; // internal
|
|
77
|
+
if (!known.has(key)) {
|
|
78
|
+
// Check for close matches (common typos: plural/singular)
|
|
79
|
+
let hint = '';
|
|
80
|
+
const singular = key.endsWith('s') ? key.slice(0, -1) : key + 's';
|
|
81
|
+
if (known.has(singular)) {
|
|
82
|
+
hint = ` Did you mean "--${singular}"?`;
|
|
83
|
+
}
|
|
84
|
+
console.error(`Warning: Unknown flag "--${key}" ignored.${hint}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
41
88
|
async function main() {
|
|
42
89
|
switch (command) {
|
|
43
90
|
case 'init': {
|
|
44
91
|
const initFlags = parseArgs(args.slice(1));
|
|
92
|
+
warnUnknownFlags('init', initFlags);
|
|
45
93
|
await runInit(process.cwd(), initFlags);
|
|
46
94
|
break;
|
|
47
95
|
}
|
|
@@ -50,11 +98,13 @@ async function main() {
|
|
|
50
98
|
break;
|
|
51
99
|
case 'bundle': {
|
|
52
100
|
const flags = parseArgs(args.slice(1));
|
|
101
|
+
warnUnknownFlags('bundle', flags);
|
|
53
102
|
await runBundle(process.cwd(), flags);
|
|
54
103
|
break;
|
|
55
104
|
}
|
|
56
105
|
case 'activate': {
|
|
57
106
|
const activateFlags = parseArgs(args.slice(1));
|
|
107
|
+
warnUnknownFlags('activate', activateFlags);
|
|
58
108
|
await runActivate(process.cwd(), activateFlags);
|
|
59
109
|
break;
|
|
60
110
|
}
|
|
@@ -70,11 +120,13 @@ async function main() {
|
|
|
70
120
|
}
|
|
71
121
|
case 'session-summary': {
|
|
72
122
|
const summaryFlags = parseArgs(args.slice(1));
|
|
123
|
+
warnUnknownFlags('session-summary', summaryFlags);
|
|
73
124
|
await runSessionSummary(process.cwd(), summaryFlags);
|
|
74
125
|
break;
|
|
75
126
|
}
|
|
76
127
|
case 'session-progress': {
|
|
77
128
|
const progressFlags = parseArgs(args.slice(1));
|
|
129
|
+
warnUnknownFlags('session-progress', progressFlags);
|
|
78
130
|
await runSessionProgress(process.cwd(), progressFlags);
|
|
79
131
|
break;
|
|
80
132
|
}
|
|
@@ -95,6 +147,7 @@ async function main() {
|
|
|
95
147
|
}
|
|
96
148
|
case 'refine': {
|
|
97
149
|
const refineFlags = parseArgs(args.slice(1));
|
|
150
|
+
warnUnknownFlags('refine', refineFlags);
|
|
98
151
|
await runRefine(process.cwd(), refineFlags);
|
|
99
152
|
break;
|
|
100
153
|
}
|
|
@@ -126,6 +179,76 @@ async function main() {
|
|
|
126
179
|
await runCoworkStop(process.cwd(), coworkStopFlags);
|
|
127
180
|
break;
|
|
128
181
|
}
|
|
182
|
+
case 'doctor':
|
|
183
|
+
await runDoctor(process.cwd());
|
|
184
|
+
break;
|
|
185
|
+
case 'checkpoint': {
|
|
186
|
+
const checkpointFlags = parseArgs(args.slice(2));
|
|
187
|
+
// First positional arg after 'checkpoint' is the subcommand
|
|
188
|
+
checkpointFlags['_sub'] = args[1] ?? 'create';
|
|
189
|
+
// Capture positional checkpoint ID: `checkpoint restore cp-abc123`
|
|
190
|
+
if (args[2] && !args[2].startsWith('--')) {
|
|
191
|
+
checkpointFlags['id'] = args[2];
|
|
192
|
+
}
|
|
193
|
+
warnUnknownFlags('checkpoint', checkpointFlags);
|
|
194
|
+
await runCheckpoint(process.cwd(), checkpointFlags);
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
case 'shared-summary': {
|
|
198
|
+
const sharedSummaryFlags = parseArgs(args.slice(1));
|
|
199
|
+
await runSharedSummary(process.cwd(), sharedSummaryFlags);
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
case 'manifest': {
|
|
203
|
+
const manifestFlags = parseArgs(args.slice(1));
|
|
204
|
+
warnUnknownFlags('manifest', manifestFlags);
|
|
205
|
+
await runManifest(process.cwd(), manifestFlags);
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
case 'sign-manifest': {
|
|
209
|
+
const signFlags = parseArgs(args.slice(1));
|
|
210
|
+
warnUnknownFlags('sign-manifest', signFlags);
|
|
211
|
+
await runSignManifest(process.cwd(), signFlags);
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
case 'policy': {
|
|
215
|
+
const policyFlags = parseArgs(args.slice(1));
|
|
216
|
+
warnUnknownFlags('policy', policyFlags);
|
|
217
|
+
await runPolicy(process.cwd(), policyFlags);
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
case 'verify': {
|
|
221
|
+
const verifyFlags = parseArgs(args.slice(1));
|
|
222
|
+
warnUnknownFlags('verify', verifyFlags);
|
|
223
|
+
await runVerify(process.cwd(), verifyFlags);
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
case 'setup-ci': {
|
|
227
|
+
const setupCiFlags = parseArgs(args.slice(1));
|
|
228
|
+
warnUnknownFlags('setup-ci', setupCiFlags);
|
|
229
|
+
await runSetupCi(process.cwd(), setupCiFlags);
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
case 'intent': {
|
|
233
|
+
const intentFlags = parseArgs(args.slice(2));
|
|
234
|
+
// First positional arg after 'intent' is the subcommand
|
|
235
|
+
intentFlags['_sub'] = args[1] ?? 'show';
|
|
236
|
+
warnUnknownFlags('intent', intentFlags);
|
|
237
|
+
await runIntent(process.cwd(), intentFlags);
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
case 'review-coverage': {
|
|
241
|
+
const rcFlags = parseArgs(args.slice(1));
|
|
242
|
+
warnUnknownFlags('review-coverage', rcFlags);
|
|
243
|
+
await runReviewCoverage(process.cwd(), rcFlags);
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
case 'review-gate': {
|
|
247
|
+
const rgFlags = parseArgs(args.slice(1));
|
|
248
|
+
warnUnknownFlags('review-gate', rgFlags);
|
|
249
|
+
await runReviewGate(process.cwd(), rgFlags);
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
129
252
|
case 'version':
|
|
130
253
|
case '--version':
|
|
131
254
|
case '-v':
|
|
@@ -158,7 +281,7 @@ Commands:
|
|
|
158
281
|
activate [--task ".."] Scan-if-stale + bundle + write active-bundle.md
|
|
159
282
|
[--scope "p1,p2"] [--branch-aware] [--continue]
|
|
160
283
|
[--near-misses] [--blast-radius] [--expand] [--layer-order]
|
|
161
|
-
[--explain]
|
|
284
|
+
[--explain] [--mode edit|review] [--coverage-threshold 0.90]
|
|
162
285
|
Without --task: scan-only (warms index, no bundle)
|
|
163
286
|
refine --learned "..." Re-score bundle mid-session with new context
|
|
164
287
|
[--drop "f1,f2"] [--add-keywords "k1,k2"]
|
|
@@ -166,11 +289,39 @@ Commands:
|
|
|
166
289
|
compare --scenario A/B comparison: with vs without CodeLedger context
|
|
167
290
|
session-progress Write progress snapshot to .codeledger/session-progress.md
|
|
168
291
|
session-summary Show session-end value recap (bundle recall, token savings)
|
|
292
|
+
[--final] Show per-task breakdown for multi-task sessions
|
|
169
293
|
session-init Initialize a new session (returns session ID)
|
|
170
294
|
session-cleanup Clean up a session's state files and registry entry
|
|
171
295
|
sessions List active sessions and file overlaps
|
|
172
296
|
share [--format ..] Generate shareable result snippet (twitter|linkedin|markdown)
|
|
173
297
|
clean Remove orphaned worktrees from previous crashed runs
|
|
298
|
+
doctor Integration health check (config, hooks, index, ledger)
|
|
299
|
+
checkpoint [create|restore|list]
|
|
300
|
+
Save/restore incremental session checkpoints
|
|
301
|
+
[--session <id>] [--id <checkpoint-id>]
|
|
302
|
+
shared-summary Cross-session summary (all active agents, overlaps, hotspots)
|
|
303
|
+
[--all] (include stopped sessions)
|
|
304
|
+
manifest --task "..." Generate deterministic context manifest (evidence payload)
|
|
305
|
+
[--out <path>] [--artifacts-dir <dir>]
|
|
306
|
+
sign-manifest Sign a manifest with HMAC-SHA256 (tamper evidence)
|
|
307
|
+
--in <manifest.json> --out <signed.json>
|
|
308
|
+
policy --print Show resolved policy for current repo
|
|
309
|
+
[--policy-root <dir>]
|
|
310
|
+
verify --task "..." CI enforcement: evaluate policy, emit artifacts, return exit code
|
|
311
|
+
[--policy-root <dir>] [--artifacts-dir <dir>]
|
|
312
|
+
setup-ci Generate GitHub Actions workflow + policy for CI integration
|
|
313
|
+
[--mode observe|warn|block] [--output <dir>]
|
|
314
|
+
intent [init|show|set|ack]
|
|
315
|
+
Intent governance (deterministic drift detection)
|
|
316
|
+
init: --objective "..." [--constraint "..."] [--scope-in "..."]
|
|
317
|
+
set: --objective|--constraint|--scope-in|--scope-out "..."
|
|
318
|
+
ack: [--as-baseline] acknowledge intent drift
|
|
319
|
+
|
|
320
|
+
Review Coverage (Sentinel):
|
|
321
|
+
review-coverage Check current review coverage mid-session
|
|
322
|
+
[--session <id>]
|
|
323
|
+
review-gate Gatekeeper check (called by hook, not manually)
|
|
324
|
+
[--session <id>]
|
|
174
325
|
|
|
175
326
|
Cowork (Knowledge Mode):
|
|
176
327
|
cowork-start Scan workspace + generate context bundle for Cowork
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACnB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8DAA8D;AAC9D,MAAM,WAAW,GAAgC;IAC/C,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC3N,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpI,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACtF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,kBAAkB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACzI,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACnD,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACzC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;IACjF,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACxB,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;CACpC,CAAC;AAEF,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAA6B;IACtE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,MAAM;YAAE,SAAS,CAAC,WAAW;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,0DAA0D;YAC1D,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;YAClE,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,IAAI,GAAG,oBAAoB,QAAQ,IAAI,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,aAAa,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACpC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QAED,KAAK,MAAM;YACT,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7B,MAAM;QAER,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC5C,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,gBAAgB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAClD,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YACrD,MAAM;QACR,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;YACpD,MAAM,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;YACvD,MAAM;QACR,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACtD,MAAM;QACR,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC5D,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;QAED,KAAK,OAAO;YACV,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9B,MAAM;QAER,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;YAC1C,MAAM;QACR,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACtD,MAAM;QACR,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;YAC1D,MAAM;QACR,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC5D,MAAM;QACR,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;YACpD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/B,MAAM;QAER,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,4DAA4D;YAC5D,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YAC9C,mEAAmE;YACnE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,gBAAgB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;YAChD,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;YACpD,MAAM;QACR,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;YAC1D,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC5C,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC3C,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,wDAAwD;YACxD,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;YACxC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,SAAS,EAAE,CAAC;YACZ,MAAM;QAER;YACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;YAC/C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;uBACS,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEjC,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { VerifyReportV1 } from '@codeledger/types';
|
|
2
|
+
/**
|
|
3
|
+
* Detect if running inside GitHub Actions.
|
|
4
|
+
*/
|
|
5
|
+
export declare function isGitHubActions(): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Emit GitHub Actions annotations for violations.
|
|
8
|
+
*
|
|
9
|
+
* - DENY_PATH_MATCH → ::error file=<path>,line=1:: (annotates the file)
|
|
10
|
+
* - All other codes → ::error:: (no file reference, aggregate metric)
|
|
11
|
+
*/
|
|
12
|
+
export declare function emitAnnotations(report: VerifyReportV1): void;
|
|
13
|
+
/**
|
|
14
|
+
* Write a step summary to $GITHUB_STEP_SUMMARY as markdown.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeStepSummary(report: VerifyReportV1, _summaryText: string): void;
|
|
17
|
+
//# sourceMappingURL=github-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-actions.d.ts","sourceRoot":"","sources":["../../src/integrations/github-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQ5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CA0CnF"}
|