@codeledger/cli 0.5.0 → 0.6.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 (124) hide show
  1. package/dist/artifacts/summary.d.ts +6 -0
  2. package/dist/artifacts/summary.d.ts.map +1 -0
  3. package/dist/artifacts/summary.js +49 -0
  4. package/dist/artifacts/summary.js.map +1 -0
  5. package/dist/commands/activate.d.ts.map +1 -1
  6. package/dist/commands/activate.js +64 -23
  7. package/dist/commands/activate.js.map +1 -1
  8. package/dist/commands/bundle.d.ts.map +1 -1
  9. package/dist/commands/bundle.js +28 -5
  10. package/dist/commands/bundle.js.map +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +10 -12
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/intent.d.ts.map +1 -1
  15. package/dist/commands/intent.js +17 -2
  16. package/dist/commands/intent.js.map +1 -1
  17. package/dist/commands/manifest.d.ts +8 -0
  18. package/dist/commands/manifest.d.ts.map +1 -0
  19. package/dist/commands/manifest.js +144 -0
  20. package/dist/commands/manifest.js.map +1 -0
  21. package/dist/commands/policy.d.ts +8 -0
  22. package/dist/commands/policy.d.ts.map +1 -0
  23. package/dist/commands/policy.js +27 -0
  24. package/dist/commands/policy.js.map +1 -0
  25. package/dist/commands/progress-check.d.ts +14 -0
  26. package/dist/commands/progress-check.d.ts.map +1 -0
  27. package/dist/commands/progress-check.js +153 -0
  28. package/dist/commands/progress-check.js.map +1 -0
  29. package/dist/commands/review-coverage.d.ts +12 -0
  30. package/dist/commands/review-coverage.d.ts.map +1 -0
  31. package/dist/commands/review-coverage.js +142 -0
  32. package/dist/commands/review-coverage.js.map +1 -0
  33. package/dist/commands/review-gate.d.ts +12 -0
  34. package/dist/commands/review-gate.d.ts.map +1 -0
  35. package/dist/commands/review-gate.js +130 -0
  36. package/dist/commands/review-gate.js.map +1 -0
  37. package/dist/commands/session-summary.d.ts.map +1 -1
  38. package/dist/commands/session-summary.js +39 -5
  39. package/dist/commands/session-summary.js.map +1 -1
  40. package/dist/commands/setup-ci.d.ts +9 -0
  41. package/dist/commands/setup-ci.d.ts.map +1 -0
  42. package/dist/commands/setup-ci.js +139 -0
  43. package/dist/commands/setup-ci.js.map +1 -0
  44. package/dist/commands/sign-manifest.d.ts +8 -0
  45. package/dist/commands/sign-manifest.d.ts.map +1 -0
  46. package/dist/commands/sign-manifest.js +58 -0
  47. package/dist/commands/sign-manifest.js.map +1 -0
  48. package/dist/commands/vendor.d.ts +20 -0
  49. package/dist/commands/vendor.d.ts.map +1 -0
  50. package/dist/commands/vendor.js +157 -0
  51. package/dist/commands/vendor.js.map +1 -0
  52. package/dist/commands/verify.d.ts +13 -0
  53. package/dist/commands/verify.d.ts.map +1 -0
  54. package/dist/commands/verify.js +288 -0
  55. package/dist/commands/verify.js.map +1 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +98 -2
  58. package/dist/index.js.map +1 -1
  59. package/dist/integrations/github-actions.d.ts +17 -0
  60. package/dist/integrations/github-actions.d.ts.map +1 -0
  61. package/dist/integrations/github-actions.js +64 -0
  62. package/dist/integrations/github-actions.js.map +1 -0
  63. package/dist/manifest/build.d.ts +19 -0
  64. package/dist/manifest/build.d.ts.map +1 -0
  65. package/dist/manifest/build.js +82 -0
  66. package/dist/manifest/build.js.map +1 -0
  67. package/dist/manifest/schema.d.ts +2 -0
  68. package/dist/manifest/schema.d.ts.map +1 -0
  69. package/dist/manifest/schema.js +2 -0
  70. package/dist/manifest/schema.js.map +1 -0
  71. package/dist/manifest/write.d.ts +13 -0
  72. package/dist/manifest/write.d.ts.map +1 -0
  73. package/dist/manifest/write.js +69 -0
  74. package/dist/manifest/write.js.map +1 -0
  75. package/dist/policy/load.d.ts +21 -0
  76. package/dist/policy/load.d.ts.map +1 -0
  77. package/dist/policy/load.js +63 -0
  78. package/dist/policy/load.js.map +1 -0
  79. package/dist/policy/resolve.d.ts +18 -0
  80. package/dist/policy/resolve.d.ts.map +1 -0
  81. package/dist/policy/resolve.js +86 -0
  82. package/dist/policy/resolve.js.map +1 -0
  83. package/dist/policy/schema.d.ts +22 -0
  84. package/dist/policy/schema.d.ts.map +1 -0
  85. package/dist/policy/schema.js +82 -0
  86. package/dist/policy/schema.js.map +1 -0
  87. package/dist/session-paths.d.ts +6 -0
  88. package/dist/session-paths.d.ts.map +1 -1
  89. package/dist/session-paths.js +12 -0
  90. package/dist/session-paths.js.map +1 -1
  91. package/dist/signing/canonicalize.d.ts +17 -0
  92. package/dist/signing/canonicalize.d.ts.map +1 -0
  93. package/dist/signing/canonicalize.js +50 -0
  94. package/dist/signing/canonicalize.js.map +1 -0
  95. package/dist/signing/hmac.d.ts +8 -0
  96. package/dist/signing/hmac.d.ts.map +1 -0
  97. package/dist/signing/hmac.js +16 -0
  98. package/dist/signing/hmac.js.map +1 -0
  99. package/dist/signing/signer.d.ts +16 -0
  100. package/dist/signing/signer.d.ts.map +1 -0
  101. package/dist/signing/signer.js +2 -0
  102. package/dist/signing/signer.js.map +1 -0
  103. package/dist/templates/claude-md.d.ts.map +1 -1
  104. package/dist/templates/claude-md.js +61 -3
  105. package/dist/templates/claude-md.js.map +1 -1
  106. package/dist/templates/config.d.ts.map +1 -1
  107. package/dist/templates/config.js +3 -0
  108. package/dist/templates/config.js.map +1 -1
  109. package/dist/templates/hooks.d.ts.map +1 -1
  110. package/dist/templates/hooks.js +35 -2
  111. package/dist/templates/hooks.js.map +1 -1
  112. package/dist/verify/evaluate.d.ts +10 -0
  113. package/dist/verify/evaluate.d.ts.map +1 -0
  114. package/dist/verify/evaluate.js +117 -0
  115. package/dist/verify/evaluate.js.map +1 -0
  116. package/dist/verify/policy-snapshot.d.ts +7 -0
  117. package/dist/verify/policy-snapshot.d.ts.map +1 -0
  118. package/dist/verify/policy-snapshot.js +36 -0
  119. package/dist/verify/policy-snapshot.js.map +1 -0
  120. package/dist/verify/report.d.ts +11 -0
  121. package/dist/verify/report.d.ts.map +1 -0
  122. package/dist/verify/report.js +64 -0
  123. package/dist/verify/report.js.map +1 -0
  124. package/package.json +10 -10
