niceeval 0.13.1 → 0.13.2-canary.35
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/INDEX.md +1 -0
- package/README.md +9 -10
- package/README.zh.md +9 -10
- package/dist/agents/ai-sdk.cjs.map +1 -1
- package/dist/agents/ai-sdk.d.cts +1 -1
- package/dist/agents/ai-sdk.d.mts +1 -1
- package/dist/agents/ai-sdk.d.ts +1 -1
- package/dist/agents/coding-cli-versions.cjs +10 -1
- package/dist/agents/coding-cli-versions.cjs.map +1 -1
- package/dist/agents/coding-cli-versions.d.cts +8 -3
- package/dist/agents/coding-cli-versions.d.mts +8 -3
- package/dist/agents/coding-cli-versions.d.ts +8 -3
- package/dist/agents/coding-cli-versions.js +18 -12
- package/dist/agents/deepseek-harness.cjs +103 -0
- package/dist/agents/deepseek-harness.cjs.map +1 -0
- package/dist/agents/deepseek-harness.d.cts +12 -0
- package/dist/agents/deepseek-harness.d.mts +12 -0
- package/dist/agents/deepseek-harness.d.ts +12 -0
- package/dist/agents/deepseek-harness.js +7 -0
- package/dist/agents/deepseek-harness.js.map +1 -0
- package/dist/agents/index.cjs +5 -1
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +4 -0
- package/dist/agents/index.d.mts +4 -0
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.js +54 -50
- package/dist/agents/index.mjs +54 -50
- package/dist/agents/omp.cjs +170 -0
- package/dist/agents/omp.cjs.map +1 -0
- package/dist/agents/omp.d.cts +14 -0
- package/dist/agents/omp.d.mts +14 -0
- package/dist/agents/omp.d.ts +14 -0
- package/dist/agents/omp.js +7 -0
- package/dist/agents/omp.js.map +1 -0
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +2 -2
- package/dist/agents/types.d.mts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/analysis/api.cjs +9 -1
- package/dist/analysis/api.cjs.map +1 -1
- package/dist/analysis/api.d.cts +21 -0
- package/dist/analysis/api.d.mts +21 -0
- package/dist/analysis/api.d.ts +21 -0
- package/dist/analysis/api.js +8 -6
- package/dist/i18n/en.cjs +7 -2
- package/dist/i18n/en.cjs.map +1 -1
- package/dist/i18n/en.d.cts +7 -2
- package/dist/i18n/en.d.mts +7 -2
- package/dist/i18n/en.d.ts +7 -2
- package/dist/o11y/parsers/hermes.cjs +1 -1
- package/dist/o11y/parsers/hermes.cjs.map +1 -1
- package/dist/report/built-in/analysis-values.cjs +21 -5
- package/dist/report/built-in/analysis-values.cjs.map +1 -1
- package/dist/report/built-in/analysis-values.d.cts +11 -9
- package/dist/report/built-in/analysis-values.d.mts +11 -9
- package/dist/report/built-in/analysis-values.d.ts +11 -9
- package/dist/report/built-in/overview.cjs +1 -0
- package/dist/report/built-in/overview.cjs.map +1 -1
- package/dist/report/built-in/result-components.cjs +58 -12
- package/dist/report/built-in/result-components.cjs.map +1 -1
- package/dist/report/built-in/result-components.d.cts +15 -0
- package/dist/report/built-in/result-components.d.mts +15 -0
- package/dist/report/built-in/result-components.d.ts +15 -0
- package/dist/report/built-in/run-membership-overview.cjs +100 -4
- package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
- package/dist/report/built-in/standard.cjs +1 -0
- package/dist/report/built-in/standard.cjs.map +1 -1
- package/dist/report/built-in/standard.d.cts +1 -0
- package/dist/report/built-in/standard.d.mts +1 -0
- package/dist/report/built-in/standard.d.ts +1 -0
- package/dist/report/components/entity-lists/compute.cjs +40 -3
- package/dist/report/components/entity-lists/compute.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.d.cts +8 -6
- package/dist/report/components/entity-lists/compute.d.mts +8 -6
- package/dist/report/components/entity-lists/compute.d.ts +8 -6
- package/dist/report/components/entity-lists/content.cjs +31 -6
- package/dist/report/components/entity-lists/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.cjs +3 -2
- package/dist/report/components/entity-lists/index.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.d.cts +1 -1
- package/dist/report/components/entity-lists/index.d.mts +1 -1
- package/dist/report/components/entity-lists/index.d.ts +1 -1
- package/dist/report/definition/cell.cjs +3 -0
- package/dist/report/definition/cell.cjs.map +1 -1
- package/dist/report/definition/cell.d.cts +2 -0
- package/dist/report/definition/cell.d.mts +2 -0
- package/dist/report/definition/cell.d.ts +2 -0
- package/dist/report/definition/primitives.cjs +9 -2
- package/dist/report/definition/primitives.cjs.map +1 -1
- package/dist/runner/feedback/human.cjs +180 -16
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/run.cjs +43 -0
- package/dist/runner/run.cjs.map +1 -1
- package/dist/sample/capability.cjs +93 -0
- package/dist/sample/capability.cjs.map +1 -1
- package/dist/sample/capability.d.cts +3 -1
- package/dist/sample/capability.d.mts +3 -1
- package/dist/sample/capability.d.ts +3 -1
- package/dist/sample/capability.js +8 -6
- package/dist/sandbox/docker-agent-image.cjs +5 -1
- package/dist/sandbox/docker-agent-image.cjs.map +1 -1
- package/dist/sandbox/docker-agent-image.d.cts +2 -0
- package/dist/sandbox/docker-agent-image.d.mts +2 -0
- package/dist/sandbox/docker-agent-image.d.ts +2 -0
- package/dist/sandbox/docker-agent-image.js +14 -10
- package/dist/sandbox/index.cjs +4 -2
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +1 -1
- package/dist/sandbox/index.d.mts +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/index.js +120 -116
- package/dist/sandbox/index.mjs +120 -116
- package/docs-site/images/hitl-handshake-zh.svg +3 -3
- package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +3 -3
- package/docs-site/zh/examples/integrations/claude-sdk.mdx +3 -3
- package/docs-site/zh/examples/integrations/codex-sdk.mdx +5 -5
- package/docs-site/zh/examples/integrations/langgraph.mdx +3 -3
- package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
- package/docs-site/zh/explanation/adapter.mdx +5 -5
- package/docs-site/zh/explanation/assert.mdx +1 -1
- package/docs-site/zh/explanation/drive.mdx +3 -1
- package/docs-site/zh/explanation/evals.mdx +3 -1
- package/docs-site/zh/explanation/hitl.mdx +7 -7
- package/docs-site/zh/reference/builtin-agents.mdx +4 -4
- package/docs-site/zh/reference/capabilities.mdx +1 -1
- package/docs-site/zh/reference/events.mdx +10 -10
- package/docs-site/zh/reference/official-adapters.mdx +1 -1
- package/docs-site/zh/reference/results-data.mdx +6 -0
- package/docs-site/zh/tutorials/docker-in-docker.mdx +3 -0
- package/docs-site/zh/tutorials/nixos-managed-dind.mdx +160 -0
- package/docs-site/zh/tutorials/rerun-and-cache.mdx +16 -0
- package/docs-site/zh/tutorials/viewing-results.mdx +19 -1
- package/docs-site/zh/tutorials/write-send.mdx +7 -6
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ exports.loadBuiltInExperimentRows = loadBuiltInExperimentRows;
|
|
|
5
5
|
exports.loadBuiltInAttemptRows = loadBuiltInAttemptRows;
|
|
6
6
|
const aggregate_ts_1 = require("../model/aggregate.cjs");
|
|
7
7
|
const metrics_ts_1 = require("../model/metrics.cjs");
|
|
8
|
+
const compute_ts_1 = require("../components/entity-lists/compute.cjs");
|
|
8
9
|
function loadBuiltInSummaryRows(sample) {
|
|
9
10
|
return (0, aggregate_ts_1.aggregate)(sample, {
|
|
10
11
|
by: {},
|
|
@@ -12,11 +13,26 @@ function loadBuiltInSummaryRows(sample) {
|
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
/** One closed row per selected Experiment for overview charts and tables. */
|
|
15
|
-
function loadBuiltInExperimentRows(sample) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
async function loadBuiltInExperimentRows(sample) {
|
|
17
|
+
const rows = await (0, compute_ts_1.experimentListData)(sample);
|
|
18
|
+
const output = rows.map((row) => Object.freeze({
|
|
19
|
+
key: String(row.experimentId),
|
|
20
|
+
experiment: String(row.experimentId),
|
|
21
|
+
evaluationKind: row.evaluationKind,
|
|
22
|
+
...(row.totalScore === undefined ? {} : { totalScore: row.totalScore }),
|
|
23
|
+
passRate: row.evaluationKind === "pass" ? row.endToEndPassRate : null,
|
|
24
|
+
durationMs: row.durationMs,
|
|
25
|
+
tokens: row.tokens,
|
|
26
|
+
}));
|
|
27
|
+
const issues = new Map();
|
|
28
|
+
for (const issue of output.flatMap((row) => [row.passRate, row.durationMs, row.tokens]
|
|
29
|
+
.filter((metric) => metric !== null)
|
|
30
|
+
.flatMap((metric) => metric.issues))) {
|
|
31
|
+
issues.set(`${issue.code}\u0000${issue.message}`, issue);
|
|
32
|
+
}
|
|
33
|
+
return Object.freeze(Object.assign(output, {
|
|
34
|
+
issues: Object.freeze([...issues.values()]),
|
|
35
|
+
}));
|
|
20
36
|
}
|
|
21
37
|
/** One closed row per selected logical Attempt; used only by the Attempts Page. */
|
|
22
38
|
function loadBuiltInAttemptRows(sample) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-values.js","sourceRoot":"","sources":["analysis-values.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"analysis-values.js","sourceRoot":"","sources":["analysis-values.ts"],"names":[],"mappings":";;AAUA,wDAKC;AAID,8DAoBC;AAID,wDAKC;AAzCD,wDAAgF;AAChF,oDAAoE;AACpE,sEAA2E;AAC3E,SAAgB,sBAAsB,CAAC,MAAc;IACjD,OAAO,IAAA,wBAAS,EAAC,MAAM,EAAE;QACrB,EAAE,EAAE,EAAE;QACN,MAAM,EAAE,EAAE,QAAQ,EAAR,qBAAQ,EAAE,UAAU,EAAV,uBAAU,EAAE,MAAM,EAAN,mBAAM,EAAE;KAC3C,CAAC,CAAC;AACP,CAAC;AAGD,6EAA6E;AACtE,KAAK,UAAU,yBAAyB,CAAC,MAAc;IAC1D,MAAM,IAAI,GAAG,MAAM,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3C,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;QACpC,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;QACvE,QAAQ,EAAE,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;QACrE,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;KACrB,CAAC,CAAC,CAAC;IACJ,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqE,CAAC;IAC5F,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;SACjF,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC;SACnC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KAC9C,CAAC,CAAC,CAAC;AACR,CAAC;AAGD,mFAAmF;AACnF,SAAgB,sBAAsB,CAAC,MAAc;IACjD,OAAO,IAAA,wBAAS,EAAC,MAAM,EAAE;QACrB,EAAE,EAAE,EAAE,UAAU,EAAV,yBAAU,EAAE,MAAM,EAAN,qBAAM,EAAE,OAAO,EAAP,sBAAO,EAAE;QACnC,MAAM,EAAE,EAAE,QAAQ,EAAR,qBAAQ,EAAE,UAAU,EAAV,uBAAU,EAAE,MAAM,EAAN,mBAAM,EAAE;KAC3C,CAAC,CAAC;AACP,CAAC","sourcesContent":["/**\n * The standard report only composes Analysis-issued ClosedRows. In\n * particular, it does not create a second Measure catalog or copy an Analysis\n * reducer: all denominator, missingness, provenance, and cost semantics come\n * from the public Report/Analysis facade.\n */\nimport type { Sample } from \"../../analysis/index.ts\";\nimport { aggregate, attempt, evalId, experiment, } from \"../model/aggregate.ts\";\nimport { durationMs, passRate, tokens, } from \"../model/metrics.ts\";\nimport { experimentListData } from \"../components/entity-lists/compute.ts\";\nexport function loadBuiltInSummaryRows(sample: Sample) {\n return aggregate(sample, {\n by: {},\n values: { passRate, durationMs, tokens },\n });\n}\nexport type BuiltInSummaryRows = Awaited<ReturnType<typeof loadBuiltInSummaryRows>>;\nexport type BuiltInSummaryRow = BuiltInSummaryRows[number];\n/** One closed row per selected Experiment for overview charts and tables. */\nexport async function loadBuiltInExperimentRows(sample: Sample) {\n const rows = await experimentListData(sample);\n const output = rows.map((row) => Object.freeze({\n key: String(row.experimentId),\n experiment: String(row.experimentId),\n evaluationKind: row.evaluationKind,\n ...(row.totalScore === undefined ? {} : { totalScore: row.totalScore }),\n passRate: row.evaluationKind === \"pass\" ? row.endToEndPassRate : null,\n durationMs: row.durationMs,\n tokens: row.tokens,\n }));\n const issues = new Map<string, typeof rows[number][\"endToEndPassRate\"][\"issues\"][number]>();\n for (const issue of output.flatMap((row) => [row.passRate, row.durationMs, row.tokens]\n .filter((metric) => metric !== null)\n .flatMap((metric) => metric.issues))) {\n issues.set(`${issue.code}\\u0000${issue.message}`, issue);\n }\n return Object.freeze(Object.assign(output, {\n issues: Object.freeze([...issues.values()]),\n }));\n}\nexport type BuiltInExperimentRows = Awaited<ReturnType<typeof loadBuiltInExperimentRows>>;\nexport type BuiltInExperimentRow = BuiltInExperimentRows[number];\n/** One closed row per selected logical Attempt; used only by the Attempts Page. */\nexport function loadBuiltInAttemptRows(sample: Sample) {\n return aggregate(sample, {\n by: { experiment, evalId, attempt },\n values: { passRate, durationMs, tokens },\n });\n}\nexport type BuiltInAttemptRows = Awaited<ReturnType<typeof loadBuiltInAttemptRows>>;\n"]}
|
|
@@ -15,15 +15,17 @@ export declare function loadBuiltInSummaryRows(sample: Sample): Promise<import("
|
|
|
15
15
|
export type BuiltInSummaryRows = Awaited<ReturnType<typeof loadBuiltInSummaryRows>>;
|
|
16
16
|
export type BuiltInSummaryRow = BuiltInSummaryRows[number];
|
|
17
17
|
/** One closed row per selected Experiment for overview charts and tables. */
|
|
18
|
-
export declare function loadBuiltInExperimentRows(sample: Sample): Promise<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
18
|
+
export declare function loadBuiltInExperimentRows(sample: Sample): Promise<Readonly<Readonly<{
|
|
19
|
+
passRate: import("../../analysis/contracts.cjs").MetricValue<number> | null;
|
|
20
|
+
durationMs: import("../../analysis/contracts.cjs").MetricValue<number>;
|
|
21
|
+
tokens: import("../../analysis/contracts.cjs").MetricValue<number>;
|
|
22
|
+
totalScore?: number | undefined;
|
|
23
|
+
key: string;
|
|
24
|
+
experiment: string;
|
|
25
|
+
evaluationKind: import("../components/entity-lists/compute.cjs").EvaluationKindComposition;
|
|
26
|
+
}>[] & {
|
|
27
|
+
issues: readonly import("../../analysis/contracts.cjs").AnalysisIssue[];
|
|
28
|
+
}>>;
|
|
27
29
|
export type BuiltInExperimentRows = Awaited<ReturnType<typeof loadBuiltInExperimentRows>>;
|
|
28
30
|
export type BuiltInExperimentRow = BuiltInExperimentRows[number];
|
|
29
31
|
/** One closed row per selected logical Attempt; used only by the Attempts Page. */
|
|
@@ -15,15 +15,17 @@ export declare function loadBuiltInSummaryRows(sample: Sample): Promise<import("
|
|
|
15
15
|
export type BuiltInSummaryRows = Awaited<ReturnType<typeof loadBuiltInSummaryRows>>;
|
|
16
16
|
export type BuiltInSummaryRow = BuiltInSummaryRows[number];
|
|
17
17
|
/** One closed row per selected Experiment for overview charts and tables. */
|
|
18
|
-
export declare function loadBuiltInExperimentRows(sample: Sample): Promise<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
18
|
+
export declare function loadBuiltInExperimentRows(sample: Sample): Promise<Readonly<Readonly<{
|
|
19
|
+
passRate: import("../../analysis/contracts.mjs").MetricValue<number> | null;
|
|
20
|
+
durationMs: import("../../analysis/contracts.mjs").MetricValue<number>;
|
|
21
|
+
tokens: import("../../analysis/contracts.mjs").MetricValue<number>;
|
|
22
|
+
totalScore?: number | undefined;
|
|
23
|
+
key: string;
|
|
24
|
+
experiment: string;
|
|
25
|
+
evaluationKind: import("../components/entity-lists/compute.mjs").EvaluationKindComposition;
|
|
26
|
+
}>[] & {
|
|
27
|
+
issues: readonly import("../../analysis/contracts.mjs").AnalysisIssue[];
|
|
28
|
+
}>>;
|
|
27
29
|
export type BuiltInExperimentRows = Awaited<ReturnType<typeof loadBuiltInExperimentRows>>;
|
|
28
30
|
export type BuiltInExperimentRow = BuiltInExperimentRows[number];
|
|
29
31
|
/** One closed row per selected logical Attempt; used only by the Attempts Page. */
|
|
@@ -15,15 +15,17 @@ export declare function loadBuiltInSummaryRows(sample: Sample): Promise<import("
|
|
|
15
15
|
export type BuiltInSummaryRows = Awaited<ReturnType<typeof loadBuiltInSummaryRows>>;
|
|
16
16
|
export type BuiltInSummaryRow = BuiltInSummaryRows[number];
|
|
17
17
|
/** One closed row per selected Experiment for overview charts and tables. */
|
|
18
|
-
export declare function loadBuiltInExperimentRows(sample: Sample): Promise<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
18
|
+
export declare function loadBuiltInExperimentRows(sample: Sample): Promise<Readonly<Readonly<{
|
|
19
|
+
passRate: import("../../analysis/contracts.js").MetricValue<number> | null;
|
|
20
|
+
durationMs: import("../../analysis/contracts.js").MetricValue<number>;
|
|
21
|
+
tokens: import("../../analysis/contracts.js").MetricValue<number>;
|
|
22
|
+
totalScore?: number | undefined;
|
|
23
|
+
key: string;
|
|
24
|
+
experiment: string;
|
|
25
|
+
evaluationKind: import("../components/entity-lists/compute.js").EvaluationKindComposition;
|
|
26
|
+
}>[] & {
|
|
27
|
+
issues: readonly import("../../analysis/contracts.js").AnalysisIssue[];
|
|
28
|
+
}>>;
|
|
27
29
|
export type BuiltInExperimentRows = Awaited<ReturnType<typeof loadBuiltInExperimentRows>>;
|
|
28
30
|
export type BuiltInExperimentRow = BuiltInExperimentRows[number];
|
|
29
31
|
/** One closed row per selected logical Attempt; used only by the Attempts Page. */
|
|
@@ -28,6 +28,7 @@ const overviewPage = {
|
|
|
28
28
|
counts: Object.freeze({
|
|
29
29
|
experiments: experiments.length,
|
|
30
30
|
attempts: sample.snapshot.slots.filter((slot) => slot.state === "included").length,
|
|
31
|
+
expectedResults: sample.snapshot.slots.filter((slot) => slot.state !== "excluded").length,
|
|
31
32
|
}),
|
|
32
33
|
});
|
|
33
34
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview.js","sourceRoot":"","sources":["overview.ts"],"names":[],"mappings":";;;AAEA,mDAAwC;AAGxC,6DAA+I;AAC/I,kEAAsE;AACtE,6CAA+E;
|
|
1
|
+
{"version":3,"file":"overview.js","sourceRoot":"","sources":["overview.ts"],"names":[],"mappings":";;;AAEA,mDAAwC;AAGxC,6DAA+I;AAC/I,kEAAsE;AACtE,6CAA+E;AAW/E,SAAS,QAAQ,CAAC,QAAwB;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClK,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;QACxE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B,CAAC,CAAC;AACP,CAAC;AACD,MAAM,YAAY,GAAG;IACjB,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,KAAK,EAAE,MAAc,EAA8B,EAAE;QACvD,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7C,IAAA,2CAAsB,EAAC,MAAM,CAAC;YAC9B,IAAA,8CAAyB,EAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/B,OAAO;YACP,WAAW;YACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBAClB,WAAW,EAAE,WAAW,CAAC,MAAM;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,MAAM;gBAClF,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,MAAM;aAC5F,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,MAAM,EAAE,CAAC,KAAwB,EAAE,EAAE,CAAC,IAAA,iBAAG,EAAC,kDAA0B,EAAE,KAAK,CAAC;CACvC,CAAC;AAC1C,2EAA2E;AAC9D,QAAA,qBAAqB,GAAG,IAAA,gCAAmB,EAAC,sCAAyB,CAAC,eAAe,EAAE;IAChG,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,CAAC,YAAY,CAAC;CACxB,CAAC,CAAC;AACH,wEAAwE;AAC3D,QAAA,QAAQ,GAAG,6BAAqB,CAAC;AAC9C,kBAAe,6BAAqB,CAAC","sourcesContent":["/** The stable project-current built-in selector. */\nimport type { Sample, SampleSnapshot, } from \"../../analysis/index.ts\";\nimport { jsx } from \"react/jsx-runtime\";\nimport type { Page } from \"../definition/report.ts\";\nimport { type HeroData } from \"../components/site-components/index.tsx\";\nimport { loadBuiltInExperimentRows, loadBuiltInSummaryRows, type BuiltInExperimentRows, type BuiltInSummaryRows, } from \"./analysis-values.ts\";\nimport { StandardOverviewResultView, } from \"./result-components.tsx\";\nimport { builtInMachineProducerIds, defineBuiltInReport, } from \"./machine.ts\";\ninterface OverviewPageInput {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly experiments: BuiltInExperimentRows;\n readonly counts: {\n readonly experiments: number;\n readonly attempts: number;\n readonly expectedResults: number;\n };\n}\nfunction heroData(snapshot: SampleSnapshot): HeroData {\n const latest = snapshot.runs.reduce<number | null>((current, run) => current === null || Number(run.startedAt) > current ? Number(run.startedAt) : current, null);\n return Object.freeze({\n latestStartedAt: latest === null ? null : new Date(latest).toISOString(),\n runs: snapshot.runs.length,\n });\n}\nconst overviewPage = {\n id: \"overview\",\n path: \"/\",\n title: \"Overview\",\n load: async (sample: Sample): Promise<OverviewPageInput> => {\n const [summary, experiments] = await Promise.all([\n loadBuiltInSummaryRows(sample),\n loadBuiltInExperimentRows(sample),\n ]);\n return Object.freeze({\n hero: heroData(sample.snapshot),\n summary,\n experiments,\n counts: Object.freeze({\n experiments: experiments.length,\n attempts: sample.snapshot.slots.filter((slot) => slot.state === \"included\").length,\n expectedResults: sample.snapshot.slots.filter((slot) => slot.state !== \"excluded\").length,\n }),\n });\n },\n render: (input: OverviewPageInput) => jsx(StandardOverviewResultView, input),\n} satisfies Page<void, OverviewPageInput>;\n/** The default project-current report over Analysis-issued closed rows. */\nexport const defaultOverviewReport = defineBuiltInReport(builtInMachineProducerIds.defaultOverview, {\n title: \"NiceEval overview\",\n pages: [overviewPage],\n});\n/** Stable built-in token target for an explicit `--report overview`. */\nexport const overview = defaultOverviewReport;\nexport default defaultOverviewReport;\n"]}
|
|
@@ -12,6 +12,9 @@ const SOURCE_TEXT_MAX = 12000;
|
|
|
12
12
|
function metricCell(metric) {
|
|
13
13
|
return { kind: "metric", metric };
|
|
14
14
|
}
|
|
15
|
+
function metricValueOnlyCell(metric) {
|
|
16
|
+
return { kind: "metric", metric, showCoverage: false };
|
|
17
|
+
}
|
|
15
18
|
function limited(rows, maximum = DETAIL_ROWS_MAX) {
|
|
16
19
|
return rows.slice(0, maximum);
|
|
17
20
|
}
|
|
@@ -31,10 +34,19 @@ function issueSection(view) {
|
|
|
31
34
|
}
|
|
32
35
|
function heroAndKpis(input) {
|
|
33
36
|
const summary = input.summary[0];
|
|
34
|
-
|
|
37
|
+
const hasScore = input.experiments.some((row) => row.evaluationKind !== "pass");
|
|
38
|
+
const hasPassSummary = input.experiments.length > 0 && input.experiments.every((row) => row.evaluationKind === "pass");
|
|
39
|
+
const scores = input.experiments.flatMap((row) => row.totalScore === undefined ? [] : [row.totalScore]);
|
|
40
|
+
const meanScore = scores.length === 0 ? null : scores.reduce((sum, score) => sum + score, 0) / scores.length;
|
|
41
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(index_tsx_1.Hero, { data: input.hero }), (0, jsx_runtime_1.jsxs)(primitives_tsx_1.Grid, { children: [hasPassSummary ? (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Pass rate", value: summary === undefined ? null : metricValueOnlyCell(summary.passRate) }) : null, hasScore ? (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Mean score", value: meanScore }) : null, (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Mean duration", value: summary === undefined ? null : metricValueOnlyCell(summary.durationMs) }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Mean tokens", value: summary === undefined ? null : metricValueOnlyCell(summary.tokens) }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Experiments", value: input.counts.experiments }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Included attempts", value: input.counts.attempts })] })] }));
|
|
42
|
+
}
|
|
43
|
+
function resultCoverageSection(counts) {
|
|
44
|
+
if (counts.attempts >= counts.expectedResults)
|
|
45
|
+
return null;
|
|
46
|
+
return ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Section, { title: "Result coverage", meta: `${counts.attempts} of ${counts.expectedResults} results available`, children: (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: "Some expected results do not have an analyzable Attempt. Result coverage is not a score or pass rate." }) }));
|
|
35
47
|
}
|
|
36
48
|
function experimentPoints(rows) {
|
|
37
|
-
return rows.map((row) => (0, metrics_ts_1.evidenceRow)({
|
|
49
|
+
return rows.filter((row) => row.passRate !== null).map((row) => (0, metrics_ts_1.evidenceRow)({
|
|
38
50
|
experiment: String(row.experiment),
|
|
39
51
|
passRate: row.passRate,
|
|
40
52
|
durationMs: row.durationMs,
|
|
@@ -44,13 +56,24 @@ function experimentTarget(experiment) {
|
|
|
44
56
|
return { page: "experiment", params: (0, details_ts_1.experimentDetailTarget)(experiment) };
|
|
45
57
|
}
|
|
46
58
|
function standardOverviewTree(input) {
|
|
59
|
+
const hasScore = input.experiments.some((row) => row.evaluationKind !== "pass");
|
|
60
|
+
const hasPass = input.experiments.some((row) => row.evaluationKind === "pass");
|
|
47
61
|
const points = experimentPoints(input.experiments);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
62
|
+
const columns = [
|
|
63
|
+
{ field: "experiment", label: "Experiment" },
|
|
64
|
+
...(hasPass ? [{ field: "passRate", label: "Pass rate" }] : []),
|
|
65
|
+
...(hasScore ? [{ field: "totalScore", label: "Score" }] : []),
|
|
66
|
+
{ field: "durationMs", label: "Mean duration" },
|
|
67
|
+
{ field: "tokens", label: "Mean tokens" },
|
|
68
|
+
];
|
|
69
|
+
const tableRows = input.experiments.map((row) => ({
|
|
70
|
+
...row,
|
|
71
|
+
passRate: row.passRate === null ? null : metricValueOnlyCell(row.passRate),
|
|
72
|
+
totalScore: row.totalScore ?? null,
|
|
73
|
+
durationMs: metricValueOnlyCell(row.durationMs),
|
|
74
|
+
tokens: metricValueOnlyCell(row.tokens),
|
|
75
|
+
}));
|
|
76
|
+
return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Col, { children: [heroAndKpis(input), resultCoverageSection(input.counts), (0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: "Experiment results", meta: `${input.experiments.length} experiments`, children: [input.experiments.length === 0 ? (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: "No experiment rows are available for this selection." }) : !hasPass ? null : ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Col, { children: (0, jsx_runtime_1.jsx)(primitives_tsx_1.Bars, { points: points, x: "experiment", y: "passRate", point: "experiment", pointTarget: (point) => experimentTarget(point.key), sort: { field: "passRate", direction: "desc" }, layout: "horizontal" }) })), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Table, { rows: tableRows, columns: columns })] }), issueSection(input.experiments)] }));
|
|
54
77
|
}
|
|
55
78
|
/** The default product overview: Hero, exactly six KPIs, Bars, Scatter, and Table. */
|
|
56
79
|
exports.StandardOverviewResultView = (0, tree_ts_1.defineComponent)((input) => standardOverviewTree(input));
|
|
@@ -74,17 +97,31 @@ function standardAttemptsTree(input) {
|
|
|
74
97
|
exports.StandardAttemptsResultView = (0, tree_ts_1.defineComponent)((input) => standardAttemptsTree(input));
|
|
75
98
|
exports.StandardAttemptsResultView.displayName = "StandardAttemptsResultView";
|
|
76
99
|
function membershipTable(rows) {
|
|
77
|
-
|
|
100
|
+
const normalized = rows.map((row) => ({
|
|
101
|
+
...row,
|
|
102
|
+
outcome: row.outcome ?? null,
|
|
103
|
+
phase: row.phase ?? null,
|
|
104
|
+
error: row.error ?? null,
|
|
105
|
+
sharedFailure: row.sharedFailure ?? null,
|
|
106
|
+
}));
|
|
107
|
+
return ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Table, { rows: normalized, columns: [
|
|
78
108
|
{ field: "experiment", label: "Experiment" },
|
|
79
109
|
{ field: "eval", label: "Eval" },
|
|
80
110
|
{ field: "attempt", label: "Attempt" },
|
|
111
|
+
{ field: "state", label: "Membership" },
|
|
112
|
+
{ field: "outcome", label: "Outcome" },
|
|
113
|
+
{ field: "error", label: "Error" },
|
|
114
|
+
{ field: "phase", label: "Phase" },
|
|
115
|
+
{ field: "sharedFailure", label: "Shared failure" },
|
|
81
116
|
{ field: "locator", label: "Attempt locator" },
|
|
82
117
|
{ field: "selectedRun", label: "Selected run" },
|
|
83
118
|
{ field: "slot", label: "Slot" },
|
|
84
|
-
{ field: "state", label: "Membership" },
|
|
85
119
|
{ field: "relation", label: "Relation" },
|
|
86
120
|
] }));
|
|
87
121
|
}
|
|
122
|
+
function runErrorsSection(rows) {
|
|
123
|
+
return rows.length === 0 ? null : ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Section, { title: "Run errors", meta: `${rows.length} shared failure${rows.length === 1 ? "" : "s"}`, children: rows.map((row) => ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: `${row.error} · ${row.failure}`, children: [(0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: `phase: ${row.phase}` }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: `affected: ${row.affected}` }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: row.message }), row.fix === null ? null : (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: `fix: ${row.fix}` })] }, row.key))) }));
|
|
124
|
+
}
|
|
88
125
|
function evidenceEntryRows(view, locator) {
|
|
89
126
|
return view.entries
|
|
90
127
|
.filter((entry) => locator === undefined || entry.attempt.locator === locator)
|
|
@@ -302,7 +339,7 @@ exports.SandboxHistoryResultView = (0, tree_ts_1.defineComponent)((props) => san
|
|
|
302
339
|
exports.SandboxHistoryResultView.displayName = "SandboxHistoryResultView";
|
|
303
340
|
function runMembershipTree(input) {
|
|
304
341
|
const summary = input.summary[0];
|
|
305
|
-
return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Col, { children: [(0, jsx_runtime_1.jsx)(index_tsx_1.Hero, { data: input.hero }), (0, jsx_runtime_1.jsxs)(primitives_tsx_1.Grid, { children: [(0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Pass rate", value: summary === undefined ? null : metricCell(summary.passRate) }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Included attempts", value: input.members.filter((member) => member.state === "included").length })] }), (0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: "Run membership", meta: `${input.members.length} slots`, children: [membershipTable(limited(input.members)), omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), "membership rows")] }), (0, jsx_runtime_1.jsx)(exports.AttemptEvidenceResultView, { view: input.evidence }), issueSection(input.summary)] }));
|
|
342
|
+
return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Col, { children: [(0, jsx_runtime_1.jsx)(index_tsx_1.Hero, { data: input.hero }), (0, jsx_runtime_1.jsxs)(primitives_tsx_1.Grid, { children: [(0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Pass rate", value: summary === undefined ? null : metricCell(summary.passRate) }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Stat, { label: "Included attempts", value: input.members.filter((member) => member.state === "included").length })] }), (0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: "Run membership", meta: `${input.members.length} slots`, children: [membershipTable(limited(input.members)), omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), "membership rows")] }), runErrorsSection(input.errors), (0, jsx_runtime_1.jsx)(exports.AttemptEvidenceResultView, { view: input.evidence }), issueSection(input.summary)] }));
|
|
306
343
|
}
|
|
307
344
|
exports.RunMembershipResultView = (0, tree_ts_1.defineComponent)((input) => runMembershipTree(input));
|
|
308
345
|
exports.RunMembershipResultView.displayName = "RunMembershipResultView";
|
|
@@ -314,7 +351,16 @@ exports.AttemptDetailResultView = (0, tree_ts_1.defineComponent)((input) => atte
|
|
|
314
351
|
exports.AttemptDetailResultView.displayName = "AttemptDetailResultView";
|
|
315
352
|
function experimentDetailTree(input) {
|
|
316
353
|
const rows = input.rows.filter((row) => String(row.experiment) === input.experiment);
|
|
317
|
-
|
|
354
|
+
const hasScore = rows.some((row) => row.evaluationKind !== "pass");
|
|
355
|
+
const hasPass = rows.some((row) => row.evaluationKind === "pass");
|
|
356
|
+
const columns = [
|
|
357
|
+
"experiment",
|
|
358
|
+
...(hasPass ? ["passRate"] : []),
|
|
359
|
+
...(hasScore ? ["totalScore"] : []),
|
|
360
|
+
"durationMs",
|
|
361
|
+
"tokens",
|
|
362
|
+
];
|
|
363
|
+
return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Col, { children: [(0, jsx_runtime_1.jsx)(index_tsx_1.Hero, { data: input.hero }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Section, { title: `Experiment · ${input.experiment}`, children: (0, jsx_runtime_1.jsx)(primitives_tsx_1.Table, { rows: rows, columns: columns }) }), (0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: "Experiment members", meta: `${input.members.length} slots`, children: [membershipTable(limited(input.members)), omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), "member rows")] }), issueSection(input.rows)] }));
|
|
318
364
|
}
|
|
319
365
|
exports.ExperimentDetailResultView = (0, tree_ts_1.defineComponent)((input) => experimentDetailTree(input));
|
|
320
366
|
exports.ExperimentDetailResultView.displayName = "ExperimentDetailResultView";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-components.js","sourceRoot":"","sources":["result-components.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Built-in report composition over already-closed values.\n *\n * Nothing in this module accepts a Sample, storage capability, attachment, or\n * Effect Scope. Page loaders own Analysis and DomainView acquisition; these\n * components only arrange their rows and views into the report product.\n */\nimport type { AttemptEvidenceDomainView, AttemptObservabilityDomainView, ClosedCommandEntry, ClosedConversationItem, ClosedUsageObservation, ExperimentId, FileChangesDomainView, JsonValue, MetricValue, SandboxHistoryDomainView, SourcesDomainView, } from \"../../analysis/index.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\nimport { Hero, type HeroData } from \"../components/site-components/index.tsx\";\nimport { defineComponent } from \"../definition/tree.ts\";\nimport { Bars, Col, Grid, Section, Stat, Table, Text, } from \"../definition/primitives.tsx\";\nimport type { Cell } from \"../definition/cell.tsx\";\nimport { evidenceRow } from \"../model/metrics.ts\";\nimport { experimentDetailTarget } from \"../library/details.ts\";\nimport type { BuiltInAttemptRows, BuiltInExperimentRows, BuiltInSummaryRows, } from \"./analysis-values.ts\";\nconst DETAIL_ROWS_MAX = 200;\nconst SOURCE_TEXT_MAX = 12000;\nexport interface OverviewCounts {\n readonly experiments: number;\n readonly attempts: number;\n}\n/** Display-safe membership facts prepared by the Page loader from Snapshot. */\nexport interface MembershipRow {\n readonly key: string;\n readonly experiment: string;\n readonly eval: string;\n readonly attempt: number;\n readonly selectedRun: string;\n readonly slot: string;\n readonly state: string;\n readonly relation: string | null;\n readonly locator: string | null;\n}\nexport interface StandardOverviewResult {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly experiments: BuiltInExperimentRows;\n readonly counts: OverviewCounts;\n}\nexport interface StandardAttemptsResult {\n readonly hero: HeroData;\n readonly attempts: BuiltInAttemptRows;\n}\nexport interface ExperimentDetailResult {\n readonly hero: HeroData;\n readonly experiment: string;\n readonly rows: BuiltInExperimentRows;\n readonly members: readonly MembershipRow[];\n}\nexport interface AttemptDetailResult {\n readonly hero: HeroData;\n readonly locator: AttemptLocator | null;\n readonly members: readonly MembershipRow[];\n readonly evidence: AttemptEvidenceDomainView;\n readonly observability: AttemptObservabilityDomainView;\n readonly fileChanges: FileChangesDomainView;\n readonly sources: SourcesDomainView;\n readonly sandbox: SandboxHistoryDomainView;\n}\nexport interface RunMembershipResult {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly members: readonly MembershipRow[];\n readonly evidence: AttemptEvidenceDomainView;\n}\nexport interface AttemptTraceProps {\n readonly view: AttemptObservabilityDomainView;\n readonly locator?: AttemptLocator;\n readonly mode: \"execution\" | \"timing\";\n readonly grep?: string;\n readonly timingMode?: \"summary\" | \"full\";\n}\nexport interface FileChangesTrajectoryProps {\n readonly view: FileChangesDomainView;\n readonly locator?: AttemptLocator;\n}\nexport interface SourcesResultProps {\n readonly view: SourcesDomainView;\n readonly locator?: AttemptLocator;\n readonly file?: string;\n}\nexport interface SandboxHistoryResultProps {\n readonly view: SandboxHistoryDomainView;\n readonly locator?: AttemptLocator;\n}\nfunction metricCell(metric: MetricValue): Cell {\n return { kind: \"metric\", metric };\n}\nfunction limited<Row>(rows: readonly Row[], maximum = DETAIL_ROWS_MAX): readonly Row[] {\n return rows.slice(0, maximum);\n}\nfunction omittedText(total: number, visible: number, label: string) {\n return total === visible ? null : <Text>{`${total - visible} additional ${label} omitted from this page.`}</Text>;\n}\nfunction issueRows(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n return view.issues.map((issue, index) => ({\n key: `${issue.code}:${index}`,\n code: issue.code,\n message: issue.message,\n }));\n}\nfunction issueSection(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n const rows = issueRows(view);\n return rows.length === 0 ? null : (<Section title=\"Analysis notes\" meta={`${rows.length}`}>\n <Table rows={rows} columns={[\"code\", \"message\"]}/>\n </Section>);\n}\nfunction heroAndKpis(input: StandardOverviewResult) {\n const summary = input.summary[0];\n return (<>\n <Hero data={input.hero}/>\n <Grid>\n <Stat label=\"Pass rate\" value={summary === undefined ? null : metricCell(summary.passRate)}/>\n <Stat label=\"Mean duration\" value={summary === undefined ? null : metricCell(summary.durationMs)}/>\n <Stat label=\"Mean tokens\" value={summary === undefined ? null : metricCell(summary.tokens)}/>\n <Stat label=\"Experiments\" value={input.counts.experiments}/>\n <Stat label=\"Included attempts\" value={input.counts.attempts}/>\n </Grid>\n </>);\n}\nfunction experimentPoints(rows: BuiltInExperimentRows) {\n return rows.map((row) => evidenceRow({\n experiment: String(row.experiment),\n passRate: row.passRate,\n durationMs: row.durationMs,\n }));\n}\nfunction experimentTarget(experiment: string) {\n return { page: \"experiment\", params: experimentDetailTarget(experiment as ExperimentId) };\n}\nfunction standardOverviewTree(input: StandardOverviewResult) {\n const points = experimentPoints(input.experiments);\n return (<Col>\n {heroAndKpis(input)}\n <Section title=\"Experiment results\" meta={`${input.experiments.length} experiments`}>\n {points.length === 0 ? <Text>No experiment rows are available for this selection.</Text> : (<Col>\n <Bars points={points} x=\"experiment\" y=\"passRate\" point=\"experiment\" pointTarget={(point) => experimentTarget(point.key)} sort={{ field: \"passRate\", direction: \"desc\" }} layout=\"horizontal\"/>\n </Col>)}\n <Table rows={input.experiments} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"passRate\", label: \"Pass rate\" },\n { field: \"durationMs\", label: \"Mean duration\" },\n { field: \"tokens\", label: \"Mean tokens\" },\n ]}/>\n </Section>\n {issueSection(input.experiments)}\n </Col>);\n}\n/** The default product overview: Hero, exactly six KPIs, Bars, Scatter, and Table. */\nexport const StandardOverviewResultView = defineComponent<StandardOverviewResult>((input) => standardOverviewTree(input));\nStandardOverviewResultView.displayName = \"StandardOverviewResultView\";\nfunction standardAttemptsTree(input: StandardAttemptsResult) {\n const rows = input.attempts.map((row) => ({\n ...row,\n attempt: typeof row.attempt === \"string\"\n ? { kind: \"locator\" as const, locator: row.attempt as AttemptLocator }\n : row.attempt,\n }));\n return (<Col>\n <Hero data={input.hero}/>\n <Section title=\"Attempts\" meta={`${input.attempts.length} attempts`}>\n <Table rows={rows} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"evalId\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"passRate\", label: \"Pass rate\" },\n { field: \"durationMs\", label: \"Mean duration\" },\n { field: \"tokens\", label: \"Mean tokens\" },\n ]}/>\n </Section>\n {issueSection(input.attempts)}\n </Col>);\n}\nexport const StandardAttemptsResultView = defineComponent<StandardAttemptsResult>((input) => standardAttemptsTree(input));\nStandardAttemptsResultView.displayName = \"StandardAttemptsResultView\";\nfunction membershipTable(rows: readonly MembershipRow[]) {\n return (<Table rows={rows} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"eval\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"locator\", label: \"Attempt locator\" },\n { field: \"selectedRun\", label: \"Selected run\" },\n { field: \"slot\", label: \"Slot\" },\n { field: \"state\", label: \"Membership\" },\n { field: \"relation\", label: \"Relation\" },\n ]}/>);\n}\nfunction evidenceEntryRows(view: AttemptEvidenceDomainView, locator?: AttemptLocator) {\n return view.entries\n .filter((entry) => locator === undefined || entry.attempt.locator === locator)\n .map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n originRun: entry.attempt.originRunId,\n state: entry.state,\n outcome: entry.state === \"available\" ? entry.detail.outcome : null,\n verdict: entry.state === \"available\" ? entry.detail.verdict : null,\n assertions: entry.state === \"available\" ? entry.detail.entries.length : null,\n sourceSites: entry.state === \"available\" ? entry.detail.sourceSites.length : null,\n }));\n}\nfunction assertionRows(entry: Extract<AttemptEvidenceDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>) {\n return entry.detail.entries.map((assertion) => ({\n key: assertion.entryId,\n assertion: assertion.entryId,\n display: jsonText(assertion.display),\n criterion: jsonText(assertion.criterion),\n result: jsonText(assertion.result),\n coverage: jsonText(assertion.coverage),\n }));\n}\nfunction attemptEvidenceTree(props: {\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}) {\n const entries = evidenceEntryRows(props.view, props.locator);\n const visible = limited(entries);\n const available = props.view.entries.filter((entry): entry is Extract<typeof entry, {\n readonly state: \"available\";\n }> => (props.locator === undefined || entry.attempt.locator === props.locator) && entry.state === \"available\");\n return (<Section title=\"Assessment evidence\" meta={`${entries.length} attempt${entries.length === 1 ? \"\" : \"s\"}`}>\n {visible.length === 0 ? <Text>No closed assessment evidence matches this target.</Text> : (<Table rows={visible} columns={[\"locator\", \"originRun\", \"state\", \"outcome\", \"verdict\", \"assertions\", \"sourceSites\"]}/>)}\n {omittedText(entries.length, visible.length, \"assessment evidence rows\")}\n {available.map((entry) => {\n const assertions = limited(assertionRows(entry));\n return (<Section key={entry.attempt.locator} title={`Assertions · ${entry.attempt.locator}`}>\n {assertions.length === 0 ? <Text>No recorded assertions.</Text> : (<Table rows={assertions} columns={[\"assertion\", \"display\", \"criterion\", \"result\", \"coverage\"]}/>)}\n {omittedText(entry.detail.entries.length, assertions.length, \"assertions\")}\n </Section>);\n })}\n {issueSection(props.view)}\n </Section>);\n}\nexport const AttemptEvidenceResultView = defineComponent<{\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}>((props) => attemptEvidenceTree(props));\nAttemptEvidenceResultView.displayName = \"AttemptEvidenceResultView\";\nfunction conversationText(item: ClosedConversationItem): string {\n switch (item.kind) {\n case \"message\":\n return `${item.role}: ${item.text}`;\n case \"tool-call\":\n return `${item.tool}(${item.inputSummary})`;\n case \"tool-result\":\n return `${item.outcome}: ${item.outputSummary}`;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n return item.summary;\n case \"subagent\":\n return `${item.label} · ${item.state} · ${item.summary}`;\n case \"input-request\":\n return `${item.state} · ${item.promptSummary}${item.responseSummary === null ? \"\" : ` · ${item.responseSummary}`}`;\n case \"skill-load\":\n case \"conversation-error\":\n return `${item.code} · ${item.summary}`;\n }\n}\nfunction commandText(command: ClosedCommandEntry) {\n const invocation = command.manifest.invocation.kind === \"argv\"\n ? [command.manifest.invocation.executable, ...command.manifest.invocation.arguments].join(\" \")\n : command.manifest.invocation.command;\n const outcome = command.result.outcome.kind === \"exited\"\n ? `exit ${command.result.outcome.exitCode}`\n : `${command.result.outcome.kind}: ${command.result.outcome.reason}`;\n return { invocation, outcome };\n}\nfunction usageValue(observation: ClosedUsageObservation) {\n switch (observation.kind) {\n case \"token-bucket\":\n return `${observation.bucket}: ${observation.tokens}`;\n case \"request\":\n return observation.requestKind;\n case \"provider-cost\":\n return `${observation.amount} ${observation.currency}`;\n }\n}\nfunction traceEntryTree(entry: Extract<AttemptObservabilityDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>, props: AttemptTraceProps) {\n const detail = entry.detail;\n const filter = props.grep === undefined ? undefined : new RegExp(props.grep);\n const conversationRows = detail.conversation.items\n .map((item) => ({\n key: item.itemId,\n sequence: item.sequence,\n turn: item.turnId,\n event: item.kind,\n detail: conversationText(item),\n }))\n .filter((row) => filter === undefined || filter.test(`${row.event}\\n${row.detail}`));\n const commands = detail.commands.entries.map((command) => ({\n key: command.commandId,\n phase: command.manifest.phase,\n command: commandText(command).invocation,\n outcome: commandText(command).outcome,\n workingDirectory: command.manifest.workingDirectory.kind === \"project-relative\"\n ? command.manifest.workingDirectory.path\n : command.manifest.workingDirectory.kind,\n })).filter((row) => filter === undefined || filter.test(`${row.command}\\n${row.outcome}`));\n const timings = detail.timing.intervals.map((interval) => ({\n key: interval.intervalId,\n phase: interval.phase,\n label: interval.label,\n startMs: interval.startOffsetMs,\n durationMs: interval.durationMs,\n outcome: interval.outcome,\n parent: props.timingMode === \"full\" ? interval.parentIntervalId : null,\n }));\n const usage = detail.usage.observations.map((observation, index) => ({\n key: `${observation.provider}:${observation.kind}:${index}`,\n provider: observation.provider,\n kind: observation.kind,\n value: usageValue(observation),\n }));\n const diagnostics = detail.diagnostics.diagnostics.map((diagnostic) => ({\n key: diagnostic.diagnosticId,\n kind: diagnostic.kind,\n phase: diagnostic.phase,\n code: diagnostic.code,\n summary: diagnostic.summary,\n redaction: diagnostic.redaction.state === \"applied\" ? `${diagnostic.redaction.replacements} replacements` : \"none\",\n }));\n if (props.mode === \"timing\") {\n return (<Section title={`Timing · ${entry.attempt.locator}`} meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={timings} columns={props.timingMode === \"full\"\n ? [\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\", \"parent\"]\n : [\"phase\", \"label\", \"durationMs\", \"outcome\"]}/>)}\n </Section>);\n }\n return (<Section title={`Execution trace · ${entry.attempt.locator}`} meta={detail.conversation.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n turns: detail.conversation.turns.length,\n conversationItems: detail.conversation.items.length,\n commands: detail.commands.entries.length,\n timingIntervals: detail.timing.intervals.length,\n diagnostics: detail.diagnostics.diagnostics.length,\n }]} columns={[\"turns\", \"conversationItems\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>\n <Section title=\"Conversation\" meta={detail.conversation.collection.state}>\n {conversationRows.length === 0 ? <Text>No recorded conversation entries match this view.</Text> : (<Table rows={limited(conversationRows)} columns={[\"sequence\", \"turn\", \"event\", \"detail\"]}/>)}\n {omittedText(conversationRows.length, Math.min(conversationRows.length, DETAIL_ROWS_MAX), \"conversation entries\")}\n </Section>\n <Section title=\"Commands\" meta={detail.commands.collection.state}>\n {commands.length === 0 ? <Text>No recorded commands match this view.</Text> : (<Table rows={limited(commands)} columns={[\"phase\", \"command\", \"outcome\", \"workingDirectory\"]}/>)}\n {omittedText(commands.length, Math.min(commands.length, DETAIL_ROWS_MAX), \"commands\")}\n </Section>\n <Section title=\"Timing\" meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={limited(timings)} columns={[\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\"]}/>)}\n </Section>\n <Section title=\"Usage\" meta={detail.usage.collection.state}>\n {usage.length === 0 ? <Text>No recorded provider usage.</Text> : <Table rows={limited(usage)} columns={[\"provider\", \"kind\", \"value\"]}/>}\n </Section>\n <Section title=\"Diagnostics\" meta={detail.diagnostics.collection.state}>\n {diagnostics.length === 0 ? <Text>No recorded diagnostics.</Text> : (<Table rows={limited(diagnostics)} columns={[\"kind\", \"phase\", \"code\", \"summary\", \"redaction\"]}/>)}\n </Section>\n </Section>);\n}\nfunction attemptTraceTree(props: AttemptTraceProps) {\n const entries = props.view.entries\n .filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator)\n .slice(0, DETAIL_ROWS_MAX);\n return (<Col>\n {entries.length === 0 ? <Section title={props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"}><Text>No matching closed trace data.</Text></Section> : null}\n {entries.map((entry) => entry.state === \"available\"\n ? <>{traceEntryTree(entry, props)}</>\n : <Section key={entry.attempt.locator} title={`${props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"} · ${entry.attempt.locator}`}><Text>{`Trace data is ${entry.state}.`}</Text></Section>)}\n {issueSection(props.view)}\n </Col>);\n}\n/** Execution and timing never query: their only input is a closed observability DomainView. */\nexport const AttemptTrace = defineComponent<AttemptTraceProps>((props) => attemptTraceTree(props));\nAttemptTrace.displayName = \"AttemptTrace\";\nfunction endpointText(endpoint: {\n readonly state: \"absent\";\n} | {\n readonly state: \"present\";\n readonly revision: {\n readonly kind: string;\n };\n}): string {\n return endpoint.state === \"absent\" ? \"absent\" : endpoint.revision.kind;\n}\nfunction fileChangesTree(props: FileChangesTrajectoryProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"File changes\"><Text>No matching closed file-change data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`}><Text>{`File changes are ${entry.state}.`}</Text></Section>;\n }\n const changes = entry.detail.trajectory.flatMap((window) => window.changes.map((change) => ({\n key: `${window.windowId}:${change.changeId}`,\n window: window.sequence,\n path: change.path,\n kind: change.kind,\n before: endpointText(change.before),\n after: endpointText(change.after),\n })));\n const paths = entry.detail.paths.map((path) => ({\n key: path.path,\n path: path.path,\n changes: path.changes.length,\n net: path.net.state === \"available\" ? path.net.kind : path.net.reason,\n }));\n return (<Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`} meta={entry.detail.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n attribution: entry.detail.attribution.kind,\n windows: entry.detail.trajectory.length,\n paths: entry.detail.paths.length,\n limitations: entry.detail.collection.limitations.length,\n }]} columns={[\"attribution\", \"windows\", \"paths\", \"limitations\"]}/>\n <Section title=\"Change trajectory\">\n {changes.length === 0 ? <Text>No retained changed paths.</Text> : <Table rows={limited(changes)} columns={[\"window\", \"path\", \"kind\", \"before\", \"after\"]}/>}\n {omittedText(changes.length, Math.min(changes.length, DETAIL_ROWS_MAX), \"file changes\")}\n </Section>\n <Section title=\"Path summary\">\n {paths.length === 0 ? <Text>No retained path summaries.</Text> : <Table rows={limited(paths)} columns={[\"path\", \"changes\", \"net\"]}/>}\n </Section>\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const FileChangesTrajectory = defineComponent<FileChangesTrajectoryProps>((props) => fileChangesTree(props));\nFileChangesTrajectory.displayName = \"FileChangesTrajectory\";\nfunction sourceContentText(content: {\n readonly state: \"available\";\n readonly text: string;\n} | {\n readonly state: \"unavailable\" | \"binary\";\n}): string {\n if (content.state !== \"available\")\n return content.state;\n return content.text.length <= SOURCE_TEXT_MAX\n ? content.text\n : `${content.text.slice(0, SOURCE_TEXT_MAX)}\\n… source text truncated for this page.`;\n}\nfunction sourcesTree(props: SourcesResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"Recorded source\"><Text>No matching closed source data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}><Text>{`Sources are ${entry.state}.`}</Text></Section>;\n }\n const items = entry.detail.items.filter((item) => props.file === undefined || item.path === props.file);\n return (<Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}>\n {items.length === 0 ? <Text>{props.file === undefined ? \"No recorded source files.\" : `No recorded source matches ${props.file}.`}</Text> : null}\n {items.map((item) => (<Section key={item.sourceItemId} title={item.path} meta={item.sha256}>\n <Table rows={[{\n key: item.sourceItemId,\n sourceItem: item.sourceItemId,\n content: item.content.state,\n }]} columns={[\"sourceItem\", \"content\"]}/>\n <Text>{sourceContentText(item.content)}</Text>\n </Section>))}\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const SourcesResultView = defineComponent<SourcesResultProps>((props) => sourcesTree(props));\nSourcesResultView.displayName = \"SourcesResultView\";\nfunction sandboxTree(props: SandboxHistoryResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n const rows = entries.map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n state: entry.state,\n commands: entry.state === \"available\" ? entry.detail.commands.entries.length : null,\n timingIntervals: entry.state === \"available\" ? entry.detail.timing.intervals.length : null,\n diagnostics: entry.state === \"available\" ? entry.detail.diagnostics.diagnostics.length : null,\n }));\n return (<Section title=\"Sandbox history\" meta={`${rows.length} attempt${rows.length === 1 ? \"\" : \"s\"}`}>\n {rows.length === 0 ? <Text>No matching closed sandbox history.</Text> : (<Table rows={limited(rows)} columns={[\"locator\", \"state\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>)}\n {omittedText(rows.length, Math.min(rows.length, DETAIL_ROWS_MAX), \"sandbox history rows\")}\n {issueSection(props.view)}\n </Section>);\n}\nexport const SandboxHistoryResultView = defineComponent<SandboxHistoryResultProps>((props) => sandboxTree(props));\nSandboxHistoryResultView.displayName = \"SandboxHistoryResultView\";\nfunction runMembershipTree(input: RunMembershipResult) {\n const summary = input.summary[0];\n return (<Col>\n <Hero data={input.hero}/>\n <Grid>\n <Stat label=\"Pass rate\" value={summary === undefined ? null : metricCell(summary.passRate)}/>\n <Stat label=\"Included attempts\" value={input.members.filter((member) => member.state === \"included\").length}/>\n </Grid>\n <Section title=\"Run membership\" meta={`${input.members.length} slots`}>\n {membershipTable(limited(input.members))}\n {omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), \"membership rows\")}\n </Section>\n <AttemptEvidenceResultView view={input.evidence}/>\n {issueSection(input.summary)}\n </Col>);\n}\nexport const RunMembershipResultView = defineComponent<RunMembershipResult>((input) => runMembershipTree(input));\nRunMembershipResultView.displayName = \"RunMembershipResultView\";\nfunction attemptDetailTree(input: AttemptDetailResult) {\n const locator = input.locator ?? undefined;\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Attempt · ${input.locator ?? \"unavailable\"}`}>\n {membershipTable(input.members)}\n </Section>\n <AttemptEvidenceResultView view={input.evidence} locator={locator}/>\n <AttemptTrace view={input.observability} locator={locator} mode=\"execution\" timingMode=\"full\"/>\n <FileChangesTrajectory view={input.fileChanges} locator={locator}/>\n <SourcesResultView view={input.sources} locator={locator}/>\n <SandboxHistoryResultView view={input.sandbox} locator={locator}/>\n </Col>);\n}\nexport const AttemptDetailResultView = defineComponent<AttemptDetailResult>((input) => attemptDetailTree(input));\nAttemptDetailResultView.displayName = \"AttemptDetailResultView\";\nfunction experimentDetailTree(input: ExperimentDetailResult) {\n const rows = input.rows.filter((row) => String(row.experiment) === input.experiment);\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Experiment · ${input.experiment}`}>\n <Table rows={rows} columns={[\"experiment\", \"passRate\", \"durationMs\", \"tokens\"]}/>\n </Section>\n <Section title=\"Experiment members\" meta={`${input.members.length} slots`}>\n {membershipTable(limited(input.members))}\n {omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), \"member rows\")}\n </Section>\n {issueSection(input.rows)}\n </Col>);\n}\nexport const ExperimentDetailResultView = defineComponent<ExperimentDetailResult>((input) => experimentDetailTree(input));\nExperimentDetailResultView.displayName = \"ExperimentDetailResultView\";\nfunction jsonText(value: JsonValue): string {\n const text = JSON.stringify(value);\n return text.length <= 1000 ? text : `${text.slice(0, 1000)}…`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"result-components.js","sourceRoot":"","sources":["result-components.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Built-in report composition over already-closed values.\n *\n * Nothing in this module accepts a Sample, storage capability, attachment, or\n * Effect Scope. Page loaders own Analysis and DomainView acquisition; these\n * components only arrange their rows and views into the report product.\n */\nimport type { AttemptEvidenceDomainView, AttemptObservabilityDomainView, ClosedCommandEntry, ClosedConversationItem, ClosedUsageObservation, ExperimentId, FileChangesDomainView, JsonValue, MetricValue, SandboxHistoryDomainView, SourcesDomainView, } from \"../../analysis/index.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\nimport { Hero, type HeroData } from \"../components/site-components/index.tsx\";\nimport { defineComponent } from \"../definition/tree.ts\";\nimport { Bars, Col, Grid, Section, Stat, Table, Text, } from \"../definition/primitives.tsx\";\nimport type { Cell } from \"../definition/cell.tsx\";\nimport { evidenceRow } from \"../model/metrics.ts\";\nimport { experimentDetailTarget } from \"../library/details.ts\";\nimport type { BuiltInAttemptRows, BuiltInExperimentRows, BuiltInSummaryRows, } from \"./analysis-values.ts\";\nconst DETAIL_ROWS_MAX = 200;\nconst SOURCE_TEXT_MAX = 12000;\nexport interface OverviewCounts {\n readonly experiments: number;\n readonly attempts: number;\n readonly expectedResults: number;\n}\n/** Display-safe membership facts prepared by the Page loader from Snapshot. */\nexport interface MembershipRow {\n readonly key: string;\n readonly experiment: string;\n readonly eval: string;\n readonly attempt: number;\n readonly selectedRun: string;\n readonly slot: string;\n readonly state: string;\n readonly relation: string | null;\n readonly locator: string | null;\n readonly outcome?: string | null;\n readonly phase?: string | null;\n readonly error?: string | null;\n readonly sharedFailure?: string | null;\n}\nexport interface RunErrorRow {\n readonly key: string;\n readonly failure: string;\n readonly phase: string;\n readonly affected: string;\n readonly error: string;\n readonly message: string;\n readonly fix: string | null;\n}\nexport interface StandardOverviewResult {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly experiments: BuiltInExperimentRows;\n readonly counts: OverviewCounts;\n}\nexport interface StandardAttemptsResult {\n readonly hero: HeroData;\n readonly attempts: BuiltInAttemptRows;\n}\nexport interface ExperimentDetailResult {\n readonly hero: HeroData;\n readonly experiment: string;\n readonly rows: BuiltInExperimentRows;\n readonly members: readonly MembershipRow[];\n}\nexport interface AttemptDetailResult {\n readonly hero: HeroData;\n readonly locator: AttemptLocator | null;\n readonly members: readonly MembershipRow[];\n readonly evidence: AttemptEvidenceDomainView;\n readonly observability: AttemptObservabilityDomainView;\n readonly fileChanges: FileChangesDomainView;\n readonly sources: SourcesDomainView;\n readonly sandbox: SandboxHistoryDomainView;\n}\nexport interface RunMembershipResult {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly members: readonly MembershipRow[];\n readonly errors: readonly RunErrorRow[];\n readonly evidence: AttemptEvidenceDomainView;\n}\nexport interface AttemptTraceProps {\n readonly view: AttemptObservabilityDomainView;\n readonly locator?: AttemptLocator;\n readonly mode: \"execution\" | \"timing\";\n readonly grep?: string;\n readonly timingMode?: \"summary\" | \"full\";\n}\nexport interface FileChangesTrajectoryProps {\n readonly view: FileChangesDomainView;\n readonly locator?: AttemptLocator;\n}\nexport interface SourcesResultProps {\n readonly view: SourcesDomainView;\n readonly locator?: AttemptLocator;\n readonly file?: string;\n}\nexport interface SandboxHistoryResultProps {\n readonly view: SandboxHistoryDomainView;\n readonly locator?: AttemptLocator;\n}\nfunction metricCell(metric: MetricValue): Cell {\n return { kind: \"metric\", metric };\n}\nfunction metricValueOnlyCell(metric: MetricValue): Cell {\n return { kind: \"metric\", metric, showCoverage: false };\n}\nfunction limited<Row>(rows: readonly Row[], maximum = DETAIL_ROWS_MAX): readonly Row[] {\n return rows.slice(0, maximum);\n}\nfunction omittedText(total: number, visible: number, label: string) {\n return total === visible ? null : <Text>{`${total - visible} additional ${label} omitted from this page.`}</Text>;\n}\nfunction issueRows(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n return view.issues.map((issue, index) => ({\n key: `${issue.code}:${index}`,\n code: issue.code,\n message: issue.message,\n }));\n}\nfunction issueSection(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n const rows = issueRows(view);\n return rows.length === 0 ? null : (<Section title=\"Analysis notes\" meta={`${rows.length}`}>\n <Table rows={rows} columns={[\"code\", \"message\"]}/>\n </Section>);\n}\nfunction heroAndKpis(input: StandardOverviewResult) {\n const summary = input.summary[0];\n const hasScore = input.experiments.some((row) => row.evaluationKind !== \"pass\");\n const hasPassSummary = input.experiments.length > 0 && input.experiments.every((row) => row.evaluationKind === \"pass\");\n const scores = input.experiments.flatMap((row) => row.totalScore === undefined ? [] : [row.totalScore]);\n const meanScore = scores.length === 0 ? null : scores.reduce((sum, score) => sum + score, 0) / scores.length;\n return (<>\n <Hero data={input.hero}/>\n <Grid>\n {hasPassSummary ? <Stat label=\"Pass rate\" value={summary === undefined ? null : metricValueOnlyCell(summary.passRate)}/> : null}\n {hasScore ? <Stat label=\"Mean score\" value={meanScore}/> : null}\n <Stat label=\"Mean duration\" value={summary === undefined ? null : metricValueOnlyCell(summary.durationMs)}/>\n <Stat label=\"Mean tokens\" value={summary === undefined ? null : metricValueOnlyCell(summary.tokens)}/>\n <Stat label=\"Experiments\" value={input.counts.experiments}/>\n <Stat label=\"Included attempts\" value={input.counts.attempts}/>\n </Grid>\n </>);\n}\nfunction resultCoverageSection(counts: OverviewCounts) {\n if (counts.attempts >= counts.expectedResults)\n return null;\n return (<Section title=\"Result coverage\" meta={`${counts.attempts} of ${counts.expectedResults} results available`}>\n <Text>Some expected results do not have an analyzable Attempt. Result coverage is not a score or pass rate.</Text>\n </Section>);\n}\nfunction experimentPoints(rows: BuiltInExperimentRows) {\n return rows.filter((row) => row.passRate !== null).map((row) => evidenceRow({\n experiment: String(row.experiment),\n passRate: row.passRate!,\n durationMs: row.durationMs,\n }));\n}\nfunction experimentTarget(experiment: string) {\n return { page: \"experiment\", params: experimentDetailTarget(experiment as ExperimentId) };\n}\nfunction standardOverviewTree(input: StandardOverviewResult) {\n const hasScore = input.experiments.some((row) => row.evaluationKind !== \"pass\");\n const hasPass = input.experiments.some((row) => row.evaluationKind === \"pass\");\n const points = experimentPoints(input.experiments);\n const columns = [\n { field: \"experiment\", label: \"Experiment\" },\n ...(hasPass ? [{ field: \"passRate\", label: \"Pass rate\" }] : []),\n ...(hasScore ? [{ field: \"totalScore\", label: \"Score\" }] : []),\n { field: \"durationMs\", label: \"Mean duration\" },\n { field: \"tokens\", label: \"Mean tokens\" },\n ];\n const tableRows = input.experiments.map((row) => ({\n ...row,\n passRate: row.passRate === null ? null : metricValueOnlyCell(row.passRate),\n totalScore: row.totalScore ?? null,\n durationMs: metricValueOnlyCell(row.durationMs),\n tokens: metricValueOnlyCell(row.tokens),\n }));\n return (<Col>\n {heroAndKpis(input)}\n {resultCoverageSection(input.counts)}\n <Section title=\"Experiment results\" meta={`${input.experiments.length} experiments`}>\n {input.experiments.length === 0 ? <Text>No experiment rows are available for this selection.</Text> : !hasPass ? null : (<Col>\n <Bars points={points} x=\"experiment\" y=\"passRate\" point=\"experiment\" pointTarget={(point) => experimentTarget(point.key)} sort={{ field: \"passRate\", direction: \"desc\" }} layout=\"horizontal\"/>\n </Col>)}\n <Table rows={tableRows} columns={columns}/>\n </Section>\n {issueSection(input.experiments)}\n </Col>);\n}\n/** The default product overview: Hero, exactly six KPIs, Bars, Scatter, and Table. */\nexport const StandardOverviewResultView = defineComponent<StandardOverviewResult>((input) => standardOverviewTree(input));\nStandardOverviewResultView.displayName = \"StandardOverviewResultView\";\nfunction standardAttemptsTree(input: StandardAttemptsResult) {\n const rows = input.attempts.map((row) => ({\n ...row,\n attempt: typeof row.attempt === \"string\"\n ? { kind: \"locator\" as const, locator: row.attempt as AttemptLocator }\n : row.attempt,\n }));\n return (<Col>\n <Hero data={input.hero}/>\n <Section title=\"Attempts\" meta={`${input.attempts.length} attempts`}>\n <Table rows={rows} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"evalId\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"passRate\", label: \"Pass rate\" },\n { field: \"durationMs\", label: \"Mean duration\" },\n { field: \"tokens\", label: \"Mean tokens\" },\n ]}/>\n </Section>\n {issueSection(input.attempts)}\n </Col>);\n}\nexport const StandardAttemptsResultView = defineComponent<StandardAttemptsResult>((input) => standardAttemptsTree(input));\nStandardAttemptsResultView.displayName = \"StandardAttemptsResultView\";\nfunction membershipTable(rows: readonly MembershipRow[]) {\n const normalized = rows.map((row) => ({\n ...row,\n outcome: row.outcome ?? null,\n phase: row.phase ?? null,\n error: row.error ?? null,\n sharedFailure: row.sharedFailure ?? null,\n }));\n return (<Table rows={normalized} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"eval\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"state\", label: \"Membership\" },\n { field: \"outcome\", label: \"Outcome\" },\n { field: \"error\", label: \"Error\" },\n { field: \"phase\", label: \"Phase\" },\n { field: \"sharedFailure\", label: \"Shared failure\" },\n { field: \"locator\", label: \"Attempt locator\" },\n { field: \"selectedRun\", label: \"Selected run\" },\n { field: \"slot\", label: \"Slot\" },\n { field: \"relation\", label: \"Relation\" },\n ]}/>);\n}\nfunction runErrorsSection(rows: readonly RunErrorRow[]) {\n return rows.length === 0 ? null : (<Section title=\"Run errors\" meta={`${rows.length} shared failure${rows.length === 1 ? \"\" : \"s\"}`}>\n {rows.map((row) => (<Section key={row.key} title={`${row.error} · ${row.failure}`}>\n <Text>{`phase: ${row.phase}`}</Text>\n <Text>{`affected: ${row.affected}`}</Text>\n <Text>{row.message}</Text>\n {row.fix === null ? null : <Text>{`fix: ${row.fix}`}</Text>}\n </Section>))}\n </Section>);\n}\nfunction evidenceEntryRows(view: AttemptEvidenceDomainView, locator?: AttemptLocator) {\n return view.entries\n .filter((entry) => locator === undefined || entry.attempt.locator === locator)\n .map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n originRun: entry.attempt.originRunId,\n state: entry.state,\n outcome: entry.state === \"available\" ? entry.detail.outcome : null,\n verdict: entry.state === \"available\" ? entry.detail.verdict : null,\n assertions: entry.state === \"available\" ? entry.detail.entries.length : null,\n sourceSites: entry.state === \"available\" ? entry.detail.sourceSites.length : null,\n }));\n}\nfunction assertionRows(entry: Extract<AttemptEvidenceDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>) {\n return entry.detail.entries.map((assertion) => ({\n key: assertion.entryId,\n assertion: assertion.entryId,\n display: jsonText(assertion.display),\n criterion: jsonText(assertion.criterion),\n result: jsonText(assertion.result),\n coverage: jsonText(assertion.coverage),\n }));\n}\nfunction attemptEvidenceTree(props: {\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}) {\n const entries = evidenceEntryRows(props.view, props.locator);\n const visible = limited(entries);\n const available = props.view.entries.filter((entry): entry is Extract<typeof entry, {\n readonly state: \"available\";\n }> => (props.locator === undefined || entry.attempt.locator === props.locator) && entry.state === \"available\");\n return (<Section title=\"Assessment evidence\" meta={`${entries.length} attempt${entries.length === 1 ? \"\" : \"s\"}`}>\n {visible.length === 0 ? <Text>No closed assessment evidence matches this target.</Text> : (<Table rows={visible} columns={[\"locator\", \"originRun\", \"state\", \"outcome\", \"verdict\", \"assertions\", \"sourceSites\"]}/>)}\n {omittedText(entries.length, visible.length, \"assessment evidence rows\")}\n {available.map((entry) => {\n const assertions = limited(assertionRows(entry));\n return (<Section key={entry.attempt.locator} title={`Assertions · ${entry.attempt.locator}`}>\n {assertions.length === 0 ? <Text>No recorded assertions.</Text> : (<Table rows={assertions} columns={[\"assertion\", \"display\", \"criterion\", \"result\", \"coverage\"]}/>)}\n {omittedText(entry.detail.entries.length, assertions.length, \"assertions\")}\n </Section>);\n })}\n {issueSection(props.view)}\n </Section>);\n}\nexport const AttemptEvidenceResultView = defineComponent<{\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}>((props) => attemptEvidenceTree(props));\nAttemptEvidenceResultView.displayName = \"AttemptEvidenceResultView\";\nfunction conversationText(item: ClosedConversationItem): string {\n switch (item.kind) {\n case \"message\":\n return `${item.role}: ${item.text}`;\n case \"tool-call\":\n return `${item.tool}(${item.inputSummary})`;\n case \"tool-result\":\n return `${item.outcome}: ${item.outputSummary}`;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n return item.summary;\n case \"subagent\":\n return `${item.label} · ${item.state} · ${item.summary}`;\n case \"input-request\":\n return `${item.state} · ${item.promptSummary}${item.responseSummary === null ? \"\" : ` · ${item.responseSummary}`}`;\n case \"skill-load\":\n case \"conversation-error\":\n return `${item.code} · ${item.summary}`;\n }\n}\nfunction commandText(command: ClosedCommandEntry) {\n const invocation = command.manifest.invocation.kind === \"argv\"\n ? [command.manifest.invocation.executable, ...command.manifest.invocation.arguments].join(\" \")\n : command.manifest.invocation.command;\n const outcome = command.result.outcome.kind === \"exited\"\n ? `exit ${command.result.outcome.exitCode}`\n : `${command.result.outcome.kind}: ${command.result.outcome.reason}`;\n return { invocation, outcome };\n}\nfunction usageValue(observation: ClosedUsageObservation) {\n switch (observation.kind) {\n case \"token-bucket\":\n return `${observation.bucket}: ${observation.tokens}`;\n case \"request\":\n return observation.requestKind;\n case \"provider-cost\":\n return `${observation.amount} ${observation.currency}`;\n }\n}\nfunction traceEntryTree(entry: Extract<AttemptObservabilityDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>, props: AttemptTraceProps) {\n const detail = entry.detail;\n const filter = props.grep === undefined ? undefined : new RegExp(props.grep);\n const conversationRows = detail.conversation.items\n .map((item) => ({\n key: item.itemId,\n sequence: item.sequence,\n turn: item.turnId,\n event: item.kind,\n detail: conversationText(item),\n }))\n .filter((row) => filter === undefined || filter.test(`${row.event}\\n${row.detail}`));\n const commands = detail.commands.entries.map((command) => ({\n key: command.commandId,\n phase: command.manifest.phase,\n command: commandText(command).invocation,\n outcome: commandText(command).outcome,\n workingDirectory: command.manifest.workingDirectory.kind === \"project-relative\"\n ? command.manifest.workingDirectory.path\n : command.manifest.workingDirectory.kind,\n })).filter((row) => filter === undefined || filter.test(`${row.command}\\n${row.outcome}`));\n const timings = detail.timing.intervals.map((interval) => ({\n key: interval.intervalId,\n phase: interval.phase,\n label: interval.label,\n startMs: interval.startOffsetMs,\n durationMs: interval.durationMs,\n outcome: interval.outcome,\n parent: props.timingMode === \"full\" ? interval.parentIntervalId : null,\n }));\n const usage = detail.usage.observations.map((observation, index) => ({\n key: `${observation.provider}:${observation.kind}:${index}`,\n provider: observation.provider,\n kind: observation.kind,\n value: usageValue(observation),\n }));\n const diagnostics = detail.diagnostics.diagnostics.map((diagnostic) => ({\n key: diagnostic.diagnosticId,\n kind: diagnostic.kind,\n phase: diagnostic.phase,\n code: diagnostic.code,\n summary: diagnostic.summary,\n redaction: diagnostic.redaction.state === \"applied\" ? `${diagnostic.redaction.replacements} replacements` : \"none\",\n }));\n if (props.mode === \"timing\") {\n return (<Section title={`Timing · ${entry.attempt.locator}`} meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={timings} columns={props.timingMode === \"full\"\n ? [\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\", \"parent\"]\n : [\"phase\", \"label\", \"durationMs\", \"outcome\"]}/>)}\n </Section>);\n }\n return (<Section title={`Execution trace · ${entry.attempt.locator}`} meta={detail.conversation.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n turns: detail.conversation.turns.length,\n conversationItems: detail.conversation.items.length,\n commands: detail.commands.entries.length,\n timingIntervals: detail.timing.intervals.length,\n diagnostics: detail.diagnostics.diagnostics.length,\n }]} columns={[\"turns\", \"conversationItems\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>\n <Section title=\"Conversation\" meta={detail.conversation.collection.state}>\n {conversationRows.length === 0 ? <Text>No recorded conversation entries match this view.</Text> : (<Table rows={limited(conversationRows)} columns={[\"sequence\", \"turn\", \"event\", \"detail\"]}/>)}\n {omittedText(conversationRows.length, Math.min(conversationRows.length, DETAIL_ROWS_MAX), \"conversation entries\")}\n </Section>\n <Section title=\"Commands\" meta={detail.commands.collection.state}>\n {commands.length === 0 ? <Text>No recorded commands match this view.</Text> : (<Table rows={limited(commands)} columns={[\"phase\", \"command\", \"outcome\", \"workingDirectory\"]}/>)}\n {omittedText(commands.length, Math.min(commands.length, DETAIL_ROWS_MAX), \"commands\")}\n </Section>\n <Section title=\"Timing\" meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={limited(timings)} columns={[\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\"]}/>)}\n </Section>\n <Section title=\"Usage\" meta={detail.usage.collection.state}>\n {usage.length === 0 ? <Text>No recorded provider usage.</Text> : <Table rows={limited(usage)} columns={[\"provider\", \"kind\", \"value\"]}/>}\n </Section>\n <Section title=\"Diagnostics\" meta={detail.diagnostics.collection.state}>\n {diagnostics.length === 0 ? <Text>No recorded diagnostics.</Text> : (<Table rows={limited(diagnostics)} columns={[\"kind\", \"phase\", \"code\", \"summary\", \"redaction\"]}/>)}\n </Section>\n </Section>);\n}\nfunction attemptTraceTree(props: AttemptTraceProps) {\n const entries = props.view.entries\n .filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator)\n .slice(0, DETAIL_ROWS_MAX);\n return (<Col>\n {entries.length === 0 ? <Section title={props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"}><Text>No matching closed trace data.</Text></Section> : null}\n {entries.map((entry) => entry.state === \"available\"\n ? <>{traceEntryTree(entry, props)}</>\n : <Section key={entry.attempt.locator} title={`${props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"} · ${entry.attempt.locator}`}><Text>{`Trace data is ${entry.state}.`}</Text></Section>)}\n {issueSection(props.view)}\n </Col>);\n}\n/** Execution and timing never query: their only input is a closed observability DomainView. */\nexport const AttemptTrace = defineComponent<AttemptTraceProps>((props) => attemptTraceTree(props));\nAttemptTrace.displayName = \"AttemptTrace\";\nfunction endpointText(endpoint: {\n readonly state: \"absent\";\n} | {\n readonly state: \"present\";\n readonly revision: {\n readonly kind: string;\n };\n}): string {\n return endpoint.state === \"absent\" ? \"absent\" : endpoint.revision.kind;\n}\nfunction fileChangesTree(props: FileChangesTrajectoryProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"File changes\"><Text>No matching closed file-change data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`}><Text>{`File changes are ${entry.state}.`}</Text></Section>;\n }\n const changes = entry.detail.trajectory.flatMap((window) => window.changes.map((change) => ({\n key: `${window.windowId}:${change.changeId}`,\n window: window.sequence,\n path: change.path,\n kind: change.kind,\n before: endpointText(change.before),\n after: endpointText(change.after),\n })));\n const paths = entry.detail.paths.map((path) => ({\n key: path.path,\n path: path.path,\n changes: path.changes.length,\n net: path.net.state === \"available\" ? path.net.kind : path.net.reason,\n }));\n return (<Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`} meta={entry.detail.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n attribution: entry.detail.attribution.kind,\n windows: entry.detail.trajectory.length,\n paths: entry.detail.paths.length,\n limitations: entry.detail.collection.limitations.length,\n }]} columns={[\"attribution\", \"windows\", \"paths\", \"limitations\"]}/>\n <Section title=\"Change trajectory\">\n {changes.length === 0 ? <Text>No retained changed paths.</Text> : <Table rows={limited(changes)} columns={[\"window\", \"path\", \"kind\", \"before\", \"after\"]}/>}\n {omittedText(changes.length, Math.min(changes.length, DETAIL_ROWS_MAX), \"file changes\")}\n </Section>\n <Section title=\"Path summary\">\n {paths.length === 0 ? <Text>No retained path summaries.</Text> : <Table rows={limited(paths)} columns={[\"path\", \"changes\", \"net\"]}/>}\n </Section>\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const FileChangesTrajectory = defineComponent<FileChangesTrajectoryProps>((props) => fileChangesTree(props));\nFileChangesTrajectory.displayName = \"FileChangesTrajectory\";\nfunction sourceContentText(content: {\n readonly state: \"available\";\n readonly text: string;\n} | {\n readonly state: \"unavailable\" | \"binary\";\n}): string {\n if (content.state !== \"available\")\n return content.state;\n return content.text.length <= SOURCE_TEXT_MAX\n ? content.text\n : `${content.text.slice(0, SOURCE_TEXT_MAX)}\\n… source text truncated for this page.`;\n}\nfunction sourcesTree(props: SourcesResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"Recorded source\"><Text>No matching closed source data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}><Text>{`Sources are ${entry.state}.`}</Text></Section>;\n }\n const items = entry.detail.items.filter((item) => props.file === undefined || item.path === props.file);\n return (<Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}>\n {items.length === 0 ? <Text>{props.file === undefined ? \"No recorded source files.\" : `No recorded source matches ${props.file}.`}</Text> : null}\n {items.map((item) => (<Section key={item.sourceItemId} title={item.path} meta={item.sha256}>\n <Table rows={[{\n key: item.sourceItemId,\n sourceItem: item.sourceItemId,\n content: item.content.state,\n }]} columns={[\"sourceItem\", \"content\"]}/>\n <Text>{sourceContentText(item.content)}</Text>\n </Section>))}\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const SourcesResultView = defineComponent<SourcesResultProps>((props) => sourcesTree(props));\nSourcesResultView.displayName = \"SourcesResultView\";\nfunction sandboxTree(props: SandboxHistoryResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n const rows = entries.map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n state: entry.state,\n commands: entry.state === \"available\" ? entry.detail.commands.entries.length : null,\n timingIntervals: entry.state === \"available\" ? entry.detail.timing.intervals.length : null,\n diagnostics: entry.state === \"available\" ? entry.detail.diagnostics.diagnostics.length : null,\n }));\n return (<Section title=\"Sandbox history\" meta={`${rows.length} attempt${rows.length === 1 ? \"\" : \"s\"}`}>\n {rows.length === 0 ? <Text>No matching closed sandbox history.</Text> : (<Table rows={limited(rows)} columns={[\"locator\", \"state\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>)}\n {omittedText(rows.length, Math.min(rows.length, DETAIL_ROWS_MAX), \"sandbox history rows\")}\n {issueSection(props.view)}\n </Section>);\n}\nexport const SandboxHistoryResultView = defineComponent<SandboxHistoryResultProps>((props) => sandboxTree(props));\nSandboxHistoryResultView.displayName = \"SandboxHistoryResultView\";\nfunction runMembershipTree(input: RunMembershipResult) {\n const summary = input.summary[0];\n return (<Col>\n <Hero data={input.hero}/>\n <Grid>\n <Stat label=\"Pass rate\" value={summary === undefined ? null : metricCell(summary.passRate)}/>\n <Stat label=\"Included attempts\" value={input.members.filter((member) => member.state === \"included\").length}/>\n </Grid>\n <Section title=\"Run membership\" meta={`${input.members.length} slots`}>\n {membershipTable(limited(input.members))}\n {omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), \"membership rows\")}\n </Section>\n {runErrorsSection(input.errors)}\n <AttemptEvidenceResultView view={input.evidence}/>\n {issueSection(input.summary)}\n </Col>);\n}\nexport const RunMembershipResultView = defineComponent<RunMembershipResult>((input) => runMembershipTree(input));\nRunMembershipResultView.displayName = \"RunMembershipResultView\";\nfunction attemptDetailTree(input: AttemptDetailResult) {\n const locator = input.locator ?? undefined;\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Attempt · ${input.locator ?? \"unavailable\"}`}>\n {membershipTable(input.members)}\n </Section>\n <AttemptEvidenceResultView view={input.evidence} locator={locator}/>\n <AttemptTrace view={input.observability} locator={locator} mode=\"execution\" timingMode=\"full\"/>\n <FileChangesTrajectory view={input.fileChanges} locator={locator}/>\n <SourcesResultView view={input.sources} locator={locator}/>\n <SandboxHistoryResultView view={input.sandbox} locator={locator}/>\n </Col>);\n}\nexport const AttemptDetailResultView = defineComponent<AttemptDetailResult>((input) => attemptDetailTree(input));\nAttemptDetailResultView.displayName = \"AttemptDetailResultView\";\nfunction experimentDetailTree(input: ExperimentDetailResult) {\n const rows = input.rows.filter((row) => String(row.experiment) === input.experiment);\n const hasScore = rows.some((row) => row.evaluationKind !== \"pass\");\n const hasPass = rows.some((row) => row.evaluationKind === \"pass\");\n const columns = [\n \"experiment\",\n ...(hasPass ? [\"passRate\"] : []),\n ...(hasScore ? [\"totalScore\"] : []),\n \"durationMs\",\n \"tokens\",\n ];\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Experiment · ${input.experiment}`}>\n <Table rows={rows} columns={columns}/>\n </Section>\n <Section title=\"Experiment members\" meta={`${input.members.length} slots`}>\n {membershipTable(limited(input.members))}\n {omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), \"member rows\")}\n </Section>\n {issueSection(input.rows)}\n </Col>);\n}\nexport const ExperimentDetailResultView = defineComponent<ExperimentDetailResult>((input) => experimentDetailTree(input));\nExperimentDetailResultView.displayName = \"ExperimentDetailResultView\";\nfunction jsonText(value: JsonValue): string {\n const text = JSON.stringify(value);\n return text.length <= 1000 ? text : `${text.slice(0, 1000)}…`;\n}\n"]}
|