@tangle-network/agent-eval 0.103.0 → 0.103.2
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/dist/adapters/http.d.ts +3 -3
- package/dist/adapters/langchain.d.ts +3 -3
- package/dist/adapters/otel.d.ts +6 -6
- package/dist/analyst/index.d.ts +11 -11
- package/dist/analyst/index.js +8 -8
- package/dist/{analyze-runs-Cd-A_K4l.d.ts → analyze-runs-DJYpep3L.d.ts} +4 -4
- package/dist/belief-state/index.d.ts +4 -4
- package/dist/belief-state/index.js +3 -3
- package/dist/benchmarks/index.d.ts +3 -3
- package/dist/builder-eval/index.js +4 -4
- package/dist/campaign/index.d.ts +66 -19
- package/dist/campaign/index.js +14 -14
- package/dist/campaign/index.js.map +1 -1
- package/dist/{chunk-FRI6RG3P.js → chunk-2OGPXHOB.js} +3 -3
- package/dist/{chunk-XKA6ZGEY.js → chunk-3PFZBGMR.js} +3 -3
- package/dist/chunk-3PFZBGMR.js.map +1 -0
- package/dist/{chunk-JU6ZX3CX.js → chunk-5PK3626Q.js} +4 -4
- package/dist/{chunk-VDGPPGE3.js → chunk-6HFYGEZ3.js} +3 -3
- package/dist/{chunk-VDGPPGE3.js.map → chunk-6HFYGEZ3.js.map} +1 -1
- package/dist/{chunk-6GT4NI4V.js → chunk-6MFFKPZ4.js} +2 -2
- package/dist/{chunk-REVYNR6C.js → chunk-6SK5VFYK.js} +2 -2
- package/dist/{chunk-IXOV77YF.js → chunk-BBQILVBH.js} +5 -5
- package/dist/{chunk-IH7LYRHL.js → chunk-DBDRR6GF.js} +3 -3
- package/dist/{chunk-D5KBVULY.js → chunk-DRPIZQIT.js} +2 -2
- package/dist/{chunk-4DIJWVUT.js → chunk-DTJ6QUQB.js} +2 -2
- package/dist/{chunk-RQNOLV3I.js → chunk-FOUG2VVS.js} +2 -2
- package/dist/{chunk-CWNP4DV4.js → chunk-FUCQVFMU.js} +2 -2
- package/dist/{chunk-U3IDYATS.js → chunk-GDZAWO2I.js} +5 -5
- package/dist/{chunk-ZOPLCJSY.js → chunk-HZHNRYHK.js} +2 -2
- package/dist/{chunk-UFSG7ACU.js → chunk-JZXGWLK5.js} +1 -1
- package/dist/chunk-JZXGWLK5.js.map +1 -0
- package/dist/{chunk-B2TMQM62.js → chunk-K7QEIHHJ.js} +2 -2
- package/dist/{chunk-6FIAJHCU.js → chunk-LIEJUH2I.js} +6 -6
- package/dist/{chunk-YBIGNSCZ.js → chunk-LNQEP766.js} +2 -2
- package/dist/{chunk-IN3SHQML.js → chunk-LOJ2QVCE.js} +4 -4
- package/dist/{chunk-AIGWQEME.js → chunk-N22ZO7FV.js} +2 -2
- package/dist/{chunk-3BFEG2F6.js → chunk-ONWEPEDO.js} +1 -1
- package/dist/chunk-ONWEPEDO.js.map +1 -0
- package/dist/{chunk-L5TVEZFT.js → chunk-QRVS7MX4.js} +3 -3
- package/dist/{chunk-2MLIEQSN.js → chunk-RPDDVKI7.js} +2 -2
- package/dist/{chunk-SBCB6VZY.js → chunk-TT4KNT67.js} +2 -2
- package/dist/{chunk-7RBJANJD.js → chunk-V7HNA47Z.js} +5 -5
- package/dist/{chunk-2NSLDY4B.js → chunk-VK6HBGAE.js} +3 -3
- package/dist/{chunk-NF7OZ4J7.js → chunk-X6NIXVOD.js} +2 -2
- package/dist/{chunk-ABOIVNXL.js → chunk-XJYR7XFV.js} +2 -2
- package/dist/chunk-XJYR7XFV.js.map +1 -0
- package/dist/{chunk-HRGUJTER.js → chunk-XMSYF4A7.js} +2 -2
- package/dist/{chunk-HRGUJTER.js.map → chunk-XMSYF4A7.js.map} +1 -1
- package/dist/{chunk-HV5PBTJF.js → chunk-Z7FK73R5.js} +5 -5
- package/dist/chunk-Z7FK73R5.js.map +1 -0
- package/dist/{chunk-NTVWIH24.js → chunk-ZKIL3VOD.js} +5 -5
- package/dist/chunk-ZKIL3VOD.js.map +1 -0
- package/dist/cli.js +3 -3
- package/dist/{code-agent-session-Ce-9u7YM.d.ts → code-agent-session-rnJKlqmT.d.ts} +1 -1
- package/dist/contract/index.d.ts +22 -22
- package/dist/contract/index.js +15 -15
- package/dist/{control-C8RmK9H4.d.ts → control-B8UthSBL.d.ts} +2 -2
- package/dist/control.d.ts +5 -5
- package/dist/control.js +4 -4
- package/dist/{corpus-CiSzzLa5.d.ts → corpus-eBVwhCp1.d.ts} +1 -1
- package/dist/{dataset-BbGkaN2I.d.ts → dataset-DS7ytHZU.d.ts} +1 -1
- package/dist/{default-registry-ZhqsTr4K.d.ts → default-registry-BswHCXnU.d.ts} +2 -2
- package/dist/diagnose.d.ts +5 -5
- package/dist/diagnose.js +5 -5
- package/dist/{errors-CzMUYo7b.d.ts → errors-oeQrLqXC.d.ts} +4 -0
- package/dist/{feedback-trajectory-BxY0cKfs.d.ts → feedback-trajectory-C9KCo8ag.d.ts} +1 -1
- package/dist/fuzz.js +1 -1
- package/dist/{gepa-DeyPTlvx.d.ts → gepa-Dn0gtj9n.d.ts} +27 -2
- package/dist/governance/index.d.ts +4 -4
- package/dist/hosted/index.d.ts +6 -6
- package/dist/{index-B-bFgiAF.d.ts → index-C2CC_dry.d.ts} +1 -1
- package/dist/index.d.ts +41 -37
- package/dist/index.js +26 -26
- package/dist/index.js.map +1 -1
- package/dist/{insight-report-k0sRTzKg.d.ts → insight-report-B4xrdwEK.d.ts} +2 -2
- package/dist/{integrity-D2t12mMw.d.ts → integrity-DqGZg3st.d.ts} +1 -1
- package/dist/{judge-calibration-0p2QcWNE.d.ts → judge-calibration-7C-IDmKr.d.ts} +3 -0
- package/dist/{kind-factory-D0nk7AKV.d.ts → kind-factory-DvIGo_cP.d.ts} +1 -1
- package/dist/{llm-client-Bj7g0rqu.d.ts → llm-client-DyqEH4jH.d.ts} +1 -1
- package/dist/meta-eval/index.d.ts +5 -5
- package/dist/meta-eval/index.js +4 -4
- package/dist/{multi-layer-verifier-DUZXrPDA.d.ts → multi-layer-verifier-CI4jdX-q.d.ts} +3 -0
- package/dist/multishot/index.d.ts +3 -3
- package/dist/openapi.json +1 -1
- package/dist/pipelines/index.d.ts +1 -1
- package/dist/pipelines/index.js +4 -4
- package/dist/{policy-edit-BDQzzsBU.d.ts → policy-edit-DQUXYMDm.d.ts} +3 -3
- package/dist/{pre-registration-mWG2w8d-.d.ts → pre-registration-D8Zr8-rr.d.ts} +4 -4
- package/dist/product-benchmark/index.d.ts +2 -2
- package/dist/product-benchmark/index.js +2 -2
- package/dist/{provenance-BhJm32vN.d.ts → provenance-phkRBl4h.d.ts} +21 -5
- package/dist/{query-B7GGjRox.d.ts → query-0aTmbmQe.d.ts} +1 -0
- package/dist/{red-team-BWdoyleI.d.ts → red-team-KmmiqBlY.d.ts} +1 -1
- package/dist/{release-report-BQ1Ziyu-.d.ts → release-report-DeJpsBiA.d.ts} +6 -3
- package/dist/reporting.d.ts +8 -8
- package/dist/reporting.js +5 -5
- package/dist/{researcher-B_ODTAJs.d.ts → researcher-Wc7dx6GM.d.ts} +4 -4
- package/dist/rl.d.ts +12 -12
- package/dist/rl.js +11 -11
- package/dist/{rubric-predictive-validity-0MdjTt8R.d.ts → rubric-predictive-validity-DPnyG-CE.d.ts} +1 -1
- package/dist/run-campaign-PNHAJIT2.js +12 -0
- package/dist/{run-record-MRdJ-Kq2.d.ts → run-record-I-Z3JNvO.d.ts} +4 -1
- package/dist/{runtime-trajectory-8w0_jmtR.d.ts → runtime-trajectory-iW9IhV3e.d.ts} +1 -1
- package/dist/{semantic-concept-judge-D-IlH5v1.d.ts → semantic-concept-judge-BmNZPB_j.d.ts} +4 -4
- package/dist/{statistics-xP-cWc5k.d.ts → statistics-D88peojY.d.ts} +1 -1
- package/dist/{summary-report-C0nnxOD8.d.ts → summary-report-QMZVe3P-.d.ts} +1 -1
- package/dist/traces.d.ts +4 -4
- package/dist/traces.js +8 -8
- package/dist/{types-Dz9cKF0g.d.ts → types-D1ytG0Yg.d.ts} +2 -2
- package/dist/{types-DFI_Z-ZL.d.ts → types-Mh6I44ub.d.ts} +1 -1
- package/dist/wire/index.d.ts +3 -3
- package/dist/wire/index.js +3 -3
- package/dist/workflow/index.d.ts +11 -11
- package/dist/workflow/index.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-3BFEG2F6.js.map +0 -1
- package/dist/chunk-ABOIVNXL.js.map +0 -1
- package/dist/chunk-HV5PBTJF.js.map +0 -1
- package/dist/chunk-NTVWIH24.js.map +0 -1
- package/dist/chunk-UFSG7ACU.js.map +0 -1
- package/dist/chunk-XKA6ZGEY.js.map +0 -1
- package/dist/run-campaign-2L4WCJHR.js +0 -12
- /package/dist/{chunk-FRI6RG3P.js.map → chunk-2OGPXHOB.js.map} +0 -0
- /package/dist/{chunk-JU6ZX3CX.js.map → chunk-5PK3626Q.js.map} +0 -0
- /package/dist/{chunk-6GT4NI4V.js.map → chunk-6MFFKPZ4.js.map} +0 -0
- /package/dist/{chunk-REVYNR6C.js.map → chunk-6SK5VFYK.js.map} +0 -0
- /package/dist/{chunk-IXOV77YF.js.map → chunk-BBQILVBH.js.map} +0 -0
- /package/dist/{chunk-IH7LYRHL.js.map → chunk-DBDRR6GF.js.map} +0 -0
- /package/dist/{chunk-D5KBVULY.js.map → chunk-DRPIZQIT.js.map} +0 -0
- /package/dist/{chunk-4DIJWVUT.js.map → chunk-DTJ6QUQB.js.map} +0 -0
- /package/dist/{chunk-RQNOLV3I.js.map → chunk-FOUG2VVS.js.map} +0 -0
- /package/dist/{chunk-CWNP4DV4.js.map → chunk-FUCQVFMU.js.map} +0 -0
- /package/dist/{chunk-U3IDYATS.js.map → chunk-GDZAWO2I.js.map} +0 -0
- /package/dist/{chunk-ZOPLCJSY.js.map → chunk-HZHNRYHK.js.map} +0 -0
- /package/dist/{chunk-B2TMQM62.js.map → chunk-K7QEIHHJ.js.map} +0 -0
- /package/dist/{chunk-6FIAJHCU.js.map → chunk-LIEJUH2I.js.map} +0 -0
- /package/dist/{chunk-YBIGNSCZ.js.map → chunk-LNQEP766.js.map} +0 -0
- /package/dist/{chunk-IN3SHQML.js.map → chunk-LOJ2QVCE.js.map} +0 -0
- /package/dist/{chunk-AIGWQEME.js.map → chunk-N22ZO7FV.js.map} +0 -0
- /package/dist/{chunk-L5TVEZFT.js.map → chunk-QRVS7MX4.js.map} +0 -0
- /package/dist/{chunk-2MLIEQSN.js.map → chunk-RPDDVKI7.js.map} +0 -0
- /package/dist/{chunk-SBCB6VZY.js.map → chunk-TT4KNT67.js.map} +0 -0
- /package/dist/{chunk-7RBJANJD.js.map → chunk-V7HNA47Z.js.map} +0 -0
- /package/dist/{chunk-2NSLDY4B.js.map → chunk-VK6HBGAE.js.map} +0 -0
- /package/dist/{chunk-NF7OZ4J7.js.map → chunk-X6NIXVOD.js.map} +0 -0
- /package/dist/{run-campaign-2L4WCJHR.js.map → run-campaign-PNHAJIT2.js.map} +0 -0
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
AgentEvalError,
|
|
7
7
|
CaptureIntegrityError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ONWEPEDO.js";
|
|
9
9
|
|
|
10
10
|
// src/llm-client.ts
|
|
11
11
|
var LlmCallError = class extends AgentEvalError {
|
|
@@ -542,4 +542,4 @@ export {
|
|
|
542
542
|
probeLlm,
|
|
543
543
|
LlmClient
|
|
544
544
|
};
|
|
545
|
-
//# sourceMappingURL=chunk-
|
|
545
|
+
//# sourceMappingURL=chunk-FUCQVFMU.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
summarizeBackendIntegrity
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3PFZBGMR.js";
|
|
4
4
|
import {
|
|
5
5
|
paretoChart
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6MFFKPZ4.js";
|
|
7
7
|
import {
|
|
8
8
|
cohensD,
|
|
9
9
|
pairedBootstrap,
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
pearsonR,
|
|
13
13
|
requiredSampleSize,
|
|
14
14
|
spearmanR
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XMSYF4A7.js";
|
|
16
16
|
import {
|
|
17
17
|
llmSpans
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-JZXGWLK5.js";
|
|
19
19
|
|
|
20
20
|
// src/contamination-guard.ts
|
|
21
21
|
function checkCanaries(output, scenarios) {
|
|
@@ -822,4 +822,4 @@ export {
|
|
|
822
822
|
HoldoutAuditor,
|
|
823
823
|
analyzeRuns
|
|
824
824
|
};
|
|
825
|
-
//# sourceMappingURL=chunk-
|
|
825
|
+
//# sourceMappingURL=chunk-GDZAWO2I.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-TVVP3ZZQ.js";
|
|
4
4
|
import {
|
|
5
5
|
ConfigError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ONWEPEDO.js";
|
|
7
7
|
|
|
8
8
|
// src/sandbox-harness.ts
|
|
9
9
|
var vitestTestParser = {
|
|
@@ -303,4 +303,4 @@ export {
|
|
|
303
303
|
SandboxHarness,
|
|
304
304
|
runTestGradedScenario
|
|
305
305
|
};
|
|
306
|
-
//# sourceMappingURL=chunk-
|
|
306
|
+
//# sourceMappingURL=chunk-HZHNRYHK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/trace/query.ts"],"sourcesContent":["/**\n * Typed query helpers over TraceStore.\n *\n * Not a full SQL engine — a minimal, composable set of operators that\n * cover the canned-pipeline use cases. For ad-hoc analytics, persist to\n * NDJSON and point DuckDB at it; the schema is stable so external SQL\n * tooling works out of the box.\n */\n\nimport type { FailureClass, JudgeSpan, LlmSpan, Run, ToolSpan } from './schema'\nimport { isJudgeSpan, isLlmSpan, isToolSpan } from './schema'\nimport type { TraceStore } from './store'\n\nexport async function runsForScenario(store: TraceStore, scenarioId: string): Promise<Run[]> {\n return store.listRuns({ scenarioId })\n}\n\nexport async function llmSpans(store: TraceStore, runId?: string): Promise<LlmSpan[]> {\n const spans = await store.spans({ runId, kind: 'llm' })\n return spans.filter(isLlmSpan)\n}\n\nexport async function toolSpans(\n store: TraceStore,\n runId?: string,\n toolName?: string,\n): Promise<ToolSpan[]> {\n const spans = await store.spans({ runId, kind: 'tool', toolName })\n return spans.filter(isToolSpan)\n}\n\n/** Query judge-kind spans from the trace store, optionally scoped to a single run. */\nexport async function judgeSpans(store: TraceStore, runId?: string): Promise<JudgeSpan[]> {\n const spans = await store.spans({ runId, kind: 'judge' })\n return spans.filter(isJudgeSpan)\n}\n\n/** Group spans by any key selector. */\nexport function groupBy<T, K extends string | number>(items: T[], key: (t: T) => K): Map<K, T[]> {\n const map = new Map<K, T[]>()\n for (const item of items) {\n const k = key(item)\n let bucket = map.get(k)\n if (!bucket) {\n bucket = []\n map.set(k, bucket)\n }\n bucket.push(item)\n }\n return map\n}\n\n/** Hash tool arguments to an orderless-key-stable string for de-duplication. */\nexport function argHash(args: unknown): string {\n return stableStringify(args)\n}\n\nfunction stableStringify(value: unknown): string {\n // Must ALWAYS return a string: JSON.stringify(undefined) — and stringify of\n // functions/symbols — yields the JS value `undefined`, which would make\n // argHash return a non-string and silently break the de-dup keys behind\n // stuck-loop and failure-cluster.\n if (value === undefined) return 'undefined'\n if (value === null || typeof value !== 'object') return JSON.stringify(value) ?? 'undefined'\n if (Array.isArray(value)) return `[${value.map(stableStringify).join(',')}]`\n // Drop undefined-valued keys to match JSON.stringify semantics, so\n // `{a:1}` and `{a:1,b:undefined}` hash identically.\n const obj = value as Record<string, unknown>\n const keys = Object.keys(obj)\n .filter((k) => obj[k] !== undefined)\n .sort()\n const parts = keys.map((k) => `${JSON.stringify(k)}:${stableStringify(obj[k])}`)\n return `{${parts.join(',')}}`\n}\n\n/** Sum an LLM-span array into aggregate token + cost. */\nexport function aggregateLlm(spans: LlmSpan[]): {\n inputTokens: number\n outputTokens: number\n cachedTokens: number\n reasoningTokens: number\n costUsd: number\n} {\n return spans.reduce(\n (acc, s) => ({\n inputTokens: acc.inputTokens + (s.inputTokens ?? 0),\n outputTokens: acc.outputTokens + (s.outputTokens ?? 0),\n cachedTokens: acc.cachedTokens + (s.cachedTokens ?? 0),\n // reasoningTokens is on LlmSpan but was omitted here — reasoning usage was\n // invisible to any cost/perf analysis reading this aggregate.\n reasoningTokens: acc.reasoningTokens + (s.reasoningTokens ?? 0),\n costUsd: acc.costUsd + (s.costUsd ?? 0),\n }),\n { inputTokens: 0, outputTokens: 0, cachedTokens: 0, reasoningTokens: 0, costUsd: 0 },\n )\n}\n\n/** Pick the outcome's failure class when present, else derive 'success' from run status. */\nexport function runFailureClass(run: Run): FailureClass {\n if (run.outcome?.failureClass) return run.outcome.failureClass\n if (run.status === 'completed' && run.outcome?.pass !== false) return 'success'\n if (run.status === 'aborted') return 'budget_exceeded'\n return 'unknown'\n}\n"],"mappings":";;;;;;;AAaA,eAAsB,gBAAgB,OAAmB,YAAoC;AAC3F,SAAO,MAAM,SAAS,EAAE,WAAW,CAAC;AACtC;AAEA,eAAsB,SAAS,OAAmB,OAAoC;AACpF,QAAM,QAAQ,MAAM,MAAM,MAAM,EAAE,OAAO,MAAM,MAAM,CAAC;AACtD,SAAO,MAAM,OAAO,SAAS;AAC/B;AAEA,eAAsB,UACpB,OACA,OACA,UACqB;AACrB,QAAM,QAAQ,MAAM,MAAM,MAAM,EAAE,OAAO,MAAM,QAAQ,SAAS,CAAC;AACjE,SAAO,MAAM,OAAO,UAAU;AAChC;AAGA,eAAsB,WAAW,OAAmB,OAAsC;AACxF,QAAM,QAAQ,MAAM,MAAM,MAAM,EAAE,OAAO,MAAM,QAAQ,CAAC;AACxD,SAAO,MAAM,OAAO,WAAW;AACjC;AAGO,SAAS,QAAsC,OAAY,KAA+B;AAC/F,QAAM,MAAM,oBAAI,IAAY;AAC5B,aAAW,QAAQ,OAAO;AACxB,UAAM,IAAI,IAAI,IAAI;AAClB,QAAI,SAAS,IAAI,IAAI,CAAC;AACtB,QAAI,CAAC,QAAQ;AACX,eAAS,CAAC;AACV,UAAI,IAAI,GAAG,MAAM;AAAA,IACnB;AACA,WAAO,KAAK,IAAI;AAAA,EAClB;AACA,SAAO;AACT;AAGO,SAAS,QAAQ,MAAuB;AAC7C,SAAO,gBAAgB,IAAI;AAC7B;AAEA,SAAS,gBAAgB,OAAwB;AAK/C,MAAI,UAAU,OAAW,QAAO;AAChC,MAAI,UAAU,QAAQ,OAAO,UAAU,SAAU,QAAO,KAAK,UAAU,KAAK,KAAK;AACjF,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,IAAI,MAAM,IAAI,eAAe,EAAE,KAAK,GAAG,CAAC;AAGzE,QAAM,MAAM;AACZ,QAAM,OAAO,OAAO,KAAK,GAAG,EACzB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,MAAS,EAClC,KAAK;AACR,QAAM,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,KAAK,UAAU,CAAC,CAAC,IAAI,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE;AAC/E,SAAO,IAAI,MAAM,KAAK,GAAG,CAAC;AAC5B;AAGO,SAAS,aAAa,OAM3B;AACA,SAAO,MAAM;AAAA,IACX,CAAC,KAAK,OAAO;AAAA,MACX,aAAa,IAAI,eAAe,EAAE,eAAe;AAAA,MACjD,cAAc,IAAI,gBAAgB,EAAE,gBAAgB;AAAA,MACpD,cAAc,IAAI,gBAAgB,EAAE,gBAAgB;AAAA;AAAA;AAAA,MAGpD,iBAAiB,IAAI,mBAAmB,EAAE,mBAAmB;AAAA,MAC7D,SAAS,IAAI,WAAW,EAAE,WAAW;AAAA,IACvC;AAAA,IACA,EAAE,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,GAAG,SAAS,EAAE;AAAA,EACrF;AACF;AAGO,SAAS,gBAAgB,KAAwB;AACtD,MAAI,IAAI,SAAS,aAAc,QAAO,IAAI,QAAQ;AAClD,MAAI,IAAI,WAAW,eAAe,IAAI,SAAS,SAAS,MAAO,QAAO;AACtE,MAAI,IAAI,WAAW,UAAW,QAAO;AACrC,SAAO;AACT;","names":[]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-YEHAEDUD.js";
|
|
5
5
|
import {
|
|
6
6
|
validateRunRecord
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VK6HBGAE.js";
|
|
8
8
|
import {
|
|
9
9
|
TraceEmitter
|
|
10
10
|
} from "./chunk-TVVP3ZZQ.js";
|
|
@@ -610,4 +610,4 @@ export {
|
|
|
610
610
|
runProposeReviewAsControlLoop,
|
|
611
611
|
controlFailureClassFromVerification
|
|
612
612
|
};
|
|
613
|
-
//# sourceMappingURL=chunk-
|
|
613
|
+
//# sourceMappingURL=chunk-K7QEIHHJ.js.map
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assertLlmRoute
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FUCQVFMU.js";
|
|
4
4
|
import {
|
|
5
5
|
researchReport
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6MFFKPZ4.js";
|
|
7
7
|
import {
|
|
8
8
|
RunIntegrityError,
|
|
9
9
|
assertRunCaptured
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TT4KNT67.js";
|
|
11
11
|
import {
|
|
12
12
|
FileSystemRawProviderSink
|
|
13
13
|
} from "./chunk-PC4UYEBM.js";
|
|
14
14
|
import {
|
|
15
15
|
validateRunRecord
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-VK6HBGAE.js";
|
|
17
17
|
import {
|
|
18
18
|
TraceEmitter
|
|
19
19
|
} from "./chunk-TVVP3ZZQ.js";
|
|
20
20
|
import {
|
|
21
21
|
buildAgentProfileCell,
|
|
22
22
|
verifyAgentProfileCell
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-XJYR7XFV.js";
|
|
24
24
|
import {
|
|
25
25
|
canonicalize,
|
|
26
26
|
hashJson
|
|
@@ -354,4 +354,4 @@ function defaultRunId(params) {
|
|
|
354
354
|
export {
|
|
355
355
|
runEvalCampaign
|
|
356
356
|
};
|
|
357
|
-
//# sourceMappingURL=chunk-
|
|
357
|
+
//# sourceMappingURL=chunk-LIEJUH2I.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NotFoundError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ONWEPEDO.js";
|
|
4
4
|
|
|
5
5
|
// src/trace/otlp-attributes.ts
|
|
6
6
|
var OPENINFERENCE_SPAN_KIND = "openinference.span.kind";
|
|
@@ -1031,4 +1031,4 @@ export {
|
|
|
1031
1031
|
buildTraceAnalystTools,
|
|
1032
1032
|
traceAnalystFunctionGroup
|
|
1033
1033
|
};
|
|
1034
|
-
//# sourceMappingURL=chunk-
|
|
1034
|
+
//# sourceMappingURL=chunk-LNQEP766.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseFindingSubject
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2OGPXHOB.js";
|
|
4
4
|
import {
|
|
5
5
|
validateAgentProfileCell
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XJYR7XFV.js";
|
|
7
7
|
import {
|
|
8
8
|
canonicalize
|
|
9
9
|
} from "./chunk-VSMTAMNK.js";
|
|
10
10
|
import {
|
|
11
11
|
ValidationError
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ONWEPEDO.js";
|
|
13
13
|
|
|
14
14
|
// src/analyst/steer-firewall.ts
|
|
15
15
|
var OBSERVABLE_KINDS = /* @__PURE__ */ new Set([
|
|
@@ -661,4 +661,4 @@ export {
|
|
|
661
661
|
aggregateRunScore,
|
|
662
662
|
clamp012 as clamp01
|
|
663
663
|
};
|
|
664
|
-
//# sourceMappingURL=chunk-
|
|
664
|
+
//# sourceMappingURL=chunk-LOJ2QVCE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pearsonR
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XMSYF4A7.js";
|
|
4
4
|
|
|
5
5
|
// src/rl/verifiable-reward.ts
|
|
6
6
|
var DEFAULT_DETERMINISTIC_LAYERS = /* @__PURE__ */ new Set([
|
|
@@ -309,4 +309,4 @@ export {
|
|
|
309
309
|
filterDeterministicallyRewarded,
|
|
310
310
|
detectRewardHacking
|
|
311
311
|
};
|
|
312
|
-
//# sourceMappingURL=chunk-
|
|
312
|
+
//# sourceMappingURL=chunk-N22ZO7FV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts"],"sourcesContent":["/**\n * Error taxonomy for `@tangle-network/agent-eval`.\n *\n * Every error this package throws as part of its *public contract* extends\n * `AgentEvalError`. Consumers can pattern-match by `instanceof <Subclass>` or\n * by the stable string `code` carried on the base class.\n *\n * The codes are stable across minor versions; new codes can be added, but\n * existing codes never change meaning. New subclasses are non-breaking.\n *\n * Internal invariant guards (`throw new Error('this should never happen')`)\n * remain plain `Error`s on purpose — they're programmer-mistake assertions,\n * not consumer-catchable contract failures.\n */\n\nexport type AgentEvalErrorCode =\n | 'validation'\n | 'not_found'\n | 'config'\n | 'capture_integrity'\n | 'judge'\n | 'verification'\n | 'replay'\n | 'backend_integrity'\n | 'profile_matrix'\n\n/**\n * Base class for every contract error this package throws — carries the stable\n * string `code` taxonomy so consumers can `instanceof`-match or switch on `code`.\n */\nexport class AgentEvalError extends Error {\n /** Stable string code. Survives minification; safe to switch on. */\n readonly code: AgentEvalErrorCode\n\n constructor(code: AgentEvalErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options)\n this.name = this.constructor.name\n this.code = code\n }\n}\n\n/** Caller passed invalid arguments (out of range, mutually-exclusive options, bad shape). */\nexport class ValidationError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('validation', message, options)\n }\n}\n\n/** A named resource (run, span, rubric, scenario, dataset row, route) does not exist. */\nexport class NotFoundError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('not_found', message, options)\n }\n}\n\n/** Configuration missing or malformed (`HOME` unset, required image not supplied, env var absent). */\nexport class ConfigError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('config', message, options)\n }\n}\n\n/**\n * A run is missing the artifacts a launch-grade check requires:\n * raw HTTP capture absent, no LLM spans, route assertion failed, run-end\n * assertion tripped. Block ship on this; do not catch and move on.\n */\nexport class CaptureIntegrityError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('capture_integrity', message, options)\n }\n}\n\n/** A judge call failed in a way that's not retryable: schema parse failure, bad rubric, conflicting dimensions. */\nexport class JudgeError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('judge', message, options)\n }\n}\n\n/** A verifier signalled a hard failure (compile, test, schema) — distinct from a low judge score. */\nexport class VerificationError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('verification', message, options)\n }\n}\n\n/** Replay cache cannot satisfy a request: miss with no fallback, sink lacks list(), unsupported URL. */\nexport class ReplayError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('replay', message, options)\n }\n}\n"],"mappings":";AA8BO,IAAM,iBAAN,cAA6B,MAAM;AAAA;AAAA,EAE/B;AAAA,EAET,YAAY,MAA0B,SAAiB,SAA+B;AACpF,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,KAAK,YAAY;AAC7B,SAAK,OAAO;AAAA,EACd;AACF;AAGO,IAAM,kBAAN,cAA8B,eAAe;AAAA,EAClD,YAAY,SAAiB,SAA+B;AAC1D,UAAM,cAAc,SAAS,OAAO;AAAA,EACtC;AACF;AAGO,IAAM,gBAAN,cAA4B,eAAe;AAAA,EAChD,YAAY,SAAiB,SAA+B;AAC1D,UAAM,aAAa,SAAS,OAAO;AAAA,EACrC;AACF;AAGO,IAAM,cAAN,cAA0B,eAAe;AAAA,EAC9C,YAAY,SAAiB,SAA+B;AAC1D,UAAM,UAAU,SAAS,OAAO;AAAA,EAClC;AACF;AAOO,IAAM,wBAAN,cAAoC,eAAe;AAAA,EACxD,YAAY,SAAiB,SAA+B;AAC1D,UAAM,qBAAqB,SAAS,OAAO;AAAA,EAC7C;AACF;AAGO,IAAM,aAAN,cAAyB,eAAe;AAAA,EAC7C,YAAY,SAAiB,SAA+B;AAC1D,UAAM,SAAS,SAAS,OAAO;AAAA,EACjC;AACF;AAGO,IAAM,oBAAN,cAAgC,eAAe;AAAA,EACpD,YAAY,SAAiB,SAA+B;AAC1D,UAAM,gBAAgB,SAAS,OAAO;AAAA,EACxC;AACF;AAGO,IAAM,cAAN,cAA0B,eAAe;AAAA,EAC9C,YAAY,SAAiB,SAA+B;AAC1D,UAAM,UAAU,SAAS,OAAO;AAAA,EAClC;AACF;","names":[]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
AnalystRegistry,
|
|
3
3
|
DEFAULT_TRACE_ANALYST_KINDS,
|
|
4
4
|
createTraceAnalystKind
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-2OGPXHOB.js";
|
|
6
6
|
import {
|
|
7
7
|
makeFinding
|
|
8
8
|
} from "./chunk-45EEMHTC.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
LLM_INPUT_TOKEN_ATTR_KEYS,
|
|
11
11
|
LLM_OUTPUT_TOKEN_ATTR_KEYS,
|
|
12
12
|
TOOL_NAME_ATTR_KEYS
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LNQEP766.js";
|
|
14
14
|
|
|
15
15
|
// src/trace-analyst/behavioral-metrics.ts
|
|
16
16
|
var INPUT_GROWTH_FACTOR = 3;
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
behavioralAnalyst,
|
|
205
205
|
buildDefaultAnalystRegistry
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-QRVS7MX4.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
OtlpFileTraceStore,
|
|
3
3
|
TraceFileMissingError,
|
|
4
4
|
buildTraceAnalystTools
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LNQEP766.js";
|
|
6
6
|
|
|
7
7
|
// src/trace-analyst/prompts.ts
|
|
8
8
|
var TRACE_ANALYST_ACTOR_DESCRIPTION = `You answer questions about an OTLP-shaped JSONL trace dataset using the trace tools provided in the \`traces\` namespace.
|
|
@@ -198,4 +198,4 @@ export {
|
|
|
198
198
|
TRACE_ANALYST_SUBAGENT_DESCRIPTION,
|
|
199
199
|
analyzeTraces
|
|
200
200
|
};
|
|
201
|
-
//# sourceMappingURL=chunk-
|
|
201
|
+
//# sourceMappingURL=chunk-RPDDVKI7.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CaptureIntegrityError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ONWEPEDO.js";
|
|
4
4
|
|
|
5
5
|
// src/trace/integrity.ts
|
|
6
6
|
var RunIntegrityError = class extends CaptureIntegrityError {
|
|
@@ -121,4 +121,4 @@ export {
|
|
|
121
121
|
assertRunCaptured,
|
|
122
122
|
throwIfRunIncomplete
|
|
123
123
|
};
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-TT4KNT67.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
analyzeTraces
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RPDDVKI7.js";
|
|
4
4
|
import {
|
|
5
5
|
LLM_CACHED_TOKEN_ATTR_KEYS,
|
|
6
6
|
LLM_COST_ATTR_KEYS,
|
|
@@ -19,21 +19,21 @@ import {
|
|
|
19
19
|
projectOtlpFlatLine,
|
|
20
20
|
spanEpochMillis,
|
|
21
21
|
traceSpanKindToOpenInferenceKind
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-LNQEP766.js";
|
|
23
23
|
import {
|
|
24
24
|
defaultProviderRedactor,
|
|
25
25
|
providerFromBaseUrl
|
|
26
26
|
} from "./chunk-PC4UYEBM.js";
|
|
27
27
|
import {
|
|
28
28
|
validateRunRecord
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-VK6HBGAE.js";
|
|
30
30
|
import {
|
|
31
31
|
canonicalize,
|
|
32
32
|
hashJson
|
|
33
33
|
} from "./chunk-VSMTAMNK.js";
|
|
34
34
|
import {
|
|
35
35
|
ReplayError
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-ONWEPEDO.js";
|
|
37
37
|
|
|
38
38
|
// src/trace-analyst/hook.ts
|
|
39
39
|
var DEFAULT_QUESTION = "Summarise what happened in this run. Surface any failure modes, surprising findings, or evidence that the run's verdict is wrong.";
|
|
@@ -1954,4 +1954,4 @@ export {
|
|
|
1954
1954
|
createReplayFetch,
|
|
1955
1955
|
iterateRawCalls
|
|
1956
1956
|
};
|
|
1957
|
-
//# sourceMappingURL=chunk-
|
|
1957
|
+
//# sourceMappingURL=chunk-V7HNA47Z.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
validateAgentProfileCell
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XJYR7XFV.js";
|
|
4
4
|
import {
|
|
5
5
|
ValidationError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ONWEPEDO.js";
|
|
7
7
|
|
|
8
8
|
// src/run-record.ts
|
|
9
9
|
var MANDATORY_TOP_LEVEL = [
|
|
@@ -246,4 +246,4 @@ export {
|
|
|
246
246
|
roundTripRunRecord,
|
|
247
247
|
modelHasSnapshot
|
|
248
248
|
};
|
|
249
|
-
//# sourceMappingURL=chunk-
|
|
249
|
+
//# sourceMappingURL=chunk-VK6HBGAE.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pearsonR,
|
|
3
3
|
spearmanR
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XMSYF4A7.js";
|
|
5
5
|
|
|
6
6
|
// src/meta-eval/rubric-predictive-validity.ts
|
|
7
7
|
async function rubricPredictiveValidity(input) {
|
|
@@ -133,4 +133,4 @@ function makeRng(seed) {
|
|
|
133
133
|
export {
|
|
134
134
|
rubricPredictiveValidity
|
|
135
135
|
};
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-X6NIXVOD.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-VSMTAMNK.js";
|
|
4
4
|
import {
|
|
5
5
|
ValidationError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ONWEPEDO.js";
|
|
7
7
|
|
|
8
8
|
// src/agent-profile-cell.ts
|
|
9
9
|
var AgentProfileCellValidationError = class extends ValidationError {
|
|
@@ -314,4 +314,4 @@ export {
|
|
|
314
314
|
toAgentProfileJson,
|
|
315
315
|
buildAgentInterfaceProfileCell
|
|
316
316
|
};
|
|
317
|
-
//# sourceMappingURL=chunk-
|
|
317
|
+
//# sourceMappingURL=chunk-XJYR7XFV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/agent-profile-cell.ts"],"sourcesContent":["import type { AgentProfile } from '@tangle-network/agent-interface'\nimport { ValidationError } from './errors'\nimport { hashJson } from './pre-registration'\n\nexport type AgentProfileCellSchemaVersion = 'agent-profile-cell/v1'\n\nexport type AgentProfileJson =\n | string\n | number\n | boolean\n | null\n | AgentProfileJson[]\n | { [key: string]: AgentProfileJson }\n\nexport type AgentProfileDimensionValue = string | number | boolean | null\n\nexport interface AgentProfileSource {\n /** Runtime/profile contract being fingerprinted, e.g. `agent-interface-profile`. */\n kind: string\n /** sha256 over the canonical source profile object. */\n hash: string\n}\n\nexport interface AgentProfileSourceInput {\n kind: string\n /** Precomputed sha256 for callers that already sign their profile artifact. */\n hash?: string\n /** Full canonical runtime profile; hashed and then discarded from the cell. */\n profile?: AgentProfileJson\n}\n\nexport interface AgentProfileHarness {\n id: string\n version?: string\n hash?: string\n}\n\nexport interface AgentProfileCellInput {\n profileId: string\n sourceProfile: AgentProfileSourceInput\n harness?: AgentProfileHarness\n model?: string\n promptHash?: string\n dimensions?: Record<string, AgentProfileDimensionValue>\n}\n\nexport interface AgentProfileCell {\n schemaVersion: AgentProfileCellSchemaVersion\n cellId: string\n profileId: string\n sourceProfile: AgentProfileSource\n harness?: AgentProfileHarness\n model?: string\n promptHash?: string\n dimensions?: Record<string, AgentProfileDimensionValue>\n}\n\nexport class AgentProfileCellValidationError extends ValidationError {\n readonly path: string\n constructor(message: string, path = '') {\n super(path ? `${message} (at ${path})` : message)\n this.path = path\n }\n}\n\nconst SHA256_HEX = /^[0-9a-f]{64}$/\nconst CELL_ID = /^agent-profile-cell:sha256:[0-9a-f]{64}$/\n\nexport async function buildAgentProfileCell(\n input: AgentProfileCellInput,\n): Promise<AgentProfileCell> {\n const material = await normalizeAgentProfileCellInput(input)\n const cellId = `agent-profile-cell:sha256:${await hashJson(material)}`\n return { ...material, cellId }\n}\n\nexport function agentProfileCellHashMaterial(\n cell: AgentProfileCell,\n): Omit<AgentProfileCell, 'cellId'> {\n const { cellId: _cellId, ...material } = cell\n void _cellId\n return normalizeAgentProfileCell(material)\n}\n\n/**\n * Verify an `AgentProfileCell`'s `cellId` matches the sha256 of its hash-material fields, confirming the record has not been tampered with.\n */\nexport async function verifyAgentProfileCell(cell: AgentProfileCell): Promise<boolean> {\n validateAgentProfileCell(cell)\n return (\n cell.cellId ===\n `agent-profile-cell:sha256:${await hashJson(agentProfileCellHashMaterial(cell))}`\n )\n}\n\nexport function validateAgentProfileCell(input: unknown): AgentProfileCell {\n if (input === null || typeof input !== 'object') {\n throw new AgentProfileCellValidationError('expected object')\n }\n const obj = input as Record<string, unknown>\n expectLiteral(obj.schemaVersion, 'agent-profile-cell/v1', 'schemaVersion')\n if (typeof obj.cellId !== 'string' || !CELL_ID.test(obj.cellId)) {\n throw new AgentProfileCellValidationError(\n 'cellId must match agent-profile-cell:sha256:<64 lowercase hex chars>',\n 'cellId',\n )\n }\n expectString(obj.profileId, 'profileId')\n validateSource(obj.sourceProfile, 'sourceProfile')\n if (obj.harness !== undefined) validateHarness(obj.harness, 'harness')\n if (obj.model !== undefined) expectString(obj.model, 'model')\n if (obj.promptHash !== undefined) expectString(obj.promptHash, 'promptHash')\n if (obj.dimensions !== undefined) validateDimensions(obj.dimensions, 'dimensions')\n return input as AgentProfileCell\n}\n\nexport function requireAgentProfileCell(record: {\n runId: string\n agentProfile?: AgentProfileCell\n}): AgentProfileCell {\n if (!record.agentProfile) {\n throw new AgentProfileCellValidationError(\n `run \"${record.runId}\" is missing agentProfile; profile-cell grouping requires explicit profile identity`,\n 'agentProfile',\n )\n }\n return validateAgentProfileCell(record.agentProfile)\n}\n\nexport function agentProfileCellKey(record: {\n runId: string\n agentProfile?: AgentProfileCell\n}): string {\n return requireAgentProfileCell(record).cellId\n}\n\nexport async function assertRunAgentProfileCell(record: {\n runId: string\n model: string\n promptHash: string\n agentProfile?: AgentProfileCell\n}): Promise<AgentProfileCell> {\n const profile = requireAgentProfileCell(record)\n if (!(await verifyAgentProfileCell(profile))) {\n throw new AgentProfileCellValidationError(\n `run \"${record.runId}\" has an agentProfile.cellId that does not match its content`,\n 'agentProfile.cellId',\n )\n }\n if (profile.model !== undefined && profile.model !== record.model) {\n throw new AgentProfileCellValidationError(\n `run \"${record.runId}\" agentProfile.model \"${profile.model}\" does not match model \"${record.model}\"`,\n 'agentProfile.model',\n )\n }\n if (profile.promptHash !== undefined && profile.promptHash !== record.promptHash) {\n throw new AgentProfileCellValidationError(\n `run \"${record.runId}\" agentProfile.promptHash \"${profile.promptHash}\" does not match promptHash \"${record.promptHash}\"`,\n 'agentProfile.promptHash',\n )\n }\n return profile\n}\n\nexport function groupRunsByAgentProfileCell<\n T extends { runId: string; agentProfile?: AgentProfileCell },\n>(records: readonly T[]): Map<string, T[]> {\n const groups = new Map<string, T[]>()\n for (const record of records) {\n const key = agentProfileCellKey(record)\n const bucket = groups.get(key)\n if (bucket) bucket.push(record)\n else groups.set(key, [record])\n }\n return groups\n}\n\nasync function normalizeAgentProfileCellInput(\n input: AgentProfileCellInput,\n): Promise<Omit<AgentProfileCell, 'cellId'>> {\n return normalizeAgentProfileCell({\n schemaVersion: 'agent-profile-cell/v1',\n profileId: input.profileId,\n sourceProfile: await normalizeSourceInput(input.sourceProfile),\n harness: input.harness,\n model: input.model,\n promptHash: input.promptHash,\n dimensions: input.dimensions,\n })\n}\n\nfunction normalizeAgentProfileCell(\n input: Omit<AgentProfileCell, 'cellId'>,\n): Omit<AgentProfileCell, 'cellId'> {\n return compactObject({\n schemaVersion: 'agent-profile-cell/v1' as const,\n profileId: requireNonEmpty(input.profileId, 'profileId'),\n sourceProfile: normalizeSource(input.sourceProfile),\n harness: input.harness ? normalizeHarness(input.harness, 'harness') : undefined,\n model: optionalNonEmpty(input.model, 'model'),\n promptHash: optionalNonEmpty(input.promptHash, 'promptHash'),\n dimensions: input.dimensions\n ? nonEmptyRecord(normalizeDimensions(input.dimensions))\n : undefined,\n })\n}\n\nasync function normalizeSourceInput(input: AgentProfileSourceInput): Promise<AgentProfileSource> {\n const kind = requireNonEmpty(input.kind, 'sourceProfile.kind')\n if (input.hash !== undefined && input.profile !== undefined) {\n throw new AgentProfileCellValidationError(\n 'sourceProfile must provide either hash or profile, not both',\n 'sourceProfile',\n )\n }\n if (input.hash !== undefined) {\n return { kind, hash: requireSha256Hex(input.hash, 'sourceProfile.hash') }\n }\n if (input.profile === undefined) {\n throw new AgentProfileCellValidationError(\n 'sourceProfile must provide hash or profile',\n 'sourceProfile',\n )\n }\n assertJson(input.profile, 'sourceProfile.profile')\n return { kind, hash: await hashJson(input.profile) }\n}\n\nfunction normalizeSource(input: AgentProfileSource): AgentProfileSource {\n return {\n kind: requireNonEmpty(input.kind, 'sourceProfile.kind'),\n hash: requireSha256Hex(input.hash, 'sourceProfile.hash'),\n }\n}\n\nfunction normalizeHarness(input: AgentProfileHarness, path: string): AgentProfileHarness {\n return compactObject({\n id: requireNonEmpty(input.id, `${path}.id`),\n version: optionalNonEmpty(input.version, `${path}.version`),\n hash: optionalNonEmpty(input.hash, `${path}.hash`),\n })\n}\n\nfunction normalizeDimensions(\n input: Record<string, AgentProfileDimensionValue>,\n): Record<string, AgentProfileDimensionValue> {\n const out: Record<string, AgentProfileDimensionValue> = {}\n for (const key of Object.keys(input).sort()) {\n const value = input[key]\n requireNonEmpty(key, 'dimensions.<key>')\n if (\n value !== null &&\n typeof value !== 'string' &&\n typeof value !== 'number' &&\n typeof value !== 'boolean'\n ) {\n throw new AgentProfileCellValidationError(\n 'expected primitive dimension value',\n `dimensions.${key}`,\n )\n }\n if (typeof value === 'number' && !Number.isFinite(value)) {\n throw new AgentProfileCellValidationError('expected finite number', `dimensions.${key}`)\n }\n out[key] = value\n }\n return out\n}\n\nfunction compactObject<T extends Record<string, unknown>>(input: T): T {\n const out: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(input)) {\n if (value !== undefined) out[key] = value\n }\n return out as T\n}\n\nfunction nonEmptyRecord<T extends Record<string, unknown>>(input: T): T | undefined {\n return Object.keys(input).length > 0 ? input : undefined\n}\n\nfunction validateSource(value: unknown, path: string): void {\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n throw new AgentProfileCellValidationError('expected object', path)\n }\n const rec = value as Record<string, unknown>\n expectString(rec.kind, `${path}.kind`)\n requireSha256Hex(rec.hash, `${path}.hash`)\n}\n\nfunction validateHarness(value: unknown, path: string): void {\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n throw new AgentProfileCellValidationError('expected object', path)\n }\n const rec = value as Record<string, unknown>\n expectString(rec.id, `${path}.id`)\n if (rec.version !== undefined) expectString(rec.version, `${path}.version`)\n if (rec.hash !== undefined) expectString(rec.hash, `${path}.hash`)\n}\n\nfunction validateDimensions(value: unknown, path: string): void {\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n throw new AgentProfileCellValidationError('expected object', path)\n }\n normalizeDimensions(value as Record<string, AgentProfileDimensionValue>)\n}\n\nfunction assertJson(value: AgentProfileJson, path: string): void {\n if (value === null) return\n const type = typeof value\n if (type === 'string' || type === 'boolean') return\n if (type === 'number') {\n if (!Number.isFinite(value)) {\n throw new AgentProfileCellValidationError('expected finite number', path)\n }\n return\n }\n if (Array.isArray(value)) {\n value.forEach((item, index) => {\n assertJson(item, `${path}[${index}]`)\n })\n return\n }\n if (type === 'object') {\n for (const [key, nested] of Object.entries(value)) {\n requireNonEmpty(key, `${path}.<key>`)\n assertJson(nested, `${path}.${key}`)\n }\n return\n }\n throw new AgentProfileCellValidationError('expected JSON-compatible value', path)\n}\n\nfunction expectLiteral(value: unknown, expected: string, path: string): void {\n if (value !== expected) {\n throw new AgentProfileCellValidationError(`expected ${expected}`, path)\n }\n}\n\nfunction expectString(value: unknown, path: string): void {\n if (typeof value !== 'string' || value.length === 0) {\n throw new AgentProfileCellValidationError('expected non-empty string', path)\n }\n}\n\nfunction requireNonEmpty(value: string, path: string): string {\n if (typeof value !== 'string' || value.length === 0) {\n throw new AgentProfileCellValidationError('expected non-empty string', path)\n }\n return value\n}\n\nfunction optionalNonEmpty(value: string | undefined, path: string): string | undefined {\n if (value === undefined) return undefined\n return requireNonEmpty(value, path)\n}\n\nfunction requireSha256Hex(value: unknown, path: string): string {\n if (typeof value !== 'string' || !SHA256_HEX.test(value)) {\n throw new AgentProfileCellValidationError('expected 64 lowercase sha256 hex chars', path)\n }\n return value\n}\n\n// ── Consumer helpers ─────────────────────────────────────────────────\n//\n// Boilerplate every product consuming `buildAgentProfileCell` used to duplicate:\n//\n// 1. A `JSON.parse(JSON.stringify(value))` helper that canonicalizes an\n// arbitrary `@tangle-network/agent-interface` `AgentProfile` into the recursive\n// `AgentProfileJson` shape, with a fail-loud error when the profile\n// is not JSON-serializable.\n//\n// 2. The magic string `'agent-interface-profile'` for `sourceProfile.kind`.\n//\n// Both belong here so the cross-product cell join (same canonical profile\n// hashes to the same `sourceProfile.hash` across products) is enforced by\n// the type system, not by every consumer remembering to do it right.\n// See blueprint-agent issue tangle-network/agent-eval#82.\n\n/** Canonical `sourceProfile.kind` values. Two products fingerprinting the\n * same canonical profile MUST use the same kind for their cells to share\n * `sourceProfile.hash`. Extend rather than create new strings — adding a\n * new kind is a deliberate cross-product schema change. */\nexport const AGENT_PROFILE_KINDS = {\n /** A profile declared via `defineAgentProfile(...)` from\n * `@tangle-network/agent-interface`. The default kind for router-backed\n * and sandbox-backed products. */\n AGENT_INTERFACE_PROFILE: 'agent-interface-profile',\n} as const\n\nexport type AgentProfileKind = (typeof AGENT_PROFILE_KINDS)[keyof typeof AGENT_PROFILE_KINDS]\n\n/** Canonicalize an arbitrary value into `AgentProfileJson` by JSON\n * round-trip. Throws when the value contains anything not representable\n * as JSON (functions, BigInt, cycles) — non-portable profiles fail loud\n * rather than silently dropping fields. */\nexport function toAgentProfileJson(value: unknown): AgentProfileJson {\n let serialized: string | undefined\n try {\n serialized = JSON.stringify(value)\n } catch (err) {\n throw new AgentProfileCellValidationError(\n `agent profile must be JSON-serializable: ${err instanceof Error ? err.message : String(err)}`,\n 'sourceProfile.profile',\n )\n }\n if (serialized === undefined) {\n throw new AgentProfileCellValidationError(\n 'agent profile must be JSON-serializable (got undefined after JSON.stringify)',\n 'sourceProfile.profile',\n )\n }\n return JSON.parse(serialized) as AgentProfileJson\n}\n\n/** Canonical AgentProfile shape required when deriving a stable cell id. */\nexport type AgentInterfaceProfileLike = AgentProfile & { name: string; version: string }\n\n/** Higher-level helper that hard-codes the canonical\n * `agent-interface-profile` kind plus the JSON canonicalization. Equivalent\n * to calling `buildAgentProfileCell` with `profileId = \\`${name}@${version}\\``\n * and `sourceProfile = { kind: AGENT_INTERFACE_PROFILE, profile: <round-tripped> }`.\n *\n * Use this from any product consuming an agent-interface `AgentProfile`; the\n * manual `buildAgentProfileCell` call is reserved for advanced cases\n * (custom kinds, pre-computed source hashes, alternate profileId\n * conventions). */\nexport async function buildAgentInterfaceProfileCell(\n profile: AgentInterfaceProfileLike,\n input: Omit<AgentProfileCellInput, 'profileId' | 'sourceProfile'>,\n): Promise<AgentProfileCell> {\n if (!profile || typeof profile !== 'object') {\n throw new AgentProfileCellValidationError('AgentProfile must be an object', 'profile')\n }\n if (typeof profile.name !== 'string' || profile.name.length === 0) {\n throw new AgentProfileCellValidationError(\n 'AgentProfile must have a non-empty `name`',\n 'profile.name',\n )\n }\n if (typeof profile.version !== 'string' || profile.version.length === 0) {\n throw new AgentProfileCellValidationError(\n 'AgentProfile must have a non-empty `version`',\n 'profile.version',\n )\n }\n return buildAgentProfileCell({\n ...input,\n profileId: `${profile.name}@${profile.version}`,\n sourceProfile: {\n kind: AGENT_PROFILE_KINDS.AGENT_INTERFACE_PROFILE,\n profile: toAgentProfileJson(profile),\n },\n })\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ValidationError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ONWEPEDO.js";
|
|
4
4
|
|
|
5
5
|
// src/statistics.ts
|
|
6
6
|
var normalizeScores = (scores) => scores;
|
|
@@ -1103,4 +1103,4 @@ export {
|
|
|
1103
1103
|
eProcess,
|
|
1104
1104
|
mulberry32
|
|
1105
1105
|
};
|
|
1106
|
-
//# sourceMappingURL=chunk-
|
|
1106
|
+
//# sourceMappingURL=chunk-XMSYF4A7.js.map
|