@sentropic/track 0.12.0 → 0.13.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/ingest/contract.d.ts +1 -1
- package/dist/ingest/contract.d.ts.map +1 -1
- package/dist/ingest/contract.js +13 -2
- package/dist/ingest/contract.js.map +1 -1
- package/dist/ingest/ingest.d.ts.map +1 -1
- package/dist/ingest/ingest.js +2 -1
- package/dist/ingest/ingest.js.map +1 -1
- package/dist/ingest/map.d.ts.map +1 -1
- package/dist/ingest/map.js +3 -1
- package/dist/ingest/map.js.map +1 -1
- package/dist/ingest/seam-schema.d.ts +447 -0
- package/dist/ingest/seam-schema.d.ts.map +1 -0
- package/dist/ingest/seam-schema.js +257 -0
- package/dist/ingest/seam-schema.js.map +1 -0
- package/dist/model/acceptance.d.ts +8 -0
- package/dist/model/acceptance.d.ts.map +1 -1
- package/dist/model/verification.d.ts +9 -0
- package/dist/model/verification.d.ts.map +1 -1
- package/dist/model/verification.js +7 -0
- package/dist/model/verification.js.map +1 -1
- package/dist/read/contract.d.ts +2 -2
- package/dist/read/contract.js +1 -1
- package/dist/read/contract.js.map +1 -1
- package/dist/state/fold.js +8 -0
- package/dist/state/fold.js.map +1 -1
- package/dist/track.d.ts +8 -1
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +32 -3
- package/dist/track.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
/** Semver of the seam v0 schema artifact itself (the contract-snapshot version, distinct from the
|
|
2
|
+
* INGEST/READ contract versions it references). Bumped MINOR for additive schema growth. */
|
|
3
|
+
export declare const SEAM_V0_SCHEMA_VERSION = "1.0.0";
|
|
4
|
+
/** The frozen v0 seam JSON-Schema (Draft 2020-12) — a REAL envelope schema with a kind dispatch (validatable
|
|
5
|
+
* by a standard validator). Pinned by `seam-schema.test.ts` (the snapshot gate + the WORK_EVENT_SCHEMA
|
|
6
|
+
* wire-parity drift-gate). */
|
|
7
|
+
export declare const SEAM_V0_SCHEMA: {
|
|
8
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
9
|
+
readonly $id: "https://sentropic.dev/schema/harness-track-seam/v0";
|
|
10
|
+
readonly title: "harness↔track seam v0";
|
|
11
|
+
readonly description: "The frozen v0 evidence seam: the WorkEvent envelope (the ROOT schema) with a kind-driven payload dispatch, the three seam payloads (scope.verification, acceptance.run, acceptance.link) + the harness-internal per-check VerificationRun the adapter fans out from. The harness EMITS these; track INGESTS them. Neither imports the other runtime.";
|
|
12
|
+
readonly version: "1.0.0";
|
|
13
|
+
readonly ingestContractVersion: "1.1.0";
|
|
14
|
+
readonly readContractVersion: "1.8.0";
|
|
15
|
+
readonly type: "object";
|
|
16
|
+
readonly required: readonly ["v", "kind", "payload"];
|
|
17
|
+
readonly additionalProperties: false;
|
|
18
|
+
readonly properties: {
|
|
19
|
+
readonly v: {
|
|
20
|
+
readonly const: 1;
|
|
21
|
+
readonly description: "Contract major. Unknown major ⇒ fail-closed reject.";
|
|
22
|
+
};
|
|
23
|
+
readonly kind: {
|
|
24
|
+
readonly enum: readonly ["scope.verification", "acceptance.run", "acceptance.link"];
|
|
25
|
+
};
|
|
26
|
+
readonly payload: {
|
|
27
|
+
readonly type: "object";
|
|
28
|
+
readonly description: "Per-kind shape enforced by the allOf/if-then dispatch below (NOT a bare {type:object}).";
|
|
29
|
+
};
|
|
30
|
+
readonly clientToken: {
|
|
31
|
+
readonly type: "string";
|
|
32
|
+
readonly minLength: 1;
|
|
33
|
+
readonly maxLength: 256;
|
|
34
|
+
readonly description: "Delivery idempotency key, unique per emitted op. Grammar: verification-run:{runId}:{targetKind}:{targetId} (scope/acceptance branch) and …:acceptance:{evidenceId}:link:{criterionId} (per-link). Harness HASHES any component past the 256-char cap. Race-safe under track (workspace, clientToken) under-lock idempotency.";
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
readonly allOf: readonly [{
|
|
38
|
+
readonly if: {
|
|
39
|
+
readonly properties: {
|
|
40
|
+
readonly kind: {
|
|
41
|
+
readonly const: "scope.verification";
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
readonly required: readonly ["kind"];
|
|
45
|
+
};
|
|
46
|
+
readonly then: {
|
|
47
|
+
readonly properties: {
|
|
48
|
+
readonly payload: {
|
|
49
|
+
readonly $ref: "#/$defs/ScopeVerificationPayload";
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
}, {
|
|
54
|
+
readonly if: {
|
|
55
|
+
readonly properties: {
|
|
56
|
+
readonly kind: {
|
|
57
|
+
readonly const: "acceptance.run";
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
readonly required: readonly ["kind"];
|
|
61
|
+
};
|
|
62
|
+
readonly then: {
|
|
63
|
+
readonly properties: {
|
|
64
|
+
readonly payload: {
|
|
65
|
+
readonly $ref: "#/$defs/AcceptanceRunPayload";
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
}, {
|
|
70
|
+
readonly if: {
|
|
71
|
+
readonly properties: {
|
|
72
|
+
readonly kind: {
|
|
73
|
+
readonly const: "acceptance.link";
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
readonly required: readonly ["kind"];
|
|
77
|
+
};
|
|
78
|
+
readonly then: {
|
|
79
|
+
readonly properties: {
|
|
80
|
+
readonly payload: {
|
|
81
|
+
readonly $ref: "#/$defs/AcceptanceLinkPayload";
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
}];
|
|
86
|
+
readonly $defs: {
|
|
87
|
+
readonly VerificationCategory: {
|
|
88
|
+
readonly description: "Reserved enum (security pre-reserved). Validates/defaults the acceptance kind at the adapter; NOT a track wire payload field, NOT routing (routing is target-driven).";
|
|
89
|
+
readonly enum: readonly ["scope", "acceptance", "security"];
|
|
90
|
+
};
|
|
91
|
+
readonly Verdict: {
|
|
92
|
+
readonly description: "The adapter-DERIVED tri-state path verdict (NEVER the harness check result). Derived from violations+severity: any blocking ⇒ violation; advisory-only ⇒ conditional; none ⇒ clean.";
|
|
93
|
+
readonly enum: readonly ["clean", "violation", "conditional"];
|
|
94
|
+
};
|
|
95
|
+
readonly Severity: {
|
|
96
|
+
readonly description: "Per-violation severity (harness guarantees it is always set). Drives the Verdict derivation predicate.";
|
|
97
|
+
readonly enum: readonly ["advisory", "blocking"];
|
|
98
|
+
};
|
|
99
|
+
readonly EvidenceKind: {
|
|
100
|
+
readonly enum: readonly ["unit", "integration", "e2e", "manual"];
|
|
101
|
+
};
|
|
102
|
+
readonly RunResult: {
|
|
103
|
+
readonly description: "Binary (no conditional home for acceptance).";
|
|
104
|
+
readonly enum: readonly ["pass", "fail"];
|
|
105
|
+
};
|
|
106
|
+
readonly Violation: {
|
|
107
|
+
readonly description: "A scope.verification.violations[] entry is the deterministic JSON.stringify({severity,code,path,message}) projection (S2) — a display/index string track records VERBATIM and NEVER parses. The canonical detail is the full VerificationRun behind artifactLocator.";
|
|
108
|
+
readonly type: "object";
|
|
109
|
+
readonly required: readonly ["severity", "code", "path", "message"];
|
|
110
|
+
readonly additionalProperties: false;
|
|
111
|
+
readonly properties: {
|
|
112
|
+
readonly severity: {
|
|
113
|
+
readonly $ref: "#/$defs/Severity";
|
|
114
|
+
};
|
|
115
|
+
readonly code: {
|
|
116
|
+
readonly type: "string";
|
|
117
|
+
};
|
|
118
|
+
readonly path: {
|
|
119
|
+
readonly type: "string";
|
|
120
|
+
};
|
|
121
|
+
readonly message: {
|
|
122
|
+
readonly type: "string";
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
readonly VerificationCheck: {
|
|
127
|
+
readonly description: "One check within a VerificationRun (per-CHECK target — one harness verify aggregates N checks across WPs/criteria). ≥1 target REQUIRED; a target-less check FAILS CLOSED at the adapter (never emitted).";
|
|
128
|
+
readonly type: "object";
|
|
129
|
+
readonly required: readonly ["category", "result", "target"];
|
|
130
|
+
readonly additionalProperties: false;
|
|
131
|
+
readonly properties: {
|
|
132
|
+
readonly category: {
|
|
133
|
+
readonly $ref: "#/$defs/VerificationCategory";
|
|
134
|
+
};
|
|
135
|
+
readonly result: {
|
|
136
|
+
readonly $ref: "#/$defs/RunResult";
|
|
137
|
+
};
|
|
138
|
+
readonly violations: {
|
|
139
|
+
readonly type: "array";
|
|
140
|
+
readonly items: {
|
|
141
|
+
readonly $ref: "#/$defs/Violation";
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
readonly target: {
|
|
145
|
+
readonly type: "object";
|
|
146
|
+
readonly description: "At least ONE of scope|acceptance REQUIRED (both empty ⇒ FAIL-CLOSED, never auto-itemized/glob-routed). Routing is TARGET-driven, never category/path/branch.";
|
|
147
|
+
readonly minProperties: 1;
|
|
148
|
+
readonly additionalProperties: false;
|
|
149
|
+
readonly properties: {
|
|
150
|
+
readonly scope: {
|
|
151
|
+
readonly type: "object";
|
|
152
|
+
readonly required: readonly ["wpRef"];
|
|
153
|
+
readonly additionalProperties: false;
|
|
154
|
+
readonly properties: {
|
|
155
|
+
readonly wpRef: {
|
|
156
|
+
readonly type: "string";
|
|
157
|
+
readonly minLength: 1;
|
|
158
|
+
readonly description: "The WP/spec-phase ItemId the verdict pertains to (the scope-target routing key = track scope.verification.wpRef).";
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
readonly acceptance: {
|
|
163
|
+
readonly type: "object";
|
|
164
|
+
readonly required: readonly ["evidenceId", "kind"];
|
|
165
|
+
readonly additionalProperties: false;
|
|
166
|
+
readonly properties: {
|
|
167
|
+
readonly evidenceId: {
|
|
168
|
+
readonly type: "string";
|
|
169
|
+
readonly minLength: 1;
|
|
170
|
+
readonly description: "A DETERMINISTIC, caller-supplied evidence key (M2=B). The adapter sets it on acceptance.link AND references it on acceptance.run — single-phase, replayable (no two-phase read).";
|
|
171
|
+
};
|
|
172
|
+
readonly kind: {
|
|
173
|
+
readonly $ref: "#/$defs/EvidenceKind";
|
|
174
|
+
};
|
|
175
|
+
readonly criterionIds: {
|
|
176
|
+
readonly type: "array";
|
|
177
|
+
readonly items: {
|
|
178
|
+
readonly type: "string";
|
|
179
|
+
readonly minLength: 1;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
readonly VerificationRun: {
|
|
189
|
+
readonly description: "The harness-internal per-check artifact behind artifactLocator (published for contract-snapshot; NOT a track kind — track ingests its target-routed projection). runId here is the per-emitted-verdict PROJECTION id (globally unique per emitted verdict — the M1 invariant), distinct from any physical run id inside the full artifact.";
|
|
190
|
+
readonly type: "object";
|
|
191
|
+
readonly required: readonly ["runId", "runner", "commit", "artifactLocator", "checks"];
|
|
192
|
+
readonly additionalProperties: false;
|
|
193
|
+
readonly properties: {
|
|
194
|
+
readonly runId: {
|
|
195
|
+
readonly type: "string";
|
|
196
|
+
readonly minLength: 1;
|
|
197
|
+
};
|
|
198
|
+
readonly runner: {
|
|
199
|
+
readonly type: "string";
|
|
200
|
+
readonly minLength: 1;
|
|
201
|
+
};
|
|
202
|
+
readonly commit: {
|
|
203
|
+
readonly type: "string";
|
|
204
|
+
readonly minLength: 1;
|
|
205
|
+
};
|
|
206
|
+
readonly env: {
|
|
207
|
+
readonly type: "string";
|
|
208
|
+
};
|
|
209
|
+
readonly artifactLocator: {
|
|
210
|
+
readonly type: "string";
|
|
211
|
+
readonly minLength: 1;
|
|
212
|
+
readonly description: "Immutable, producer-owned locator string to THIS full JSON (S2). OPAQUE to track (records, never fetches/resolves/owns). Immutability is a PRODUCER guarantee track records, never verifies.";
|
|
213
|
+
};
|
|
214
|
+
readonly checks: {
|
|
215
|
+
readonly type: "array";
|
|
216
|
+
readonly items: {
|
|
217
|
+
readonly $ref: "#/$defs/VerificationCheck";
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
};
|
|
222
|
+
readonly ScopeVerificationPayload: {
|
|
223
|
+
readonly description: "The scope-target projection (one per target.scope branch). 7 shipped fields + the NEW additive optional artifactLocator (S2). Non-empty strings carry minLength:1 to match the runtime asserter (assertVerificationRun).";
|
|
224
|
+
readonly type: "object";
|
|
225
|
+
readonly required: readonly ["runId", "runner", "commit", "verdict"];
|
|
226
|
+
readonly additionalProperties: false;
|
|
227
|
+
readonly properties: {
|
|
228
|
+
readonly runId: {
|
|
229
|
+
readonly type: "string";
|
|
230
|
+
readonly minLength: 1;
|
|
231
|
+
readonly description: "The per-emitted-verdict projection id (M1 invariant: globally unique per emitted verdict).";
|
|
232
|
+
};
|
|
233
|
+
readonly runner: {
|
|
234
|
+
readonly type: "string";
|
|
235
|
+
readonly minLength: 1;
|
|
236
|
+
};
|
|
237
|
+
readonly commit: {
|
|
238
|
+
readonly type: "string";
|
|
239
|
+
readonly minLength: 1;
|
|
240
|
+
};
|
|
241
|
+
readonly verdict: {
|
|
242
|
+
readonly $ref: "#/$defs/Verdict";
|
|
243
|
+
};
|
|
244
|
+
readonly env: {
|
|
245
|
+
readonly type: "string";
|
|
246
|
+
};
|
|
247
|
+
readonly wpRef: {
|
|
248
|
+
readonly type: "string";
|
|
249
|
+
readonly minLength: 1;
|
|
250
|
+
readonly description: "IS target.scope.wpRef. Absent ⇒ a workspace-scoped synthetic-aggregate run (kept OPTIONAL — fail-closed-no-target is enforced ADAPTER-side, OQ-2). Non-empty when present (assertVerificationRun).";
|
|
251
|
+
};
|
|
252
|
+
readonly violations: {
|
|
253
|
+
readonly type: "array";
|
|
254
|
+
readonly items: {
|
|
255
|
+
readonly type: "string";
|
|
256
|
+
};
|
|
257
|
+
readonly description: "The deterministic-stringify Violation projection (S2). Recorded VERBATIM; track never parses/re-matches.";
|
|
258
|
+
};
|
|
259
|
+
readonly artifactLocator: {
|
|
260
|
+
readonly type: "string";
|
|
261
|
+
readonly minLength: 1;
|
|
262
|
+
readonly description: "NEW additive optional (S2). OPAQUE to track. Non-empty when present; dropped-when-absent (hash-minimal, old logs byte-identical).";
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
readonly AcceptanceRunPayload: {
|
|
267
|
+
readonly description: "The acceptance-target run (one per target.acceptance branch). UNCHANGED by the freeze. result = the check pass/result DIRECTLY (S3), never the derived verdict.";
|
|
268
|
+
readonly type: "object";
|
|
269
|
+
readonly required: readonly ["evidenceId", "commit", "env", "runner", "result"];
|
|
270
|
+
readonly additionalProperties: false;
|
|
271
|
+
readonly properties: {
|
|
272
|
+
readonly evidenceId: {
|
|
273
|
+
readonly type: "string";
|
|
274
|
+
readonly minLength: 1;
|
|
275
|
+
readonly description: "References the deterministic caller-supplied key minted on acceptance.link (M2=B) — so recordRun resolves without a two-phase read.";
|
|
276
|
+
};
|
|
277
|
+
readonly commit: {
|
|
278
|
+
readonly type: "string";
|
|
279
|
+
readonly minLength: 1;
|
|
280
|
+
};
|
|
281
|
+
readonly env: {
|
|
282
|
+
readonly type: "string";
|
|
283
|
+
readonly minLength: 1;
|
|
284
|
+
};
|
|
285
|
+
readonly runner: {
|
|
286
|
+
readonly type: "string";
|
|
287
|
+
readonly minLength: 1;
|
|
288
|
+
};
|
|
289
|
+
readonly result: {
|
|
290
|
+
readonly $ref: "#/$defs/RunResult";
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
};
|
|
294
|
+
readonly AcceptanceLinkPayload: {
|
|
295
|
+
readonly description: "One per criterionId under an acceptance branch. NEW additive optional evidenceId (M2=B): caller-supplied deterministic key; absent ⇒ shipped server-mint (back-compat).";
|
|
296
|
+
readonly type: "object";
|
|
297
|
+
readonly required: readonly ["criterionId", "kind", "locator"];
|
|
298
|
+
readonly additionalProperties: false;
|
|
299
|
+
readonly properties: {
|
|
300
|
+
readonly criterionId: {
|
|
301
|
+
readonly type: "string";
|
|
302
|
+
readonly minLength: 1;
|
|
303
|
+
};
|
|
304
|
+
readonly kind: {
|
|
305
|
+
readonly $ref: "#/$defs/EvidenceKind";
|
|
306
|
+
};
|
|
307
|
+
readonly locator: {
|
|
308
|
+
readonly type: "string";
|
|
309
|
+
readonly minLength: 1;
|
|
310
|
+
};
|
|
311
|
+
readonly evidenceId: {
|
|
312
|
+
readonly type: "string";
|
|
313
|
+
readonly minLength: 1;
|
|
314
|
+
readonly description: "NEW additive optional (M2=B). The deterministic caller-supplied evidence key the harness sets so acceptance.run can reference it. Non-empty when present (linkEvidence); absent ⇒ track mints server-side (shipped behavior).";
|
|
315
|
+
};
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
readonly WorkEventEnvelope: {
|
|
319
|
+
readonly description: "The v0 wire envelope (SHIPPED, unchanged by the freeze) — published as a $def for reference; the ROOT schema IS this envelope plus the kind dispatch. Any other top-level key is rejected fail-closed (WHO/trust come from the ingest CONTEXT). The harness emits a SEQUENCE of these (one per check-target branch), never a single VerificationRun envelope.";
|
|
320
|
+
readonly type: "object";
|
|
321
|
+
readonly required: readonly ["v", "kind", "payload"];
|
|
322
|
+
readonly additionalProperties: false;
|
|
323
|
+
readonly properties: {
|
|
324
|
+
readonly v: {
|
|
325
|
+
readonly const: 1;
|
|
326
|
+
readonly description: "Contract major. Unknown major ⇒ fail-closed reject.";
|
|
327
|
+
};
|
|
328
|
+
readonly kind: {
|
|
329
|
+
readonly enum: readonly ["scope.verification", "acceptance.run", "acceptance.link"];
|
|
330
|
+
};
|
|
331
|
+
readonly payload: {
|
|
332
|
+
readonly type: "object";
|
|
333
|
+
};
|
|
334
|
+
readonly clientToken: {
|
|
335
|
+
readonly type: "string";
|
|
336
|
+
readonly minLength: 1;
|
|
337
|
+
readonly maxLength: 256;
|
|
338
|
+
readonly description: "Delivery idempotency key, unique per emitted op. Grammar: verification-run:{runId}:{targetKind}:{targetId} (scope/acceptance branch) and …:acceptance:{evidenceId}:link:{criterionId} (per-link). Harness HASHES any component past the 256-char cap. Race-safe under track (workspace, clientToken) under-lock idempotency.";
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
/**
|
|
345
|
+
* The per-kind seam payload subschemas, addressed by kind (the dispatch targets). Exposed so the
|
|
346
|
+
* wire-parity drift-gate (`seam-schema.test.ts`) can derive {required, properties} per kind and assert
|
|
347
|
+
* equality with `WORK_EVENT_SCHEMA` — the canonical mapping from a WorkEventKind to its payload $def.
|
|
348
|
+
*/
|
|
349
|
+
export declare const SEAM_V0_PAYLOAD_DEFS: {
|
|
350
|
+
readonly 'scope.verification': {
|
|
351
|
+
readonly description: "The scope-target projection (one per target.scope branch). 7 shipped fields + the NEW additive optional artifactLocator (S2). Non-empty strings carry minLength:1 to match the runtime asserter (assertVerificationRun).";
|
|
352
|
+
readonly type: "object";
|
|
353
|
+
readonly required: readonly ["runId", "runner", "commit", "verdict"];
|
|
354
|
+
readonly additionalProperties: false;
|
|
355
|
+
readonly properties: {
|
|
356
|
+
readonly runId: {
|
|
357
|
+
readonly type: "string";
|
|
358
|
+
readonly minLength: 1;
|
|
359
|
+
readonly description: "The per-emitted-verdict projection id (M1 invariant: globally unique per emitted verdict).";
|
|
360
|
+
};
|
|
361
|
+
readonly runner: {
|
|
362
|
+
readonly type: "string";
|
|
363
|
+
readonly minLength: 1;
|
|
364
|
+
};
|
|
365
|
+
readonly commit: {
|
|
366
|
+
readonly type: "string";
|
|
367
|
+
readonly minLength: 1;
|
|
368
|
+
};
|
|
369
|
+
readonly verdict: {
|
|
370
|
+
readonly $ref: "#/$defs/Verdict";
|
|
371
|
+
};
|
|
372
|
+
readonly env: {
|
|
373
|
+
readonly type: "string";
|
|
374
|
+
};
|
|
375
|
+
readonly wpRef: {
|
|
376
|
+
readonly type: "string";
|
|
377
|
+
readonly minLength: 1;
|
|
378
|
+
readonly description: "IS target.scope.wpRef. Absent ⇒ a workspace-scoped synthetic-aggregate run (kept OPTIONAL — fail-closed-no-target is enforced ADAPTER-side, OQ-2). Non-empty when present (assertVerificationRun).";
|
|
379
|
+
};
|
|
380
|
+
readonly violations: {
|
|
381
|
+
readonly type: "array";
|
|
382
|
+
readonly items: {
|
|
383
|
+
readonly type: "string";
|
|
384
|
+
};
|
|
385
|
+
readonly description: "The deterministic-stringify Violation projection (S2). Recorded VERBATIM; track never parses/re-matches.";
|
|
386
|
+
};
|
|
387
|
+
readonly artifactLocator: {
|
|
388
|
+
readonly type: "string";
|
|
389
|
+
readonly minLength: 1;
|
|
390
|
+
readonly description: "NEW additive optional (S2). OPAQUE to track. Non-empty when present; dropped-when-absent (hash-minimal, old logs byte-identical).";
|
|
391
|
+
};
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
readonly 'acceptance.run': {
|
|
395
|
+
readonly description: "The acceptance-target run (one per target.acceptance branch). UNCHANGED by the freeze. result = the check pass/result DIRECTLY (S3), never the derived verdict.";
|
|
396
|
+
readonly type: "object";
|
|
397
|
+
readonly required: readonly ["evidenceId", "commit", "env", "runner", "result"];
|
|
398
|
+
readonly additionalProperties: false;
|
|
399
|
+
readonly properties: {
|
|
400
|
+
readonly evidenceId: {
|
|
401
|
+
readonly type: "string";
|
|
402
|
+
readonly minLength: 1;
|
|
403
|
+
readonly description: "References the deterministic caller-supplied key minted on acceptance.link (M2=B) — so recordRun resolves without a two-phase read.";
|
|
404
|
+
};
|
|
405
|
+
readonly commit: {
|
|
406
|
+
readonly type: "string";
|
|
407
|
+
readonly minLength: 1;
|
|
408
|
+
};
|
|
409
|
+
readonly env: {
|
|
410
|
+
readonly type: "string";
|
|
411
|
+
readonly minLength: 1;
|
|
412
|
+
};
|
|
413
|
+
readonly runner: {
|
|
414
|
+
readonly type: "string";
|
|
415
|
+
readonly minLength: 1;
|
|
416
|
+
};
|
|
417
|
+
readonly result: {
|
|
418
|
+
readonly $ref: "#/$defs/RunResult";
|
|
419
|
+
};
|
|
420
|
+
};
|
|
421
|
+
};
|
|
422
|
+
readonly 'acceptance.link': {
|
|
423
|
+
readonly description: "One per criterionId under an acceptance branch. NEW additive optional evidenceId (M2=B): caller-supplied deterministic key; absent ⇒ shipped server-mint (back-compat).";
|
|
424
|
+
readonly type: "object";
|
|
425
|
+
readonly required: readonly ["criterionId", "kind", "locator"];
|
|
426
|
+
readonly additionalProperties: false;
|
|
427
|
+
readonly properties: {
|
|
428
|
+
readonly criterionId: {
|
|
429
|
+
readonly type: "string";
|
|
430
|
+
readonly minLength: 1;
|
|
431
|
+
};
|
|
432
|
+
readonly kind: {
|
|
433
|
+
readonly $ref: "#/$defs/EvidenceKind";
|
|
434
|
+
};
|
|
435
|
+
readonly locator: {
|
|
436
|
+
readonly type: "string";
|
|
437
|
+
readonly minLength: 1;
|
|
438
|
+
};
|
|
439
|
+
readonly evidenceId: {
|
|
440
|
+
readonly type: "string";
|
|
441
|
+
readonly minLength: 1;
|
|
442
|
+
readonly description: "NEW additive optional (M2=B). The deterministic caller-supplied evidence key the harness sets so acceptance.run can reference it. Non-empty when present (linkEvidence); absent ⇒ track mints server-side (shipped behavior).";
|
|
443
|
+
};
|
|
444
|
+
};
|
|
445
|
+
};
|
|
446
|
+
};
|
|
447
|
+
//# sourceMappingURL=seam-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seam-schema.d.ts","sourceRoot":"","sources":["../../src/ingest/seam-schema.ts"],"names":[],"mappings":"AAuBA;6FAC6F;AAC7F,eAAO,MAAM,sBAAsB,UAAU,CAAA;AAE7C;;+BAE+B;AAC/B,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+OjB,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIvB,CAAA"}
|