@runtypelabs/sdk 1.7.2 → 1.7.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.
Files changed (80) hide show
  1. package/dist/index.cjs +7026 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +5147 -0
  4. package/dist/index.d.ts +5146 -27
  5. package/dist/index.js +6955 -77
  6. package/dist/index.js.map +1 -1
  7. package/package.json +14 -7
  8. package/dist/batch-builder.d.ts +0 -106
  9. package/dist/batch-builder.d.ts.map +0 -1
  10. package/dist/batch-builder.js +0 -124
  11. package/dist/batch-builder.js.map +0 -1
  12. package/dist/batches-namespace.d.ts +0 -132
  13. package/dist/batches-namespace.d.ts.map +0 -1
  14. package/dist/batches-namespace.js +0 -128
  15. package/dist/batches-namespace.js.map +0 -1
  16. package/dist/case-types.d.ts +0 -42
  17. package/dist/case-types.d.ts.map +0 -1
  18. package/dist/case-types.js +0 -16
  19. package/dist/case-types.js.map +0 -1
  20. package/dist/client-token-types.d.ts +0 -143
  21. package/dist/client-token-types.d.ts.map +0 -1
  22. package/dist/client-token-types.js +0 -11
  23. package/dist/client-token-types.js.map +0 -1
  24. package/dist/client.d.ts +0 -135
  25. package/dist/client.d.ts.map +0 -1
  26. package/dist/client.js +0 -522
  27. package/dist/client.js.map +0 -1
  28. package/dist/endpoints.d.ts +0 -1353
  29. package/dist/endpoints.d.ts.map +0 -1
  30. package/dist/endpoints.js +0 -2936
  31. package/dist/endpoints.js.map +0 -1
  32. package/dist/error-handling-types.d.ts +0 -71
  33. package/dist/error-handling-types.d.ts.map +0 -1
  34. package/dist/error-handling-types.js +0 -12
  35. package/dist/error-handling-types.js.map +0 -1
  36. package/dist/eval-builder.d.ts +0 -216
  37. package/dist/eval-builder.d.ts.map +0 -1
  38. package/dist/eval-builder.js +0 -225
  39. package/dist/eval-builder.js.map +0 -1
  40. package/dist/evals-namespace.d.ts +0 -205
  41. package/dist/evals-namespace.d.ts.map +0 -1
  42. package/dist/evals-namespace.js +0 -208
  43. package/dist/evals-namespace.js.map +0 -1
  44. package/dist/flow-builder.d.ts +0 -717
  45. package/dist/flow-builder.d.ts.map +0 -1
  46. package/dist/flow-builder.js +0 -592
  47. package/dist/flow-builder.js.map +0 -1
  48. package/dist/flow-result.d.ts +0 -117
  49. package/dist/flow-result.d.ts.map +0 -1
  50. package/dist/flow-result.js +0 -175
  51. package/dist/flow-result.js.map +0 -1
  52. package/dist/flows-namespace.d.ts +0 -442
  53. package/dist/flows-namespace.d.ts.map +0 -1
  54. package/dist/flows-namespace.js +0 -686
  55. package/dist/flows-namespace.js.map +0 -1
  56. package/dist/generated-tool-gate.d.ts +0 -75
  57. package/dist/generated-tool-gate.d.ts.map +0 -1
  58. package/dist/generated-tool-gate.js +0 -314
  59. package/dist/generated-tool-gate.js.map +0 -1
  60. package/dist/index.d.ts.map +0 -1
  61. package/dist/prompts-namespace.d.ts +0 -237
  62. package/dist/prompts-namespace.d.ts.map +0 -1
  63. package/dist/prompts-namespace.js +0 -222
  64. package/dist/prompts-namespace.js.map +0 -1
  65. package/dist/runtype.d.ts +0 -232
  66. package/dist/runtype.d.ts.map +0 -1
  67. package/dist/runtype.js +0 -367
  68. package/dist/runtype.js.map +0 -1
  69. package/dist/stream-utils.d.ts +0 -58
  70. package/dist/stream-utils.d.ts.map +0 -1
  71. package/dist/stream-utils.js +0 -373
  72. package/dist/stream-utils.js.map +0 -1
  73. package/dist/transform.d.ts +0 -30
  74. package/dist/transform.d.ts.map +0 -1
  75. package/dist/transform.js +0 -196
  76. package/dist/transform.js.map +0 -1
  77. package/dist/types.d.ts +0 -717
  78. package/dist/types.d.ts.map +0 -1
  79. package/dist/types.js +0 -7
  80. package/dist/types.js.map +0 -1
