@actuarial-ts/data 0.6.1 → 0.7.1
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 +42 -3
- package/dist/compactDiagnosticJson.d.ts +24 -0
- package/dist/compactDiagnosticJson.d.ts.map +1 -0
- package/dist/compactDiagnosticJson.js +200 -0
- package/dist/compactDiagnosticJson.js.map +1 -0
- package/dist/diagnosticInput.d.ts +53 -2
- package/dist/diagnosticInput.d.ts.map +1 -1
- package/dist/diagnosticInput.js +177 -61
- package/dist/diagnosticInput.js.map +1 -1
- package/dist/diagnosticPreparedReview.d.ts +64 -1
- package/dist/diagnosticPreparedReview.d.ts.map +1 -1
- package/dist/diagnosticPreparedReview.js +384 -64
- package/dist/diagnosticPreparedReview.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/src/compactDiagnosticJson.ts +216 -0
- package/src/diagnosticInput.ts +298 -151
- package/src/diagnosticPreparedReview.ts +649 -111
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Typed ingestion, preparation, and data-review boundaries for the actuarial-ts SDK. It supports loss-run/exposure CSVs, annual claim-development adaptation, triangle assembly, and generalized diagnostic review designed to support ASOP No. 23 work.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install @actuarial-ts/data@0.
|
|
6
|
+
npm install @actuarial-ts/data@0.7.1 @actuarial-ts/core@0.7.1
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Node 20+, ESM. Responsibility for the review and resulting actuarial work remains with the actuary.
|
|
@@ -14,7 +14,7 @@ Node 20+, ESM. Responsibility for the review and resulting actuarial work remain
|
|
|
14
14
|
|
|
15
15
|
## Diagnostic run boundary
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
The example below uses the retained eager path: `validateDiagnosticRunInput` before `runValidatedMetricDiagnostics`. Validation parses the entire configuration atomically and compiles its definition; no partially validated run escapes. The compact path below uses the same input model and execution policies with a distinct evidence representation.
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
20
|
import { runValidatedMetricDiagnostics, validateDiagnosticRunInput } from "@actuarial-ts/data";
|
|
@@ -59,7 +59,46 @@ Definitions add declarative `compare`, `reconcile`, `monotonic`, `layer-order`,
|
|
|
59
59
|
|
|
60
60
|
Completed outcomes are owner-branded and include the exact prepared data, review receipt, run preset, dataset artifact, grouping, result, and two-gate receipt. Compliance provenance accepts only that completed object.
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
## Compact runs and paged review
|
|
63
|
+
|
|
64
|
+
Introduced in 0.7.0, `validateDiagnosticRunInputCompact` followed by
|
|
65
|
+
`runValidatedMetricDiagnosticsCompact` retains complete review evidence behind
|
|
66
|
+
authenticated owners. Check `outcome.status` before using a completed run: a
|
|
67
|
+
review-blocked result is `null`, while a metric-blocked outcome includes its
|
|
68
|
+
diagnostic result but still cannot authorize provenance. Neither blocked path
|
|
69
|
+
should be presented as a successfully reviewed analysis.
|
|
70
|
+
|
|
71
|
+
Compact receipts have summary checks with `findingCount`, an `evaluations`
|
|
72
|
+
store, and a `findings` store. They do not contain eager per-check finding arrays.
|
|
73
|
+
Use the store from the same receipt throughout paging:
|
|
74
|
+
|
|
75
|
+
| Need | Public API |
|
|
76
|
+
|---|---|
|
|
77
|
+
| Finding summaries without expanded source lists | `pageDiagnosticReviewFindings(receipt.findings, query)` from data |
|
|
78
|
+
| Sources for one finding's stable index | `pageDiagnosticReviewFindingSources(receipt.findings, index, query)` from data |
|
|
79
|
+
| Passed, triggered, and not-evaluated evaluation summaries | `pageDiagnosticReviewEvaluations(receipt.evaluations, query)` from core |
|
|
80
|
+
| Sources for one evaluation | `pageDiagnosticReviewEvaluationSources` from core |
|
|
81
|
+
|
|
82
|
+
Finding-source queries distinguish `context` and review `scope` sources. Page
|
|
83
|
+
results disclose totals and continuation offsets; a summary's source count is
|
|
84
|
+
not the source list. `getDiagnosticReviewFinding` and
|
|
85
|
+
`iterateDiagnosticReviewFindings` provide full individual findings when needed,
|
|
86
|
+
but can expand their source arrays. Do not collect every full finding merely to
|
|
87
|
+
paginate it afterward.
|
|
88
|
+
|
|
89
|
+
`getCompletedCompactDiagnosticRunInput` exposes the retained immutable input
|
|
90
|
+
owner for a genuine completed run. Keeping that run alive also keeps its replay
|
|
91
|
+
inputs alive; release obsolete runs when the host no longer needs them. Parsed
|
|
92
|
+
JSON, spreads, and casts cannot recreate these owners. Use
|
|
93
|
+
`createCompactDiagnosticRunIdentity` in compliance for compact completed runs;
|
|
94
|
+
the eager provenance function is not interchangeable.
|
|
95
|
+
|
|
96
|
+
See the runnable [compact adoption guide](https://github.com/yerromnitsuj/actng/blob/v0.7.1/docs/migrations/0.7-compact-diagnostics.md)
|
|
97
|
+
and [replay/resource-policy reference](https://github.com/yerromnitsuj/actng/blob/v0.7.1/docs/reference/diagnostic-replay-stream.md).
|
|
98
|
+
Compact representation preserves evidence; it is not a claim that an arbitrary
|
|
99
|
+
large dataset or host memory budget has passed acceptance.
|
|
100
|
+
|
|
101
|
+
See the [formula catalog](https://github.com/yerromnitsuj/actng/blob/v0.7.1/docs/reference/diagnostic-formulas.md) and [migration guide](https://github.com/yerromnitsuj/actng/blob/v0.7.1/docs/migrations/0.6-generalized-diagnostics.md).
|
|
63
102
|
|
|
64
103
|
## License
|
|
65
104
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type DiagnosticIdentityDocument } from "@actuarial-ts/core";
|
|
2
|
+
/** Internal capacity guard, exported only from this private module for tests. */
|
|
3
|
+
export declare function assertCompactFindingCapacity(count: number, addition?: number): void;
|
|
4
|
+
export declare class CompactDiagnosticJson {
|
|
5
|
+
private nodes;
|
|
6
|
+
private edges;
|
|
7
|
+
private strings;
|
|
8
|
+
private stringIds;
|
|
9
|
+
private primitiveIds;
|
|
10
|
+
private smallNodes;
|
|
11
|
+
private nodeCount;
|
|
12
|
+
private edgeCount;
|
|
13
|
+
private sealed;
|
|
14
|
+
private stringId;
|
|
15
|
+
add(value: unknown): number;
|
|
16
|
+
seal(): void;
|
|
17
|
+
private edge;
|
|
18
|
+
length(id: number): number;
|
|
19
|
+
property(id: number | undefined, key: string): number | undefined;
|
|
20
|
+
arrayItem(id: number, index: number): number;
|
|
21
|
+
identityDocument(id: number): DiagnosticIdentityDocument;
|
|
22
|
+
read(id: number, sourceCountsOnly?: boolean): unknown;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=compactDiagnosticJson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compactDiagnosticJson.d.ts","sourceRoot":"","sources":["../src/compactDiagnosticJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAK5B,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,QAAQ,SAAI,GACX,IAAI,CAgBN;AAQD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ;IAUhB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAyE3B,IAAI,IAAI,IAAI;IAMZ,OAAO,CAAC,IAAI;IAGZ,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAG1B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUjE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B;IAqBxD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,UAAQ,GAAG,OAAO;CAoCpD"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { createDiagnosticIdentityArray, createDiagnosticIdentityObject, createDiagnosticIdentityValue, DiagnosticValidationError, } from "@actuarial-ts/core";
|
|
2
|
+
/** Private column-backed snapshots for SDK-constructed finding records. No I/O. */
|
|
3
|
+
const CHUNK = 4096;
|
|
4
|
+
/** Internal capacity guard, exported only from this private module for tests. */
|
|
5
|
+
export function assertCompactFindingCapacity(count, addition = 1) {
|
|
6
|
+
if (!Number.isSafeInteger(count) ||
|
|
7
|
+
!Number.isSafeInteger(addition) ||
|
|
8
|
+
count < 0 ||
|
|
9
|
+
addition < 0 ||
|
|
10
|
+
count + addition > 0xffff_ffff)
|
|
11
|
+
throw new DiagnosticValidationError([
|
|
12
|
+
{
|
|
13
|
+
domain: "input",
|
|
14
|
+
code: "expression-limit",
|
|
15
|
+
path: "$",
|
|
16
|
+
message: "Compact finding index capacity exceeded",
|
|
17
|
+
},
|
|
18
|
+
]);
|
|
19
|
+
}
|
|
20
|
+
export class CompactDiagnosticJson {
|
|
21
|
+
nodes = [];
|
|
22
|
+
edges = [];
|
|
23
|
+
strings = [];
|
|
24
|
+
stringIds = new Map();
|
|
25
|
+
primitiveIds = new Map();
|
|
26
|
+
smallNodes = new Map();
|
|
27
|
+
nodeCount = 0;
|
|
28
|
+
edgeCount = 0;
|
|
29
|
+
sealed = false;
|
|
30
|
+
stringId(value) {
|
|
31
|
+
let id = this.stringIds.get(value);
|
|
32
|
+
if (id === undefined) {
|
|
33
|
+
assertCompactFindingCapacity(this.strings.length);
|
|
34
|
+
id = this.strings.length;
|
|
35
|
+
this.strings.push(value);
|
|
36
|
+
this.stringIds.set(value, id);
|
|
37
|
+
}
|
|
38
|
+
return id;
|
|
39
|
+
}
|
|
40
|
+
add(value) {
|
|
41
|
+
if (this.sealed)
|
|
42
|
+
throw new Error("Finding snapshot table is sealed");
|
|
43
|
+
let kind;
|
|
44
|
+
let numeric = 0;
|
|
45
|
+
let primitive;
|
|
46
|
+
const edges = [];
|
|
47
|
+
if (value === null) {
|
|
48
|
+
kind = 0;
|
|
49
|
+
primitive = "null";
|
|
50
|
+
}
|
|
51
|
+
else if (typeof value === "boolean") {
|
|
52
|
+
kind = 1;
|
|
53
|
+
numeric = value ? 1 : 0;
|
|
54
|
+
primitive = `bool/${numeric}`;
|
|
55
|
+
}
|
|
56
|
+
else if (typeof value === "number") {
|
|
57
|
+
kind = 2;
|
|
58
|
+
numeric = value;
|
|
59
|
+
primitive = Object.is(value, -0) ? "-0" : value;
|
|
60
|
+
}
|
|
61
|
+
else if (typeof value === "string") {
|
|
62
|
+
kind = 3;
|
|
63
|
+
numeric = this.stringId(value);
|
|
64
|
+
primitive = `string/${numeric}`;
|
|
65
|
+
}
|
|
66
|
+
else if (value === undefined) {
|
|
67
|
+
kind = 7;
|
|
68
|
+
primitive = "undefined";
|
|
69
|
+
}
|
|
70
|
+
else if (Array.isArray(value)) {
|
|
71
|
+
kind = 4;
|
|
72
|
+
for (const child of value)
|
|
73
|
+
edges.push(this.add(child));
|
|
74
|
+
}
|
|
75
|
+
else if (typeof value === "object") {
|
|
76
|
+
kind = Object.getPrototypeOf(value) === null ? 6 : 5;
|
|
77
|
+
for (const key of Object.keys(value))
|
|
78
|
+
edges.push(this.stringId(key), this.add(value[key]));
|
|
79
|
+
}
|
|
80
|
+
else
|
|
81
|
+
throw new Error("Unsupported SDK finding snapshot value");
|
|
82
|
+
const signature = primitive === undefined && edges.length <= 32
|
|
83
|
+
? `${kind}/${edges.join(",")}`
|
|
84
|
+
: undefined;
|
|
85
|
+
const previous = primitive === undefined
|
|
86
|
+
? signature === undefined
|
|
87
|
+
? undefined
|
|
88
|
+
: this.smallNodes.get(signature)
|
|
89
|
+
: this.primitiveIds.get(primitive);
|
|
90
|
+
if (previous !== undefined)
|
|
91
|
+
return previous;
|
|
92
|
+
assertCompactFindingCapacity(this.nodeCount);
|
|
93
|
+
assertCompactFindingCapacity(this.edgeCount, edges.length);
|
|
94
|
+
const id = this.nodeCount++;
|
|
95
|
+
const row = id % CHUNK;
|
|
96
|
+
if (row === 0)
|
|
97
|
+
this.nodes.push({
|
|
98
|
+
kind: new Uint8Array(CHUNK),
|
|
99
|
+
start: new Uint32Array(CHUNK),
|
|
100
|
+
length: new Uint32Array(CHUNK),
|
|
101
|
+
number: new Float64Array(CHUNK),
|
|
102
|
+
});
|
|
103
|
+
const block = this.nodes[Math.floor(id / CHUNK)];
|
|
104
|
+
block.kind[row] = kind;
|
|
105
|
+
block.start[row] = this.edgeCount;
|
|
106
|
+
block.length[row] = edges.length;
|
|
107
|
+
block.number[row] = numeric;
|
|
108
|
+
for (const child of edges) {
|
|
109
|
+
if (this.edgeCount % CHUNK === 0)
|
|
110
|
+
this.edges.push(new Uint32Array(CHUNK));
|
|
111
|
+
this.edges[Math.floor(this.edgeCount / CHUNK)][this.edgeCount % CHUNK] =
|
|
112
|
+
child;
|
|
113
|
+
this.edgeCount++;
|
|
114
|
+
}
|
|
115
|
+
if (primitive !== undefined)
|
|
116
|
+
this.primitiveIds.set(primitive, id);
|
|
117
|
+
else if (signature !== undefined && this.smallNodes.size < 100_000)
|
|
118
|
+
this.smallNodes.set(signature, id);
|
|
119
|
+
return id;
|
|
120
|
+
}
|
|
121
|
+
seal() {
|
|
122
|
+
this.sealed = true;
|
|
123
|
+
this.stringIds.clear();
|
|
124
|
+
this.primitiveIds.clear();
|
|
125
|
+
this.smallNodes.clear();
|
|
126
|
+
}
|
|
127
|
+
edge(index) {
|
|
128
|
+
return this.edges[Math.floor(index / CHUNK)][index % CHUNK];
|
|
129
|
+
}
|
|
130
|
+
length(id) {
|
|
131
|
+
return this.nodes[Math.floor(id / CHUNK)].length[id % CHUNK];
|
|
132
|
+
}
|
|
133
|
+
property(id, key) {
|
|
134
|
+
if (id === undefined)
|
|
135
|
+
return undefined;
|
|
136
|
+
const block = this.nodes[Math.floor(id / CHUNK)];
|
|
137
|
+
const row = id % CHUNK;
|
|
138
|
+
for (let offset = 0; offset < block.length[row]; offset += 2) {
|
|
139
|
+
const edge = block.start[row] + offset;
|
|
140
|
+
if (this.strings[this.edge(edge)] === key)
|
|
141
|
+
return this.edge(edge + 1);
|
|
142
|
+
}
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
arrayItem(id, index) {
|
|
146
|
+
const block = this.nodes[Math.floor(id / CHUNK)];
|
|
147
|
+
return this.edge(block.start[id % CHUNK] + index);
|
|
148
|
+
}
|
|
149
|
+
identityDocument(id) {
|
|
150
|
+
if (!this.sealed)
|
|
151
|
+
throw new Error("Finding snapshot table is not sealed");
|
|
152
|
+
const block = this.nodes[Math.floor(id / CHUNK)];
|
|
153
|
+
const row = id % CHUNK;
|
|
154
|
+
const kind = block.kind[row];
|
|
155
|
+
const start = block.start[row];
|
|
156
|
+
const length = block.length[row];
|
|
157
|
+
if (kind === 4)
|
|
158
|
+
return createDiagnosticIdentityArray(length, (index) => this.identityDocument(this.edge(start + index)));
|
|
159
|
+
if (kind === 5 || kind === 6) {
|
|
160
|
+
const fields = Object.create(null);
|
|
161
|
+
for (let offset = 0; offset < length; offset += 2)
|
|
162
|
+
fields[this.strings[this.edge(start + offset)]] =
|
|
163
|
+
this.identityDocument(this.edge(start + offset + 1));
|
|
164
|
+
return createDiagnosticIdentityObject(fields);
|
|
165
|
+
}
|
|
166
|
+
return createDiagnosticIdentityValue(this.read(id));
|
|
167
|
+
}
|
|
168
|
+
read(id, sourceCountsOnly = false) {
|
|
169
|
+
const block = this.nodes[Math.floor(id / CHUNK)];
|
|
170
|
+
const row = id % CHUNK;
|
|
171
|
+
const kind = block.kind[row];
|
|
172
|
+
const start = block.start[row];
|
|
173
|
+
const length = block.length[row];
|
|
174
|
+
if (kind === 0)
|
|
175
|
+
return null;
|
|
176
|
+
if (kind === 1)
|
|
177
|
+
return block.number[row] === 1;
|
|
178
|
+
if (kind === 2)
|
|
179
|
+
return block.number[row];
|
|
180
|
+
if (kind === 3)
|
|
181
|
+
return this.strings[block.number[row]];
|
|
182
|
+
if (kind === 7)
|
|
183
|
+
return undefined;
|
|
184
|
+
if (kind === 4)
|
|
185
|
+
return Object.freeze(Array.from({ length }, (_, index) => this.read(this.edge(start + index), sourceCountsOnly)));
|
|
186
|
+
const result = kind === 6 ? Object.create(null) : {};
|
|
187
|
+
for (let offset = 0; offset < length; offset += 2) {
|
|
188
|
+
const key = this.strings[this.edge(start + offset)];
|
|
189
|
+
const child = this.edge(start + offset + 1);
|
|
190
|
+
Object.defineProperty(result, sourceCountsOnly && key === "sources" ? "sourceCount" : key, {
|
|
191
|
+
value: sourceCountsOnly && key === "sources"
|
|
192
|
+
? this.length(child)
|
|
193
|
+
: this.read(child, sourceCountsOnly),
|
|
194
|
+
enumerable: true,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return Object.freeze(result);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=compactDiagnosticJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compactDiagnosticJson.js","sourceRoot":"","sources":["../src/compactDiagnosticJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type CompiledDiagnosticDefinition, type DiagnosticCompletePeriodCutoff, type DiagnosticDeepReadonly, type DiagnosticDefinition, type DiagnosticExpectedCell, type DiagnosticExposureObservation, type DiagnosticLossInput, type DiagnosticsFilter, type JsonValue, type MetricDiagnosticsResult } from "@actuarial-ts/core";
|
|
2
|
-
import { type DiagnosticReviewEvidence, type DiagnosticReviewReceipt } from "./diagnosticPreparedReview.js";
|
|
1
|
+
import { type CompactMetricDiagnosticsResult, type CompactPreparedDiagnosticData, type CompiledDiagnosticDefinition, type DiagnosticCompletePeriodCutoff, type DiagnosticDeepReadonly, type DiagnosticDefinition, type DiagnosticExpectedCell, type DiagnosticExposureObservation, type DiagnosticLossInput, type DiagnosticsFilter, type JsonValue, type MetricDiagnosticsResult } from "@actuarial-ts/core";
|
|
2
|
+
import { type DiagnosticReviewEvidence, type DiagnosticReviewReceipt, type CompactDiagnosticReviewReceipt } from "./diagnosticPreparedReview.js";
|
|
3
3
|
export type DiagnosticAllowedReviewStatus = "pass" | "warning" | "not-evaluated" | "fail";
|
|
4
4
|
export interface DiagnosticExecutionPolicyInput {
|
|
5
5
|
readonly allowedReviewStatuses?: readonly DiagnosticAllowedReviewStatus[];
|
|
@@ -40,6 +40,12 @@ export interface ValidatedDiagnosticRunInput {
|
|
|
40
40
|
readonly rationaleRef: string | null;
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
+
type DiagnosticRunInputContent = Omit<ValidatedDiagnosticRunInput, typeof validatedDiagnosticRunInputBrand>;
|
|
44
|
+
declare const compactValidatedDiagnosticRunInputBrand: unique symbol;
|
|
45
|
+
/** Validated owned input whose preparation does not eagerly expand identity evidence. */
|
|
46
|
+
export interface CompactValidatedDiagnosticRunInput extends DiagnosticRunInputContent {
|
|
47
|
+
readonly [compactValidatedDiagnosticRunInputBrand]: true;
|
|
48
|
+
}
|
|
43
49
|
export interface DiagnosticExecutionGateReceipt {
|
|
44
50
|
readonly allowedReviewStatuses: readonly DiagnosticAllowedReviewStatus[];
|
|
45
51
|
readonly allowedMetricFindingSeverities: readonly ("info" | "warning" | "fail")[];
|
|
@@ -90,9 +96,54 @@ export type ValidatedMetricDiagnosticsOutcome = CompletedValidatedMetricDiagnost
|
|
|
90
96
|
readonly metricGate: "blocked";
|
|
91
97
|
};
|
|
92
98
|
};
|
|
99
|
+
/** A distinct authenticated run; it cannot be substituted for an eager receipt. */
|
|
100
|
+
export interface CompletedCompactMetricDiagnosticsRun {
|
|
101
|
+
readonly status: "completed";
|
|
102
|
+
readonly prepared: CompactPreparedDiagnosticData;
|
|
103
|
+
readonly review: CompactDiagnosticReviewReceipt;
|
|
104
|
+
readonly result: DiagnosticDeepReadonly<CompactMetricDiagnosticsResult>;
|
|
105
|
+
readonly runPresetId: string | null;
|
|
106
|
+
readonly datasetArtifactId: string | null;
|
|
107
|
+
readonly groupMap: Readonly<Record<string, string>>;
|
|
108
|
+
readonly groupDimensions: Readonly<Record<string, JsonValue>>;
|
|
109
|
+
readonly gate: DiagnosticExecutionGateReceipt & {
|
|
110
|
+
readonly reviewGate: "passed";
|
|
111
|
+
readonly metricGate: "passed";
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
type CompactRunMetadata = Omit<CompletedCompactMetricDiagnosticsRun, "status" | "result" | "gate">;
|
|
115
|
+
export type CompactMetricDiagnosticsOutcome = CompletedCompactMetricDiagnosticsRun | (CompactRunMetadata & {
|
|
116
|
+
readonly status: "blocked";
|
|
117
|
+
readonly stage: "review";
|
|
118
|
+
readonly result: null;
|
|
119
|
+
readonly gate: DiagnosticExecutionGateReceipt & {
|
|
120
|
+
readonly reviewGate: "blocked";
|
|
121
|
+
readonly metricGate: "not-run";
|
|
122
|
+
};
|
|
123
|
+
}) | (CompactRunMetadata & {
|
|
124
|
+
readonly status: "blocked";
|
|
125
|
+
readonly stage: "metric";
|
|
126
|
+
readonly result: DiagnosticDeepReadonly<CompactMetricDiagnosticsResult>;
|
|
127
|
+
readonly gate: DiagnosticExecutionGateReceipt & {
|
|
128
|
+
readonly reviewGate: "passed";
|
|
129
|
+
readonly metricGate: "blocked";
|
|
130
|
+
};
|
|
131
|
+
});
|
|
93
132
|
export declare function validateDiagnosticRunInput(value: unknown): ValidatedDiagnosticRunInput;
|
|
133
|
+
/** Validate, own and prepare inputs without eagerly materializing identity graphs. */
|
|
134
|
+
export declare function validateDiagnosticRunInputCompact(value: unknown): CompactValidatedDiagnosticRunInput;
|
|
135
|
+
export declare function assertCompactValidatedDiagnosticRunInput(value: unknown): asserts value is CompactValidatedDiagnosticRunInput;
|
|
94
136
|
export declare function assertValidatedDiagnosticRunInput(value: unknown): asserts value is ValidatedDiagnosticRunInput;
|
|
95
137
|
export declare function runValidatedMetricDiagnostics(input: ValidatedDiagnosticRunInput): ValidatedMetricDiagnosticsOutcome;
|
|
96
138
|
export declare function assertCompletedValidatedMetricDiagnosticsRun(value: unknown): asserts value is CompletedValidatedMetricDiagnosticsRun;
|
|
139
|
+
/** Run every review and metric gate while retaining complete compact evidence. */
|
|
140
|
+
export declare function runValidatedMetricDiagnosticsCompact(input: CompactValidatedDiagnosticRunInput): CompactMetricDiagnosticsOutcome;
|
|
141
|
+
export declare function assertCompletedCompactMetricDiagnosticsRun(value: unknown): asserts value is CompletedCompactMetricDiagnosticsRun;
|
|
142
|
+
/**
|
|
143
|
+
* Return the original SDK-owned validated input for an authentic completed run.
|
|
144
|
+
* This is the same deeply immutable input owner, not a reconstruction from its
|
|
145
|
+
* normalized audit or a mutable copy of the caller's upload values.
|
|
146
|
+
*/
|
|
147
|
+
export declare function getCompletedCompactDiagnosticRunInput(run: CompletedCompactMetricDiagnosticsRun): CompactValidatedDiagnosticRunInput;
|
|
97
148
|
export {};
|
|
98
149
|
//# sourceMappingURL=diagnosticInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticInput.d.ts","sourceRoot":"","sources":["../src/diagnosticInput.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"diagnosticInput.d.ts","sourceRoot":"","sources":["../src/diagnosticInput.ts"],"names":[],"mappings":"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"}
|