@actuarial-ts/compliance 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/dist/diagnosticArtifactStream.d.ts +30 -0
- package/dist/diagnosticArtifactStream.d.ts.map +1 -0
- package/dist/diagnosticArtifactStream.js +128 -0
- package/dist/diagnosticArtifactStream.js.map +1 -0
- package/dist/diagnosticByteSource.d.ts +10 -0
- package/dist/diagnosticByteSource.d.ts.map +1 -0
- package/dist/diagnosticByteSource.js +70 -0
- package/dist/diagnosticByteSource.js.map +1 -0
- package/dist/diagnosticByteView.d.ts +3 -0
- package/dist/diagnosticByteView.d.ts.map +1 -0
- package/dist/diagnosticByteView.js +27 -0
- package/dist/diagnosticByteView.js.map +1 -0
- package/dist/diagnosticCompactRun.d.ts +43 -0
- package/dist/diagnosticCompactRun.d.ts.map +1 -0
- package/dist/diagnosticCompactRun.js +253 -0
- package/dist/diagnosticCompactRun.js.map +1 -0
- package/dist/diagnosticReplayFrames.d.ts +10 -0
- package/dist/diagnosticReplayFrames.d.ts.map +1 -0
- package/dist/diagnosticReplayFrames.js +99 -0
- package/dist/diagnosticReplayFrames.js.map +1 -0
- package/dist/diagnosticReplayProtocol.d.ts +17 -0
- package/dist/diagnosticReplayProtocol.d.ts.map +1 -0
- package/dist/diagnosticReplayProtocol.js +98 -0
- package/dist/diagnosticReplayProtocol.js.map +1 -0
- package/dist/diagnosticReplayReader.d.ts +41 -0
- package/dist/diagnosticReplayReader.d.ts.map +1 -0
- package/dist/diagnosticReplayReader.js +346 -0
- package/dist/diagnosticReplayReader.js.map +1 -0
- package/dist/diagnosticReplayValue.d.ts +34 -0
- package/dist/diagnosticReplayValue.d.ts.map +1 -0
- package/dist/diagnosticReplayValue.js +269 -0
- package/dist/diagnosticReplayValue.js.map +1 -0
- package/dist/diagnosticReplayWriter.d.ts +25 -0
- package/dist/diagnosticReplayWriter.d.ts.map +1 -0
- package/dist/diagnosticReplayWriter.js +148 -0
- package/dist/diagnosticReplayWriter.js.map +1 -0
- package/dist/diagnosticRun.d.ts.map +1 -1
- package/dist/diagnosticRun.js +1 -193
- package/dist/diagnosticRun.js.map +1 -1
- package/dist/diagnosticRunEvidence.d.ts +18 -0
- package/dist/diagnosticRunEvidence.d.ts.map +1 -0
- package/dist/diagnosticRunEvidence.js +195 -0
- package/dist/diagnosticRunEvidence.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/sha256Stream.d.ts +6 -0
- package/dist/sha256Stream.d.ts.map +1 -0
- package/dist/sha256Stream.js +103 -0
- package/dist/sha256Stream.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/src/diagnosticArtifactStream.ts +148 -0
- package/src/diagnosticByteSource.ts +82 -0
- package/src/diagnosticByteView.ts +27 -0
- package/src/diagnosticCompactRun.ts +462 -0
- package/src/diagnosticReplayFrames.ts +99 -0
- package/src/diagnosticReplayProtocol.ts +99 -0
- package/src/diagnosticReplayReader.ts +428 -0
- package/src/diagnosticReplayValue.ts +269 -0
- package/src/diagnosticReplayWriter.ts +190 -0
- package/src/diagnosticRun.ts +7 -373
- package/src/diagnosticRunEvidence.ts +391 -0
- package/src/index.ts +10 -0
- package/src/sha256Stream.ts +108 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticCompactRun.js","sourceRoot":"","sources":["../src/diagnosticCompactRun.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const MAX_REPLAY_FRAME_BYTES = 131072;
|
|
2
|
+
export declare const MAX_REPLAY_READ_BYTES = 131072;
|
|
3
|
+
export declare const REPLAY_TEXT_UNITS = 16384;
|
|
4
|
+
export type ReplayAtom = string | number | boolean | null;
|
|
5
|
+
export type ReplayFrame = readonly ReplayAtom[];
|
|
6
|
+
/** Private transport codec; construction does not grant diagnostic authority. */
|
|
7
|
+
export declare function encodeReplayFrames(frames: AsyncIterable<ReplayFrame> | Iterable<ReplayFrame>): AsyncGenerator<Uint8Array>;
|
|
8
|
+
/** Parse bounded flat frames, never a complete candidate audit/identity. */
|
|
9
|
+
export declare function decodeReplayFrames(chunks: AsyncIterable<Uint8Array> | Iterable<Uint8Array>): AsyncGenerator<ReplayFrame>;
|
|
10
|
+
//# sourceMappingURL=diagnosticReplayFrames.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticReplayFrames.d.ts","sourceRoot":"","sources":["../src/diagnosticReplayFrames.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAC9C,eAAO,MAAM,qBAAqB,SAAU,CAAC;AAC7C,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;AAkChD,iFAAiF;AACjF,wBAAuB,kBAAkB,CACvC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GACzD,cAAc,CAAC,UAAU,CAAC,CAc5B;AAED,4EAA4E;AAC5E,wBAAuB,kBAAkB,CACvC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,GACvD,cAAc,CAAC,WAAW,CAAC,CAiC7B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ComplianceError } from "./errors.js";
|
|
2
|
+
import { diagnosticByteView } from "./diagnosticByteView.js";
|
|
3
|
+
import { consumeDiagnosticByteSource } from "./diagnosticByteSource.js";
|
|
4
|
+
// Transport granularity only: not a limit on total evidence or dataset size.
|
|
5
|
+
export const MAX_REPLAY_FRAME_BYTES = 131_072;
|
|
6
|
+
export const MAX_REPLAY_READ_BYTES = 131_072;
|
|
7
|
+
export const REPLAY_TEXT_UNITS = 16_384;
|
|
8
|
+
function invalid(message) {
|
|
9
|
+
throw new ComplianceError("BAD_DIAGNOSTIC_RUN", message, "$.replayFrames");
|
|
10
|
+
}
|
|
11
|
+
function snapshotFrame(value) {
|
|
12
|
+
if (!Array.isArray(value))
|
|
13
|
+
invalid("Replay frame must be an array");
|
|
14
|
+
const length = Object.getOwnPropertyDescriptor(value, "length")?.value;
|
|
15
|
+
if (!Number.isInteger(length) || length < 1 || length > 16)
|
|
16
|
+
invalid("Replay frame must be a nonempty flat array with at most 16 items");
|
|
17
|
+
const owned = [];
|
|
18
|
+
for (let index = 0; index < length; index++) {
|
|
19
|
+
const field = Object.getOwnPropertyDescriptor(value, String(index));
|
|
20
|
+
if (!field || !("value" in field))
|
|
21
|
+
invalid("Replay frames must contain indexed data properties");
|
|
22
|
+
const item = field.value;
|
|
23
|
+
if (item === null || typeof item === "boolean") {
|
|
24
|
+
owned.push(item);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (typeof item === "number" && Number.isFinite(item)) {
|
|
28
|
+
owned.push(item);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
// Enough for a base64-encoded 64 KiB artifact chunk. Higher-level protocol
|
|
32
|
+
// validates each event's arity, sequencing, and narrower field limits.
|
|
33
|
+
if (typeof item === "string" && item.length <= 87_384) {
|
|
34
|
+
owned.push(item);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
invalid("Replay frames contain only bounded JSON primitives");
|
|
38
|
+
}
|
|
39
|
+
return Object.freeze(owned);
|
|
40
|
+
}
|
|
41
|
+
/** Private transport codec; construction does not grant diagnostic authority. */
|
|
42
|
+
export async function* encodeReplayFrames(frames) {
|
|
43
|
+
const encoder = new TextEncoder();
|
|
44
|
+
for await (const frame of frames) {
|
|
45
|
+
const owned = snapshotFrame(frame);
|
|
46
|
+
const atoms = [];
|
|
47
|
+
let bytes = 3;
|
|
48
|
+
for (const item of owned) {
|
|
49
|
+
const text = JSON.stringify(item);
|
|
50
|
+
bytes += encoder.encode(text).byteLength + (atoms.length ? 1 : 0);
|
|
51
|
+
if (bytes > MAX_REPLAY_FRAME_BYTES)
|
|
52
|
+
invalid("Replay frame exceeds its byte limit");
|
|
53
|
+
atoms.push(text);
|
|
54
|
+
}
|
|
55
|
+
yield encoder.encode(`[${atoms.join(",")}]\n`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Parse bounded flat frames, never a complete candidate audit/identity. */
|
|
59
|
+
export async function* decodeReplayFrames(chunks) {
|
|
60
|
+
const line = new Uint8Array(MAX_REPLAY_FRAME_BYTES);
|
|
61
|
+
const decoder = new TextDecoder("utf-8", { fatal: true });
|
|
62
|
+
let used = 0;
|
|
63
|
+
try {
|
|
64
|
+
for await (const chunk of consumeDiagnosticByteSource(chunks)) {
|
|
65
|
+
const view = diagnosticByteView(chunk);
|
|
66
|
+
if (view.byteLength > MAX_REPLAY_READ_BYTES)
|
|
67
|
+
invalid("Replay read chunk exceeds its transport limit; split input reads");
|
|
68
|
+
// Snapshot before yielding any frame: reused buffers cannot alter later
|
|
69
|
+
// frames in the same delivered chunk. This copy is always bounded.
|
|
70
|
+
const owned = new Uint8Array(view);
|
|
71
|
+
for (const byte of owned) {
|
|
72
|
+
if (byte === 10) {
|
|
73
|
+
if (used === 0)
|
|
74
|
+
invalid("Empty replay frame");
|
|
75
|
+
let parsed;
|
|
76
|
+
try {
|
|
77
|
+
parsed = JSON.parse(decoder.decode(line.subarray(0, used)));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
invalid("Replay frame is not valid UTF-8 JSON");
|
|
81
|
+
}
|
|
82
|
+
used = 0;
|
|
83
|
+
yield snapshotFrame(parsed);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
if (used >= MAX_REPLAY_FRAME_BYTES - 1)
|
|
87
|
+
invalid("Replay frame exceeds its byte limit");
|
|
88
|
+
line[used++] = byte;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (used !== 0)
|
|
93
|
+
invalid("Replay stream ended inside a frame");
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
line.fill(0);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=diagnosticReplayFrames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticReplayFrames.js","sourceRoot":"","sources":["../src/diagnosticReplayFrames.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ReplayFrame } from "./diagnosticReplayFrames.js";
|
|
2
|
+
export declare const REPLAY_FORMAT = "diagnostic-replay";
|
|
3
|
+
export declare const REPLAY_VERSION = 1;
|
|
4
|
+
export declare const ARTIFACT_CHUNK_BYTES = 65536;
|
|
5
|
+
export declare function badReplay(message: string): never;
|
|
6
|
+
export declare function mismatch(message: string): never;
|
|
7
|
+
/** Snapshot host metadata once, without invoking accessors or caller methods. */
|
|
8
|
+
export declare function replayRecord(value: unknown, keys: readonly string[]): Record<string, unknown>;
|
|
9
|
+
export declare function replayArray(value: unknown): unknown[];
|
|
10
|
+
export declare function replayToken(value: unknown): string;
|
|
11
|
+
export declare function replayLimit(value: unknown, label: string): number;
|
|
12
|
+
export declare function replayCancellation(signal: unknown): () => void;
|
|
13
|
+
/** Exactly the writer's bounded canonical flat-frame bytes, including newline. */
|
|
14
|
+
export declare function replayFrameBytes(frame: ReplayFrame): Uint8Array;
|
|
15
|
+
export declare function encodeArtifactChunk(bytes: Uint8Array): string;
|
|
16
|
+
export declare function decodeArtifactChunk(value: unknown): Uint8Array;
|
|
17
|
+
//# sourceMappingURL=diagnosticReplayProtocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticReplayProtocol.d.ts","sourceRoot":"","sources":["../src/diagnosticReplayProtocol.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAEvF,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEhD;AACD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE/C;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW7F;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAoBrD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGlD;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjE;AAID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,CAQ9D;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAI/D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAI7D;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAe9D"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { isDiagnosticPlainRecord, isDiagnosticToken } from "@actuarial-ts/core";
|
|
2
|
+
import { ComplianceError } from "./errors.js";
|
|
3
|
+
import { MAX_REPLAY_FRAME_BYTES } from "./diagnosticReplayFrames.js";
|
|
4
|
+
export const REPLAY_FORMAT = "diagnostic-replay";
|
|
5
|
+
export const REPLAY_VERSION = 1;
|
|
6
|
+
export const ARTIFACT_CHUNK_BYTES = 65_536;
|
|
7
|
+
export function badReplay(message) {
|
|
8
|
+
throw new ComplianceError("BAD_DIAGNOSTIC_RUN", message, "$.replay");
|
|
9
|
+
}
|
|
10
|
+
export function mismatch(message) {
|
|
11
|
+
throw new ComplianceError("DIAGNOSTIC_MISMATCH", message, "$.replay");
|
|
12
|
+
}
|
|
13
|
+
/** Snapshot host metadata once, without invoking accessors or caller methods. */
|
|
14
|
+
export function replayRecord(value, keys) {
|
|
15
|
+
if (!isDiagnosticPlainRecord(value))
|
|
16
|
+
badReplay("Expected a plain replay metadata object");
|
|
17
|
+
const result = Object.create(null);
|
|
18
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
19
|
+
if (typeof key !== "string" || !keys.includes(key))
|
|
20
|
+
badReplay("Unknown replay metadata field");
|
|
21
|
+
const field = Object.getOwnPropertyDescriptor(value, key);
|
|
22
|
+
if (!field || !("value" in field) || !field.enumerable)
|
|
23
|
+
badReplay("Replay metadata must contain enumerable data properties");
|
|
24
|
+
result[key] = field.value;
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
export function replayArray(value) {
|
|
29
|
+
if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype)
|
|
30
|
+
badReplay("Expected a plain replay metadata array");
|
|
31
|
+
const length = Object.getOwnPropertyDescriptor(value, "length")?.value;
|
|
32
|
+
if (typeof length !== "number" || !Number.isSafeInteger(length) || length < 0)
|
|
33
|
+
badReplay("Invalid replay metadata array length");
|
|
34
|
+
for (const key of Reflect.ownKeys(value))
|
|
35
|
+
if (key !== "length" &&
|
|
36
|
+
(typeof key !== "string" || !/^(0|[1-9][0-9]*)$/.test(key) || Number(key) >= length))
|
|
37
|
+
badReplay("Unexpected replay array property");
|
|
38
|
+
const result = [];
|
|
39
|
+
for (let index = 0; index < length; index++) {
|
|
40
|
+
const field = Object.getOwnPropertyDescriptor(value, String(index));
|
|
41
|
+
if (!field || !("value" in field) || !field.enumerable)
|
|
42
|
+
badReplay("Replay array has a hole or accessor");
|
|
43
|
+
result.push(field.value);
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
export function replayToken(value) {
|
|
48
|
+
if (!isDiagnosticToken(value))
|
|
49
|
+
badReplay("Expected a nonempty replay token with valid Unicode");
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
export function replayLimit(value, label) {
|
|
53
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1)
|
|
54
|
+
badReplay(`${label} must be a positive safe integer`);
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
const signalAborted = Object.getOwnPropertyDescriptor(AbortSignal.prototype, "aborted").get;
|
|
58
|
+
const throwIfAborted = AbortSignal.prototype.throwIfAborted;
|
|
59
|
+
export function replayCancellation(signal) {
|
|
60
|
+
if (signal === undefined)
|
|
61
|
+
return () => { };
|
|
62
|
+
try {
|
|
63
|
+
signalAborted.call(signal);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
badReplay("Replay signal must be an AbortSignal");
|
|
67
|
+
}
|
|
68
|
+
return () => throwIfAborted.call(signal);
|
|
69
|
+
}
|
|
70
|
+
/** Exactly the writer's bounded canonical flat-frame bytes, including newline. */
|
|
71
|
+
export function replayFrameBytes(frame) {
|
|
72
|
+
const bytes = new TextEncoder().encode(`${JSON.stringify(frame)}\n`);
|
|
73
|
+
if (bytes.byteLength > MAX_REPLAY_FRAME_BYTES)
|
|
74
|
+
badReplay("Replay frame exceeds its byte limit");
|
|
75
|
+
return bytes;
|
|
76
|
+
}
|
|
77
|
+
export function encodeArtifactChunk(bytes) {
|
|
78
|
+
let binary = "";
|
|
79
|
+
for (const byte of bytes)
|
|
80
|
+
binary += String.fromCharCode(byte);
|
|
81
|
+
return btoa(binary);
|
|
82
|
+
}
|
|
83
|
+
export function decodeArtifactChunk(value) {
|
|
84
|
+
if (typeof value !== "string" ||
|
|
85
|
+
!value.length ||
|
|
86
|
+
value.length > 87_384 ||
|
|
87
|
+
value.length % 4 ||
|
|
88
|
+
!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value))
|
|
89
|
+
badReplay("Invalid bounded artifact base64 chunk");
|
|
90
|
+
const binary = atob(value);
|
|
91
|
+
if (binary.length > ARTIFACT_CHUNK_BYTES || btoa(binary) !== value)
|
|
92
|
+
badReplay("Artifact base64 must use canonical padding bits and bounded chunks");
|
|
93
|
+
const bytes = new Uint8Array(binary.length);
|
|
94
|
+
for (let index = 0; index < binary.length; index++)
|
|
95
|
+
bytes[index] = binary.charCodeAt(index);
|
|
96
|
+
return bytes;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=diagnosticReplayProtocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticReplayProtocol.js","sourceRoot":"","sources":["../src/diagnosticReplayProtocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { DiagnosticArtifactDigest, DiagnosticRunIdentity } from "./diagnosticRun.js";
|
|
2
|
+
import type { DiagnosticReplayByteSource } from "./diagnosticReplayWriter.js";
|
|
3
|
+
/** Host resource policy, not a representation of the SDK's tested capacity. */
|
|
4
|
+
export interface DiagnosticReplayReadLimits {
|
|
5
|
+
readonly maximumEncodedBytes: number;
|
|
6
|
+
readonly maximumArtifacts: number;
|
|
7
|
+
readonly maximumRuns: number;
|
|
8
|
+
readonly maximumArtifactBytes: number;
|
|
9
|
+
readonly maximumInputDepth: number;
|
|
10
|
+
readonly maximumInputNodes: number;
|
|
11
|
+
readonly maximumInputStringUnits: number;
|
|
12
|
+
readonly maximumInputTotalStringUnits: number;
|
|
13
|
+
}
|
|
14
|
+
export interface VerifyDiagnosticReplayStreamOptions {
|
|
15
|
+
readonly limits: DiagnosticReplayReadLimits;
|
|
16
|
+
readonly signal?: AbortSignal;
|
|
17
|
+
}
|
|
18
|
+
declare const verifiedReplayBrand: unique symbol;
|
|
19
|
+
export interface VerifiedDiagnosticReplayStream {
|
|
20
|
+
readonly [verifiedReplayBrand]: true;
|
|
21
|
+
readonly format: "diagnostic-replay";
|
|
22
|
+
readonly version: 1;
|
|
23
|
+
readonly artifacts: readonly DiagnosticArtifactDigest[];
|
|
24
|
+
readonly runs: readonly (DiagnosticRunIdentity & {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
})[];
|
|
27
|
+
/** SHA-256 of canonical numbered frames before the final trailer; not a signature. */
|
|
28
|
+
readonly frameDigest: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Verify all bytes/evidence and independently replay every run, sequentially.
|
|
32
|
+
* Reads must be <=128 KiB. Required resource limits apply before retaining raw
|
|
33
|
+
* inputs; results/audits are compared as text, never reconstructed from a file.
|
|
34
|
+
* Only a final receipt is returned after trailer integrity AND EOF. Hosts must
|
|
35
|
+
* not treat a partially consumed stream as a valid archive. Cancellation is
|
|
36
|
+
* cooperative between chunks/phases; use the signal for host I/O as well.
|
|
37
|
+
*/
|
|
38
|
+
export declare function verifyDiagnosticReplayStream(chunks: DiagnosticReplayByteSource, supplied: VerifyDiagnosticReplayStreamOptions): Promise<VerifiedDiagnosticReplayStream>;
|
|
39
|
+
export declare function assertVerifiedDiagnosticReplayStream(value: unknown): asserts value is VerifiedDiagnosticReplayStream;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=diagnosticReplayReader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticReplayReader.d.ts","sourceRoot":"","sources":["../src/diagnosticReplayReader.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,wBAAwB,EAExB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAgB9E,+EAA+E;AAC/E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;CAC/C;AACD,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AACD,OAAO,CAAC,MAAM,mBAAmB,EAAE,OAAO,MAAM,CAAC;AACjD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,qBAAqB,GAAG;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAC5E,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAuPD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,0BAA0B,EAClC,QAAQ,EAAE,mCAAmC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CAkGzC;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,8BAA8B,CAGjD"}
|