@ai-dossier/cli 0.45.1 → 0.47.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/README.md CHANGED
@@ -247,7 +247,7 @@ ai-dossier pull org/dossier-a org/dossier-b
247
247
  ai-dossier pull org/my-dossier --force
248
248
  ```
249
249
 
250
- Pulled dossiers are cached locally with checksum verification. Subsequent `pull` calls skip the download if the version is already cached (use `--force` to override). See [Cache and Version Resolution](#cache-and-version-resolution) for how versionless names are resolved and how to control freshness.
250
+ Pulled dossiers are cached locally with checksum verification. Subsequent `pull` calls skip the download if the version is already cached (use `--force` to override). See [Cache and Version Resolution](#cache-and-version-resolution) for how versionless names are resolved and how to control freshness. When the dossier carries an evidence sidecar, `pull` also fetches it and caches it alongside the content (`+evidence` in the success line) — a missing sidecar is not an error.
251
251
 
252
252
  ### Export
253
253
 
@@ -264,6 +264,36 @@ ai-dossier export org/my-dossier -o ./local-copy.ds.md
264
264
  ai-dossier export org/my-dossier --stdout
265
265
  ```
266
266
 
267
+ When the dossier carries an evidence sidecar, `export` also writes it next to the output file (`<output minus .ds.md>.evidence.json`); `--stdout` never fetches it.
268
+
269
+ ### Evidence
270
+
271
+ An evidence sidecar (`<name>.evidence.json`) records, per rule or section of a dossier, the rationale for why it reads the way it does and pointers to the agent session(s) where that decision was made. It travels alongside a dossier through `publish`/`pull`/`export` but is never loaded by `ai-dossier run` — evidence is for a human or a future author reviewing the dossier, not for an agent executing it.
272
+
273
+ ```bash
274
+ # Create a fresh sidecar for a dossier
275
+ ai-dossier evidence init my-dossier.ds.md
276
+
277
+ # Append an entry (session id from AI_DOSSIER_SESSION_ID if --session is omitted)
278
+ ai-dossier evidence add my-dossier.ds.md \
279
+ --anchor "Guiding Principle" --rationale "Autonomous runs must never block on a reply" \
280
+ --session abc-123
281
+
282
+ # Refresh version/checksum after re-signing the dossier
283
+ ai-dossier evidence sync my-dossier.ds.md
284
+
285
+ # Attach the sidecar on publish (auto-attaches a sibling .evidence.json by default)
286
+ ai-dossier publish my-dossier.ds.md --yes
287
+
288
+ # Fetch and read a published dossier's evidence
289
+ ai-dossier evidence show org/my-dossier
290
+
291
+ # Validate a sidecar file against the schema
292
+ ai-dossier evidence validate my-dossier.evidence.json
293
+ ```
294
+
295
+ Override the sidecar path with `--evidence <path>`, or skip attaching one (even if a sibling exists) with `--no-evidence`.
296
+
267
297
  ---
268
298
 
269
299
  ## Skills
@@ -2009,6 +2039,7 @@ Exit 0 (safe) or 1 (unsafe)
2009
2039
  - ✅ `install-skill` / `skill-export` (Claude Code skill bridge)
2010
2040
  - ✅ Execution tracing with verified checksum + signer metadata
2011
2041
  - ✅ TTL-based version resolution for the content cache
2042
+ - ✅ Evidence sidecar (`.evidence.json`) — `evidence init/add/sync/validate/show`, wired through publish/pull/export
2012
2043
 
2013
2044
  ### v1.0.0 (Stable)
2014
2045
  - ⏳ Stable, frozen CLI surface and exit-code contract