package/dist/index.js CHANGED
@@ -21,6 +21,15 @@ import { runDoctor } from './commands/doctor.js';
21
21
  import { runCheckpoint } from './commands/checkpoint.js';
22
22
  import { runSharedSummary } from './commands/shared-summary.js';
23
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';
31
+ import { runProgressCheck } from './commands/progress-check.js';
32
+ import { runVendor } from './commands/vendor.js';
24
33
  import { CLI_VERSION } from './version.js';
25
34
  const args = process.argv.slice(2);
26
35
  const command = args[0];
@@ -44,14 +53,23 @@ export function parseArgs(argv) {
44
53
  }
45
54
  // Known flags per command for unknown flag warnings (Fix 2.3)
46
55
  const KNOWN_FLAGS = {
47
- activate: new Set(['task', 'scope', 'branch-aware', 'continue', 'near-misses', 'blast-radius', 'expand', 'layer-order', 'explain', 'budget', 'max-files', 'session', 'quiet', 'stale-after']),
56
+ 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']),
48
57
  bundle: new Set(['task', 'json', 'scope', 'near-misses', 'blast-radius', 'explain', 'expand', 'layer-order', 'budget', 'max-files']),
49
58
  refine: new Set(['learned', 'drop', 'add-keywords', 'budget', 'max-files', 'session']),
50
59
  'session-summary': new Set(['session', 'quiet', 'final']),
51
60
  'session-progress': new Set(['session', 'quiet']),
52
61
  checkpoint: new Set(['session', 'quiet', 'id']),
53
62
  intent: new Set(['objective', 'deliverable', 'scope-in', 'scope-out', 'constraint', 'accept', 'risk', 'paths', 'session', 'as-baseline']),
63
+ manifest: new Set(['task', 'out', 'artifacts-dir']),
64
+ 'sign-manifest': new Set(['in', 'out']),
65
+ policy: new Set(['print', 'policy-root']),
66
+ 'setup-ci': new Set(['mode', 'output']),
67
+ verify: new Set(['task', 'policy-root', 'artifacts-dir', 'coverage-attestation']),
54
68
  init: new Set(['force']),
69
+ 'review-coverage': new Set(['session']),
70
+ 'review-gate': new Set(['session']),
71
+ 'progress-check': new Set(['session']),
72
+ 'vendor': new Set(['target']),
55
73
  };
