@mmnto/totem 1.53.9 → 1.54.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/artifacts/hash.d.ts +24 -0
- package/dist/artifacts/hash.d.ts.map +1 -0
- package/dist/artifacts/hash.js +46 -0
- package/dist/artifacts/hash.js.map +1 -0
- package/dist/artifacts/hash.test.d.ts +2 -0
- package/dist/artifacts/hash.test.d.ts.map +1 -0
- package/dist/artifacts/hash.test.js +35 -0
- package/dist/artifacts/hash.test.js.map +1 -0
- package/dist/artifacts/schema.d.ts +297 -0
- package/dist/artifacts/schema.d.ts.map +1 -0
- package/dist/artifacts/schema.js +110 -0
- package/dist/artifacts/schema.js.map +1 -0
- package/dist/artifacts/schema.test.d.ts +2 -0
- package/dist/artifacts/schema.test.d.ts.map +1 -0
- package/dist/artifacts/schema.test.js +57 -0
- package/dist/artifacts/schema.test.js.map +1 -0
- package/dist/artifacts/storage.d.ts +46 -0
- package/dist/artifacts/storage.d.ts.map +1 -0
- package/dist/artifacts/storage.js +123 -0
- package/dist/artifacts/storage.js.map +1 -0
- package/dist/artifacts/storage.test.d.ts +2 -0
- package/dist/artifacts/storage.test.d.ts.map +1 -0
- package/dist/artifacts/storage.test.js +79 -0
- package/dist/artifacts/storage.test.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic content hashing for run artifacts (mmnto-ai/totem#2100).
|
|
3
|
+
*
|
|
4
|
+
* Node's `JSON.stringify` preserves key insertion order, so two logically
|
|
5
|
+
* identical payloads assembled in different orders would hash differently —
|
|
6
|
+
* breaking content-addressing and the identical-run dedup guarantee. This
|
|
7
|
+
* module canonicalizes (recursive key sort) BEFORE hashing so the content
|
|
8
|
+
* address is a pure function of the logical payload.
|
|
9
|
+
*
|
|
10
|
+
* Array order is deliberately significant — a reordered array is a different
|
|
11
|
+
* payload, not a different spelling of the same one.
|
|
12
|
+
*
|
|
13
|
+
* Scope: plain JSON data only (the artifact is Zod-validated JSON). Cyclic
|
|
14
|
+
* structures throw via `JSON.stringify` — an artifact can never be cyclic, so
|
|
15
|
+
* a cycle here is a caller bug, not an input class to tolerate.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* sha256 hex (full 64 chars) of the canonical (recursively key-sorted) JSON
|
|
19
|
+
* serialization of `payload`. The full digest — not a truncation — because
|
|
20
|
+
* the hash IS the artifact's filename / identity and must not invite
|
|
21
|
+
* collision shortcuts (contrast `hashManagedBlock`'s display-only 12 chars).
|
|
22
|
+
*/
|
|
23
|
+
export declare function calculateDeterministicHash(payload: unknown): string;
|
|
24
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/artifacts/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuBH;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAGnE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic content hashing for run artifacts (mmnto-ai/totem#2100).
|
|
3
|
+
*
|
|
4
|
+
* Node's `JSON.stringify` preserves key insertion order, so two logically
|
|
5
|
+
* identical payloads assembled in different orders would hash differently —
|
|
6
|
+
* breaking content-addressing and the identical-run dedup guarantee. This
|
|
7
|
+
* module canonicalizes (recursive key sort) BEFORE hashing so the content
|
|
8
|
+
* address is a pure function of the logical payload.
|
|
9
|
+
*
|
|
10
|
+
* Array order is deliberately significant — a reordered array is a different
|
|
11
|
+
* payload, not a different spelling of the same one.
|
|
12
|
+
*
|
|
13
|
+
* Scope: plain JSON data only (the artifact is Zod-validated JSON). Cyclic
|
|
14
|
+
* structures throw via `JSON.stringify` — an artifact can never be cyclic, so
|
|
15
|
+
* a cycle here is a caller bug, not an input class to tolerate.
|
|
16
|
+
*/
|
|
17
|
+
import * as crypto from 'node:crypto';
|
|
18
|
+
/**
|
|
19
|
+
* Recursively rebuild a value with object keys in sorted order so the
|
|
20
|
+
* subsequent stringify is canonical. Arrays keep their element order;
|
|
21
|
+
* primitives (and null) pass through untouched.
|
|
22
|
+
*/
|
|
23
|
+
function canonicalize(value) {
|
|
24
|
+
if (Array.isArray(value)) {
|
|
25
|
+
return value.map(canonicalize);
|
|
26
|
+
}
|
|
27
|
+
if (typeof value === 'object' && value !== null) {
|
|
28
|
+
const sorted = {};
|
|
29
|
+
for (const key of Object.keys(value).sort()) {
|
|
30
|
+
sorted[key] = canonicalize(value[key]);
|
|
31
|
+
}
|
|
32
|
+
return sorted;
|
|
33
|
+
}
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* sha256 hex (full 64 chars) of the canonical (recursively key-sorted) JSON
|
|
38
|
+
* serialization of `payload`. The full digest — not a truncation — because
|
|
39
|
+
* the hash IS the artifact's filename / identity and must not invite
|
|
40
|
+
* collision shortcuts (contrast `hashManagedBlock`'s display-only 12 chars).
|
|
41
|
+
*/
|
|
42
|
+
export function calculateDeterministicHash(payload) {
|
|
43
|
+
const canonical = JSON.stringify(canonicalize(payload));
|
|
44
|
+
return crypto.createHash('sha256').update(canonical, 'utf-8').digest('hex');
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/artifacts/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.test.d.ts","sourceRoot":"","sources":["../../src/artifacts/hash.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { calculateDeterministicHash } from './hash.js';
|
|
3
|
+
describe('calculateDeterministicHash', () => {
|
|
4
|
+
it('guarantees identical hashes for objects with different key insertion orders', () => {
|
|
5
|
+
const a = {
|
|
6
|
+
inputBundle: { maskedPrompt: 'p', diffScope: 'd' },
|
|
7
|
+
backend: { provider: 'gemini', model: 'm' },
|
|
8
|
+
schemaVersion: '1.0.0',
|
|
9
|
+
};
|
|
10
|
+
const b = {
|
|
11
|
+
schemaVersion: '1.0.0',
|
|
12
|
+
backend: { model: 'm', provider: 'gemini' },
|
|
13
|
+
inputBundle: { diffScope: 'd', maskedPrompt: 'p' },
|
|
14
|
+
};
|
|
15
|
+
expect(calculateDeterministicHash(a)).toBe(calculateDeterministicHash(b));
|
|
16
|
+
});
|
|
17
|
+
it('sorts keys recursively, not just at the top level', () => {
|
|
18
|
+
const a = { outer: { z: { b: 2, a: 1 }, y: [1, 2] } };
|
|
19
|
+
const b = { outer: { y: [1, 2], z: { a: 1, b: 2 } } };
|
|
20
|
+
expect(calculateDeterministicHash(a)).toBe(calculateDeterministicHash(b));
|
|
21
|
+
});
|
|
22
|
+
it('preserves array order as significant (reordered arrays hash differently)', () => {
|
|
23
|
+
expect(calculateDeterministicHash({ items: [1, 2] })).not.toBe(calculateDeterministicHash({ items: [2, 1] }));
|
|
24
|
+
});
|
|
25
|
+
it('produces distinct hashes for distinct payloads', () => {
|
|
26
|
+
expect(calculateDeterministicHash({ a: 1 })).not.toBe(calculateDeterministicHash({ a: 2 }));
|
|
27
|
+
});
|
|
28
|
+
it('returns 64-char lowercase sha256 hex', () => {
|
|
29
|
+
expect(calculateDeterministicHash({ a: 1 })).toMatch(/^[0-9a-f]{64}$/);
|
|
30
|
+
});
|
|
31
|
+
it('treats null and absent fields as distinct payloads', () => {
|
|
32
|
+
expect(calculateDeterministicHash({ a: null })).not.toBe(calculateDeterministicHash({}));
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=hash.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.test.js","sourceRoot":"","sources":["../../src/artifacts/hash.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAEvD,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,CAAC,GAAG;YACR,WAAW,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;YAClD,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;YAC3C,aAAa,EAAE,OAAO;SACvB,CAAC;QACF,MAAM,CAAC,GAAG;YACR,aAAa,EAAE,OAAO;YACtB,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC3C,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;SACnD,CAAC;QACF,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAC5D,0BAA0B,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run-artifact contract for the grounded single-run ledger (mmnto-ai/totem#2100,
|
|
3
|
+
* strategy#474 slice 1).
|
|
4
|
+
*
|
|
5
|
+
* The artifact is the immutable bridge between the deterministic substrate and
|
|
6
|
+
* non-deterministic LLM execution: a verifiable, offline record of exactly what
|
|
7
|
+
* was sent (post-DLP — the MASKED prompt, never raw) and what came back.
|
|
8
|
+
* Everything downstream (post-checks #2103, panel synthesis #2104, the Phase-2
|
|
9
|
+
* disposition ledger) consumes this shape, so it stays minimal but versioned.
|
|
10
|
+
*
|
|
11
|
+
* Schema-evolution policy (strategy review F1 on the #2100 design, 0253Z
|
|
12
|
+
* dispatch): the reader is version-tolerant WITHIN the major —
|
|
13
|
+
* - `schemaVersion` validates as `1.x` (never a literal pin),
|
|
14
|
+
* - every post-1.0.0 field must be additive-optional,
|
|
15
|
+
* - a MAJOR bump requires a migration entry in the loader before the writer
|
|
16
|
+
* ships (`loadRunArtifact`'s migration-on-read registry).
|
|
17
|
+
* Hard-reject only unknown majors. Rationale: an append-only ledger whose
|
|
18
|
+
* reader rejects its own history isn't append-only in practice — a literal pin
|
|
19
|
+
* would orphan the accumulated eval-fixture corpus at #2101's first bump.
|
|
20
|
+
*
|
|
21
|
+
* Zod here is a system boundary (persisted JSON read back from disk), per the
|
|
22
|
+
* repo's Zod-at-boundaries-only rule.
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
/** The schemaVersion WRITTEN by this code. Readers accept any 1.x (F1). */
|
|
26
|
+
export declare const RUN_ARTIFACT_SCHEMA_VERSION = "1.0.0";
|
|
27
|
+
/** The major this reader understands; other majors need a migration entry. */
|
|
28
|
+
export declare const RUN_ARTIFACT_KNOWN_MAJOR = 1;
|
|
29
|
+
/**
|
|
30
|
+
* Slice-1 wholesale provenance summary: the current ad-hoc context assembly is
|
|
31
|
+
* similarity-retrieved, and the bundle must say so from day one (the
|
|
32
|
+
* illusion-of-grounding trap cannot be retrofitted away). #2101 owns per-item
|
|
33
|
+
* provenance classes; this stays a free string so that lands without a major.
|
|
34
|
+
*/
|
|
35
|
+
export declare const PROVENANCE_SIMILARITY_ONLY = "similarity-only";
|
|
36
|
+
/**
|
|
37
|
+
* Slice-1 admission class for both migrated callers (spec + review): factually
|
|
38
|
+
* completion-only today. #2102 (backend admission contract) changes who
|
|
39
|
+
* supplies the value, not the field. Day-one self-description, same retrofit
|
|
40
|
+
* argument as provenance.
|
|
41
|
+
*/
|
|
42
|
+
export declare const ADMISSION_COMPLETION_ONLY: "completion_only";
|
|
43
|
+
/**
|
|
44
|
+
* The assembled prompt inputs, POST-DLP. `maskedPrompt`/`maskedSystemPrompt`
|
|
45
|
+
* are what actually crossed the wire (`maskSecrets` output) — recording the
|
|
46
|
+
* raw prompt would persist secrets to disk.
|
|
47
|
+
*/
|
|
48
|
+
export declare const InputBundleSchema: z.ZodObject<{
|
|
49
|
+
maskedPrompt: z.ZodString;
|
|
50
|
+
maskedSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
51
|
+
/** Deterministic diff input when the caller ran with a forced scope (#2098). */
|
|
52
|
+
diffScope: z.ZodOptional<z.ZodString>;
|
|
53
|
+
/** The grounded spec contract, when present (review sensing against a spec doc). */
|
|
54
|
+
specContract: z.ZodOptional<z.ZodString>;
|
|
55
|
+
}, "strip", z.ZodTypeAny, {
|
|
56
|
+
maskedPrompt: string;
|
|
57
|
+
maskedSystemPrompt?: string | undefined;
|
|
58
|
+
diffScope?: string | undefined;
|
|
59
|
+
specContract?: string | undefined;
|
|
60
|
+
}, {
|
|
61
|
+
maskedPrompt: string;
|
|
62
|
+
maskedSystemPrompt?: string | undefined;
|
|
63
|
+
diffScope?: string | undefined;
|
|
64
|
+
specContract?: string | undefined;
|
|
65
|
+
}>;
|
|
66
|
+
/** What KIND of grounding the run had — day-one field, never retrofittable. */
|
|
67
|
+
export declare const GroundingSchema: z.ZodObject<{
|
|
68
|
+
/** Deterministic hash of the grounding context that entered the bundle. */
|
|
69
|
+
hash: z.ZodString;
|
|
70
|
+
/** Wholesale class in slice 1 (`similarity-only`); per-item classes are #2101. */
|
|
71
|
+
provenanceSummary: z.ZodString;
|
|
72
|
+
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
hash: string;
|
|
74
|
+
provenanceSummary: string;
|
|
75
|
+
}, {
|
|
76
|
+
hash: string;
|
|
77
|
+
provenanceSummary: string;
|
|
78
|
+
}>;
|
|
79
|
+
/** Backend identity as RESOLVED (post quota-fallback), not as requested. */
|
|
80
|
+
export declare const BackendSchema: z.ZodObject<{
|
|
81
|
+
provider: z.ZodString;
|
|
82
|
+
model: z.ZodString;
|
|
83
|
+
/** The full provider-qualified string telemetry/cache key on (`provider:model`). */
|
|
84
|
+
qualifiedModel: z.ZodString;
|
|
85
|
+
admissionClass: z.ZodEnum<["completion_only", "self_grounding_agent"]>;
|
|
86
|
+
/** The command tag the run served (`Spec`, `Review`, ...) — the task profile. */
|
|
87
|
+
taskProfile: z.ZodString;
|
|
88
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
89
|
+
}, "strip", z.ZodTypeAny, {
|
|
90
|
+
provider: string;
|
|
91
|
+
model: string;
|
|
92
|
+
qualifiedModel: string;
|
|
93
|
+
admissionClass: "completion_only" | "self_grounding_agent";
|
|
94
|
+
taskProfile: string;
|
|
95
|
+
temperature?: number | undefined;
|
|
96
|
+
}, {
|
|
97
|
+
provider: string;
|
|
98
|
+
model: string;
|
|
99
|
+
qualifiedModel: string;
|
|
100
|
+
admissionClass: "completion_only" | "self_grounding_agent";
|
|
101
|
+
taskProfile: string;
|
|
102
|
+
temperature?: number | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
/**
|
|
105
|
+
* Token counts mirror `OrchestratorResult`: `null` means the provider did not
|
|
106
|
+
* report (honest-absent), distinct from the field being absent entirely.
|
|
107
|
+
*/
|
|
108
|
+
export declare const RunMetricsSchema: z.ZodObject<{
|
|
109
|
+
inputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
110
|
+
outputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
111
|
+
cacheReadInputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
112
|
+
durationMs: z.ZodNumber;
|
|
113
|
+
finishReason: z.ZodOptional<z.ZodString>;
|
|
114
|
+
}, "strip", z.ZodTypeAny, {
|
|
115
|
+
durationMs: number;
|
|
116
|
+
inputTokens?: number | null | undefined;
|
|
117
|
+
outputTokens?: number | null | undefined;
|
|
118
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
119
|
+
finishReason?: string | undefined;
|
|
120
|
+
}, {
|
|
121
|
+
durationMs: number;
|
|
122
|
+
inputTokens?: number | null | undefined;
|
|
123
|
+
outputTokens?: number | null | undefined;
|
|
124
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
125
|
+
finishReason?: string | undefined;
|
|
126
|
+
}>;
|
|
127
|
+
export declare const RunArtifactSchema: z.ZodObject<{
|
|
128
|
+
schemaVersion: z.ZodEffects<z.ZodString, string, string>;
|
|
129
|
+
inputBundle: z.ZodObject<{
|
|
130
|
+
maskedPrompt: z.ZodString;
|
|
131
|
+
maskedSystemPrompt: z.ZodOptional<z.ZodString>;
|
|
132
|
+
/** Deterministic diff input when the caller ran with a forced scope (#2098). */
|
|
133
|
+
diffScope: z.ZodOptional<z.ZodString>;
|
|
134
|
+
/** The grounded spec contract, when present (review sensing against a spec doc). */
|
|
135
|
+
specContract: z.ZodOptional<z.ZodString>;
|
|
136
|
+
}, "strip", z.ZodTypeAny, {
|
|
137
|
+
maskedPrompt: string;
|
|
138
|
+
maskedSystemPrompt?: string | undefined;
|
|
139
|
+
diffScope?: string | undefined;
|
|
140
|
+
specContract?: string | undefined;
|
|
141
|
+
}, {
|
|
142
|
+
maskedPrompt: string;
|
|
143
|
+
maskedSystemPrompt?: string | undefined;
|
|
144
|
+
diffScope?: string | undefined;
|
|
145
|
+
specContract?: string | undefined;
|
|
146
|
+
}>;
|
|
147
|
+
/** Deterministic hash of `inputBundle` alone — the rerun identity. */
|
|
148
|
+
inputHash: z.ZodString;
|
|
149
|
+
grounding: z.ZodObject<{
|
|
150
|
+
/** Deterministic hash of the grounding context that entered the bundle. */
|
|
151
|
+
hash: z.ZodString;
|
|
152
|
+
/** Wholesale class in slice 1 (`similarity-only`); per-item classes are #2101. */
|
|
153
|
+
provenanceSummary: z.ZodString;
|
|
154
|
+
}, "strip", z.ZodTypeAny, {
|
|
155
|
+
hash: string;
|
|
156
|
+
provenanceSummary: string;
|
|
157
|
+
}, {
|
|
158
|
+
hash: string;
|
|
159
|
+
provenanceSummary: string;
|
|
160
|
+
}>;
|
|
161
|
+
backend: z.ZodObject<{
|
|
162
|
+
provider: z.ZodString;
|
|
163
|
+
model: z.ZodString;
|
|
164
|
+
/** The full provider-qualified string telemetry/cache key on (`provider:model`). */
|
|
165
|
+
qualifiedModel: z.ZodString;
|
|
166
|
+
admissionClass: z.ZodEnum<["completion_only", "self_grounding_agent"]>;
|
|
167
|
+
/** The command tag the run served (`Spec`, `Review`, ...) — the task profile. */
|
|
168
|
+
taskProfile: z.ZodString;
|
|
169
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
170
|
+
}, "strip", z.ZodTypeAny, {
|
|
171
|
+
provider: string;
|
|
172
|
+
model: string;
|
|
173
|
+
qualifiedModel: string;
|
|
174
|
+
admissionClass: "completion_only" | "self_grounding_agent";
|
|
175
|
+
taskProfile: string;
|
|
176
|
+
temperature?: number | undefined;
|
|
177
|
+
}, {
|
|
178
|
+
provider: string;
|
|
179
|
+
model: string;
|
|
180
|
+
qualifiedModel: string;
|
|
181
|
+
admissionClass: "completion_only" | "self_grounding_agent";
|
|
182
|
+
taskProfile: string;
|
|
183
|
+
temperature?: number | undefined;
|
|
184
|
+
}>;
|
|
185
|
+
output: z.ZodObject<{
|
|
186
|
+
content: z.ZodString;
|
|
187
|
+
metrics: z.ZodObject<{
|
|
188
|
+
inputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
189
|
+
outputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
190
|
+
cacheReadInputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
191
|
+
durationMs: z.ZodNumber;
|
|
192
|
+
finishReason: z.ZodOptional<z.ZodString>;
|
|
193
|
+
}, "strip", z.ZodTypeAny, {
|
|
194
|
+
durationMs: number;
|
|
195
|
+
inputTokens?: number | null | undefined;
|
|
196
|
+
outputTokens?: number | null | undefined;
|
|
197
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
198
|
+
finishReason?: string | undefined;
|
|
199
|
+
}, {
|
|
200
|
+
durationMs: number;
|
|
201
|
+
inputTokens?: number | null | undefined;
|
|
202
|
+
outputTokens?: number | null | undefined;
|
|
203
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
204
|
+
finishReason?: string | undefined;
|
|
205
|
+
}>;
|
|
206
|
+
}, "strip", z.ZodTypeAny, {
|
|
207
|
+
content: string;
|
|
208
|
+
metrics: {
|
|
209
|
+
durationMs: number;
|
|
210
|
+
inputTokens?: number | null | undefined;
|
|
211
|
+
outputTokens?: number | null | undefined;
|
|
212
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
213
|
+
finishReason?: string | undefined;
|
|
214
|
+
};
|
|
215
|
+
}, {
|
|
216
|
+
content: string;
|
|
217
|
+
metrics: {
|
|
218
|
+
durationMs: number;
|
|
219
|
+
inputTokens?: number | null | undefined;
|
|
220
|
+
outputTokens?: number | null | undefined;
|
|
221
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
222
|
+
finishReason?: string | undefined;
|
|
223
|
+
};
|
|
224
|
+
}>;
|
|
225
|
+
/**
|
|
226
|
+
* ISO-8601 emission time. EXCLUDED from the content address (identical runs
|
|
227
|
+
* dedup to one artifact regardless of when they ran) — observability only.
|
|
228
|
+
*/
|
|
229
|
+
createdAt: z.ZodString;
|
|
230
|
+
}, "strip", z.ZodTypeAny, {
|
|
231
|
+
createdAt: string;
|
|
232
|
+
output: {
|
|
233
|
+
content: string;
|
|
234
|
+
metrics: {
|
|
235
|
+
durationMs: number;
|
|
236
|
+
inputTokens?: number | null | undefined;
|
|
237
|
+
outputTokens?: number | null | undefined;
|
|
238
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
239
|
+
finishReason?: string | undefined;
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
schemaVersion: string;
|
|
243
|
+
inputBundle: {
|
|
244
|
+
maskedPrompt: string;
|
|
245
|
+
maskedSystemPrompt?: string | undefined;
|
|
246
|
+
diffScope?: string | undefined;
|
|
247
|
+
specContract?: string | undefined;
|
|
248
|
+
};
|
|
249
|
+
inputHash: string;
|
|
250
|
+
grounding: {
|
|
251
|
+
hash: string;
|
|
252
|
+
provenanceSummary: string;
|
|
253
|
+
};
|
|
254
|
+
backend: {
|
|
255
|
+
provider: string;
|
|
256
|
+
model: string;
|
|
257
|
+
qualifiedModel: string;
|
|
258
|
+
admissionClass: "completion_only" | "self_grounding_agent";
|
|
259
|
+
taskProfile: string;
|
|
260
|
+
temperature?: number | undefined;
|
|
261
|
+
};
|
|
262
|
+
}, {
|
|
263
|
+
createdAt: string;
|
|
264
|
+
output: {
|
|
265
|
+
content: string;
|
|
266
|
+
metrics: {
|
|
267
|
+
durationMs: number;
|
|
268
|
+
inputTokens?: number | null | undefined;
|
|
269
|
+
outputTokens?: number | null | undefined;
|
|
270
|
+
cacheReadInputTokens?: number | null | undefined;
|
|
271
|
+
finishReason?: string | undefined;
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
schemaVersion: string;
|
|
275
|
+
inputBundle: {
|
|
276
|
+
maskedPrompt: string;
|
|
277
|
+
maskedSystemPrompt?: string | undefined;
|
|
278
|
+
diffScope?: string | undefined;
|
|
279
|
+
specContract?: string | undefined;
|
|
280
|
+
};
|
|
281
|
+
inputHash: string;
|
|
282
|
+
grounding: {
|
|
283
|
+
hash: string;
|
|
284
|
+
provenanceSummary: string;
|
|
285
|
+
};
|
|
286
|
+
backend: {
|
|
287
|
+
provider: string;
|
|
288
|
+
model: string;
|
|
289
|
+
qualifiedModel: string;
|
|
290
|
+
admissionClass: "completion_only" | "self_grounding_agent";
|
|
291
|
+
taskProfile: string;
|
|
292
|
+
temperature?: number | undefined;
|
|
293
|
+
};
|
|
294
|
+
}>;
|
|
295
|
+
export type RunArtifact = z.infer<typeof RunArtifactSchema>;
|
|
296
|
+
export type InputBundle = z.infer<typeof InputBundleSchema>;
|
|
297
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/artifacts/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAG,iBAA0B,CAAC;AAgBpE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;IAG5B,gFAAgF;;IAEhF,oFAAoF;;;;;;;;;;;;EAEpF,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,eAAe;IAC1B,2EAA2E;;IAE3E,kFAAkF;;;;;;;;EAElF,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,aAAa;;;IAGxB,oFAAoF;;;IAGpF,iFAAiF;;;;;;;;;;;;;;;;;EAGjF,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;QAtC5B,gFAAgF;;QAEhF,oFAAoF;;;;;;;;;;;;;IAuCpF,sEAAsE;;;QAjCtE,2EAA2E;;QAE3E,kFAAkF;;;;;;;;;;;;QAQlF,oFAAoF;;;QAGpF,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BjF;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run-artifact contract for the grounded single-run ledger (mmnto-ai/totem#2100,
|
|
3
|
+
* strategy#474 slice 1).
|
|
4
|
+
*
|
|
5
|
+
* The artifact is the immutable bridge between the deterministic substrate and
|
|
6
|
+
* non-deterministic LLM execution: a verifiable, offline record of exactly what
|
|
7
|
+
* was sent (post-DLP — the MASKED prompt, never raw) and what came back.
|
|
8
|
+
* Everything downstream (post-checks #2103, panel synthesis #2104, the Phase-2
|
|
9
|
+
* disposition ledger) consumes this shape, so it stays minimal but versioned.
|
|
10
|
+
*
|
|
11
|
+
* Schema-evolution policy (strategy review F1 on the #2100 design, 0253Z
|
|
12
|
+
* dispatch): the reader is version-tolerant WITHIN the major —
|
|
13
|
+
* - `schemaVersion` validates as `1.x` (never a literal pin),
|
|
14
|
+
* - every post-1.0.0 field must be additive-optional,
|
|
15
|
+
* - a MAJOR bump requires a migration entry in the loader before the writer
|
|
16
|
+
* ships (`loadRunArtifact`'s migration-on-read registry).
|
|
17
|
+
* Hard-reject only unknown majors. Rationale: an append-only ledger whose
|
|
18
|
+
* reader rejects its own history isn't append-only in practice — a literal pin
|
|
19
|
+
* would orphan the accumulated eval-fixture corpus at #2101's first bump.
|
|
20
|
+
*
|
|
21
|
+
* Zod here is a system boundary (persisted JSON read back from disk), per the
|
|
22
|
+
* repo's Zod-at-boundaries-only rule.
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
/** The schemaVersion WRITTEN by this code. Readers accept any 1.x (F1). */
|
|
26
|
+
export const RUN_ARTIFACT_SCHEMA_VERSION = '1.0.0';
|
|
27
|
+
/** The major this reader understands; other majors need a migration entry. */
|
|
28
|
+
export const RUN_ARTIFACT_KNOWN_MAJOR = 1;
|
|
29
|
+
/**
|
|
30
|
+
* Slice-1 wholesale provenance summary: the current ad-hoc context assembly is
|
|
31
|
+
* similarity-retrieved, and the bundle must say so from day one (the
|
|
32
|
+
* illusion-of-grounding trap cannot be retrofitted away). #2101 owns per-item
|
|
33
|
+
* provenance classes; this stays a free string so that lands without a major.
|
|
34
|
+
*/
|
|
35
|
+
export const PROVENANCE_SIMILARITY_ONLY = 'similarity-only';
|
|
36
|
+
/**
|
|
37
|
+
* Slice-1 admission class for both migrated callers (spec + review): factually
|
|
38
|
+
* completion-only today. #2102 (backend admission contract) changes who
|
|
39
|
+
* supplies the value, not the field. Day-one self-description, same retrofit
|
|
40
|
+
* argument as provenance.
|
|
41
|
+
*/
|
|
42
|
+
export const ADMISSION_COMPLETION_ONLY = 'completion_only';
|
|
43
|
+
/** sha256 hex content hash (full digest — identity, not display). */
|
|
44
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/;
|
|
45
|
+
/** Major-1 semver literal — keep in sync with {@link RUN_ARTIFACT_KNOWN_MAJOR} (CR review on #2114: a literal beats runtime RegExp construction; the major only changes alongside a migration entry anyway). */
|
|
46
|
+
const SCHEMA_VERSION_RE = /^1\.\d+\.\d+$/;
|
|
47
|
+
/** Accept any 1.x version; reject other majors with the version named (F1). */
|
|
48
|
+
const schemaVersionField = z.string().refine((v) => SCHEMA_VERSION_RE.test(v), (v) => ({
|
|
49
|
+
message: `unsupported run-artifact schemaVersion "${v}" — this reader understands major ${RUN_ARTIFACT_KNOWN_MAJOR}.x; a new major requires a migration entry in loadRunArtifact`,
|
|
50
|
+
}));
|
|
51
|
+
/**
|
|
52
|
+
* The assembled prompt inputs, POST-DLP. `maskedPrompt`/`maskedSystemPrompt`
|
|
53
|
+
* are what actually crossed the wire (`maskSecrets` output) — recording the
|
|
54
|
+
* raw prompt would persist secrets to disk.
|
|
55
|
+
*/
|
|
56
|
+
export const InputBundleSchema = z.object({
|
|
57
|
+
maskedPrompt: z.string(),
|
|
58
|
+
maskedSystemPrompt: z.string().optional(),
|
|
59
|
+
/** Deterministic diff input when the caller ran with a forced scope (#2098). */
|
|
60
|
+
diffScope: z.string().optional(),
|
|
61
|
+
/** The grounded spec contract, when present (review sensing against a spec doc). */
|
|
62
|
+
specContract: z.string().optional(),
|
|
63
|
+
});
|
|
64
|
+
/** What KIND of grounding the run had — day-one field, never retrofittable. */
|
|
65
|
+
export const GroundingSchema = z.object({
|
|
66
|
+
/** Deterministic hash of the grounding context that entered the bundle. */
|
|
67
|
+
hash: z.string().regex(SHA256_HEX, 'grounding.hash must be a sha256 hex digest'),
|
|
68
|
+
/** Wholesale class in slice 1 (`similarity-only`); per-item classes are #2101. */
|
|
69
|
+
provenanceSummary: z.string().min(1),
|
|
70
|
+
});
|
|
71
|
+
/** Backend identity as RESOLVED (post quota-fallback), not as requested. */
|
|
72
|
+
export const BackendSchema = z.object({
|
|
73
|
+
provider: z.string().min(1),
|
|
74
|
+
model: z.string().min(1),
|
|
75
|
+
/** The full provider-qualified string telemetry/cache key on (`provider:model`). */
|
|
76
|
+
qualifiedModel: z.string().min(1),
|
|
77
|
+
admissionClass: z.enum(['completion_only', 'self_grounding_agent']),
|
|
78
|
+
/** The command tag the run served (`Spec`, `Review`, ...) — the task profile. */
|
|
79
|
+
taskProfile: z.string().min(1),
|
|
80
|
+
temperature: z.number().optional(),
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* Token counts mirror `OrchestratorResult`: `null` means the provider did not
|
|
84
|
+
* report (honest-absent), distinct from the field being absent entirely.
|
|
85
|
+
*/
|
|
86
|
+
export const RunMetricsSchema = z.object({
|
|
87
|
+
inputTokens: z.number().nullable().optional(),
|
|
88
|
+
outputTokens: z.number().nullable().optional(),
|
|
89
|
+
cacheReadInputTokens: z.number().nullable().optional(),
|
|
90
|
+
durationMs: z.number(),
|
|
91
|
+
finishReason: z.string().optional(),
|
|
92
|
+
});
|
|
93
|
+
export const RunArtifactSchema = z.object({
|
|
94
|
+
schemaVersion: schemaVersionField,
|
|
95
|
+
inputBundle: InputBundleSchema,
|
|
96
|
+
/** Deterministic hash of `inputBundle` alone — the rerun identity. */
|
|
97
|
+
inputHash: z.string().regex(SHA256_HEX, 'inputHash must be a sha256 hex digest'),
|
|
98
|
+
grounding: GroundingSchema,
|
|
99
|
+
backend: BackendSchema,
|
|
100
|
+
output: z.object({
|
|
101
|
+
content: z.string(),
|
|
102
|
+
metrics: RunMetricsSchema,
|
|
103
|
+
}),
|
|
104
|
+
/**
|
|
105
|
+
* ISO-8601 emission time. EXCLUDED from the content address (identical runs
|
|
106
|
+
* dedup to one artifact regardless of when they ran) — observability only.
|
|
107
|
+
*/
|
|
108
|
+
createdAt: z.string(),
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/artifacts/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.test.d.ts","sourceRoot":"","sources":["../../src/artifacts/schema.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { RUN_ARTIFACT_SCHEMA_VERSION, RunArtifactSchema } from './schema.js';
|
|
3
|
+
/** A minimal valid artifact for mutation in each case. */
|
|
4
|
+
function validArtifact() {
|
|
5
|
+
return {
|
|
6
|
+
schemaVersion: RUN_ARTIFACT_SCHEMA_VERSION,
|
|
7
|
+
inputBundle: { maskedPrompt: 'prompt after DLP' },
|
|
8
|
+
inputHash: 'a'.repeat(64),
|
|
9
|
+
grounding: { hash: 'b'.repeat(64), provenanceSummary: 'similarity-only' },
|
|
10
|
+
backend: {
|
|
11
|
+
provider: 'gemini',
|
|
12
|
+
model: 'gemini-3.1-pro-preview',
|
|
13
|
+
qualifiedModel: 'gemini:gemini-3.1-pro-preview',
|
|
14
|
+
admissionClass: 'completion_only',
|
|
15
|
+
taskProfile: 'Spec',
|
|
16
|
+
},
|
|
17
|
+
output: { content: 'response', metrics: { durationMs: 1200 } },
|
|
18
|
+
createdAt: '2026-06-07T03:00:00.000Z',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
describe('RunArtifactSchema', () => {
|
|
22
|
+
it('accepts a minimal valid 1.0.0 artifact', () => {
|
|
23
|
+
expect(RunArtifactSchema.parse(validArtifact())).toEqual(validArtifact());
|
|
24
|
+
});
|
|
25
|
+
it('accepts a future 1.x minor (corpus survives minor bumps — F1)', () => {
|
|
26
|
+
const future = { ...validArtifact(), schemaVersion: '1.4.2' };
|
|
27
|
+
expect(RunArtifactSchema.parse(future).schemaVersion).toBe('1.4.2');
|
|
28
|
+
});
|
|
29
|
+
it('rejects an unknown major, naming the version in the error', () => {
|
|
30
|
+
const v2 = { ...validArtifact(), schemaVersion: '2.0.0' };
|
|
31
|
+
const result = RunArtifactSchema.safeParse(v2);
|
|
32
|
+
expect(result.success).toBe(false);
|
|
33
|
+
if (!result.success) {
|
|
34
|
+
expect(result.error.issues.map((i) => i.message).join('\n')).toContain('2.0.0');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
it('rejects a missing required field (maskedPrompt)', () => {
|
|
38
|
+
const artifact = validArtifact();
|
|
39
|
+
const { maskedPrompt: _dropped, ...bundleWithout } = artifact.inputBundle;
|
|
40
|
+
expect(RunArtifactSchema.safeParse({ ...artifact, inputBundle: bundleWithout }).success).toBe(false);
|
|
41
|
+
});
|
|
42
|
+
it('rejects an unknown admissionClass', () => {
|
|
43
|
+
const artifact = validArtifact();
|
|
44
|
+
const broken = {
|
|
45
|
+
...artifact,
|
|
46
|
+
backend: { ...artifact.backend, admissionClass: 'agentic_swarm' },
|
|
47
|
+
};
|
|
48
|
+
expect(RunArtifactSchema.safeParse(broken).success).toBe(false);
|
|
49
|
+
});
|
|
50
|
+
it('accepts null token metrics (provider did not report)', () => {
|
|
51
|
+
const artifact = validArtifact();
|
|
52
|
+
artifact.output.metrics.inputTokens = null;
|
|
53
|
+
artifact.output.metrics.outputTokens = null;
|
|
54
|
+
expect(RunArtifactSchema.safeParse(artifact).success).toBe(true);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../src/artifacts/schema.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Append-only, content-addressed storage for run artifacts
|
|
3
|
+
* (mmnto-ai/totem#2100). Layout: `<totemDir>/artifacts/runs/<hash>.json`,
|
|
4
|
+
* where `<hash>` is the sha256 of the artifact's canonical serialization
|
|
5
|
+
* EXCLUDING `createdAt` — identical runs dedup to one record regardless of
|
|
6
|
+
* when they ran, and a rerun NEVER mutates a prior record (write-if-absent).
|
|
7
|
+
*
|
|
8
|
+
* The directory is machine-local state (gitignored alongside
|
|
9
|
+
* `.totem/cache/`); growth is bounded per-run and pruning is a future verb,
|
|
10
|
+
* deliberately not this slice.
|
|
11
|
+
*
|
|
12
|
+
* Reads go through `readJsonSafe` + `RunArtifactSchema` so a corrupted or
|
|
13
|
+
* wrong-major artifact is a loud `TotemParseError`, never a silent partial
|
|
14
|
+
* (Tenet 4). Version tolerance within the major + the migration-on-read
|
|
15
|
+
* registry implement the F1 evolution policy from the #2100 design review.
|
|
16
|
+
*/
|
|
17
|
+
import type { RunArtifact } from './schema.js';
|
|
18
|
+
/** Absolute runs directory for a given absolute totem dir. */
|
|
19
|
+
export declare function runsDir(totemDirAbs: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Content address of an artifact: deterministic hash over everything EXCEPT
|
|
22
|
+
* `createdAt` (observability, not identity — see schema docstring).
|
|
23
|
+
*/
|
|
24
|
+
export declare function computeRunArtifactContentHash(artifact: RunArtifact): string;
|
|
25
|
+
export interface SaveRunArtifactResult {
|
|
26
|
+
/** The content address (= filename stem). */
|
|
27
|
+
hash: string;
|
|
28
|
+
/** Absolute path of the stored artifact. */
|
|
29
|
+
path: string;
|
|
30
|
+
/** True when an identical logical run was already recorded (no write happened). */
|
|
31
|
+
existed: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Persist an artifact at its content address, write-if-absent. An existing
|
|
35
|
+
* file is NEVER rewritten: same hash ⇒ same logical content by construction,
|
|
36
|
+
* and the original record (including its `createdAt`) is the durable one —
|
|
37
|
+
* append-only means the FIRST write wins forever.
|
|
38
|
+
*/
|
|
39
|
+
export declare function saveRunArtifact(totemDirAbs: string, artifact: RunArtifact): SaveRunArtifactResult;
|
|
40
|
+
/**
|
|
41
|
+
* Load + validate an artifact by content address. Throws `TotemParseError`
|
|
42
|
+
* on a missing file, corrupt JSON, or schema violation (including an unknown
|
|
43
|
+
* major with no migration entry) — loud, never a silent partial.
|
|
44
|
+
*/
|
|
45
|
+
export declare function loadRunArtifact(totemDirAbs: string, hash: string): RunArtifact;
|
|
46
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/artifacts/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkB/C,8DAA8D;AAC9D,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAG3E;AAED,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,qBAAqB,CAgCjG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CA6B9E"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Append-only, content-addressed storage for run artifacts
|
|
3
|
+
* (mmnto-ai/totem#2100). Layout: `<totemDir>/artifacts/runs/<hash>.json`,
|
|
4
|
+
* where `<hash>` is the sha256 of the artifact's canonical serialization
|
|
5
|
+
* EXCLUDING `createdAt` — identical runs dedup to one record regardless of
|
|
6
|
+
* when they ran, and a rerun NEVER mutates a prior record (write-if-absent).
|
|
7
|
+
*
|
|
8
|
+
* The directory is machine-local state (gitignored alongside
|
|
9
|
+
* `.totem/cache/`); growth is bounded per-run and pruning is a future verb,
|
|
10
|
+
* deliberately not this slice.
|
|
11
|
+
*
|
|
12
|
+
* Reads go through `readJsonSafe` + `RunArtifactSchema` so a corrupted or
|
|
13
|
+
* wrong-major artifact is a loud `TotemParseError`, never a silent partial
|
|
14
|
+
* (Tenet 4). Version tolerance within the major + the migration-on-read
|
|
15
|
+
* registry implement the F1 evolution policy from the #2100 design review.
|
|
16
|
+
*/
|
|
17
|
+
import * as fs from 'node:fs';
|
|
18
|
+
import * as path from 'node:path';
|
|
19
|
+
import { rethrowAsParseError, TotemParseError } from '../errors.js';
|
|
20
|
+
import { readJsonSafe } from '../sys/fs.js';
|
|
21
|
+
import { calculateDeterministicHash } from './hash.js';
|
|
22
|
+
import { RunArtifactSchema } from './schema.js';
|
|
23
|
+
/** Storage layout segments under the totem dir (exact layout = impl call, #2100). */
|
|
24
|
+
const RUNS_DIR_SEGMENTS = ['artifacts', 'runs'];
|
|
25
|
+
/** Filename guard — the id IS a filesystem path segment, so gate it hard. */
|
|
26
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/;
|
|
27
|
+
/**
|
|
28
|
+
* Migration-on-read registry (F1). Keyed by MAJOR; each entry lifts a parsed
|
|
29
|
+
* raw object of that major to the current `RunArtifact` shape. EMPTY at
|
|
30
|
+
* 1.0.0 by design — the policy requires a major bump to land its migration
|
|
31
|
+
* entry here BEFORE the writer ships, so the registry being empty is the
|
|
32
|
+
* honest statement that no other major has ever been written.
|
|
33
|
+
*/
|
|
34
|
+
const MIGRATIONS = new Map();
|
|
35
|
+
/** Absolute runs directory for a given absolute totem dir. */
|
|
36
|
+
export function runsDir(totemDirAbs) {
|
|
37
|
+
return path.join(totemDirAbs, ...RUNS_DIR_SEGMENTS);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Content address of an artifact: deterministic hash over everything EXCEPT
|
|
41
|
+
* `createdAt` (observability, not identity — see schema docstring).
|
|
42
|
+
*/
|
|
43
|
+
export function computeRunArtifactContentHash(artifact) {
|
|
44
|
+
const { createdAt: _excluded, ...identity } = artifact;
|
|
45
|
+
return calculateDeterministicHash(identity);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Persist an artifact at its content address, write-if-absent. An existing
|
|
49
|
+
* file is NEVER rewritten: same hash ⇒ same logical content by construction,
|
|
50
|
+
* and the original record (including its `createdAt`) is the durable one —
|
|
51
|
+
* append-only means the FIRST write wins forever.
|
|
52
|
+
*/
|
|
53
|
+
export function saveRunArtifact(totemDirAbs, artifact) {
|
|
54
|
+
// Validate on the way OUT too — a writer bug must not poison the ledger
|
|
55
|
+
// with a record the reader will later reject (the corpus is the point).
|
|
56
|
+
const validated = RunArtifactSchema.parse(artifact);
|
|
57
|
+
const hash = computeRunArtifactContentHash(validated);
|
|
58
|
+
const dir = runsDir(totemDirAbs);
|
|
59
|
+
const filePath = path.join(dir, `${hash}.json`);
|
|
60
|
+
if (fs.existsSync(filePath)) {
|
|
61
|
+
return { hash, path: filePath, existed: true };
|
|
62
|
+
}
|
|
63
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
64
|
+
try {
|
|
65
|
+
// `wx` = atomic create-exclusive: closes the TOCTOU window between the
|
|
66
|
+
// existsSync fast-path and the write, so concurrent saves of the same
|
|
67
|
+
// hash can never overwrite the first record (CR review on #2114) —
|
|
68
|
+
// first-write-wins is enforced by the filesystem, not the check above.
|
|
69
|
+
fs.writeFileSync(filePath, JSON.stringify(validated, null, 2), {
|
|
70
|
+
encoding: 'utf-8',
|
|
71
|
+
mode: 0o600, // matches the response-cache mode — run records carry prompt content
|
|
72
|
+
flag: 'wx',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
// A concurrent writer won the race — same hash ⇒ same logical content,
|
|
77
|
+
// so the existing record IS this save's outcome (append-only dedup).
|
|
78
|
+
if (err.code === 'EEXIST') {
|
|
79
|
+
return { hash, path: filePath, existed: true };
|
|
80
|
+
}
|
|
81
|
+
throw err;
|
|
82
|
+
}
|
|
83
|
+
return { hash, path: filePath, existed: false };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Load + validate an artifact by content address. Throws `TotemParseError`
|
|
87
|
+
* on a missing file, corrupt JSON, or schema violation (including an unknown
|
|
88
|
+
* major with no migration entry) — loud, never a silent partial.
|
|
89
|
+
*/
|
|
90
|
+
export function loadRunArtifact(totemDirAbs, hash) {
|
|
91
|
+
if (!SHA256_HEX.test(hash)) {
|
|
92
|
+
throw new TotemParseError(`Invalid run-artifact id "${hash}" — expected a 64-char sha256 hex content address.`, 'Pass the hash exactly as reported at emission (or from the artifacts/runs/ filename).');
|
|
93
|
+
}
|
|
94
|
+
const filePath = path.join(runsDir(totemDirAbs), `${hash}.json`);
|
|
95
|
+
// Migration seam (F1): peek the major BEFORE strict validation so a known
|
|
96
|
+
// older major routes through its migration instead of failing the current
|
|
97
|
+
// schema. With an empty registry this is a straight fall-through today.
|
|
98
|
+
const raw = readJsonSafe(filePath);
|
|
99
|
+
const major = readMajor(raw);
|
|
100
|
+
if (major !== undefined) {
|
|
101
|
+
const migrate = MIGRATIONS.get(major);
|
|
102
|
+
if (migrate !== undefined)
|
|
103
|
+
return migrate(raw);
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
return RunArtifactSchema.parse(raw);
|
|
107
|
+
// totem-context: rethrowAsParseError always throws (returns `never`) — this catch RE-throws via the shared helper, normalizing ZodError to the module's stated TotemParseError load contract (GCA + CR review on #2114); nothing is swallowed.
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
rethrowAsParseError(`Run artifact ${hash} failed schema validation`, err, 'The artifact may be corrupted or written by an incompatible totem version; re-emit it (or add the migration entry for its major).');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/** Best-effort major extraction from a raw parsed payload; undefined when absent/garbled. */
|
|
114
|
+
function readMajor(raw) {
|
|
115
|
+
if (typeof raw !== 'object' || raw === null)
|
|
116
|
+
return undefined;
|
|
117
|
+
const version = raw['schemaVersion'];
|
|
118
|
+
if (typeof version !== 'string')
|
|
119
|
+
return undefined;
|
|
120
|
+
const major = Number.parseInt(version.split('.')[0] ?? '', 10);
|
|
121
|
+
return Number.isNaN(major) ? undefined : major;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/artifacts/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.test.d.ts","sourceRoot":"","sources":["../../src/artifacts/storage.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as os from 'node:os';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
5
|
+
import { TotemParseError } from '../errors.js';
|
|
6
|
+
import { cleanTmpDir } from '../test-utils.js';
|
|
7
|
+
import { RUN_ARTIFACT_SCHEMA_VERSION } from './schema.js';
|
|
8
|
+
import { computeRunArtifactContentHash, loadRunArtifact, runsDir, saveRunArtifact, } from './storage.js';
|
|
9
|
+
function artifact(overrides = {}) {
|
|
10
|
+
return {
|
|
11
|
+
schemaVersion: RUN_ARTIFACT_SCHEMA_VERSION,
|
|
12
|
+
inputBundle: { maskedPrompt: 'prompt after DLP' },
|
|
13
|
+
inputHash: 'a'.repeat(64),
|
|
14
|
+
grounding: { hash: 'b'.repeat(64), provenanceSummary: 'similarity-only' },
|
|
15
|
+
backend: {
|
|
16
|
+
provider: 'gemini',
|
|
17
|
+
model: 'gemini-3.1-pro-preview',
|
|
18
|
+
qualifiedModel: 'gemini:gemini-3.1-pro-preview',
|
|
19
|
+
admissionClass: 'completion_only',
|
|
20
|
+
taskProfile: 'Spec',
|
|
21
|
+
},
|
|
22
|
+
output: { content: 'response', metrics: { durationMs: 1200 } },
|
|
23
|
+
createdAt: '2026-06-07T03:00:00.000Z',
|
|
24
|
+
...overrides,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
describe('run-artifact storage', () => {
|
|
28
|
+
let totemDir;
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
totemDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-artifacts-'));
|
|
31
|
+
});
|
|
32
|
+
afterEach(() => {
|
|
33
|
+
cleanTmpDir(totemDir);
|
|
34
|
+
});
|
|
35
|
+
it('saves a valid artifact at its content-address and loads it back', () => {
|
|
36
|
+
const saved = saveRunArtifact(totemDir, artifact());
|
|
37
|
+
expect(saved.existed).toBe(false);
|
|
38
|
+
// Explicit segments, not runsDir() — asserting against the helper under
|
|
39
|
+
// test would mask a path-layout regression (CR review on #2114).
|
|
40
|
+
expect(saved.path).toBe(path.join(totemDir, 'artifacts', 'runs', `${saved.hash}.json`));
|
|
41
|
+
expect(fs.existsSync(saved.path)).toBe(true);
|
|
42
|
+
expect(loadRunArtifact(totemDir, saved.hash)).toEqual(artifact());
|
|
43
|
+
});
|
|
44
|
+
it('content-address excludes createdAt — identical runs dedup across time', () => {
|
|
45
|
+
const early = artifact({ createdAt: '2026-06-07T03:00:00.000Z' });
|
|
46
|
+
const late = artifact({ createdAt: '2026-06-08T09:30:00.000Z' });
|
|
47
|
+
expect(computeRunArtifactContentHash(early)).toBe(computeRunArtifactContentHash(late));
|
|
48
|
+
});
|
|
49
|
+
it('append-only: re-saving the same logical run never rewrites the existing file', () => {
|
|
50
|
+
const first = saveRunArtifact(totemDir, artifact({ createdAt: '2026-06-07T03:00:00.000Z' }));
|
|
51
|
+
const second = saveRunArtifact(totemDir, artifact({ createdAt: '2026-06-08T09:30:00.000Z' }));
|
|
52
|
+
expect(second.hash).toBe(first.hash);
|
|
53
|
+
expect(second.existed).toBe(true);
|
|
54
|
+
// The ORIGINAL record survives byte-identical — including its createdAt.
|
|
55
|
+
expect(loadRunArtifact(totemDir, first.hash).createdAt).toBe('2026-06-07T03:00:00.000Z');
|
|
56
|
+
});
|
|
57
|
+
it('different logical runs get different content addresses', () => {
|
|
58
|
+
const a = saveRunArtifact(totemDir, artifact());
|
|
59
|
+
const b = saveRunArtifact(totemDir, artifact({ output: { content: 'different response', metrics: { durationMs: 900 } } }));
|
|
60
|
+
expect(a.hash).not.toBe(b.hash);
|
|
61
|
+
});
|
|
62
|
+
it('rejects loading corrupted or invalid schema artifacts', () => {
|
|
63
|
+
const dir = runsDir(totemDir);
|
|
64
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
65
|
+
const corrupted = 'c'.repeat(64);
|
|
66
|
+
fs.writeFileSync(path.join(dir, `${corrupted}.json`), '{not json at all');
|
|
67
|
+
expect(() => loadRunArtifact(totemDir, corrupted)).toThrow(TotemParseError);
|
|
68
|
+
const wrongMajor = 'd'.repeat(64);
|
|
69
|
+
fs.writeFileSync(path.join(dir, `${wrongMajor}.json`), JSON.stringify({ ...artifact(), schemaVersion: '2.0.0' }));
|
|
70
|
+
expect(() => loadRunArtifact(totemDir, wrongMajor)).toThrow(/2\.0\.0/);
|
|
71
|
+
});
|
|
72
|
+
it('loading a missing hash throws with the path named', () => {
|
|
73
|
+
expect(() => loadRunArtifact(totemDir, 'e'.repeat(64))).toThrow(TotemParseError);
|
|
74
|
+
});
|
|
75
|
+
it('rejects a non-hash id before touching the filesystem (path-traversal guard)', () => {
|
|
76
|
+
expect(() => loadRunArtifact(totemDir, '../../secrets')).toThrow(/sha256/i);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=storage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../src/artifacts/storage.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -102,6 +102,11 @@ export type { SafeExecOptions } from './sys/exec.js';
|
|
|
102
102
|
export { describeSafeExecError, safeExec } from './sys/exec.js';
|
|
103
103
|
export { extractChangedFiles, filterDiffByPatterns, findRepoRootSync, getDefaultBranch, getGitBranch, getGitBranchDiff, getGitDiff, getGitDiffRange, getGitDiffStat, getGitLogSince, getGitStatus, getLatestTag, getTagDate, inferScopeFromFiles, isFileDirty, resolveGitRoot, } from './sys/git.js';
|
|
104
104
|
export { readJsonSafe } from './sys/fs.js';
|
|
105
|
+
export { calculateDeterministicHash } from './artifacts/hash.js';
|
|
106
|
+
export type { InputBundle, RunArtifact } from './artifacts/schema.js';
|
|
107
|
+
export { ADMISSION_COMPLETION_ONLY, PROVENANCE_SIMILARITY_ONLY, RUN_ARTIFACT_SCHEMA_VERSION, RunArtifactSchema, } from './artifacts/schema.js';
|
|
108
|
+
export type { SaveRunArtifactResult } from './artifacts/storage.js';
|
|
109
|
+
export { computeRunArtifactContentHash, loadRunArtifact, runsDir, saveRunArtifact, } from './artifacts/storage.js';
|
|
105
110
|
export type { StrategyResolverConfig, StrategyResolverOptions, StrategyRootStatus, } from './strategy-resolver.js';
|
|
106
111
|
export { resolveStrategyRoot } from './strategy-resolver.js';
|
|
107
112
|
export type { SubstratePaths, SubstrateResolverConfig, SubstrateResolverOptions, } from './substrate-resolver.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -73,6 +73,10 @@ export { describeSafeExecError, safeExec } from './sys/exec.js';
|
|
|
73
73
|
export { extractChangedFiles, filterDiffByPatterns, findRepoRootSync, getDefaultBranch, getGitBranch, getGitBranchDiff, getGitDiff, getGitDiffRange, getGitDiffStat, getGitLogSince, getGitStatus, getLatestTag, getTagDate, inferScopeFromFiles, isFileDirty, resolveGitRoot, } from './sys/git.js';
|
|
74
74
|
// Filesystem helpers
|
|
75
75
|
export { readJsonSafe } from './sys/fs.js';
|
|
76
|
+
// Grounded run artifacts (mmnto-ai/totem#2100, strategy#474 slice 1)
|
|
77
|
+
export { calculateDeterministicHash } from './artifacts/hash.js';
|
|
78
|
+
export { ADMISSION_COMPLETION_ONLY, PROVENANCE_SIMILARITY_ONLY, RUN_ARTIFACT_SCHEMA_VERSION, RunArtifactSchema, } from './artifacts/schema.js';
|
|
79
|
+
export { computeRunArtifactContentHash, loadRunArtifact, runsDir, saveRunArtifact, } from './artifacts/storage.js';
|
|
76
80
|
export { resolveStrategyRoot } from './strategy-resolver.js';
|
|
77
81
|
export { resolveSubstratePaths } from './substrate-resolver.js';
|
|
78
82
|
export { resolveOrchestrationPaths, resolveSelfAgents } from './orchestration-resolver.js';
|
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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"}
|