@tangle-network/agent-eval 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/analyst/index.js +5 -5
- package/dist/{benchmark-command-BeDZB3BQ.js → benchmark-command-C3mZhNh7.js} +5 -5
- package/dist/{benchmark-command-BeDZB3BQ.js.map → benchmark-command-C3mZhNh7.js.map} +1 -1
- package/dist/benchmarks/index.js +3 -3
- package/dist/builder-eval/index.d.ts +1 -1
- package/dist/builder-eval/index.d.ts.map +1 -1
- package/dist/builder-eval/index.js +12 -138
- package/dist/builder-eval/index.js.map +1 -1
- package/dist/campaign/index.d.ts +2 -1
- package/dist/campaign/index.js +6 -5
- package/dist/{campaign-DKZiYHUq.js → campaign-CqCWhH7v.js} +5 -5
- package/dist/{campaign-DKZiYHUq.js.map → campaign-CqCWhH7v.js.map} +1 -1
- package/dist/cli.js +1 -1
- package/dist/contract/index.js +4 -4
- package/dist/{define-agent-eval-BVhGn7VV.js → define-agent-eval-BT1SOjkZ.js} +3 -3
- package/dist/{define-agent-eval-BVhGn7VV.js.map → define-agent-eval-BT1SOjkZ.js.map} +1 -1
- package/dist/{dspy-rlm-engine-C0zR2xiM.js → dspy-rlm-engine-Xt3znknf.js} +2 -2
- package/dist/{dspy-rlm-engine-C0zR2xiM.js.map → dspy-rlm-engine-Xt3znknf.js.map} +1 -1
- package/dist/{external-optimizer-process-DKgrrX0J.js → external-optimizer-process-BgitfZ-Q.js} +2 -2
- package/dist/{external-optimizer-process-DKgrrX0J.js.map → external-optimizer-process-BgitfZ-Q.js.map} +1 -1
- package/dist/{external-optimizer-subprocess-wzMaA0oN.js → external-optimizer-subprocess-CeHuAaMJ.js} +8 -17
- package/dist/{external-optimizer-subprocess-wzMaA0oN.js.map → external-optimizer-subprocess-CeHuAaMJ.js.map} +1 -1
- package/dist/{feedback-trajectory-Ck7K7AhK.d.ts → feedback-trajectory-BgomnFOe.d.ts} +2 -2
- package/dist/{feedback-trajectory-Ck7K7AhK.d.ts.map → feedback-trajectory-BgomnFOe.d.ts.map} +1 -1
- package/dist/{findings-store-DNSvmy8U.js → findings-store-Bp-0Guuv.js} +2 -2
- package/dist/{findings-store-DNSvmy8U.js.map → findings-store-Bp-0Guuv.js.map} +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -4
- package/dist/{llm-judge-BYBLxREr.js → llm-judge-BiUljZDR.js} +3 -3
- package/dist/{llm-judge-BYBLxREr.js.map → llm-judge-BiUljZDR.js.map} +1 -1
- package/dist/openapi.json +1 -1
- package/dist/{proposal-findings-duV5flPv.js → proposal-findings-BclX0PFh.js} +2 -2
- package/dist/{proposal-findings-duV5flPv.js.map → proposal-findings-BclX0PFh.js.map} +1 -1
- package/dist/sandbox-harness-BDr1GRm0.js +192 -0
- package/dist/sandbox-harness-BDr1GRm0.js.map +1 -0
- package/dist/sandbox-harness-CdO35T2g.d.ts +116 -0
- package/dist/sandbox-harness-CdO35T2g.d.ts.map +1 -0
- package/dist/{skillopt-optimization-method-DmfZz-2d.js → skillopt-optimization-method-DpasRfXS.js} +4 -4
- package/dist/{skillopt-optimization-method-DmfZz-2d.js.map → skillopt-optimization-method-DpasRfXS.js.map} +1 -1
- package/dist/traces.d.ts +1 -1
- package/dist/wire/index.d.ts +3 -3
- package/docs/concepts.md +22 -0
- package/package.json +1 -1
- package/dist/sandbox-harness-B3Kx1fOA.d.ts +0 -68
- package/dist/sandbox-harness-B3Kx1fOA.d.ts.map +0 -1
package/dist/traces.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { a as RunRecord, c as RunSplitTag, d as RunTokenUsage, u as RunTerminalO
|
|
|
4
4
|
import { $ as QueryTracesPage, G as ReadSpanSourceResult, H as createBoundedTraceAnalysisStore, J as TraceAnalysisStore, K as SpanSourceReader, Q as ErrorCluster, U as BoundedTraceAnalysisStoreOptions, W as ReadSpanSourceInput, X as DEFAULT_TRACE_ANALYST_BUDGETS, Y as TraceAnalysisStoreContext, Z as DatasetOverview, at as TraceAnalystSpan, ct as TraceAnalystTraceSummary, dt as ViewTraceResult, et as SearchSpanResult, it as TraceAnalystFilters, lt as ViewSpansResult, nt as SpanMatchRecord, ot as TraceAnalystSpanKind, q as TRACE_ANALYSIS_LIMITS, rt as TraceAnalystByteBudgets, st as TraceAnalystSpanStatus, tt as SearchTraceResult, ut as ViewTraceOversized } from "./types-DzCO-S1m.js";
|
|
5
5
|
import { G as InMemoryRawProviderSink, J as ProviderRedactor, K as InMemoryRawProviderSinkOptions, Q as RawProviderSinkFilter, U as FileSystemRawProviderSink, W as FileSystemRawProviderSinkOptions, X as RawProviderEvent, Y as RawProviderDirection, Z as RawProviderSink, q as NoopRawProviderSink } from "./types-0KglnQ9o.js";
|
|
6
6
|
import { a as RunFilter, i as InMemoryTraceStore, n as FileSystemTraceStore, o as SpanFilter, r as FileSystemTraceStoreOptions, s as TraceStore, t as EventFilter } from "./store-CMs5wGXP.js";
|
|
7
|
-
import { d as BuildTraceAnalysisToolsOptions, f as TRACE_ANALYST_TOOL_NAMESPACE, h as buildTraceAnalysisToolDescriptors, m as UNTRUSTED_TRACE_TEXT, p as TraceAnalysisToolDescriptor } from "./engine-CaHaCc3W.js";
|
|
8
7
|
import { a as SpanHandle, i as RunCompleteHookContext, n as CaptureWrite, o as TraceEmitter, r as RunCompleteHook, s as TraceEmitterOptions, t as CaptureErrorHandler } from "./emitter-mAXC5PSN.js";
|
|
8
|
+
import { d as BuildTraceAnalysisToolsOptions, f as TRACE_ANALYST_TOOL_NAMESPACE, h as buildTraceAnalysisToolDescriptors, m as UNTRUSTED_TRACE_TEXT, p as TraceAnalysisToolDescriptor } from "./engine-CaHaCc3W.js";
|
|
9
9
|
import { C as classifyKey, E as normalizeKey, _ as redactText, a as RedactionFinding, c as SafetyCategory, d as ShareSafetyVerdict, f as assessShareSafety, g as redactForShare, h as redact, i as RedactOptions, l as ShareSafetyFinding, m as emptyRedactionReport, o as RedactionProfile, p as combineVerdicts, r as REDACTION_VERSION, s as RedactionReport, t as AssessOptions, u as ShareSafetyStatus, v as shareAllowed, w as detectCredential } from "./redact-jrT0APTU.js";
|
|
10
10
|
import { A as TraceInsightReadiness, B as isTraceInsightEvidence, C as TraceInsightContext, D as TraceInsightPromptInput, E as TraceInsightPanelRole, F as describeTraceInsightScope, G as AnalyzeTracesResult, H as tokenizeDomainWords, I as domainEvidencePattern, K as analyzeTraces, L as inferDomainKeywords, M as TraceInsightTask, N as buildTraceInsightContext, O as TraceInsightQualityGate, P as buildTraceInsightPrompt, R as isTraceInsightArtifact, S as TraceInsightAttribution, T as TraceInsightFinding, U as AnalyzeTracesInput, V as scoreTraceInsightReadiness, W as AnalyzeTracesOptions, _ as ToolSpansToTraceAnalysisStoreOptions, a as captureFetchToRawSink, b as OtlpSpan, c as ExtractedUsage, d as extractUsageFromSse, f as OtlpFileTraceStore, g as spanRecordsToTraceAnalysisStore, h as otlpTextToTraceAnalysisStore, i as CaptureFetchOptions, j as TraceInsightSuite, k as TraceInsightQuestion, l as SseUsageMode, m as SpanRecordsToTraceAnalysisStoreOptions, n as toolSpansToTraceAnalysisStore, o as OtlpFlatLine, p as OtlpFileTraceStoreOptions, r as CaptureFetchContext, s as ExtractUsageFromSseOptions, t as ToolTraceMissingError, u as extractUsage, v as OtlpExport, w as TraceInsightEvidence, x as exportRunAsOtlp, y as OtlpResourceSpans, z as isTraceInsightAttribution } from "./store-tool-spans-lWf6INTH.js";
|
|
11
11
|
import { a as RunIntegrityReport, i as RunIntegrityIssueCode, n as RunIntegrityExpectations, o as assertRunCaptured, r as RunIntegrityIssue, t as RunIntegrityError } from "./integrity-BAdVzT8u.js";
|
package/dist/wire/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { m as CustomTokenPricing, o as CostLedgerHandle } from "../cost-ledger-Czro9wmo.js";
|
|
2
2
|
import { x as ChatClient } from "../types-0KglnQ9o.js";
|
|
3
3
|
import { s as TraceStore } from "../store-CMs5wGXP.js";
|
|
4
|
-
import { m as FeedbackTrajectoryStore } from "../feedback-trajectory-
|
|
4
|
+
import { m as FeedbackTrajectoryStore } from "../feedback-trajectory-BgomnFOe.js";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { ServerType } from "@hono/node-server";
|
|
7
7
|
import { Hono } from "hono";
|
|
@@ -267,10 +267,10 @@ export declare const FeedbackTrajectorySchema: z.ZodObject<{
|
|
|
267
267
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
268
268
|
}, z.core.$strip>>;
|
|
269
269
|
split: z.ZodOptional<z.ZodEnum<{
|
|
270
|
-
dev: "dev";
|
|
271
|
-
holdout: "holdout";
|
|
272
270
|
train: "train";
|
|
271
|
+
dev: "dev";
|
|
273
272
|
test: "test";
|
|
273
|
+
holdout: "holdout";
|
|
274
274
|
}>>;
|
|
275
275
|
tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
276
276
|
createdAt: z.ZodString;
|
package/docs/concepts.md
CHANGED
|
@@ -56,6 +56,28 @@ Paired lift, failure clusters, contamination checks, and outcome associations re
|
|
|
56
56
|
Run records, scenarios, judge scores, statistics, and release decisions belong here because they work without an agent runtime.
|
|
57
57
|
Agent sessions, worker coordination, sandbox execution, and runtime-specific profiles belong in `agent-runtime`.
|
|
58
58
|
|
|
59
|
+
## Product integration scenarios
|
|
60
|
+
|
|
61
|
+
`runSandboxScenario()` from `@tangle-network/agent-eval/campaign` runs a
|
|
62
|
+
`HarnessScenario`: setup, named steps, expectations and a time budget.
|
|
63
|
+
The product supplies transport callbacks and keeps its SDK, credentials and
|
|
64
|
+
resource authorization. Steps receive one scope for measurement, assertions,
|
|
65
|
+
condition polling and retirement registration. Register retirement immediately
|
|
66
|
+
after allocation; callbacks use the scope signal for workload cancellation.
|
|
67
|
+
Retirements run in reverse order even after setup or workload failure, and a
|
|
68
|
+
failed retirement remains a failed assertion in the report.
|
|
69
|
+
|
|
70
|
+
Use `scope.resource({ name, create, ready, retire, onCreate })` to measure acquisition,
|
|
71
|
+
register retirement before readiness, and retain the allocated resource when readiness fails.
|
|
72
|
+
A step marked `advisory` retains its failure timing while required expectations still gate
|
|
73
|
+
the report. Unmarked steps and all setup/cleanup measurements remain required.
|
|
74
|
+
|
|
75
|
+
Pass the product's existing `measure` adapter to retain its server timing
|
|
76
|
+
ledgers. A poll returns `undefined` when its budget expires; the scenario must
|
|
77
|
+
assert the condition when exhaustion is a failure. The scope's budget signal
|
|
78
|
+
is cooperative: callbacks must pass it through to their transport. Campaigns
|
|
79
|
+
remain the owner of scenario scheduling, retries, artifacts and run reports.
|
|
80
|
+
|
|
59
81
|
## Measuring a complete profile
|
|
60
82
|
|
|
61
83
|
Use the profile improvement functions from `/contract` when a host owns immutable agent-profile snapshots.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/agent-eval",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Evaluate and improve AI agents from runs, traces, judges, and feedback. Compare candidates, cluster failures, measure lift, and gate releases.",
|
|
5
5
|
"homepage": "https://github.com/tangle-network/agent-eval#readme",
|
|
6
6
|
"repository": {
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
interface HarnessConfig {
|
|
2
|
-
/** Setup command (e.g. "pnpm install"). Non-zero exit fails the run. */
|
|
3
|
-
setupCommand?: string;
|
|
4
|
-
/** Run command (e.g. "pnpm build"). */
|
|
5
|
-
runCommand?: string;
|
|
6
|
-
/** Test command (e.g. "pnpm test --run"). Drives the test count + pass count. */
|
|
7
|
-
testCommand?: string;
|
|
8
|
-
/** Absolute cwd for the subprocess driver. Ignored by docker driver. */
|
|
9
|
-
cwd?: string;
|
|
10
|
-
/** Max wall-clock per phase in ms. Default 10 minutes. */
|
|
11
|
-
timeoutMs?: number;
|
|
12
|
-
/**
|
|
13
|
-
* Cap on captured stdout+stderr bytes per phase. A runaway process can
|
|
14
|
-
* otherwise grow the in-memory buffer without bound. Once hit, further
|
|
15
|
-
* output is dropped and `outputTruncated` is set. Default 16 MiB.
|
|
16
|
-
*/
|
|
17
|
-
maxOutputBytes?: number;
|
|
18
|
-
/** Image for the docker driver. */
|
|
19
|
-
image?: string;
|
|
20
|
-
/** Extra env vars (validated; shell-escaped). */
|
|
21
|
-
env?: Record<string, string>;
|
|
22
|
-
/** Parser for the test output — maps stdout/stderr/exit code → pass count. */
|
|
23
|
-
testParser?: TestOutputParser;
|
|
24
|
-
}
|
|
25
|
-
interface TestOutputParser {
|
|
26
|
-
id: string;
|
|
27
|
-
parse(stdout: string, stderr: string, exitCode: number): {
|
|
28
|
-
testsTotal: number;
|
|
29
|
-
testsPassed: number;
|
|
30
|
-
} | undefined;
|
|
31
|
-
}
|
|
32
|
-
interface SandboxResult {
|
|
33
|
-
phase: 'setup' | 'run' | 'test';
|
|
34
|
-
exitCode: number;
|
|
35
|
-
stdout: string;
|
|
36
|
-
stderr: string;
|
|
37
|
-
wallMs: number;
|
|
38
|
-
testsTotal?: number;
|
|
39
|
-
testsPassed?: number;
|
|
40
|
-
/**
|
|
41
|
-
* True when the process was killed because it exceeded `timeoutMs`. A
|
|
42
|
-
* SIGKILLed child can still close with exit code 0; callers MUST treat
|
|
43
|
-
* a timed-out phase as a hard failure regardless of `exitCode`, never
|
|
44
|
-
* as a pass. `undefined`/`false` means the process completed on its own.
|
|
45
|
-
*/
|
|
46
|
-
killedByTimeout?: boolean;
|
|
47
|
-
/**
|
|
48
|
-
* True when captured stdout/stderr hit `maxOutputBytes` and further
|
|
49
|
-
* output was dropped. The result is still returned (the process was
|
|
50
|
-
* not killed for this), but downstream parsers see truncated text.
|
|
51
|
-
*/
|
|
52
|
-
outputTruncated?: boolean;
|
|
53
|
-
}
|
|
54
|
-
interface SandboxDriver {
|
|
55
|
-
id: string;
|
|
56
|
-
exec(phase: SandboxResult['phase'], command: string, config: HarnessConfig): Promise<SandboxResult>;
|
|
57
|
-
}
|
|
58
|
-
interface SandboxHarnessResult {
|
|
59
|
-
passed: boolean;
|
|
60
|
-
setup?: SandboxResult;
|
|
61
|
-
run?: SandboxResult;
|
|
62
|
-
test?: SandboxResult;
|
|
63
|
-
totalWallMs: number;
|
|
64
|
-
/** Final score — 0 when no tests; otherwise testsPassed/testsTotal. */
|
|
65
|
-
score: number;
|
|
66
|
-
}
|
|
67
|
-
export { SandboxDriver as n, SandboxHarnessResult as r, HarnessConfig as t };
|
|
68
|
-
//# sourceMappingURL=sandbox-harness-B3Kx1fOA.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-harness-B3Kx1fOA.d.ts","names":[],"sources":["../src/sandbox-harness.ts"],"mappings":"A,UAoBiB;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;EAEA;;EAEA,MAAM;;EAEN,aAAa;;UAGE;EACf;EACA,MACE,gBACA,gBACA;IACG;IAAoB;;;UAGV;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;EAOA;;;;;;EAMA;;UAGe;EACf;EACA,KACE,OAAO,wBACP,iBACA,QAAQ,gBACP,QAAQ;;UA0II;EACf;EACA,QAAQ;EACR,MAAM;EACN,OAAO;EACP;;EAEA"}
|