@botpress/evals 1.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +50 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +123 -0
- package/dist/client.js.map +7 -0
- package/dist/definition.d.ts +113 -0
- package/dist/definition.d.ts.map +1 -0
- package/dist/definition.js +25 -0
- package/dist/definition.js.map +7 -0
- package/dist/graders/index.d.ts +12 -0
- package/dist/graders/index.d.ts.map +1 -0
- package/dist/graders/index.js +466 -0
- package/dist/graders/index.js.map +7 -0
- package/dist/graders/llm.d.ts +23 -0
- package/dist/graders/llm.d.ts.map +1 -0
- package/dist/graders/llm.js +125 -0
- package/dist/graders/llm.js.map +7 -0
- package/dist/graders/match.d.ts +11 -0
- package/dist/graders/match.d.ts.map +1 -0
- package/dist/graders/match.js +48 -0
- package/dist/graders/match.js.map +7 -0
- package/dist/graders/outcome.d.ts +11 -0
- package/dist/graders/outcome.d.ts.map +1 -0
- package/dist/graders/outcome.js +148 -0
- package/dist/graders/outcome.js.map +7 -0
- package/dist/graders/response.d.ts +10 -0
- package/dist/graders/response.d.ts.map +1 -0
- package/dist/graders/response.js +155 -0
- package/dist/graders/response.js.map +7 -0
- package/dist/graders/state.d.ts +16 -0
- package/dist/graders/state.d.ts.map +1 -0
- package/dist/graders/state.js +101 -0
- package/dist/graders/state.js.map +7 -0
- package/dist/graders/timing.d.ts +7 -0
- package/dist/graders/timing.d.ts.map +1 -0
- package/dist/graders/timing.js +63 -0
- package/dist/graders/timing.js.map +7 -0
- package/dist/graders/tools.d.ts +7 -0
- package/dist/graders/tools.d.ts.map +1 -0
- package/dist/graders/tools.js +122 -0
- package/dist/graders/tools.js.map +7 -0
- package/dist/graders/workflow.d.ts +7 -0
- package/dist/graders/workflow.d.ts.map +1 -0
- package/dist/graders/workflow.js +34 -0
- package/dist/graders/workflow.js.map +7 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +7 -0
- package/dist/loader.d.ts +11 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +114 -0
- package/dist/loader.js.map +7 -0
- package/dist/runner.d.ts +25 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +1536 -0
- package/dist/runner.js.map +7 -0
- package/dist/sse-collector.d.ts +148 -0
- package/dist/sse-collector.d.ts.map +1 -0
- package/dist/sse-collector.js +386 -0
- package/dist/sse-collector.js.map +7 -0
- package/dist/trace.d.ts +56 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +1 -0
- package/dist/trace.js.map +7 -0
- package/dist/transformer.d.ts +18 -0
- package/dist/transformer.d.ts.map +1 -0
- package/dist/transformer.js +101 -0
- package/dist/transformer.js.map +7 -0
- package/dist/types.d.ts +184 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +25 -0
- package/dist/types.js.map +7 -0
- package/package.json +99 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Eval type definitions.
|
|
3
|
+
*
|
|
4
|
+
* User-facing types live in @botpress/evals so eval authors can update eval
|
|
5
|
+
* tooling without tying the authoring API to the agent runtime package.
|
|
6
|
+
*/
|
|
7
|
+
export { Eval, type EvalDefinition, type EvalSetup, type ConversationTurn, type TurnAssertions, type OutcomeAssertions, type ResponseAssertion, type ToolAssertion, type StateAssertion, type WorkflowAssertion, type TimingAssertion, type MatchOperator, type NumericOperator, } from './definition';
|
|
8
|
+
export type { Span, SpanStatus } from './trace';
|
|
9
|
+
export interface ChatClientConnection {
|
|
10
|
+
user: {
|
|
11
|
+
id: string;
|
|
12
|
+
};
|
|
13
|
+
createConversation: (props: Record<string, unknown>) => Promise<{
|
|
14
|
+
conversation: {
|
|
15
|
+
id: string;
|
|
16
|
+
};
|
|
17
|
+
}>;
|
|
18
|
+
createMessage: (props: any) => Promise<unknown>;
|
|
19
|
+
createEvent: (props: any) => Promise<unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface ChatClient {
|
|
22
|
+
connect: (props: {
|
|
23
|
+
webhookId: string;
|
|
24
|
+
}) => Promise<ChatClientConnection>;
|
|
25
|
+
}
|
|
26
|
+
export interface GraderResult {
|
|
27
|
+
assertion: string;
|
|
28
|
+
pass: boolean;
|
|
29
|
+
expected: string;
|
|
30
|
+
actual: string;
|
|
31
|
+
}
|
|
32
|
+
export interface ToolCall {
|
|
33
|
+
name: string;
|
|
34
|
+
input: Record<string, unknown>;
|
|
35
|
+
output: string;
|
|
36
|
+
status: string;
|
|
37
|
+
}
|
|
38
|
+
export interface TurnReport {
|
|
39
|
+
turnNumber: number;
|
|
40
|
+
userMessage: string;
|
|
41
|
+
botResponse: string;
|
|
42
|
+
assertions: GraderResult[];
|
|
43
|
+
pass: boolean;
|
|
44
|
+
/** Time spent waiting for the bot to respond (ms) */
|
|
45
|
+
botDuration: number;
|
|
46
|
+
/** Time spent fetching traces + running graders (ms) */
|
|
47
|
+
evalDuration: number;
|
|
48
|
+
}
|
|
49
|
+
export interface EvalReport {
|
|
50
|
+
name: string;
|
|
51
|
+
description?: string;
|
|
52
|
+
type?: 'capability' | 'regression';
|
|
53
|
+
tags?: string[];
|
|
54
|
+
turns: TurnReport[];
|
|
55
|
+
outcomeAssertions: GraderResult[];
|
|
56
|
+
pass: boolean;
|
|
57
|
+
duration: number;
|
|
58
|
+
error?: string;
|
|
59
|
+
}
|
|
60
|
+
export type EvalProgressEvent = {
|
|
61
|
+
type: 'suite_start';
|
|
62
|
+
totalEvals: number;
|
|
63
|
+
} | {
|
|
64
|
+
type: 'eval_start';
|
|
65
|
+
evalName: string;
|
|
66
|
+
index: number;
|
|
67
|
+
totalTurns: number;
|
|
68
|
+
} | {
|
|
69
|
+
type: 'turn_start';
|
|
70
|
+
evalName: string;
|
|
71
|
+
evalIndex: number;
|
|
72
|
+
turnNumber: number;
|
|
73
|
+
totalTurns: number;
|
|
74
|
+
userMessage: string;
|
|
75
|
+
} | {
|
|
76
|
+
type: 'turn_complete';
|
|
77
|
+
evalName: string;
|
|
78
|
+
evalIndex: number;
|
|
79
|
+
turnNumber: number;
|
|
80
|
+
totalTurns: number;
|
|
81
|
+
turnReport: TurnReport;
|
|
82
|
+
} | {
|
|
83
|
+
type: 'eval_complete';
|
|
84
|
+
evalName: string;
|
|
85
|
+
index: number;
|
|
86
|
+
report: EvalReport;
|
|
87
|
+
} | {
|
|
88
|
+
type: 'suite_complete';
|
|
89
|
+
report: EvalRunReport;
|
|
90
|
+
error?: string;
|
|
91
|
+
};
|
|
92
|
+
export interface EvalRunReport {
|
|
93
|
+
id: string;
|
|
94
|
+
timestamp: string;
|
|
95
|
+
evals: EvalReport[];
|
|
96
|
+
passed: number;
|
|
97
|
+
failed: number;
|
|
98
|
+
total: number;
|
|
99
|
+
duration: number;
|
|
100
|
+
filter?: {
|
|
101
|
+
names?: string[];
|
|
102
|
+
tags?: string[];
|
|
103
|
+
type?: 'capability' | 'regression';
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* True when the suite was aborted mid-run (e.g. user clicked Stop). The
|
|
107
|
+
* persisted report is partial — `evals` reflects only the completed evals,
|
|
108
|
+
* and `total` matches that count, not the original suite size.
|
|
109
|
+
*/
|
|
110
|
+
aborted?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface BotConnection {
|
|
113
|
+
webhookId: string;
|
|
114
|
+
botId: string;
|
|
115
|
+
token: string;
|
|
116
|
+
apiUrl: string;
|
|
117
|
+
}
|
|
118
|
+
export interface EvalLogger {
|
|
119
|
+
info: (message: string) => void;
|
|
120
|
+
warn: (message: string) => void;
|
|
121
|
+
error: (message: string) => void;
|
|
122
|
+
}
|
|
123
|
+
export interface EvalRunnerConfig {
|
|
124
|
+
credentials: {
|
|
125
|
+
token: string;
|
|
126
|
+
apiUrl: string;
|
|
127
|
+
botId: string;
|
|
128
|
+
workspaceId?: string;
|
|
129
|
+
webhookId?: string;
|
|
130
|
+
};
|
|
131
|
+
agentPath: string;
|
|
132
|
+
/** URL of the dev server providing traces and config. Defaults to the discovered DevConsole URL. */
|
|
133
|
+
devServerUrl?: string;
|
|
134
|
+
/** Headers for dev-server requests, e.g. X-Agent-Path when routed through the singleton proxy. */
|
|
135
|
+
devServerHeaders?: Record<string, string>;
|
|
136
|
+
/**
|
|
137
|
+
* Optional host-provided chat client. The CLI passes its bundled chat client
|
|
138
|
+
* here so the eval engine does not depend on @botpress/adk.
|
|
139
|
+
*/
|
|
140
|
+
chatClient?: ChatClient;
|
|
141
|
+
onProgress?: (event: EvalProgressEvent) => void;
|
|
142
|
+
/** Logger for warnings and errors. Defaults to console. */
|
|
143
|
+
logger?: EvalLogger;
|
|
144
|
+
/**
|
|
145
|
+
* Optional abort signal — when fired, the suite stops starting new evals.
|
|
146
|
+
* The currently running eval continues to completion (LLM calls in flight
|
|
147
|
+
* cannot always be cancelled), but no further evals are started.
|
|
148
|
+
*/
|
|
149
|
+
signal?: AbortSignal;
|
|
150
|
+
/** Bot-level eval options from agent.config.ts. Cascades: eval > agent config > default. */
|
|
151
|
+
evalOptions?: {
|
|
152
|
+
idleTimeout?: number;
|
|
153
|
+
/** LLM judge pass threshold (integer, 1-5). Values outside this range are clamped. Cascades: eval > agent config > default (3). */
|
|
154
|
+
judgePassThreshold?: number;
|
|
155
|
+
/** Model to use for llm_judge assertions (e.g. 'openai:gpt-4o'). Defaults to 'fast'. */
|
|
156
|
+
judgeModel?: string;
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
export interface EvalFilter {
|
|
160
|
+
names?: string[];
|
|
161
|
+
tags?: string[];
|
|
162
|
+
type?: 'capability' | 'regression';
|
|
163
|
+
}
|
|
164
|
+
export interface StateMutation {
|
|
165
|
+
type: string;
|
|
166
|
+
changedKeys: string[];
|
|
167
|
+
previous: unknown;
|
|
168
|
+
current: unknown;
|
|
169
|
+
swappedToFile: boolean;
|
|
170
|
+
}
|
|
171
|
+
export interface WorkflowSpan {
|
|
172
|
+
name: string;
|
|
173
|
+
status: 'running' | 'ok' | 'error';
|
|
174
|
+
statusFinal?: string;
|
|
175
|
+
}
|
|
176
|
+
export interface TurnData {
|
|
177
|
+
messages: string[];
|
|
178
|
+
toolCalls: ToolCall[];
|
|
179
|
+
stateMutations: StateMutation[];
|
|
180
|
+
workflowSpans: WorkflowSpan[];
|
|
181
|
+
handlerDuration: number;
|
|
182
|
+
handlerStatus: 'ok' | 'error';
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/definition.ts
|
|
2
|
+
var Eval = class {
|
|
3
|
+
name;
|
|
4
|
+
description;
|
|
5
|
+
tags;
|
|
6
|
+
type;
|
|
7
|
+
setup;
|
|
8
|
+
conversation;
|
|
9
|
+
outcome;
|
|
10
|
+
options;
|
|
11
|
+
constructor(def) {
|
|
12
|
+
this.name = def.name;
|
|
13
|
+
this.conversation = def.conversation;
|
|
14
|
+
if (def.description !== void 0) this.description = def.description;
|
|
15
|
+
if (def.tags !== void 0) this.tags = def.tags;
|
|
16
|
+
if (def.type !== void 0) this.type = def.type;
|
|
17
|
+
if (def.setup !== void 0) this.setup = def.setup;
|
|
18
|
+
if (def.outcome !== void 0) this.outcome = def.outcome;
|
|
19
|
+
if (def.options !== void 0) this.options = def.options;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
Eval
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/definition.ts"],
|
|
4
|
+
"sourcesContent": ["export type MatchOperator =\n | string\n | { equals: unknown }\n | { contains: string }\n | { not_contains: string }\n | { matches: string }\n | { in: unknown[] }\n | { exists: boolean }\n | { gte: number }\n | { lte: number }\n\nexport type ResponseAssertion =\n | { contains: string }\n | { not_contains: string }\n | { matches: string }\n | { llm_judge: string }\n// | { similar_to: string } TODO: uncomment this when it gets implemented\n\nexport type ToolAssertion =\n | { called: string; params?: Record<string, MatchOperator> }\n | { not_called: string }\n | { call_order: string[] }\n\nexport interface StateAssertion {\n path: string\n equals?: unknown\n changed?: boolean\n}\n\nexport interface WorkflowAssertion {\n name: string\n entered?: boolean\n completed?: boolean\n}\n\nexport type NumericOperator = { equals: number } | { gte: number } | { lte: number }\n\nexport interface TimingAssertion {\n response_time: NumericOperator\n}\n\nexport interface TurnAssertions {\n response?: ResponseAssertion[]\n tools?: ToolAssertion[]\n state?: StateAssertion[]\n workflow?: WorkflowAssertion[]\n timing?: TimingAssertion[]\n}\n\nexport interface ConversationTurn {\n user?: string\n event?: { type: string; payload?: Record<string, unknown> }\n expectSilence?: boolean\n assert?: TurnAssertions\n}\n\nexport interface OutcomeAssertions {\n state?: StateAssertion[]\n workflow?: WorkflowAssertion[]\n}\n\nexport interface EvalSetup {\n state?: {\n bot?: Record<string, unknown>\n user?: Record<string, unknown>\n conversation?: Record<string, unknown>\n }\n workflow?: {\n trigger: string\n input?: Record<string, unknown>\n }\n}\n\nexport interface EvalDefinition {\n name: string\n description?: string\n tags?: string[]\n type?: 'capability' | 'regression'\n setup?: EvalSetup\n conversation: ConversationTurn[]\n outcome?: OutcomeAssertions\n options?: {\n idleTimeout?: number\n judgePassThreshold?: number\n }\n}\n\nexport class Eval implements EvalDefinition {\n readonly name: string\n readonly description?: string\n readonly tags?: string[]\n readonly type?: 'capability' | 'regression'\n readonly setup?: EvalSetup\n readonly conversation: ConversationTurn[]\n readonly outcome?: OutcomeAssertions\n readonly options?: {\n idleTimeout?: number\n judgePassThreshold?: number\n }\n\n constructor(def: EvalDefinition) {\n this.name = def.name\n this.conversation = def.conversation\n if (def.description !== undefined) this.description = def.description\n if (def.tags !== undefined) this.tags = def.tags\n if (def.type !== undefined) this.type = def.type\n if (def.setup !== undefined) this.setup = def.setup\n if (def.outcome !== undefined) this.outcome = def.outcome\n if (def.options !== undefined) this.options = def.options\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAuFO,IAAM,OAAN,MAAqC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAKT,YAAY,KAAqB;AAC/B,SAAK,OAAO,IAAI;AAChB,SAAK,eAAe,IAAI;AACxB,QAAI,IAAI,gBAAgB,OAAW,MAAK,cAAc,IAAI;AAC1D,QAAI,IAAI,SAAS,OAAW,MAAK,OAAO,IAAI;AAC5C,QAAI,IAAI,SAAS,OAAW,MAAK,OAAO,IAAI;AAC5C,QAAI,IAAI,UAAU,OAAW,MAAK,QAAQ,IAAI;AAC9C,QAAI,IAAI,YAAY,OAAW,MAAK,UAAU,IAAI;AAClD,QAAI,IAAI,YAAY,OAAW,MAAK,UAAU,IAAI;AAAA,EACpD;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@botpress/evals",
|
|
3
|
+
"version": "1.18.3",
|
|
4
|
+
"description": "Evaluation definitions and runner for ADK-based Botpress agents",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"adk",
|
|
7
|
+
"agent",
|
|
8
|
+
"ai",
|
|
9
|
+
"botpress",
|
|
10
|
+
"evals",
|
|
11
|
+
"evaluation"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"author": "Botpress",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/botpress/adk"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist/**/*",
|
|
21
|
+
"package.json",
|
|
22
|
+
"README.md"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"import": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./client": {
|
|
33
|
+
"types": "./dist/client.d.ts",
|
|
34
|
+
"import": "./dist/client.js"
|
|
35
|
+
},
|
|
36
|
+
"./definition": {
|
|
37
|
+
"types": "./dist/definition.d.ts",
|
|
38
|
+
"import": "./dist/definition.js"
|
|
39
|
+
},
|
|
40
|
+
"./graders": {
|
|
41
|
+
"types": "./dist/graders/index.d.ts",
|
|
42
|
+
"import": "./dist/graders/index.js"
|
|
43
|
+
},
|
|
44
|
+
"./graders/*": {
|
|
45
|
+
"types": "./dist/graders/*.d.ts",
|
|
46
|
+
"import": "./dist/graders/*.js"
|
|
47
|
+
},
|
|
48
|
+
"./loader": {
|
|
49
|
+
"types": "./dist/loader.d.ts",
|
|
50
|
+
"import": "./dist/loader.js"
|
|
51
|
+
},
|
|
52
|
+
"./runner": {
|
|
53
|
+
"types": "./dist/runner.d.ts",
|
|
54
|
+
"import": "./dist/runner.js"
|
|
55
|
+
},
|
|
56
|
+
"./sse-collector": {
|
|
57
|
+
"types": "./dist/sse-collector.d.ts",
|
|
58
|
+
"import": "./dist/sse-collector.js"
|
|
59
|
+
},
|
|
60
|
+
"./trace": {
|
|
61
|
+
"types": "./dist/trace.d.ts",
|
|
62
|
+
"import": "./dist/trace.js"
|
|
63
|
+
},
|
|
64
|
+
"./transformer": {
|
|
65
|
+
"types": "./dist/transformer.d.ts",
|
|
66
|
+
"import": "./dist/transformer.js"
|
|
67
|
+
},
|
|
68
|
+
"./types": {
|
|
69
|
+
"types": "./dist/types.d.ts",
|
|
70
|
+
"import": "./dist/types.js"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"scripts": {
|
|
74
|
+
"build": "bun build.ts",
|
|
75
|
+
"clean": "rm -rf dist",
|
|
76
|
+
"prepublishOnly": "bun run clean && bun run build",
|
|
77
|
+
"test": "bun test",
|
|
78
|
+
"check:type": "tsc --noEmit"
|
|
79
|
+
},
|
|
80
|
+
"dependencies": {
|
|
81
|
+
"@botpress/chat": "~0.5.5",
|
|
82
|
+
"@botpress/client": "~1.42.0",
|
|
83
|
+
"@botpress/cognitive": "~0.5.4"
|
|
84
|
+
},
|
|
85
|
+
"devDependencies": {
|
|
86
|
+
"@types/bun": "^1.3.5",
|
|
87
|
+
"@types/node": "^22.19.3",
|
|
88
|
+
"esbuild": "^0.25.12",
|
|
89
|
+
"vitest": "^2.1.8"
|
|
90
|
+
},
|
|
91
|
+
"peerDependencies": {
|
|
92
|
+
"typescript": ">=4.5.0"
|
|
93
|
+
},
|
|
94
|
+
"engines": {
|
|
95
|
+
"bun": ">=1.3.13",
|
|
96
|
+
"node": ">=22.0.0"
|
|
97
|
+
},
|
|
98
|
+
"packageManager": "bun@1.3.13"
|
|
99
|
+
}
|