@@ -1 +1 @@
1
- {"version":3,"file":"batch-suite-runner.d.ts","sourceRoot":"","sources":["../src/batch-suite-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAG3B,kGAAkG;AAClG,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C,mGAAmG;AACnG,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAuN7C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,CA6BnC"}
1
+ {"version":3,"file":"batch-suite-runner.d.ts","sourceRoot":"","sources":["../src/batch-suite-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAI3B,kGAAkG;AAClG,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C,mGAAmG;AACnG,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAgO7C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,CAqCnC"}
@@ -39,6 +39,7 @@ const node_child_process_1 = require("node:child_process");
39
39
  const node_fs_1 = __importDefault(require("node:fs"));
40
40
  const node_path_1 = __importDefault(require("node:path"));
41
41
  const sched_1 = require("@ai-dossier/sched");
42
+ const worktree_pool_1 = require("@ai-dossier/worktree-pool");
42
43
  const capability_1 = require("./capability");
43
44
  /** Aggregate suite runs can be minutes long (full workspace test suite, not a focused subset). */
44
45
  exports.BATCH_SUITE_TIMEOUT_MS = 600_000;
@@ -169,7 +170,7 @@ function runCapabilityTestFull(worktree, capabilityTimeoutMs) {
169
170
  (typeof envelope.duration_ms === 'number' ? ` elapsed ${envelope.duration_ms}ms` : '') +
170
171
  (!ok && readable ? ` (${failing.length} failing)` : '') +
171
172
  (!ok && !readable ? stderrTail(spawned.stderr) : '')
172
- : `${source}: no envelope line — treating as unreadable${stderrTail(spawned.stderr)}`,
173
+ : `${source}: task-failed (exit ${spawned.status ?? 'unknown'}), harness produced no envelope${stderrTail(spawned.stderr)}`,
173
174
  },
174
175
  };
175
176
  }
@@ -209,15 +210,24 @@ function detectSuiteCommand(worktree) {
209
210
  return ['npm', 'test'];
210
211
  }
