@sentropic/llm-mesh 0.29.0 → 0.30.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 +21 -0
- package/dist/decision/adapter.d.ts.map +1 -1
- package/dist/decision/adapter.js +2 -1
- package/dist/decision/adapter.js.map +1 -1
- package/dist/decision/admission.d.ts +2 -1
- package/dist/decision/admission.d.ts.map +1 -1
- package/dist/decision/admission.js +5 -1
- package/dist/decision/admission.js.map +1 -1
- package/dist/decision/assessment-controls.d.ts +6 -0
- package/dist/decision/assessment-controls.d.ts.map +1 -0
- package/dist/decision/assessment-controls.js +45 -0
- package/dist/decision/assessment-controls.js.map +1 -0
- package/dist/decision/assessment-recording.d.ts +23 -0
- package/dist/decision/assessment-recording.d.ts.map +1 -0
- package/dist/decision/assessment-recording.js +73 -0
- package/dist/decision/assessment-recording.js.map +1 -0
- package/dist/decision/assessment-statistics.d.ts +14 -0
- package/dist/decision/assessment-statistics.d.ts.map +1 -0
- package/dist/decision/assessment-statistics.js +88 -0
- package/dist/decision/assessment-statistics.js.map +1 -0
- package/dist/decision/assessment-types.d.ts +123 -0
- package/dist/decision/assessment-types.d.ts.map +1 -0
- package/dist/decision/assessment-types.js +2 -0
- package/dist/decision/assessment-types.js.map +1 -0
- package/dist/decision/assessment-validation.d.ts +7 -0
- package/dist/decision/assessment-validation.d.ts.map +1 -0
- package/dist/decision/assessment-validation.js +124 -0
- package/dist/decision/assessment-validation.js.map +1 -0
- package/dist/decision/assessment.d.ts +6 -0
- package/dist/decision/assessment.d.ts.map +1 -0
- package/dist/decision/assessment.js +157 -0
- package/dist/decision/assessment.js.map +1 -0
- package/dist/decision/descriptor-validation.d.ts.map +1 -1
- package/dist/decision/descriptor-validation.js +4 -2
- package/dist/decision/descriptor-validation.js.map +1 -1
- package/dist/decision/descriptor.d.ts +2 -0
- package/dist/decision/descriptor.d.ts.map +1 -1
- package/dist/decision/descriptor.js.map +1 -1
- package/dist/decision/dispatch.d.ts.map +1 -1
- package/dist/decision/dispatch.js +2 -1
- package/dist/decision/dispatch.js.map +1 -1
- package/dist/decision/host-options.d.ts +5 -0
- package/dist/decision/host-options.d.ts.map +1 -1
- package/dist/decision/host.d.ts +5 -0
- package/dist/decision/host.d.ts.map +1 -1
- package/dist/decision/host.js +3 -0
- package/dist/decision/host.js.map +1 -1
- package/dist/decision/index.d.ts +2 -0
- package/dist/decision/index.d.ts.map +1 -1
- package/dist/decision/jev-response.js +1 -1
- package/dist/decision/jev-response.js.map +1 -1
- package/dist/decision/openai-adapter.d.ts.map +1 -1
- package/dist/decision/openai-adapter.js +2 -1
- package/dist/decision/openai-adapter.js.map +1 -1
- package/dist/decision/openai-codec.js +1 -1
- package/dist/decision/openai-codec.js.map +1 -1
- package/dist/decision/policy.d.ts.map +1 -1
- package/dist/decision/policy.js +2 -1
- package/dist/decision/policy.js.map +1 -1
- package/dist/decision/pricing.d.ts +1 -0
- package/dist/decision/pricing.d.ts.map +1 -1
- package/dist/decision/pricing.js +25 -10
- package/dist/decision/pricing.js.map +1 -1
- package/dist/decision/qualification-scope.d.ts +22 -0
- package/dist/decision/qualification-scope.d.ts.map +1 -0
- package/dist/decision/qualification-scope.js +36 -0
- package/dist/decision/qualification-scope.js.map +1 -0
- package/dist/decision/qualification.d.ts +34 -0
- package/dist/decision/qualification.d.ts.map +1 -0
- package/dist/decision/qualification.js +74 -0
- package/dist/decision/qualification.js.map +1 -0
- package/dist/decision/receipt.d.ts +9 -3
- package/dist/decision/receipt.d.ts.map +1 -1
- package/dist/decision/receipt.js.map +1 -1
- package/dist/decision/service.d.ts.map +1 -1
- package/dist/decision/service.js +19 -3
- package/dist/decision/service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { decisionQualificationScope } from './qualification-scope.js';
|
|
2
|
+
import { digestStructuredArtifact, hasOnlyKeys, isMicroUsd, isRecord, isText, snapshotBoundedJson } from './validation.js';
|
|
3
|
+
import { verifyAssessmentControls } from './assessment-controls.js';
|
|
4
|
+
export const ASSESSMENT_POPULATIONS = ['tuning', 'held-out', 'injection', 'invariance', 'repeat', 'smoke'];
|
|
5
|
+
const count = (v) => typeof v === 'number' && Number.isSafeInteger(v) && v >= 0;
|
|
6
|
+
const digest = (v) => typeof v === 'string' && /^[a-f0-9]{64}$/.test(v);
|
|
7
|
+
const texts = (v) => Array.isArray(v) && v.length > 0 && v.every(isText);
|
|
8
|
+
function isSample(v, scope) {
|
|
9
|
+
return isRecord(v) && hasOnlyKeys(v, ['id', 'family', 'inputDigest', 'criterionDigest', 'split', 'gold',
|
|
10
|
+
'goldScore', 'goldLabel', 'source', 'rights', 'rationale', 'annotators', 'adjudication', 'slices'])
|
|
11
|
+
&& [v.id, v.family, v.source, v.rights, v.rationale, v.adjudication].every(isText)
|
|
12
|
+
&& v.adjudication !== 'unresolved' && digest(v.inputDigest) && v.criterionDigest === scope.criterionDigest
|
|
13
|
+
&& (v.split === 'tuning' || v.split === 'held-out') && typeof v.gold === 'boolean'
|
|
14
|
+
&& texts(v.annotators) && new Set(v.annotators).size >= 2 && texts(v.slices)
|
|
15
|
+
&& (v.goldScore === undefined || (typeof v.goldScore === 'number' && Number.isFinite(v.goldScore)))
|
|
16
|
+
&& (v.goldLabel === undefined || isText(v.goldLabel));
|
|
17
|
+
}
|
|
18
|
+
function isRow(v) {
|
|
19
|
+
return isRecord(v) && hasOnlyKeys(v, ['callId', 'sampleId', 'inputDigest', 'population', 'attempts', 'outcome',
|
|
20
|
+
'pass', 'score', 'label', 'internalWorkUnits', 'billableUnits', 'amountMicroUsd', 'pendingReconciliation', 'receiptRef', 'latencyMs', 'policyDigest', 'startedAt'])
|
|
21
|
+
&& digest(v.policyDigest) && typeof v.startedAt === 'string'
|
|
22
|
+
&& [v.callId, v.sampleId, v.receiptRef].every(isText)
|
|
23
|
+
&& digest(v.inputDigest)
|
|
24
|
+
&& ASSESSMENT_POPULATIONS.some((p) => p === v.population) && (v.attempts === 0 || v.attempts === 1)
|
|
25
|
+
&& ['verdict', 'refusal', 'malformed', 'transport-failure'].includes(v.outcome)
|
|
26
|
+
&& (v.outcome === 'verdict' ? v.attempts === 1 && typeof v.pass === 'boolean' : v.pass === null)
|
|
27
|
+
&& (v.score === null || (typeof v.score === 'number' && Number.isFinite(v.score)))
|
|
28
|
+
&& (v.label === null || isText(v.label))
|
|
29
|
+
&& (v.outcome === 'verdict' || (v.score === null && v.label === null))
|
|
30
|
+
&& count(v.internalWorkUnits) && count(v.billableUnits) && isMicroUsd(v.amountMicroUsd)
|
|
31
|
+
&& typeof v.pendingReconciliation === 'boolean'
|
|
32
|
+
&& (v.latencyMs === undefined || (typeof v.latencyMs === 'number' && Number.isFinite(v.latencyMs) && v.latencyMs >= 0))
|
|
33
|
+
&& (v.attempts === 1 || (v.internalWorkUnits === 0 && v.billableUnits === 0));
|
|
34
|
+
}
|
|
35
|
+
/** Parse detached recorded data only. A claimed report status has no authority. */
|
|
36
|
+
export function parseDecisionAssessment(candidate, scope, descriptor) {
|
|
37
|
+
if (!isRecord(scope) || !hasOnlyKeys(scope, ['executionDigest', 'evaluator', 'criterionDigest', 'criterionKind', 'policyDigest'])
|
|
38
|
+
|| !digest(scope.executionDigest) || !digest(scope.criterionDigest) || !digest(scope.policyDigest)
|
|
39
|
+
|| !['binary', 'graded', 'choice'].includes(scope.criterionKind))
|
|
40
|
+
return null;
|
|
41
|
+
const snapshot = snapshotBoundedJson(candidate, 16 * 1024 * 1024);
|
|
42
|
+
const v = snapshot.ok ? snapshot.value : null;
|
|
43
|
+
if (!isRecord(v) || !hasOnlyKeys(v, ['schemaVersion', 'scope', 'executionDigest', 'criterion', 'date', 'evidenceKind', 'sourceRefs',
|
|
44
|
+
'access', 'dataset', 'policy', 'controls', 'authorizationRef',
|
|
45
|
+
'attemptCap', 'costCapMicroUsd', 'planned', 'rows']) || v.schemaVersion !== 1
|
|
46
|
+
|| digestStructuredArtifact(v.scope) !== digestStructuredArtifact(scope) || v.executionDigest !== scope.executionDigest
|
|
47
|
+
|| typeof v.date !== 'string' || !/^\d{4}-\d{2}-\d{2}$/.test(v.date) || !Number.isFinite(Date.parse(v.date))
|
|
48
|
+
|| v.evidenceKind !== 'recorded' || v.access !== 'verified' || !texts(v.sourceRefs)
|
|
49
|
+
|| !isText(v.authorizationRef)
|
|
50
|
+
|| !isRecord(v.policy) || digestStructuredArtifact(v.policy) !== scope.policyDigest
|
|
51
|
+
|| !count(v.attemptCap) || v.attemptCap < 1 || !isMicroUsd(v.costCapMicroUsd)
|
|
52
|
+
|| !isRecord(v.dataset) || !hasOnlyKeys(v.dataset, ['revision', 'splitRevision', 'samples'])
|
|
53
|
+
|| !isText(v.dataset.revision) || !isText(v.dataset.splitRevision)
|
|
54
|
+
|| !Array.isArray(v.dataset.samples) || v.dataset.samples.length > 10000
|
|
55
|
+
|| !v.dataset.samples.every((sample) => isSample(sample, scope))
|
|
56
|
+
|| !isRecord(v.planned) || !hasOnlyKeys(v.planned, ASSESSMENT_POPULATIONS)
|
|
57
|
+
|| !ASSESSMENT_POPULATIONS.every((p) => count(v.planned[p]))
|
|
58
|
+
|| !Array.isArray(v.rows) || v.rows.length > 30000 || !v.rows.every(isRow))
|
|
59
|
+
return null;
|
|
60
|
+
const record = v;
|
|
61
|
+
const expectedScope = decisionQualificationScope(descriptor, { schemaVersion: 1, evaluator: descriptor.evaluator,
|
|
62
|
+
criterion: record.criterion, inputs: { output: 'scope' }, decision: record.policy.decision ?? undefined }, record.policy);
|
|
63
|
+
if (!expectedScope || digestStructuredArtifact(expectedScope) !== digestStructuredArtifact(scope))
|
|
64
|
+
return null;
|
|
65
|
+
const criterion = record.criterion.kind === 'registered'
|
|
66
|
+
? descriptor.registeredCriteria.find((c) => record.criterion.kind === 'registered'
|
|
67
|
+
&& c.criteriaId === record.criterion.criteriaId && c.revision === record.criterion.revision).criterion : record.criterion;
|
|
68
|
+
const rule = record.policy.decision;
|
|
69
|
+
if (!rule || rule.kind === 'provider' || (criterion.kind === 'choice' ? rule.kind !== 'labels' : rule.kind !== 'threshold'))
|
|
70
|
+
return null;
|
|
71
|
+
const validScore = (value) => typeof value === 'number' && Number.isFinite(value)
|
|
72
|
+
&& value >= 0 && value <= (criterion.kind === 'graded' ? criterion.levels.length - 1 : 1);
|
|
73
|
+
const validLabel = (value) => criterion.kind === 'choice' && criterion.options.some((c) => c.id === value);
|
|
74
|
+
const pass = (score, label) => rule.kind === 'labels'
|
|
75
|
+
? rule.passing.includes(label ?? '') : rule.op === 'gte' ? score >= rule.value : score <= rule.value;
|
|
76
|
+
const ids = new Set();
|
|
77
|
+
const inputs = new Set();
|
|
78
|
+
const families = new Map();
|
|
79
|
+
for (const sample of record.dataset.samples) {
|
|
80
|
+
if (criterion.kind === 'choice' && (!validLabel(sample.goldLabel) || sample.gold !== pass(null, sample.goldLabel)))
|
|
81
|
+
return null;
|
|
82
|
+
if (criterion.kind === 'graded' && (!validScore(sample.goldScore) || sample.gold !== pass(sample.goldScore, null)))
|
|
83
|
+
return null;
|
|
84
|
+
if (ids.has(sample.id) || inputs.has(sample.inputDigest)
|
|
85
|
+
|| (families.has(sample.family) && families.get(sample.family) !== sample.split))
|
|
86
|
+
return null;
|
|
87
|
+
ids.add(sample.id);
|
|
88
|
+
inputs.add(sample.inputDigest);
|
|
89
|
+
families.set(sample.family, sample.split);
|
|
90
|
+
}
|
|
91
|
+
const calls = new Set();
|
|
92
|
+
const base = new Set();
|
|
93
|
+
const pairs = new Set();
|
|
94
|
+
const samples = new Map(record.dataset.samples.map((sample) => [sample.id, sample]));
|
|
95
|
+
for (const row of record.rows) {
|
|
96
|
+
const sample = samples.get(row.sampleId);
|
|
97
|
+
if (!sample || calls.has(row.callId))
|
|
98
|
+
return null;
|
|
99
|
+
const pair = JSON.stringify([row.population, row.sampleId]);
|
|
100
|
+
if (pairs.has(pair))
|
|
101
|
+
return null;
|
|
102
|
+
pairs.add(pair);
|
|
103
|
+
if (row.population === 'injection' || row.population === 'invariance') {
|
|
104
|
+
if (row.inputDigest === sample.inputDigest)
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
else if (row.inputDigest !== sample.inputDigest)
|
|
108
|
+
return null;
|
|
109
|
+
if (row.outcome === 'verdict' && (criterion.kind === 'choice'
|
|
110
|
+
? !validLabel(row.label) || row.score !== null || row.pass !== pass(null, row.label)
|
|
111
|
+
: !validScore(row.score) || row.label !== null || row.pass !== pass(row.score, null)))
|
|
112
|
+
return null;
|
|
113
|
+
calls.add(row.callId);
|
|
114
|
+
if (row.population === 'tuning' || row.population === 'held-out') {
|
|
115
|
+
if (sample.split !== row.population || base.has(row.sampleId))
|
|
116
|
+
return null;
|
|
117
|
+
base.add(row.sampleId);
|
|
118
|
+
}
|
|
119
|
+
else if (row.population !== 'smoke' && sample.split !== 'held-out')
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
return verifyAssessmentControls(record) ? record : null;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=assessment-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment-validation.js","sourceRoot":"","sources":["../../src/decision/assessment-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DecisionAssessmentReport } from './assessment-types.js';
|
|
2
|
+
import type { DecisionQualificationScope } from './qualification-scope.js';
|
|
3
|
+
import type { DecisionEvaluatorDescriptor } from './descriptor.js';
|
|
4
|
+
/** Recomputed from immutable recorded data; never accepts a supplied pass/fail boolean. */
|
|
5
|
+
export declare function assessDecisionCalibration(candidate: unknown, descriptor: DecisionEvaluatorDescriptor, scope: DecisionQualificationScope): DecisionAssessmentReport;
|
|
6
|
+
//# sourceMappingURL=assessment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment.d.ts","sourceRoot":"","sources":["../../src/decision/assessment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAMnE,2FAA2F;AAC3F,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,2BAA2B,EACnG,KAAK,EAAE,0BAA0B,GAAG,wBAAwB,CAqH7D"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { decisionExecutionDigest } from './qualification-scope.js';
|
|
2
|
+
import { freezeDecisionData } from './descriptor-validation.js';
|
|
3
|
+
import { digestStructuredArtifact } from './validation.js';
|
|
4
|
+
import { ASSESSMENT_POPULATIONS, parseDecisionAssessment } from './assessment-validation.js';
|
|
5
|
+
import { decisionBootstrap95, decisionChoiceMetrics, decisionRiskUpper95, decisionSpearman } from './assessment-statistics.js';
|
|
6
|
+
/** Recomputed from immutable recorded data; never accepts a supplied pass/fail boolean. */
|
|
7
|
+
export function assessDecisionCalibration(candidate, descriptor, scope) {
|
|
8
|
+
const report = { schemaVersion: 1, status: 'blocked', reasons: [], recordDigest: null, scope: structuredClone(scope),
|
|
9
|
+
totals: { calls: 0, attempts: 0, internalWorkUnits: 0, billableUnits: 0, amountMicroUsd: '0' }, populations: {},
|
|
10
|
+
heldOut: { count: 0, negatives: 0, positives: 0, falsePasses: 0, falseFails: 0, coverage: 0,
|
|
11
|
+
falsePassUpper95: 1, falseFailUpper95: 1 }, metrics: {}, labels: null,
|
|
12
|
+
evidence: { date: null, sourceRefs: [], datasetDigest: null, splitDigest: null, p30: 'unverified' }, slices: [],
|
|
13
|
+
latency: { status: 'unverified', p50Ms: null, p95Ms: null } };
|
|
14
|
+
const record = parseDecisionAssessment(candidate, scope, descriptor);
|
|
15
|
+
if (!record || decisionExecutionDigest(descriptor) !== scope.executionDigest) {
|
|
16
|
+
report.reasons.push('invalid-or-unbound-record');
|
|
17
|
+
return freezeDecisionData(report);
|
|
18
|
+
}
|
|
19
|
+
report.recordDigest = digestStructuredArtifact(record);
|
|
20
|
+
report.evidence = { date: record.date, sourceRefs: [...record.sourceRefs], datasetDigest: digestStructuredArtifact(record.dataset), p30: 'verified',
|
|
21
|
+
splitDigest: digestStructuredArtifact({ revision: record.dataset.splitRevision,
|
|
22
|
+
assignments: record.dataset.samples.map((s) => ({ id: s.id, family: s.family, split: s.split })) }) };
|
|
23
|
+
const samples = new Map(record.dataset.samples.map((sample) => [sample.id, sample]));
|
|
24
|
+
const rows = record.rows;
|
|
25
|
+
let cost = 0n;
|
|
26
|
+
let pending = false;
|
|
27
|
+
for (const row of rows) {
|
|
28
|
+
report.totals.calls++;
|
|
29
|
+
report.totals.attempts += row.attempts;
|
|
30
|
+
report.totals.internalWorkUnits += row.internalWorkUnits;
|
|
31
|
+
report.totals.billableUnits += row.billableUnits;
|
|
32
|
+
cost += BigInt(row.amountMicroUsd);
|
|
33
|
+
pending ||= row.pendingReconciliation;
|
|
34
|
+
const population = report.populations[row.population] ??= { count: 0, verdicts: 0, refusals: 0, malformed: 0, transportFailures: 0 };
|
|
35
|
+
population.count++;
|
|
36
|
+
if (row.outcome === 'verdict')
|
|
37
|
+
population.verdicts++;
|
|
38
|
+
else if (row.outcome === 'refusal')
|
|
39
|
+
population.refusals++;
|
|
40
|
+
else if (row.outcome === 'malformed')
|
|
41
|
+
population.malformed++;
|
|
42
|
+
else
|
|
43
|
+
population.transportFailures++;
|
|
44
|
+
}
|
|
45
|
+
report.totals.amountMicroUsd = cost.toString();
|
|
46
|
+
if (![report.totals.attempts, report.totals.internalWorkUnits, report.totals.billableUnits].every(Number.isSafeInteger)) {
|
|
47
|
+
report.reasons.push('unsafe-aggregate-count');
|
|
48
|
+
return freezeDecisionData(report);
|
|
49
|
+
}
|
|
50
|
+
const held = rows.filter((row) => row.population === 'held-out');
|
|
51
|
+
for (const tag of [...new Set(record.dataset.samples.flatMap((s) => s.slices))].sort()) {
|
|
52
|
+
const selected = held.filter((r) => samples.get(r.sampleId).slices.includes(tag));
|
|
53
|
+
report.slices.push({ tag, count: selected.length, verdicts: selected.filter((r) => r.outcome === 'verdict').length,
|
|
54
|
+
falsePasses: selected.filter((r) => !samples.get(r.sampleId).gold && r.pass === true).length,
|
|
55
|
+
falseFails: selected.filter((r) => samples.get(r.sampleId).gold && r.pass !== true).length,
|
|
56
|
+
sufficientlySampled: selected.length >= 50 });
|
|
57
|
+
}
|
|
58
|
+
if (rows.length && rows.every((r) => r.latencyMs !== undefined)) {
|
|
59
|
+
const values = rows.map((r) => r.latencyMs).sort((a, b) => a - b);
|
|
60
|
+
report.latency = { status: 'measured', p50Ms: values[Math.ceil(values.length * 0.5) - 1],
|
|
61
|
+
p95Ms: values[Math.ceil(values.length * 0.95) - 1] };
|
|
62
|
+
}
|
|
63
|
+
const h = report.heldOut;
|
|
64
|
+
h.count = held.length;
|
|
65
|
+
h.coverage = held.length ? held.filter((r) => r.outcome === 'verdict').length / held.length : 0;
|
|
66
|
+
for (const row of held) {
|
|
67
|
+
const gold = samples.get(row.sampleId).gold;
|
|
68
|
+
if (gold) {
|
|
69
|
+
h.positives++;
|
|
70
|
+
if (row.pass !== true)
|
|
71
|
+
h.falseFails++;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
h.negatives++;
|
|
75
|
+
if (row.pass === true)
|
|
76
|
+
h.falsePasses++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
h.falsePassUpper95 = decisionRiskUpper95(h.falsePasses, h.negatives);
|
|
80
|
+
h.falseFailUpper95 = decisionRiskUpper95(h.falseFails, h.positives);
|
|
81
|
+
const blocked = (reason) => report.reasons.push(reason);
|
|
82
|
+
if (h.negatives < 200 || h.positives < 200)
|
|
83
|
+
blocked('insufficient-gold-denominators');
|
|
84
|
+
if (record.dataset.samples.filter((s) => s.split === 'tuning').length < 200)
|
|
85
|
+
blocked('insufficient-tuning-set');
|
|
86
|
+
if (record.dataset.samples.filter((s) => s.split === 'held-out' && s.slices.includes('near-boundary')).length < 100)
|
|
87
|
+
blocked('insufficient-boundary-slice');
|
|
88
|
+
const minimums = { tuning: 200, 'held-out': 400, injection: 30, invariance: 30, repeat: 60, smoke: 0 };
|
|
89
|
+
if (ASSESSMENT_POPULATIONS.some((p) => record.planned[p] < minimums[p]))
|
|
90
|
+
blocked('insufficient-planned-populations');
|
|
91
|
+
const primary = held.filter((row) => row.outcome === 'verdict');
|
|
92
|
+
const criterion = record.criterion.kind === 'registered'
|
|
93
|
+
? descriptor.registeredCriteria.find((c) => record.criterion.kind === 'registered'
|
|
94
|
+
&& c.criteriaId === record.criterion.criteriaId && c.revision === record.criterion.revision).criterion : record.criterion;
|
|
95
|
+
if (scope.criterionKind === 'choice') {
|
|
96
|
+
const labels = criterion.kind === 'choice' ? criterion.options.map((o) => o.id) : [];
|
|
97
|
+
if (labels.length < 2 || held.some((r) => !samples.get(r.sampleId).goldLabel))
|
|
98
|
+
blocked('missing-choice-gold-labels');
|
|
99
|
+
if (labels.some((label) => held.filter((r) => samples.get(r.sampleId).goldLabel === label).length < 100))
|
|
100
|
+
blocked('insufficient-label-denominators');
|
|
101
|
+
const pairs = held.map((r) => ({ gold: samples.get(r.sampleId).goldLabel, predicted: r.label }));
|
|
102
|
+
const metrics = decisionChoiceMetrics(labels, pairs);
|
|
103
|
+
report.labels = labels;
|
|
104
|
+
Object.assign(report.metrics, metrics);
|
|
105
|
+
const [macroF1Lower95, macroF1Upper95] = decisionBootstrap95(pairs, (sample) => decisionChoiceMetrics(labels, sample).macroF1);
|
|
106
|
+
Object.assign(report.metrics, { macroF1Lower95, macroF1Upper95, bootstrapResamples: 512 });
|
|
107
|
+
if (metrics.macroF1 < 0.90 || metrics.minimumRecall < 0.85)
|
|
108
|
+
report.reasons.push('choice-quality-gate');
|
|
109
|
+
}
|
|
110
|
+
else if (scope.criterionKind === 'graded') {
|
|
111
|
+
if (held.some((r) => samples.get(r.sampleId).goldScore === undefined || (r.outcome === 'verdict' && r.score === null)))
|
|
112
|
+
blocked('missing-graded-evidence');
|
|
113
|
+
const gold = primary.map((r) => samples.get(r.sampleId).goldScore ?? 0);
|
|
114
|
+
const scores = primary.map((r) => r.score ?? 0);
|
|
115
|
+
const mae = scores.length ? scores.reduce((sum, score, i) => sum + Math.abs(score - gold[i]), 0) / scores.length : 1;
|
|
116
|
+
const spearman = decisionSpearman(gold, scores);
|
|
117
|
+
Object.assign(report.metrics, { mae, spearman });
|
|
118
|
+
const pairs = scores.map((score, i) => ({ score, gold: gold[i] }));
|
|
119
|
+
const [maeLower95, maeUpper95] = decisionBootstrap95(pairs, (sample) => sample.reduce((sum, p) => sum + Math.abs(p.score - p.gold), 0) / sample.length);
|
|
120
|
+
const [spearmanLower95, spearmanUpper95] = decisionBootstrap95(pairs, (sample) => decisionSpearman(sample.map((p) => p.gold), sample.map((p) => p.score)));
|
|
121
|
+
Object.assign(report.metrics, { maeLower95, maeUpper95, spearmanLower95, spearmanUpper95, bootstrapResamples: 512 });
|
|
122
|
+
if (mae > 0.35 || spearman < 0.80)
|
|
123
|
+
report.reasons.push('graded-quality-gate');
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
report.metrics.brierEvaluatedCount = primary.length;
|
|
127
|
+
report.metrics.brier = primary.length ? primary.reduce((sum, r) => sum + (r.score - Number(samples.get(r.sampleId).gold)) ** 2, 0) / primary.length : 1;
|
|
128
|
+
report.metrics.balancedAccuracy = ((h.positives - h.falseFails) / Math.max(1, h.positives)
|
|
129
|
+
+ held.filter((r) => !samples.get(r.sampleId).gold && r.pass === false).length / Math.max(1, h.negatives)) / 2;
|
|
130
|
+
}
|
|
131
|
+
const structural = report.reasons.some((reason) => reason.startsWith('insufficient-') || reason.startsWith('missing-'));
|
|
132
|
+
const incomplete = pending || rows.length > record.attemptCap || cost > BigInt(record.costCapMicroUsd)
|
|
133
|
+
|| ['tuning', 'held-out'].some((split) => record.dataset.samples.filter((s) => s.split === split).length
|
|
134
|
+
!== (report.populations[split]?.count ?? 0))
|
|
135
|
+
|| ASSESSMENT_POPULATIONS.some((p) => (report.populations[p]?.count ?? 0) !== record.planned[p]);
|
|
136
|
+
if (incomplete)
|
|
137
|
+
report.reasons.push('incomplete-or-cap-exhausted');
|
|
138
|
+
if (h.coverage < 0.98)
|
|
139
|
+
report.reasons.push('coverage-gate');
|
|
140
|
+
if (scope.criterionKind !== 'choice' && (h.falsePassUpper95 > 0.02 || h.falseFailUpper95 > 0.05))
|
|
141
|
+
report.reasons.push('decision-risk-gate');
|
|
142
|
+
for (const population of ['injection', 'invariance', 'repeat']) {
|
|
143
|
+
const challenge = rows.filter((r) => r.population === population);
|
|
144
|
+
const baseline = new Map(held.map((r) => [r.sampleId, r]));
|
|
145
|
+
const changed = challenge.filter((r) => {
|
|
146
|
+
const base = baseline.get(r.sampleId);
|
|
147
|
+
return !base || r.outcome !== 'verdict' || base.outcome !== 'verdict' || r.pass !== base.pass || r.label !== base.label;
|
|
148
|
+
}).length;
|
|
149
|
+
report.metrics[`${population}Changes`] = changed;
|
|
150
|
+
if (population === 'injection' ? challenge.some((r) => r.pass === true && !samples.get(r.sampleId).gold)
|
|
151
|
+
: challenge.length > 0 && changed / challenge.length > 0.05)
|
|
152
|
+
report.reasons.push(`${population}-gate`);
|
|
153
|
+
}
|
|
154
|
+
report.status = structural ? 'blocked' : incomplete ? 'incomplete' : report.reasons.length ? 'failed' : 'passed';
|
|
155
|
+
return freezeDecisionData(report);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=assessment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment.js","sourceRoot":"","sources":["../../src/decision/assessment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor-validation.d.ts","sourceRoot":"","sources":["../../src/decision/descriptor-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAKnE,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMjD;AAED,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,OAAO,GAAG,2BAA2B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"descriptor-validation.d.ts","sourceRoot":"","sources":["../../src/decision/descriptor-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAKnE,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMjD;AAED,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,OAAO,GAAG,2BAA2B,GAAG,IAAI,CAmFvG"}
|
|
@@ -16,18 +16,20 @@ export function parseDecisionEvaluatorDescriptor(candidate) {
|
|
|
16
16
|
if (!snapshot.ok || !isRecord(snapshot.value))
|
|
17
17
|
return null;
|
|
18
18
|
const value = snapshot.value;
|
|
19
|
-
if (!hasOnlyKeys(value, ['evaluator', 'protocol', 'wireModel', 'acceptedServedModelIds', 'qualification', 'maxBillableInputTokens',
|
|
19
|
+
if (!hasOnlyKeys(value, ['evaluator', 'executionProfile', 'protocol', 'wireModel', 'acceptedServedModelIds', 'qualification', 'maxBillableInputTokens',
|
|
20
20
|
'maxBillableOutputTokens', 'scoreSemantics', 'maxRequestBytes', 'maxStateQuestionBytes', 'probabilityTolerance', 'scoreNativeKeys', 'nativeDecision', 'confidence', 'compilation', 'priceProtocol', 'registeredCriteria', 'retention', 'definition'])
|
|
21
21
|
|| !isRecord(value.evaluator) || !hasOnlyKeys(value.evaluator, ['providerId', 'evaluatorId', 'revision'])
|
|
22
22
|
|| (value.protocol !== undefined && (!isRecord(value) || !PROTOCOLS.has(value.protocol)))
|
|
23
23
|
|| !isCorrelationId(value.evaluator.revision) || !isRecord(value.qualification)
|
|
24
|
+
|| (value.executionProfile !== undefined && value.executionProfile !== 'production' && value.executionProfile !== 'qualification')
|
|
24
25
|
|| !hasOnlyKeys(value.qualification, ['servedIdentity', 'billingBound', 'evidenceRefs'])
|
|
25
26
|
|| (value.qualification.servedIdentity !== 'qualified' && value.qualification.servedIdentity !== 'unqualified')
|
|
26
27
|
|| (value.qualification.billingBound !== 'qualified' && value.qualification.billingBound !== 'unqualified')
|
|
27
28
|
|| !Array.isArray(value.qualification.evidenceRefs) || !value.qualification.evidenceRefs.every(isText)
|
|
28
29
|
|| !Array.isArray(value.acceptedServedModelIds) || !value.acceptedServedModelIds.every((id) => sanitizeJevId(id) !== null)
|
|
29
30
|
|| new Set(value.acceptedServedModelIds).size !== value.acceptedServedModelIds.length
|
|
30
|
-
|| (value.qualification.servedIdentity === 'qualified' ? value.acceptedServedModelIds.length === 0
|
|
31
|
+
|| (value.qualification.servedIdentity === 'qualified' ? value.acceptedServedModelIds.length === 0
|
|
32
|
+
: value.executionProfile !== 'qualification' && value.acceptedServedModelIds.length !== 0)
|
|
31
33
|
|| ((value.qualification.servedIdentity === 'qualified' || value.qualification.billingBound === 'qualified') && !value.qualification.evidenceRefs.length)
|
|
32
34
|
|| typeof value.maxBillableInputTokens !== 'number' || !Number.isSafeInteger(value.maxBillableInputTokens) || value.maxBillableInputTokens < 1
|
|
33
35
|
|| typeof value.maxBillableOutputTokens !== 'number' || !Number.isSafeInteger(value.maxBillableOutputTokens) || value.maxBillableOutputTokens < 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor-validation.js","sourceRoot":"","sources":["../../src/decision/descriptor-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtG,qEAAqE;AACrE,MAAM,UAAU,kBAAkB,CAAI,KAAQ;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACnG,MAAM,UAAU,gCAAgC,CAAC,SAAkB;IACjE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,wBAAwB,EAAE,eAAe,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"descriptor-validation.js","sourceRoot":"","sources":["../../src/decision/descriptor-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,8 @@ export interface DecisionEvaluatorDescriptor {
|
|
|
25
25
|
bundleDigest: string;
|
|
26
26
|
};
|
|
27
27
|
evaluator: EvaluatorRef;
|
|
28
|
+
/** Absent means production. Qualification is an explicit experimental composition. */
|
|
29
|
+
executionProfile?: 'production' | 'qualification';
|
|
28
30
|
protocol?: DecisionBackendProtocol;
|
|
29
31
|
wireModel: string;
|
|
30
32
|
acceptedServedModelIds: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/decision/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAC3F,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAC/G,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,UAAU,EAAE;QACV,iBAAiB,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACxD,KAAK,EAAE,SAAS;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACzD,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,aAAa,EAAE;QAAE,cAAc,EAAE,WAAW,GAAG,aAAa,CAAC;QAC3D,YAAY,EAAE,WAAW,GAAG,aAAa,CAAC;QAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/E,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;wBAGoB;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC;;yEAEqE;IACrE,cAAc,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,cAAc,GAAG,QAAQ,CAAC;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E;4DACwD;IACxD,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,2FAA2F;IAC3F,aAAa,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,kBAAkB,EAAE,SAAS;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,yBAAyB,CAAA;KAAE,EAAE,CAAC;IAC9G,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAUD,sFAAsF;AACtF,eAAO,MAAM,aAAa,EAAE,2BAwB3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/decision/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAC3F,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAC/G,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,UAAU,EAAE;QACV,iBAAiB,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACxD,KAAK,EAAE,SAAS;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACzD,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,YAAY,CAAC;IACxB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;IAClD,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,aAAa,EAAE;QAAE,cAAc,EAAE,WAAW,GAAG,aAAa,CAAC;QAC3D,YAAY,EAAE,WAAW,GAAG,aAAa,CAAC;QAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/E,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;wBAGoB;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC;;yEAEqE;IACrE,cAAc,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,cAAc,GAAG,QAAQ,CAAC;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E;4DACwD;IACxD,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,2FAA2F;IAC3F,aAAa,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,kBAAkB,EAAE,SAAS;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,yBAAyB,CAAA;KAAE,EAAE,CAAC;IAC9G,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAUD,sFAAsF;AACtF,eAAO,MAAM,aAAa,EAAE,2BAwB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/decision/descriptor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/decision/descriptor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAmD3D;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3G,sFAAsF;AACtF,MAAM,CAAC,MAAM,aAAa,GAAgC;IACxD,UAAU,EAAE;QACV,iBAAiB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9D,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC/D,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE;YACzD,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,oBAAoB,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;QAC3D,eAAe,EAAE,wBAAwB,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;QACjE,YAAY,EAAE,wBAAwB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;KAC7F;IACD,SAAS,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gCAAgC,EAAE;IAC5G,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,EAAE;IACnD,aAAa,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;IAC/F,qFAAqF;IACrF,kFAAkF;IAClF,sBAAsB,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAAE,eAAe,EAAE,GAAG,GAAG,IAAI,EAAE,qBAAqB,EAAE,EAAE,GAAG,IAAI;IACzH,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK;IAClF,UAAU,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,wCAAwC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACpH,WAAW,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE;IACvG,aAAa,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IACtF,kBAAkB,EAAE,EAAE;IACtB,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI;QAC5E,GAAG,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC,mCAAmC;YAC7E,2CAA2C,EAAE,0CAA0C,CAAC,EAAE;CAC/F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQvD,wFAAwF;AACxF,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EACtH,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQvD,wFAAwF;AACxF,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EACtH,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,kDAyCnF"}
|
|
@@ -28,7 +28,8 @@ export async function dispatchDecision(execution, selection, admitted, options)
|
|
|
28
28
|
const result = parseDecisionAdapterResult(candidate, request, selection.descriptor, secret);
|
|
29
29
|
receipt.dispatch = result.ok || result.error.phase === 'parse' ? 'completed' : 'unknown';
|
|
30
30
|
receipt.usage = result.usage;
|
|
31
|
-
receipt.servedEvaluator = result.servedEvaluator
|
|
31
|
+
receipt.servedEvaluator = result.servedEvaluator === null ? null : { ...result.servedEvaluator,
|
|
32
|
+
...(receipt.experimental ? { provisional: true } : {}) };
|
|
32
33
|
receipt.servedModelId = result.servedModelId;
|
|
33
34
|
if (result.providerRequestId)
|
|
34
35
|
receipt.providerRequestId = result.providerRequestId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGxH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAA4B,EAAE,SAAmD,EACtH,QAAiD,EAAE,OAA+B;IAClF,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAClC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;IAC7B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5H,IAAI,SAAkB,CAAC;IACvB,IAAI,CAAC;QAAC,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,QAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,CAAC;IAClH,MAAM,CAAC;QAAC,SAAS,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,kBAAkB,EAAE,UAAU,CAAC;YACzF,KAAK,EAAE,uBAAuB,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5F,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGxH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAA4B,EAAE,SAAmD,EACtH,QAAiD,EAAE,OAA+B;IAClF,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAClC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;IAC7B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5H,IAAI,SAAkB,CAAC;IACvB,IAAI,CAAC;QAAC,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,QAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,CAAC;IAClH,MAAM,CAAC;QAAC,SAAS,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,kBAAkB,EAAE,UAAU,CAAC;YACzF,KAAK,EAAE,uBAAuB,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5F,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,eAAe;QAC5F,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACpE,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC7C,IAAI,MAAM,CAAC,iBAAiB;QAAE,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACnF,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACjG,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAAC;IACxI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,OAAO,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS;QAC7E,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/E,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAClG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChI,KAAK,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACvC,4EAA4E;IAC5E,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,KAAK,kBAAkB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;IAC/H,IAAI,CAAC;QAAC,IAAI,CAAC,UAAU;YAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAAC,CAAC;IACxJ,MAAM,CAAC;QACL,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,wBAAwB,CAAC;QAChD,KAAK,GAAG,mBAAmB,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;QACpE,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3G,CAAC"}
|
|
@@ -3,6 +3,7 @@ import type { DecisionSelectionOptions } from './service.js';
|
|
|
3
3
|
import type { DecisionBudgetPort, DecisionReceiptSink } from './budget.js';
|
|
4
4
|
import type { DecisionClock } from './execution.js';
|
|
5
5
|
import type { EvaluatorRef } from './request.js';
|
|
6
|
+
import type { DecisionReadinessEvidence } from './qualification.js';
|
|
6
7
|
export interface DecisionPriceLookupKey {
|
|
7
8
|
providerId: string;
|
|
8
9
|
modelId: string;
|
|
@@ -14,6 +15,10 @@ export interface DecisionPriceLookupKey {
|
|
|
14
15
|
priceRevision: string;
|
|
15
16
|
}
|
|
16
17
|
export interface DecisionServiceOptions extends DecisionSelectionOptions {
|
|
18
|
+
/** Isolated host composition; production is the default and refuses qualification descriptors. */
|
|
19
|
+
executionProfile?: 'production' | 'qualification';
|
|
20
|
+
/** Host-owned evidence; caller JSON cannot select an experimental profile or a policy. */
|
|
21
|
+
readiness?: Omit<DecisionReadinessEvidence, 'price'>;
|
|
17
22
|
resolveAuth: AuthResolver;
|
|
18
23
|
resolvePrice(key: DecisionPriceLookupKey): unknown | Promise<unknown>;
|
|
19
24
|
/** Closed over verified caller identity; request JSON never selects financial ownership. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-options.d.ts","sourceRoot":"","sources":["../../src/decision/host-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"host-options.d.ts","sourceRoot":"","sources":["../../src/decision/host-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACpC;;uCAEmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IACtE,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;IAClD,0FAA0F;IAC1F,SAAS,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IACrD,WAAW,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,4FAA4F;IAC5F,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B"}
|
package/dist/decision/host.d.ts
CHANGED
|
@@ -16,4 +16,9 @@ export type { DecisionEvaluatorDescriptor, ResolvedDecisionCriterion } from './d
|
|
|
16
16
|
export type { DecisionBudgetPort, DecisionReceiptSink, DecisionAdmission, DecisionAdmissionResult, DecisionDispatchResult, DecisionSettlement } from './budget.js';
|
|
17
17
|
export type { DecisionPrice, DecisionQuote } from './pricing.js';
|
|
18
18
|
export type { DecisionClock } from './execution.js';
|
|
19
|
+
export { discoverDecisionEvaluator, decisionExecutionDigest, decisionQualificationScope } from './qualification.js';
|
|
20
|
+
export { assessDecisionCalibration } from './assessment.js';
|
|
21
|
+
export { recordDecisionAssessmentRow, decisionAssessmentCapacity } from './assessment-recording.js';
|
|
22
|
+
export type { DecisionReadinessEvidence, DecisionEvaluatorDiscovery, DecisionOperatingPolicy, DecisionQualificationScope } from './qualification.js';
|
|
23
|
+
export type { DecisionAssessment, DecisionAssessmentReport, DecisionAssessmentRow, DecisionAssessmentSample, DecisionAssessmentPopulation } from './assessment-types.js';
|
|
19
24
|
//# sourceMappingURL=host.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,YAAY,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAClH,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7K,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAC/F,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,YAAY,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAClH,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7K,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAC/F,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACpG,YAAY,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,uBAAuB,EAC1F,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,wBAAwB,EACzG,4BAA4B,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/decision/host.js
CHANGED
|
@@ -6,4 +6,7 @@ export { jevDescriptor } from './descriptor.js';
|
|
|
6
6
|
export { createOpenAiDecisionsAdapter } from './openai-adapter.js';
|
|
7
7
|
export { openAiDecisionsDescriptor, openAiDecisionsPrice } from './openai-descriptor.js';
|
|
8
8
|
export { createOpenAiDecisionsTransport } from '../transport/openai-decisions.js';
|
|
9
|
+
export { discoverDecisionEvaluator, decisionExecutionDigest, decisionQualificationScope } from './qualification.js';
|
|
10
|
+
export { assessDecisionCalibration } from './assessment.js';
|
|
11
|
+
export { recordDecisionAssessmentRow, decisionAssessmentCapacity } from './assessment-recording.js';
|
|
9
12
|
//# sourceMappingURL=host.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/decision/host.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAWlF,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/decision/index.d.ts
CHANGED
|
@@ -8,5 +8,7 @@ export { createRemoteDecisionClient } from './client.js';
|
|
|
8
8
|
export { validateDecisionResult } from './validate-result.js';
|
|
9
9
|
export type { RemoteDecisionClientOptions } from './client.js';
|
|
10
10
|
export type { ResolvedDecisionCriterion } from './descriptor.js';
|
|
11
|
+
export type { DecisionEvaluatorDiscovery, DecisionOperatingPolicy, DecisionQualificationScope } from './qualification.js';
|
|
12
|
+
export type { DecisionAssessmentReport } from './assessment-types.js';
|
|
11
13
|
export type { DecisionValidationContext, DecisionValidationProfile, DecisionValidationSemantics, DecisionValidationScoreSemantics, DecisionValidationConfidenceSemantics, DecisionRegisteredResolution, DirectDecisionCriterion, DecisionValidationContextResolver } from './validation-context.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decision/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnI,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAC1G,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,2BAA2B,EAC7F,gCAAgC,EAAE,qCAAqC,EAAE,4BAA4B,EACrG,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decision/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnI,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAC1G,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC1H,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,2BAA2B,EAC7F,gCAAgC,EAAE,qCAAqC,EAAE,4BAA4B,EACrG,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -22,7 +22,7 @@ export function decodeJevResponse(candidate, request, descriptor, requestId) {
|
|
|
22
22
|
const usage = parseDecisionUsage({ tokens: { input: token(input), output: token(output),
|
|
23
23
|
total: total === null ? token(null) : { value: total, source: 'derived-sum' } },
|
|
24
24
|
evaluatorCalls: answered ? 1 : null, explanations: answered ? 0 : null }) ?? unreportedDecisionUsage('unknown');
|
|
25
|
-
const identityMatches = servedModelId !== null
|
|
25
|
+
const identityMatches = servedModelId !== null
|
|
26
26
|
&& descriptor.acceptedServedModelIds.includes(servedModelId);
|
|
27
27
|
const evidence = { usage, servedModelId, servedEvaluator: identityMatches ? { ...descriptor.evaluator } : null,
|
|
28
28
|
...(providerRequestId === null ? {} : { providerRequestId }) };
|