cyberdesk 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch';
2
- import type { HealthCheckV1HealthGetData, DatabaseHealthCheckV1HealthDbGetData, ListMachinesV1MachinesGetData, CreateMachineV1MachinesPostData, DeleteMachineV1MachinesMachineIdDeleteData, GetMachineV1MachinesMachineIdGetData, UpdateMachineV1MachinesMachineIdPatchData, ListWorkflowsV1WorkflowsGetData, CreateWorkflowV1WorkflowsPostData, DeleteWorkflowV1WorkflowsWorkflowIdDeleteData, GetWorkflowV1WorkflowsWorkflowIdGetData, UpdateWorkflowV1WorkflowsWorkflowIdPatchData, GetWorkflowVersionsV1WorkflowsWorkflowIdVersionsGetData, ListRunsV1RunsGetData, CreateRunV1RunsPostData, DeleteRunV1RunsRunIdDeleteData, GetRunV1RunsRunIdGetData, UpdateRunV1RunsRunIdPatchData, ListRunAttachmentsV1RunAttachmentsGetData, CreateRunAttachmentV1RunAttachmentsPostData, DeleteRunAttachmentV1RunAttachmentsAttachmentIdDeleteData, GetRunAttachmentV1RunAttachmentsAttachmentIdGetData, UpdateRunAttachmentV1RunAttachmentsAttachmentIdPutData, DownloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGetData, ListConnectionsV1ConnectionsGetData, CreateConnectionV1ConnectionsPostData, DeleteConnectionV1ConnectionsConnectionIdDeleteData, GetConnectionV1ConnectionsConnectionIdGetData, UpdateConnectionV1ConnectionsConnectionIdPatchData, ListRequestLogsV1RequestLogsGetData, CreateRequestLogV1RequestLogsPostData, DeleteRequestLogV1RequestLogsLogIdDeleteData, GetRequestLogV1RequestLogsLogIdGetData, UpdateRequestLogV1RequestLogsLogIdPatchData, ListTrajectoriesV1TrajectoriesGetData, CreateTrajectoryV1TrajectoriesPostData, DeleteTrajectoryV1TrajectoriesTrajectoryIdDeleteData, GetTrajectoryV1TrajectoriesTrajectoryIdGetData, UpdateTrajectoryV1TrajectoriesTrajectoryIdPatchData, GetLatestTrajectoryForWorkflowV1WorkflowsWorkflowIdLatestTrajectoryGetData, GetScreenshotV1ComputerMachineIdDisplayScreenshotGetData, GetDisplayDimensionsV1ComputerMachineIdDisplayDimensionsGetData, KeyboardTypeV1ComputerMachineIdInputKeyboardTypePostData, KeyboardKeyV1ComputerMachineIdInputKeyboardKeyPostData, GetMousePositionV1ComputerMachineIdInputMousePositionGetData, MouseMoveV1ComputerMachineIdInputMouseMovePostData, MouseClickV1ComputerMachineIdInputMouseClickPostData, FsListV1ComputerMachineIdFsListGetData, FsReadV1ComputerMachineIdFsReadGetData, FsWriteV1ComputerMachineIdFsWritePostData, PowershellExecV1ComputerMachineIdShellPowershellExecPostData, PowershellSessionV1ComputerMachineIdShellPowershellSessionPostData, DummyTestEndpointV1TestPostData, RootGetData } from './types.gen';
2
+ import type { HealthCheckV1HealthGetData, DatabaseHealthCheckV1HealthDbGetData, ListMachinesV1MachinesGetData, CreateMachineV1MachinesPostData, DeleteMachineV1MachinesMachineIdDeleteData, GetMachineV1MachinesMachineIdGetData, UpdateMachineV1MachinesMachineIdPatchData, ListWorkflowsV1WorkflowsGetData, CreateWorkflowV1WorkflowsPostData, DeleteWorkflowV1WorkflowsWorkflowIdDeleteData, GetWorkflowV1WorkflowsWorkflowIdGetData, UpdateWorkflowV1WorkflowsWorkflowIdPatchData, GetWorkflowVersionsV1WorkflowsWorkflowIdVersionsGetData, ListRunsV1RunsGetData, CreateRunV1RunsPostData, DeleteRunV1RunsRunIdDeleteData, GetRunV1RunsRunIdGetData, UpdateRunV1RunsRunIdPatchData, ListRunAttachmentsV1RunAttachmentsGetData, CreateRunAttachmentV1RunAttachmentsPostData, DeleteRunAttachmentV1RunAttachmentsAttachmentIdDeleteData, GetRunAttachmentV1RunAttachmentsAttachmentIdGetData, UpdateRunAttachmentV1RunAttachmentsAttachmentIdPutData, GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetData, DownloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGetData, ListConnectionsV1ConnectionsGetData, CreateConnectionV1ConnectionsPostData, DeleteConnectionV1ConnectionsConnectionIdDeleteData, GetConnectionV1ConnectionsConnectionIdGetData, UpdateConnectionV1ConnectionsConnectionIdPatchData, ListRequestLogsV1RequestLogsGetData, CreateRequestLogV1RequestLogsPostData, DeleteRequestLogV1RequestLogsLogIdDeleteData, GetRequestLogV1RequestLogsLogIdGetData, UpdateRequestLogV1RequestLogsLogIdPatchData, ListTrajectoriesV1TrajectoriesGetData, CreateTrajectoryV1TrajectoriesPostData, DeleteTrajectoryV1TrajectoriesTrajectoryIdDeleteData, GetTrajectoryV1TrajectoriesTrajectoryIdGetData, UpdateTrajectoryV1TrajectoriesTrajectoryIdPatchData, GetLatestTrajectoryForWorkflowV1WorkflowsWorkflowIdLatestTrajectoryGetData, GetScreenshotV1ComputerMachineIdDisplayScreenshotGetData, GetDisplayDimensionsV1ComputerMachineIdDisplayDimensionsGetData, KeyboardTypeV1ComputerMachineIdInputKeyboardTypePostData, KeyboardKeyV1ComputerMachineIdInputKeyboardKeyPostData, GetMousePositionV1ComputerMachineIdInputMousePositionGetData, MouseMoveV1ComputerMachineIdInputMouseMovePostData, MouseClickV1ComputerMachineIdInputMouseClickPostData, FsListV1ComputerMachineIdFsListGetData, FsReadV1ComputerMachineIdFsReadGetData, FsWriteV1ComputerMachineIdFsWritePostData, PowershellExecV1ComputerMachineIdShellPowershellExecPostData, PowershellSessionV1ComputerMachineIdShellPowershellSessionPostData, DummyTestEndpointV1TestPostData, RootGetData } from './types.gen';
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -193,11 +193,22 @@ export declare const getRunAttachmentV1RunAttachmentsAttachmentIdGet: <ThrowOnEr
193
193
  * Currently only supports updating the expiration date.
194
194
  */
