@meistrari/tela-sdk-js 2.4.3 → 2.5.0
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/index.cjs +976 -132
- package/dist/index.d.cts +963 -37
- package/dist/index.d.mts +963 -37
- package/dist/index.d.ts +963 -37
- package/dist/index.mjs +976 -133
- package/package.json +2 -1
package/dist/index.d.mts
CHANGED
|
@@ -22,6 +22,7 @@ type RequestOptions<Req = unknown | Record<string, unknown>> = {
|
|
|
22
22
|
stream?: boolean | undefined;
|
|
23
23
|
timeout?: number;
|
|
24
24
|
signal?: AbortSignal | undefined | null;
|
|
25
|
+
transformCase?: boolean;
|
|
25
26
|
};
|
|
26
27
|
interface BaseClientOptions {
|
|
27
28
|
baseURL: string;
|
|
@@ -145,6 +146,15 @@ declare class ExecutionFailedError extends TelaError {
|
|
|
145
146
|
readonly rawOutput: Record<string, any>;
|
|
146
147
|
constructor(rawOutput: Record<string, any>);
|
|
147
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Thrown when batch execution fails on the server.
|
|
151
|
+
*
|
|
152
|
+
* @category Errors
|
|
153
|
+
*/
|
|
154
|
+
declare class BatchExecutionFailedError extends TelaError {
|
|
155
|
+
readonly rawResponse: Record<string, any>;
|
|
156
|
+
constructor(rawResponse: Record<string, any>);
|
|
157
|
+
}
|
|
148
158
|
/**
|
|
149
159
|
* Base class for all API-related errors.
|
|
150
160
|
*
|
|
@@ -385,16 +395,6 @@ declare class TelaFile {
|
|
|
385
395
|
private isValidVaultReference;
|
|
386
396
|
}
|
|
387
397
|
|
|
388
|
-
/**
|
|
389
|
-
* Canvas execution module for managing canvas execution lifecycle and modes.
|
|
390
|
-
*
|
|
391
|
-
* This module handles the execution of canvas templates with support for
|
|
392
|
-
* synchronous, asynchronous (with polling), and streaming modes. It also
|
|
393
|
-
* manages file uploads and result validation.
|
|
394
|
-
*
|
|
395
|
-
* @module Resources
|
|
396
|
-
*/
|
|
397
|
-
|
|
398
398
|
interface BaseExecutionParams {
|
|
399
399
|
/**
|
|
400
400
|
* The version ID of the canvas to use for this chat completion.
|
|
@@ -471,6 +471,29 @@ interface BaseExecutionParams {
|
|
|
471
471
|
*/
|
|
472
472
|
tags?: string[];
|
|
473
473
|
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Helper type to add request ID to a response type.
|
|
477
|
+
*
|
|
478
|
+
* The `requestId` field contains the value from the `x-request-id` HTTP header
|
|
479
|
+
* returned by the API for that specific request.
|
|
480
|
+
*
|
|
481
|
+
* @template T - The base response type.
|
|
482
|
+
*/
|
|
483
|
+
type WithRequestId<T> = T & {
|
|
484
|
+
requestId?: string;
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* Canvas execution module for managing canvas execution lifecycle and modes.
|
|
489
|
+
*
|
|
490
|
+
* This module handles the execution of canvas templates with support for
|
|
491
|
+
* synchronous, asynchronous (with polling), and streaming modes. It also
|
|
492
|
+
* manages file uploads and result validation.
|
|
493
|
+
*
|
|
494
|
+
* @module Resources
|
|
495
|
+
*/
|
|
496
|
+
|
|
474
497
|
/**
|
|
475
498
|
* Configuration for asynchronous canvas execution with polling.
|
|
476
499
|
* The execution starts immediately but results must be retrieved via polling.
|
|
@@ -486,15 +509,15 @@ interface AsyncExecutionParams extends BaseExecutionParams {
|
|
|
486
509
|
*/
|
|
487
510
|
webhookUrl?: string;
|
|
488
511
|
/**
|
|
489
|
-
* Time in milliseconds between polling attempts.
|
|
512
|
+
* Time (in milliseconds if number) between polling attempts (e.g. "1s", "1m", "1h", "1d").
|
|
490
513
|
* @default 1000
|
|
491
514
|
*/
|
|
492
|
-
pollingInterval?: number;
|
|
515
|
+
pollingInterval?: string | number;
|
|
493
516
|
/**
|
|
494
|
-
* Maximum time in milliseconds to wait for completion before timing out.
|
|
517
|
+
* Maximum time (in milliseconds if number) to wait for completion before timing out (e.g. "1s", "1m", "1h", "1d").
|
|
495
518
|
* @default 60000
|
|
496
519
|
*/
|
|
497
|
-
pollingTimeout?: number;
|
|
520
|
+
pollingTimeout?: string | number;
|
|
498
521
|
/**
|
|
499
522
|
* Stream mode is not available for async executions.
|
|
500
523
|
*/
|
|
@@ -649,17 +672,6 @@ type TaskCreationResult = {
|
|
|
649
672
|
* This type will be refined in future versions with proper typing.
|
|
650
673
|
*/
|
|
651
674
|
type RawAPIResult = any;
|
|
652
|
-
/**
|
|
653
|
-
* Helper type to add request ID to a response type.
|
|
654
|
-
*
|
|
655
|
-
* The `requestId` field contains the value from the `x-request-id` HTTP header
|
|
656
|
-
* returned by the API for that specific request.
|
|
657
|
-
*
|
|
658
|
-
* @template T - The base response type.
|
|
659
|
-
*/
|
|
660
|
-
type WithRequestId<T> = T & {
|
|
661
|
-
requestId?: string;
|
|
662
|
-
};
|
|
663
675
|
/**
|
|
664
676
|
* Result returned when polling for asynchronous execution status.
|
|
665
677
|
*
|
|
@@ -823,8 +835,8 @@ declare class CanvasExecution<TParams extends ExecutionParams = SyncExecutionPar
|
|
|
823
835
|
* ```
|
|
824
836
|
*/
|
|
825
837
|
static fetch<TOutput = unknown>(id: string, outputSchema: _zod__default.ZodType | Record<string, unknown>, client: BaseClient, options?: {
|
|
826
|
-
pollingInterval?: number;
|
|
827
|
-
pollingTimeout?: number;
|
|
838
|
+
pollingInterval?: string | number;
|
|
839
|
+
pollingTimeout?: string | number;
|
|
828
840
|
isTask?: boolean;
|
|
829
841
|
}): Promise<CanvasExecution<AsyncExecutionParams, unknown, TOutput>>;
|
|
830
842
|
/**
|
|
@@ -1124,6 +1136,895 @@ declare class CanvasExecution<TParams extends ExecutionParams = SyncExecutionPar
|
|
|
1124
1136
|
private uploadFiles;
|
|
1125
1137
|
}
|
|
1126
1138
|
|
|
1139
|
+
type CompletionRunResult<TOutput> = {
|
|
1140
|
+
id: string;
|
|
1141
|
+
status: string;
|
|
1142
|
+
inputContent: {
|
|
1143
|
+
files: Array<any>;
|
|
1144
|
+
messages: Array<any>;
|
|
1145
|
+
variables: Record<string, unknown>;
|
|
1146
|
+
};
|
|
1147
|
+
outputContent: {
|
|
1148
|
+
role: string;
|
|
1149
|
+
content: TOutput;
|
|
1150
|
+
toolCalls: Array<any>;
|
|
1151
|
+
functionCall: any;
|
|
1152
|
+
};
|
|
1153
|
+
rawInput: {
|
|
1154
|
+
tags: Array<string>;
|
|
1155
|
+
async: boolean;
|
|
1156
|
+
canvasId: string;
|
|
1157
|
+
variables: Record<string, unknown>;
|
|
1158
|
+
};
|
|
1159
|
+
rawOutput: {
|
|
1160
|
+
id: string;
|
|
1161
|
+
usage: {
|
|
1162
|
+
cost: {
|
|
1163
|
+
totalCost: number;
|
|
1164
|
+
promptCost: number;
|
|
1165
|
+
completionCost: number;
|
|
1166
|
+
};
|
|
1167
|
+
totalTokens: number;
|
|
1168
|
+
promptTokens: number;
|
|
1169
|
+
completionTokens: number;
|
|
1170
|
+
};
|
|
1171
|
+
object: string;
|
|
1172
|
+
choices: Array<{
|
|
1173
|
+
message: {
|
|
1174
|
+
role: string;
|
|
1175
|
+
content: TOutput;
|
|
1176
|
+
toolCalls: Array<any>;
|
|
1177
|
+
functionCall: any;
|
|
1178
|
+
};
|
|
1179
|
+
}>;
|
|
1180
|
+
created: number;
|
|
1181
|
+
};
|
|
1182
|
+
compatibilityDate: string;
|
|
1183
|
+
metadata: {
|
|
1184
|
+
promptVersion: {
|
|
1185
|
+
modelConfigurations: {
|
|
1186
|
+
type: string;
|
|
1187
|
+
model: string;
|
|
1188
|
+
temperature: number;
|
|
1189
|
+
structuredOutput: {
|
|
1190
|
+
schema: {
|
|
1191
|
+
type: string;
|
|
1192
|
+
title: string;
|
|
1193
|
+
required: Array<string>;
|
|
1194
|
+
properties: Record<string, unknown>;
|
|
1195
|
+
description: string;
|
|
1196
|
+
};
|
|
1197
|
+
enabled: boolean;
|
|
1198
|
+
};
|
|
1199
|
+
};
|
|
1200
|
+
variablesDefinitions: Array<{
|
|
1201
|
+
name: string;
|
|
1202
|
+
type: string;
|
|
1203
|
+
required: boolean;
|
|
1204
|
+
processingOptions: {
|
|
1205
|
+
allowMultimodal: boolean;
|
|
1206
|
+
};
|
|
1207
|
+
}>;
|
|
1208
|
+
};
|
|
1209
|
+
};
|
|
1210
|
+
tags: Array<string>;
|
|
1211
|
+
creditsUsed: number;
|
|
1212
|
+
promptId: string;
|
|
1213
|
+
promptVersionId: string;
|
|
1214
|
+
promptApplicationId: any;
|
|
1215
|
+
workspaceId: string;
|
|
1216
|
+
createdAt: string;
|
|
1217
|
+
updatedAt: string;
|
|
1218
|
+
deletedAt: any;
|
|
1219
|
+
};
|
|
1220
|
+
|
|
1221
|
+
/**
|
|
1222
|
+
* Helper type for accepting either a single value or an array of values.
|
|
1223
|
+
*
|
|
1224
|
+
* @template T - The base type.
|
|
1225
|
+
*/
|
|
1226
|
+
type MaybeArray<T> = T | T[];
|
|
1227
|
+
/**
|
|
1228
|
+
* Canvas identification methods for batch operations.
|
|
1229
|
+
* Use either canvas ID with optional version, or application ID.
|
|
1230
|
+
*/
|
|
1231
|
+
type CanvasIdentifier = {
|
|
1232
|
+
id: string;
|
|
1233
|
+
versionId?: string;
|
|
1234
|
+
} | {
|
|
1235
|
+
applicationId: string;
|
|
1236
|
+
};
|
|
1237
|
+
/**
|
|
1238
|
+
* Status of a batch execution.
|
|
1239
|
+
*
|
|
1240
|
+
* Lifecycle progression:
|
|
1241
|
+
* - `created` - Batch queued on server (initial state)
|
|
1242
|
+
* - `validating` - Input file validation in progress
|
|
1243
|
+
* - `running` - Batch actively processing executions
|
|
1244
|
+
* - `completed` - All executions finished successfully
|
|
1245
|
+
* - `failed` - Batch failed (validation error or server failure)
|
|
1246
|
+
* - `canceled` - Batch canceled by user
|
|
1247
|
+
*
|
|
1248
|
+
* @see {@link BatchExecution.status} for accessing current status
|
|
1249
|
+
*/
|
|
1250
|
+
type BatchExecutionStatus = 'created' | 'validating' | 'running' | 'failed' | 'completed' | 'canceled';
|
|
1251
|
+
/**
|
|
1252
|
+
* Raw API response for batch execution operations.
|
|
1253
|
+
* Contains batch metadata, status, and progress information.
|
|
1254
|
+
*/
|
|
1255
|
+
type BatchResponse = {
|
|
1256
|
+
/**
|
|
1257
|
+
* The type of batch task (always 'async-completion').
|
|
1258
|
+
*/
|
|
1259
|
+
task: string;
|
|
1260
|
+
/**
|
|
1261
|
+
* Vault URL of the input JSONL file.
|
|
1262
|
+
*/
|
|
1263
|
+
inputFile: string;
|
|
1264
|
+
/**
|
|
1265
|
+
* Webhook URL for completion notifications, if configured.
|
|
1266
|
+
*/
|
|
1267
|
+
webhookUrl: string | null;
|
|
1268
|
+
/**
|
|
1269
|
+
* Current status of the batch execution.
|
|
1270
|
+
*/
|
|
1271
|
+
status: BatchExecutionStatus;
|
|
1272
|
+
/**
|
|
1273
|
+
* Unique identifier for this batch execution.
|
|
1274
|
+
*/
|
|
1275
|
+
id: string;
|
|
1276
|
+
/**
|
|
1277
|
+
* Vault URL of the output JSONL file, available when completed.
|
|
1278
|
+
*/
|
|
1279
|
+
outputFile: string | null;
|
|
1280
|
+
/**
|
|
1281
|
+
* Progress statistics, available when running or completed.
|
|
1282
|
+
*/
|
|
1283
|
+
state: {
|
|
1284
|
+
/**
|
|
1285
|
+
* Number of failed executions.
|
|
1286
|
+
*/
|
|
1287
|
+
failed: number;
|
|
1288
|
+
/**
|
|
1289
|
+
* Number of completed executions.
|
|
1290
|
+
*/
|
|
1291
|
+
completed: number;
|
|
1292
|
+
/**
|
|
1293
|
+
* Total number of executions in the batch.
|
|
1294
|
+
*/
|
|
1295
|
+
total: number;
|
|
1296
|
+
} | null;
|
|
1297
|
+
/**
|
|
1298
|
+
* ISO timestamp when the batch was created.
|
|
1299
|
+
*/
|
|
1300
|
+
createdAt: string;
|
|
1301
|
+
/**
|
|
1302
|
+
* ISO timestamp when the batch was last updated.
|
|
1303
|
+
*/
|
|
1304
|
+
updatedAt: string;
|
|
1305
|
+
/**
|
|
1306
|
+
* ISO timestamp when the batch completed, if applicable.
|
|
1307
|
+
*/
|
|
1308
|
+
completedAt: string | null;
|
|
1309
|
+
/**
|
|
1310
|
+
* ISO timestamp when the batch was canceled, if applicable.
|
|
1311
|
+
*/
|
|
1312
|
+
canceledAt: string | null;
|
|
1313
|
+
/**
|
|
1314
|
+
* ISO timestamp when the batch failed, if applicable.
|
|
1315
|
+
*/
|
|
1316
|
+
failedAt: string | null;
|
|
1317
|
+
};
|
|
1318
|
+
/**
|
|
1319
|
+
* Represents a single item to be executed in a batch.
|
|
1320
|
+
*
|
|
1321
|
+
* @template TInput - The input variables type for the canvas.
|
|
1322
|
+
*/
|
|
1323
|
+
interface BatchItem<TInput> {
|
|
1324
|
+
/**
|
|
1325
|
+
* Optional unique identifier for this execution.
|
|
1326
|
+
* If not provided, a random UUID will be generated automatically.
|
|
1327
|
+
* Used to retrieve individual results from the batch output.
|
|
1328
|
+
*/
|
|
1329
|
+
referenceId?: string;
|
|
1330
|
+
/**
|
|
1331
|
+
* Input variables for this execution, matching the canvas input schema.
|
|
1332
|
+
*/
|
|
1333
|
+
variables: TInput;
|
|
1334
|
+
}
|
|
1335
|
+
/**
|
|
1336
|
+
* Parameters excluded from batch execution (managed internally).
|
|
1337
|
+
*/
|
|
1338
|
+
type ExcludedParams = 'versionId' | 'canvasId' | 'applicationId' | 'async' | 'stream' | 'webhookUrl' | 'skipResultValidation';
|
|
1339
|
+
/**
|
|
1340
|
+
* Configuration options for batch execution.
|
|
1341
|
+
*
|
|
1342
|
+
* Batch executions are always asynchronous and return results via output file.
|
|
1343
|
+
* Unlike single executions, batches do not support streaming or synchronous modes.
|
|
1344
|
+
*
|
|
1345
|
+
* @category Canvas
|
|
1346
|
+
*/
|
|
1347
|
+
interface BatchParams extends Omit<BaseExecutionParams, ExcludedParams> {
|
|
1348
|
+
/**
|
|
1349
|
+
* Time (in milliseconds if number) between polling attempts (e.g. "1s", "1m", "1h", "1d").
|
|
1350
|
+
* Controls how frequently the SDK checks batch completion status.
|
|
1351
|
+
* @default "1s"
|
|
1352
|
+
*/
|
|
1353
|
+
pollingInterval?: string | number;
|
|
1354
|
+
/**
|
|
1355
|
+
* Maximum time (in milliseconds if number) to wait for completion before timing out (e.g. "1s", "1m", "1h", "1d").
|
|
1356
|
+
* After timeout, polling stops but the batch continues processing on the server.
|
|
1357
|
+
* @default "1m"
|
|
1358
|
+
*/
|
|
1359
|
+
pollingTimeout?: string | number;
|
|
1360
|
+
/**
|
|
1361
|
+
* Optional webhook URL to receive completion notifications.
|
|
1362
|
+
* The server will POST to this URL when the batch completes, fails, or is canceled.
|
|
1363
|
+
*/
|
|
1364
|
+
webhookUrl?: string;
|
|
1365
|
+
}
|
|
1366
|
+
/**
|
|
1367
|
+
* Promise-like wrapper for batch execution that provides direct result access.
|
|
1368
|
+
*
|
|
1369
|
+
* Enables flexible usage patterns:
|
|
1370
|
+
* - Await for execution object: `const exec = await batch.execute()`
|
|
1371
|
+
* - Direct result access: `const result = await batch.execute().result`
|
|
1372
|
+
*
|
|
1373
|
+
* @template TOutput - The output type for batch results.
|
|
1374
|
+
*
|
|
1375
|
+
* @category Canvas
|
|
1376
|
+
*/
|
|
1377
|
+
type BatchExecutionPromiseLike<TOutput> = PromiseLike<BatchExecution<TOutput>> & {
|
|
1378
|
+
/**
|
|
1379
|
+
* Direct access to the batch result, automatically starting polling.
|
|
1380
|
+
*/
|
|
1381
|
+
result: Promise<BatchExecutionResult<TOutput>>;
|
|
1382
|
+
};
|
|
1383
|
+
/**
|
|
1384
|
+
* Wraps the completed batch execution response with convenient result access methods.
|
|
1385
|
+
*
|
|
1386
|
+
* Provides multiple ways to access batch results:
|
|
1387
|
+
* - Download entire output file: `downloadOutputFile()`
|
|
1388
|
+
* - Stream results incrementally: `iterateResults()`
|
|
1389
|
+
* - Get all results as array: `getResults()`
|
|
1390
|
+
* - Fetch individual result by reference ID: `getResult(referenceId)`
|
|
1391
|
+
*
|
|
1392
|
+
* @category Canvas
|
|
1393
|
+
*
|
|
1394
|
+
* @template TOutput - The output type for individual results.
|
|
1395
|
+
*
|
|
1396
|
+
* @example
|
|
1397
|
+
* ```typescript
|
|
1398
|
+
* const execution = await batch.execute()
|
|
1399
|
+
* const result = await execution.result
|
|
1400
|
+
*
|
|
1401
|
+
* // Access batch metadata
|
|
1402
|
+
* console.log(`Status: ${result.status}`)
|
|
1403
|
+
* console.log(`Progress: ${result.state.completed}/${result.state.total}`)
|
|
1404
|
+
*
|
|
1405
|
+
* // Iterate through results
|
|
1406
|
+
* for await (const item of result.iterateResults()) {
|
|
1407
|
+
* console.log(item)
|
|
1408
|
+
* }
|
|
1409
|
+
* ```
|
|
1410
|
+
*/
|
|
1411
|
+
declare class BatchExecutionResult<TOutput> {
|
|
1412
|
+
private readonly _client;
|
|
1413
|
+
private readonly _response;
|
|
1414
|
+
/**
|
|
1415
|
+
* Creates a new batch execution result wrapper.
|
|
1416
|
+
*
|
|
1417
|
+
* @param client - HTTP client for making API requests.
|
|
1418
|
+
* @param response - Raw batch execution response from the server.
|
|
1419
|
+
* @internal
|
|
1420
|
+
*/
|
|
1421
|
+
constructor(client: BaseClient, response: WithRequestId<BatchResponse>);
|
|
1422
|
+
get requestId(): string | undefined;
|
|
1423
|
+
/**
|
|
1424
|
+
* Gets the unique identifier for this batch execution.
|
|
1425
|
+
*
|
|
1426
|
+
* @returns The batch execution ID.
|
|
1427
|
+
*/
|
|
1428
|
+
get id(): string;
|
|
1429
|
+
/**
|
|
1430
|
+
* Gets the current status of the batch execution.
|
|
1431
|
+
*
|
|
1432
|
+
* @returns The batch status.
|
|
1433
|
+
*/
|
|
1434
|
+
get status(): BatchExecutionStatus;
|
|
1435
|
+
/**
|
|
1436
|
+
* Gets the progress statistics for this batch.
|
|
1437
|
+
*
|
|
1438
|
+
* @returns Object containing completed, failed, and total execution counts, or null if not available.
|
|
1439
|
+
*/
|
|
1440
|
+
get state(): {
|
|
1441
|
+
/**
|
|
1442
|
+
* Number of failed executions.
|
|
1443
|
+
*/
|
|
1444
|
+
failed: number;
|
|
1445
|
+
/**
|
|
1446
|
+
* Number of completed executions.
|
|
1447
|
+
*/
|
|
1448
|
+
completed: number;
|
|
1449
|
+
/**
|
|
1450
|
+
* Total number of executions in the batch.
|
|
1451
|
+
*/
|
|
1452
|
+
total: number;
|
|
1453
|
+
} | null;
|
|
1454
|
+
/**
|
|
1455
|
+
* Gets the vault URL of the output JSONL file containing all results.
|
|
1456
|
+
*
|
|
1457
|
+
* @returns The output file URL, or null if batch is not completed.
|
|
1458
|
+
*/
|
|
1459
|
+
get outputFile(): string | null;
|
|
1460
|
+
/**
|
|
1461
|
+
* Gets the raw API response without any processing.
|
|
1462
|
+
*
|
|
1463
|
+
* @returns The complete batch response object.
|
|
1464
|
+
*/
|
|
1465
|
+
get rawResponse(): WithRequestId<BatchResponse>;
|
|
1466
|
+
/**
|
|
1467
|
+
* Gets the timestamp when this batch was created.
|
|
1468
|
+
*
|
|
1469
|
+
* @returns Creation date.
|
|
1470
|
+
*/
|
|
1471
|
+
get createdAt(): Date;
|
|
1472
|
+
/**
|
|
1473
|
+
* Gets the timestamp when this batch was last updated.
|
|
1474
|
+
*
|
|
1475
|
+
* @returns Last update date.
|
|
1476
|
+
*/
|
|
1477
|
+
get updatedAt(): Date;
|
|
1478
|
+
/**
|
|
1479
|
+
* Gets the timestamp when this batch completed successfully.
|
|
1480
|
+
*
|
|
1481
|
+
* @returns Completion date, or null if not completed.
|
|
1482
|
+
*/
|
|
1483
|
+
get completedAt(): Date | null;
|
|
1484
|
+
/**
|
|
1485
|
+
* Gets the timestamp when this batch was canceled.
|
|
1486
|
+
*
|
|
1487
|
+
* @returns Cancellation date, or null if not canceled.
|
|
1488
|
+
*/
|
|
1489
|
+
get canceledAt(): Date | null;
|
|
1490
|
+
/**
|
|
1491
|
+
* Gets the timestamp when this batch failed.
|
|
1492
|
+
*
|
|
1493
|
+
* @returns Failure date, or null if not failed.
|
|
1494
|
+
*/
|
|
1495
|
+
get failedAt(): Date | null;
|
|
1496
|
+
/**
|
|
1497
|
+
* Downloads the complete output file as a Blob.
|
|
1498
|
+
*
|
|
1499
|
+
* The output file is a JSONL (JSON Lines) file where each line contains
|
|
1500
|
+
* one execution result with its reference ID, status, and output.
|
|
1501
|
+
*
|
|
1502
|
+
* @throws {Error} If batch is not completed or output file is unavailable.
|
|
1503
|
+
* @returns A promise resolving to the output file as a Blob.
|
|
1504
|
+
*
|
|
1505
|
+
* @example
|
|
1506
|
+
* ```typescript
|
|
1507
|
+
* const file = await result.downloadOutputFile()
|
|
1508
|
+
* const text = await file.text()
|
|
1509
|
+
* console.log(text) // JSONL content
|
|
1510
|
+
* ```
|
|
1511
|
+
*/
|
|
1512
|
+
downloadOutputFile(): Promise<Blob>;
|
|
1513
|
+
/**
|
|
1514
|
+
* Streams the output file as a ReadableStream for memory-efficient processing.
|
|
1515
|
+
*
|
|
1516
|
+
* Useful for large batches where loading the entire file into memory is not practical.
|
|
1517
|
+
*
|
|
1518
|
+
* @throws {Error} If batch is not completed or output file is unavailable.
|
|
1519
|
+
* @returns A promise resolving to a ReadableStream of the output file.
|
|
1520
|
+
*
|
|
1521
|
+
* @example
|
|
1522
|
+
* ```typescript
|
|
1523
|
+
* const stream = await result.streamOutputFile()
|
|
1524
|
+
* // Process stream with custom logic
|
|
1525
|
+
* ```
|
|
1526
|
+
*/
|
|
1527
|
+
streamOutputFile(): Promise<ReadableStream>;
|
|
1528
|
+
/**
|
|
1529
|
+
* Downloads and parses all results into an array.
|
|
1530
|
+
*
|
|
1531
|
+
* Loads the entire output file into memory, parses each line, and extracts
|
|
1532
|
+
* the output content. For large batches, consider using `iterateResults()` instead.
|
|
1533
|
+
*
|
|
1534
|
+
* @throws {Error} If batch is not completed, output file is unavailable, or parsing fails.
|
|
1535
|
+
* @returns A promise resolving to an array of all execution outputs.
|
|
1536
|
+
*
|
|
1537
|
+
* @example
|
|
1538
|
+
* ```typescript
|
|
1539
|
+
* const results = await result.getResults()
|
|
1540
|
+
* console.log(`Got ${results.length} results`)
|
|
1541
|
+
* results.forEach((output, i) => console.log(`Result ${i}:`, output))
|
|
1542
|
+
* ```
|
|
1543
|
+
*/
|
|
1544
|
+
getResults(): Promise<TOutput[]>;
|
|
1545
|
+
/**
|
|
1546
|
+
* Asynchronously iterates over raw result items from the output file.
|
|
1547
|
+
*
|
|
1548
|
+
* Streams and parses the output file line-by-line, yielding raw JSON objects.
|
|
1549
|
+
* Each yielded object contains the full result structure including metadata.
|
|
1550
|
+
*
|
|
1551
|
+
* @param params - Iteration options.
|
|
1552
|
+
* @param params.abortController - Optional AbortController to cancel iteration.
|
|
1553
|
+
* @throws {Error} If batch is not completed or output file is unavailable.
|
|
1554
|
+
* @yields Raw result objects from the JSONL file.
|
|
1555
|
+
*
|
|
1556
|
+
* @example
|
|
1557
|
+
* ```typescript
|
|
1558
|
+
* for await (const rawResult of result.iterateRawResults()) {
|
|
1559
|
+
* console.log('Reference ID:', rawResult.reference_id)
|
|
1560
|
+
* console.log('Status:', rawResult.status)
|
|
1561
|
+
* console.log('Output:', rawResult.result.outputContent.content)
|
|
1562
|
+
* }
|
|
1563
|
+
* ```
|
|
1564
|
+
*/
|
|
1565
|
+
iterateRawResults(params?: {
|
|
1566
|
+
abortController?: AbortController;
|
|
1567
|
+
}): AsyncGenerator<unknown, void, unknown>;
|
|
1568
|
+
/**
|
|
1569
|
+
* Asynchronously iterates over parsed output content from the batch results.
|
|
1570
|
+
*
|
|
1571
|
+
* Streams and parses the output file line-by-line, yielding only the output content
|
|
1572
|
+
* (not the full result metadata). Memory-efficient for large batches.
|
|
1573
|
+
*
|
|
1574
|
+
* @param params - Iteration options.
|
|
1575
|
+
* @param params.abortController - Optional AbortController to cancel iteration.
|
|
1576
|
+
* @throws {Error} If batch is not completed, output file is unavailable, or parsing fails.
|
|
1577
|
+
* @yields Parsed output content from each execution.
|
|
1578
|
+
*
|
|
1579
|
+
* @example
|
|
1580
|
+
* ```typescript
|
|
1581
|
+
* const controller = new AbortController()
|
|
1582
|
+
*
|
|
1583
|
+
* for await (const output of result.iterateResults({ abortController: controller })) {
|
|
1584
|
+
* console.log(output)
|
|
1585
|
+
* if (someCondition) {
|
|
1586
|
+
* controller.abort() // Stop iteration early
|
|
1587
|
+
* }
|
|
1588
|
+
* }
|
|
1589
|
+
* ```
|
|
1590
|
+
*/
|
|
1591
|
+
iterateResults(params?: {
|
|
1592
|
+
abortController?: AbortController;
|
|
1593
|
+
}): AsyncGenerator<Awaited<TOutput>, void, unknown>;
|
|
1594
|
+
/**
|
|
1595
|
+
* Fetches the raw result metadata for a specific execution by its reference ID.
|
|
1596
|
+
*
|
|
1597
|
+
* Queries the API for the execution result using the reference ID tag.
|
|
1598
|
+
* Returns the complete execution metadata including input, output, and usage statistics.
|
|
1599
|
+
*
|
|
1600
|
+
* @param referenceId - The reference ID of the execution to retrieve.
|
|
1601
|
+
* @throws {Error} If no result found with the given reference ID.
|
|
1602
|
+
* @returns A promise resolving to the raw execution result object.
|
|
1603
|
+
*
|
|
1604
|
+
* @example
|
|
1605
|
+
* ```typescript
|
|
1606
|
+
* const rawResult = await result.getRawResult('my-ref-id')
|
|
1607
|
+
* console.log('Credits used:', rawResult.creditsUsed)
|
|
1608
|
+
* console.log('Execution status:', rawResult.status)
|
|
1609
|
+
* ```
|
|
1610
|
+
*/
|
|
1611
|
+
getRawResult(referenceId: string): Promise<CompletionRunResult<TOutput>>;
|
|
1612
|
+
/**
|
|
1613
|
+
* Fetches the output content for a specific execution by its reference ID.
|
|
1614
|
+
*
|
|
1615
|
+
* Convenience method that retrieves the raw result and extracts just the output content.
|
|
1616
|
+
*
|
|
1617
|
+
* @param referenceId - The reference ID of the execution to retrieve.
|
|
1618
|
+
* @throws {Error} If no result found with the given reference ID.
|
|
1619
|
+
* @returns A promise resolving to the execution output content.
|
|
1620
|
+
*
|
|
1621
|
+
* @example
|
|
1622
|
+
* ```typescript
|
|
1623
|
+
* const output = await result.getResult('my-ref-id')
|
|
1624
|
+
* console.log('Output:', output)
|
|
1625
|
+
* ```
|
|
1626
|
+
*/
|
|
1627
|
+
getResult(referenceId: string): Promise<TOutput>;
|
|
1628
|
+
/**
|
|
1629
|
+
* Validates that the output file is available for access.
|
|
1630
|
+
*
|
|
1631
|
+
* @throws {Error} If batch is not completed or output file is missing.
|
|
1632
|
+
* @private
|
|
1633
|
+
*/
|
|
1634
|
+
private validateOutputFile;
|
|
1635
|
+
}
|
|
1636
|
+
/**
|
|
1637
|
+
* Event types emitted by BatchExecution during its lifecycle.
|
|
1638
|
+
*
|
|
1639
|
+
* @template TOutput - The output type.
|
|
1640
|
+
*
|
|
1641
|
+
* @property poll - Emitted during polling with current status and progress. Includes `requestId` from the polling request.
|
|
1642
|
+
* @property success - Emitted when batch completes successfully with the result object. Includes `requestId` from the final request.
|
|
1643
|
+
* @property error - Emitted when batch fails with the error object.
|
|
1644
|
+
* @property statusChange - Emitted when batch status transitions to a new state, includes new status and response.
|
|
1645
|
+
*
|
|
1646
|
+
* @category Canvas
|
|
1647
|
+
*/
|
|
1648
|
+
type BatchExecutionEvents<TOutput> = {
|
|
1649
|
+
poll: WithRequestId<BatchResponse>;
|
|
1650
|
+
success: BatchExecutionResult<TOutput>;
|
|
1651
|
+
error: BatchExecutionFailedError;
|
|
1652
|
+
statusChange: [BatchExecutionStatus, WithRequestId<BatchResponse>];
|
|
1653
|
+
};
|
|
1654
|
+
/**
|
|
1655
|
+
* Manages the execution lifecycle of a batch operation.
|
|
1656
|
+
*
|
|
1657
|
+
* Handles polling for batch completion, progress tracking, and result retrieval.
|
|
1658
|
+
* Provides an event-driven API for monitoring batch progress in real-time.
|
|
1659
|
+
*
|
|
1660
|
+
* ## Status Tracking
|
|
1661
|
+
*
|
|
1662
|
+
* The batch status can be accessed via the `status` property and tracks the lifecycle:
|
|
1663
|
+
*
|
|
1664
|
+
* - **Batch executions**: `created` → `validating` → `running` → `completed` or `failed`
|
|
1665
|
+
* - **Can be canceled**: At any time before completion using `cancel()`
|
|
1666
|
+
*
|
|
1667
|
+
* Status is set to `failed` when:
|
|
1668
|
+
* - Input file validation fails
|
|
1669
|
+
* - Batch processing encounters an error
|
|
1670
|
+
* - Server reports failure status
|
|
1671
|
+
*
|
|
1672
|
+
* Status is set to `completed` when:
|
|
1673
|
+
* - All executions in the batch finish processing
|
|
1674
|
+
* - Output file is generated and available
|
|
1675
|
+
*
|
|
1676
|
+
* ## Event System
|
|
1677
|
+
*
|
|
1678
|
+
* Events are emitted during polling to track progress:
|
|
1679
|
+
* - `statusChange` - Status transitions (created → validating → running → completed)
|
|
1680
|
+
* - `poll` - Each polling attempt with current progress
|
|
1681
|
+
* - `success` - Completion with the BatchExecutionResult
|
|
1682
|
+
* - `error` - Failure notification
|
|
1683
|
+
*
|
|
1684
|
+
* **Important:** Events are only emitted while polling is active. You must either call `poll()` or
|
|
1685
|
+
* await `execution.result` to start polling.
|
|
1686
|
+
*
|
|
1687
|
+
* @category Canvas
|
|
1688
|
+
*
|
|
1689
|
+
* @typeParam TOutput - The output result type for individual executions
|
|
1690
|
+
*
|
|
1691
|
+
* @fires poll - Emitted during polling with current status and progress. Includes `requestId` from the polling request.
|
|
1692
|
+
* @fires success - Emitted when batch completes successfully with the result object. Includes `requestId` from the final request.
|
|
1693
|
+
* @fires error - Emitted when batch fails (only if error listeners are registered, otherwise throws)
|
|
1694
|
+
* @fires statusChange - Emitted when batch status transitions to a new state
|
|
1695
|
+
*
|
|
1696
|
+
* @example
|
|
1697
|
+
* ```typescript
|
|
1698
|
+
* const execution = await batch.execute()
|
|
1699
|
+
*
|
|
1700
|
+
* // Track progress with events
|
|
1701
|
+
* execution.on('statusChange', ([status, response]) => {
|
|
1702
|
+
* console.log(`Status: ${status}`)
|
|
1703
|
+
* if (response.state) {
|
|
1704
|
+
* console.log(`Progress: ${response.state.completed}/${response.state.total}`)
|
|
1705
|
+
* }
|
|
1706
|
+
* })
|
|
1707
|
+
*
|
|
1708
|
+
* execution.on('success', (result) => {
|
|
1709
|
+
* console.log('Batch completed!')
|
|
1710
|
+
* console.log('Request ID:', result.requestId)
|
|
1711
|
+
* })
|
|
1712
|
+
*
|
|
1713
|
+
* // Start polling without waiting
|
|
1714
|
+
* execution.poll()
|
|
1715
|
+
* ```
|
|
1716
|
+
*/
|
|
1717
|
+
declare class BatchExecution<TOutput> extends Emittery<BatchExecutionEvents<TOutput>> {
|
|
1718
|
+
private readonly _client;
|
|
1719
|
+
private readonly _id;
|
|
1720
|
+
private readonly _params;
|
|
1721
|
+
private readonly _abortController;
|
|
1722
|
+
private readonly _creationResponse;
|
|
1723
|
+
private _status;
|
|
1724
|
+
private _resultPromise;
|
|
1725
|
+
/**
|
|
1726
|
+
* Creates a new batch execution instance.
|
|
1727
|
+
*
|
|
1728
|
+
* @param id - Unique identifier for this batch execution.
|
|
1729
|
+
* @param client - HTTP client for making API requests.
|
|
1730
|
+
* @param params - Batch execution parameters.
|
|
1731
|
+
* @param creationResponse - Initial response from batch creation.
|
|
1732
|
+
* @internal
|
|
1733
|
+
*/
|
|
1734
|
+
constructor(id: string, client: BaseClient, params: BatchParams | undefined, creationResponse: WithRequestId<BatchResponse>);
|
|
1735
|
+
/**
|
|
1736
|
+
* Gets the latest known status of the batch execution.
|
|
1737
|
+
*
|
|
1738
|
+
* Status values and transitions:
|
|
1739
|
+
* - `created` → `validating` → `running` → `completed` or `failed`
|
|
1740
|
+
* - Can transition to `canceled` from any non-terminal state
|
|
1741
|
+
*
|
|
1742
|
+
* Use the `statusChange` event to track status transitions in real-time.
|
|
1743
|
+
*
|
|
1744
|
+
* @returns The current status of the batch execution.
|
|
1745
|
+
*
|
|
1746
|
+
* @example
|
|
1747
|
+
* ```typescript
|
|
1748
|
+
* const execution = await batch.execute()
|
|
1749
|
+
* console.log(execution.status) // 'created'
|
|
1750
|
+
*
|
|
1751
|
+
* execution.on('statusChange', ([status]) => {
|
|
1752
|
+
* console.log('New status:', status)
|
|
1753
|
+
* })
|
|
1754
|
+
*
|
|
1755
|
+
* await execution.result
|
|
1756
|
+
* console.log(execution.status) // 'completed' or 'failed'
|
|
1757
|
+
* ```
|
|
1758
|
+
*/
|
|
1759
|
+
get status(): BatchExecutionStatus;
|
|
1760
|
+
/**
|
|
1761
|
+
* Gets the unique identifier for this batch execution.
|
|
1762
|
+
*
|
|
1763
|
+
* @returns The batch execution ID.
|
|
1764
|
+
*/
|
|
1765
|
+
get id(): string;
|
|
1766
|
+
/**
|
|
1767
|
+
* Gets the batch execution parameters.
|
|
1768
|
+
*
|
|
1769
|
+
* @returns The batch parameters.
|
|
1770
|
+
*/
|
|
1771
|
+
get params(): BatchParams;
|
|
1772
|
+
/**
|
|
1773
|
+
* Cancels the batch execution.
|
|
1774
|
+
*
|
|
1775
|
+
* Sends a cancellation request to the server and aborts any ongoing polling.
|
|
1776
|
+
* The batch will stop processing, but already-completed executions remain available.
|
|
1777
|
+
*
|
|
1778
|
+
* @returns A promise that resolves when the cancellation request completes.
|
|
1779
|
+
*
|
|
1780
|
+
* @example
|
|
1781
|
+
* ```typescript
|
|
1782
|
+
* const execution = await batch.execute()
|
|
1783
|
+
* execution.poll()
|
|
1784
|
+
*
|
|
1785
|
+
* // Cancel after some condition
|
|
1786
|
+
* if (shouldCancel) {
|
|
1787
|
+
* await execution.cancel()
|
|
1788
|
+
* console.log(execution.status) // 'canceled'
|
|
1789
|
+
* }
|
|
1790
|
+
* ```
|
|
1791
|
+
*/
|
|
1792
|
+
cancel(): Promise<void>;
|
|
1793
|
+
/**
|
|
1794
|
+
* Starts polling for the batch result without waiting for the promise to resolve.
|
|
1795
|
+
* This allows users to track batch progress via events rather than awaiting a promise.
|
|
1796
|
+
*
|
|
1797
|
+
* The following events will be emitted during polling:
|
|
1798
|
+
* - `statusChange`: Emitted when the batch status changes (e.g., 'created' → 'running' → 'completed')
|
|
1799
|
+
* - `poll`: Emitted on each polling attempt with the server response
|
|
1800
|
+
* - `success`: Emitted when the batch completes successfully with the final result
|
|
1801
|
+
* - `error`: Emitted if the batch fails
|
|
1802
|
+
*
|
|
1803
|
+
* **Important:** Events are only emitted while polling is active. You must call `poll()` or
|
|
1804
|
+
* await `execution.result` to start polling. Simply setting up event listeners without starting
|
|
1805
|
+
* polling will not trigger any events.
|
|
1806
|
+
*
|
|
1807
|
+
* @example
|
|
1808
|
+
* ```typescript
|
|
1809
|
+
* const execution = await batch.execute()
|
|
1810
|
+
*
|
|
1811
|
+
* // Set up event listeners
|
|
1812
|
+
* execution.on('statusChange', ([status, response]) => {
|
|
1813
|
+
* console.log(`Status: ${status}`)
|
|
1814
|
+
* if (response.state) {
|
|
1815
|
+
* const { completed, total } = response.state
|
|
1816
|
+
* console.log(`Progress: ${completed}/${total}`)
|
|
1817
|
+
* }
|
|
1818
|
+
* })
|
|
1819
|
+
*
|
|
1820
|
+
* execution.on('success', (result) => {
|
|
1821
|
+
* console.log('Batch completed!')
|
|
1822
|
+
* console.log('Request ID:', result.requestId)
|
|
1823
|
+
* })
|
|
1824
|
+
*
|
|
1825
|
+
* execution.on('error', (error) => {
|
|
1826
|
+
* console.error('Batch failed:', error)
|
|
1827
|
+
* })
|
|
1828
|
+
*
|
|
1829
|
+
* // Start polling without waiting
|
|
1830
|
+
* execution.poll()
|
|
1831
|
+
* ```
|
|
1832
|
+
*/
|
|
1833
|
+
poll(): void;
|
|
1834
|
+
/**
|
|
1835
|
+
* Sets the batch status and emits statusChange event if changed.
|
|
1836
|
+
*
|
|
1837
|
+
* @param status - The new status.
|
|
1838
|
+
* @param response - The response containing the status.
|
|
1839
|
+
* @private
|
|
1840
|
+
*/
|
|
1841
|
+
private setStatus;
|
|
1842
|
+
/**
|
|
1843
|
+
* Starts polling the server for batch completion.
|
|
1844
|
+
* Continues polling until the batch completes, fails, or times out.
|
|
1845
|
+
*
|
|
1846
|
+
* @throws {BatchExecutionFailedError} If the batch fails on the server.
|
|
1847
|
+
* @throws {Error} If the polling operation times out.
|
|
1848
|
+
* @returns A promise resolving to the final batch result.
|
|
1849
|
+
* @private
|
|
1850
|
+
*/
|
|
1851
|
+
private startPolling;
|
|
1852
|
+
/**
|
|
1853
|
+
* Gets the batch execution result. Automatically starts polling if not already started.
|
|
1854
|
+
*
|
|
1855
|
+
* @returns A promise resolving to the batch execution result.
|
|
1856
|
+
*
|
|
1857
|
+
* @example
|
|
1858
|
+
* ```typescript
|
|
1859
|
+
* const execution = await batch.execute()
|
|
1860
|
+
* const result = await execution.result
|
|
1861
|
+
*
|
|
1862
|
+
* // Access results
|
|
1863
|
+
* const outputs = await result.getResults()
|
|
1864
|
+
* console.log(`Got ${outputs.length} results`)
|
|
1865
|
+
* ```
|
|
1866
|
+
*/
|
|
1867
|
+
get result(): Promise<BatchExecutionResult<TOutput>>;
|
|
1868
|
+
}
|
|
1869
|
+
/**
|
|
1870
|
+
* Builder class for creating and executing batch operations on a canvas.
|
|
1871
|
+
*
|
|
1872
|
+
* The Batch class provides a fluent API for building up a collection of executions
|
|
1873
|
+
* to be processed in parallel. Items can be added incrementally, and the batch is
|
|
1874
|
+
* executed only when `execute()` is called.
|
|
1875
|
+
*
|
|
1876
|
+
* ## Usage Pattern
|
|
1877
|
+
*
|
|
1878
|
+
* 1. Create batch via `canvas.createBatch()`
|
|
1879
|
+
* 2. Add items via `add()` method (can be called multiple times)
|
|
1880
|
+
* 3. Execute batch via `execute()` method
|
|
1881
|
+
* 4. Monitor progress via events or await result
|
|
1882
|
+
*
|
|
1883
|
+
* ## Reference IDs
|
|
1884
|
+
*
|
|
1885
|
+
* Each batch item can have an optional reference ID for later retrieval.
|
|
1886
|
+
* If not provided, UUIDs are generated automatically. Reference IDs are useful
|
|
1887
|
+
* for correlating results with input data.
|
|
1888
|
+
*
|
|
1889
|
+
* @category Canvas
|
|
1890
|
+
*
|
|
1891
|
+
* @typeParam TInput - The input variables type for the canvas
|
|
1892
|
+
* @typeParam TOutput - The output result type for individual executions
|
|
1893
|
+
*
|
|
1894
|
+
* @example
|
|
1895
|
+
* ```typescript
|
|
1896
|
+
* const batch = canvas.createBatch({
|
|
1897
|
+
* pollingInterval: '1s',
|
|
1898
|
+
* pollingTimeout: '5m',
|
|
1899
|
+
* })
|
|
1900
|
+
*
|
|
1901
|
+
* // Add items individually
|
|
1902
|
+
* batch.add({
|
|
1903
|
+
* referenceId: 'item-1',
|
|
1904
|
+
* variables: { query: 'First query' }
|
|
1905
|
+
* })
|
|
1906
|
+
*
|
|
1907
|
+
* // Or add multiple items at once
|
|
1908
|
+
* batch.add([
|
|
1909
|
+
* { variables: { query: 'Second query' } },
|
|
1910
|
+
* { variables: { query: 'Third query' } }
|
|
1911
|
+
* ])
|
|
1912
|
+
*
|
|
1913
|
+
* // Execute and track progress
|
|
1914
|
+
* const execution = await batch.execute()
|
|
1915
|
+
* execution.on('statusChange', ([status, response]) => {
|
|
1916
|
+
* if (response.state) {
|
|
1917
|
+
* console.log(`Progress: ${response.state.completed}/${response.state.total}`)
|
|
1918
|
+
* }
|
|
1919
|
+
* })
|
|
1920
|
+
*
|
|
1921
|
+
* const result = await execution.result
|
|
1922
|
+
* const outputs = await result.getResults()
|
|
1923
|
+
* ```
|
|
1924
|
+
*/
|
|
1925
|
+
declare class Batch<TInput, TOutput> {
|
|
1926
|
+
private readonly _client;
|
|
1927
|
+
private readonly _canvasIdentifier;
|
|
1928
|
+
private readonly _items;
|
|
1929
|
+
private readonly _params;
|
|
1930
|
+
/**
|
|
1931
|
+
* Creates a new batch builder.
|
|
1932
|
+
*
|
|
1933
|
+
* @param client - HTTP client for making API requests.
|
|
1934
|
+
* @param canvasIdentifier - Canvas identification (ID + version or application ID).
|
|
1935
|
+
* @param params - Optional batch execution parameters.
|
|
1936
|
+
* @internal
|
|
1937
|
+
*/
|
|
1938
|
+
constructor(client: BaseClient, canvasIdentifier: CanvasIdentifier, params?: BatchParams);
|
|
1939
|
+
/**
|
|
1940
|
+
* Gets the current list of items in this batch.
|
|
1941
|
+
*
|
|
1942
|
+
* @returns Array of batch items.
|
|
1943
|
+
*/
|
|
1944
|
+
get items(): BatchItem<TInput>[];
|
|
1945
|
+
/**
|
|
1946
|
+
* Gets the batch execution parameters.
|
|
1947
|
+
*
|
|
1948
|
+
* @returns The batch parameters.
|
|
1949
|
+
*/
|
|
1950
|
+
get params(): BatchParams;
|
|
1951
|
+
/**
|
|
1952
|
+
* Gets the canvas identifier in the format expected by the API.
|
|
1953
|
+
*
|
|
1954
|
+
* @returns Canvas identifier object.
|
|
1955
|
+
* @private
|
|
1956
|
+
*/
|
|
1957
|
+
private get canvasIdentifier();
|
|
1958
|
+
/**
|
|
1959
|
+
* Adds one or more items to the batch.
|
|
1960
|
+
*
|
|
1961
|
+
* Items without a reference ID will have UUIDs generated automatically.
|
|
1962
|
+
* This method can be called multiple times to build up the batch incrementally.
|
|
1963
|
+
*
|
|
1964
|
+
* @param item - Single item or array of items to add to the batch.
|
|
1965
|
+
*
|
|
1966
|
+
* @example
|
|
1967
|
+
* ```typescript
|
|
1968
|
+
* // Add single item
|
|
1969
|
+
* batch.add({
|
|
1970
|
+
* referenceId: 'my-custom-id',
|
|
1971
|
+
* variables: { query: 'Hello' }
|
|
1972
|
+
* })
|
|
1973
|
+
*
|
|
1974
|
+
* // Add multiple items
|
|
1975
|
+
* batch.add([
|
|
1976
|
+
* { variables: { query: 'First' } },
|
|
1977
|
+
* { variables: { query: 'Second' } },
|
|
1978
|
+
* { variables: { query: 'Third' } }
|
|
1979
|
+
* ])
|
|
1980
|
+
*
|
|
1981
|
+
* console.log(`Batch has ${batch.items.length} items`)
|
|
1982
|
+
* ```
|
|
1983
|
+
*/
|
|
1984
|
+
add(item: MaybeArray<BatchItem<TInput>>): void;
|
|
1985
|
+
/**
|
|
1986
|
+
* Executes the batch by uploading the input file and creating a batch execution on the server.
|
|
1987
|
+
*
|
|
1988
|
+
* Returns a promise-like object that allows flexible usage patterns:
|
|
1989
|
+
* - Await for execution object: `const exec = await batch.execute()`
|
|
1990
|
+
* - Direct result access: `const result = await batch.execute().result`
|
|
1991
|
+
*
|
|
1992
|
+
* The batch items are serialized to JSONL format, uploaded to vault storage,
|
|
1993
|
+
* and submitted to the batch API for processing.
|
|
1994
|
+
*
|
|
1995
|
+
* @returns A promise-like object with a `result` property for direct result access.
|
|
1996
|
+
*
|
|
1997
|
+
* @example
|
|
1998
|
+
* ```typescript
|
|
1999
|
+
* // Direct result access (recommended for simple cases)
|
|
2000
|
+
* const result = await batch.execute().result
|
|
2001
|
+
* const outputs = await result.getResults()
|
|
2002
|
+
*
|
|
2003
|
+
* // Get execution object for event monitoring
|
|
2004
|
+
* const execution = await batch.execute()
|
|
2005
|
+
*
|
|
2006
|
+
* execution.on('statusChange', ([status, response]) => {
|
|
2007
|
+
* console.log(`Status: ${status}`)
|
|
2008
|
+
* if (response.state) {
|
|
2009
|
+
* console.log(`Progress: ${response.state.completed}/${response.state.total}`)
|
|
2010
|
+
* }
|
|
2011
|
+
* })
|
|
2012
|
+
*
|
|
2013
|
+
* execution.on('success', (result) => {
|
|
2014
|
+
* console.log('Batch completed!', result.requestId)
|
|
2015
|
+
* })
|
|
2016
|
+
*
|
|
2017
|
+
* const result = await execution.result
|
|
2018
|
+
*
|
|
2019
|
+
* // Iterate through results
|
|
2020
|
+
* for await (const output of result.iterateResults()) {
|
|
2021
|
+
* console.log(output)
|
|
2022
|
+
* }
|
|
2023
|
+
* ```
|
|
2024
|
+
*/
|
|
2025
|
+
execute(): BatchExecutionPromiseLike<TOutput>;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
1127
2028
|
/**
|
|
1128
2029
|
* Canvas resource for managing prompt templates and their execution.
|
|
1129
2030
|
*
|
|
@@ -1466,16 +2367,12 @@ declare const zod: {
|
|
|
1466
2367
|
safeParseAsync: <T extends _zod.core.$ZodType>(schema: T, value: unknown, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => Promise<_zod.ZodSafeParseResult<_zod.core.output<T>>>;
|
|
1467
2368
|
encode: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.output<T>, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => _zod.core.input<T>;
|
|
1468
2369
|
decode: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.input<T>, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => _zod.core.output<T>;
|
|
1469
|
-
encodeAsync: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.output<T>, _ctx
|
|
1470
|
-
* Unique identifier for this prompt version.
|
|
1471
|
-
*/: _zod.core.ParseContext<_zod.core.$ZodIssue>) => Promise<_zod.core.input<T>>;
|
|
2370
|
+
encodeAsync: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.output<T>, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => Promise<_zod.core.input<T>>;
|
|
1472
2371
|
decodeAsync: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.input<T>, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => Promise<_zod.core.output<T>>;
|
|
1473
2372
|
safeEncode: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.output<T>, _ctx? /**
|
|
1474
|
-
*
|
|
2373
|
+
* The ID of the parent prompt.
|
|
1475
2374
|
*/: _zod.core.ParseContext<_zod.core.$ZodIssue>) => _zod.ZodSafeParseResult<_zod.core.input<T>>;
|
|
1476
|
-
safeDecode: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.input<T>, _ctx
|
|
1477
|
-
* Configuration settings for this prompt version.
|
|
1478
|
-
*/: _zod.core.ParseContext<_zod.core.$ZodIssue>) => _zod.ZodSafeParseResult<_zod.core.output<T>>;
|
|
2375
|
+
safeDecode: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.input<T>, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => _zod.ZodSafeParseResult<_zod.core.output<T>>;
|
|
1479
2376
|
safeEncodeAsync: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.output<T>, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => Promise<_zod.ZodSafeParseResult<_zod.core.input<T>>>;
|
|
1480
2377
|
safeDecodeAsync: <T extends _zod.core.$ZodType>(schema: T, value: _zod.core.input<T>, _ctx?: _zod.core.ParseContext<_zod.core.$ZodIssue>) => Promise<_zod.ZodSafeParseResult<_zod.core.output<T>>>;
|
|
1481
2378
|
setErrorMap(map: _zod.core.$ZodErrorMap): void;
|
|
@@ -1668,9 +2565,38 @@ declare class Canvas<TInput extends ZodTypeOrRecord, TOutput extends ZodTypeOrRe
|
|
|
1668
2565
|
* ```
|
|
1669
2566
|
*/
|
|
1670
2567
|
getExecution(id: string, options?: {
|
|
1671
|
-
pollingInterval?: number;
|
|
1672
|
-
pollingTimeout?: number;
|
|
2568
|
+
pollingInterval?: string | number;
|
|
2569
|
+
pollingTimeout?: string | number;
|
|
1673
2570
|
}): Promise<CanvasExecution<AsyncExecutionParams, unknown, Output<TOutput>>>;
|
|
2571
|
+
/**
|
|
2572
|
+
* Prepares to execute this canvas in batch.
|
|
2573
|
+
*
|
|
2574
|
+
* @param params - The parameters for the batch.
|
|
2575
|
+
* @param params.pollingInterval - The interval between polling attempts.
|
|
2576
|
+
* @param params.pollingTimeout - The timeout for the batch.
|
|
2577
|
+
* @param params.webhookUrl - The webhook URL for the batch.
|
|
2578
|
+
*
|
|
2579
|
+
* @example
|
|
2580
|
+
* ```typescript
|
|
2581
|
+
* const batch = canvas.createBatch({
|
|
2582
|
+
* pollingInterval: '1s',
|
|
2583
|
+
* pollingTimeout: '1m',
|
|
2584
|
+
* webhookUrl: 'https://example.com/webhook',
|
|
2585
|
+
* })
|
|
2586
|
+
*
|
|
2587
|
+
* batch.add({
|
|
2588
|
+
* referenceId: crypto.randomUUID(), // Optional
|
|
2589
|
+
* variables: { query: 'Hello' },
|
|
2590
|
+
* })
|
|
2591
|
+
*
|
|
2592
|
+
* const execution = await batch.execute()
|
|
2593
|
+
* const result = await execution.result
|
|
2594
|
+
* const resultFile = await execution.downloadOutputFile()
|
|
2595
|
+
* ```
|
|
2596
|
+
*
|
|
2597
|
+
* @returns The batch instance that can be used to manage the batch.
|
|
2598
|
+
*/
|
|
2599
|
+
createBatch(params?: BatchParams): Batch<Output<TInput>, Output<TOutput>>;
|
|
1674
2600
|
}
|
|
1675
2601
|
|
|
1676
2602
|
/**
|
|
@@ -1816,4 +2742,4 @@ declare class TelaSDK extends BaseClient {
|
|
|
1816
2742
|
*/
|
|
1817
2743
|
declare function createTelaClient(opts: TelaSDKOptions): TelaSDK;
|
|
1818
2744
|
|
|
1819
|
-
export { APIError, AuthenticationError, AuthorizationError, BadRequestError, BaseClient, type BaseClientOptions, type BaseTelaFileOptions, ConflictApiKeyAndJWTError, ConflictError, ConnectionError, ConnectionTimeout, EmptyFileError, ExecutionFailedError, ExecutionNotStartedError, FileUploadError, type HTTPMethods, InternalServerError, InvalidExecutionModeError, InvalidFileURL, MissingApiKeyOrJWTError, NotFoundError, RateLimitError, type RequestOptions, type SchemaBuilder, TelaError, TelaFile, type TelaFileInput, type TelaFileOptions, type TelaFileOptionsWithMimeType, TelaFileSchema, TelaSDK, type TelaSDKOptions, UnprocessableEntityError, UserAbortError, createTelaClient, toError };
|
|
2745
|
+
export { APIError, AuthenticationError, AuthorizationError, BadRequestError, BaseClient, type BaseClientOptions, type BaseTelaFileOptions, BatchExecutionFailedError, ConflictApiKeyAndJWTError, ConflictError, ConnectionError, ConnectionTimeout, EmptyFileError, ExecutionFailedError, ExecutionNotStartedError, FileUploadError, type HTTPMethods, InternalServerError, InvalidExecutionModeError, InvalidFileURL, MissingApiKeyOrJWTError, NotFoundError, RateLimitError, type RequestOptions, type SchemaBuilder, TelaError, TelaFile, type TelaFileInput, type TelaFileOptions, type TelaFileOptionsWithMimeType, TelaFileSchema, TelaSDK, type TelaSDKOptions, UnprocessableEntityError, UserAbortError, createTelaClient, toError };
|