@sentropic/llm-mesh 0.29.0 → 0.31.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.
Files changed (86) hide show
  1. package/README.md +21 -0
  2. package/dist/decision/adapter.d.ts.map +1 -1
  3. package/dist/decision/adapter.js +2 -1
  4. package/dist/decision/adapter.js.map +1 -1
  5. package/dist/decision/admission.d.ts +2 -1
  6. package/dist/decision/admission.d.ts.map +1 -1
  7. package/dist/decision/admission.js +5 -1
  8. package/dist/decision/admission.js.map +1 -1
  9. package/dist/decision/assessment-controls.d.ts +6 -0
  10. package/dist/decision/assessment-controls.d.ts.map +1 -0
  11. package/dist/decision/assessment-controls.js +45 -0
  12. package/dist/decision/assessment-controls.js.map +1 -0
  13. package/dist/decision/assessment-recording.d.ts +23 -0
  14. package/dist/decision/assessment-recording.d.ts.map +1 -0
  15. package/dist/decision/assessment-recording.js +73 -0
  16. package/dist/decision/assessment-recording.js.map +1 -0
  17. package/dist/decision/assessment-statistics.d.ts +14 -0
  18. package/dist/decision/assessment-statistics.d.ts.map +1 -0
  19. package/dist/decision/assessment-statistics.js +88 -0
  20. package/dist/decision/assessment-statistics.js.map +1 -0
  21. package/dist/decision/assessment-types.d.ts +123 -0
  22. package/dist/decision/assessment-types.d.ts.map +1 -0
  23. package/dist/decision/assessment-types.js +2 -0
  24. package/dist/decision/assessment-types.js.map +1 -0
  25. package/dist/decision/assessment-validation.d.ts +7 -0
  26. package/dist/decision/assessment-validation.d.ts.map +1 -0
  27. package/dist/decision/assessment-validation.js +124 -0
  28. package/dist/decision/assessment-validation.js.map +1 -0
  29. package/dist/decision/assessment.d.ts +6 -0
  30. package/dist/decision/assessment.d.ts.map +1 -0
  31. package/dist/decision/assessment.js +157 -0
  32. package/dist/decision/assessment.js.map +1 -0
  33. package/dist/decision/descriptor-validation.d.ts.map +1 -1
  34. package/dist/decision/descriptor-validation.js +4 -2
  35. package/dist/decision/descriptor-validation.js.map +1 -1
  36. package/dist/decision/descriptor.d.ts +2 -0
  37. package/dist/decision/descriptor.d.ts.map +1 -1
  38. package/dist/decision/descriptor.js.map +1 -1
  39. package/dist/decision/dispatch.d.ts.map +1 -1
  40. package/dist/decision/dispatch.js +2 -1
  41. package/dist/decision/dispatch.js.map +1 -1
  42. package/dist/decision/host-options.d.ts +5 -0
  43. package/dist/decision/host-options.d.ts.map +1 -1
  44. package/dist/decision/host.d.ts +5 -0
  45. package/dist/decision/host.d.ts.map +1 -1
  46. package/dist/decision/host.js +3 -0
  47. package/dist/decision/host.js.map +1 -1
  48. package/dist/decision/index.d.ts +2 -0
  49. package/dist/decision/index.d.ts.map +1 -1
  50. package/dist/decision/jev-response.js +1 -1
  51. package/dist/decision/jev-response.js.map +1 -1
  52. package/dist/decision/openai-adapter.d.ts.map +1 -1
  53. package/dist/decision/openai-adapter.js +2 -1
  54. package/dist/decision/openai-adapter.js.map +1 -1
  55. package/dist/decision/openai-codec.js +1 -1
  56. package/dist/decision/openai-codec.js.map +1 -1
  57. package/dist/decision/policy.d.ts.map +1 -1
  58. package/dist/decision/policy.js +2 -1
  59. package/dist/decision/policy.js.map +1 -1
  60. package/dist/decision/pricing.d.ts +1 -0
  61. package/dist/decision/pricing.d.ts.map +1 -1
  62. package/dist/decision/pricing.js +25 -10
  63. package/dist/decision/pricing.js.map +1 -1
  64. package/dist/decision/qualification-scope.d.ts +22 -0
  65. package/dist/decision/qualification-scope.d.ts.map +1 -0
  66. package/dist/decision/qualification-scope.js +36 -0
  67. package/dist/decision/qualification-scope.js.map +1 -0
  68. package/dist/decision/qualification.d.ts +34 -0
  69. package/dist/decision/qualification.d.ts.map +1 -0
  70. package/dist/decision/qualification.js +74 -0
  71. package/dist/decision/qualification.js.map +1 -0
  72. package/dist/decision/receipt.d.ts +9 -3
  73. package/dist/decision/receipt.d.ts.map +1 -1
  74. package/dist/decision/receipt.js.map +1 -1
  75. package/dist/decision/service.d.ts.map +1 -1
  76. package/dist/decision/service.js +19 -3
  77. package/dist/decision/service.js.map +1 -1
  78. package/dist/speech/index.d.ts +1 -0
  79. package/dist/speech/index.d.ts.map +1 -1
  80. package/dist/speech/index.js +1 -0
  81. package/dist/speech/index.js.map +1 -1
  82. package/dist/speech/openai-transcription.d.ts +173 -0
  83. package/dist/speech/openai-transcription.d.ts.map +1 -0
  84. package/dist/speech/openai-transcription.js +659 -0
  85. package/dist/speech/openai-transcription.js.map +1 -0
  86. 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,CAiFvG"}
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 : 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":"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"}
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;AAiD3D;;;;;;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
+ {"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,kDAwCnF"}
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":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/decision/dispatch.ts"],"names":[],"mappings":"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"}
@@ -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;AAEjD,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,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"}
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"}
@@ -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"}
@@ -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"}
@@ -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 && descriptor.qualification.servedIdentity === 'qualified'
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 }) };