195
195
  export declare const updateRunAttachmentV1RunAttachmentsAttachmentIdPut: <ThrowOnError extends boolean = false>(options: Options<UpdateRunAttachmentV1RunAttachmentsAttachmentIdPutData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").RunAttachmentResponse, import("./types.gen").HttpValidationError, ThrowOnError>;
196
+ /**
197
+ * Get Run Attachment Download Url
198
+ * Get a signed download URL for a run attachment file.
199
+ *
200
+ * Returns a signed URL that triggers automatic download when accessed.
201
+ *
202
+ * Args:
203
+ * attachment_id: The ID of the attachment to download
204
+ * expires_in: URL expiration time in seconds (10-3600). Default: 300 (5 minutes)
205
+ */
206
+ export declare const getRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGet: <ThrowOnError extends boolean = false>(options: Options<GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").RunAttachmentDownloadUrlResponse, import("./types.gen").HttpValidationError, ThrowOnError>;
196
207
  /**
197
208
  * Download Run Attachment
198
209
  * Download a run attachment file.
199
210
  *
200
- * Returns the file content as a streaming response.
211
+ * Returns the raw file content as a streaming response.
201
212
  */
202
213
  export declare const downloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGet: <ThrowOnError extends boolean = false>(options: Options<DownloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGetData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<unknown, import("./types.gen").HttpValidationError, ThrowOnError>;
203
214
  /**
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  // This file is auto-generated by @hey-api/openapi-ts
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.fsWriteV1ComputerMachineIdFsWritePost = exports.fsReadV1ComputerMachineIdFsReadGet = exports.fsListV1ComputerMachineIdFsListGet = exports.mouseClickV1ComputerMachineIdInputMouseClickPost = exports.mouseMoveV1ComputerMachineIdInputMouseMovePost = exports.getMousePositionV1ComputerMachineIdInputMousePositionGet = exports.keyboardKeyV1ComputerMachineIdInputKeyboardKeyPost = exports.keyboardTypeV1ComputerMachineIdInputKeyboardTypePost = exports.getDisplayDimensionsV1ComputerMachineIdDisplayDimensionsGet = exports.getScreenshotV1ComputerMachineIdDisplayScreenshotGet = exports.getLatestTrajectoryForWorkflowV1WorkflowsWorkflowIdLatestTrajectoryGet = exports.updateTrajectoryV1TrajectoriesTrajectoryIdPatch = exports.getTrajectoryV1TrajectoriesTrajectoryIdGet = exports.deleteTrajectoryV1TrajectoriesTrajectoryIdDelete = exports.createTrajectoryV1TrajectoriesPost = exports.listTrajectoriesV1TrajectoriesGet = exports.updateRequestLogV1RequestLogsLogIdPatch = exports.getRequestLogV1RequestLogsLogIdGet = exports.deleteRequestLogV1RequestLogsLogIdDelete = exports.createRequestLogV1RequestLogsPost = exports.listRequestLogsV1RequestLogsGet = exports.updateConnectionV1ConnectionsConnectionIdPatch = exports.getConnectionV1ConnectionsConnectionIdGet = exports.deleteConnectionV1ConnectionsConnectionIdDelete = exports.createConnectionV1ConnectionsPost = exports.listConnectionsV1ConnectionsGet = exports.downloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGet = exports.updateRunAttachmentV1RunAttachmentsAttachmentIdPut = exports.getRunAttachmentV1RunAttachmentsAttachmentIdGet = exports.deleteRunAttachmentV1RunAttachmentsAttachmentIdDelete = exports.createRunAttachmentV1RunAttachmentsPost = exports.listRunAttachmentsV1RunAttachmentsGet = exports.updateRunV1RunsRunIdPatch = exports.getRunV1RunsRunIdGet = exports.deleteRunV1RunsRunIdDelete = exports.createRunV1RunsPost = exports.listRunsV1RunsGet = exports.getWorkflowVersionsV1WorkflowsWorkflowIdVersionsGet = exports.updateWorkflowV1WorkflowsWorkflowIdPatch = exports.getWorkflowV1WorkflowsWorkflowIdGet = exports.deleteWorkflowV1WorkflowsWorkflowIdDelete = exports.createWorkflowV1WorkflowsPost = exports.listWorkflowsV1WorkflowsGet = exports.updateMachineV1MachinesMachineIdPatch = exports.getMachineV1MachinesMachineIdGet = exports.deleteMachineV1MachinesMachineIdDelete = exports.createMachineV1MachinesPost = exports.listMachinesV1MachinesGet = exports.databaseHealthCheckV1HealthDbGet = exports.healthCheckV1HealthGet = void 0;
5
- exports.rootGet = exports.dummyTestEndpointV1TestPost = exports.powershellSessionV1ComputerMachineIdShellPowershellSessionPost = exports.powershellExecV1ComputerMachineIdShellPowershellExecPost = void 0;
4
+ exports.fsReadV1ComputerMachineIdFsReadGet = exports.fsListV1ComputerMachineIdFsListGet = exports.mouseClickV1ComputerMachineIdInputMouseClickPost = exports.mouseMoveV1ComputerMachineIdInputMouseMovePost = exports.getMousePositionV1ComputerMachineIdInputMousePositionGet = exports.keyboardKeyV1ComputerMachineIdInputKeyboardKeyPost = exports.keyboardTypeV1ComputerMachineIdInputKeyboardTypePost = exports.getDisplayDimensionsV1ComputerMachineIdDisplayDimensionsGet = exports.getScreenshotV1ComputerMachineIdDisplayScreenshotGet = exports.getLatestTrajectoryForWorkflowV1WorkflowsWorkflowIdLatestTrajectoryGet = exports.updateTrajectoryV1TrajectoriesTrajectoryIdPatch = exports.getTrajectoryV1TrajectoriesTrajectoryIdGet = exports.deleteTrajectoryV1TrajectoriesTrajectoryIdDelete = exports.createTrajectoryV1TrajectoriesPost = exports.listTrajectoriesV1TrajectoriesGet = exports.updateRequestLogV1RequestLogsLogIdPatch = exports.getRequestLogV1RequestLogsLogIdGet = exports.deleteRequestLogV1RequestLogsLogIdDelete = exports.createRequestLogV1RequestLogsPost = exports.listRequestLogsV1RequestLogsGet = exports.updateConnectionV1ConnectionsConnectionIdPatch = exports.getConnectionV1ConnectionsConnectionIdGet = exports.deleteConnectionV1ConnectionsConnectionIdDelete = exports.createConnectionV1ConnectionsPost = exports.listConnectionsV1ConnectionsGet = exports.downloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGet = exports.getRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGet = exports.updateRunAttachmentV1RunAttachmentsAttachmentIdPut = exports.getRunAttachmentV1RunAttachmentsAttachmentIdGet = exports.deleteRunAttachmentV1RunAttachmentsAttachmentIdDelete = exports.createRunAttachmentV1RunAttachmentsPost = exports.listRunAttachmentsV1RunAttachmentsGet = exports.updateRunV1RunsRunIdPatch = exports.getRunV1RunsRunIdGet = exports.deleteRunV1RunsRunIdDelete = exports.createRunV1RunsPost = exports.listRunsV1RunsGet = exports.getWorkflowVersionsV1WorkflowsWorkflowIdVersionsGet = exports.updateWorkflowV1WorkflowsWorkflowIdPatch = exports.getWorkflowV1WorkflowsWorkflowIdGet = exports.deleteWorkflowV1WorkflowsWorkflowIdDelete = exports.createWorkflowV1WorkflowsPost = exports.listWorkflowsV1WorkflowsGet = exports.updateMachineV1MachinesMachineIdPatch = exports.getMachineV1MachinesMachineIdGet = exports.deleteMachineV1MachinesMachineIdDelete = exports.createMachineV1MachinesPost = exports.listMachinesV1MachinesGet = exports.databaseHealthCheckV1HealthDbGet = exports.healthCheckV1HealthGet = void 0;
5
+ exports.rootGet = exports.dummyTestEndpointV1TestPost = exports.powershellSessionV1ComputerMachineIdShellPowershellSessionPost = exports.powershellExecV1ComputerMachineIdShellPowershellExecPost = exports.fsWriteV1ComputerMachineIdFsWritePost = void 0;
6
6
  const client_gen_1 = require("./client.gen");
7
7
  /**
8
8
  * Health Check
@@ -375,11 +375,31 @@ const updateRunAttachmentV1RunAttachmentsAttachmentIdPut = (options) => {
375
375
  ], url: '/v1/run-attachments/{attachment_id}' }, options), { headers: Object.assign({ 'Content-Type': 'application/json' }, options === null || options === void 0 ? void 0 : options.headers) }));
376
376
  };
377
377
  exports.updateRunAttachmentV1RunAttachmentsAttachmentIdPut = updateRunAttachmentV1RunAttachmentsAttachmentIdPut;
378
+ /**
379
+ * Get Run Attachment Download Url
380
+ * Get a signed download URL for a run attachment file.
381
+ *
382
+ * Returns a signed URL that triggers automatic download when accessed.
383
+ *
384
+ * Args:
385
+ * attachment_id: The ID of the attachment to download
386
+ * expires_in: URL expiration time in seconds (10-3600). Default: 300 (5 minutes)
387
+ */
388
+ const getRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGet = (options) => {
389
+ var _a;
390
+ return ((_a = options.client) !== null && _a !== void 0 ? _a : client_gen_1.client).get(Object.assign({ security: [
391
+ {
392
+ scheme: 'bearer',
393
+ type: 'http'
394
+ }
395
+ ], url: '/v1/run-attachments/{attachment_id}/download-url' }, options));
396
+ };
397
+ exports.getRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGet = getRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGet;
378
398
  /**
379
399
  * Download Run Attachment
380
400
  * Download a run attachment file.
381
401
  *
382
- * Returns the file content as a streaming response.
402
+ * Returns the raw file content as a streaming response.
383
403
  */
384
404
  const downloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGet = (options) => {
385
405
  var _a;
@@ -256,6 +256,19 @@ export type RunAttachmentCreate = {
256
256
  cleanup_imports_after_run?: boolean;
257
257
  expires_at?: string | null;
258
258
  };
259
+ /**
260
+ * Response schema for run attachment download URL
261
+ */
262
+ export type RunAttachmentDownloadUrlResponse = {
263
+ /**
264
+ * Signed URL for downloading the attachment
265
+ */
266
+ url: string;
267
+ /**
268
+ * Seconds until the URL expires
269
+ */
270
+ expires_in: number;
271
+ };
259
272
  /**
260
273
  * Run attachment response schema
261
274
  */
@@ -966,6 +979,33 @@ export type UpdateRunAttachmentV1RunAttachmentsAttachmentIdPutResponses = {
966
979
  200: RunAttachmentResponse;
967
980
  };
968
981
  export type UpdateRunAttachmentV1RunAttachmentsAttachmentIdPutResponse = UpdateRunAttachmentV1RunAttachmentsAttachmentIdPutResponses[keyof UpdateRunAttachmentV1RunAttachmentsAttachmentIdPutResponses];
982
+ export type GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetData = {
983
+ body?: never;
984
+ path: {
985
+ attachment_id: string;
986
+ };
987
+ query?: {
988
+ /**
989
+ * URL expiration time in seconds (10-3600)
990
+ */
991
+ expires_in?: number;
992
+ };
993
+ url: '/v1/run-attachments/{attachment_id}/download-url';
994
+ };
995
+ export type GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetErrors = {
996
+ /**
997
+ * Validation Error
998
+ */
999
+ 422: HttpValidationError;
1000
+ };
1001
+ export type GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetError = GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetErrors[keyof GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetErrors];
1002
+ export type GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetResponses = {
1003
+ /**
1004
+ * Successful Response
1005
+ */
1006
+ 200: RunAttachmentDownloadUrlResponse;
1007
+ };
1008
+ export type GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetResponse = GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetResponses[keyof GetRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGetResponses];
969
1009
  export type DownloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGetData = {
970
1010
  body?: never;
971
1011
  path: {
package/dist/index.d.ts CHANGED
@@ -1,9 +1,58 @@
1
- import { type MachineResponse, type WorkflowResponse, type RunResponse, type ConnectionResponse, type TrajectoryResponse, type PaginatedResponseMachineResponse, type PaginatedResponseWorkflowResponse, type PaginatedResponseRunResponse, type PaginatedResponseConnectionResponse, type PaginatedResponseTrajectoryResponse, type MachineStatus, type RunStatus, type ConnectionStatus, type MachineCreate, type WorkflowCreate, type RunCreate, type FileInput, type ConnectionCreate, type TrajectoryCreate, type MachineUpdate, type WorkflowUpdate, type RunUpdate, type TrajectoryUpdate, type RunAttachmentCreate, type RunAttachmentUpdate, type RunAttachmentResponse, type AttachmentType, type PaginatedResponseRunAttachmentResponse } from './client/types.gen';
1
+ /**
2
+ * @fileoverview Cyberdesk TypeScript SDK
3
+ *
4
+ * A comprehensive SDK for interacting with the Cyberdesk Cloud API.
5
+ * Provides typed methods for managing machines, workflows, runs, and more.
6
+ *
7
+ * @module cyberdesk
8
+ * @example
9
+ * ```typescript
10
+ * import { createCyberdeskClient } from 'cyberdesk';
11
+ *
12
+ * const client = createCyberdeskClient('your-api-key');
13
+ *
14
+ * // List machines
15
+ * const { data: machines } = await client.machines.list();
16
+ *
17
+ * // Create and run a workflow
18
+ * const { data: workflow } = await client.workflows.create({
19
+ * name: 'My Workflow',
20
+ * main_prompt: 'Perform this task...'
21
+ * });
22
+ *
23
+ * const { data: run } = await client.runs.create({
24
+ * workflow_id: workflow.id
25
+ * });
26
+ * ```
27
+ */
28
+ import { type MachineResponse, type WorkflowResponse, type RunResponse, type ConnectionResponse, type TrajectoryResponse, type PaginatedResponseMachineResponse, type PaginatedResponseWorkflowResponse, type PaginatedResponseRunResponse, type PaginatedResponseConnectionResponse, type PaginatedResponseTrajectoryResponse, type MachineStatus, type RunStatus, type ConnectionStatus, type MachineCreate, type WorkflowCreate, type RunCreate, type FileInput, type ConnectionCreate, type TrajectoryCreate, type MachineUpdate, type WorkflowUpdate, type RunUpdate, type TrajectoryUpdate, type RunAttachmentCreate, type RunAttachmentUpdate, type RunAttachmentResponse, type RunAttachmentDownloadUrlResponse, type AttachmentType, type PaginatedResponseRunAttachmentResponse } from './client/types.gen';
2
29
  export * from './client/types.gen';
3
30
  export * from './client/sdk.gen';
4
31
  export * from './client/client.gen';
32
+ /**
33
+ * Create a Cyberdesk API client
34
+ *
35
+ * @param apiKey - Your Cyberdesk API key
36
+ * @param baseUrl - Optional API base URL (defaults to https://api.cyberdesk.io)
37
+ * @returns Configured client with all API endpoints
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const client = createCyberdeskClient('your-api-key');
42
+ * const machines = await client.machines.list();
43
+ * ```
44
+ */
5
45
  export declare function createCyberdeskClient(apiKey: string, baseUrl?: string): {
6
46
  machines: {
47
+ /**
48
+ * List machines with optional filtering
49
+ *
50
+ * @param params - Optional query parameters
51
+ * @param params.skip - Number of items to skip (for pagination)
52
+ * @param params.limit - Maximum number of items to return
53
+ * @param params.status - Filter by machine status
54
+ * @returns Paginated list of machines
55
+ */
7
56
  list: (params?: {
8
57
  skip?: number;
9
58
  limit?: number;
@@ -12,18 +61,42 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
12
61
  data?: PaginatedResponseMachineResponse;
13
62
  error?: any;
14
63
  }>;
64
+ /**
65
+ * Create a new machine
66
+ *
67
+ * @param data - Machine configuration
68
+ * @returns Created machine details
69
+ */
15
70
  create: (data: MachineCreate) => Promise<{
16
71
  data?: MachineResponse;
17
72
  error?: any;
18
73
  }>;
74
+ /**
75
+ * Get a specific machine by ID
76
+ *
77
+ * @param machineId - The ID of the machine
78
+ * @returns Machine details
79
+ */
19
80
  get: (machineId: string) => Promise<{
20
81
  data?: MachineResponse;
21
82
  error?: any;
22
83
  }>;
84
+ /**
85
+ * Update a machine
86
+ *
87
+ * @param machineId - The ID of the machine to update
88
+ * @param data - Update data (name, status, availability, etc.)
89
+ * @returns Updated machine details
90
+ */
23
91
  update: (machineId: string, data: MachineUpdate) => Promise<{
24
92
  data?: MachineResponse;
25
93
  error?: any;
26
94
  }>;
95
+ /**
96
+ * Delete a machine
97
+ *
98
+ * @param machineId - The ID of the machine to delete
99
+ */
27
100
  delete: (machineId: string) => Promise<({
28
101
  data: undefined;
29
102
  error: import("./client/types.gen").HttpValidationError;
@@ -36,6 +109,14 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
36
109
  }>;
37
110
  };
38
111
  workflows: {
112
+ /**
113
+ * List workflows
114
+ *
115
+ * @param params - Optional query parameters
116
+ * @param params.skip - Number of items to skip (for pagination)
117
+ * @param params.limit - Maximum number of items to return
118
+ * @returns Paginated list of workflows
119
+ */
39
120
  list: (params?: {
40
121
  skip?: number;
41
122
  limit?: number;
@@ -43,18 +124,51 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
43
124
  data?: PaginatedResponseWorkflowResponse;
44
125
  error?: any;
45
126
  }>;
127
+ /**
128
+ * Create a new workflow
129
+ *
130
+ * @param data - Workflow configuration including name and main prompt
131
+ * @returns Created workflow details
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * const workflow = await client.workflows.create({
136
+ * name: 'My Workflow',
137
+ * main_prompt: 'Perform this task...',
138
+ * includes_file_exports: true
139
+ * });
140
+ * ```
141
+ */
46
142
  create: (data: WorkflowCreate) => Promise<{
47
143
  data?: WorkflowResponse;
48
144
  error?: any;
49
145
  }>;
146
+ /**
147
+ * Get a specific workflow by ID
148
+ *
149
+ * @param workflowId - The ID of the workflow
150
+ * @returns Workflow details
151
+ */
50
152
  get: (workflowId: string) => Promise<{
51
153
  data?: WorkflowResponse;
52
154
  error?: any;
53
155
  }>;
156
+ /**
157
+ * Update a workflow
158
+ *
159
+ * @param workflowId - The ID of the workflow to update
160
+ * @param data - Update data (name, main_prompt, output_schema, etc.)
161
+ * @returns Updated workflow details
162
+ */
54
163
  update: (workflowId: string, data: WorkflowUpdate) => Promise<{
55
164
  data?: WorkflowResponse;
56
165
  error?: any;
57
166
  }>;
167
+ /**
168
+ * Delete a workflow
169
+ *
170
+ * @param workflowId - The ID of the workflow to delete
171
+ */
58
172
  delete: (workflowId: string) => Promise<({
59
173
  data: undefined;
60
174
  error: import("./client/types.gen").HttpValidationError;
@@ -67,6 +181,17 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
67
181
  }>;
68
182
  };
69
183
  runs: {
184
+ /**
185
+ * List runs with optional filtering
186
+ *
187
+ * @param params - Optional query parameters
188
+ * @param params.skip - Number of items to skip (for pagination)
189
+ * @param params.limit - Maximum number of items to return
190
+ * @param params.status - Filter by run status (scheduling, running, success, cancelled, error)
191
+ * @param params.workflow_id - Filter by workflow ID
192
+ * @param params.machine_id - Filter by machine ID
193
+ * @returns Paginated list of runs
194
+ */
70
195
  list: (params?: {
71
196
  skip?: number;
72
197
  limit?: number;
@@ -77,18 +202,60 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
77
202
  data?: PaginatedResponseRunResponse;
78
203
  error?: any;
79
204
  }>;
205
+ /**
206
+ * Create a new run
207
+ *
208
+ * @param data - Run configuration
209
+ * @param data.workflow_id - The workflow to run
210
+ * @param data.machine_id - Optional machine ID (auto-selected if not provided)
211
+ * @param data.input_values - Optional input values for workflow variables
212
+ * @param data.file_inputs - Optional files to upload to the machine
213
+ * @returns Created run details
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * const run = await client.runs.create({
218
+ * workflow_id: 'workflow-id',
219
+ * input_values: { prompt: 'Hello' },
220
+ * file_inputs: [{
221
+ * filename: 'data.txt',
222
+ * content: 'base64-encoded-content',
223
+ * target_path: '~/CyberdeskTransfers/',
224
+ * cleanup_imports_after_run: true
225
+ * }]
226
+ * });
227
+ * ```
228
+ */
80
229
  create: (data: RunCreate) => Promise<{
81
230
  data?: RunResponse;
82
231
  error?: any;
83
232
  }>;
233
+ /**
234
+ * Get a specific run by ID
235
+ *
236
+ * @param runId - The ID of the run
237
+ * @returns Run details including status, output, and attachments
238
+ */
84
239
  get: (runId: string) => Promise<{
85
240
  data?: RunResponse;
86
241
  error?: any;
87
242
  }>;
243
+ /**
244
+ * Update a run
245
+ *
246
+ * @param runId - The ID of the run to update
247
+ * @param data - Update data (status, output_data, error messages, etc.)
248
+ * @returns Updated run details
249
+ */
88
250
  update: (runId: string, data: RunUpdate) => Promise<{
89
251
  data?: RunResponse;
90
252
  error?: any;
91
253
  }>;
254
+ /**
255
+ * Delete a run
256
+ *
257
+ * @param runId - The ID of the run to delete
258
+ */
92
259
  delete: (runId: string) => Promise<({
93
260
  data: undefined;
94
261
  error: import("./client/types.gen").HttpValidationError;
@@ -101,6 +268,16 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
101
268
  }>;
102
269
  };
103
270
  connections: {
271
+ /**
272
+ * List connections with optional filtering
273
+ *
274
+ * @param params - Optional query parameters
275
+ * @param params.skip - Number of items to skip (for pagination)
276
+ * @param params.limit - Maximum number of items to return
277
+ * @param params.machine_id - Filter by machine ID
278
+ * @param params.status - Filter by connection status
279
+ * @returns Paginated list of connections
280
+ */
104
281
  list: (params?: {
105
282
  skip?: number;
106
283
  limit?: number;
@@ -110,12 +287,27 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
110
287
  data?: PaginatedResponseConnectionResponse;
111
288
  error?: any;
112
289
  }>;
290
+ /**
291
+ * Create a new connection
292
+ *
293
+ * @param data - Connection data including machine ID and websocket info
294
+ * @returns Created connection details
295
+ */
113
296
  create: (data: ConnectionCreate) => Promise<{
114
297
  data?: ConnectionResponse;
115
298
  error?: any;
116
299
  }>;
117
300
  };
118
301
  trajectories: {
302
+ /**
303
+ * List trajectories with optional filtering
304
+ *
305
+ * @param params - Optional query parameters
306
+ * @param params.skip - Number of items to skip (for pagination)
307
+ * @param params.limit - Maximum number of items to return
308
+ * @param params.workflow_id - Filter by workflow ID
309
+ * @returns Paginated list of trajectories
310
+ */
119
311
  list: (params?: {
120
312
  skip?: number;
121
313
  limit?: number;
@@ -124,18 +316,48 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
124
316
  data?: PaginatedResponseTrajectoryResponse;
125
317
  error?: any;
126
318
  }>;
319
+ /**
320
+ * Create a new trajectory
321
+ *
322
+ * A trajectory represents a recorded sequence of actions for a workflow.
323
+ *
324
+ * @param data - Trajectory data
325
+ * @param data.workflow_id - The workflow this trajectory belongs to
326
+ * @param data.trajectory_data - Array of recorded actions
327
+ * @param data.dimensions - Display dimensions when trajectory was recorded
328
+ * @param data.original_input_values - Input values used during recording
329
+ * @returns Created trajectory details
330
+ */
127
331
  create: (data: TrajectoryCreate) => Promise<{
128
332
  data?: TrajectoryResponse;
129
333
  error?: any;
130
334
  }>;
335
+ /**
336
+ * Get a specific trajectory by ID
337
+ *
338
+ * @param trajectoryId - The ID of the trajectory
339
+ * @returns Trajectory details including recorded actions
340
+ */
131
341
  get: (trajectoryId: string) => Promise<{
132
342
  data?: TrajectoryResponse;
133
343
  error?: any;
134
344
  }>;
345
+ /**
346
+ * Update a trajectory
347
+ *
348
+ * @param trajectoryId - The ID of the trajectory to update
349
+ * @param data - Update data (trajectory_data)
350
+ * @returns Updated trajectory details
351
+ */
135
352
  update: (trajectoryId: string, data: TrajectoryUpdate) => Promise<{
136
353
  data?: TrajectoryResponse;
137
354
  error?: any;
138
355
  }>;
356
+ /**
357
+ * Delete a trajectory
358
+ *
359
+ * @param trajectoryId - The ID of the trajectory to delete
360
+ */
139
361
  delete: (trajectoryId: string) => Promise<({
140
362
  data: undefined;
141
363
  error: import("./client/types.gen").HttpValidationError;
@@ -146,12 +368,31 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
146
368
  request: Request;
147
369
  response: Response;
148
370
  }>;
371
+ /**
372
+ * Get the latest trajectory for a workflow
373
+ *
374
+ * Returns the most recently created trajectory for the specified workflow.
375
+ * Useful for replaying the latest recorded actions.
376
+ *
377
+ * @param workflowId - The ID of the workflow
378
+ * @returns Latest trajectory for the workflow, or null if none exists
379
+ */
149
380
  getLatestForWorkflow: (workflowId: string) => Promise<{
150
381
  data?: TrajectoryResponse;
151
382
  error?: any;
152
383
  }>;
153
384
  };
154
385
  run_attachments: {
386
+ /**
387
+ * List run attachments with optional filtering
388
+ *
389
+ * @param params - Optional query parameters
390
+ * @param params.skip - Number of items to skip (for pagination)
391
+ * @param params.limit - Maximum number of items to return
392
+ * @param params.run_id - Filter by run ID
393
+ * @param params.attachment_type - Filter by attachment type (input/output)
394
+ * @returns Paginated list of run attachments
395
+ */
155
396
  list: (params?: {
156
397
  skip?: number;
157
398
  limit?: number;
@@ -161,22 +402,86 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
161
402
  data?: PaginatedResponseRunAttachmentResponse;
162
403
  error?: any;
163
404
  }>;
405
+ /**
406
+ * Create a new run attachment
407
+ *
408
+ * @param data - Attachment data including file content as base64
409
+ * @returns Created attachment details
410
+ */
164
411
  create: (data: RunAttachmentCreate) => Promise<{
165
412
  data?: RunAttachmentResponse;
166
413
  error?: any;
167
414
  }>;
415
+ /**
416
+ * Get run attachment details
417
+ *
418
+ * @param attachmentId - The ID of the attachment
419
+ * @returns Attachment metadata
420
+ */
168
421
  get: (attachmentId: string) => Promise<{
169
422
  data?: RunAttachmentResponse;
170
423
  error?: any;
171
424
  }>;
425
+ /**
426
+ * Get a signed download URL for a run attachment
427
+ *
428
+ * The returned URL will trigger an automatic download when accessed in a browser.
429
+ *
430
+ * @param attachmentId - The ID of the attachment
431
+ * @param expiresIn - URL expiration time in seconds (10-3600). Default: 300 (5 minutes)
432
+ * @returns Object containing the signed URL and expiration time
433
+ *
434
+ * @example
435
+ * ```typescript
436
+ * const { data } = await client.run_attachments.getDownloadUrl('attachment-id', 600);
437
+ * if (data) {
438
+ * console.log(`Download URL: ${data.url}`);
439
+ * console.log(`Expires in: ${data.expires_in} seconds`);
440
+ * }
441
+ * ```
442
+ */
443
+ getDownloadUrl: (attachmentId: string, expiresIn?: number) => Promise<{
444
+ data?: RunAttachmentDownloadUrlResponse;
445
+ error?: any;
446
+ }>;
447
+ /**
448
+ * Download a run attachment file directly
449
+ *
450
+ * This method returns the raw file content. For a download URL instead,
451
+ * use `getDownloadUrl()`.
452
+ *
453
+ * @param attachmentId - The ID of the attachment to download
454
+ * @returns Raw file data
455
+ *
456
+ * @example
457
+ * ```typescript
458
+ * const { data } = await client.run_attachments.download('attachment-id');
459
+ * if (data) {
460
+ * // Handle raw file bytes
461
+ * const blob = new Blob([data]);
462
+ * }
463
+ * ```
464
+ */
172
465
  download: (attachmentId: string) => Promise<{
173
466
  data?: any;
174
467
  error?: any;
175
468
  }>;
469
+ /**
470
+ * Update a run attachment (e.g., set expiration)
471
+ *
472
+ * @param attachmentId - The ID of the attachment to update
473
+ * @param data - Update data
474
+ * @returns Updated attachment details
475
+ */
176
476
  update: (attachmentId: string, data: RunAttachmentUpdate) => Promise<{
177
477
  data?: RunAttachmentResponse;
178
478
  error?: any;
179
479
  }>;
480
+ /**
481
+ * Delete a run attachment
482
+ *
483
+ * @param attachmentId - The ID of the attachment to delete
484
+ */
180
485
  delete: (attachmentId: string) => Promise<({
181
486
  data: undefined;
182
487
  error: import("./client/types.gen").HttpValidationError;
@@ -189,4 +494,4 @@ export declare function createCyberdeskClient(apiKey: string, baseUrl?: string):
189
494
  }>;
190
495
  };
191
496
  };
192
- export type { MachineResponse, WorkflowResponse, RunResponse, ConnectionResponse, TrajectoryResponse, RunAttachmentResponse, FileInput, AttachmentType, PaginatedResponseMachineResponse, PaginatedResponseWorkflowResponse, PaginatedResponseRunResponse, PaginatedResponseConnectionResponse, PaginatedResponseTrajectoryResponse, PaginatedResponseRunAttachmentResponse, };
497
+ export type { MachineResponse, WorkflowResponse, RunResponse, ConnectionResponse, TrajectoryResponse, RunAttachmentResponse, RunAttachmentDownloadUrlResponse, FileInput, AttachmentType, PaginatedResponseMachineResponse, PaginatedResponseWorkflowResponse, PaginatedResponseRunResponse, PaginatedResponseConnectionResponse, PaginatedResponseTrajectoryResponse, PaginatedResponseRunAttachmentResponse, };
package/dist/index.js CHANGED
@@ -1,4 +1,31 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview Cyberdesk TypeScript SDK
4
+ *
5
+ * A comprehensive SDK for interacting with the Cyberdesk Cloud API.
6
+ * Provides typed methods for managing machines, workflows, runs, and more.
7
+ *
8
+ * @module cyberdesk
9
+ * @example
10
+ * ```typescript
11
+ * import { createCyberdeskClient } from 'cyberdesk';
12
+ *
13
+ * const client = createCyberdeskClient('your-api-key');
14
+ *
15
+ * // List machines
16
+ * const { data: machines } = await client.machines.list();
17
+ *
18
+ * // Create and run a workflow
19
+ * const { data: workflow } = await client.workflows.create({
20
+ * name: 'My Workflow',
21
+ * main_prompt: 'Perform this task...'
22
+ * });
23
+ *
24
+ * const { data: run } = await client.runs.create({
25
+ * workflow_id: workflow.id
26
+ * });
27
+ * ```
28
+ */
2
29
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
30
  if (k2 === undefined) k2 = k;
4
31
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -32,8 +59,16 @@ __exportStar(require("./client/types.gen"), exports);
32
59
  __exportStar(require("./client/sdk.gen"), exports);
33
60
  __exportStar(require("./client/client.gen"), exports);
34
61
  // Configuration
62
+ /** Default API base URL for Cyberdesk Cloud API */
35
63
  const DEFAULT_API_BASE_URL = "https://api.cyberdesk.io";
36
- // Create configured client with API key and connection reuse
64
+ /**
65
+ * Create a configured HTTP client with authentication
66
+ *
67
+ * @internal
68
+ * @param apiKey - Your Cyberdesk API key
69
+ * @param baseUrl - API base URL
70
+ * @returns Configured HTTP client
71
+ */
37
72
  function createApiClient(apiKey, baseUrl = DEFAULT_API_BASE_URL) {
38
73
  return (0, client_fetch_1.createClient)({
39
74
  baseUrl,
@@ -44,30 +79,70 @@ function createApiClient(apiKey, baseUrl = DEFAULT_API_BASE_URL) {
44
79
  },
45
80
  });
46
81
  }
47
- // Create API client with your API key
82
+ /**
83
+ * Create a Cyberdesk API client
84
+ *
85
+ * @param apiKey - Your Cyberdesk API key
86
+ * @param baseUrl - Optional API base URL (defaults to https://api.cyberdesk.io)
87
+ * @returns Configured client with all API endpoints
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * const client = createCyberdeskClient('your-api-key');
92
+ * const machines = await client.machines.list();
93
+ * ```
94
+ */
48
95
  function createCyberdeskClient(apiKey, baseUrl) {
49
96
  const client = createApiClient(apiKey, baseUrl);
50
97
  return {
51
98
  // Machine endpoints
52
99
  machines: {
100
+ /**
101
+ * List machines with optional filtering
102
+ *
103
+ * @param params - Optional query parameters
104
+ * @param params.skip - Number of items to skip (for pagination)
105
+ * @param params.limit - Maximum number of items to return
106
+ * @param params.status - Filter by machine status
107
+ * @returns Paginated list of machines
108
+ */
53
109
  list: (params) => __awaiter(this, void 0, void 0, function* () {
54
110
  return (0, sdk_gen_1.listMachinesV1MachinesGet)({
55
111
  client,
56
112
  query: params,
57
113
  });
58
114
  }),
115
+ /**
116
+ * Create a new machine
117
+ *
118
+ * @param data - Machine configuration
119
+ * @returns Created machine details
120
+ */
59
121
  create: (data) => __awaiter(this, void 0, void 0, function* () {
60
122
  return (0, sdk_gen_1.createMachineV1MachinesPost)({
61
123
  client,
62
124
  body: data,
63
125
  });
64
126
  }),
127
+ /**
128
+ * Get a specific machine by ID
129
+ *
130
+ * @param machineId - The ID of the machine
131
+ * @returns Machine details
132
+ */
65
133
  get: (machineId) => __awaiter(this, void 0, void 0, function* () {
66
134
  return (0, sdk_gen_1.getMachineV1MachinesMachineIdGet)({
67
135
  client,
68
136
  path: { machine_id: machineId },
69
137
  });
70
138
  }),
139
+ /**
140
+ * Update a machine
141
+ *
142
+ * @param machineId - The ID of the machine to update
143
+ * @param data - Update data (name, status, availability, etc.)
144
+ * @returns Updated machine details
145
+ */
71
146
  update: (machineId, data) => __awaiter(this, void 0, void 0, function* () {
72
147
  return (0, sdk_gen_1.updateMachineV1MachinesMachineIdPatch)({
73
148
  client,
@@ -75,6 +150,11 @@ function createCyberdeskClient(apiKey, baseUrl) {
75
150
  body: data,
76
151
  });
77
152
  }),
153
+ /**
154
+ * Delete a machine
155
+ *
156
+ * @param machineId - The ID of the machine to delete
157
+ */
78
158
  delete: (machineId) => __awaiter(this, void 0, void 0, function* () {
79
159
  return (0, sdk_gen_1.deleteMachineV1MachinesMachineIdDelete)({
80
160
  client,
@@ -84,24 +164,60 @@ function createCyberdeskClient(apiKey, baseUrl) {
84
164
  },
85
165
  // Workflow endpoints
86
166
  workflows: {
167
+ /**
168
+ * List workflows
169
+ *
170
+ * @param params - Optional query parameters
171
+ * @param params.skip - Number of items to skip (for pagination)
172
+ * @param params.limit - Maximum number of items to return
173
+ * @returns Paginated list of workflows
174
+ */
87
175
  list: (params) => __awaiter(this, void 0, void 0, function* () {
88
176
  return (0, sdk_gen_1.listWorkflowsV1WorkflowsGet)({
89
177
  client,
90
178
  query: params,
91
179
  });
92
180
  }),
181
+ /**
182
+ * Create a new workflow
183
+ *
184
+ * @param data - Workflow configuration including name and main prompt
185
+ * @returns Created workflow details
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const workflow = await client.workflows.create({
190
+ * name: 'My Workflow',
191
+ * main_prompt: 'Perform this task...',
192
+ * includes_file_exports: true
193
+ * });
194
+ * ```
195
+ */
93
196
  create: (data) => __awaiter(this, void 0, void 0, function* () {
94
197
  return (0, sdk_gen_1.createWorkflowV1WorkflowsPost)({
95
198
  client,
96
199
  body: data,
97
200
  });
98
201
  }),
202
+ /**
203
+ * Get a specific workflow by ID
204
+ *
205
+ * @param workflowId - The ID of the workflow
206
+ * @returns Workflow details
207
+ */
99
208
  get: (workflowId) => __awaiter(this, void 0, void 0, function* () {
100
209
  return (0, sdk_gen_1.getWorkflowV1WorkflowsWorkflowIdGet)({
101
210
  client,
102
211
  path: { workflow_id: workflowId },
103
212
  });
104
213
  }),
214
+ /**
215
+ * Update a workflow
216
+ *
217
+ * @param workflowId - The ID of the workflow to update
218
+ * @param data - Update data (name, main_prompt, output_schema, etc.)
219
+ * @returns Updated workflow details
220
+ */
105
221
  update: (workflowId, data) => __awaiter(this, void 0, void 0, function* () {
106
222
  return (0, sdk_gen_1.updateWorkflowV1WorkflowsWorkflowIdPatch)({
107
223
  client,
@@ -109,6 +225,11 @@ function createCyberdeskClient(apiKey, baseUrl) {
109
225
  body: data,
110
226
  });
111
227
  }),
228
+ /**
229
+ * Delete a workflow
230
+ *
231
+ * @param workflowId - The ID of the workflow to delete
232
+ */
112
233
  delete: (workflowId) => __awaiter(this, void 0, void 0, function* () {
113
234
  return (0, sdk_gen_1.deleteWorkflowV1WorkflowsWorkflowIdDelete)({
114
235
  client,
@@ -118,24 +239,72 @@ function createCyberdeskClient(apiKey, baseUrl) {
118
239
  },
119
240
  // Run endpoints
120
241
  runs: {
242
+ /**
243
+ * List runs with optional filtering
244
+ *
245
+ * @param params - Optional query parameters
246
+ * @param params.skip - Number of items to skip (for pagination)
247
+ * @param params.limit - Maximum number of items to return
248
+ * @param params.status - Filter by run status (scheduling, running, success, cancelled, error)
249
+ * @param params.workflow_id - Filter by workflow ID
250
+ * @param params.machine_id - Filter by machine ID
251
+ * @returns Paginated list of runs
252
+ */
121
253
  list: (params) => __awaiter(this, void 0, void 0, function* () {
122
254
  return (0, sdk_gen_1.listRunsV1RunsGet)({
123
255
  client,
124
256
  query: params,
125
257
  });
126
258
  }),
259
+ /**
260
+ * Create a new run
261
+ *
262
+ * @param data - Run configuration
263
+ * @param data.workflow_id - The workflow to run
264
+ * @param data.machine_id - Optional machine ID (auto-selected if not provided)
265
+ * @param data.input_values - Optional input values for workflow variables
266
+ * @param data.file_inputs - Optional files to upload to the machine
267
+ * @returns Created run details
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * const run = await client.runs.create({
272
+ * workflow_id: 'workflow-id',
273
+ * input_values: { prompt: 'Hello' },
274
+ * file_inputs: [{
275
+ * filename: 'data.txt',
276
+ * content: 'base64-encoded-content',
277
+ * target_path: '~/CyberdeskTransfers/',
278
+ * cleanup_imports_after_run: true
279
+ * }]
280
+ * });
281
+ * ```
282
+ */
127
283
  create: (data) => __awaiter(this, void 0, void 0, function* () {
128
284
  return (0, sdk_gen_1.createRunV1RunsPost)({
129
285
  client,
130
286
  body: data,
131
287
  });
132
288
  }),
289
+ /**
290
+ * Get a specific run by ID
291
+ *
292
+ * @param runId - The ID of the run
293
+ * @returns Run details including status, output, and attachments
294
+ */
133
295
  get: (runId) => __awaiter(this, void 0, void 0, function* () {
134
296
  return (0, sdk_gen_1.getRunV1RunsRunIdGet)({
135
297
  client,
136
298
  path: { run_id: runId },
137
299
  });
138
300
  }),
301
+ /**
302
+ * Update a run
303
+ *
304
+ * @param runId - The ID of the run to update
305
+ * @param data - Update data (status, output_data, error messages, etc.)
306
+ * @returns Updated run details
307
+ */
139
308
  update: (runId, data) => __awaiter(this, void 0, void 0, function* () {
140
309
  return (0, sdk_gen_1.updateRunV1RunsRunIdPatch)({
141
310
  client,
@@ -143,6 +312,11 @@ function createCyberdeskClient(apiKey, baseUrl) {
143
312
  body: data,
144
313
  });
145
314
  }),
315
+ /**
316
+ * Delete a run
317
+ *
318
+ * @param runId - The ID of the run to delete
319
+ */
146
320
  delete: (runId) => __awaiter(this, void 0, void 0, function* () {
147
321
  return (0, sdk_gen_1.deleteRunV1RunsRunIdDelete)({
148
322
  client,
@@ -152,12 +326,28 @@ function createCyberdeskClient(apiKey, baseUrl) {
152
326
  },
153
327
  // Connection endpoints
154
328
  connections: {
329
+ /**
330
+ * List connections with optional filtering
331
+ *
332
+ * @param params - Optional query parameters
333
+ * @param params.skip - Number of items to skip (for pagination)
334
+ * @param params.limit - Maximum number of items to return
335
+ * @param params.machine_id - Filter by machine ID
336
+ * @param params.status - Filter by connection status
337
+ * @returns Paginated list of connections
338
+ */
155
339
  list: (params) => __awaiter(this, void 0, void 0, function* () {
156
340
  return (0, sdk_gen_1.listConnectionsV1ConnectionsGet)({
157
341
  client,
158
342
  query: params,
159
343
  });
160
344
  }),
345
+ /**
346
+ * Create a new connection
347
+ *
348
+ * @param data - Connection data including machine ID and websocket info
349
+ * @returns Created connection details
350
+ */
161
351
  create: (data) => __awaiter(this, void 0, void 0, function* () {
162
352
  return (0, sdk_gen_1.createConnectionV1ConnectionsPost)({
163
353
  client,
@@ -167,24 +357,58 @@ function createCyberdeskClient(apiKey, baseUrl) {
167
357
  },
168
358
  // Trajectory endpoints
169
359
  trajectories: {
360
+ /**
361
+ * List trajectories with optional filtering
362
+ *
363
+ * @param params - Optional query parameters
364
+ * @param params.skip - Number of items to skip (for pagination)
365
+ * @param params.limit - Maximum number of items to return
366
+ * @param params.workflow_id - Filter by workflow ID
367
+ * @returns Paginated list of trajectories
368
+ */
170
369
  list: (params) => __awaiter(this, void 0, void 0, function* () {
171
370
  return (0, sdk_gen_1.listTrajectoriesV1TrajectoriesGet)({
172
371
  client,
173
372
  query: params,
174
373
  });
175
374
  }),
375
+ /**
376
+ * Create a new trajectory
377
+ *
378
+ * A trajectory represents a recorded sequence of actions for a workflow.
379
+ *
380
+ * @param data - Trajectory data
381
+ * @param data.workflow_id - The workflow this trajectory belongs to
382
+ * @param data.trajectory_data - Array of recorded actions
383
+ * @param data.dimensions - Display dimensions when trajectory was recorded
384
+ * @param data.original_input_values - Input values used during recording
385
+ * @returns Created trajectory details
386
+ */
176
387
  create: (data) => __awaiter(this, void 0, void 0, function* () {
177
388
  return (0, sdk_gen_1.createTrajectoryV1TrajectoriesPost)({
178
389
  client,
179
390
  body: data,
180
391
  });
181
392
  }),
393
+ /**
394
+ * Get a specific trajectory by ID
395
+ *
396
+ * @param trajectoryId - The ID of the trajectory
397
+ * @returns Trajectory details including recorded actions
398
+ */
182
399
  get: (trajectoryId) => __awaiter(this, void 0, void 0, function* () {
183
400
  return (0, sdk_gen_1.getTrajectoryV1TrajectoriesTrajectoryIdGet)({
184
401
  client,
185
402
  path: { trajectory_id: trajectoryId },
186
403
  });
187
404
  }),
405
+ /**
406
+ * Update a trajectory
407
+ *
408
+ * @param trajectoryId - The ID of the trajectory to update
409
+ * @param data - Update data (trajectory_data)
410
+ * @returns Updated trajectory details
411
+ */
188
412
  update: (trajectoryId, data) => __awaiter(this, void 0, void 0, function* () {
189
413
  return (0, sdk_gen_1.updateTrajectoryV1TrajectoriesTrajectoryIdPatch)({
190
414
  client,
@@ -192,12 +416,26 @@ function createCyberdeskClient(apiKey, baseUrl) {
192
416
  body: data,
193
417
  });
194
418
  }),
419
+ /**
420
+ * Delete a trajectory
421
+ *
422
+ * @param trajectoryId - The ID of the trajectory to delete
423
+ */
195
424
  delete: (trajectoryId) => __awaiter(this, void 0, void 0, function* () {
196
425
  return (0, sdk_gen_1.deleteTrajectoryV1TrajectoriesTrajectoryIdDelete)({
197
426
  client,
198
427
  path: { trajectory_id: trajectoryId },
199
428
  });
200
429
  }),
430
+ /**
431
+ * Get the latest trajectory for a workflow
432
+ *
433
+ * Returns the most recently created trajectory for the specified workflow.
434
+ * Useful for replaying the latest recorded actions.
435
+ *
436
+ * @param workflowId - The ID of the workflow
437
+ * @returns Latest trajectory for the workflow, or null if none exists
438
+ */
201
439
  getLatestForWorkflow: (workflowId) => __awaiter(this, void 0, void 0, function* () {
202
440
  return (0, sdk_gen_1.getLatestTrajectoryForWorkflowV1WorkflowsWorkflowIdLatestTrajectoryGet)({
203
441
  client,
@@ -207,31 +445,102 @@ function createCyberdeskClient(apiKey, baseUrl) {
207
445
  },
208
446
  // Run Attachment endpoints
209
447
  run_attachments: {
448
+ /**
449
+ * List run attachments with optional filtering
450
+ *
451
+ * @param params - Optional query parameters
452
+ * @param params.skip - Number of items to skip (for pagination)
453
+ * @param params.limit - Maximum number of items to return
454
+ * @param params.run_id - Filter by run ID
455
+ * @param params.attachment_type - Filter by attachment type (input/output)
456
+ * @returns Paginated list of run attachments
457
+ */
210
458
  list: (params) => __awaiter(this, void 0, void 0, function* () {
211
459
  return (0, sdk_gen_1.listRunAttachmentsV1RunAttachmentsGet)({
212
460
  client,
213
461
  query: params,
214
462
  });
215
463
  }),
464
+ /**
465
+ * Create a new run attachment
466
+ *
467
+ * @param data - Attachment data including file content as base64
468
+ * @returns Created attachment details
469
+ */
216
470
  create: (data) => __awaiter(this, void 0, void 0, function* () {
217
471
  return (0, sdk_gen_1.createRunAttachmentV1RunAttachmentsPost)({
218
472
  client,
219
473
  body: data,
220
474
  });
221
475
  }),
476
+ /**
477
+ * Get run attachment details
478
+ *
479
+ * @param attachmentId - The ID of the attachment
480
+ * @returns Attachment metadata
481
+ */
222
482
  get: (attachmentId) => __awaiter(this, void 0, void 0, function* () {
223
483
  return (0, sdk_gen_1.getRunAttachmentV1RunAttachmentsAttachmentIdGet)({
224
484
  client,
225
485
  path: { attachment_id: attachmentId },
226
486
  });
227
487
  }),
488
+ /**
489
+ * Get a signed download URL for a run attachment
490
+ *
491
+ * The returned URL will trigger an automatic download when accessed in a browser.
492
+ *
493
+ * @param attachmentId - The ID of the attachment
494
+ * @param expiresIn - URL expiration time in seconds (10-3600). Default: 300 (5 minutes)
495
+ * @returns Object containing the signed URL and expiration time
496
+ *
497
+ * @example
498
+ * ```typescript
499
+ * const { data } = await client.run_attachments.getDownloadUrl('attachment-id', 600);
500
+ * if (data) {
501
+ * console.log(`Download URL: ${data.url}`);
502
+ * console.log(`Expires in: ${data.expires_in} seconds`);
503
+ * }
504
+ * ```
505
+ */
506
+ getDownloadUrl: (attachmentId, expiresIn) => __awaiter(this, void 0, void 0, function* () {
507
+ return (0, sdk_gen_1.getRunAttachmentDownloadUrlV1RunAttachmentsAttachmentIdDownloadUrlGet)({
508
+ client,
509
+ path: { attachment_id: attachmentId },
510
+ query: expiresIn ? { expires_in: expiresIn } : undefined,
511
+ });
512
+ }),
513
+ /**
514
+ * Download a run attachment file directly
515
+ *
516
+ * This method returns the raw file content. For a download URL instead,
517
+ * use `getDownloadUrl()`.
518
+ *
519
+ * @param attachmentId - The ID of the attachment to download
520
+ * @returns Raw file data
521
+ *
522
+ * @example
523
+ * ```typescript
524
+ * const { data } = await client.run_attachments.download('attachment-id');
525
+ * if (data) {
526
+ * // Handle raw file bytes
527
+ * const blob = new Blob([data]);
528
+ * }
529
+ * ```
530
+ */
228
531
  download: (attachmentId) => __awaiter(this, void 0, void 0, function* () {
229
- // Note: This endpoint returns a download URL redirect or file data
230
532
  return (0, sdk_gen_1.downloadRunAttachmentV1RunAttachmentsAttachmentIdDownloadGet)({
231
533
  client,
232
534
  path: { attachment_id: attachmentId },
233
535
  });
234
536
  }),
537
+ /**
538
+ * Update a run attachment (e.g., set expiration)
539
+ *
540
+ * @param attachmentId - The ID of the attachment to update
541
+ * @param data - Update data
542
+ * @returns Updated attachment details
543
+ */
235
544
  update: (attachmentId, data) => __awaiter(this, void 0, void 0, function* () {
236
545
  return (0, sdk_gen_1.updateRunAttachmentV1RunAttachmentsAttachmentIdPut)({
237
546
  client,
@@ -239,6 +548,11 @@ function createCyberdeskClient(apiKey, baseUrl) {
239
548
  body: data,
240
549
  });
241
550
  }),
551
+ /**
552
+ * Delete a run attachment
553
+ *
554
+ * @param attachmentId - The ID of the attachment to delete
555
+ */
242
556
  delete: (attachmentId) => __awaiter(this, void 0, void 0, function* () {
243
557
  return (0, sdk_gen_1.deleteRunAttachmentV1RunAttachmentsAttachmentIdDelete)({
244
558
  client,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyberdesk",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "The official TypeScript SDK for Cyberdesk",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",