@ai-dossier/core 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evidence.d.ts +39 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +76 -0
- package/dist/evidence.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/linter/rules/schema-valid.d.ts.map +1 -1
- package/dist/linter/rules/schema-valid.js +2 -3
- package/dist/linter/rules/schema-valid.js.map +1 -1
- package/dist/run-log-entry.d.ts +10 -0
- package/dist/run-log-entry.d.ts.map +1 -1
- package/dist/run-log-entry.js.map +1 -1
- package/dist/schema/evidence-schema.json +115 -0
- package/dist/utils/ajv.d.ts +4 -0
- package/dist/utils/ajv.d.ts.map +1 -0
- package/dist/utils/ajv.js +13 -0
- package/dist/utils/ajv.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { DossierFrontmatter } from './types';
|
|
2
|
+
/** Must stay in sync with evidence-schema.json's `evidence_schema_version` const. */
|
|
3
|
+
export declare const EVIDENCE_SCHEMA_VERSION = "1.0.0";
|
|
4
|
+
/** Parse-time size guard for a sidecar file, ahead of JSON.parse and schema validation. */
|
|
5
|
+
export declare const EVIDENCE_MAX_BYTES: number;
|
|
6
|
+
/** Must stay in sync with evidence-schema.json's `entries.items.properties.rationale.maxLength`. */
|
|
7
|
+
export declare const EVIDENCE_MAX_RATIONALE_CHARS = 500;
|
|
8
|
+
export interface EvidenceRef {
|
|
9
|
+
provider: 'claude-code' | 'codex' | 'opencode' | 'gemini-cli' | 'other';
|
|
10
|
+
session: string;
|
|
11
|
+
event?: string;
|
|
12
|
+
host?: string;
|
|
13
|
+
extra?: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export interface EvidenceEntry {
|
|
16
|
+
anchor: string;
|
|
17
|
+
rationale: string;
|
|
18
|
+
created_at: string;
|
|
19
|
+
evidence: EvidenceRef[];
|
|
20
|
+
}
|
|
21
|
+
export interface EvidenceRecord {
|
|
22
|
+
evidence_schema_version: string;
|
|
23
|
+
dossier: string;
|
|
24
|
+
version: string;
|
|
25
|
+
checksum: {
|
|
26
|
+
algorithm: 'sha256';
|
|
27
|
+
hash: string;
|
|
28
|
+
};
|
|
29
|
+
entries: EvidenceEntry[];
|
|
30
|
+
}
|
|
31
|
+
export declare function validateEvidence(value: unknown): string[];
|
|
32
|
+
export declare function parseEvidence(json: string): EvidenceRecord;
|
|
33
|
+
export declare function createEvidenceRecord(input: {
|
|
34
|
+
dossier: string;
|
|
35
|
+
version: string;
|
|
36
|
+
checksumHash: string;
|
|
37
|
+
}): EvidenceRecord;
|
|
38
|
+
export declare function evidenceMatchesDossier(record: EvidenceRecord, frontmatter: Pick<DossierFrontmatter, 'version' | 'checksum'>, fullName: string): string[];
|
|
39
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAC7C,oGAAoG;AACpG,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,SAAS,EAAE,QAAQ,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAID,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAOzD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAkB1D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,cAAc,CAWjB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,UAAU,CAAC,EAC7D,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CA4BV"}
|
package/dist/evidence.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EVIDENCE_MAX_RATIONALE_CHARS = exports.EVIDENCE_MAX_BYTES = exports.EVIDENCE_SCHEMA_VERSION = void 0;
|
|
7
|
+
exports.validateEvidence = validateEvidence;
|
|
8
|
+
exports.parseEvidence = parseEvidence;
|
|
9
|
+
exports.createEvidenceRecord = createEvidenceRecord;
|
|
10
|
+
exports.evidenceMatchesDossier = evidenceMatchesDossier;
|
|
11
|
+
const evidence_schema_json_1 = __importDefault(require("./schema/evidence-schema.json"));
|
|
12
|
+
const ajv_1 = require("./utils/ajv");
|
|
13
|
+
const errors_1 = require("./utils/errors");
|
|
14
|
+
/** Must stay in sync with evidence-schema.json's `evidence_schema_version` const. */
|
|
15
|
+
exports.EVIDENCE_SCHEMA_VERSION = '1.0.0';
|
|
16
|
+
/** Parse-time size guard for a sidecar file, ahead of JSON.parse and schema validation. */
|
|
17
|
+
exports.EVIDENCE_MAX_BYTES = 256 * 1024;
|
|
18
|
+
/** Must stay in sync with evidence-schema.json's `entries.items.properties.rationale.maxLength`. */
|
|
19
|
+
exports.EVIDENCE_MAX_RATIONALE_CHARS = 500;
|
|
20
|
+
const validate = (0, ajv_1.compileSchema)(evidence_schema_json_1.default);
|
|
21
|
+
function validateEvidence(value) {
|
|
22
|
+
const valid = validate(value);
|
|
23
|
+
if (valid) {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
return (validate.errors || []).map((err) => `${err.instancePath} ${err.message}`.trim());
|
|
27
|
+
}
|
|
28
|
+
function parseEvidence(json) {
|
|
29
|
+
if (Buffer.byteLength(json, 'utf8') > exports.EVIDENCE_MAX_BYTES) {
|
|
30
|
+
throw new Error(`Evidence record exceeds maximum size of ${exports.EVIDENCE_MAX_BYTES} bytes`);
|
|
31
|
+
}
|
|
32
|
+
let parsed;
|
|
33
|
+
try {
|
|
34
|
+
parsed = JSON.parse(json);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
throw new Error(`Failed to parse evidence record JSON: ${(0, errors_1.getErrorMessage)(err)}`);
|
|
38
|
+
}
|
|
39
|
+
const errors = validateEvidence(parsed);
|
|
40
|
+
if (errors.length > 0) {
|
|
41
|
+
throw new Error(errors.join('; '));
|
|
42
|
+
}
|
|
43
|
+
return parsed;
|
|
44
|
+
}
|
|
45
|
+
function createEvidenceRecord(input) {
|
|
46
|
+
return {
|
|
47
|
+
evidence_schema_version: exports.EVIDENCE_SCHEMA_VERSION,
|
|
48
|
+
dossier: input.dossier,
|
|
49
|
+
version: input.version,
|
|
50
|
+
checksum: {
|
|
51
|
+
algorithm: 'sha256',
|
|
52
|
+
hash: input.checksumHash,
|
|
53
|
+
},
|
|
54
|
+
entries: [],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function evidenceMatchesDossier(record, frontmatter, fullName) {
|
|
58
|
+
if (!frontmatter.checksum?.hash) {
|
|
59
|
+
return ['dossier has no checksum; sign or run checksum --update before attaching evidence'];
|
|
60
|
+
}
|
|
61
|
+
if (!record.checksum?.hash) {
|
|
62
|
+
return ['evidence record has no checksum; parse it with parseEvidence before comparing'];
|
|
63
|
+
}
|
|
64
|
+
const messages = [];
|
|
65
|
+
if (record.dossier !== fullName) {
|
|
66
|
+
messages.push(`evidence record dossier "${record.dossier}" does not match "${fullName}"`);
|
|
67
|
+
}
|
|
68
|
+
if (record.version !== frontmatter.version) {
|
|
69
|
+
messages.push(`evidence record version "${record.version}" does not match dossier version "${frontmatter.version}"`);
|
|
70
|
+
}
|
|
71
|
+
if (record.checksum.hash !== frontmatter.checksum.hash) {
|
|
72
|
+
messages.push(`evidence record checksum "${record.checksum.hash}" does not match dossier checksum "${frontmatter.checksum.hash}"`);
|
|
73
|
+
}
|
|
74
|
+
return messages;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export { isOpenCodeUsageStream, parseAgentUsage, parseAnnouncedWait, parseDispat
|
|
|
15
15
|
export { calculateChecksum, verifyIntegrity } from './checksum';
|
|
16
16
|
export type { CoherenceContext, CoherenceDiagnostic, CoherenceResult, CoherenceSeverity, DeclaredOutputSchema, StepOutput, } from './coherence';
|
|
17
17
|
export { validateCoherence, validateStepCoherence } from './coherence';
|
|
18
|
+
export type { EvidenceEntry, EvidenceRecord, EvidenceRef } from './evidence';
|
|
19
|
+
export { createEvidenceRecord, EVIDENCE_MAX_BYTES, EVIDENCE_MAX_RATIONALE_CHARS, EVIDENCE_SCHEMA_VERSION, evidenceMatchesDossier, parseEvidence, validateEvidence, } from './evidence';
|
|
18
20
|
export type { FormatOptions, FormatResult } from './formatter';
|
|
19
21
|
export { formatDossierContent, formatDossierFile } from './formatter';
|
|
20
22
|
export type { LintConfig, LintDiagnostic, LintResult, LintRule, LintRuleContext, LintSeverity, RuleSeverityOverride, } from './linter';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,8 +26,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
26
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
30
|
-
exports.createDefaultVerificationResult = exports.scanBodyForUrls = exports.isUrlCoveredByDeclared = exports.isPlaceholderUrl = exports.findUndeclaredUrls = exports.findStaleReferences = exports.collectDeclaredUrls = exports.readFileIfExists = exports.getErrorStack = exports.getErrorMessage = exports.sha256Hex = exports.sha256Hash = exports.VALID_TRACE_STATUSES = exports.createTraceRecorder = exports.resolveTraceConfig = exports.toSpkiPem = exports.signatureCoverage = exports.publicKeysMatch = exports.normalizePublicKey = exports.isSupportedPublicKey = exports.canonicalizeFrontmatter = exports.buildSignedPayload = void 0;
|
|
29
|
+
exports.verifyWithEd25519 = exports.verifySignature = exports.trustedKeysFromContent = exports.reportTrustedKeyProblems = exports.parseTrustedKeys = exports.loadTrustedKeys = exports.isKmsKeyIdentifier = exports.findTrustedIdentifier = exports.scanMarkdown = exports.scanDossierFile = exports.scanDossier = exports.SecurityRuleRegistry = exports.defaultSecurityRules = exports.buildReport = exports.runsLogPath = exports.assessVerificationRisk = exports.assessContentRisk = exports.validateFrontmatter = exports.VALID_STATUSES = exports.VALID_RISK_LEVELS = exports.REQUIRED_FIELDS = exports.RECOMMENDED_FIELDS = exports.parseDossierFile = exports.parseDossierContent = exports.loadLintConfig = exports.lintDossierFile = exports.lintDossier = exports.LintRuleRegistry = exports.defaultRules = exports.formatDossierFile = exports.formatDossierContent = exports.validateEvidence = exports.parseEvidence = exports.evidenceMatchesDossier = exports.EVIDENCE_SCHEMA_VERSION = exports.EVIDENCE_MAX_RATIONALE_CHARS = exports.EVIDENCE_MAX_BYTES = exports.createEvidenceRecord = exports.validateStepCoherence = exports.validateCoherence = exports.verifyIntegrity = exports.calculateChecksum = exports.usageParserFor = exports.SCHED_DISPATCH_EVENT = exports.parseOpenCodeUsage = exports.parseLastToolUse = exports.parseDispatchApiError = exports.parseAnnouncedWait = exports.parseAgentUsage = exports.isOpenCodeUsageStream = void 0;
|
|
30
|
+
exports.createDefaultVerificationResult = exports.scanBodyForUrls = exports.isUrlCoveredByDeclared = exports.isPlaceholderUrl = exports.findUndeclaredUrls = exports.findStaleReferences = exports.collectDeclaredUrls = exports.readFileIfExists = exports.getErrorStack = exports.getErrorMessage = exports.sha256Hex = exports.sha256Hash = exports.VALID_TRACE_STATUSES = exports.createTraceRecorder = exports.resolveTraceConfig = exports.toSpkiPem = exports.signatureCoverage = exports.publicKeysMatch = exports.normalizePublicKey = exports.isSupportedPublicKey = exports.canonicalizeFrontmatter = exports.buildSignedPayload = exports.VerifierRegistry = exports.KmsVerifier = exports.KmsSigner = exports.getVerifierRegistry = exports.Ed25519Verifier = exports.Ed25519Signer = exports.verifyWithKms = void 0;
|
|
31
31
|
var agent_usage_1 = require("./agent-usage");
|
|
32
32
|
Object.defineProperty(exports, "isOpenCodeUsageStream", { enumerable: true, get: function () { return agent_usage_1.isOpenCodeUsageStream; } });
|
|
33
33
|
Object.defineProperty(exports, "parseAgentUsage", { enumerable: true, get: function () { return agent_usage_1.parseAgentUsage; } });
|
|
@@ -44,6 +44,14 @@ Object.defineProperty(exports, "verifyIntegrity", { enumerable: true, get: funct
|
|
|
44
44
|
var coherence_1 = require("./coherence");
|
|
45
45
|
Object.defineProperty(exports, "validateCoherence", { enumerable: true, get: function () { return coherence_1.validateCoherence; } });
|
|
46
46
|
Object.defineProperty(exports, "validateStepCoherence", { enumerable: true, get: function () { return coherence_1.validateStepCoherence; } });
|
|
47
|
+
var evidence_1 = require("./evidence");
|
|
48
|
+
Object.defineProperty(exports, "createEvidenceRecord", { enumerable: true, get: function () { return evidence_1.createEvidenceRecord; } });
|
|
49
|
+
Object.defineProperty(exports, "EVIDENCE_MAX_BYTES", { enumerable: true, get: function () { return evidence_1.EVIDENCE_MAX_BYTES; } });
|
|
50
|
+
Object.defineProperty(exports, "EVIDENCE_MAX_RATIONALE_CHARS", { enumerable: true, get: function () { return evidence_1.EVIDENCE_MAX_RATIONALE_CHARS; } });
|
|
51
|
+
Object.defineProperty(exports, "EVIDENCE_SCHEMA_VERSION", { enumerable: true, get: function () { return evidence_1.EVIDENCE_SCHEMA_VERSION; } });
|
|
52
|
+
Object.defineProperty(exports, "evidenceMatchesDossier", { enumerable: true, get: function () { return evidence_1.evidenceMatchesDossier; } });
|
|
53
|
+
Object.defineProperty(exports, "parseEvidence", { enumerable: true, get: function () { return evidence_1.parseEvidence; } });
|
|
54
|
+
Object.defineProperty(exports, "validateEvidence", { enumerable: true, get: function () { return evidence_1.validateEvidence; } });
|
|
47
55
|
// Formatter exports
|
|
48
56
|
var formatter_1 = require("./formatter");
|
|
49
57
|
Object.defineProperty(exports, "formatDossierContent", { enumerable: true, get: function () { return formatter_1.formatDossierContent; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;AAIH,6CASuB;AARrB,oHAAA,qBAAqB,OAAA;AACrB,8GAAA,eAAe,OAAA;AACf,iHAAA,kBAAkB,OAAA;AAClB,oHAAA,qBAAqB,OAAA;AACrB,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,mHAAA,oBAAoB,OAAA;AACpB,6GAAA,cAAc,OAAA;AAEhB,mBAAmB;AACnB,uCAAgE;AAAvD,6GAAA,iBAAiB,OAAA;AAAE,2GAAA,eAAe,OAAA;AAU3C,yCAAuE;AAA9D,8GAAA,iBAAiB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-valid.d.ts","sourceRoot":"","sources":["../../../src/linter/rules/schema-valid.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-valid.d.ts","sourceRoot":"","sources":["../../../src/linter/rules/schema-valid.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzC,eAAO,MAAM,eAAe,EAAE,QAiD7B,CAAC"}
|
|
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.schemaValidRule = void 0;
|
|
7
|
-
const ajv_1 = __importDefault(require("ajv"));
|
|
8
7
|
const dossier_schema_json_1 = __importDefault(require("../../schema/dossier-schema.json"));
|
|
9
|
-
const
|
|
10
|
-
const validate =
|
|
8
|
+
const ajv_1 = require("../../utils/ajv");
|
|
9
|
+
const validate = (0, ajv_1.compileSchema)(dossier_schema_json_1.default);
|
|
11
10
|
exports.schemaValidRule = {
|
|
12
11
|
id: 'schema-valid',
|
|
13
12
|
description: 'Validate frontmatter against the full JSON Schema',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-valid.js","sourceRoot":"","sources":["../../../src/linter/rules/schema-valid.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"schema-valid.js","sourceRoot":"","sources":["../../../src/linter/rules/schema-valid.ts"],"names":[],"mappings":";;;;;;AAAA,2FAA6D;AAC7D,yCAAgD;AAGhD,MAAM,QAAQ,GAAG,IAAA,mBAAa,EAAC,6BAAa,CAAC,CAAC;AAEjC,QAAA,eAAe,GAAa;IACvC,EAAE,EAAE,cAAc;IAClB,WAAW,EAAE,mDAAmD;IAChE,eAAe,EAAE,OAAO;IACxB,GAAG,CAAC,OAAO;QACT,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE1D,4CAA4C;YAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBACrD,OAAO;oBACL,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,sEAAsE;oBAC/E,KAAK,EAAE,WAAW;iBACnB,CAAC;YACJ,CAAC;YAED,IAAI,OAAe,CAAC;YACpB,IAAI,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,GAAG,2BAA2B,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACpE,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAClC,OAAO,GAAG,GAAG,KAAK,IAAI,OAAO,oBAAoB,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzF,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBACnC,OAAO,GAAG,GAAG,KAAK,IAAI,OAAO,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACrF,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;gBACvC,OAAO,GAAG,GAAG,KAAK,IAAI,OAAO,0BAA0B,GAAG,CAAC,MAAM,CAAC,KAAK,cAAc,CAAC;YACxF,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;gBACvC,OAAO,GAAG,GAAG,KAAK,IAAI,OAAO,yBAAyB,GAAG,CAAC,MAAM,CAAC,KAAK,cAAc,CAAC;YACvF,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,GAAG,GAAG,KAAK,IAAI,OAAO,kCAAkC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,GAAG,KAAK,IAAI,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YAClD,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,OAAgB;gBAC1B,OAAO;gBACP,KAAK,EAAE,KAAK,IAAI,SAAS;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
package/dist/run-log-entry.d.ts
CHANGED
|
@@ -92,6 +92,16 @@ export interface RunLogEntry {
|
|
|
92
92
|
* historical dispatch is no longer recorded anywhere.
|
|
93
93
|
*/
|
|
94
94
|
tier?: string | null;
|
|
95
|
+
/**
|
|
96
|
+
* The host agent session this `ai-dossier run` was invoked from (#769),
|
|
97
|
+
* e.g. Claude Code's `CLAUDE_CODE_SESSION_ID` — the join key `ai-dossier
|
|
98
|
+
* usage` uses to attribute dossier runs to the session (and so the
|
|
99
|
+
* model/tokens) that executed them. Null/absent outside an agent host and
|
|
100
|
+
* on sched dispatch entries.
|
|
101
|
+
*/
|
|
102
|
+
session_id?: string | null;
|
|
103
|
+
/** The host agent that invoked this run (#769): `claude-code` | `opencode`; null/absent outside an agent host. */
|
|
104
|
+
agent?: string | null;
|
|
95
105
|
}
|
|
96
106
|
/**
|
|
97
107
|
* `~/.dossier/runs.jsonl` — the single location both writers (`cli`'s
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log-entry.d.ts","sourceRoot":"","sources":["../src/run-log-entry.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC;IACpE,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kGAAkG;IAClG,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IACxC,qIAAqI;IACrI,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iIAAiI;IACjI,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8FAA8F;IAC9F,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"run-log-entry.d.ts","sourceRoot":"","sources":["../src/run-log-entry.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC;IACpE,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kGAAkG;IAClG,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IACxC,qIAAqI;IACrI,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iIAAiI;IACjI,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8FAA8F;IAC9F,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAqB,GAAG,MAAM,CAE/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log-entry.js","sourceRoot":"","sources":["../src/run-log-entry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"run-log-entry.js","sourceRoot":"","sources":["../src/run-log-entry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqHA,kCAEC;AAvHD,4CAA8B;AAC9B,gDAAkC;AA4GlC;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,OAAe,EAAE,CAAC,OAAO,EAAE;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://github.com/imboard-ai/ai-dossier/schema/evidence/v1.0.0",
|
|
4
|
+
"title": "Dossier Authoring Evidence Schema",
|
|
5
|
+
"description": "JSON Schema for a dossier's authoring-evidence sidecar record — per-rule rationale plus pointers to the agent session(s) where the decision was made. Never loaded by `ai-dossier run`; keyed by the dossier's body checksum.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["evidence_schema_version", "dossier", "version", "checksum", "entries"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"evidence_schema_version": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Version of the Authoring Evidence Schema specification being used",
|
|
13
|
+
"const": "1.0.0"
|
|
14
|
+
},
|
|
15
|
+
"dossier": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Fully-qualified dossier name (namespace/name)",
|
|
18
|
+
"pattern": "^[a-z0-9][a-z0-9-]*(/[a-z0-9][a-z0-9-]*)+$"
|
|
19
|
+
},
|
|
20
|
+
"version": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Semantic version of the dossier this evidence record applies to",
|
|
23
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z.-]+)?$"
|
|
24
|
+
},
|
|
25
|
+
"checksum": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"description": "Body checksum of the dossier version this evidence record applies to",
|
|
28
|
+
"required": ["algorithm", "hash"],
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"properties": {
|
|
31
|
+
"algorithm": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Hash algorithm used",
|
|
34
|
+
"const": "sha256"
|
|
35
|
+
},
|
|
36
|
+
"hash": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "SHA256 hash of dossier body content (after frontmatter)",
|
|
39
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"entries": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"description": "Per-rule/section authoring evidence entries",
|
|
46
|
+
"maxItems": 200,
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": ["anchor", "rationale", "created_at", "evidence"],
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"properties": {
|
|
52
|
+
"anchor": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"description": "Free text naming the rule/heading in the dossier body this entry documents",
|
|
55
|
+
"minLength": 1,
|
|
56
|
+
"maxLength": 200
|
|
57
|
+
},
|
|
58
|
+
"rationale": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"description": "Short rationale for why the rule/section reads the way it does",
|
|
61
|
+
"minLength": 1,
|
|
62
|
+
"maxLength": 500
|
|
63
|
+
},
|
|
64
|
+
"created_at": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "ISO 8601 timestamp when this entry was recorded",
|
|
67
|
+
"maxLength": 40
|
|
68
|
+
},
|
|
69
|
+
"evidence": {
|
|
70
|
+
"type": "array",
|
|
71
|
+
"description": "Pointers to the agent session(s) where this decision was made",
|
|
72
|
+
"minItems": 0,
|
|
73
|
+
"maxItems": 20,
|
|
74
|
+
"items": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"required": ["provider", "session"],
|
|
77
|
+
"additionalProperties": false,
|
|
78
|
+
"properties": {
|
|
79
|
+
"provider": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"description": "Agent provider that produced the session",
|
|
82
|
+
"enum": ["claude-code", "codex", "opencode", "gemini-cli", "other"]
|
|
83
|
+
},
|
|
84
|
+
"session": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"description": "Provider-native session id (e.g. Claude Code's session UUID)",
|
|
87
|
+
"minLength": 1,
|
|
88
|
+
"maxLength": 200
|
|
89
|
+
},
|
|
90
|
+
"event": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": "Provider-native per-message/tool-call id within the session",
|
|
93
|
+
"minLength": 1,
|
|
94
|
+
"maxLength": 200
|
|
95
|
+
},
|
|
96
|
+
"host": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"description": "Machine the session ran on (evidence refs are only resolvable there)",
|
|
99
|
+
"minLength": 1,
|
|
100
|
+
"maxLength": 64
|
|
101
|
+
},
|
|
102
|
+
"extra": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"description": "Optional tool-specific locator IDs (e.g. ctx); never the only locator",
|
|
105
|
+
"maxProperties": 20,
|
|
106
|
+
"additionalProperties": { "type": "string", "maxLength": 500 }
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ajv.d.ts","sourceRoot":"","sources":["../../src/utils/ajv.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAEjD,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAG9E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.compileSchema = compileSchema;
|
|
7
|
+
const ajv_1 = __importDefault(require("ajv"));
|
|
8
|
+
/** Shared Ajv config for compiling dossier-family JSON Schemas (draft-07, permissive). */
|
|
9
|
+
function compileSchema(schema) {
|
|
10
|
+
const ajv = new ajv_1.default({ allErrors: true, strict: false, validateFormats: false });
|
|
11
|
+
return ajv.compile(schema);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ajv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ajv.js","sourceRoot":"","sources":["../../src/utils/ajv.ts"],"names":[],"mappings":";;;;;AAGA,sCAGC;AAND,8CAAiD;AAEjD,0FAA0F;AAC1F,SAAgB,aAAa,CAAc,MAAc;IACvD,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC,OAAO,CAAI,MAAM,CAAC,CAAC;AAChC,CAAC"}
|
package/package.json
CHANGED