package/dist/client.js DELETED
@@ -1,522 +0,0 @@
1
- "use strict";
2
- /**
3
- * @layer sdk
4
- * @case camelCase (SDK and API both use native camelCase - no conversion needed)
5
- *
6
- * Main Runtype API Client.
7
- *
8
- * The SDK and API both use native camelCase for all request/response bodies.
9
- * No case transformation is performed.
10
- *
11
- * @see packages/client/src/transform.ts for pass-through utilities
12
- */
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || (function () {
30
- var ownKeys = function(o) {
31
- ownKeys = Object.getOwnPropertyNames || function (o) {
32
- var ar = [];
33
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
- return ar;
35
- };
36
- return ownKeys(o);
37
- };
38
- return function (mod) {
39
- if (mod && mod.__esModule) return mod;
40
- var result = {};
41
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
- __setModuleDefault(result, mod);
43
- return result;
44
- };
45
- })();
46
- Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.RuntypeApiError = exports.RuntypeClient = void 0;
48
- exports.createClient = createClient;
49
- const transform_1 = require("./transform");
50
- const endpoints_1 = require("./endpoints");
51
- const flow_builder_1 = require("./flow-builder");
52
- const flow_result_1 = require("./flow-result");
53
- function isObjectRecord(value) {
54
- return typeof value === 'object' && value !== null;
55
- }
56
- function isPausedLocalActionResult(value) {
57
- if (!isObjectRecord(value) || value.status !== 'paused') {
58
- return false;
59
- }
60
- const { pausedReason } = value;
61
- return (pausedReason === undefined ||
62
- (isObjectRecord(pausedReason) &&
63
- pausedReason.type === 'local_action' &&
64
- typeof pausedReason.toolName === 'string' &&
65
- typeof pausedReason.executionId === 'string'));
66
- }
67
- /**
68
- * RuntypeClient - The main entry point for interacting with the Runtype API
69
- *
70
- * Automatically transforms field names between camelCase (client) and snake_case (API)
71
- * to provide an idiomatic JavaScript/TypeScript experience while maintaining API consistency.
72
- */
73
- class RuntypeClient {
74
- constructor(config = {}) {
75
- const baseUrl = config.baseUrl || 'https://api.runtype.com';
76
- this.apiVersion = config.apiVersion || 'v1';
77
- // Construct versioned base URL (api.runtype.com/v1)
78
- this.baseUrl = this.apiVersion ? `${baseUrl}/${this.apiVersion}` : baseUrl;
79
- this.timeout = config.timeout || 30000;
80
- this.headers = {
81
- 'Content-Type': 'application/json',
82
- ...(config.headers || {}),
83
- };
84
- // Set API key if provided
85
- if (config.apiKey) {
86
- this.headers.Authorization = `Bearer ${config.apiKey}`;
87
- }
88
- // Initialize endpoint handlers
89
- this.flows = new endpoints_1.FlowsEndpoint(this);
90
- this.prompts = new endpoints_1.PromptsEndpoint(this);
91
- this.records = new endpoints_1.RecordsEndpoint(this);
92
- this.apiKeys = new endpoints_1.ApiKeysEndpoint(this);
93
- this.modelConfigs = new endpoints_1.ModelConfigsEndpoint(this);
94
- this.dispatch = new endpoints_1.DispatchEndpoint(this);
95
- this.chat = new endpoints_1.ChatEndpoint(this);
96
- this.users = new endpoints_1.UsersEndpoint(this);
97
- this.analytics = new endpoints_1.AnalyticsEndpoint(this);
98
- this.flowSteps = new endpoints_1.FlowStepsEndpoint(this);
99
- this.contextTemplates = new endpoints_1.ContextTemplatesEndpoint(this);
100
- this.tools = new endpoints_1.ToolsEndpoint(this);
101
- this.eval = new endpoints_1.EvalEndpoint(this);
102
- this.clientTokens = new endpoints_1.ClientTokensEndpoint(this);
103
- this.agents = new endpoints_1.AgentsEndpoint(this);
104
- }
105
- /**
106
- * Set the API key for authentication
107
- */
108
- setApiKey(apiKey) {
109
- this.headers.Authorization = `Bearer ${apiKey}`;
110
- }
111
- /**
112
- * Start building a flow with fluent API
113
- *
114
- * @example
115
- * ```typescript
116
- * const response = await runtype
117
- * .flow('My Flow')
118
- * .withRecord({ name: 'Test', type: 'data' })
119
- * .fetchUrl({ name: 'Fetch', url: '...', outputVariable: 'data' })
120
- * .prompt({ name: 'Process', model: 'gpt-4', userPrompt: '...' })
121
- * .run()
122
- * ```
123
- */
124
- flow(name) {
125
- return new flow_builder_1.ClientFlowBuilder({
126
- dispatch: (config) => this.dispatch.executeStream(config),
127
- runWithLocalTools: (config, tools) => this.runWithLocalTools(config, tools),
128
- }, name);
129
- }
130
- /**
131
- * Remove the API key
132
- */
133
- clearApiKey() {
134
- delete this.headers.Authorization;
135
- }
136
- /**
137
- * Run a flow with client-side tools (automatic pause/resume loop)
138
- *
139
- * @param request - The dispatch request configuration
140
- * @param clientTools - Map of tool names to async functions that execute the tool logic
141
- * @param callbacks - Optional callbacks for streaming events
142
- * @returns The final result of the flow execution or summary if streaming
143
- */
144
- async runWithLocalTools(request, localTools, callbacks) {
145
- // If callbacks are provided, use streaming mode
146
- // If not, force non-streaming for JSON state machine
147
- const isStreaming = !!callbacks;
148
- const modifiedRequest = {
149
- ...request,
150
- options: {
151
- ...(request.options || {}),
152
- streamResponse: isStreaming,
153
- },
154
- };
155
- const processStep = async (response) => {
156
- if (isStreaming) {
157
- // Stream processing
158
- let pausedState = null;
159
- // Wrap user callbacks to intercept paused event
160
- const wrappedCallbacks = {
161
- ...callbacks,
162
- onFlowStart: (event) => callbacks?.onFlowStart?.(event),
163
- onStepStart: (event) => callbacks?.onStepStart?.(event),
164
- onStepChunk: (chunk, event) => callbacks?.onStepChunk?.(chunk, event),
165
- onStepComplete: (result, event) => callbacks?.onStepComplete?.(result, event),
166
- onFlowComplete: (event) => callbacks?.onFlowComplete?.(event),
167
- onError: (error) => callbacks?.onError?.(error),
168
- };
169
- const { streamEvents } = await Promise.resolve().then(() => __importStar(require('./stream-utils')));
170
- const summary = {
171
- results: new Map(),
172
- success: true,
173
- };
174
- try {
175
- for await (const event of streamEvents(response)) {
176
- if (event.type === 'flow_await') {
177
- // API sends: executionId, flowId, toolId, toolName.
178
- // Parameters are sent in step_await event just before this
179
- const pausedEvent = event;
180
- pausedState = {
181
- ...(pausedState ?? {}),
182
- toolName: pausedEvent.toolName,
183
- executionId: pausedEvent.executionId,
184
- };
185
- }
186
- if (event.type === 'step_await') {
187
- // Capture parameters
188
- const pausedEvent = event;
189
- pausedState = {
190
- toolName: pausedEvent.toolName,
191
- parameters: pausedEvent.parameters,
192
- executionId: pausedEvent.executionId,
193
- };
194
- }
195
- // Handle standard events via callbacks
196
- switch (event.type) {
197
- case 'flow_start':
198
- wrappedCallbacks.onFlowStart?.(event);
199
- break;
200
- case 'step_start':
201
- wrappedCallbacks.onStepStart?.(event);
202
- break;
203
- case 'step_delta': {
204
- // Normalize API's 'text' field to 'chunk' for consistency
205
- const deltaEvent = event;
206
- const chunkText = deltaEvent.chunk || deltaEvent.text || '';
207
- wrappedCallbacks.onStepChunk?.(chunkText, deltaEvent);
208
- break;
209
- }
210
- case 'step_complete': {
211
- summary.results?.set(event.name, event.result);
212
- wrappedCallbacks.onStepComplete?.(event.result, event);
213
- break;
214
- }
215
- case 'flow_complete':
216
- wrappedCallbacks.onFlowComplete?.(event);
217
- break;
218
- case 'flow_error':
219
- wrappedCallbacks.onError?.(new Error(event.error));
220
- break;
221
- }
222
- }
223
- }
224
- catch (e) {
225
- wrappedCallbacks.onError?.(e instanceof Error ? e : new Error(String(e)));
226
- throw e;
227
- }
228
- if (pausedState) {
229
- return {
230
- done: false,
231
- result: { status: 'paused', pausedReason: { type: 'local_action', ...pausedState } },
232
- };
233
- }
234
- return { done: true, result: summary };
235
- }
236
- else {
237
- // Non-streaming (JSON)
238
- const data = await response.json();
239
- return {
240
- done: data.status !== 'paused',
241
- result: data,
242
- };
243
- }
244
- };
245
- // Initial dispatch
246
- let currentResponse;
247
- if (isStreaming) {
248
- currentResponse = await this.dispatch.executeStream(modifiedRequest);
249
- }
250
- else {
251
- const data = await this.dispatch.execute(modifiedRequest);
252
- currentResponse = new Response(JSON.stringify(data), {
253
- headers: { 'content-type': 'application/json' },
254
- });
255
- }
256
- // Loop
257
- while (true) {
258
- const { done, result } = await processStep(currentResponse);
259
- if (done) {
260
- if (isStreaming)
261
- return result;
262
- return new flow_result_1.FlowResult(new Response(JSON.stringify(result), { headers: { 'content-type': 'application/json' } }));
263
- }
264
- // Handle Pause
265
- if (isPausedLocalActionResult(result) && result.pausedReason?.type === 'local_action') {
266
- const { toolName, parameters, executionId } = result.pausedReason;
267
- if (!localTools[toolName]) {
268
- throw new Error(`Local tool "${toolName}" required but not provided in localTools map`);
269
- }
270
- try {
271
- // Execute local tool logic
272
- const toolResult = await localTools[toolName](parameters);
273
- // Resume flow execution
274
- const resumeData = {
275
- executionId: executionId,
276
- toolOutputs: { [toolName]: toolResult },
277
- streamResponse: isStreaming,
278
- };
279
- if (isStreaming) {
280
- currentResponse = (await this.dispatch.resume(resumeData));
281
- }
282
- else {
283
- const data = await this.dispatch.resume(resumeData);
284
- currentResponse = new Response(JSON.stringify(data), {
285
- headers: { 'content-type': 'application/json' },
286
- });
287
- }
288
- }
289
- catch (error) {
290
- throw new Error(`Error executing local tool "${toolName}": ${error instanceof Error ? error.message : String(error)}`);
291
- }
292
- }
293
- else {
294
- // Should not happen if done=false
295
- break;
296
- }
297
- }
298
- throw new Error('Unexpected end of flow execution loop');
299
- }
300
- /**
301
- * Generic GET request
302
- */
303
- async get(path, params) {
304
- const url = this.buildUrl(path, params);
305
- const response = await this.makeRequest(url, {
306
- method: 'GET',
307
- headers: this.headers,
308
- });
309
- return (0, transform_1.transformResponse)(response);
310
- }
311
- /**
312
- * Generic POST request
313
- */
314
- async post(path, data) {
315
- const url = this.buildUrl(path);
316
- const response = await this.makeRequest(url, {
317
- method: 'POST',
318
- headers: this.headers,
319
- body: data ? JSON.stringify((0, transform_1.transformRequest)(data)) : undefined,
320
- });
321
- return (0, transform_1.transformResponse)(response);
322
- }
323
- /**
324
- * POST request with FormData support for file uploads
325
- */
326
- async postFormData(path, formData) {
327
- const url = this.buildUrl(path);
328
- const headers = { ...this.headers };
329
- // Remove Content-Type to let browser set multipart boundary
330
- delete headers['Content-Type'];
331
- const response = await this.makeRequest(url, {
332
- method: 'POST',
333
- headers,
334
- body: formData,
335
- });
336
- return (0, transform_1.transformResponse)(response);
337
- }
338
- /**
339
- * Generic request that returns raw Response for streaming
340
- */
341
- async requestStream(path, options = {}) {
342
- const url = this.buildUrl(path);
343
- const headers = {
344
- ...this.headers,
345
- ...options.headers,
346
- };
347
- // Transform request body if it's JSON
348
- let body = options.body;
349
- if (body && typeof body === 'string' && headers['Content-Type']?.includes('application/json')) {
350
- try {
351
- const parsed = JSON.parse(body);
352
- body = JSON.stringify((0, transform_1.transformRequest)(parsed));
353
- }
354
- catch {
355
- // If parsing fails, use original body
356
- }
357
- }
358
- return this.makeRawRequest(url, {
359
- ...options,
360
- headers,
361
- body,
362
- });
363
- }
364
- /**
365
- * Generic PUT request
366
- */
367
- async put(path, data) {
368
- const url = this.buildUrl(path);
369
- const response = await this.makeRequest(url, {
370
- method: 'PUT',
371
- headers: this.headers,
372
- body: data ? JSON.stringify((0, transform_1.transformRequest)(data)) : undefined,
373
- });
374
- return (0, transform_1.transformResponse)(response);
375
- }
376
- /**
377
- * Generic PATCH request
378
- */
379
- async patch(path, data) {
380
- const url = this.buildUrl(path);
381
- const response = await this.makeRequest(url, {
382
- method: 'PATCH',
383
- headers: this.headers,
384
- body: data ? JSON.stringify((0, transform_1.transformRequest)(data)) : undefined,
385
- });
386
- return (0, transform_1.transformResponse)(response);
387
- }
388
- /**
389
- * Generic DELETE request
390
- */
391
- async delete(path, data) {
392
- const url = this.buildUrl(path);
393
- const response = await this.makeRequest(url, {
394
- method: 'DELETE',
395
- headers: this.headers,
396
- body: data ? JSON.stringify((0, transform_1.transformRequest)(data)) : undefined,
397
- });
398
- return (0, transform_1.transformResponse)(response);
399
- }
400
- /**
401
- * Build full URL with query parameters
402
- */
403
- buildUrl(path, params) {
404
- // Ensure versioned base URL is treated as a directory by URL()
405
- const base = this.baseUrl.endsWith('/') ? this.baseUrl : `${this.baseUrl}/`;
406
- // Avoid leading slash in path which would reset to origin root
407
- const relPath = path.startsWith('/') ? path.slice(1) : path;
408
- const url = new URL(relPath, base);
409
- if (params) {
410
- const transformedParams = (0, transform_1.transformQueryParams)(params);
411
- Object.entries(transformedParams).forEach(([key, value]) => {
412
- url.searchParams.set(key, value);
413
- });
414
- }
415
- return url.toString();
416
- }
417
- /**
418
- * Make HTTP request with timeout and error handling
419
- */
420
- async makeRequest(url, options) {
421
- const controller = new AbortController();
422
- const timeoutId = setTimeout(() => controller.abort(), this.timeout);
423
- try {
424
- const response = await fetch(url, {
425
- ...options,
426
- signal: controller.signal,
427
- });
428
- clearTimeout(timeoutId);
429
- if (!response.ok) {
430
- throw await this.createApiError(response);
431
- }
432
- // Handle empty responses (like 204 No Content)
433
- if (response.status === 204) {
434
- return null;
435
- }
436
- const contentType = response.headers.get('content-type');
437
- if (contentType?.includes('application/json')) {
438
- return response.json();
439
- }
440
- return response.text();
441
- }
442
- catch (error) {
443
- clearTimeout(timeoutId);
444
- if (error instanceof Error && error.name === 'AbortError') {
445
- throw new Error(`Request timeout after ${this.timeout}ms`);
446
- }
447
- throw error;
448
- }
449
- }
450
- /**
451
- * Make HTTP request that returns raw Response (for streaming)
452
- */
453
- async makeRawRequest(url, options) {
454
- const controller = new AbortController();
455
- const timeoutId = setTimeout(() => controller.abort(), this.timeout);
456
- try {
457
- const response = await fetch(url, {
458
- ...options,
459
- signal: controller.signal,
460
- });
461
- clearTimeout(timeoutId);
462
- if (!response.ok) {
463
- throw await this.createApiError(response);
464
- }
465
- return response;
466
- }
467
- catch (error) {
468
- clearTimeout(timeoutId);
469
- if (error instanceof Error && error.name === 'AbortError') {
470
- throw new Error(`Request timeout after ${this.timeout}ms`);
471
- }
472
- throw error;
473
- }
474
- }
475
- /**
476
- * Handle error responses
477
- */
478
- async createApiError(response) {
479
- let errorData;
480
- try {
481
- const contentType = response.headers.get('content-type');
482
- if (contentType?.includes('application/json')) {
483
- errorData = await response.json();
484
- }
485
- else {
486
- errorData = { error: await response.text() };
487
- }
488
- }
489
- catch {
490
- errorData = { error: 'Unknown error occurred' };
491
- }
492
- const message = isObjectRecord(errorData) &&
493
- (typeof errorData.error === 'string' || typeof errorData.message === 'string')
494
- ? errorData.error ||
495
- errorData.message ||
496
- 'Request failed'
497
- : 'Request failed';
498
- return new RuntypeApiError(message, response.status, errorData, new Headers(response.headers), response.statusText);
499
- }
500
- }
501
- exports.RuntypeClient = RuntypeClient;
502
- /**
503
- * Custom error class for Runtype API errors
504
- */
505
- class RuntypeApiError extends Error {
506
- constructor(message, statusCode, data, headers, statusText) {
507
- super(message);
508
- this.statusCode = statusCode;
509
- this.data = data;
510
- this.headers = headers;
511
- this.statusText = statusText;
512
- this.name = 'RuntypeApiError';
513
- }
514
- }
515
- exports.RuntypeApiError = RuntypeApiError;
516
- /**
517
- * Convenience function to create a new RuntypeClient instance
518
- */
519
- function createClient(config) {
520
- return new RuntypeClient(config);
521
- }
522
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}