@runtypelabs/sdk 0.1.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 +398 -0
- package/dist/batch-builder.d.ts +106 -0
- package/dist/batch-builder.d.ts.map +1 -0
- package/dist/batch-builder.js +124 -0
- package/dist/batch-builder.js.map +1 -0
- package/dist/batches-namespace.d.ts +132 -0
- package/dist/batches-namespace.d.ts.map +1 -0
- package/dist/batches-namespace.js +128 -0
- package/dist/batches-namespace.js.map +1 -0
- package/dist/client.d.ts +121 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +485 -0
- package/dist/client.js.map +1 -0
- package/dist/endpoints.d.ts +560 -0
- package/dist/endpoints.d.ts.map +1 -0
- package/dist/endpoints.js +725 -0
- package/dist/endpoints.js.map +1 -0
- package/dist/eval-builder.d.ts +216 -0
- package/dist/eval-builder.d.ts.map +1 -0
- package/dist/eval-builder.js +225 -0
- package/dist/eval-builder.js.map +1 -0
- package/dist/evals-namespace.d.ts +205 -0
- package/dist/evals-namespace.d.ts.map +1 -0
- package/dist/evals-namespace.js +208 -0
- package/dist/evals-namespace.js.map +1 -0
- package/dist/flow-builder.d.ts +620 -0
- package/dist/flow-builder.d.ts.map +1 -0
- package/dist/flow-builder.js +565 -0
- package/dist/flow-builder.js.map +1 -0
- package/dist/flow-result.d.ts +117 -0
- package/dist/flow-result.d.ts.map +1 -0
- package/dist/flow-result.js +175 -0
- package/dist/flow-result.js.map +1 -0
- package/dist/flows-namespace.d.ts +430 -0
- package/dist/flows-namespace.d.ts.map +1 -0
- package/dist/flows-namespace.js +679 -0
- package/dist/flows-namespace.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts-namespace.d.ts +236 -0
- package/dist/prompts-namespace.d.ts.map +1 -0
- package/dist/prompts-namespace.js +222 -0
- package/dist/prompts-namespace.js.map +1 -0
- package/dist/runtype.d.ts +232 -0
- package/dist/runtype.d.ts.map +1 -0
- package/dist/runtype.js +367 -0
- package/dist/runtype.js.map +1 -0
- package/dist/stream-utils.d.ts +58 -0
- package/dist/stream-utils.d.ts.map +1 -0
- package/dist/stream-utils.js +348 -0
- package/dist/stream-utils.js.map +1 -0
- package/dist/transform.d.ts +21 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +170 -0
- package/dist/transform.js.map +1 -0
- package/dist/types.d.ts +626 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evals-namespace.d.ts","sourceRoot":"","sources":["../src/evals-namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EvalsNamespace - Static namespace for evaluation operations
|
|
4
|
+
*
|
|
5
|
+
* Provides methods for running evaluations and comparing model performance.
|
|
6
|
+
* Evals can be streamed for real-time results or submitted as batch jobs.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.EvalsNamespace = exports.EvalRunner = void 0;
|
|
10
|
+
const flow_result_1 = require("./flow-result");
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// EvalRunner
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* EvalRunner - Builder returned by Runtype.evals.run()
|
|
16
|
+
*
|
|
17
|
+
* Provides terminal methods for executing evaluations:
|
|
18
|
+
* - .stream() - Execute and stream results in real-time
|
|
19
|
+
* - .submit() - Submit as a batch job for async processing
|
|
20
|
+
*/
|
|
21
|
+
class EvalRunner {
|
|
22
|
+
constructor(getClient, config) {
|
|
23
|
+
this.getClient = getClient;
|
|
24
|
+
this.config = config;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Execute the evaluation with streaming results
|
|
28
|
+
*
|
|
29
|
+
* Streams evaluation results as they complete.
|
|
30
|
+
* Good for real-time feedback during development/testing.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const result = await Runtype.evals.run({
|
|
35
|
+
* flowId: 'flow_123',
|
|
36
|
+
* recordType: 'test_data',
|
|
37
|
+
* models: [{ stepName: 'Analyze', model: 'gpt-4o' }]
|
|
38
|
+
* }).stream()
|
|
39
|
+
*
|
|
40
|
+
* // Process with callbacks
|
|
41
|
+
* await result.stream({
|
|
42
|
+
* onStepComplete: (result, event) => {
|
|
43
|
+
* console.log('Step completed:', event.name, result)
|
|
44
|
+
* },
|
|
45
|
+
* })
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
async stream(callbacks) {
|
|
49
|
+
const client = this.getClient();
|
|
50
|
+
const payload = this.buildPayload();
|
|
51
|
+
payload.stream = true;
|
|
52
|
+
const response = await client.requestStream('/eval/stream', {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
body: JSON.stringify(payload)
|
|
55
|
+
});
|
|
56
|
+
const result = new flow_result_1.FlowResult(response);
|
|
57
|
+
if (callbacks) {
|
|
58
|
+
await result.stream(callbacks);
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Submit the evaluation as a batch job
|
|
64
|
+
*
|
|
65
|
+
* Queues the evaluation to run asynchronously.
|
|
66
|
+
* Good for large evaluations or scheduled runs.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const eval = await Runtype.evals.run({
|
|
71
|
+
* flowId: 'flow_123',
|
|
72
|
+
* recordType: 'test_data',
|
|
73
|
+
* compareModels: [
|
|
74
|
+
* [{ stepName: 'Analyze', model: 'gpt-4o' }],
|
|
75
|
+
* [{ stepName: 'Analyze', model: 'claude-3-opus' }],
|
|
76
|
+
* ]
|
|
77
|
+
* }).submit()
|
|
78
|
+
*
|
|
79
|
+
* console.log('Eval queued:', eval.evalId)
|
|
80
|
+
*
|
|
81
|
+
* // Check status later
|
|
82
|
+
* const status = await Runtype.evals.get(eval.evalId)
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
async submit() {
|
|
86
|
+
const client = this.getClient();
|
|
87
|
+
const payload = this.buildPayload();
|
|
88
|
+
payload.async = true;
|
|
89
|
+
return client.post('/evals', payload);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build the evaluation payload
|
|
93
|
+
*/
|
|
94
|
+
buildPayload() {
|
|
95
|
+
const payload = {};
|
|
96
|
+
if (this.config.flowId) {
|
|
97
|
+
payload.flowId = this.config.flowId;
|
|
98
|
+
}
|
|
99
|
+
else if (this.config.flow) {
|
|
100
|
+
payload.flow = this.config.flow;
|
|
101
|
+
}
|
|
102
|
+
if (this.config.recordType) {
|
|
103
|
+
payload.recordType = this.config.recordType;
|
|
104
|
+
}
|
|
105
|
+
else if (this.config.records) {
|
|
106
|
+
payload.records = this.config.records;
|
|
107
|
+
}
|
|
108
|
+
if (this.config.models) {
|
|
109
|
+
payload.modelOverrides = this.config.models;
|
|
110
|
+
}
|
|
111
|
+
else if (this.config.compareModels) {
|
|
112
|
+
payload.modelConfigs = this.config.compareModels;
|
|
113
|
+
}
|
|
114
|
+
const options = {};
|
|
115
|
+
if (this.config.storeResults !== undefined)
|
|
116
|
+
options.storeResults = this.config.storeResults;
|
|
117
|
+
if (this.config.parallel !== undefined)
|
|
118
|
+
options.parallel = this.config.parallel;
|
|
119
|
+
if (this.config.concurrency !== undefined)
|
|
120
|
+
options.concurrency = this.config.concurrency;
|
|
121
|
+
if (this.config.continueOnError !== undefined)
|
|
122
|
+
options.continueOnError = this.config.continueOnError;
|
|
123
|
+
if (Object.keys(options).length > 0) {
|
|
124
|
+
payload.options = options;
|
|
125
|
+
}
|
|
126
|
+
if (this.config.filter) {
|
|
127
|
+
payload.filter = this.config.filter;
|
|
128
|
+
}
|
|
129
|
+
if (this.config.limit !== undefined) {
|
|
130
|
+
payload.limit = this.config.limit;
|
|
131
|
+
}
|
|
132
|
+
return payload;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.EvalRunner = EvalRunner;
|
|
136
|
+
// ============================================================================
|
|
137
|
+
// EvalsNamespace
|
|
138
|
+
// ============================================================================
|
|
139
|
+
class EvalsNamespace {
|
|
140
|
+
constructor(getClient) {
|
|
141
|
+
this.getClient = getClient;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Run an evaluation
|
|
145
|
+
*
|
|
146
|
+
* Returns an EvalRunner with terminal methods:
|
|
147
|
+
* - .stream() - Execute and stream results
|
|
148
|
+
* - .submit() - Submit as batch job
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* // Single model evaluation with streaming
|
|
153
|
+
* const result = await Runtype.evals.run({
|
|
154
|
+
* flowId: 'flow_123',
|
|
155
|
+
* recordType: 'test_data',
|
|
156
|
+
* models: [{ stepName: 'Analyze', model: 'gpt-4o' }]
|
|
157
|
+
* }).stream()
|
|
158
|
+
*
|
|
159
|
+
* // Multi-model comparison as batch
|
|
160
|
+
* const eval = await Runtype.evals.run({
|
|
161
|
+
* flowId: 'flow_123',
|
|
162
|
+
* recordType: 'test_data',
|
|
163
|
+
* compareModels: [
|
|
164
|
+
* [{ stepName: 'Analyze', model: 'gpt-4o' }],
|
|
165
|
+
* [{ stepName: 'Analyze', model: 'claude-3-opus' }],
|
|
166
|
+
* [{ stepName: 'Analyze', model: 'gemini-pro' }],
|
|
167
|
+
* ]
|
|
168
|
+
* }).submit()
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
run(config) {
|
|
172
|
+
return new EvalRunner(this.getClient, config);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get evaluation status by ID
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* const status = await Runtype.evals.get('eval_123')
|
|
180
|
+
* console.log(status.status, status.completedRecords, '/', status.totalRecords)
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
async get(evalId) {
|
|
184
|
+
const client = this.getClient();
|
|
185
|
+
return client.get(`/evals/${evalId}`);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* List evaluations
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* // List all evals
|
|
193
|
+
* const evals = await Runtype.evals.list()
|
|
194
|
+
*
|
|
195
|
+
* // Filter by status
|
|
196
|
+
* const running = await Runtype.evals.list({ status: 'running' })
|
|
197
|
+
*
|
|
198
|
+
* // Filter by flow
|
|
199
|
+
* const flowEvals = await Runtype.evals.list({ flowId: 'flow_123' })
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
async list(params) {
|
|
203
|
+
const client = this.getClient();
|
|
204
|
+
return client.get('/evals', params);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.EvalsNamespace = EvalsNamespace;
|
|
208
|
+
//# sourceMappingURL=evals-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evals-namespace.js","sourceRoot":"","sources":["../src/evals-namespace.ts"],"names":[],"mappings":"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"}
|