211
212
  function runDetected(worktree, timeoutMs) {
212
- if (!node_fs_1.default.existsSync(node_path_1.default.join(worktree, 'package.json'))) {
213
+ const projectDir = (0, worktree_pool_1.resolveProjectDir)(worktree, (0, worktree_pool_1.readPoolFileConfig)(worktree).project_subdir);
214
+ if (projectDir !== worktree && !projectDir.startsWith(worktree + node_path_1.default.sep)) {
213
215
  return {
214
216
  ok: false,
215
217
  failing: [],
216
218
  readable: false,
217
- detail: `detected: capability unavailable: no root package.json (cwd=${worktree})`,
219
+ detail: `detected: capability unavailable: project directory escapes worktree (cwd=${worktree})`,
218
220
  };
219
221
  }
220
- return runCommand(detectSuiteCommand(worktree), worktree, 'detected', timeoutMs);
222
+ if (!node_fs_1.default.existsSync(node_path_1.default.join(projectDir, 'package.json'))) {
223
+ return {
224
+ ok: false,
225
+ failing: [],
226
+ readable: false,
227
+ detail: `detected: capability unavailable: no package.json (cwd=${projectDir})`,
228
+ };
229
+ }
230
+ return runCommand(detectSuiteCommand(projectDir), projectDir, 'detected', timeoutMs);
221
231
  }
222
232
  function capabilityTimeout(worktree, defaultTimeoutMs) {
223
233
  try {
@@ -256,7 +266,13 @@ function createBatchSuiteRunner(config, opts = {}) {
256
266
  else {
257
267
  return runDetected(worktree, defaultTimeoutMs);
258
268
  }
259
- if (primary.terminal || primary.result.ok || primary.result.readable !== false)
269
+ // A declared capability's non-zero outcome is the suite's verdict even
270
+ // without a parseable Vitest report. Retrying detection would replace it
271
+ // with an unrelated guess about the worktree layout.
272
+ if (primary.source === 'cap run test.full' ||
273
+ primary.terminal ||
274
+ primary.result.ok ||
275
+ primary.result.readable !== false)
260
276
  return primary.result;
261
277
  const fallback = runDetected(worktree, defaultTimeoutMs);
262
278
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"batch-suite-runner.js","sourceRoot":"","sources":["../src/batch-suite-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-suite-runner.js","sourceRoot":"","sources":["../src/batch-suite-runner.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,10 @@ export declare function clearResolutions(): void;
63
63
  * run/create/install-skill/pull so layout changes happen in one place.
64
64
  */
65
65
  export declare function cachedContentPath(dossierName: string, version: string): string;
66
+ /**
67
+ * Path to a cached dossier's evidence sidecar (without checking existence).
68
+ */
69
+ export declare function cachedEvidencePath(dossierName: string, version: string): string;
66
70
  /**
67
71
  * Return cached dossier content as a string, or null if not cached.
68
72
  * Single source of truth for the `existsSync(contentFile) ? read : miss`
@@ -83,6 +87,16 @@ export declare function readCachedContent(dossierName: string, version: string):
83
87
  export declare function writeCachedContent(dossierName: string, version: string, content: string, sourceRegistry: string | undefined, opts?: {
84
88
  throwOnError?: boolean;
85
89
  }): void;
90
+ /**
91
+ * Write a dossier's evidence sidecar to the cache, mirroring {@link writeCachedContent}'s
92
+ * error handling. No registry-tracking (`.meta.json`) side effects — evidence is a sidecar
93
+ * to the content cache, not a cache entry of its own.
94
+ *
95
+ * Best-effort by default (errors swallowed). Pass `throwOnError: true` to surface failures.
96
+ */
97
+ export declare function writeCachedEvidence(dossierName: string, version: string, evidence: string, opts?: {
98
+ throwOnError?: boolean;
99
+ }): void;
86
100
  /**
87
101
  * Parse a `--max-age <seconds>` CLI option into a number, or return undefined
88
102
  * when unset. Throws when the value is provided but not a valid number.
@@ -1 +1 @@
1
- {"version":3,"file":"cache-resolver.d.ts","sourceRoot":"","sources":["../src/cache-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,SAAS,QAA+C,CAAC;AACtE,eAAO,MAAM,cAAc,QAAsC,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgCD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA4BnF;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CActE;AASD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,eAAe,CAAC,CAwF1B;AAED,sDAAsD;AACtD,wBAAgB,eAAe,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA2BnF;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,IAAI,CAsBN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO7E"}
1
+ {"version":3,"file":"cache-resolver.d.ts","sourceRoot":"","sources":["../src/cache-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,SAAS,QAA+C,CAAC;AACtE,eAAO,MAAM,cAAc,QAAsC,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgCD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA4BnF;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CActE;AASD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,eAAe,CAAC,CAwF1B;AAED,sDAAsD;AACtD,wBAAgB,eAAe,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA2BnF;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,IAAI,CAsBN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,IAAI,CASN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO7E"}
@@ -24,8 +24,10 @@ exports.resolveCachedVersion = resolveCachedVersion;
24
24
  exports.listResolutions = listResolutions;
25
25
  exports.clearResolutions = clearResolutions;
26
26
  exports.cachedContentPath = cachedContentPath;
27
+ exports.cachedEvidencePath = cachedEvidencePath;
27
28
  exports.readCachedContent = readCachedContent;
28
29
  exports.writeCachedContent = writeCachedContent;
30
+ exports.writeCachedEvidence = writeCachedEvidence;
29
31
  exports.parseMaxAgeOption = parseMaxAgeOption;
30
32
  const node_fs_1 = __importDefault(require("node:fs"));
31
33
  const node_os_1 = __importDefault(require("node:os"));
@@ -247,6 +249,12 @@ function clearResolutions() {
247
249
  function cachedContentPath(dossierName, version) {
248
250
  return node_path_1.default.join((0, helpers_1.safeDossierPath)(exports.CACHE_DIR, dossierName), `${version}.ds.md`);
249
251
  }
252
+ /**
253
+ * Path to a cached dossier's evidence sidecar (without checking existence).
254
+ */
255
+ function cachedEvidencePath(dossierName, version) {
256
+ return node_path_1.default.join((0, helpers_1.safeDossierPath)(exports.CACHE_DIR, dossierName), `${version}.evidence.json`);
257
+ }
250
258
  /**
251
259
  * Return cached dossier content as a string, or null if not cached.
252
260
  * Single source of truth for the `existsSync(contentFile) ? read : miss`
@@ -291,6 +299,25 @@ function writeCachedContent(dossierName, version, content, sourceRegistry, opts
291
299
  // best-effort: swallow (matches prior create.ts / install-skill.ts behaviour)
292
300
  }
293
301
  }
302
+ /**
303
+ * Write a dossier's evidence sidecar to the cache, mirroring {@link writeCachedContent}'s
304
+ * error handling. No registry-tracking (`.meta.json`) side effects — evidence is a sidecar
305
+ * to the content cache, not a cache entry of its own.
306
+ *
307
+ * Best-effort by default (errors swallowed). Pass `throwOnError: true` to surface failures.
308
+ */
309
+ function writeCachedEvidence(dossierName, version, evidence, opts = {}) {
310
+ const dir = (0, helpers_1.safeDossierPath)(exports.CACHE_DIR, dossierName);
311
+ try {
312
+ node_fs_1.default.mkdirSync(dir, { recursive: true, mode: 0o700 });
313
+ node_fs_1.default.writeFileSync(node_path_1.default.join(dir, `${version}.evidence.json`), evidence, 'utf8');
314
+ }
315
+ catch (err) {
316
+ if (opts.throwOnError)
317
+ throw err;
318
+ // best-effort: swallow (matches writeCachedContent's default behaviour)
319
+ }
320
+ }
294
321
  /**
295
322
  * Parse a `--max-age <seconds>` CLI option into a number, or return undefined
296
323
  * when unset. Throws when the value is provided but not a valid number.
@@ -1 +1 @@
1
- {"version":3,"file":"cache-resolver.js","sourceRoot":"","sources":["../src/cache-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache-resolver.js","sourceRoot":"","sources":["../src/cache-resolver.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -15,6 +15,7 @@ const commands_1 = require("./commands/commands");
15
15
  const config_cmd_1 = require("./commands/config-cmd");
16
16
  const create_1 = require("./commands/create");
17
17
  const doctor_1 = require("./commands/doctor");
18
+ const evidence_1 = require("./commands/evidence");
18
19
  const export_1 = require("./commands/export");
19
20
  const format_1 = require("./commands/format");
20
21
  const from_file_1 = require("./commands/from-file");
@@ -82,6 +83,7 @@ Agent-friendly: Run \`ai-dossier --agent\` for machine-readable capabilities.`);
82
83
  (0, pull_1.registerPullCommand)(commander_1.program);
83
84
  (0, export_1.registerExportCommand)(commander_1.program);
84
85
  (0, publish_1.registerPublishCommand)(commander_1.program);
86
+ (0, evidence_1.registerEvidenceCommand)(commander_1.program);
85
87
  (0, remove_1.registerRemoveCommand)(commander_1.program);
86
88
  // Skills
87
89
  (0, install_skill_1.registerInstallSkillCommand)(commander_1.program);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,yCAAoC;AAEpC,eAAe;AACf,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,4CAAwD;AACxD,wCAAoD;AACpD,kDAA8D;AAC9D,kDAA8D;AAC9D,kDAA8D;AAC9D,sDAA8D;AAC9D,8CAA0D;AAC1D,8CAA0D;AAC1D,kDAA8D;AAC9D,8CAA0D;AAC1D,8CAA0D;AAC1D,oDAA+D;AAC/D,wCAAoD;AACpD,gDAA4D;AAC5D,0CAAsD;AACtD,0CAAsD;AACtD,4DAAuE;AACvE,0CAAsD;AACtD,0CAAsD;AACtD,0CAAsD;AACtD,4CAAwD;AACxD,8CAA0D;AAC1D,0CAAsD;AACtD,wDAAmE;AACnE,gDAA4D;AAC5D,0CAAsD;AACtD,8CAA0D;AAC1D,wDAAmE;AACnE,wCAAoD;AACpD,kDAA8D;AAC9D,4CAAwD;AACxD,8CAA0D;AAC1D,0CAAsD;AACtD,0DAAqE;AACrE,wDAAmE;AACnE,8CAA0D;AAC1D,kDAA8D;AAC9D,8CAA0D;AAC1D,8CAA0D;AAC1D,iCAA2C;AAE3C,gBAAgB;AAChB,mBAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CACV,qJAAqJ,CACtJ;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,SAAS,EAAE,iEAAiE,CAAC;KACpF,aAAa,CAAC,EAAE,UAAU,EAAE,wBAAiB,EAAE,CAAC;KAChD,WAAW,CACV,OAAO,EACP;;;;;;;;;8EAS0E,CAC3E,CAAC;AAEJ,8CAA8C;AAE9C,kBAAkB;AAClB,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,mCAAuB,EAAC,mBAAO,CAAC,CAAC;AAEjC,eAAe;AACf,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,wBAAkB,EAAC,mBAAO,CAAC,CAAC;AAC5B,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AACjC,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAE/B,WAAW;AACX,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,wBAAkB,EAAC,mBAAO,CAAC,CAAC;AAC5B,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,gCAAsB,EAAC,mBAAO,CAAC,CAAC;AAChC,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AACjC,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAE/B,SAAS;AACT,IAAA,2CAA2B,EAAC,mBAAO,CAAC,CAAC;AACrC,IAAA,yCAA0B,EAAC,mBAAO,CAAC,CAAC;AACpC,IAAA,uCAAyB,EAAC,mBAAO,CAAC,CAAC;AAEnC,WAAW;AACX,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AACjC,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAE7B,gBAAgB;AAChB,IAAA,4BAAoB,EAAC,mBAAO,CAAC,CAAC;AAC9B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,kCAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,4BAAoB,EAAC,mBAAO,CAAC,CAAC;AAC9B,IAAA,gCAAsB,EAAC,mBAAO,CAAC,CAAC;AAChC,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,8BAAqB,EAAC,mBAAO,CAAC,CAAC;AAC/B,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AACjC,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AACjC,IAAA,0BAAmB,EAAC,mBAAO,CAAC,CAAC;AAC7B,IAAA,4BAAoB,EAAC,mBAAO,CAAC,CAAC;AAC9B,IAAA,wBAAkB,EAAC,mBAAO,CAAC,CAAC;AAE5B,SAAS;AACT,IAAA,uCAAyB,EAAC,mBAAO,CAAC,CAAC;AACnC,IAAA,uCAAyB,EAAC,mBAAO,CAAC,CAAC;AACnC,IAAA,kCAAuB,EAAC,mBAAO,CAAC,CAAC;AAEjC,4CAA4C;AAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG;QACf,cAAc,EAAE,KAAK;QACrB,GAAG,EAAE,YAAY;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,iBAAiB,EAAE,qBAAqB;QACxC,YAAY,EAAE;YACZ,WAAW,EAAE,QAAQ;YACrB,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;SACrB;QACD,QAAQ,EAAE;YACR,WAAW,EACT,mIAAmI;YACrI,QAAQ,EAAE;gBACR,SAAS,EAAE,qDAAqD;gBAChE,eAAe,EAAE,4CAA4C;gBAC7D,WAAW,EAAE,iDAAiD;aAC/D;YACD,QAAQ,EAAE;gBACR,sBAAsB;gBACtB,wBAAwB;gBACxB,uBAAuB;gBACvB,uBAAuB;aACxB;YACD,cAAc,EAAE,iBAAiB;SAClC;QACD,WAAW,EAAE;YACX,0EAA0E;YAC1E,4DAA4D;YAC5D,wDAAwD;YACxD,wEAAwE;YACxE,0EAA0E;YAC1E,6FAA6F;SAC9F;KACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,oBAAoB;AACpB,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,mBAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * `ai-dossier evidence` — author, attach, fetch and display a dossier's `.evidence.json`
3
+ * sidecar (RFC-0001 authoring evidence, #733/#734/#735). Never loaded by `ai-dossier run`.
4
+ */
5
+ import { type Command } from 'commander';
6
+ /** Registers the `evidence` command tree (show, init, add, sync, validate). */
7
+ export declare function registerEvidenceCommand(program: Command): void;
8
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/commands/evidence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAC;AA8TjD,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAU9D"}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ /**
3
+ * `ai-dossier evidence` — author, attach, fetch and display a dossier's `.evidence.json`
4
+ * sidecar (RFC-0001 authoring evidence, #733/#734/#735). Never loaded by `ai-dossier run`.
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.registerEvidenceCommand = registerEvidenceCommand;
11
+ const node_fs_1 = __importDefault(require("node:fs"));
12
+ const node_os_1 = __importDefault(require("node:os"));
13
+ const node_path_1 = __importDefault(require("node:path"));
14
+ const core_1 = require("@ai-dossier/core");
15
+ const commander_1 = require("commander");
16
+ const credentials_1 = require("../credentials");
17
+ const helpers_1 = require("../helpers");
18
+ const multi_registry_1 = require("../multi-registry");
19
+ const registry_client_1 = require("../registry-client");
20
+ /** Providers `evidence add` accepts — mirrors the schema's `evidence[].provider` enum. */
21
+ const EVIDENCE_PROVIDERS = [
22
+ 'claude-code',
23
+ 'codex',
24
+ 'opencode',
25
+ 'gemini-cli',
26
+ 'other',
27
+ ];
28
+ /** Namespace resolution identical to `publish` — explicit flag, else credentials. */
29
+ function resolveNamespace(explicit) {
30
+ if (explicit)
31
+ return explicit;
32
+ const credentials = (0, credentials_1.loadCredentials)();
33
+ if (credentials) {
34
+ return credentials.orgs.length > 0 ? credentials.orgs[0] : credentials.username;
35
+ }
36
+ console.error('\n❌ --namespace required (not logged in)\n');
37
+ process.exit(1);
38
+ }
39
+ /** Read + parse a dossier file, exiting on failure. */
40
+ function readDossier(file) {
41
+ if (!node_fs_1.default.existsSync(file)) {
42
+ console.error(`\n❌ File not found: ${file}\n`);
43
+ process.exit(1);
44
+ }
45
+ try {
46
+ return (0, core_1.parseDossierContent)(node_fs_1.default.readFileSync(file, 'utf8'));
47
+ }
48
+ catch (err) {
49
+ console.error(`\n❌ ${err.message}\n`);
50
+ process.exit(1);
51
+ }
52
+ }
53
+ /** Build a fresh evidence record for a dossier file, per `init`'s rules. */
54
+ function buildFreshRecord(dossierFile, namespace) {
55
+ const { frontmatter } = readDossier(dossierFile);
56
+ if (!frontmatter.checksum?.hash) {
57
+ console.error("\n❌ Dossier has no checksum; run 'ai-dossier checksum <file> --update' or sign it first\n");
58
+ process.exit(1);
59
+ }
60
+ const ns = resolveNamespace(namespace);
61
+ const name = frontmatter.name || frontmatter.title || node_path_1.default.basename(dossierFile, '.ds.md');
62
+ const fullPath = `${ns}/${name}`;
63
+ return (0, core_1.createEvidenceRecord)({
64
+ dossier: fullPath,
65
+ version: frontmatter.version,
66
+ checksumHash: frontmatter.checksum.hash,
67
+ });
68
+ }
69
+ /** Refresh `record.version` and `record.checksum.hash` from the dossier's current frontmatter. */
70
+ function refreshFromFrontmatter(record, dossierFile) {
71
+ const { frontmatter } = readDossier(dossierFile);
72
+ if (!frontmatter.checksum?.hash) {
73
+ console.error("\n❌ Dossier has no checksum; run 'ai-dossier checksum <file> --update' or sign it first\n");
74
+ process.exit(1);
75
+ }
76
+ return {
77
+ ...record,
78
+ version: frontmatter.version,
79
+ checksum: { algorithm: 'sha256', hash: frontmatter.checksum.hash },
80
+ };
81
+ }
82
+ /** Parse `--extra k=v` pairs into an object, exiting on a malformed entry. */
83
+ function parseExtra(pairs) {
84
+ if (!pairs || pairs.length === 0)
85
+ return undefined;
86
+ const extra = {};
87
+ for (const pair of pairs) {
88
+ const idx = pair.indexOf('=');
89
+ if (idx <= 0) {
90
+ console.error(`\n❌ Invalid --extra '${pair}' — expected k=v\n`);
91
+ process.exit(1);
92
+ }
93
+ extra[pair.slice(0, idx)] = pair.slice(idx + 1);
94
+ }
95
+ return extra;
96
+ }
97
+ /** Read + parse an existing sidecar file, exiting with a clean message on a corrupt one. */
98
+ function loadSidecar(sidecarPath) {
99
+ try {
100
+ return (0, core_1.parseEvidence)(node_fs_1.default.readFileSync(sidecarPath, 'utf8'));
101
+ }
102
+ catch (err) {
103
+ console.error(`\n❌ Evidence file is corrupt: ${sidecarPath}\n ${err.message}\n`);
104
+ process.exit(1);
105
+ }
106
+ }
107
+ /** Write a sidecar record atomically — write to a per-process temp file, then rename. */
108
+ function writeSidecarAtomic(sidecarPath, record) {
109
+ const tmpPath = `${sidecarPath}.tmp.${process.pid}`;
110
+ node_fs_1.default.writeFileSync(tmpPath, `${JSON.stringify(record, null, 2)}\n`, 'utf8');
111
+ node_fs_1.default.renameSync(tmpPath, sidecarPath);
112
+ }
113
+ /** `evidence show` — fetch and render evidence from the registry. */
114
+ function registerShowSubcommand(cmd) {
115
+ cmd
116
+ .command('show')
117
+ .description("Show a dossier's evidence sidecar from the registry")
118
+ .argument('<name>', 'Dossier name (use name@version for a specific version)')
119
+ .option('--json', 'Output the raw evidence record as JSON')
120
+ .action(async (name, options) => {
121
+ const [dossierName, version] = (0, registry_client_1.parseNameVersion)(name);
122
+ const { result, errors } = await (0, multi_registry_1.multiRegistryGetEvidence)(dossierName, version || null);
123
+ if (!result) {
124
+ console.error(`❌ No evidence for ${name}`);
125
+ (0, helpers_1.printRegistryErrors)(errors);
126
+ process.exit(1);
127
+ }
128
+ let record;
129
+ try {
130
+ record = (0, core_1.parseEvidence)(result.evidence);
131
+ }
132
+ catch (err) {
133
+ console.error(`\n❌ Stored evidence record is corrupt: ${err.message}\n`);
134
+ process.exit(1);
135
+ }
136
+ if (options.json) {
137
+ console.log(JSON.stringify(record, null, 2));
138
+ return;
139
+ }
140
+ console.log(`Evidence for ${record.dossier}@${record.version} (sha256:${record.checksum.hash})`);
141
+ for (const entry of record.entries) {
142
+ console.log(`• ${entry.anchor}`);
143
+ console.log(` ${entry.rationale}`);
144
+ for (const ref of entry.evidence) {
145
+ let line = ` refs: ${ref.provider}:${ref.session}`;
146
+ if (ref.event)
147
+ line += `#${ref.event}`;
148
+ if (ref.host)
149
+ line += ` @${ref.host}`;
150
+ if (ref.extra) {
151
+ for (const [key, value] of Object.entries(ref.extra)) {
152
+ line += ` ${key}=${value}`;
153
+ }
154
+ }
155
+ console.log(line);
156
+ }
157
+ }
158
+ });
159
+ }
160
+ /** `evidence init` — create a fresh sidecar next to a dossier file. */
161
+ function registerInitSubcommand(cmd) {
162
+ cmd
163
+ .command('init')
164
+ .description('Create a fresh evidence sidecar for a dossier file')
165
+ .argument('<file>', 'Dossier file (.ds.md)')
166
+ .option('--namespace <namespace>', 'Override namespace (e.g., imboard-ai/skills)')
167
+ .option('-o, --output <path>', 'Output path (defaults to a sibling .evidence.json)')
168
+ .option('--force', 'Overwrite an existing sidecar')
169
+ .action((file, options) => {
170
+ const outputPath = options.output ? node_path_1.default.resolve(options.output) : (0, helpers_1.siblingEvidencePath)(file);
171
+ if (node_fs_1.default.existsSync(outputPath) && !options.force) {
172
+ console.error(`\n❌ Evidence file already exists: ${outputPath} (use --force to overwrite)\n`);
173
+ process.exit(1);
174
+ }
175
+ const record = buildFreshRecord(file, options.namespace);
176
+ writeSidecarAtomic(outputPath, record);
177
+ console.log(`✅ Evidence sidecar created: ${outputPath}`);
178
+ });
179
+ }
180
+ /** `evidence add` — append an entry, creating the sidecar via `init` logic if absent. */
181
+ function registerAddSubcommand(cmd) {
182
+ cmd
183
+ .command('add')
184
+ .description('Append an evidence entry to a dossier’s sidecar')
185
+ .argument('<file>', 'Dossier file (.ds.md)')
186
+ .requiredOption('--anchor <text>', 'Rule/heading in the dossier body this entry documents')
187
+ .requiredOption('--rationale <text>', 'Why the rule/section reads the way it does')
188
+ .option('--session <id>', 'Provider-native session id (defaults to AI_DOSSIER_SESSION_ID)')
189
+ .addOption(new commander_1.Option('--provider <provider>', 'Agent provider')
190
+ .choices(EVIDENCE_PROVIDERS)
191
+ .default('claude-code'))
192
+ .option('--event <id>', 'Provider-native per-message/tool-call id')
193
+ .option('--host <name>', 'Machine the session ran on (defaults to os.hostname())')
194
+ .option('--extra <k=v...>', 'Tool-specific locator ids, repeatable')
195
+ .option('--namespace <namespace>', 'Override namespace when creating a fresh sidecar')
196
+ .action((file, options) => {
197
+ const sidecarPath = (0, helpers_1.siblingEvidencePath)(file);
198
+ let record = node_fs_1.default.existsSync(sidecarPath)
199
+ ? loadSidecar(sidecarPath)
200
+ : buildFreshRecord(file, options.namespace);
201
+ const session = options.session || process.env.AI_DOSSIER_SESSION_ID;
202
+ if (!session) {
203
+ console.error('\n❌ --session required (or set AI_DOSSIER_SESSION_ID)\n');
204
+ process.exit(1);
205
+ }
206
+ const extra = parseExtra(options.extra);
207
+ const ref = {
208
+ provider: options.provider,
209
+ session,
210
+ ...(options.event ? { event: options.event } : {}),
211
+ host: options.host || node_os_1.default.hostname(),
212
+ ...(extra ? { extra } : {}),
213
+ };
214
+ record = {
215
+ ...record,
216
+ entries: [
217
+ ...record.entries,
218
+ {
219
+ anchor: options.anchor,
220
+ rationale: options.rationale,
221
+ created_at: new Date().toISOString(),
222
+ evidence: [ref],
223
+ },
224
+ ],
225
+ };
226
+ record = refreshFromFrontmatter(record, file);
227
+ const errors = (0, core_1.validateEvidence)(record);
228
+ if (errors.length > 0) {
229
+ console.error('\n❌ Invalid evidence record:');
230
+ for (const error of errors) {
231
+ console.error(` - ${error}`);
232
+ }
233
+ console.error('');
234
+ process.exit(1);
235
+ }
236
+ writeSidecarAtomic(sidecarPath, record);
237
+ console.log(`✅ Evidence entry added (${record.entries.length} entries)`);
238
+ });
239
+ }
240
+ /** `evidence sync` — refresh version/checksum from the dossier's current frontmatter. */
241
+ function registerSyncSubcommand(cmd) {
242
+ cmd
243
+ .command('sync')
244
+ .description("Refresh a sidecar's version/checksum from the dossier's current frontmatter")
245
+ .argument('<file>', 'Dossier file (.ds.md)')
246
+ .action((file) => {
247
+ const sidecarPath = (0, helpers_1.siblingEvidencePath)(file);
248
+ if (!node_fs_1.default.existsSync(sidecarPath)) {
249
+ console.error(`\n❌ Evidence file not found: ${sidecarPath}\n`);
250
+ process.exit(1);
251
+ }
252
+ let record = loadSidecar(sidecarPath);
253
+ record = refreshFromFrontmatter(record, file);
254
+ writeSidecarAtomic(sidecarPath, record);
255
+ console.log(`✅ Evidence synced: version=${record.version} hash=${record.checksum.hash}`);
256
+ });
257
+ }
258
+ /** `evidence validate` — deterministic schema validation of a sidecar file. */
259
+ function registerValidateSubcommand(cmd) {
260
+ cmd
261
+ .command('validate')
262
+ .description('Validate an evidence sidecar file against the schema')
263
+ .argument('<file>', 'Evidence sidecar file (.evidence.json)')
264
+ .action((file) => {
265
+ if (!node_fs_1.default.existsSync(file)) {
266
+ console.error(`\n❌ File not found: ${file}\n`);
267
+ process.exit(1);
268
+ }
269
+ try {
270
+ (0, core_1.parseEvidence)(node_fs_1.default.readFileSync(file, 'utf8'));
271
+ }
272
+ catch (err) {
273
+ console.error(`❌ ${err.message}`);
274
+ process.exit(1);
275
+ }
276
+ console.log('✅ valid');
277
+ });
278
+ }
279
+ /** Registers the `evidence` command tree (show, init, add, sync, validate). */
280
+ function registerEvidenceCommand(program) {
281
+ const evidenceCmd = program
282
+ .command('evidence')
283
+ .description("Author, attach, fetch and display a dossier's evidence sidecar");
284
+ registerShowSubcommand(evidenceCmd);
285
+ registerInitSubcommand(evidenceCmd);
286
+ registerAddSubcommand(evidenceCmd);
287
+ registerSyncSubcommand(evidenceCmd);
288
+ registerValidateSubcommand(evidenceCmd);
289
+ }
290
+ //# sourceMappingURL=evidence.js.map