@agnt5/sdk 0.2.1
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/README.md +183 -0
- package/dist/__tests__/integration/helpers.d.ts +41 -0
- package/dist/__tests__/integration/helpers.d.ts.map +1 -0
- package/dist/__tests__/integration/helpers.js +78 -0
- package/dist/__tests__/integration/helpers.js.map +1 -0
- package/dist/agent.d.ts +260 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +493 -0
- package/dist/agent.js.map +1 -0
- package/dist/async-context.d.ts +57 -0
- package/dist/async-context.d.ts.map +1 -0
- package/dist/async-context.js +52 -0
- package/dist/async-context.js.map +1 -0
- package/dist/batch.d.ts +116 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/batch.js +98 -0
- package/dist/batch.js.map +1 -0
- package/dist/chat.d.ts +137 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +278 -0
- package/dist/chat.js.map +1 -0
- package/dist/client.d.ts +394 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +757 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +47 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +244 -0
- package/dist/context.js.map +1 -0
- package/dist/errors.d.ts +148 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +201 -0
- package/dist/errors.js.map +1 -0
- package/dist/eval.d.ts +242 -0
- package/dist/eval.d.ts.map +1 -0
- package/dist/eval.js +452 -0
- package/dist/eval.js.map +1 -0
- package/dist/event-emitter.d.ts +28 -0
- package/dist/event-emitter.d.ts.map +1 -0
- package/dist/event-emitter.js +79 -0
- package/dist/event-emitter.js.map +1 -0
- package/dist/events.d.ts +285 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +256 -0
- package/dist/events.js.map +1 -0
- package/dist/function.d.ts +61 -0
- package/dist/function.d.ts.map +1 -0
- package/dist/function.js +78 -0
- package/dist/function.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +80 -0
- package/dist/index.js.map +1 -0
- package/dist/lm.d.ts +301 -0
- package/dist/lm.d.ts.map +1 -0
- package/dist/lm.js +283 -0
- package/dist/lm.js.map +1 -0
- package/dist/logging.d.ts +68 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +165 -0
- package/dist/logging.js.map +1 -0
- package/dist/mcp-server.d.ts +98 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +307 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +73 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +224 -0
- package/dist/mcp.js.map +1 -0
- package/dist/memory.d.ts +234 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +609 -0
- package/dist/memory.js.map +1 -0
- package/dist/platform-adapters.d.ts +121 -0
- package/dist/platform-adapters.d.ts.map +1 -0
- package/dist/platform-adapters.js +174 -0
- package/dist/platform-adapters.js.map +1 -0
- package/dist/platform-context.d.ts +55 -0
- package/dist/platform-context.d.ts.map +1 -0
- package/dist/platform-context.js +196 -0
- package/dist/platform-context.js.map +1 -0
- package/dist/retry-utils.d.ts +169 -0
- package/dist/retry-utils.d.ts.map +1 -0
- package/dist/retry-utils.js +304 -0
- package/dist/retry-utils.js.map +1 -0
- package/dist/sandbox.d.ts +103 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +168 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/schema-utils.d.ts +250 -0
- package/dist/schema-utils.d.ts.map +1 -0
- package/dist/schema-utils.js +444 -0
- package/dist/schema-utils.js.map +1 -0
- package/dist/scorer.d.ts +130 -0
- package/dist/scorer.d.ts.map +1 -0
- package/dist/scorer.js +211 -0
- package/dist/scorer.js.map +1 -0
- package/dist/state.d.ts +92 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +151 -0
- package/dist/state.js.map +1 -0
- package/dist/tool.d.ts +120 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +215 -0
- package/dist/tool.js.map +1 -0
- package/dist/tracing.d.ts +82 -0
- package/dist/tracing.d.ts.map +1 -0
- package/dist/tracing.js +206 -0
- package/dist/tracing.js.map +1 -0
- package/dist/types.d.ts +139 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/worker.d.ts +111 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +944 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow-utils.d.ts +257 -0
- package/dist/workflow-utils.d.ts.map +1 -0
- package/dist/workflow-utils.js +370 -0
- package/dist/workflow-utils.js.map +1 -0
- package/dist/workflow.d.ts +78 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +138 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +86 -0
package/dist/errors.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGNT5 Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive error hierarchy for the AGNT5 SDK.
|
|
5
|
+
* Mirrors the Python SDK error structure for consistency.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base class for all AGNT5 errors
|
|
9
|
+
*/
|
|
10
|
+
export class AGNT5Error extends Error {
|
|
11
|
+
constructor(message) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = 'AGNT5Error';
|
|
14
|
+
Error.captureStackTrace?.(this, this.constructor);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Configuration errors (invalid SDK configuration)
|
|
19
|
+
*/
|
|
20
|
+
export class ConfigurationError extends AGNT5Error {
|
|
21
|
+
constructor(message) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = 'ConfigurationError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Execution errors (runtime errors during component execution)
|
|
28
|
+
*/
|
|
29
|
+
export class ExecutionError extends AGNT5Error {
|
|
30
|
+
constructor(message, componentName, componentType) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.name = 'ExecutionError';
|
|
33
|
+
this.componentName = componentName;
|
|
34
|
+
this.componentType = componentType;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Retry errors (max retry attempts exceeded)
|
|
39
|
+
*/
|
|
40
|
+
export class RetryError extends AGNT5Error {
|
|
41
|
+
constructor(message, attempts, lastError) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = 'RetryError';
|
|
44
|
+
this.attempts = attempts;
|
|
45
|
+
this.lastError = lastError;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* State operation errors (failed to get/set/delete state)
|
|
50
|
+
*/
|
|
51
|
+
export class StateError extends AGNT5Error {
|
|
52
|
+
constructor(message, operation, key) {
|
|
53
|
+
super(message);
|
|
54
|
+
this.name = 'StateError';
|
|
55
|
+
this.operation = operation;
|
|
56
|
+
this.key = key;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Checkpoint errors (failed to create or restore checkpoint)
|
|
61
|
+
*/
|
|
62
|
+
export class CheckpointError extends AGNT5Error {
|
|
63
|
+
constructor(message, stepName, sequenceNumber) {
|
|
64
|
+
super(message);
|
|
65
|
+
this.name = 'CheckpointError';
|
|
66
|
+
this.stepName = stepName;
|
|
67
|
+
this.sequenceNumber = sequenceNumber;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Run errors (component invocation failed)
|
|
72
|
+
*/
|
|
73
|
+
export class RunError extends AGNT5Error {
|
|
74
|
+
constructor(message, runId, status, traceId) {
|
|
75
|
+
super(message);
|
|
76
|
+
this.name = 'RunError';
|
|
77
|
+
this.runId = runId;
|
|
78
|
+
this.status = status;
|
|
79
|
+
this.traceId = traceId;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Human-in-the-loop exception (waiting for user input).
|
|
84
|
+
*
|
|
85
|
+
* Thrown by ctx.waitForUser() to pause a workflow and request user interaction.
|
|
86
|
+
* The platform catches this, saves checkpoint state, and resumes when the user responds.
|
|
87
|
+
*/
|
|
88
|
+
export class WaitingForUserInputError extends AGNT5Error {
|
|
89
|
+
/** @deprecated Use `question` instead */
|
|
90
|
+
get prompt() { return this.question; }
|
|
91
|
+
/** @deprecated Use `options` instead */
|
|
92
|
+
get choices() { return this.options.map(o => o.label); }
|
|
93
|
+
constructor(opts) {
|
|
94
|
+
super(`Waiting for user input: ${opts.question}`);
|
|
95
|
+
this.name = 'WaitingForUserInputError';
|
|
96
|
+
this.runId = opts.runId;
|
|
97
|
+
this.question = opts.question;
|
|
98
|
+
this.inputType = opts.inputType || 'text';
|
|
99
|
+
this.options = opts.options || [];
|
|
100
|
+
this.pauseIndex = opts.pauseIndex ?? 0;
|
|
101
|
+
this.allowCustom = opts.allowCustom ?? false;
|
|
102
|
+
this.skippable = opts.skippable ?? false;
|
|
103
|
+
this.checkpointState = opts.checkpointState || {};
|
|
104
|
+
this.stepName = opts.stepName;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Connection errors (failed to connect to platform)
|
|
109
|
+
*/
|
|
110
|
+
export class ConnectionError extends AGNT5Error {
|
|
111
|
+
constructor(message, endpoint, statusCode) {
|
|
112
|
+
super(message);
|
|
113
|
+
this.name = 'ConnectionError';
|
|
114
|
+
this.endpoint = endpoint;
|
|
115
|
+
this.statusCode = statusCode;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Timeout errors (operation exceeded time limit)
|
|
120
|
+
*/
|
|
121
|
+
export class TimeoutError extends AGNT5Error {
|
|
122
|
+
constructor(message, timeoutMs, operation) {
|
|
123
|
+
super(message);
|
|
124
|
+
this.name = 'TimeoutError';
|
|
125
|
+
this.timeoutMs = timeoutMs;
|
|
126
|
+
this.operation = operation;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Validation errors (invalid input/output data)
|
|
131
|
+
*/
|
|
132
|
+
export class ValidationError extends AGNT5Error {
|
|
133
|
+
constructor(message, field, value, expected) {
|
|
134
|
+
super(message);
|
|
135
|
+
this.name = 'ValidationError';
|
|
136
|
+
this.field = field;
|
|
137
|
+
this.value = value;
|
|
138
|
+
this.expected = expected;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Authorization errors (insufficient permissions)
|
|
143
|
+
*/
|
|
144
|
+
export class AuthorizationError extends AGNT5Error {
|
|
145
|
+
constructor(message, resource, action) {
|
|
146
|
+
super(message);
|
|
147
|
+
this.name = 'AuthorizationError';
|
|
148
|
+
this.resource = resource;
|
|
149
|
+
this.action = action;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Type guard to check if an error is an AGNT5Error
|
|
154
|
+
*/
|
|
155
|
+
export function isAGNT5Error(error) {
|
|
156
|
+
return error instanceof AGNT5Error;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Type guard to check if an error is a WaitingForUserInputError
|
|
160
|
+
*/
|
|
161
|
+
export function isWaitingForUserInput(error) {
|
|
162
|
+
return error instanceof WaitingForUserInputError;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Helper to extract error message from unknown error
|
|
166
|
+
*/
|
|
167
|
+
export function getErrorMessage(error) {
|
|
168
|
+
if (error instanceof Error) {
|
|
169
|
+
return error.message;
|
|
170
|
+
}
|
|
171
|
+
if (typeof error === 'string') {
|
|
172
|
+
return error;
|
|
173
|
+
}
|
|
174
|
+
return 'Unknown error';
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Helper to create error from HTTP response
|
|
178
|
+
*/
|
|
179
|
+
export function createErrorFromResponse(status, message, runId, endpoint) {
|
|
180
|
+
switch (status) {
|
|
181
|
+
case 400:
|
|
182
|
+
return new ValidationError(message);
|
|
183
|
+
case 401:
|
|
184
|
+
case 403:
|
|
185
|
+
return new AuthorizationError(message);
|
|
186
|
+
case 404:
|
|
187
|
+
return new RunError(message, runId, 'not_found');
|
|
188
|
+
case 408:
|
|
189
|
+
case 504:
|
|
190
|
+
return new TimeoutError(message, 30000);
|
|
191
|
+
case 429:
|
|
192
|
+
return new RetryError(message, 0);
|
|
193
|
+
case 500:
|
|
194
|
+
case 502:
|
|
195
|
+
case 503:
|
|
196
|
+
return new ConnectionError(message, endpoint, status);
|
|
197
|
+
default:
|
|
198
|
+
return new ExecutionError(message);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/eval.d.ts
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluation framework for scoring component outputs.
|
|
3
|
+
*
|
|
4
|
+
* Provides EvalResponse, BatchEval types, EvalContext, and LLMJudge
|
|
5
|
+
* for local and platform-based evaluation workflows.
|
|
6
|
+
*/
|
|
7
|
+
import type { ScorerResultSummary, TraceEvent } from './scorer.js';
|
|
8
|
+
/**
|
|
9
|
+
* Context passed to custom evaluation logic.
|
|
10
|
+
* Contains the input/output pair, optional expected value, and trace events.
|
|
11
|
+
*/
|
|
12
|
+
export declare class EvalContext {
|
|
13
|
+
readonly input: any;
|
|
14
|
+
readonly output: any;
|
|
15
|
+
readonly expected: any | undefined;
|
|
16
|
+
readonly runId: string | undefined;
|
|
17
|
+
readonly traceId: string | undefined;
|
|
18
|
+
readonly events: TraceEvent[];
|
|
19
|
+
constructor(opts: {
|
|
20
|
+
input: any;
|
|
21
|
+
output: any;
|
|
22
|
+
expected?: any;
|
|
23
|
+
runId?: string;
|
|
24
|
+
traceId?: string;
|
|
25
|
+
events?: TraceEvent[];
|
|
26
|
+
});
|
|
27
|
+
/** Get events filtered by type */
|
|
28
|
+
getEventsByType(eventType: string): TraceEvent[];
|
|
29
|
+
/** Get LM call events */
|
|
30
|
+
getLmCalls(): TraceEvent[];
|
|
31
|
+
/** Get total tokens across all LM calls */
|
|
32
|
+
getTotalTokens(): number;
|
|
33
|
+
/** Get events for a specific step */
|
|
34
|
+
getStepEvents(stepName: string): TraceEvent[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Response from a single evaluation (client.eval()).
|
|
38
|
+
*
|
|
39
|
+
* Contains the component output, scorer results, and pass/fail status.
|
|
40
|
+
*/
|
|
41
|
+
export declare class EvalResponse<T = any> {
|
|
42
|
+
readonly output: T | undefined;
|
|
43
|
+
readonly scores: ScorerResultSummary[];
|
|
44
|
+
readonly passed: boolean;
|
|
45
|
+
readonly runId: string;
|
|
46
|
+
readonly traceId: string | undefined;
|
|
47
|
+
readonly durationMs: number | undefined;
|
|
48
|
+
readonly error: {
|
|
49
|
+
code: string;
|
|
50
|
+
message: string;
|
|
51
|
+
details?: Record<string, any>;
|
|
52
|
+
} | undefined;
|
|
53
|
+
constructor(raw: Record<string, any>);
|
|
54
|
+
/** True if run completed without error (may have failing scores) */
|
|
55
|
+
get isSuccess(): boolean;
|
|
56
|
+
/** True if there was an error */
|
|
57
|
+
get isError(): boolean;
|
|
58
|
+
/** Duration as milliseconds */
|
|
59
|
+
get elapsed(): number | undefined;
|
|
60
|
+
/** Get score by scorer name */
|
|
61
|
+
getScore(scorerName: string): ScorerResultSummary | undefined;
|
|
62
|
+
/** Throw if there was an error */
|
|
63
|
+
raiseForStatus(): void;
|
|
64
|
+
}
|
|
65
|
+
/** Input item for batch evaluation */
|
|
66
|
+
export interface BatchEvalItem {
|
|
67
|
+
input: Record<string, any>;
|
|
68
|
+
expected?: any;
|
|
69
|
+
itemId?: string;
|
|
70
|
+
index?: number;
|
|
71
|
+
}
|
|
72
|
+
/** Result of a single item in a batch evaluation */
|
|
73
|
+
export declare class BatchEvalItemResult {
|
|
74
|
+
readonly index: number;
|
|
75
|
+
readonly runId: string;
|
|
76
|
+
readonly output: any;
|
|
77
|
+
readonly scores: ScorerResultSummary[];
|
|
78
|
+
readonly passed: boolean;
|
|
79
|
+
readonly durationMs: number;
|
|
80
|
+
readonly itemId: string | undefined;
|
|
81
|
+
readonly traceId: string | undefined;
|
|
82
|
+
readonly error: string | undefined;
|
|
83
|
+
constructor(raw: Record<string, any>);
|
|
84
|
+
get isSuccess(): boolean;
|
|
85
|
+
get isFailed(): boolean;
|
|
86
|
+
/** Get score by scorer name */
|
|
87
|
+
getScore(scorerName: string): ScorerResultSummary | undefined;
|
|
88
|
+
/** Create from an EvalResponse */
|
|
89
|
+
static fromEvalResponse(response: EvalResponse, index: number, itemId?: string): BatchEvalItemResult;
|
|
90
|
+
/** Create from an exception */
|
|
91
|
+
static fromException(error: Error, index: number, itemId?: string): BatchEvalItemResult;
|
|
92
|
+
}
|
|
93
|
+
/** Statistics for a batch evaluation */
|
|
94
|
+
export interface BatchEvalStats {
|
|
95
|
+
totalItems: number;
|
|
96
|
+
completedItems: number;
|
|
97
|
+
failedItems: number;
|
|
98
|
+
passedItems: number;
|
|
99
|
+
avgDurationMs: number;
|
|
100
|
+
durationMs: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Result of a batch evaluation (client.batchEval()).
|
|
104
|
+
*/
|
|
105
|
+
export declare class BatchEvalResult {
|
|
106
|
+
readonly batchId: string;
|
|
107
|
+
readonly status: string;
|
|
108
|
+
readonly results: BatchEvalItemResult[];
|
|
109
|
+
readonly stats: BatchEvalStats;
|
|
110
|
+
constructor(opts: {
|
|
111
|
+
batchId: string;
|
|
112
|
+
status: string;
|
|
113
|
+
results: BatchEvalItemResult[];
|
|
114
|
+
stats?: BatchEvalStats;
|
|
115
|
+
durationMs?: number;
|
|
116
|
+
});
|
|
117
|
+
/** Pass rate: fraction of items where passed=true */
|
|
118
|
+
get passRate(): number;
|
|
119
|
+
get isSuccess(): boolean;
|
|
120
|
+
get isPartialFailure(): boolean;
|
|
121
|
+
/** All outputs sorted by index */
|
|
122
|
+
get outputs(): any[];
|
|
123
|
+
/** Items that had errors */
|
|
124
|
+
failedItems(): BatchEvalItemResult[];
|
|
125
|
+
/** Items where passed=false (may not have errors) */
|
|
126
|
+
failingItems(): BatchEvalItemResult[];
|
|
127
|
+
/** Items where passed=true */
|
|
128
|
+
passingItems(): BatchEvalItemResult[];
|
|
129
|
+
}
|
|
130
|
+
/** Configuration for an LLM-as-judge scorer */
|
|
131
|
+
export interface LLMJudgeConfig {
|
|
132
|
+
criteria: string;
|
|
133
|
+
model?: string;
|
|
134
|
+
systemPrompt?: string;
|
|
135
|
+
temperature?: number;
|
|
136
|
+
includeInput?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* LLM-as-judge scorer specification.
|
|
140
|
+
*
|
|
141
|
+
* Used with client.eval() to evaluate outputs using an LLM.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const judge = new LLMJudge({
|
|
146
|
+
* criteria: 'Is the response helpful and accurate?',
|
|
147
|
+
* model: 'openai/gpt-4o-mini',
|
|
148
|
+
* });
|
|
149
|
+
*
|
|
150
|
+
* const result = await client.eval('my-function', { input: 'hello' }, {
|
|
151
|
+
* scorers: [judge],
|
|
152
|
+
* });
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
export declare class LLMJudge {
|
|
156
|
+
readonly criteria: string;
|
|
157
|
+
readonly model: string;
|
|
158
|
+
readonly includeInput: boolean;
|
|
159
|
+
readonly temperature: number;
|
|
160
|
+
constructor(config: LLMJudgeConfig);
|
|
161
|
+
/** Convert to scorer spec for platform API */
|
|
162
|
+
toScorerSpec(): Record<string, any>;
|
|
163
|
+
}
|
|
164
|
+
/** Result of checking a single assertion */
|
|
165
|
+
export interface AssertionResult {
|
|
166
|
+
name: string;
|
|
167
|
+
passed: boolean;
|
|
168
|
+
explanation: string;
|
|
169
|
+
}
|
|
170
|
+
/** Trace scorer result */
|
|
171
|
+
export interface TraceScorerResult {
|
|
172
|
+
score: number;
|
|
173
|
+
passed: boolean;
|
|
174
|
+
label: string;
|
|
175
|
+
explanation: string;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Assertion types for glassbox trace evaluation.
|
|
179
|
+
*
|
|
180
|
+
* Mirrors the Rust sdk-core TraceAssertion enum.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const assertions = [
|
|
185
|
+
* TraceAssertion.maxTokens(1000),
|
|
186
|
+
* TraceAssertion.maxLmCalls(5),
|
|
187
|
+
* TraceAssertion.noErrors(),
|
|
188
|
+
* ];
|
|
189
|
+
* const result = traceScorer(trace, assertions);
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
export declare class TraceAssertion {
|
|
193
|
+
private readonly _check;
|
|
194
|
+
private constructor();
|
|
195
|
+
check(trace: TraceEvent[]): AssertionResult;
|
|
196
|
+
/** Assert total tokens used is at most `max`. */
|
|
197
|
+
static maxTokens(max: number): TraceAssertion;
|
|
198
|
+
/** Assert number of LLM calls is at most `max`. */
|
|
199
|
+
static maxLmCalls(max: number): TraceAssertion;
|
|
200
|
+
/** Assert events occur in the specified order (subsequence match). */
|
|
201
|
+
static eventSequence(events: string[]): TraceAssertion;
|
|
202
|
+
/** Assert a specific step was memoized (retrieved from cache). */
|
|
203
|
+
static stepMemoized(stepName: string): TraceAssertion;
|
|
204
|
+
/** Assert no error events occurred. */
|
|
205
|
+
static noErrors(): TraceAssertion;
|
|
206
|
+
/** Assert total duration is under `maxMs` milliseconds. */
|
|
207
|
+
static durationUnder(maxMs: number): TraceAssertion;
|
|
208
|
+
/** Assert a specific event type occurred at least `min` times. */
|
|
209
|
+
static eventCount(eventType: string, min: number): TraceAssertion;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Score a trace against multiple assertions.
|
|
213
|
+
*
|
|
214
|
+
* @returns TraceScorerResult with aggregate score (proportion of assertions passed)
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
* ```typescript
|
|
218
|
+
* const trace = await client.getEvents(runId);
|
|
219
|
+
* const result = traceScorer(trace.events, [
|
|
220
|
+
* TraceAssertion.maxTokens(1000),
|
|
221
|
+
* TraceAssertion.noErrors(),
|
|
222
|
+
* ]);
|
|
223
|
+
* console.log(`Score: ${result.score}, Passed: ${result.passed}`);
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export declare function traceScorer(trace: TraceEvent[], assertions: TraceAssertion[]): TraceScorerResult;
|
|
227
|
+
/**
|
|
228
|
+
* Normalize batch eval items to a consistent format.
|
|
229
|
+
*
|
|
230
|
+
* Accepts:
|
|
231
|
+
* 1. BatchEvalItem[] — already normalized
|
|
232
|
+
* 2. { input, expected }[] — dict format
|
|
233
|
+
* 3. Plain input dicts with separate expected list
|
|
234
|
+
*/
|
|
235
|
+
export declare function normalizeBatchEvalItems(items: Array<Record<string, any> | BatchEvalItem>, expected?: any[]): BatchEvalItem[];
|
|
236
|
+
/**
|
|
237
|
+
* Normalize scorer specs for the platform API.
|
|
238
|
+
*
|
|
239
|
+
* Accepts strings ("exact_match"), LLMJudge instances, or raw spec dicts.
|
|
240
|
+
*/
|
|
241
|
+
export declare function normalizeScorerSpecs(scorers: Array<string | LLMJudge | Record<string, any>>): Array<Record<string, any>>;
|
|
242
|
+
//# sourceMappingURL=eval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
|