asteroid-odyssey 1.3.3 → 1.3.7

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.d.mts CHANGED
@@ -1356,6 +1356,7 @@ type ExecutionActivityStatusChangedPayload = {
1356
1356
  failedPayload?: ExecutionFailedPayload;
1357
1357
  pausedPayload?: ExecutionPausedPayload;
1358
1358
  awaitingConfirmationPayload?: ExecutionAwaitingConfirmationPayload;
1359
+ cancelledPayload?: ExecutionCancelledPayload;
1359
1360
  };
1360
1361
  type ExecutionActivityStepCompletedPayload = {
1361
1362
  stepNumber: number;
@@ -1374,6 +1375,10 @@ type ExecutionActivityUserMessageReceivedPayload = {
1374
1375
  type ExecutionAwaitingConfirmationPayload = {
1375
1376
  reason: string;
1376
1377
  };
1378
+ type ExecutionCancelReason = 'timeout' | 'max_steps' | 'user_requested';
1379
+ type ExecutionCancelledPayload = {
1380
+ reason: ExecutionCancelReason;
1381
+ };
1377
1382
  type ExecutionCompletedPayload = {
1378
1383
  outcome: 'success' | 'failure';
1379
1384
  reasoning: string;
@@ -1394,7 +1399,20 @@ type ExecutionTerminalPayload = {
1394
1399
  type ExecutionUserMessagesAddTextBody = {
1395
1400
  message: string;
1396
1401
  };
1397
- type FilePart = Blob | File;
1402
+ type File$1 = {
1403
+ id: Uuid;
1404
+ executionId: Uuid;
1405
+ agentId: Uuid;
1406
+ filePath: string;
1407
+ fileName: string;
1408
+ fileExt: string;
1409
+ fileSize: number;
1410
+ fileType: string;
1411
+ mimeType: string;
1412
+ createdAt: string;
1413
+ signedUrl: string;
1414
+ };
1415
+ type FilePart = Blob | File$1;
1398
1416
  type Versions = 'frontend' | 'v2';
1399
1417
  type Uuid = string;
1400
1418
  type ActivitiesGetData = {
@@ -1431,6 +1449,28 @@ type ActivitiesGetResponses = {
1431
1449
  200: Array<ExecutionActivity>;
1432
1450
  };
1433
1451
  type ActivitiesGetResponse = ActivitiesGetResponses[keyof ActivitiesGetResponses];
1452
+ type ContextFilesGetData = {
1453
+ body?: never;
1454
+ path: {
1455
+ executionId: Uuid;
1456
+ };
1457
+ query?: never;
1458
+ url: '/executions/{executionId}/context-files';
1459
+ };
1460
+ type ContextFilesGetErrors = {
1461
+ /**
1462
+ * The server cannot find the requested resource.
1463
+ */
1464
+ 404: 'Execution files not found.';
1465
+ };
1466
+ type ContextFilesGetError = ContextFilesGetErrors[keyof ContextFilesGetErrors];
1467
+ type ContextFilesGetResponses = {
1468
+ /**
1469
+ * The request has succeeded.
1470
+ */
1471
+ 200: Array<File$1>;
1472
+ };
1473
+ type ContextFilesGetResponse = ContextFilesGetResponses[keyof ContextFilesGetResponses];
1434
1474
  type UserMessagesAddData = {
1435
1475
  /**
1436
1476
  * The message content to send
@@ -1479,6 +1519,11 @@ type types_gen_ActivityPayloadUnionTerminal = ActivityPayloadUnionTerminal;
1479
1519
  type types_gen_ActivityPayloadUnionTransitionedNode = ActivityPayloadUnionTransitionedNode;
1480
1520
  type types_gen_ActivityPayloadUnionUserMessageReceived = ActivityPayloadUnionUserMessageReceived;
1481
1521
  type types_gen_ClientOptions = ClientOptions;
1522
+ type types_gen_ContextFilesGetData = ContextFilesGetData;
1523
+ type types_gen_ContextFilesGetError = ContextFilesGetError;
1524
+ type types_gen_ContextFilesGetErrors = ContextFilesGetErrors;
1525
+ type types_gen_ContextFilesGetResponse = ContextFilesGetResponse;
1526
+ type types_gen_ContextFilesGetResponses = ContextFilesGetResponses;
1482
1527
  type types_gen_ExecutionActivity = ExecutionActivity;
1483
1528
  type types_gen_ExecutionActivityActionCompletedPayload = ExecutionActivityActionCompletedPayload;
1484
1529
  type types_gen_ExecutionActivityActionFailedPayload = ExecutionActivityActionFailedPayload;
@@ -1491,6 +1536,8 @@ type types_gen_ExecutionActivityStepStartedPayload = ExecutionActivityStepStarte
1491
1536
  type types_gen_ExecutionActivityTransitionedNodePayload = ExecutionActivityTransitionedNodePayload;
1492
1537
  type types_gen_ExecutionActivityUserMessageReceivedPayload = ExecutionActivityUserMessageReceivedPayload;
1493
1538
  type types_gen_ExecutionAwaitingConfirmationPayload = ExecutionAwaitingConfirmationPayload;
1539
+ type types_gen_ExecutionCancelReason = ExecutionCancelReason;
1540
+ type types_gen_ExecutionCancelledPayload = ExecutionCancelledPayload;
1494
1541
  type types_gen_ExecutionCompletedPayload = ExecutionCompletedPayload;
1495
1542
  type types_gen_ExecutionFailedPayload = ExecutionFailedPayload;
1496
1543
  type types_gen_ExecutionPausedPayload = ExecutionPausedPayload;
@@ -1507,7 +1554,7 @@ type types_gen_Uuid = Uuid;
1507
1554
  type types_gen_Versions = Versions;
1508
1555
  type types_gen__Error = _Error;
1509
1556
  declare namespace types_gen {
1510
- export type { types_gen_ActivitiesGetData as ActivitiesGetData, types_gen_ActivitiesGetError as ActivitiesGetError, types_gen_ActivitiesGetErrors as ActivitiesGetErrors, types_gen_ActivitiesGetResponse as ActivitiesGetResponse, types_gen_ActivitiesGetResponses as ActivitiesGetResponses, types_gen_ActivityPayloadUnionActionCompleted as ActivityPayloadUnionActionCompleted, types_gen_ActivityPayloadUnionActionFailed as ActivityPayloadUnionActionFailed, types_gen_ActivityPayloadUnionActionStarted as ActivityPayloadUnionActionStarted, types_gen_ActivityPayloadUnionGeneric as ActivityPayloadUnionGeneric, types_gen_ActivityPayloadUnionStatusChanged as ActivityPayloadUnionStatusChanged, types_gen_ActivityPayloadUnionStepCompleted as ActivityPayloadUnionStepCompleted, types_gen_ActivityPayloadUnionStepStarted as ActivityPayloadUnionStepStarted, types_gen_ActivityPayloadUnionTerminal as ActivityPayloadUnionTerminal, types_gen_ActivityPayloadUnionTransitionedNode as ActivityPayloadUnionTransitionedNode, types_gen_ActivityPayloadUnionUserMessageReceived as ActivityPayloadUnionUserMessageReceived, types_gen_ClientOptions as ClientOptions, types_gen_ExecutionActivity as ExecutionActivity, types_gen_ExecutionActivityActionCompletedPayload as ExecutionActivityActionCompletedPayload, types_gen_ExecutionActivityActionFailedPayload as ExecutionActivityActionFailedPayload, types_gen_ExecutionActivityActionStartedPayload as ExecutionActivityActionStartedPayload, types_gen_ExecutionActivityGenericPayload as ExecutionActivityGenericPayload, types_gen_ExecutionActivityPayloadUnion as ExecutionActivityPayloadUnion, types_gen_ExecutionActivityStatusChangedPayload as ExecutionActivityStatusChangedPayload, types_gen_ExecutionActivityStepCompletedPayload as ExecutionActivityStepCompletedPayload, types_gen_ExecutionActivityStepStartedPayload as ExecutionActivityStepStartedPayload, types_gen_ExecutionActivityTransitionedNodePayload as ExecutionActivityTransitionedNodePayload, types_gen_ExecutionActivityUserMessageReceivedPayload as ExecutionActivityUserMessageReceivedPayload, types_gen_ExecutionAwaitingConfirmationPayload as ExecutionAwaitingConfirmationPayload, types_gen_ExecutionCompletedPayload as ExecutionCompletedPayload, types_gen_ExecutionFailedPayload as ExecutionFailedPayload, types_gen_ExecutionPausedPayload as ExecutionPausedPayload, types_gen_ExecutionStatus as ExecutionStatus, types_gen_ExecutionTerminalPayload as ExecutionTerminalPayload, types_gen_ExecutionUserMessagesAddTextBody as ExecutionUserMessagesAddTextBody, types_gen_FilePart as FilePart, types_gen_UserMessagesAddData as UserMessagesAddData, types_gen_UserMessagesAddError as UserMessagesAddError, types_gen_UserMessagesAddErrors as UserMessagesAddErrors, types_gen_UserMessagesAddResponse as UserMessagesAddResponse, types_gen_UserMessagesAddResponses as UserMessagesAddResponses, types_gen_Uuid as Uuid, types_gen_Versions as Versions, types_gen__Error as _Error };
1557
+ export type { types_gen_ActivitiesGetData as ActivitiesGetData, types_gen_ActivitiesGetError as ActivitiesGetError, types_gen_ActivitiesGetErrors as ActivitiesGetErrors, types_gen_ActivitiesGetResponse as ActivitiesGetResponse, types_gen_ActivitiesGetResponses as ActivitiesGetResponses, types_gen_ActivityPayloadUnionActionCompleted as ActivityPayloadUnionActionCompleted, types_gen_ActivityPayloadUnionActionFailed as ActivityPayloadUnionActionFailed, types_gen_ActivityPayloadUnionActionStarted as ActivityPayloadUnionActionStarted, types_gen_ActivityPayloadUnionGeneric as ActivityPayloadUnionGeneric, types_gen_ActivityPayloadUnionStatusChanged as ActivityPayloadUnionStatusChanged, types_gen_ActivityPayloadUnionStepCompleted as ActivityPayloadUnionStepCompleted, types_gen_ActivityPayloadUnionStepStarted as ActivityPayloadUnionStepStarted, types_gen_ActivityPayloadUnionTerminal as ActivityPayloadUnionTerminal, types_gen_ActivityPayloadUnionTransitionedNode as ActivityPayloadUnionTransitionedNode, types_gen_ActivityPayloadUnionUserMessageReceived as ActivityPayloadUnionUserMessageReceived, types_gen_ClientOptions as ClientOptions, types_gen_ContextFilesGetData as ContextFilesGetData, types_gen_ContextFilesGetError as ContextFilesGetError, types_gen_ContextFilesGetErrors as ContextFilesGetErrors, types_gen_ContextFilesGetResponse as ContextFilesGetResponse, types_gen_ContextFilesGetResponses as ContextFilesGetResponses, types_gen_ExecutionActivity as ExecutionActivity, types_gen_ExecutionActivityActionCompletedPayload as ExecutionActivityActionCompletedPayload, types_gen_ExecutionActivityActionFailedPayload as ExecutionActivityActionFailedPayload, types_gen_ExecutionActivityActionStartedPayload as ExecutionActivityActionStartedPayload, types_gen_ExecutionActivityGenericPayload as ExecutionActivityGenericPayload, types_gen_ExecutionActivityPayloadUnion as ExecutionActivityPayloadUnion, types_gen_ExecutionActivityStatusChangedPayload as ExecutionActivityStatusChangedPayload, types_gen_ExecutionActivityStepCompletedPayload as ExecutionActivityStepCompletedPayload, types_gen_ExecutionActivityStepStartedPayload as ExecutionActivityStepStartedPayload, types_gen_ExecutionActivityTransitionedNodePayload as ExecutionActivityTransitionedNodePayload, types_gen_ExecutionActivityUserMessageReceivedPayload as ExecutionActivityUserMessageReceivedPayload, types_gen_ExecutionAwaitingConfirmationPayload as ExecutionAwaitingConfirmationPayload, types_gen_ExecutionCancelReason as ExecutionCancelReason, types_gen_ExecutionCancelledPayload as ExecutionCancelledPayload, types_gen_ExecutionCompletedPayload as ExecutionCompletedPayload, types_gen_ExecutionFailedPayload as ExecutionFailedPayload, types_gen_ExecutionPausedPayload as ExecutionPausedPayload, types_gen_ExecutionStatus as ExecutionStatus, types_gen_ExecutionTerminalPayload as ExecutionTerminalPayload, types_gen_ExecutionUserMessagesAddTextBody as ExecutionUserMessagesAddTextBody, File$1 as File, types_gen_FilePart as FilePart, types_gen_UserMessagesAddData as UserMessagesAddData, types_gen_UserMessagesAddError as UserMessagesAddError, types_gen_UserMessagesAddErrors as UserMessagesAddErrors, types_gen_UserMessagesAddResponse as UserMessagesAddResponse, types_gen_UserMessagesAddResponses as UserMessagesAddResponses, types_gen_Uuid as Uuid, types_gen_Versions as Versions, types_gen__Error as _Error };
1511
1558
  }
1512
1559
 
1513
1560
  type Options$1<TData extends TDataShape$1 = TDataShape$1, ThrowOnError extends boolean = boolean> = Options$3<TData, ThrowOnError> & {
@@ -1528,6 +1575,7 @@ type Options$1<TData extends TDataShape$1 = TDataShape$1, ThrowOnError extends b
1528
1575
  * Get activities for an execution
1529
1576
  */
1530
1577
  declare const activitiesGet: <ThrowOnError extends boolean = false>(options: Options$1<ActivitiesGetData, ThrowOnError>) => RequestResult$1<ActivitiesGetResponses, ActivitiesGetErrors, ThrowOnError, "fields">;
1578
+ declare const contextFilesGet: <ThrowOnError extends boolean = false>(options: Options$1<ContextFilesGetData, ThrowOnError>) => RequestResult$1<ContextFilesGetResponses, ContextFilesGetErrors, ThrowOnError, "fields">;
1531
1579
  /**
1532
1580
  * Send user message to execution
1533
1581
  * Add a user message to an execution
@@ -1535,9 +1583,10 @@ declare const activitiesGet: <ThrowOnError extends boolean = false>(options: Opt
1535
1583
  declare const userMessagesAdd: <ThrowOnError extends boolean = false>(options: Options$1<UserMessagesAddData, ThrowOnError>) => RequestResult$1<UserMessagesAddResponses, UserMessagesAddErrors, ThrowOnError, "fields">;
1536
1584
 
1537
1585
  declare const sdk_gen$1_activitiesGet: typeof activitiesGet;
1586
+ declare const sdk_gen$1_contextFilesGet: typeof contextFilesGet;
1538
1587
  declare const sdk_gen$1_userMessagesAdd: typeof userMessagesAdd;
1539
1588
  declare namespace sdk_gen$1 {
1540
- export { type Options$1 as Options, sdk_gen$1_activitiesGet as activitiesGet, sdk_gen$1_userMessagesAdd as userMessagesAdd };
1589
+ export { type Options$1 as Options, sdk_gen$1_activitiesGet as activitiesGet, sdk_gen$1_contextFilesGet as contextFilesGet, sdk_gen$1_userMessagesAdd as userMessagesAdd };
1541
1590
  }
1542
1591
 
1543
1592
  type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options$2<TData, ThrowOnError> & {
@@ -1728,7 +1777,7 @@ declare const getBrowserSessionRecording: (client: AsteroidClient, executionId:
1728
1777
  * const result = await uploadExecutionFiles(client, executionId, files);
1729
1778
  * console.log(result.file_ids);
1730
1779
  */
1731
- declare const uploadExecutionFiles: (client: AsteroidClient, executionId: string, files: Array<Blob | File>) => Promise<{
1780
+ declare const uploadExecutionFiles: (client: AsteroidClient, executionId: string, files: Array<Blob | globalThis.File>) => Promise<{
1732
1781
  message?: string;
1733
1782
  file_ids?: string[];
1734
1783
  }>;
@@ -1839,5 +1888,42 @@ declare const getLastNExecutionActivities: (client: AsteroidClient, executionId:
1839
1888
  * await addMessageToExecution(client, 'execution_123', 'Hello, world!');
1840
1889
  */
1841
1890
  declare const addMessageToExecution: (client: AsteroidClient, executionId: string, message: string) => Promise<void>;
1891
+ /**
1892
+ * Get a list of files associated with an execution.
1893
+ *
1894
+ * @param client - The API client.
1895
+ * @param executionId - The execution identifier.
1896
+ * @returns A list of files associated with the execution.
1897
+ *
1898
+ * @example
1899
+ * const files = await getExecutionFiles(client, 'execution_123');
1900
+ * files.forEach(file => {
1901
+ * console.log(`File: ${file.fileName}, Size: ${file.fileSize}`);
1902
+ * });
1903
+ */
1904
+ declare const getExecutionFiles: (client: AsteroidClient, executionId: string) => Promise<File$1[]>;
1905
+ /**
1906
+ * Download a file from an execution using its signed URL.
1907
+ *
1908
+ * @param client - The API client.
1909
+ * @param file - The File object containing the signed URL and metadata.
1910
+ * @param downloadPath - Path where the file should be saved. Can be a directory or full file path.
1911
+ * @param createDirs - Whether to create parent directories if they don't exist (default: true).
1912
+ * @param timeout - Request timeout in seconds (default: 30).
1913
+ * @returns The full path where the file was saved.
1914
+ *
1915
+ * @example
1916
+ * const files = await getExecutionFiles(client, 'execution_123');
1917
+ * for (const file of files) {
1918
+ * // Download to specific directory
1919
+ * const savedPath = await downloadExecutionFile(client, file, './downloads/');
1920
+ * console.log(`Downloaded ${file.fileName} to ${savedPath}`);
1921
+ *
1922
+ * // Download with specific filename
1923
+ * const savedPath2 = await downloadExecutionFile(client, file, './downloads/my_file.txt');
1924
+ * console.log(`Downloaded to ${savedPath2}`);
1925
+ * }
1926
+ */
1927
+ declare const downloadExecutionFile: (client: AsteroidClient, file: File$1, downloadPath: string, createDirs?: boolean, timeout?: number) => Promise<string>;
1842
1928
 
1843
- export { sdk_gen as AgentsV1SDK, types_gen$1 as AgentsV1Types, sdk_gen$1 as AgentsV2SDK, types_gen as AgentsV2Types, AsteroidClient, addMessageToExecution, createAgentProfile, deleteAgentProfile, executeAgent, getAgentProfile, getAgentProfiles, getBrowserSessionRecording, getCredentialsPublicKey, getExecutionResult, getExecutionStatus, getLastNExecutionActivities, updateAgentProfile, uploadExecutionFiles, waitForExecutionResult };
1929
+ export { sdk_gen as AgentsV1SDK, types_gen$1 as AgentsV1Types, sdk_gen$1 as AgentsV2SDK, types_gen as AgentsV2Types, AsteroidClient, addMessageToExecution, createAgentProfile, deleteAgentProfile, downloadExecutionFile, executeAgent, getAgentProfile, getAgentProfiles, getBrowserSessionRecording, getCredentialsPublicKey, getExecutionFiles, getExecutionResult, getExecutionStatus, getLastNExecutionActivities, updateAgentProfile, uploadExecutionFiles, waitForExecutionResult };
package/dist/index.d.ts CHANGED
@@ -1356,6 +1356,7 @@ type ExecutionActivityStatusChangedPayload = {
1356
1356
  failedPayload?: ExecutionFailedPayload;
1357
1357
  pausedPayload?: ExecutionPausedPayload;
1358
1358
  awaitingConfirmationPayload?: ExecutionAwaitingConfirmationPayload;
1359
+ cancelledPayload?: ExecutionCancelledPayload;
1359
1360
  };
1360
1361
  type ExecutionActivityStepCompletedPayload = {
1361
1362
  stepNumber: number;
@@ -1374,6 +1375,10 @@ type ExecutionActivityUserMessageReceivedPayload = {
1374
1375
  type ExecutionAwaitingConfirmationPayload = {
1375
1376
  reason: string;
1376
1377
  };
1378
+ type ExecutionCancelReason = 'timeout' | 'max_steps' | 'user_requested';
1379
+ type ExecutionCancelledPayload = {
1380
+ reason: ExecutionCancelReason;
1381
+ };
1377
1382
  type ExecutionCompletedPayload = {
1378
1383
  outcome: 'success' | 'failure';
1379
1384
  reasoning: string;
@@ -1394,7 +1399,20 @@ type ExecutionTerminalPayload = {
1394
1399
  type ExecutionUserMessagesAddTextBody = {
1395
1400
  message: string;
1396
1401
  };
1397
- type FilePart = Blob | File;
1402
+ type File$1 = {
1403
+ id: Uuid;
1404
+ executionId: Uuid;
1405
+ agentId: Uuid;
1406
+ filePath: string;
1407
+ fileName: string;
1408
+ fileExt: string;
1409
+ fileSize: number;
1410
+ fileType: string;
1411
+ mimeType: string;
1412
+ createdAt: string;
1413
+ signedUrl: string;
1414
+ };
1415
+ type FilePart = Blob | File$1;
1398
1416
  type Versions = 'frontend' | 'v2';
1399
1417
  type Uuid = string;
1400
1418
  type ActivitiesGetData = {
@@ -1431,6 +1449,28 @@ type ActivitiesGetResponses = {
1431
1449
  200: Array<ExecutionActivity>;
1432
1450
  };
1433
1451
  type ActivitiesGetResponse = ActivitiesGetResponses[keyof ActivitiesGetResponses];
1452
+ type ContextFilesGetData = {
1453
+ body?: never;
1454
+ path: {
1455
+ executionId: Uuid;
1456
+ };
1457
+ query?: never;
1458
+ url: '/executions/{executionId}/context-files';
1459
+ };
1460
+ type ContextFilesGetErrors = {
1461
+ /**
1462
+ * The server cannot find the requested resource.
1463
+ */
1464
+ 404: 'Execution files not found.';
1465
+ };
1466
+ type ContextFilesGetError = ContextFilesGetErrors[keyof ContextFilesGetErrors];
1467
+ type ContextFilesGetResponses = {
1468
+ /**
1469
+ * The request has succeeded.
1470
+ */
1471
+ 200: Array<File$1>;
1472
+ };
1473
+ type ContextFilesGetResponse = ContextFilesGetResponses[keyof ContextFilesGetResponses];
1434
1474
  type UserMessagesAddData = {
1435
1475
  /**
1436
1476
  * The message content to send
@@ -1479,6 +1519,11 @@ type types_gen_ActivityPayloadUnionTerminal = ActivityPayloadUnionTerminal;
1479
1519
  type types_gen_ActivityPayloadUnionTransitionedNode = ActivityPayloadUnionTransitionedNode;
1480
1520
  type types_gen_ActivityPayloadUnionUserMessageReceived = ActivityPayloadUnionUserMessageReceived;
1481
1521
  type types_gen_ClientOptions = ClientOptions;
1522
+ type types_gen_ContextFilesGetData = ContextFilesGetData;
1523
+ type types_gen_ContextFilesGetError = ContextFilesGetError;
1524
+ type types_gen_ContextFilesGetErrors = ContextFilesGetErrors;
1525
+ type types_gen_ContextFilesGetResponse = ContextFilesGetResponse;
1526
+ type types_gen_ContextFilesGetResponses = ContextFilesGetResponses;
1482
1527
  type types_gen_ExecutionActivity = ExecutionActivity;
1483
1528
  type types_gen_ExecutionActivityActionCompletedPayload = ExecutionActivityActionCompletedPayload;
1484
1529
  type types_gen_ExecutionActivityActionFailedPayload = ExecutionActivityActionFailedPayload;
@@ -1491,6 +1536,8 @@ type types_gen_ExecutionActivityStepStartedPayload = ExecutionActivityStepStarte
1491
1536
  type types_gen_ExecutionActivityTransitionedNodePayload = ExecutionActivityTransitionedNodePayload;
1492
1537
  type types_gen_ExecutionActivityUserMessageReceivedPayload = ExecutionActivityUserMessageReceivedPayload;
1493
1538
  type types_gen_ExecutionAwaitingConfirmationPayload = ExecutionAwaitingConfirmationPayload;
1539
+ type types_gen_ExecutionCancelReason = ExecutionCancelReason;
1540
+ type types_gen_ExecutionCancelledPayload = ExecutionCancelledPayload;
1494
1541
  type types_gen_ExecutionCompletedPayload = ExecutionCompletedPayload;
1495
1542
  type types_gen_ExecutionFailedPayload = ExecutionFailedPayload;
1496
1543
  type types_gen_ExecutionPausedPayload = ExecutionPausedPayload;
@@ -1507,7 +1554,7 @@ type types_gen_Uuid = Uuid;
1507
1554
  type types_gen_Versions = Versions;
1508
1555
  type types_gen__Error = _Error;
1509
1556
  declare namespace types_gen {
1510
- export type { types_gen_ActivitiesGetData as ActivitiesGetData, types_gen_ActivitiesGetError as ActivitiesGetError, types_gen_ActivitiesGetErrors as ActivitiesGetErrors, types_gen_ActivitiesGetResponse as ActivitiesGetResponse, types_gen_ActivitiesGetResponses as ActivitiesGetResponses, types_gen_ActivityPayloadUnionActionCompleted as ActivityPayloadUnionActionCompleted, types_gen_ActivityPayloadUnionActionFailed as ActivityPayloadUnionActionFailed, types_gen_ActivityPayloadUnionActionStarted as ActivityPayloadUnionActionStarted, types_gen_ActivityPayloadUnionGeneric as ActivityPayloadUnionGeneric, types_gen_ActivityPayloadUnionStatusChanged as ActivityPayloadUnionStatusChanged, types_gen_ActivityPayloadUnionStepCompleted as ActivityPayloadUnionStepCompleted, types_gen_ActivityPayloadUnionStepStarted as ActivityPayloadUnionStepStarted, types_gen_ActivityPayloadUnionTerminal as ActivityPayloadUnionTerminal, types_gen_ActivityPayloadUnionTransitionedNode as ActivityPayloadUnionTransitionedNode, types_gen_ActivityPayloadUnionUserMessageReceived as ActivityPayloadUnionUserMessageReceived, types_gen_ClientOptions as ClientOptions, types_gen_ExecutionActivity as ExecutionActivity, types_gen_ExecutionActivityActionCompletedPayload as ExecutionActivityActionCompletedPayload, types_gen_ExecutionActivityActionFailedPayload as ExecutionActivityActionFailedPayload, types_gen_ExecutionActivityActionStartedPayload as ExecutionActivityActionStartedPayload, types_gen_ExecutionActivityGenericPayload as ExecutionActivityGenericPayload, types_gen_ExecutionActivityPayloadUnion as ExecutionActivityPayloadUnion, types_gen_ExecutionActivityStatusChangedPayload as ExecutionActivityStatusChangedPayload, types_gen_ExecutionActivityStepCompletedPayload as ExecutionActivityStepCompletedPayload, types_gen_ExecutionActivityStepStartedPayload as ExecutionActivityStepStartedPayload, types_gen_ExecutionActivityTransitionedNodePayload as ExecutionActivityTransitionedNodePayload, types_gen_ExecutionActivityUserMessageReceivedPayload as ExecutionActivityUserMessageReceivedPayload, types_gen_ExecutionAwaitingConfirmationPayload as ExecutionAwaitingConfirmationPayload, types_gen_ExecutionCompletedPayload as ExecutionCompletedPayload, types_gen_ExecutionFailedPayload as ExecutionFailedPayload, types_gen_ExecutionPausedPayload as ExecutionPausedPayload, types_gen_ExecutionStatus as ExecutionStatus, types_gen_ExecutionTerminalPayload as ExecutionTerminalPayload, types_gen_ExecutionUserMessagesAddTextBody as ExecutionUserMessagesAddTextBody, types_gen_FilePart as FilePart, types_gen_UserMessagesAddData as UserMessagesAddData, types_gen_UserMessagesAddError as UserMessagesAddError, types_gen_UserMessagesAddErrors as UserMessagesAddErrors, types_gen_UserMessagesAddResponse as UserMessagesAddResponse, types_gen_UserMessagesAddResponses as UserMessagesAddResponses, types_gen_Uuid as Uuid, types_gen_Versions as Versions, types_gen__Error as _Error };
1557
+ export type { types_gen_ActivitiesGetData as ActivitiesGetData, types_gen_ActivitiesGetError as ActivitiesGetError, types_gen_ActivitiesGetErrors as ActivitiesGetErrors, types_gen_ActivitiesGetResponse as ActivitiesGetResponse, types_gen_ActivitiesGetResponses as ActivitiesGetResponses, types_gen_ActivityPayloadUnionActionCompleted as ActivityPayloadUnionActionCompleted, types_gen_ActivityPayloadUnionActionFailed as ActivityPayloadUnionActionFailed, types_gen_ActivityPayloadUnionActionStarted as ActivityPayloadUnionActionStarted, types_gen_ActivityPayloadUnionGeneric as ActivityPayloadUnionGeneric, types_gen_ActivityPayloadUnionStatusChanged as ActivityPayloadUnionStatusChanged, types_gen_ActivityPayloadUnionStepCompleted as ActivityPayloadUnionStepCompleted, types_gen_ActivityPayloadUnionStepStarted as ActivityPayloadUnionStepStarted, types_gen_ActivityPayloadUnionTerminal as ActivityPayloadUnionTerminal, types_gen_ActivityPayloadUnionTransitionedNode as ActivityPayloadUnionTransitionedNode, types_gen_ActivityPayloadUnionUserMessageReceived as ActivityPayloadUnionUserMessageReceived, types_gen_ClientOptions as ClientOptions, types_gen_ContextFilesGetData as ContextFilesGetData, types_gen_ContextFilesGetError as ContextFilesGetError, types_gen_ContextFilesGetErrors as ContextFilesGetErrors, types_gen_ContextFilesGetResponse as ContextFilesGetResponse, types_gen_ContextFilesGetResponses as ContextFilesGetResponses, types_gen_ExecutionActivity as ExecutionActivity, types_gen_ExecutionActivityActionCompletedPayload as ExecutionActivityActionCompletedPayload, types_gen_ExecutionActivityActionFailedPayload as ExecutionActivityActionFailedPayload, types_gen_ExecutionActivityActionStartedPayload as ExecutionActivityActionStartedPayload, types_gen_ExecutionActivityGenericPayload as ExecutionActivityGenericPayload, types_gen_ExecutionActivityPayloadUnion as ExecutionActivityPayloadUnion, types_gen_ExecutionActivityStatusChangedPayload as ExecutionActivityStatusChangedPayload, types_gen_ExecutionActivityStepCompletedPayload as ExecutionActivityStepCompletedPayload, types_gen_ExecutionActivityStepStartedPayload as ExecutionActivityStepStartedPayload, types_gen_ExecutionActivityTransitionedNodePayload as ExecutionActivityTransitionedNodePayload, types_gen_ExecutionActivityUserMessageReceivedPayload as ExecutionActivityUserMessageReceivedPayload, types_gen_ExecutionAwaitingConfirmationPayload as ExecutionAwaitingConfirmationPayload, types_gen_ExecutionCancelReason as ExecutionCancelReason, types_gen_ExecutionCancelledPayload as ExecutionCancelledPayload, types_gen_ExecutionCompletedPayload as ExecutionCompletedPayload, types_gen_ExecutionFailedPayload as ExecutionFailedPayload, types_gen_ExecutionPausedPayload as ExecutionPausedPayload, types_gen_ExecutionStatus as ExecutionStatus, types_gen_ExecutionTerminalPayload as ExecutionTerminalPayload, types_gen_ExecutionUserMessagesAddTextBody as ExecutionUserMessagesAddTextBody, File$1 as File, types_gen_FilePart as FilePart, types_gen_UserMessagesAddData as UserMessagesAddData, types_gen_UserMessagesAddError as UserMessagesAddError, types_gen_UserMessagesAddErrors as UserMessagesAddErrors, types_gen_UserMessagesAddResponse as UserMessagesAddResponse, types_gen_UserMessagesAddResponses as UserMessagesAddResponses, types_gen_Uuid as Uuid, types_gen_Versions as Versions, types_gen__Error as _Error };
1511
1558
  }
1512
1559
 
1513
1560
  type Options$1<TData extends TDataShape$1 = TDataShape$1, ThrowOnError extends boolean = boolean> = Options$3<TData, ThrowOnError> & {
@@ -1528,6 +1575,7 @@ type Options$1<TData extends TDataShape$1 = TDataShape$1, ThrowOnError extends b
1528
1575
  * Get activities for an execution
1529
1576
  */
1530
1577
  declare const activitiesGet: <ThrowOnError extends boolean = false>(options: Options$1<ActivitiesGetData, ThrowOnError>) => RequestResult$1<ActivitiesGetResponses, ActivitiesGetErrors, ThrowOnError, "fields">;
1578
+ declare const contextFilesGet: <ThrowOnError extends boolean = false>(options: Options$1<ContextFilesGetData, ThrowOnError>) => RequestResult$1<ContextFilesGetResponses, ContextFilesGetErrors, ThrowOnError, "fields">;
1531
1579
  /**
1532
1580
  * Send user message to execution
1533
1581
  * Add a user message to an execution
@@ -1535,9 +1583,10 @@ declare const activitiesGet: <ThrowOnError extends boolean = false>(options: Opt
1535
1583
  declare const userMessagesAdd: <ThrowOnError extends boolean = false>(options: Options$1<UserMessagesAddData, ThrowOnError>) => RequestResult$1<UserMessagesAddResponses, UserMessagesAddErrors, ThrowOnError, "fields">;
1536
1584
 
1537
1585
  declare const sdk_gen$1_activitiesGet: typeof activitiesGet;
1586
+ declare const sdk_gen$1_contextFilesGet: typeof contextFilesGet;
1538
1587
  declare const sdk_gen$1_userMessagesAdd: typeof userMessagesAdd;
1539
1588
  declare namespace sdk_gen$1 {
1540
- export { type Options$1 as Options, sdk_gen$1_activitiesGet as activitiesGet, sdk_gen$1_userMessagesAdd as userMessagesAdd };
1589
+ export { type Options$1 as Options, sdk_gen$1_activitiesGet as activitiesGet, sdk_gen$1_contextFilesGet as contextFilesGet, sdk_gen$1_userMessagesAdd as userMessagesAdd };
1541
1590
  }
1542
1591
 
1543
1592
  type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options$2<TData, ThrowOnError> & {
@@ -1728,7 +1777,7 @@ declare const getBrowserSessionRecording: (client: AsteroidClient, executionId:
1728
1777
  * const result = await uploadExecutionFiles(client, executionId, files);
1729
1778
  * console.log(result.file_ids);
1730
1779
  */
1731
- declare const uploadExecutionFiles: (client: AsteroidClient, executionId: string, files: Array<Blob | File>) => Promise<{
1780
+ declare const uploadExecutionFiles: (client: AsteroidClient, executionId: string, files: Array<Blob | globalThis.File>) => Promise<{
1732
1781
  message?: string;
1733
1782
  file_ids?: string[];
1734
1783
  }>;
@@ -1839,5 +1888,42 @@ declare const getLastNExecutionActivities: (client: AsteroidClient, executionId:
1839
1888
  * await addMessageToExecution(client, 'execution_123', 'Hello, world!');
1840
1889
  */
1841
1890
  declare const addMessageToExecution: (client: AsteroidClient, executionId: string, message: string) => Promise<void>;
1891
+ /**
1892
+ * Get a list of files associated with an execution.
1893
+ *
1894
+ * @param client - The API client.
1895
+ * @param executionId - The execution identifier.
1896
+ * @returns A list of files associated with the execution.
1897
+ *
1898
+ * @example
1899
+ * const files = await getExecutionFiles(client, 'execution_123');
1900
+ * files.forEach(file => {
1901
+ * console.log(`File: ${file.fileName}, Size: ${file.fileSize}`);
1902
+ * });
1903
+ */
1904
+ declare const getExecutionFiles: (client: AsteroidClient, executionId: string) => Promise<File$1[]>;
1905
+ /**
1906
+ * Download a file from an execution using its signed URL.
1907
+ *
1908
+ * @param client - The API client.
1909
+ * @param file - The File object containing the signed URL and metadata.
1910
+ * @param downloadPath - Path where the file should be saved. Can be a directory or full file path.
1911
+ * @param createDirs - Whether to create parent directories if they don't exist (default: true).
1912
+ * @param timeout - Request timeout in seconds (default: 30).
1913
+ * @returns The full path where the file was saved.
1914
+ *
1915
+ * @example
1916
+ * const files = await getExecutionFiles(client, 'execution_123');
1917
+ * for (const file of files) {
1918
+ * // Download to specific directory
1919
+ * const savedPath = await downloadExecutionFile(client, file, './downloads/');
1920
+ * console.log(`Downloaded ${file.fileName} to ${savedPath}`);
1921
+ *
1922
+ * // Download with specific filename
1923
+ * const savedPath2 = await downloadExecutionFile(client, file, './downloads/my_file.txt');
1924
+ * console.log(`Downloaded to ${savedPath2}`);
1925
+ * }
1926
+ */
1927
+ declare const downloadExecutionFile: (client: AsteroidClient, file: File$1, downloadPath: string, createDirs?: boolean, timeout?: number) => Promise<string>;
1842
1928
 
1843
- export { sdk_gen as AgentsV1SDK, types_gen$1 as AgentsV1Types, sdk_gen$1 as AgentsV2SDK, types_gen as AgentsV2Types, AsteroidClient, addMessageToExecution, createAgentProfile, deleteAgentProfile, executeAgent, getAgentProfile, getAgentProfiles, getBrowserSessionRecording, getCredentialsPublicKey, getExecutionResult, getExecutionStatus, getLastNExecutionActivities, updateAgentProfile, uploadExecutionFiles, waitForExecutionResult };
1929
+ export { sdk_gen as AgentsV1SDK, types_gen$1 as AgentsV1Types, sdk_gen$1 as AgentsV2SDK, types_gen as AgentsV2Types, AsteroidClient, addMessageToExecution, createAgentProfile, deleteAgentProfile, downloadExecutionFile, executeAgent, getAgentProfile, getAgentProfiles, getBrowserSessionRecording, getCredentialsPublicKey, getExecutionFiles, getExecutionResult, getExecutionStatus, getLastNExecutionActivities, updateAgentProfile, uploadExecutionFiles, waitForExecutionResult };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var T=require('node-forge');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var T__namespace=/*#__PURE__*/_interopNamespace(T);var me=Object.defineProperty;var se=(e,r)=>{for(var t in r)me(e,t,{get:r[t],enumerable:true});};function D(e,r){try{let s=T__namespace.pki.publicKeyFromPem(r).encrypt(e,"RSAES-PKCS1-V1_5");return T__namespace.util.encode64(s)}catch(t){throw console.error("Encryption failed:",t),new Error("Failed to encrypt: "+(t instanceof Error?t.message:"unknown error"))}}var L={};se(L,{createAgentProfile:()=>M,deleteAgentProfile:()=>N,executeAgent:()=>De,executeAgentStructured:()=>B,getAgentProfile:()=>W,getAgentProfiles:()=>F,getBrowserSessionRecording:()=>H,getCredentialsPublicKey:()=>X,getExecutionResult:()=>V,getExecutionStatus:()=>$,getOpenApi:()=>qe,healthCheck:()=>ke,updateAgentProfile:()=>Q,uploadExecutionFiles:()=>K});var ie=(e,r,t)=>{typeof t=="string"||t instanceof Blob?e.append(r,t):t instanceof Date?e.append(r,t.toISOString()):e.append(r,JSON.stringify(t));};var U={bodySerializer:e=>{let r=new FormData;return Object.entries(e).forEach(([t,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>ie(r,t,i)):ie(r,t,s));}),r}},v={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ae=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ee=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Re=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Se=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},z=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(Re(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ee(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):S({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},S=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},_=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=Se(s),o=Object.entries(i).map(([p,u])=>S({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var Pe=/\{[^{}]+\}/g,be=({path:e,url:r})=>{let t=r,s=r.match(Pe);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,z({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,_({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${S({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},pe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=z({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=_({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=S({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ce=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},Ce=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,le=async({security:e,...r})=>{for(let t of e){if(Ce(r,t.name))continue;let s=await ae(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},G=e=>Oe({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:pe(e.querySerializer),url:e.url}),Oe=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=be({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},j=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=q(e.headers,r.headers),t},q=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},P=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},ue=()=>({error:new P,request:new P,response:new P}),we=pe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Te={"Content-Type":"application/json"},b=(e={})=>({...v,headers:Te,parseAs:"auto",querySerializer:we,...e});var I=(e={})=>{let r=j(b(),e),t=()=>({...r}),s=n=>(r=j(r,n),t()),i=ue(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:q(r.headers,n.headers),serializedBody:void 0};o.security&&await le({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=G(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ce(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:G,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var d=I(b({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var qe=e=>(e?.client??d).get({url:"/openapi.yaml",...e}),K=e=>(e.client??d).post({...U,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),ke=e=>(e?.client??d).get({url:"/health",...e}),De=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),B=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),$=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),V=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),H=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),F=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),M=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),N=e=>(e.client??d).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),W=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),Q=e=>(e.client??d).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),X=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ne={};se(ne,{activitiesGet:()=>re,userMessagesAdd:()=>oe});var de={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ye=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ue=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},ve=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},ze=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},J=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(ve(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ue(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):C({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},C=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},Y=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=ze(s),o=Object.entries(i).map(([p,u])=>C({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var _e=/\{[^{}]+\}/g,Ge=({path:e,url:r})=>{let t=r,s=r.match(_e);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,J({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,Y({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${C({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},fe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=J({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=Y({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=C({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ge=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},je=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,xe=async({security:e,...r})=>{for(let t of e){if(je(r,t.name))continue;let s=await ye(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},Z=e=>Ie({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:fe(e.querySerializer),url:e.url}),Ie=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=Ge({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},ee=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=k(e.headers,r.headers),t},k=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},O=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},Ae=()=>({error:new O,request:new O,response:new O}),Ke=fe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Be={"Content-Type":"application/json"},w=(e={})=>({...de,headers:Be,parseAs:"auto",querySerializer:Ke,...e});var te=(e={})=>{let r=ee(w(),e),t=()=>({...r}),s=n=>(r=ee(r,n),t()),i=Ae(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:k(r.headers,n.headers),serializedBody:void 0};o.security&&await xe({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=Z(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ge(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:Z,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var h=te(w());var re=e=>(e.client??h).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),oe=e=>(e.client??h).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var $e={};var Ve={};var qt=(e,r)=>(d.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),h.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),d.setConfig({baseUrl:r?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),h.setConfig({baseUrl:r?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:d,agentsV2Client:h}),kt=async(e,r,t)=>{let s=await B({client:e.agentsV1Client,path:{id:r},body:t});if(s.error)throw new Error(s.error.error);return s.data.execution_id},He=async(e,r)=>{let t=await $({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},Fe=async(e,r)=>{let t=await V({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);if(t.data.error)throw new Error(t.data.error);return t.data.execution_result||{}},Dt=async(e,r,t=1e3,s=36e5)=>{for(var i=Math.floor(s/t);i>0;){let a=await He(e,r),n=a.status;if(n==="completed")return await Fe(e,r);if(n==="failed"||n==="cancelled")throw new Error(`Execution ${r} ended with status: ${n}${a.reason?" - "+a.reason:""}`);await new Promise(o=>setTimeout(o,t)),i--;}throw new Error(`Execution ${r} timed out after ${s}ms`)},Ut=async(e,r)=>{let t=await H({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},vt=async(e,r,t)=>{let s=await K({client:e.agentsV1Client,path:{id:r},body:{files:t}});if(s.error)throw new Error(s.error.error);return s.data},zt=async(e,r)=>{let t=await F({client:e.agentsV1Client,query:r?{organization_id:r}:void 0});if(t.error)throw new Error(t.error.error);return t.data},he=async e=>{let r=await X({client:e.agentsV1Client});if(r.error){let t=typeof r.error=="object"&&"error"in r.error?r.error.error:typeof r.error=="string"?r.error:JSON.stringify(r.error);throw new Error(t||"Unknown error")}if(!r.data)throw new Error("Public key not found");return r.data},_t=async(e,r)=>{let t={...r};if(r.credentials&&r.credentials.length>0){let i=await he(e);t.credentials=r.credentials.map(a=>({...a,data:D(a.data,i)}));}let s=await M({client:e.agentsV1Client,body:t});if(s.error)throw new Error(s.error.error);return s.data},Gt=async(e,r)=>{let t=await W({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},jt=async(e,r,t)=>{let s={...t};if(t.credentials_to_add&&t.credentials_to_add.length>0){let a=await he(e);s.credentials_to_add=t.credentials_to_add.map(n=>({...n,data:D(n.data,a)}));}let i=await Q({client:e.agentsV1Client,path:{profile_id:r},body:s});if(i.error)throw new Error(i.error.error);return i.data},It=async(e,r)=>{let t=await N({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},Kt=async(e,r,t)=>{let s=await re({client:e.agentsV2Client,path:{executionId:r},query:{limit:t,order:"desc"}});if(s.error)throw console.error(s.error),new Error(s.error.error);return s.data},Bt=async(e,r,t)=>{let s=await oe({client:e.agentsV2Client,path:{executionId:r},body:{message:t}});if(s.error)throw console.error(s.error),new Error(s.error.error)};
2
- exports.AgentsV1SDK=L;exports.AgentsV1Types=$e;exports.AgentsV2SDK=ne;exports.AgentsV2Types=Ve;exports.AsteroidClient=qt;exports.addMessageToExecution=Bt;exports.createAgentProfile=_t;exports.deleteAgentProfile=It;exports.executeAgent=kt;exports.getAgentProfile=Gt;exports.getAgentProfiles=zt;exports.getBrowserSessionRecording=Ut;exports.getCredentialsPublicKey=he;exports.getExecutionResult=Fe;exports.getExecutionStatus=He;exports.getLastNExecutionActivities=Kt;exports.updateAgentProfile=jt;exports.uploadExecutionFiles=vt;exports.waitForExecutionResult=Dt;
1
+ 'use strict';var E=require('fs'),Re=require('path'),k=require('node-forge');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var E__default=/*#__PURE__*/_interopDefault(E);var Re__default=/*#__PURE__*/_interopDefault(Re);var k__namespace=/*#__PURE__*/_interopNamespace(k);var be=Object.defineProperty;var pe=(e,t)=>{for(var r in t)be(e,r,{get:t[r],enumerable:true});};function v(e,t){try{let s=k__namespace.pki.publicKeyFromPem(t).encrypt(e,"RSAES-PKCS1-V1_5");return k__namespace.util.encode64(s)}catch(r){throw console.error("Encryption failed:",r),new Error("Failed to encrypt: "+(r instanceof Error?r.message:"unknown error"))}}var Y={};pe(Y,{createAgentProfile:()=>W,deleteAgentProfile:()=>Q,executeAgent:()=>_e,executeAgentStructured:()=>B,getAgentProfile:()=>X,getAgentProfiles:()=>N,getBrowserSessionRecording:()=>M,getCredentialsPublicKey:()=>J,getExecutionResult:()=>H,getExecutionStatus:()=>V,getOpenApi:()=>ve,healthCheck:()=>ze,updateAgentProfile:()=>L,uploadExecutionFiles:()=>$});var le=(e,t,r)=>{typeof r=="string"||r instanceof Blob?e.append(t,r):r instanceof Date?e.append(t,r.toISOString()):e.append(t,JSON.stringify(r));};var z={bodySerializer:e=>{let t=new FormData;return Object.entries(e).forEach(([r,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>le(t,r,i)):le(t,r,s));}),t}},_={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var ce=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var Pe=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Ce=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Oe=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},G=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(Ce(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=Pe(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):P({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},P=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},j=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,A])=>{p=[...p,d,e?A:encodeURIComponent(A)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Oe(s),n=Object.entries(i).map(([p,u])=>P({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var we=/\{[^{}]+\}/g,Te=({path:e,url:t})=>{let r=t,s=t.match(we);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,G({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,j({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${P({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},ue=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=G({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=j({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=P({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},de=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},qe=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,ye=async({security:e,...t})=>{for(let r of e){if(qe(t,r.name))continue;let s=await ce(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},I=e=>ke({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:ue(e.querySerializer),url:e.url}),ke=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=Te({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},K=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=D(e.headers,t.headers),r},D=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},C=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},fe=()=>({error:new C,request:new C,response:new C}),De=ue({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Ue={"Content-Type":"application/json"},O=(e={})=>({..._,headers:Ue,parseAs:"auto",querySerializer:De,...e});var F=(e={})=>{let t=K(O(),e),r=()=>({...t}),s=o=>(t=K(t,o),r()),i=fe(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:D(t.headers,o.headers),serializedBody:void 0};n.security&&await ye({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=I(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let A=n.fetch,l=await A(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let h={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...h};let c=(n.parseAs==="auto"?de(l.headers.get("Content-Type")):n.parseAs)??"json",g;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":g=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...h}}return c==="json"&&(n.responseValidator&&await n.responseValidator(g),n.responseTransformer&&(g=await n.responseTransformer(g))),n.responseStyle==="data"?g:{data:g,...h}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let b=S??R,x=b;for(let c of i.error._fns)c&&(x=await c(b,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...h}};return {buildUrl:I,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var y=F(O({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var ve=e=>(e?.client??y).get({url:"/openapi.yaml",...e}),$=e=>(e.client??y).post({...z,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),ze=e=>(e?.client??y).get({url:"/health",...e}),_e=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),B=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),V=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),H=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),M=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),N=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),W=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),Q=e=>(e.client??y).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),X=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),L=e=>(e.client??y).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),J=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ae={};pe(ae,{activitiesGet:()=>oe,contextFilesGet:()=>se,userMessagesAdd:()=>ie});var ge={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var xe=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var Ge=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},je=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ie=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Z=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(je(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=Ge(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):w({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},w=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},ee=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,A])=>{p=[...p,d,e?A:encodeURIComponent(A)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Ie(s),n=Object.entries(i).map(([p,u])=>w({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var Ke=/\{[^{}]+\}/g,Fe=({path:e,url:t})=>{let r=t,s=t.match(Ke);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,Z({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,ee({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${w({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},Ae=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=Z({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=ee({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=w({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},he=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},$e=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,me=async({security:e,...t})=>{for(let r of e){if($e(t,r.name))continue;let s=await xe(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},te=e=>Be({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:Ae(e.querySerializer),url:e.url}),Be=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=Fe({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},re=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=U(e.headers,t.headers),r},U=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},T=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},Ee=()=>({error:new T,request:new T,response:new T}),Ve=Ae({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),He={"Content-Type":"application/json"},q=(e={})=>({...ge,headers:He,parseAs:"auto",querySerializer:Ve,...e});var ne=(e={})=>{let t=re(q(),e),r=()=>({...t}),s=o=>(t=re(t,o),r()),i=Ee(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:U(t.headers,o.headers),serializedBody:void 0};n.security&&await me({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=te(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let A=n.fetch,l=await A(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let h={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...h};let c=(n.parseAs==="auto"?he(l.headers.get("Content-Type")):n.parseAs)??"json",g;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":g=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...h}}return c==="json"&&(n.responseValidator&&await n.responseValidator(g),n.responseTransformer&&(g=await n.responseTransformer(g))),n.responseStyle==="data"?g:{data:g,...h}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let b=S??R,x=b;for(let c of i.error._fns)c&&(x=await c(b,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...h}};return {buildUrl:te,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var m=ne(q());var oe=e=>(e.client??m).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),se=e=>(e.client??m).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/context-files",...e}),ie=e=>(e.client??m).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var Me={};var Ne={};var We=(e,t)=>{if(e.error){let r;throw typeof e.error=="object"&&e.error!==null&&"error"in e.error?r=e.error.error:typeof e.error=="string"?r=e.error:r=JSON.stringify(e.error),new Error(r||"Unknown error")}if(e.data===void 0)throw new Error(t||"No response data received");return e.data},f=async(e,t,r)=>{try{let s=await e();return We(s,r)}catch(s){throw s instanceof Error?s.message.includes("No response data received")||s.message.startsWith("Failed to")?s:new Error(`Failed to ${t}: ${s.message}`):new Error(`Failed to ${t}: Unknown error`)}},Gt=(e,t)=>(y.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),m.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),y.setConfig({baseUrl:t?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),m.setConfig({baseUrl:t?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:y,agentsV2Client:m}),jt=async(e,t,r)=>(await f(()=>B({client:e.agentsV1Client,path:{id:t},body:r}),"execute agent")).execution_id,Qe=async(e,t)=>f(()=>V({client:e.agentsV1Client,path:{id:t}}),"get execution status"),Xe=async(e,t)=>{let r=await f(()=>H({client:e.agentsV1Client,path:{id:t}}),"get execution result");if(r.error)throw new Error(r.error);return r.execution_result||{}},It=async(e,t,r=1e3,s=36e5)=>{for(var i=Math.floor(s/r);i>0;){let a=await Qe(e,t),o=a.status;if(o==="completed")return await Xe(e,t);if(o==="failed"||o==="cancelled")throw new Error(`Execution ${t} ended with status: ${o}${a.reason?" - "+a.reason:""}`);await new Promise(n=>setTimeout(n,r)),i--;}throw new Error(`Execution ${t} timed out after ${s}ms`)},Kt=async(e,t)=>f(()=>M({client:e.agentsV1Client,path:{id:t}}),"get browser session recording"),Ft=async(e,t,r)=>f(()=>$({client:e.agentsV1Client,path:{id:t},body:{files:r}}),"upload execution files"),$t=async(e,t)=>f(()=>N({client:e.agentsV1Client,query:t?{organization_id:t}:void 0}),"get agent profiles"),Se=async e=>f(()=>J({client:e.agentsV1Client}),"get credentials public key","Public key not found"),Bt=async(e,t)=>{let r={...t};if(t.credentials&&t.credentials.length>0){let s=await Se(e);r.credentials=t.credentials.map(i=>({...i,data:v(i.data,s)}));}return f(()=>W({client:e.agentsV1Client,body:r}),"create agent profile")},Vt=async(e,t)=>f(()=>X({client:e.agentsV1Client,path:{profile_id:t}}),"get agent profile"),Ht=async(e,t,r)=>{let s={...r};if(r.credentials_to_add&&r.credentials_to_add.length>0){let i=await Se(e);s.credentials_to_add=r.credentials_to_add.map(a=>({...a,data:v(a.data,i)}));}return f(()=>L({client:e.agentsV1Client,path:{profile_id:t},body:s}),"update agent profile")},Mt=async(e,t)=>f(()=>Q({client:e.agentsV1Client,path:{profile_id:t}}),"delete agent profile"),Nt=async(e,t,r)=>f(()=>oe({client:e.agentsV2Client,path:{executionId:t},query:{limit:r,order:"desc"}}),"get execution activities"),Wt=async(e,t,r)=>{await f(()=>ie({client:e.agentsV2Client,path:{executionId:t},body:{message:r}}),"add message to execution");},Qt=async(e,t)=>f(()=>se({client:e.agentsV2Client,path:{executionId:t}}),"get execution files"),Xt=async(e,t,r,s=true,i=30)=>{let a;E__default.default.existsSync(r)&&E__default.default.lstatSync(r).isDirectory()||r.endsWith("/")?a=Re__default.default.join(r,t.fileName):a=r;let o=Re__default.default.dirname(a);if(s&&!E__default.default.existsSync(o))E__default.default.mkdirSync(o,{recursive:true});else if(!s&&!E__default.default.existsSync(o))throw new Error(`Parent directory does not exist: ${o}`);try{let n=await fetch(t.signedUrl,{signal:AbortSignal.timeout(i*1e3)});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);let p=n.headers.get("content-length");if(p&&parseInt(p)!==t.fileSize)throw new Error(`Content length mismatch: expected ${t.fileSize}, got ${p}`);let u=await n.arrayBuffer(),d=Buffer.from(u);if(d.length!==t.fileSize)throw new Error(`Downloaded file size mismatch: expected ${t.fileSize}, got ${d.length}`);return E__default.default.writeFileSync(a,d),a}catch(n){throw n instanceof Error?new Error(`Failed to download file: ${n.message}`):new Error("Failed to download file: Unknown error")}};
2
+ exports.AgentsV1SDK=Y;exports.AgentsV1Types=Me;exports.AgentsV2SDK=ae;exports.AgentsV2Types=Ne;exports.AsteroidClient=Gt;exports.addMessageToExecution=Wt;exports.createAgentProfile=Bt;exports.deleteAgentProfile=Mt;exports.downloadExecutionFile=Xt;exports.executeAgent=jt;exports.getAgentProfile=Vt;exports.getAgentProfiles=$t;exports.getBrowserSessionRecording=Kt;exports.getCredentialsPublicKey=Se;exports.getExecutionFiles=Qt;exports.getExecutionResult=Xe;exports.getExecutionStatus=Qe;exports.getLastNExecutionActivities=Nt;exports.updateAgentProfile=Ht;exports.uploadExecutionFiles=Ft;exports.waitForExecutionResult=It;
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import*as T from'node-forge';var me=Object.defineProperty;var se=(e,r)=>{for(var t in r)me(e,t,{get:r[t],enumerable:true});};function D(e,r){try{let s=T.pki.publicKeyFromPem(r).encrypt(e,"RSAES-PKCS1-V1_5");return T.util.encode64(s)}catch(t){throw console.error("Encryption failed:",t),new Error("Failed to encrypt: "+(t instanceof Error?t.message:"unknown error"))}}var L={};se(L,{createAgentProfile:()=>M,deleteAgentProfile:()=>N,executeAgent:()=>De,executeAgentStructured:()=>B,getAgentProfile:()=>W,getAgentProfiles:()=>F,getBrowserSessionRecording:()=>H,getCredentialsPublicKey:()=>X,getExecutionResult:()=>V,getExecutionStatus:()=>$,getOpenApi:()=>qe,healthCheck:()=>ke,updateAgentProfile:()=>Q,uploadExecutionFiles:()=>K});var ie=(e,r,t)=>{typeof t=="string"||t instanceof Blob?e.append(r,t):t instanceof Date?e.append(r,t.toISOString()):e.append(r,JSON.stringify(t));};var U={bodySerializer:e=>{let r=new FormData;return Object.entries(e).forEach(([t,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>ie(r,t,i)):ie(r,t,s));}),r}},v={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ae=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ee=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Re=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Se=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},z=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(Re(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ee(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):S({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},S=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},_=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=Se(s),o=Object.entries(i).map(([p,u])=>S({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var Pe=/\{[^{}]+\}/g,be=({path:e,url:r})=>{let t=r,s=r.match(Pe);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,z({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,_({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${S({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},pe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=z({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=_({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=S({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ce=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},Ce=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,le=async({security:e,...r})=>{for(let t of e){if(Ce(r,t.name))continue;let s=await ae(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},G=e=>Oe({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:pe(e.querySerializer),url:e.url}),Oe=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=be({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},j=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=q(e.headers,r.headers),t},q=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},P=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},ue=()=>({error:new P,request:new P,response:new P}),we=pe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Te={"Content-Type":"application/json"},b=(e={})=>({...v,headers:Te,parseAs:"auto",querySerializer:we,...e});var I=(e={})=>{let r=j(b(),e),t=()=>({...r}),s=n=>(r=j(r,n),t()),i=ue(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:q(r.headers,n.headers),serializedBody:void 0};o.security&&await le({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=G(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ce(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:G,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var d=I(b({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var qe=e=>(e?.client??d).get({url:"/openapi.yaml",...e}),K=e=>(e.client??d).post({...U,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),ke=e=>(e?.client??d).get({url:"/health",...e}),De=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),B=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),$=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),V=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),H=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),F=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),M=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),N=e=>(e.client??d).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),W=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),Q=e=>(e.client??d).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),X=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ne={};se(ne,{activitiesGet:()=>re,userMessagesAdd:()=>oe});var de={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ye=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ue=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},ve=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},ze=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},J=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(ve(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ue(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):C({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},C=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},Y=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=ze(s),o=Object.entries(i).map(([p,u])=>C({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var _e=/\{[^{}]+\}/g,Ge=({path:e,url:r})=>{let t=r,s=r.match(_e);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,J({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,Y({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${C({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},fe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=J({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=Y({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=C({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ge=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},je=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,xe=async({security:e,...r})=>{for(let t of e){if(je(r,t.name))continue;let s=await ye(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},Z=e=>Ie({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:fe(e.querySerializer),url:e.url}),Ie=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=Ge({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},ee=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=k(e.headers,r.headers),t},k=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},O=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},Ae=()=>({error:new O,request:new O,response:new O}),Ke=fe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Be={"Content-Type":"application/json"},w=(e={})=>({...de,headers:Be,parseAs:"auto",querySerializer:Ke,...e});var te=(e={})=>{let r=ee(w(),e),t=()=>({...r}),s=n=>(r=ee(r,n),t()),i=Ae(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:k(r.headers,n.headers),serializedBody:void 0};o.security&&await xe({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=Z(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ge(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:Z,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var h=te(w());var re=e=>(e.client??h).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),oe=e=>(e.client??h).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var $e={};var Ve={};var qt=(e,r)=>(d.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),h.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),d.setConfig({baseUrl:r?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),h.setConfig({baseUrl:r?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:d,agentsV2Client:h}),kt=async(e,r,t)=>{let s=await B({client:e.agentsV1Client,path:{id:r},body:t});if(s.error)throw new Error(s.error.error);return s.data.execution_id},He=async(e,r)=>{let t=await $({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},Fe=async(e,r)=>{let t=await V({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);if(t.data.error)throw new Error(t.data.error);return t.data.execution_result||{}},Dt=async(e,r,t=1e3,s=36e5)=>{for(var i=Math.floor(s/t);i>0;){let a=await He(e,r),n=a.status;if(n==="completed")return await Fe(e,r);if(n==="failed"||n==="cancelled")throw new Error(`Execution ${r} ended with status: ${n}${a.reason?" - "+a.reason:""}`);await new Promise(o=>setTimeout(o,t)),i--;}throw new Error(`Execution ${r} timed out after ${s}ms`)},Ut=async(e,r)=>{let t=await H({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},vt=async(e,r,t)=>{let s=await K({client:e.agentsV1Client,path:{id:r},body:{files:t}});if(s.error)throw new Error(s.error.error);return s.data},zt=async(e,r)=>{let t=await F({client:e.agentsV1Client,query:r?{organization_id:r}:void 0});if(t.error)throw new Error(t.error.error);return t.data},he=async e=>{let r=await X({client:e.agentsV1Client});if(r.error){let t=typeof r.error=="object"&&"error"in r.error?r.error.error:typeof r.error=="string"?r.error:JSON.stringify(r.error);throw new Error(t||"Unknown error")}if(!r.data)throw new Error("Public key not found");return r.data},_t=async(e,r)=>{let t={...r};if(r.credentials&&r.credentials.length>0){let i=await he(e);t.credentials=r.credentials.map(a=>({...a,data:D(a.data,i)}));}let s=await M({client:e.agentsV1Client,body:t});if(s.error)throw new Error(s.error.error);return s.data},Gt=async(e,r)=>{let t=await W({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},jt=async(e,r,t)=>{let s={...t};if(t.credentials_to_add&&t.credentials_to_add.length>0){let a=await he(e);s.credentials_to_add=t.credentials_to_add.map(n=>({...n,data:D(n.data,a)}));}let i=await Q({client:e.agentsV1Client,path:{profile_id:r},body:s});if(i.error)throw new Error(i.error.error);return i.data},It=async(e,r)=>{let t=await N({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},Kt=async(e,r,t)=>{let s=await re({client:e.agentsV2Client,path:{executionId:r},query:{limit:t,order:"desc"}});if(s.error)throw console.error(s.error),new Error(s.error.error);return s.data},Bt=async(e,r,t)=>{let s=await oe({client:e.agentsV2Client,path:{executionId:r},body:{message:t}});if(s.error)throw console.error(s.error),new Error(s.error.error)};
2
- export{L as AgentsV1SDK,$e as AgentsV1Types,ne as AgentsV2SDK,Ve as AgentsV2Types,qt as AsteroidClient,Bt as addMessageToExecution,_t as createAgentProfile,It as deleteAgentProfile,kt as executeAgent,Gt as getAgentProfile,zt as getAgentProfiles,Ut as getBrowserSessionRecording,he as getCredentialsPublicKey,Fe as getExecutionResult,He as getExecutionStatus,Kt as getLastNExecutionActivities,jt as updateAgentProfile,vt as uploadExecutionFiles,Dt as waitForExecutionResult};
1
+ import E from'fs';import Re from'path';import*as k from'node-forge';var be=Object.defineProperty;var pe=(e,t)=>{for(var r in t)be(e,r,{get:t[r],enumerable:true});};function v(e,t){try{let s=k.pki.publicKeyFromPem(t).encrypt(e,"RSAES-PKCS1-V1_5");return k.util.encode64(s)}catch(r){throw console.error("Encryption failed:",r),new Error("Failed to encrypt: "+(r instanceof Error?r.message:"unknown error"))}}var Y={};pe(Y,{createAgentProfile:()=>W,deleteAgentProfile:()=>Q,executeAgent:()=>_e,executeAgentStructured:()=>B,getAgentProfile:()=>X,getAgentProfiles:()=>N,getBrowserSessionRecording:()=>M,getCredentialsPublicKey:()=>J,getExecutionResult:()=>H,getExecutionStatus:()=>V,getOpenApi:()=>ve,healthCheck:()=>ze,updateAgentProfile:()=>L,uploadExecutionFiles:()=>$});var le=(e,t,r)=>{typeof r=="string"||r instanceof Blob?e.append(t,r):r instanceof Date?e.append(t,r.toISOString()):e.append(t,JSON.stringify(r));};var z={bodySerializer:e=>{let t=new FormData;return Object.entries(e).forEach(([r,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>le(t,r,i)):le(t,r,s));}),t}},_={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var ce=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var Pe=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Ce=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Oe=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},G=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(Ce(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=Pe(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):P({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},P=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},j=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,A])=>{p=[...p,d,e?A:encodeURIComponent(A)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Oe(s),n=Object.entries(i).map(([p,u])=>P({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var we=/\{[^{}]+\}/g,Te=({path:e,url:t})=>{let r=t,s=t.match(we);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,G({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,j({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${P({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},ue=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=G({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=j({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=P({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},de=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},qe=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,ye=async({security:e,...t})=>{for(let r of e){if(qe(t,r.name))continue;let s=await ce(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},I=e=>ke({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:ue(e.querySerializer),url:e.url}),ke=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=Te({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},K=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=D(e.headers,t.headers),r},D=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},C=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},fe=()=>({error:new C,request:new C,response:new C}),De=ue({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Ue={"Content-Type":"application/json"},O=(e={})=>({..._,headers:Ue,parseAs:"auto",querySerializer:De,...e});var F=(e={})=>{let t=K(O(),e),r=()=>({...t}),s=o=>(t=K(t,o),r()),i=fe(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:D(t.headers,o.headers),serializedBody:void 0};n.security&&await ye({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=I(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let A=n.fetch,l=await A(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let h={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...h};let c=(n.parseAs==="auto"?de(l.headers.get("Content-Type")):n.parseAs)??"json",g;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":g=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...h}}return c==="json"&&(n.responseValidator&&await n.responseValidator(g),n.responseTransformer&&(g=await n.responseTransformer(g))),n.responseStyle==="data"?g:{data:g,...h}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let b=S??R,x=b;for(let c of i.error._fns)c&&(x=await c(b,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...h}};return {buildUrl:I,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var y=F(O({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var ve=e=>(e?.client??y).get({url:"/openapi.yaml",...e}),$=e=>(e.client??y).post({...z,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),ze=e=>(e?.client??y).get({url:"/health",...e}),_e=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),B=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),V=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),H=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),M=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),N=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),W=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),Q=e=>(e.client??y).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),X=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),L=e=>(e.client??y).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),J=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ae={};pe(ae,{activitiesGet:()=>oe,contextFilesGet:()=>se,userMessagesAdd:()=>ie});var ge={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var xe=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var Ge=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},je=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ie=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Z=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(je(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=Ge(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):w({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},w=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},ee=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,A])=>{p=[...p,d,e?A:encodeURIComponent(A)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Ie(s),n=Object.entries(i).map(([p,u])=>w({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var Ke=/\{[^{}]+\}/g,Fe=({path:e,url:t})=>{let r=t,s=t.match(Ke);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,Z({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,ee({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${w({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},Ae=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=Z({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=ee({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=w({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},he=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},$e=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,me=async({security:e,...t})=>{for(let r of e){if($e(t,r.name))continue;let s=await xe(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},te=e=>Be({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:Ae(e.querySerializer),url:e.url}),Be=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=Fe({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},re=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=U(e.headers,t.headers),r},U=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},T=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},Ee=()=>({error:new T,request:new T,response:new T}),Ve=Ae({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),He={"Content-Type":"application/json"},q=(e={})=>({...ge,headers:He,parseAs:"auto",querySerializer:Ve,...e});var ne=(e={})=>{let t=re(q(),e),r=()=>({...t}),s=o=>(t=re(t,o),r()),i=Ee(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:U(t.headers,o.headers),serializedBody:void 0};n.security&&await me({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=te(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let A=n.fetch,l=await A(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let h={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...h};let c=(n.parseAs==="auto"?he(l.headers.get("Content-Type")):n.parseAs)??"json",g;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":g=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...h}}return c==="json"&&(n.responseValidator&&await n.responseValidator(g),n.responseTransformer&&(g=await n.responseTransformer(g))),n.responseStyle==="data"?g:{data:g,...h}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let b=S??R,x=b;for(let c of i.error._fns)c&&(x=await c(b,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...h}};return {buildUrl:te,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var m=ne(q());var oe=e=>(e.client??m).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),se=e=>(e.client??m).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/context-files",...e}),ie=e=>(e.client??m).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var Me={};var Ne={};var We=(e,t)=>{if(e.error){let r;throw typeof e.error=="object"&&e.error!==null&&"error"in e.error?r=e.error.error:typeof e.error=="string"?r=e.error:r=JSON.stringify(e.error),new Error(r||"Unknown error")}if(e.data===void 0)throw new Error(t||"No response data received");return e.data},f=async(e,t,r)=>{try{let s=await e();return We(s,r)}catch(s){throw s instanceof Error?s.message.includes("No response data received")||s.message.startsWith("Failed to")?s:new Error(`Failed to ${t}: ${s.message}`):new Error(`Failed to ${t}: Unknown error`)}},Gt=(e,t)=>(y.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),m.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),y.setConfig({baseUrl:t?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),m.setConfig({baseUrl:t?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:y,agentsV2Client:m}),jt=async(e,t,r)=>(await f(()=>B({client:e.agentsV1Client,path:{id:t},body:r}),"execute agent")).execution_id,Qe=async(e,t)=>f(()=>V({client:e.agentsV1Client,path:{id:t}}),"get execution status"),Xe=async(e,t)=>{let r=await f(()=>H({client:e.agentsV1Client,path:{id:t}}),"get execution result");if(r.error)throw new Error(r.error);return r.execution_result||{}},It=async(e,t,r=1e3,s=36e5)=>{for(var i=Math.floor(s/r);i>0;){let a=await Qe(e,t),o=a.status;if(o==="completed")return await Xe(e,t);if(o==="failed"||o==="cancelled")throw new Error(`Execution ${t} ended with status: ${o}${a.reason?" - "+a.reason:""}`);await new Promise(n=>setTimeout(n,r)),i--;}throw new Error(`Execution ${t} timed out after ${s}ms`)},Kt=async(e,t)=>f(()=>M({client:e.agentsV1Client,path:{id:t}}),"get browser session recording"),Ft=async(e,t,r)=>f(()=>$({client:e.agentsV1Client,path:{id:t},body:{files:r}}),"upload execution files"),$t=async(e,t)=>f(()=>N({client:e.agentsV1Client,query:t?{organization_id:t}:void 0}),"get agent profiles"),Se=async e=>f(()=>J({client:e.agentsV1Client}),"get credentials public key","Public key not found"),Bt=async(e,t)=>{let r={...t};if(t.credentials&&t.credentials.length>0){let s=await Se(e);r.credentials=t.credentials.map(i=>({...i,data:v(i.data,s)}));}return f(()=>W({client:e.agentsV1Client,body:r}),"create agent profile")},Vt=async(e,t)=>f(()=>X({client:e.agentsV1Client,path:{profile_id:t}}),"get agent profile"),Ht=async(e,t,r)=>{let s={...r};if(r.credentials_to_add&&r.credentials_to_add.length>0){let i=await Se(e);s.credentials_to_add=r.credentials_to_add.map(a=>({...a,data:v(a.data,i)}));}return f(()=>L({client:e.agentsV1Client,path:{profile_id:t},body:s}),"update agent profile")},Mt=async(e,t)=>f(()=>Q({client:e.agentsV1Client,path:{profile_id:t}}),"delete agent profile"),Nt=async(e,t,r)=>f(()=>oe({client:e.agentsV2Client,path:{executionId:t},query:{limit:r,order:"desc"}}),"get execution activities"),Wt=async(e,t,r)=>{await f(()=>ie({client:e.agentsV2Client,path:{executionId:t},body:{message:r}}),"add message to execution");},Qt=async(e,t)=>f(()=>se({client:e.agentsV2Client,path:{executionId:t}}),"get execution files"),Xt=async(e,t,r,s=true,i=30)=>{let a;E.existsSync(r)&&E.lstatSync(r).isDirectory()||r.endsWith("/")?a=Re.join(r,t.fileName):a=r;let o=Re.dirname(a);if(s&&!E.existsSync(o))E.mkdirSync(o,{recursive:true});else if(!s&&!E.existsSync(o))throw new Error(`Parent directory does not exist: ${o}`);try{let n=await fetch(t.signedUrl,{signal:AbortSignal.timeout(i*1e3)});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);let p=n.headers.get("content-length");if(p&&parseInt(p)!==t.fileSize)throw new Error(`Content length mismatch: expected ${t.fileSize}, got ${p}`);let u=await n.arrayBuffer(),d=Buffer.from(u);if(d.length!==t.fileSize)throw new Error(`Downloaded file size mismatch: expected ${t.fileSize}, got ${d.length}`);return E.writeFileSync(a,d),a}catch(n){throw n instanceof Error?new Error(`Failed to download file: ${n.message}`):new Error("Failed to download file: Unknown error")}};
2
+ export{Y as AgentsV1SDK,Me as AgentsV1Types,ae as AgentsV2SDK,Ne as AgentsV2Types,Gt as AsteroidClient,Wt as addMessageToExecution,Bt as createAgentProfile,Mt as deleteAgentProfile,Xt as downloadExecutionFile,jt as executeAgent,Vt as getAgentProfile,$t as getAgentProfiles,Kt as getBrowserSessionRecording,Se as getCredentialsPublicKey,Qt as getExecutionFiles,Xe as getExecutionResult,Qe as getExecutionStatus,Nt as getLastNExecutionActivities,Ht as updateAgentProfile,Ft as uploadExecutionFiles,It as waitForExecutionResult};
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "asteroid-odyssey",
3
- "version": "1.3.3",
3
+ "version": "1.3.7",
4
4
  "description": "SDK for interacting with Asteroid Agents API",
5
- "main": "dist/index.cjs",
5
+ "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
7
7
  "types": "dist/index.d.ts",
8
8
  "files": [
@@ -21,20 +21,20 @@
21
21
  ".": {
22
22
  "types": "./dist/index.d.ts",
23
23
  "import": "./dist/index.mjs",
24
- "require": "./dist/index.cjs"
24
+ "require": "./dist/index.js"
25
25
  }
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.13.4",
29
29
  "@types/node-forge": "^1.3.11",
30
30
  "openapi-typescript-codegen": "^0.29.0",
31
- "ts-node": "^10.9.2",
32
- "typescript": "^5.7.3",
33
31
  "prettier": "^3.6.2",
34
- "tsup": "^8.0.2"
32
+ "ts-node": "^10.9.2",
33
+ "tsup": "^8.0.2",
34
+ "typescript": "^5.7.3"
35
35
  },
36
36
  "dependencies": {
37
- "@hey-api/openapi-ts": "^0.80.15",
37
+ "@hey-api/openapi-ts": "^0.82.0",
38
38
  "node-forge": "^1.3.1"
39
39
  },
40
40
  "scripts": {