modelrig 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +125 -0
- package/README.md +54 -4
- package/dist/adapters/anthropic.d.ts.map +1 -1
- package/dist/adapters/anthropic.js +36 -7
- package/dist/adapters/attempt-meta-map.d.ts +63 -0
- package/dist/adapters/attempt-meta-map.d.ts.map +1 -0
- package/dist/adapters/attempt-meta-map.js +154 -0
- package/dist/adapters/deepseek.d.ts.map +1 -1
- package/dist/adapters/deepseek.js +25 -2
- package/dist/adapters/gemini.d.ts.map +1 -1
- package/dist/adapters/gemini.js +29 -2
- package/dist/adapters/grok.d.ts.map +1 -1
- package/dist/adapters/grok.js +25 -2
- package/dist/adapters/openai-compat.d.ts.map +1 -1
- package/dist/adapters/openai-compat.js +25 -2
- package/dist/adapters/openai-stream.d.ts +2 -0
- package/dist/adapters/openai-stream.d.ts.map +1 -1
- package/dist/adapters/openai-stream.js +23 -3
- package/dist/adapters/openai.d.ts.map +1 -1
- package/dist/adapters/openai.js +36 -6
- package/dist/artifacts/artifact.d.ts.map +1 -1
- package/dist/artifacts/artifact.js +24 -5
- package/dist/artifacts/classification.d.ts +27 -0
- package/dist/artifacts/classification.d.ts.map +1 -0
- package/dist/artifacts/classification.js +38 -0
- package/dist/artifacts/index.d.ts +3 -1
- package/dist/artifacts/index.d.ts.map +1 -1
- package/dist/artifacts/index.js +10 -1
- package/dist/artifacts/run-context.d.ts +25 -3
- package/dist/artifacts/run-context.d.ts.map +1 -1
- package/dist/artifacts/run-context.js +61 -0
- package/dist/artifacts/scrub.d.ts +26 -0
- package/dist/artifacts/scrub.d.ts.map +1 -1
- package/dist/artifacts/scrub.js +53 -0
- package/dist/artifacts/step.d.ts +9 -0
- package/dist/artifacts/step.d.ts.map +1 -1
- package/dist/artifacts/step.js +9 -0
- package/dist/bakeoff/engine.d.ts +46 -4
- package/dist/bakeoff/engine.d.ts.map +1 -1
- package/dist/bakeoff/engine.js +269 -19
- package/dist/bakeoff/eval-cases.d.ts +5 -0
- package/dist/bakeoff/eval-cases.d.ts.map +1 -1
- package/dist/bakeoff/eval-cases.js +3 -0
- package/dist/bakeoff/judge.d.ts +39 -0
- package/dist/bakeoff/judge.d.ts.map +1 -0
- package/dist/bakeoff/judge.js +102 -0
- package/dist/bakeoff/quality.d.ts +44 -0
- package/dist/bakeoff/quality.d.ts.map +1 -0
- package/dist/bakeoff/quality.js +126 -0
- package/dist/bakeoff/reference.d.ts +34 -0
- package/dist/bakeoff/reference.d.ts.map +1 -0
- package/dist/bakeoff/reference.js +68 -0
- package/dist/bakeoff/replay.d.ts +25 -0
- package/dist/bakeoff/replay.d.ts.map +1 -1
- package/dist/bakeoff/replay.js +48 -1
- package/dist/bakeoff/report.d.ts +8 -1
- package/dist/bakeoff/report.d.ts.map +1 -1
- package/dist/bakeoff/report.js +83 -12
- package/dist/bakeoff/samples.d.ts +35 -2
- package/dist/bakeoff/samples.d.ts.map +1 -1
- package/dist/bakeoff/samples.js +67 -6
- package/dist/bakeoff/stats.d.ts +17 -1
- package/dist/bakeoff/stats.d.ts.map +1 -1
- package/dist/bakeoff/stats.js +67 -0
- package/dist/bakeoff/types.d.ts +76 -5
- package/dist/bakeoff/types.d.ts.map +1 -1
- package/dist/bakeoff/types.js +4 -3
- package/dist/cli-query.d.ts +14 -0
- package/dist/cli-query.d.ts.map +1 -0
- package/dist/cli-query.js +59 -0
- package/dist/cli.d.ts +2 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +26 -23
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -0
- package/dist/detect/detector.d.ts +82 -0
- package/dist/detect/detector.d.ts.map +1 -0
- package/dist/detect/detector.js +23 -0
- package/dist/index.d.ts +19 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -11
- package/dist/query/analytics.d.ts +84 -0
- package/dist/query/analytics.d.ts.map +1 -0
- package/dist/query/analytics.js +280 -0
- package/dist/query/columns.d.ts +59 -0
- package/dist/query/columns.d.ts.map +1 -0
- package/dist/query/columns.js +89 -0
- package/dist/query/grammar.d.ts +74 -7
- package/dist/query/grammar.d.ts.map +1 -1
- package/dist/query/grammar.js +179 -71
- package/dist/query/saved.d.ts +26 -0
- package/dist/query/saved.d.ts.map +1 -0
- package/dist/query/saved.js +51 -0
- package/dist/routes/loader.js +15 -10
- package/dist/routes/objective-loader.d.ts +35 -0
- package/dist/routes/objective-loader.d.ts.map +1 -0
- package/dist/routes/objective-loader.js +286 -0
- package/dist/run/accept.d.ts +43 -0
- package/dist/run/accept.d.ts.map +1 -0
- package/dist/run/accept.js +65 -0
- package/dist/run/cost.d.ts +13 -0
- package/dist/run/cost.d.ts.map +1 -1
- package/dist/run/cost.js +27 -0
- package/dist/run/dispatch.d.ts +24 -1
- package/dist/run/dispatch.d.ts.map +1 -1
- package/dist/run/dispatch.js +19 -0
- package/dist/run/ladder-key.d.ts +4 -0
- package/dist/run/ladder-key.d.ts.map +1 -1
- package/dist/run/ladder-key.js +3 -0
- package/dist/run/quality-gate.d.ts +39 -0
- package/dist/run/quality-gate.d.ts.map +1 -0
- package/dist/run/quality-gate.js +70 -0
- package/dist/run/raw.d.ts.map +1 -1
- package/dist/run/raw.js +22 -3
- package/dist/run/record-attempt.d.ts.map +1 -1
- package/dist/run/record-attempt.js +22 -1
- package/dist/run/routing-docs.d.ts.map +1 -1
- package/dist/run/routing-docs.js +11 -4
- package/dist/run/run.d.ts.map +1 -1
- package/dist/run/run.js +46 -39
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.d.ts.map +1 -1
- package/dist/settings/index.js +2 -1
- package/dist/settings/task-settings.d.ts +10 -0
- package/dist/settings/task-settings.d.ts.map +1 -1
- package/dist/settings/task-settings.js +17 -0
- package/dist/telemetry/attempt-meta.d.ts +178 -0
- package/dist/telemetry/attempt-meta.d.ts.map +1 -0
- package/dist/telemetry/attempt-meta.js +319 -0
- package/dist/telemetry/exporter.d.ts.map +1 -1
- package/dist/telemetry/exporter.js +6 -0
- package/dist/telemetry/ingest-protocol.d.ts +11 -0
- package/dist/telemetry/ingest-protocol.d.ts.map +1 -1
- package/dist/telemetry/ingest-protocol.js +3 -0
- package/dist/telemetry/otel-map.d.ts +10 -0
- package/dist/telemetry/otel-map.d.ts.map +1 -1
- package/dist/telemetry/otel-map.js +64 -0
- package/dist/telemetry/store-migrations.d.ts.map +1 -1
- package/dist/telemetry/store-migrations.js +15 -0
- package/dist/telemetry/store.d.ts.map +1 -1
- package/dist/telemetry/store.js +25 -7
- package/dist/types/failures-teaching.d.ts.map +1 -1
- package/dist/types/failures-teaching.js +20 -0
- package/dist/types/failures.d.ts +1 -1
- package/dist/types/failures.d.ts.map +1 -1
- package/dist/types/failures.js +1 -0
- package/dist/types/provider.d.ts +9 -0
- package/dist/types/provider.d.ts.map +1 -1
- package/dist/types/quality.d.ts +41 -0
- package/dist/types/quality.d.ts.map +1 -0
- package/dist/types/quality.js +12 -0
- package/dist/types/route.d.ts +89 -0
- package/dist/types/route.d.ts.map +1 -1
- package/dist/types/telemetry.d.ts +13 -0
- package/dist/types/telemetry.d.ts.map +1 -1
- package/dist/validate-cli.d.ts.map +1 -1
- package/dist/validate-cli.js +10 -0
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.TRACEPARENT_TAG = exports.SEMCONV_VERSION = void 0;
|
|
25
25
|
exports.parseTraceparent = parseTraceparent;
|
|
26
|
+
exports.metaSpanAttributes = metaSpanAttributes;
|
|
26
27
|
exports.inferenceToSpan = inferenceToSpan;
|
|
27
28
|
exports.cacheDecisionSpanAttributes = cacheDecisionSpanAttributes;
|
|
28
29
|
exports.buildExportTraceRequest = buildExportTraceRequest;
|
|
@@ -92,6 +93,65 @@ function toUnixNano(iso, plusMs = 0) {
|
|
|
92
93
|
function isSearchRow(row) {
|
|
93
94
|
return row.provider === "search";
|
|
94
95
|
}
|
|
96
|
+
/** The classification-rule guard, inlined here to keep otel-map dependency-light
|
|
97
|
+
* (WI-1b): a string attribute is emitted only if it is an enum/identifier/hash
|
|
98
|
+
* (≤128 chars, no whitespace). The envelope is already sanitized at production +
|
|
99
|
+
* ingest; this is belt-and-braces so the OTLP wire can never carry content. */
|
|
100
|
+
function isMetaSafeStr(v) {
|
|
101
|
+
return typeof v === "string" && v.length > 0 && v.length <= 128 && !/\s/.test(v);
|
|
102
|
+
}
|
|
103
|
+
const finite = (v) => typeof v === "number" && Number.isFinite(v);
|
|
104
|
+
/**
|
|
105
|
+
* The attempt-envelope span attributes (WI-1b spec §5) — `modelrig.meta.*`,
|
|
106
|
+
* enums/numbers/booleans/hashes/identifiers ONLY. Mirrors the query grammar's
|
|
107
|
+
* metadata-safe columns; a value that is not an enum/identifier/hash is dropped
|
|
108
|
+
* by {@link isMetaSafeStr}, so the metadata-safe property test extends cleanly to
|
|
109
|
+
* the emitted span. Absent fields emit no attribute (byte-identical to a pre-WI-1
|
|
110
|
+
* row's span).
|
|
111
|
+
*/
|
|
112
|
+
function metaSpanAttributes(meta) {
|
|
113
|
+
if (meta === null || meta === undefined)
|
|
114
|
+
return [];
|
|
115
|
+
const attrs = [];
|
|
116
|
+
if (isMetaSafeStr(meta.finish_reason))
|
|
117
|
+
attrs.push(strAttr("modelrig.meta.finish_reason", meta.finish_reason));
|
|
118
|
+
if (typeof meta.refusal === "boolean")
|
|
119
|
+
attrs.push(boolAttr("modelrig.meta.refusal", meta.refusal));
|
|
120
|
+
if (typeof meta.streaming === "boolean")
|
|
121
|
+
attrs.push(boolAttr("modelrig.meta.streaming", meta.streaming));
|
|
122
|
+
if (isMetaSafeStr(meta.context_bucket))
|
|
123
|
+
attrs.push(strAttr("modelrig.meta.context_bucket", meta.context_bucket));
|
|
124
|
+
if (isMetaSafeStr(meta.model_snapshot))
|
|
125
|
+
attrs.push(strAttr("modelrig.meta.model_snapshot", meta.model_snapshot));
|
|
126
|
+
if (isMetaSafeStr(meta.error_code))
|
|
127
|
+
attrs.push(strAttr("modelrig.meta.error_code", meta.error_code));
|
|
128
|
+
if (isMetaSafeStr(meta.region))
|
|
129
|
+
attrs.push(strAttr("modelrig.meta.region", meta.region));
|
|
130
|
+
if (isMetaSafeStr(meta.input_hash))
|
|
131
|
+
attrs.push(strAttr("modelrig.meta.input_hash", meta.input_hash));
|
|
132
|
+
if (isMetaSafeStr(meta.output_hash))
|
|
133
|
+
attrs.push(strAttr("modelrig.meta.output_hash", meta.output_hash));
|
|
134
|
+
if (finite(meta.http_status))
|
|
135
|
+
attrs.push(intAttr("modelrig.meta.http_status", meta.http_status));
|
|
136
|
+
if (finite(meta.reasoning_tokens))
|
|
137
|
+
attrs.push(intAttr("modelrig.meta.reasoning_tokens", meta.reasoning_tokens));
|
|
138
|
+
if (finite(meta.response_chars))
|
|
139
|
+
attrs.push(intAttr("modelrig.meta.response_chars", meta.response_chars));
|
|
140
|
+
const cost = meta.cost;
|
|
141
|
+
if (cost !== undefined && cost !== null) {
|
|
142
|
+
if (finite(cost.in))
|
|
143
|
+
attrs.push(dblAttr("modelrig.meta.cost.in", cost.in));
|
|
144
|
+
if (finite(cost.out))
|
|
145
|
+
attrs.push(dblAttr("modelrig.meta.cost.out", cost.out));
|
|
146
|
+
if (finite(cost.cache_read))
|
|
147
|
+
attrs.push(dblAttr("modelrig.meta.cost.cache_read", cost.cache_read));
|
|
148
|
+
if (finite(cost.cache_write))
|
|
149
|
+
attrs.push(dblAttr("modelrig.meta.cost.cache_write", cost.cache_write));
|
|
150
|
+
if (finite(cost.other))
|
|
151
|
+
attrs.push(dblAttr("modelrig.meta.cost.other", cost.other));
|
|
152
|
+
}
|
|
153
|
+
return attrs;
|
|
154
|
+
}
|
|
95
155
|
function readTraceparentTag(row) {
|
|
96
156
|
let tags;
|
|
97
157
|
try {
|
|
@@ -160,6 +220,10 @@ function inferenceToSpan(row) {
|
|
|
160
220
|
}
|
|
161
221
|
if (row.failureClass !== null)
|
|
162
222
|
attrs.push(strAttr("modelrig.failure_class", row.failureClass));
|
|
223
|
+
// WI-1b: the attempt envelope's metadata-safe fields as `modelrig.meta.*`
|
|
224
|
+
// (enums/numbers/booleans/hashes/identifiers only — never content).
|
|
225
|
+
for (const a of metaSpanAttributes(row.meta))
|
|
226
|
+
attrs.push(a);
|
|
163
227
|
const parent = readTraceparentTag(row);
|
|
164
228
|
const traceId = parent !== null ? parent.traceId : traceIdFor(row.id);
|
|
165
229
|
const span = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-migrations.d.ts","sourceRoot":"","sources":["../../src/telemetry/store-migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;sCACsC;AACtC,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"store-migrations.d.ts","sourceRoot":"","sources":["../../src/telemetry/store-migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;sCACsC;AACtC,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAsH9D"}
|
|
@@ -116,4 +116,19 @@ function runStoreMigrations(db) {
|
|
|
116
116
|
add("candidate_index", "candidate_index INTEGER");
|
|
117
117
|
db.pragma("user_version = 11");
|
|
118
118
|
}
|
|
119
|
+
// v12 (WI-1a): the attempt/run metadata envelope columns. Additive, nullable;
|
|
120
|
+
// old rows read null ("recorded before WI-1a"). meta_json goes on BOTH
|
|
121
|
+
// inferences (AttemptMeta@v1) and runs (RunMeta@v1) — the local mirror of the
|
|
122
|
+
// Postgres 00056/00057 columns. Same ALTER-if-absent pattern as v10/v11.
|
|
123
|
+
if (db.pragma("user_version", { simple: true }) < 12) {
|
|
124
|
+
const infCols = db.prepare("PRAGMA table_info(inferences)").all();
|
|
125
|
+
if (!infCols.some((c) => c.name === "meta_json")) {
|
|
126
|
+
db.exec("ALTER TABLE inferences ADD COLUMN meta_json TEXT");
|
|
127
|
+
}
|
|
128
|
+
const runCols = db.prepare("PRAGMA table_info(runs)").all();
|
|
129
|
+
if (!runCols.some((c) => c.name === "meta_json")) {
|
|
130
|
+
db.exec("ALTER TABLE runs ADD COLUMN meta_json TEXT");
|
|
131
|
+
}
|
|
132
|
+
db.pragma("user_version = 12");
|
|
133
|
+
}
|
|
119
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/telemetry/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAA2B,KAAK,cAAc,EAAuB,MAAM,UAAU,CAAC;AAG7F;;;;;GAKG;AACH,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,qEAAqE;IACrE,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACpG,uEAAuE;IACvE,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IACjG;mEAC+D;IAC/D,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iFAAiF;IACjF,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,mEAAmE;IACnE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1F;;iFAE6E;IAC7E,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClE,iEAAiE;IACjE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC3C,aAAa,IAAI,WAAW,EAAE,CAAC;IAC/B,oEAAoE;IACpE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D;;;;;OAKG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CAC3E;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/telemetry/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAA2B,KAAK,cAAc,EAAuB,MAAM,UAAU,CAAC;AAG7F;;;;;GAKG;AACH,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,qEAAqE;IACrE,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACpG,uEAAuE;IACvE,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IACjG;mEAC+D;IAC/D,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iFAAiF;IACjF,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,mEAAmE;IACnE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1F;;iFAE6E;IAC7E,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClE,iEAAiE;IACjE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC3C,aAAa,IAAI,WAAW,EAAE,CAAC;IAC/B,oEAAoE;IACpE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D;;;;;OAKG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CAC3E;AAyTD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,CAoR3E"}
|
package/dist/telemetry/store.js
CHANGED
|
@@ -53,7 +53,11 @@ CREATE TABLE IF NOT EXISTS inferences (
|
|
|
53
53
|
-- databases gain them via the ALTER ladder. Null = recorded pre-0.4.0.
|
|
54
54
|
call_id TEXT,
|
|
55
55
|
attempt_seq INTEGER,
|
|
56
|
-
candidate_index INTEGER
|
|
56
|
+
candidate_index INTEGER,
|
|
57
|
+
-- v12 (WI-1a): the attempt metadata envelope (AttemptMeta@v1), serialized
|
|
58
|
+
-- JSON. Fresh here; older databases gain it via the ALTER ladder. Null =
|
|
59
|
+
-- the producer could not build it / recorded before WI-1a.
|
|
60
|
+
meta_json TEXT
|
|
57
61
|
);
|
|
58
62
|
CREATE INDEX IF NOT EXISTS idx_inferences_route_ts ON inferences (route, ts);
|
|
59
63
|
-- v8 (G-4 observed-health): per-endpoint windowed aggregation filters by
|
|
@@ -121,7 +125,10 @@ CREATE TABLE IF NOT EXISTS runs (
|
|
|
121
125
|
started_at TEXT NOT NULL,
|
|
122
126
|
ended_at TEXT,
|
|
123
127
|
status TEXT NOT NULL CHECK (status IN ('running','succeeded','failed','abandoned')),
|
|
124
|
-
export_seq INTEGER NOT NULL
|
|
128
|
+
export_seq INTEGER NOT NULL,
|
|
129
|
+
-- v12 (WI-1a): the run metadata envelope (RunMeta@v1), serialized JSON. Null
|
|
130
|
+
-- when unset (run.start without a meta) or recorded before WI-1a.
|
|
131
|
+
meta_json TEXT
|
|
125
132
|
);
|
|
126
133
|
CREATE INDEX IF NOT EXISTS idx_runs_export_seq ON runs (export_seq);
|
|
127
134
|
|
|
@@ -154,6 +161,9 @@ function toRunRow(r) {
|
|
|
154
161
|
startedAt: r.started_at,
|
|
155
162
|
endedAt: r.ended_at,
|
|
156
163
|
status: r.status,
|
|
164
|
+
// v12 (WI-1a): `?? null` — a pre-WI-1a database returns undefined for the
|
|
165
|
+
// meta_json ALTER column, and those rows genuinely predate RunMeta.
|
|
166
|
+
meta: r.meta_json != null ? JSON.parse(r.meta_json) : null,
|
|
157
167
|
};
|
|
158
168
|
}
|
|
159
169
|
function toStepRow(r) {
|
|
@@ -224,6 +234,9 @@ function toTelemetryRow(r) {
|
|
|
224
234
|
callId: r.call_id ?? null,
|
|
225
235
|
attemptSeq: r.attempt_seq ?? null,
|
|
226
236
|
candidateIndex: r.candidate_index ?? null,
|
|
237
|
+
// Attempt envelope (WI-1a) — `?? null`: a pre-v12 database returns undefined
|
|
238
|
+
// for the meta_json ALTER column, and those rows predate the envelope.
|
|
239
|
+
meta: r.meta_json != null ? JSON.parse(r.meta_json) : null,
|
|
227
240
|
};
|
|
228
241
|
}
|
|
229
242
|
function toEnvelopeRow(r) {
|
|
@@ -249,13 +262,13 @@ function openTelemetryStore(dbPath) {
|
|
|
249
262
|
tokens_in, tokens_out, tokens_cached, cost_estimate_usd, latency_ms, ttfb_ms,
|
|
250
263
|
failure_class, attempts_json, tags_json, fingerprint_cell, served_variant, repaired_by, pricing_missing,
|
|
251
264
|
tokens_cache_write, tokens_cache_write_1h, cache_key, prefix_fingerprint,
|
|
252
|
-
call_id, attempt_seq, candidate_index
|
|
265
|
+
call_id, attempt_seq, candidate_index, meta_json
|
|
253
266
|
) VALUES (
|
|
254
267
|
@id, @ts, @route, @route_version, @provider, @model, @requested_tier, @served_tier,
|
|
255
268
|
@tokens_in, @tokens_out, @tokens_cached, @cost_estimate_usd, @latency_ms, @ttfb_ms,
|
|
256
269
|
@failure_class, @attempts_json, @tags_json, @fingerprint_cell, @served_variant, @repaired_by, @pricing_missing,
|
|
257
270
|
@tokens_cache_write, @tokens_cache_write_1h, @cache_key, @prefix_fingerprint,
|
|
258
|
-
@call_id, @attempt_seq, @candidate_index
|
|
271
|
+
@call_id, @attempt_seq, @candidate_index, @meta_json
|
|
259
272
|
)
|
|
260
273
|
`);
|
|
261
274
|
const selectByTag = db.prepare(`
|
|
@@ -288,8 +301,8 @@ function openTelemetryStore(dbPath) {
|
|
|
288
301
|
// synchronous, so the MAX(export_seq)+1 read is race-free.
|
|
289
302
|
const nextRunSeq = db.prepare("SELECT COALESCE(MAX(export_seq), 0) + 1 AS n FROM runs");
|
|
290
303
|
const upsertRun = db.prepare(`
|
|
291
|
-
INSERT INTO runs (id, pipeline, pipeline_version, environment, episode_key, started_at, ended_at, status, export_seq)
|
|
292
|
-
VALUES (@id, @pipeline, @pipeline_version, @environment, @episode_key, @started_at, @ended_at, @status, @export_seq)
|
|
304
|
+
INSERT INTO runs (id, pipeline, pipeline_version, environment, episode_key, started_at, ended_at, status, export_seq, meta_json)
|
|
305
|
+
VALUES (@id, @pipeline, @pipeline_version, @environment, @episode_key, @started_at, @ended_at, @status, @export_seq, @meta_json)
|
|
293
306
|
ON CONFLICT (id) DO UPDATE SET
|
|
294
307
|
pipeline = excluded.pipeline,
|
|
295
308
|
pipeline_version = excluded.pipeline_version,
|
|
@@ -298,7 +311,8 @@ function openTelemetryStore(dbPath) {
|
|
|
298
311
|
started_at = excluded.started_at,
|
|
299
312
|
ended_at = excluded.ended_at,
|
|
300
313
|
status = excluded.status,
|
|
301
|
-
export_seq = excluded.export_seq
|
|
314
|
+
export_seq = excluded.export_seq,
|
|
315
|
+
meta_json = excluded.meta_json
|
|
302
316
|
`);
|
|
303
317
|
const insertStep = db.prepare(`
|
|
304
318
|
INSERT OR IGNORE INTO steps (
|
|
@@ -346,6 +360,9 @@ function openTelemetryStore(dbPath) {
|
|
|
346
360
|
call_id: row.callId ?? null,
|
|
347
361
|
attempt_seq: row.attemptSeq ?? null,
|
|
348
362
|
candidate_index: row.candidateIndex ?? null,
|
|
363
|
+
// WI-1a: serialize the envelope, or null — better-sqlite3 rejects an
|
|
364
|
+
// `undefined` bound param, and a row that omits it has no envelope.
|
|
365
|
+
meta_json: row.meta != null ? JSON.stringify(row.meta) : null,
|
|
349
366
|
});
|
|
350
367
|
},
|
|
351
368
|
recordFeedback(row) {
|
|
@@ -380,6 +397,7 @@ function openTelemetryStore(dbPath) {
|
|
|
380
397
|
ended_at: row.endedAt,
|
|
381
398
|
status: row.status,
|
|
382
399
|
export_seq: seq,
|
|
400
|
+
meta_json: row.meta != null ? JSON.stringify(row.meta) : null,
|
|
383
401
|
});
|
|
384
402
|
},
|
|
385
403
|
recordStep(row) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failures-teaching.d.ts","sourceRoot":"","sources":["../../src/types/failures-teaching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;4EACwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,eAAe,GAAG,IAAI,CAAC;CAC5E;AAID,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"failures-teaching.d.ts","sourceRoot":"","sources":["../../src/types/failures-teaching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;4EACwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,eAAe,GAAG,IAAI,CAAC;CAC5E;AAID,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAuK5E,CAAC;AAiBF;6EAC6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CAClD;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,gBAAgB,CAU3D;AAED;gEACgE;AAChE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAapE"}
|
|
@@ -137,6 +137,26 @@ exports.FAILURE_TEACHING = {
|
|
|
137
137
|
"model that appeared.",
|
|
138
138
|
docsUrl: `${DOCS_BASE}#invariant_violation`,
|
|
139
139
|
},
|
|
140
|
+
quality_rejected: {
|
|
141
|
+
class: "quality_rejected",
|
|
142
|
+
what: "The output met the schema your route requires, but the quality gate you supplied " +
|
|
143
|
+
"(`rig.run(route, { qualityGate })`) judged it below your bar and rejected it — so the " +
|
|
144
|
+
"ladder fell through rather than passing it downstream.",
|
|
145
|
+
fixHint: "This is your own predicate talking, not the model failing a shape check. If good outputs " +
|
|
146
|
+
"are being rejected, the bar is too tight — loosen the gate. If you want the same candidate " +
|
|
147
|
+
"re-sampled before falling through, give this class a budget under `policy.retries`; it " +
|
|
148
|
+
"defaults to 0 (immediate fall-through) and never enters the repair rung.",
|
|
149
|
+
docsUrl: `${DOCS_BASE}#quality_rejected`,
|
|
150
|
+
// Mechanical: give the class a small retry budget so sampling variance gets
|
|
151
|
+
// a second draw on the SAME candidate before the ladder falls through.
|
|
152
|
+
suggestedChange: () => ({
|
|
153
|
+
op: "replace",
|
|
154
|
+
path: "/policy/retries/quality_rejected",
|
|
155
|
+
value: 1,
|
|
156
|
+
because: "A quality miss is often sampling variance; one retry re-draws the same candidate before " +
|
|
157
|
+
"falling through, at the cost of one extra call.",
|
|
158
|
+
}),
|
|
159
|
+
},
|
|
140
160
|
};
|
|
141
161
|
/** Provider → the env var that keys it. Mirrors config.ts's PROVIDER_KEY_ENV;
|
|
142
162
|
* kept as a local lookup so this table has no import cycle with config. */
|
package/dist/types/failures.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* errors never cross the adapter boundary. Retry budgets are per-class and
|
|
5
5
|
* non-fungible (see run/retry.ts).
|
|
6
6
|
*/
|
|
7
|
-
export type FailureClass = "content_invalid" | "capacity_shed" | "network" | "refusal" | "cache_invalid" | "timeout" | "config_auth" | "budget_exhausted" | "invariant_violation";
|
|
7
|
+
export type FailureClass = "content_invalid" | "capacity_shed" | "network" | "refusal" | "cache_invalid" | "timeout" | "config_auth" | "budget_exhausted" | "invariant_violation" | "quality_rejected";
|
|
8
8
|
export interface RigFailure {
|
|
9
9
|
readonly class: FailureClass;
|
|
10
10
|
readonly message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failures.d.ts","sourceRoot":"","sources":["../../src/types/failures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,SAAS,GACT,eAAe,GACf,SAAS,GACT,aAAa,GACb,kBAAkB,GAClB,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"failures.d.ts","sourceRoot":"","sources":["../../src/types/failures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,SAAS,GACT,eAAe,GACf,SAAS,GACT,aAAa,GACb,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,YAAY,CAGrD,CAAC;AAeH;kFACkF;AAClF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;gBAEjB,OAAO,EAAE,UAAU;CAKhC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAIhE"}
|
package/dist/types/failures.js
CHANGED
|
@@ -22,6 +22,7 @@ const FAILURE_CLASSES = new Set([
|
|
|
22
22
|
"config_auth",
|
|
23
23
|
"budget_exhausted",
|
|
24
24
|
"invariant_violation",
|
|
25
|
+
"quality_rejected",
|
|
25
26
|
]);
|
|
26
27
|
/** Error subclass for the rare paths that must throw (config errors, terminal
|
|
27
28
|
* failures surfacing to the caller). The failure travels intact on `.failure`. */
|
package/dist/types/provider.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* and CandidateRef is a branded type constructible ONLY in run/resolve.ts.
|
|
5
5
|
*/
|
|
6
6
|
import type { RigFailure } from "./failures";
|
|
7
|
+
import type { AttemptMetaV1 } from "../telemetry/attempt-meta";
|
|
7
8
|
export type ProviderId = "gemini" | "openai" | "deepseek" | "anthropic" | "grok" | "deepinfra" | "fireworks";
|
|
8
9
|
/** Runtime enumeration of every ProviderId — the single list a raw-model lane
|
|
9
10
|
* (`provider/model`) validates against (http gateway spec §3.3). Kept in sync
|
|
@@ -199,6 +200,13 @@ export type AdapterResult = {
|
|
|
199
200
|
* A tool-call turn carries these instead of (or alongside) `text`; the
|
|
200
201
|
* run loop surfaces them and does NOT schema-validate the turn. */
|
|
201
202
|
readonly toolCalls?: readonly ToolCall[];
|
|
203
|
+
/** NATIVE attempt metadata (WI-1, spec §2) — finish reason, refusal,
|
|
204
|
+
* reasoning tokens, model snapshot, provider request id, sampling echo,
|
|
205
|
+
* tool-call names/counts. ADDITIVE: an adapter that reports nothing omits
|
|
206
|
+
* it and changes nothing. The single producer (`summarizeAttemptMeta`)
|
|
207
|
+
* adds hashes/sizes/cost and enforces the classification rule; adapters
|
|
208
|
+
* NEVER build the full envelope. */
|
|
209
|
+
readonly meta?: Partial<AttemptMetaV1>;
|
|
202
210
|
}
|
|
203
211
|
/** F1 (C1 finding, closed Phase 3 step 0): failures that still BILLED
|
|
204
212
|
* tokens (refusals, truncations, post-stream rejections) carry `usage` so
|
|
@@ -208,6 +216,7 @@ export type AdapterResult = {
|
|
|
208
216
|
readonly ok: false;
|
|
209
217
|
readonly failure: RigFailure;
|
|
210
218
|
readonly usage?: AdapterUsage;
|
|
219
|
+
readonly meta?: Partial<AttemptMetaV1>;
|
|
211
220
|
};
|
|
212
221
|
/** One event from an adapter's streaming variant (G-1/G-5 Phase A). A stream
|
|
213
222
|
* emits zero or more `delta` events (raw, pre-validation text) and closes with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality gate (Q1, quality-gate spec §3) — an SDK-lane predicate that rejects a
|
|
3
|
+
* schema-VALID output the builder judges too low, so the candidate ladder falls
|
|
4
|
+
* through on *quality*, not just shape.
|
|
5
|
+
*
|
|
6
|
+
* This is the SDK lane only, by construction: a `QualityGate` is a JavaScript
|
|
7
|
+
* function, and a function cannot cross the hosted (jsonb bundle) boundary — the
|
|
8
|
+
* hosted lane's route-declared judge is Q2 (spec §3, boundary B1). See the
|
|
9
|
+
* doc-comment on `RunOptions.qualityGate` in ./route.ts.
|
|
10
|
+
*/
|
|
11
|
+
import type { ProviderId } from "./provider";
|
|
12
|
+
/** The predicate's answer for one candidate output.
|
|
13
|
+
* `ok:false` rejects the output and falls the ladder through (recorded
|
|
14
|
+
* `quality_rejected`); `score`/`reason` are optional and ride telemetry + meta. */
|
|
15
|
+
export interface QualityVerdict {
|
|
16
|
+
/** True accepts the output; false rejects it and falls through. */
|
|
17
|
+
readonly ok: boolean;
|
|
18
|
+
/** Optional 0..1-ish quality score — stamped on `tags.quality_score`, averaged
|
|
19
|
+
* into a bake-off's `valueAccuracy`, and surfaced on `RunMeta.quality.score`. */
|
|
20
|
+
readonly score?: number;
|
|
21
|
+
/** Optional one-line reason — carried in the `quality_rejected` failure
|
|
22
|
+
* message so a stuck engineer sees WHY the output was rejected. */
|
|
23
|
+
readonly reason?: string;
|
|
24
|
+
}
|
|
25
|
+
/** What the gate is told about the candidate whose output it is judging. */
|
|
26
|
+
export interface QualityGateMeta {
|
|
27
|
+
readonly route: string;
|
|
28
|
+
readonly provider: ProviderId;
|
|
29
|
+
readonly model: string;
|
|
30
|
+
/** Position of the serving candidate in the run's effective candidate list. */
|
|
31
|
+
readonly candidateIndex: number;
|
|
32
|
+
/** The attempt_seq the judged output's telemetry row will carry (1-based). */
|
|
33
|
+
readonly attemptSeq: number;
|
|
34
|
+
/** Variant that served this run — null = the route's base config. */
|
|
35
|
+
readonly servedVariant: string | null;
|
|
36
|
+
}
|
|
37
|
+
/** A builder-supplied quality predicate. Sync or async; a throwing gate rejects
|
|
38
|
+
* fail-closed (spec §4.1 step 4). Evaluated ONLY on a schema-valid, non-tool-call
|
|
39
|
+
* output (spec §4.1 steps 6–7). */
|
|
40
|
+
export type QualityGate = (output: unknown, meta: QualityGateMeta) => QualityVerdict | Promise<QualityVerdict>;
|
|
41
|
+
//# sourceMappingURL=quality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/types/quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;mFAEmF;AACnF,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB;qFACiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;uEACmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED;;mCAEmC;AACnC,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,eAAe,KAClB,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Quality gate (Q1, quality-gate spec §3) — an SDK-lane predicate that rejects a
|
|
4
|
+
* schema-VALID output the builder judges too low, so the candidate ladder falls
|
|
5
|
+
* through on *quality*, not just shape.
|
|
6
|
+
*
|
|
7
|
+
* This is the SDK lane only, by construction: a `QualityGate` is a JavaScript
|
|
8
|
+
* function, and a function cannot cross the hosted (jsonb bundle) boundary — the
|
|
9
|
+
* hosted lane's route-declared judge is Q2 (spec §3, boundary B1). See the
|
|
10
|
+
* doc-comment on `RunOptions.qualityGate` in ./route.ts.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/types/route.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { FailureClass } from "./failures";
|
|
6
6
|
import type { ProviderId, SamplingParams, ServiceTier, ToolCall, ToolChoice, ToolDefinition } from "./provider";
|
|
7
|
+
import type { QualityGate } from "./quality";
|
|
7
8
|
export interface CandidateSpec {
|
|
8
9
|
readonly provider: ProviderId;
|
|
9
10
|
readonly model: string;
|
|
@@ -83,6 +84,63 @@ export interface RouteVariant {
|
|
|
83
84
|
*/
|
|
84
85
|
readonly trialOnly?: boolean;
|
|
85
86
|
}
|
|
87
|
+
/** Bake-off objective (RB-1, near-optimal spec §3) — replaces the implicit
|
|
88
|
+
* cost-first gate with a declared one. Additive & optional (S3): an absent
|
|
89
|
+
* `objective:` block ⇒ `quality-first` with no bound ⇒ regret is REPORTED but
|
|
90
|
+
* nothing is proposed until a `max_regret` or `price_ceiling` is declared, so
|
|
91
|
+
* the default flip never actuates silently. */
|
|
92
|
+
export type ObjectiveMode = "quality-first" | "balanced" | "cost-first";
|
|
93
|
+
/** The per-unit-of-work budget a customer considers reasonable. Exactly one of
|
|
94
|
+
* the two units is set (loader-enforced). `usd_per_1k` = max effective cost per
|
|
95
|
+
* 1k quality-passing outputs (the existing effective-$/1k axis); `usd_per_run` =
|
|
96
|
+
* a flat per-run envelope. */
|
|
97
|
+
export interface PriceCeiling {
|
|
98
|
+
readonly usdPer1k?: number;
|
|
99
|
+
readonly usdPerRun?: number;
|
|
100
|
+
}
|
|
101
|
+
export interface RouteObjective {
|
|
102
|
+
readonly mode: ObjectiveMode;
|
|
103
|
+
/** Quality-regret bound ε, on the arm's named quality metric (points, 0..1). */
|
|
104
|
+
readonly maxRegret?: number;
|
|
105
|
+
readonly priceCeiling?: PriceCeiling;
|
|
106
|
+
/** `balanced` only — weight on normalized cost in `regret + lambda·cost_norm`. */
|
|
107
|
+
readonly lambda?: number;
|
|
108
|
+
}
|
|
109
|
+
/** A deterministic value assertion on a bake-off sample's output (RB-1 spec §3).
|
|
110
|
+
* `path` is a JSON pointer (RFC 6901) into the parsed output; `expect` is either
|
|
111
|
+
* a literal to equal (normalized) or a regex the stringified value must match. A
|
|
112
|
+
* route's value_checks give value-accuracy WITHOUT an eval case or a judge. */
|
|
113
|
+
export interface ValueCheck {
|
|
114
|
+
readonly path: string;
|
|
115
|
+
readonly expect: {
|
|
116
|
+
readonly literal: unknown;
|
|
117
|
+
} | {
|
|
118
|
+
readonly regex: string;
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** Bake-off configuration (RB-1 spec §3) — the reference (ceiling) arm and an
|
|
122
|
+
* optional SDK-side capped judge. Additive & optional. */
|
|
123
|
+
export interface BakeoffConfig {
|
|
124
|
+
/** The ceiling arm. `auto` = the strongest declared candidate for the route's
|
|
125
|
+
* task (registry probed conformance; see bakeoff/reference.ts). An explicit
|
|
126
|
+
* `provider/model` MUST be a declared candidate unless `referenceAllowExternal`. */
|
|
127
|
+
readonly reference?: "auto" | {
|
|
128
|
+
readonly provider: ProviderId;
|
|
129
|
+
readonly model: string;
|
|
130
|
+
};
|
|
131
|
+
/** Records that an out-of-candidate reference was deliberately allowed. */
|
|
132
|
+
readonly referenceAllowExternal?: boolean;
|
|
133
|
+
/** The reference is dear by definition — its own replay envelope. */
|
|
134
|
+
readonly referenceEnvelopeUsd?: number;
|
|
135
|
+
/** Opt-in judge for value accuracy where no eval case / value check applies
|
|
136
|
+
* (metric precedence tier 3). The judge model MUST be a declared candidate
|
|
137
|
+
* (#223 F3); every judge call is a metered inference tagged `judge`; capped at
|
|
138
|
+
* `maxSamples` per arm. */
|
|
139
|
+
readonly judge?: {
|
|
140
|
+
readonly model: CandidateSpec;
|
|
141
|
+
readonly maxSamples: number;
|
|
142
|
+
};
|
|
143
|
+
}
|
|
86
144
|
export interface RouteBundle {
|
|
87
145
|
readonly route: string;
|
|
88
146
|
readonly version: number;
|
|
@@ -116,6 +174,13 @@ export interface RouteBundle {
|
|
|
116
174
|
/** Schema-fingerprint cell key, computed at load from outputSchema
|
|
117
175
|
* (registry/fingerprint.ts); null for unstructured routes. */
|
|
118
176
|
readonly fingerprintCell: string | null;
|
|
177
|
+
/** Bake-off objective (RB-1) — absent ⇒ quality-first, no bound (regret shown,
|
|
178
|
+
* nothing proposed). */
|
|
179
|
+
readonly objective?: RouteObjective;
|
|
180
|
+
/** Bake-off reference arm + optional judge (RB-1). */
|
|
181
|
+
readonly bakeoff?: BakeoffConfig;
|
|
182
|
+
/** Deterministic value assertions for bake-off quality (RB-1). */
|
|
183
|
+
readonly valueChecks?: readonly ValueCheck[];
|
|
119
184
|
}
|
|
120
185
|
export interface RunTags {
|
|
121
186
|
readonly run_id?: string;
|
|
@@ -194,6 +259,20 @@ export interface RunOptions {
|
|
|
194
259
|
* the customer's own heartbeat governs the actual resource TTL. */
|
|
195
260
|
readonly ttlSeconds?: number;
|
|
196
261
|
};
|
|
262
|
+
/**
|
|
263
|
+
* Quality gate (Q1, quality-gate spec §3/§4.1) — a builder-supplied predicate
|
|
264
|
+
* evaluated on a schema-VALID output before it is accepted. `ok:false` rejects
|
|
265
|
+
* the output, records a `quality_rejected` attempt (its OWN retry budget under
|
|
266
|
+
* `policy.retries`, default 0), and falls the ladder through — WITHOUT ever
|
|
267
|
+
* entering the repair rung. A throwing gate rejects fail-closed. Tool-call
|
|
268
|
+
* turns and unstructured (`schema: null`) routes are handled per spec §4.1.
|
|
269
|
+
*
|
|
270
|
+
* SDK LANE ONLY: this is a JavaScript function, and a function cannot cross the
|
|
271
|
+
* hosted (jsonb bundle) boundary — the hosted gateway builds `RunOptions` from
|
|
272
|
+
* parsed JSON (`mapToRunOptions`), which can NEVER populate this field. The
|
|
273
|
+
* hosted equivalent is the route-declared judge (Q2). See boundary B1.
|
|
274
|
+
*/
|
|
275
|
+
readonly qualityGate?: QualityGate;
|
|
197
276
|
}
|
|
198
277
|
export interface RunMeta {
|
|
199
278
|
/** Telemetry row id of the serving attempt — the handle rig.feedback()
|
|
@@ -233,6 +312,16 @@ export interface RunMeta {
|
|
|
233
312
|
* present only on a tool-call turn, where `validated` is false and
|
|
234
313
|
* `RunResult.output` is null. The caller runs the tool(s) and continues. */
|
|
235
314
|
readonly toolCalls?: readonly ToolCall[];
|
|
315
|
+
/** Quality-gate verdict on the accepted output (Q1, spec §2/§4.1) — present
|
|
316
|
+
* only when a gate ran on this run. `score` is the predicate's score (null when
|
|
317
|
+
* it returned none); `verdict` is always `"pass"` on a returned run (a `"fail"`
|
|
318
|
+
* fell the ladder through and never reached here); `judgedBy` is null for an
|
|
319
|
+
* SDK predicate (a route-declared model judge, Q2, would name the judge). */
|
|
320
|
+
readonly quality?: {
|
|
321
|
+
readonly score: number | null;
|
|
322
|
+
readonly verdict: "pass" | "fail";
|
|
323
|
+
readonly judgedBy: string | null;
|
|
324
|
+
};
|
|
236
325
|
}
|
|
237
326
|
export interface RunResult {
|
|
238
327
|
readonly output: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/types/route.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/types/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { FailureClass } from "./failures";
|
|
6
6
|
import type { RunTags } from "./route";
|
|
7
|
+
import type { AttemptMetaV1, RunMetaV1 } from "../telemetry/attempt-meta";
|
|
7
8
|
/**
|
|
8
9
|
* The rung a telemetry row occupied on the candidate ladder (routing-console R1
|
|
9
10
|
* review ruling F1). SDK-stamped into `tags.rung` on EVERY row so the dashboard
|
|
@@ -91,6 +92,13 @@ export interface TelemetryRow {
|
|
|
91
92
|
* row carries the index of the candidate being repaired; the raw lane is 0.
|
|
92
93
|
* Optional/additive; null for a pre-0.4.0 row. */
|
|
93
94
|
readonly candidateIndex?: number | null;
|
|
95
|
+
/** The attempt metadata envelope (WI-1, spec §2) — `AttemptMeta@v1`, a
|
|
96
|
+
* metadata-safe rollup of finish reason / refusal / hashes / cost components /
|
|
97
|
+
* context bucket etc. Built by the single producer (`summarizeAttemptMeta`)
|
|
98
|
+
* and persisted to `inferences.meta` (migration 00056). Optional/additive:
|
|
99
|
+
* null when the producer could not build it (byte-identical run result) and
|
|
100
|
+
* for rows recorded before the WI-1a migration. */
|
|
101
|
+
readonly meta?: AttemptMetaV1 | null;
|
|
94
102
|
}
|
|
95
103
|
export interface EnvelopeRow {
|
|
96
104
|
readonly envelopeKey: string;
|
|
@@ -145,6 +153,11 @@ export interface RunRow {
|
|
|
145
153
|
readonly startedAt: string;
|
|
146
154
|
readonly endedAt: string | null;
|
|
147
155
|
readonly status: "running" | "succeeded" | "failed" | "abandoned";
|
|
156
|
+
/** The run metadata envelope (WI-1, spec §3) — `RunMeta@v1`: pipeline sha,
|
|
157
|
+
* config hash, trigger, actor, input hash. Set via `run.start({ meta })`;
|
|
158
|
+
* `pipeline_sha` auto-fills from git when available. Persisted to `runs.meta`
|
|
159
|
+
* (migration 00057). Optional/additive; null when unset or pre-WI-1a. */
|
|
160
|
+
readonly meta?: RunMetaV1 | null;
|
|
148
161
|
}
|
|
149
162
|
/** One ATTEMPT of one operation within a run (Expansion E2 chunk A, ruling c).
|
|
150
163
|
* A fact — one row per attempt, PK (run_id, step_key, attempt_no). Provenance is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/types/telemetry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/types/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-cli.d.ts","sourceRoot":"","sources":["../src/validate-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"validate-cli.d.ts","sourceRoot":"","sources":["../src/validate-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,wBAAgB,cAAc,IAAI,MAAM,CAyDvC"}
|