56
74
  function warnUnknownFlags(command, flags) {
57
75
  const known = KNOWN_FLAGS[command];
@@ -185,6 +203,36 @@ async function main() {
185
203
  await runSharedSummary(process.cwd(), sharedSummaryFlags);
186
204
  break;
187
205
  }
206
+ case 'manifest': {
207
+ const manifestFlags = parseArgs(args.slice(1));
208
+ warnUnknownFlags('manifest', manifestFlags);
209
+ await runManifest(process.cwd(), manifestFlags);
210
+ break;
211
+ }
212
+ case 'sign-manifest': {
213
+ const signFlags = parseArgs(args.slice(1));
214
+ warnUnknownFlags('sign-manifest', signFlags);
215
+ await runSignManifest(process.cwd(), signFlags);
216
+ break;
217
+ }
218
+ case 'policy': {
219
+ const policyFlags = parseArgs(args.slice(1));
220
+ warnUnknownFlags('policy', policyFlags);
221
+ await runPolicy(process.cwd(), policyFlags);
222
+ break;
223
+ }
224
+ case 'verify': {
225
+ const verifyFlags = parseArgs(args.slice(1));
226
+ warnUnknownFlags('verify', verifyFlags);
227
+ await runVerify(process.cwd(), verifyFlags);
228
+ break;
229
+ }
230
+ case 'setup-ci': {
231
+ const setupCiFlags = parseArgs(args.slice(1));
232
+ warnUnknownFlags('setup-ci', setupCiFlags);
233
+ await runSetupCi(process.cwd(), setupCiFlags);
234
+ break;
235
+ }
188
236
  case 'intent': {
189
237
  const intentFlags = parseArgs(args.slice(2));
190
238
  // First positional arg after 'intent' is the subcommand
@@ -193,6 +241,30 @@ async function main() {
193
241
  await runIntent(process.cwd(), intentFlags);
194
242
  break;
195
243
  }
244
+ case 'review-coverage': {
245
+ const rcFlags = parseArgs(args.slice(1));
246
+ warnUnknownFlags('review-coverage', rcFlags);
247
+ await runReviewCoverage(process.cwd(), rcFlags);
248
+ break;
249
+ }
250
+ case 'review-gate': {
251
+ const rgFlags = parseArgs(args.slice(1));
252
+ warnUnknownFlags('review-gate', rgFlags);
253
+ await runReviewGate(process.cwd(), rgFlags);
254
+ break;
255
+ }
256
+ case 'progress-check': {
257
+ const pcFlags = parseArgs(args.slice(1));
258
+ warnUnknownFlags('progress-check', pcFlags);
259
+ await runProgressCheck(process.cwd(), pcFlags);
260
+ break;
261
+ }
262
+ case 'vendor': {
263
+ const vendorFlags = parseArgs(args.slice(1));
264
+ warnUnknownFlags('vendor', vendorFlags);
265
+ await runVendor(process.cwd(), vendorFlags);
266
+ break;
267
+ }
196
268
  case 'version':
197
269
  case '--version':
198
270
  case '-v':
@@ -225,7 +297,7 @@ Commands:
225
297
  activate [--task ".."] Scan-if-stale + bundle + write active-bundle.md
226
298
  [--scope "p1,p2"] [--branch-aware] [--continue]
227
299
  [--near-misses] [--blast-radius] [--expand] [--layer-order]
228
- [--explain]
300
+ [--explain] [--mode edit|review] [--coverage-threshold 0.90]
229
301
  Without --task: scan-only (warms index, no bundle)
230
302
  refine --learned "..." Re-score bundle mid-session with new context
231
303
  [--drop "f1,f2"] [--add-keywords "k1,k2"]
@@ -245,12 +317,36 @@ Commands:
245
317
  [--session <id>] [--id <checkpoint-id>]
246
318
  shared-summary Cross-session summary (all active agents, overlaps, hotspots)
247
319
  [--all] (include stopped sessions)
320
+ manifest --task "..." Generate deterministic context manifest (evidence payload)
321
+ [--out <path>] [--artifacts-dir <dir>]
322
+ sign-manifest Sign a manifest with HMAC-SHA256 (tamper evidence)
323
+ --in <manifest.json> --out <signed.json>
324
+ policy --print Show resolved policy for current repo
325
+ [--policy-root <dir>]
326
+ verify --task "..." CI enforcement: evaluate policy, emit artifacts, return exit code
327
+ [--policy-root <dir>] [--artifacts-dir <dir>]
328
+ setup-ci Generate GitHub Actions workflow + policy for CI integration
329
+ [--mode observe|warn|block] [--output <dir>]
248
330
  intent [init|show|set|ack]
249
331
  Intent governance (deterministic drift detection)
250
332
  init: --objective "..." [--constraint "..."] [--scope-in "..."]
251
333
  set: --objective|--constraint|--scope-in|--scope-out "..."
252
334
  ack: [--as-baseline] acknowledge intent drift
253
335
 
336
+ Mid-Session:
337
+ progress-check Lightweight mid-session bundle coverage check
338
+ [--session <id>]
339
+
340
+ Cloud / Web:
341
+ vendor Vendor standalone CLI into a repo for cloud environments
342
+ [--target <dir>] (default: current directory)
343
+
344
+ Review Coverage (Sentinel):
345
+ review-coverage Check current review coverage mid-session
346
+ [--session <id>]
347
+ review-gate Gatekeeper check (called by hook, not manually)
348
+ [--session <id>]
349
+
254
350
  Cowork (Knowledge Mode):
255
351
  cowork-start Scan workspace + generate context bundle for Cowork
256
352
  --intent "..." [--workspace .] [--max-files 20] [--max-tokens 12000]
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":"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"}
@@ -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"}
@@ -0,0 +1,64 @@
1
+ import { appendFileSync } from 'node:fs';
2
+ /**
3
+ * Detect if running inside GitHub Actions.
4
+ */
5
+ export function isGitHubActions() {
6
+ return process.env['GITHUB_ACTIONS'] === 'true';
7
+ }
8
+ /**
9
+ * Emit GitHub Actions annotations for violations.
10
+ *
11
+ * - DENY_PATH_MATCH → ::error file=<path>,line=1:: (annotates the file)
12
+ * - All other codes → ::error:: (no file reference, aggregate metric)
13
+ */
14
+ export function emitAnnotations(report) {
15
+ for (const v of report.violations) {
16
+ if (v.code === 'DENY_PATH_MATCH' && v.path) {
17
+ console.log(`::error file=${v.path},line=1::${v.message}`);
18
+ }
19
+ else {
20
+ console.log(`::error::${v.message}`);
21
+ }
22
+ }
23
+ }
24
+ /**
25
+ * Write a step summary to $GITHUB_STEP_SUMMARY as markdown.
26
+ */
27
+ export function writeStepSummary(report, _summaryText) {
28
+ const summaryFile = process.env['GITHUB_STEP_SUMMARY'];
29
+ if (!summaryFile)
30
+ return;
31
+ const status = report.decision.passed ? 'PASS' : 'FAIL';
32
+ const mode = report.decision.mode;
33
+ const icon = report.decision.passed ? ':white_check_mark:' : ':x:';
34
+ const lines = [];
35
+ lines.push(`## ${icon} CodeLedger Verify — ${status} (${mode} mode)`);
36
+ lines.push('');
37
+ lines.push('| Metric | Value | Status |');
38
+ lines.push('|--------|-------|--------|');
39
+ const confFail = report.violations.some((v) => v.code === 'LOW_CONFIDENCE');
40
+ const driftFail = report.violations.some((v) => v.code === 'HIGH_DRIFT');
41
+ const fileFail = report.violations.some((v) => v.code === 'BUNDLE_TOO_LARGE' && v.dimension === 'file_count');
42
+ const byteFail = report.violations.some((v) => v.code === 'BUNDLE_TOO_LARGE' && v.dimension === 'byte_size');
43
+ lines.push(`| Confidence | ${report.metrics.overall_confidence.toFixed(2)} | ${confFail ? ':x:' : ':white_check_mark:'} |`);
44
+ lines.push(`| Drift | ${report.metrics.drift_score.toFixed(2)} | ${driftFail ? ':x:' : ':white_check_mark:'} |`);
45
+ lines.push(`| File count | ${report.metrics.bundle_file_count} | ${fileFail ? ':x:' : ':white_check_mark:'} |`);
46
+ const sizeKb = (report.metrics.bundle_total_bytes / 1024).toFixed(1);
47
+ lines.push(`| Size | ${sizeKb} KB | ${byteFail ? ':x:' : ':white_check_mark:'} |`);
48
+ if (report.violations.length > 0) {
49
+ lines.push('');
50
+ lines.push(`### Violations (${report.violations.length})`);
51
+ lines.push('');
52
+ for (const v of report.violations) {
53
+ lines.push(`- **${v.code}**: ${v.message}`);
54
+ }
55
+ }
56
+ lines.push('');
57
+ try {
58
+ appendFileSync(summaryFile, lines.join('\n') + '\n');
59
+ }
60
+ catch {
61
+ // Silently ignore write errors — may not have permission
62
+ }
63
+ }
64
+ //# sourceMappingURL=github-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-actions.js","sourceRoot":"","sources":["../../src/integrations/github-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ContextBundle, ContextManifestV1 } from '@codeledger/types';
2
+ export interface BuildManifestOptions {
3
+ bundle: ContextBundle;
4
+ repoRoot: string;
5
+ repoName: string;
6
+ commitSha: string | null;
7
+ codeledgerVersion: string;
8
+ intentNormalized: Record<string, unknown>;
9
+ intentHash: string;
10
+ driftScore: number;
11
+ }
12
+ /**
13
+ * Build a ContextManifestV1 from an existing bundle and repo metadata.
14
+ *
15
+ * The output is deterministic: same repo state + same intent = identical
16
+ * payload under stable serialization. No timestamps or volatile metadata.
17
+ */
18
+ export declare function buildManifest(opts: BuildManifestOptions): ContextManifestV1;
19
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/manifest/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAElB,MAAM,mBAAmB,CAAC;AAW3B,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CA2E3E"}
@@ -0,0 +1,82 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { readFileSync, statSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { MANIFEST_SCHEMA_VERSION } from './schema.js';
5
+ /**
6
+ * Compute SHA-256 hex digest of a file's contents.
7
+ */
8
+ function sha256File(filePath) {
9
+ const content = readFileSync(filePath);
10
+ return createHash('sha256').update(content).digest('hex');
11
+ }
12
+ /**
13
+ * Build a ContextManifestV1 from an existing bundle and repo metadata.
14
+ *
15
+ * The output is deterministic: same repo state + same intent = identical
16
+ * payload under stable serialization. No timestamps or volatile metadata.
17
+ */
18
+ export function buildManifest(opts) {
19
+ const { bundle, repoRoot, repoName, commitSha, codeledgerVersion, intentNormalized, intentHash: hash, driftScore, } = opts;
20
+ // Build per-file entries, sorted by path (lexicographic, Array.sort default)
21
+ const files = bundle.files
22
+ .map((f) => {
23
+ const fullPath = join(repoRoot, f.path);
24
+ let bytes;
25
+ let sha256;
26
+ try {
27
+ bytes = statSync(fullPath).size;
28
+ sha256 = sha256File(fullPath);
29
+ }
30
+ catch {
31
+ // File may have been deleted since bundle generation — use content length
32
+ bytes = Buffer.byteLength(f.content, 'utf-8');
33
+ sha256 = createHash('sha256').update(f.content, 'utf-8').digest('hex');
34
+ }
35
+ return {
36
+ path: f.path,
37
+ sha256,
38
+ bytes,
39
+ score: f.score,
40
+ };
41
+ })
42
+ .sort((a, b) => a.path.localeCompare(b.path));
43
+ const totalBytes = files.reduce((sum, f) => sum + f.bytes, 0);
44
+ // Extract confidence envelope (guaranteed by assessConfidence)
45
+ const confidence = bundle.confidence;
46
+ const envelope = confidence?.envelope ?? {
47
+ structural_coverage: 0,
48
+ test_presence: 0,
49
+ churn_recency: 0,
50
+ keyword_saturation: 0,
51
+ dependency_depth: 0,
52
+ };
53
+ return {
54
+ schema_version: MANIFEST_SCHEMA_VERSION,
55
+ codeledger_version: codeledgerVersion,
56
+ repo: {
57
+ name: repoName,
58
+ commit_sha: commitSha,
59
+ },
60
+ intent: {
61
+ normalized: intentNormalized,
62
+ intent_hash: hash,
63
+ drift_score: driftScore,
64
+ },
65
+ bundle: {
66
+ file_count: files.length,
67
+ total_bytes: totalBytes,
68
+ files,
69
+ },
70
+ confidence: {
71
+ overall: confidence?.score ?? 0,
72
+ envelope: {
73
+ structural_coverage: envelope.structural_coverage,
74
+ test_presence: envelope.test_presence,
75
+ churn_recency: envelope.churn_recency,
76
+ keyword_saturation: envelope.keyword_saturation,
77
+ dependency_depth: envelope.dependency_depth,
78
+ },
79
+ },
80
+ };
81
+ }
82
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/manifest/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const MANIFEST_SCHEMA_VERSION: "mustang/manifest/v1";
2
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,EAAG,qBAA8B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const MANIFEST_SCHEMA_VERSION = 'mustang/manifest/v1';
2
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAA8B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ContextManifestV1 } from '@codeledger/types';
2
+ /**
3
+ * Serialize a manifest with stable key ordering and write to disk.
4
+ *
5
+ * Stable ordering is achieved by constructing the object in explicit key order
6
+ * (matching the schema definition). Arrays are already sorted in buildManifest().
7
+ * Output ends with a trailing newline for POSIX compatibility.
8
+ *
9
+ * Phase 2 will introduce strict JCS canonicalization; this stable output is
10
+ * designed to be close to that form already.
11
+ */
12
+ export declare function writeManifest(manifest: ContextManifestV1, outPath: string): void;
13
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/manifest/write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAsChF"}
@@ -0,0 +1,69 @@
1
+ import { writeFileSync, mkdirSync } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ /**
4
+ * Serialize a manifest with stable key ordering and write to disk.
5
+ *
6
+ * Stable ordering is achieved by constructing the object in explicit key order
7
+ * (matching the schema definition). Arrays are already sorted in buildManifest().
8
+ * Output ends with a trailing newline for POSIX compatibility.
9
+ *
10
+ * Phase 2 will introduce strict JCS canonicalization; this stable output is
11
+ * designed to be close to that form already.
12
+ */
13
+ export function writeManifest(manifest, outPath) {
14
+ // Construct with explicit key order for deterministic serialization
15
+ const ordered = {
16
+ schema_version: manifest.schema_version,
17
+ codeledger_version: manifest.codeledger_version,
18
+ repo: {
19
+ name: manifest.repo.name,
20
+ commit_sha: manifest.repo.commit_sha,
21
+ },
22
+ intent: {
23
+ normalized: sortObject(manifest.intent.normalized),
24
+ intent_hash: manifest.intent.intent_hash,
25
+ drift_score: manifest.intent.drift_score,
26
+ },
27
+ bundle: {
28
+ file_count: manifest.bundle.file_count,
29
+ total_bytes: manifest.bundle.total_bytes,
30
+ files: manifest.bundle.files.map((f) => ({
31
+ path: f.path,
32
+ sha256: f.sha256,
33
+ bytes: f.bytes,
34
+ score: f.score,
35
+ })),
36
+ },
37
+ confidence: {
38
+ overall: manifest.confidence.overall,
39
+ envelope: {
40
+ structural_coverage: manifest.confidence.envelope.structural_coverage,
41
+ test_presence: manifest.confidence.envelope.test_presence,
42
+ churn_recency: manifest.confidence.envelope.churn_recency,
43
+ keyword_saturation: manifest.confidence.envelope.keyword_saturation,
44
+ dependency_depth: manifest.confidence.envelope.dependency_depth,
45
+ },
46
+ },
47
+ };
48
+ mkdirSync(dirname(outPath), { recursive: true });
49
+ writeFileSync(outPath, JSON.stringify(ordered, null, 2) + '\n');
50
+ }
51
+ /**
52
+ * Recursively sort object keys for deterministic output.
53
+ * Arrays preserve order; nested objects get sorted keys.
54
+ */
55
+ function sortObject(obj) {
56
+ if (obj === null || obj === undefined)
57
+ return obj;
58
+ if (Array.isArray(obj))
59
+ return obj.map(sortObject);
60
+ if (typeof obj === 'object') {
61
+ const sorted = {};
62
+ for (const key of Object.keys(obj).sort()) {
63
+ sorted[key] = sortObject(obj[key]);
64
+ }
65
+ return sorted;
66
+ }
67
+ return obj;
68
+ }
69
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/manifest/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,QAA2B,EAAE,OAAe;IACxE,oEAAoE;IACpE,MAAM,OAAO,GAAG;QACd,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;YACxB,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;SACrC;QACD,MAAM,EAAE;YACN,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;YAClD,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;YACxC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;SACzC;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;YACtC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;YACxC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;SACJ;QACD,UAAU,EAAE;YACV,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;YACpC,QAAQ,EAAE;gBACR,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB;gBACrE,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa;gBACzD,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa;gBACzD,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB;gBACnE,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB;aAChE;SACF;KACF,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAY;IAC9B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { MustangPolicyV1 } from '@codeledger/types';
2
+ /**
3
+ * Load and parse a policy JSON file. Returns the parsed object.
4
+ * Throws with a descriptive error if the file is malformed.
5
+ * Returns null if the file does not exist.
6
+ */
7
+ export declare function loadPolicyFile(filePath: string): Partial<MustangPolicyV1> | null;
8
+ /**
9
+ * Load the org default policy file from a policy root directory.
10
+ * Returns null if org/default.json does not exist.
11
+ * Throws on malformed JSON (fatal error per spec).
12
+ */
13
+ export declare function loadOrgDefault(policyRoot: string): Partial<MustangPolicyV1> | null;
14
+ /**
15
+ * Load a repo-specific policy override from the policy root directory.
16
+ * Matches case-insensitively against repos/<name>.json filenames.
17
+ * Returns null if no matching file exists.
18
+ * Throws on malformed JSON (fatal error per spec).
19
+ */
20
+ export declare function loadRepoOverride(policyRoot: string, repoName: string): Partial<MustangPolicyV1> | null;
21
+ //# sourceMappingURL=load.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/policy/load.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAuBhF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAetG"}
@@ -0,0 +1,63 @@
1
+ import { readFileSync, existsSync, readdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { validatePolicy } from './schema.js';
4
+ /**
5
+ * Load and parse a policy JSON file. Returns the parsed object.
6
+ * Throws with a descriptive error if the file is malformed.
7
+ * Returns null if the file does not exist.
8
+ */
9
+ export function loadPolicyFile(filePath) {
10
+ if (!existsSync(filePath))
11
+ return null;
12
+ let raw;
13
+ try {
14
+ raw = readFileSync(filePath, 'utf-8');
15
+ }
16
+ catch (err) {
17
+ throw new Error(`Cannot read policy file: ${filePath} (${err.message})`);
18
+ }
19
+ let parsed;
20
+ try {
21
+ parsed = JSON.parse(raw);
22
+ }
23
+ catch {
24
+ throw new Error(`Malformed JSON in policy file: ${filePath}`);
25
+ }
26
+ const validationError = validatePolicy(parsed);
27
+ if (validationError) {
28
+ throw new Error(`Invalid policy in ${filePath}: ${validationError}`);
29
+ }
30
+ return parsed;
31
+ }
32
+ /**
33
+ * Load the org default policy file from a policy root directory.
34
+ * Returns null if org/default.json does not exist.
35
+ * Throws on malformed JSON (fatal error per spec).
36
+ */
37
+ export function loadOrgDefault(policyRoot) {
38
+ return loadPolicyFile(join(policyRoot, 'org', 'default.json'));
39
+ }
40
+ /**
41
+ * Load a repo-specific policy override from the policy root directory.
42
+ * Matches case-insensitively against repos/<name>.json filenames.
43
+ * Returns null if no matching file exists.
44
+ * Throws on malformed JSON (fatal error per spec).
45
+ */
46
+ export function loadRepoOverride(policyRoot, repoName) {
47
+ const reposDir = join(policyRoot, 'repos');
48
+ if (!existsSync(reposDir))
49
+ return null;
50
+ // Case-insensitive match against filenames
51
+ const lowerName = repoName.toLowerCase();
52
+ const entries = readdirSync(reposDir);
53
+ const match = entries.find((f) => {
54
+ if (!f.endsWith('.json'))
55
+ return false;
56
+ const baseName = f.slice(0, -5); // strip .json
57
+ return baseName.toLowerCase() === lowerName;
58
+ });
59
+ if (!match)
60
+ return null;
61
+ return loadPolicyFile(join(reposDir, match));
62
+ }
63
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/policy/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,KAAM,GAAa,CAAC,OAAO,GAAG,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,KAAK,eAAe,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,MAAkC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,QAAgB;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,2CAA2C;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;QAC/C,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ResolvedPolicyV1 } from '@codeledger/types';
2
+ export interface ResolvePolicyOptions {
3
+ /** Explicit policy root from --policy-root flag (highest precedence). */
4
+ policyRoot?: string;
5
+ /** Working directory for git detection and default path. */
6
+ cwd: string;
7
+ }
8
+ /**
9
+ * Resolve the effective policy through the cascade:
10
+ * 1. Hard-coded safe defaults
11
+ * 2. Org default (org/default.json) — deep merge
12
+ * 3. Repo override (repos/<name>.json) — deep merge
13
+ *
14
+ * Policy root resolution order:
15
+ * --policy-root flag > CODELEDGER_POLICY_PATH env > .codeledger/policy/ > safe defaults
16
+ */
17
+ export declare function resolvePolicy(opts: ResolvePolicyOptions): ResolvedPolicyV1;
18
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/policy/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,CA+B1E"}