aicomputer 0.1.22 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1 +1,499 @@
1
- #!/usr/bin/env node
1
+ import { ComputerImageResponse, AccessSessionResponse, createPublicApiClient, ComputerFileEntry, ComputerFileStat, ComputerFileGrepMatch, FuseMountResponse, ListPublishedPortsResponse, PublishedPortResponse, PublishedPortMutationResponse, ListSharesResponse, ShareResponse, ListSnapshotsResponse, SnapshotResponse, ComputerResponse, ComputerUsageEnvelope, ComputerConnectionResponse, CreateSSHCertificateRequest, SSHCertificateResponse, ComputerCapacityCheckResponse, CreateComputerRequest, ListSSHKeysResponse, CreateSSHKeyRequest, SSHKeyEnvelope, PublicApiClientOptions, AccessTokenProvider, MeResponse, UsageEnvelope, ResolveShareResponse, CreateAccessSessionRequest, AccessSessionEnvelope, OperationResponse } from '@microagentcomputer/public-api-client';
2
+ export { AccessSessionEnvelope, AccessSessionResponse, AccessTokenProvider, ComputerCapacityCheckRequest, ComputerCapacityCheckResponse, ComputerConnectionResponse, ComputerFileEntry, ComputerFileGrepMatch, ComputerFileStat, ComputerImageResponse, ComputerMutationResponse, ComputerResponse, ComputerUsageEnvelope, CreateAccessSessionRequest, CreateComputerRequest, CreateFuseMountRequest, CreateLinkShareRequest, CreatePublishedPortRequest, CreateSSHCertificateRequest, CreateSSHKeyRequest, ExecCommandRequest, ExecCommandResponse, FuseMountMutationResponse, FuseMountResponse, ListFuseMountsResponse, MeResponse, OperationResponse, PublicApiError, PublishedPortResponse, ResizeComputerRequest, ResolveShareResponse, RestoreSnapshotRequest, SSHCertificateResponse, ShareResponse, SnapshotResponse, TransferComputerRequest, UpdateComputerRequest, UsageEnvelope } from '@microagentcomputer/public-api-client';
3
+
4
+ type LowLevelClient = ReturnType<typeof createPublicApiClient>;
5
+ type ComputerState = ComputerResponse["state"];
6
+ type ComputerSource = CreateComputerRequest["source"];
7
+ type ComputerCapability = "process" | "files" | "git" | (string & {});
8
+ type FileEntry = ComputerFileEntry;
9
+ type FileStat = ComputerFileStat;
10
+ type FileGrepMatch = ComputerFileGrepMatch;
11
+ type WaitOptions = {
12
+ pollIntervalMs?: number;
13
+ timeoutMs?: number;
14
+ signal?: AbortSignal;
15
+ };
16
+ type AgentComputerOptions = Omit<PublicApiClientOptions, "accessToken" | "baseUrl"> & {
17
+ baseUrl?: string;
18
+ apiKey?: AccessTokenProvider;
19
+ accessToken?: AccessTokenProvider;
20
+ defaultPollIntervalMs?: number;
21
+ defaultOperationTimeoutMs?: number;
22
+ defaultComputerStateTimeoutMs?: number;
23
+ defaultConnectRequestTimeoutMs?: number;
24
+ };
25
+ type ComputerCreateOptions = {
26
+ handle?: string;
27
+ displayName?: string;
28
+ source?: ComputerSource;
29
+ sizePreset?: string;
30
+ memoryMiB?: number;
31
+ storageBytes?: number;
32
+ authorizedKeys?: string[];
33
+ };
34
+ type ComputerEnsureOptions = ComputerCreateOptions & {
35
+ id?: string;
36
+ start?: boolean;
37
+ updateMetadata?: boolean;
38
+ };
39
+ type ComputerUpdateOptions = {
40
+ displayName?: string;
41
+ };
42
+ type ComputerResizeOptions = {
43
+ sizePreset: string;
44
+ memoryMiB?: never;
45
+ storageBytes?: never;
46
+ signal?: AbortSignal;
47
+ } | {
48
+ sizePreset?: "custom";
49
+ memoryMiB: number;
50
+ storageBytes: number;
51
+ signal?: AbortSignal;
52
+ };
53
+ type LowLevelComputerResizeOptions = {
54
+ size_preset: string;
55
+ requested_memory_mib?: never;
56
+ requested_storage_bytes?: never;
57
+ signal?: AbortSignal;
58
+ } | {
59
+ size_preset?: "custom";
60
+ requested_memory_mib: number;
61
+ requested_storage_bytes: number;
62
+ signal?: AbortSignal;
63
+ };
64
+ type ComputerCapacityOptions = {
65
+ sizePreset?: string;
66
+ memoryMiB?: number;
67
+ storageBytes?: number;
68
+ excludeComputerId?: string;
69
+ computerId?: string;
70
+ };
71
+ type CommandRunOptions = {
72
+ cwd?: string;
73
+ env?: Record<string, string>;
74
+ timeoutMs?: number;
75
+ requestTimeoutMs?: number;
76
+ user?: string;
77
+ signal?: AbortSignal;
78
+ };
79
+ type CommandStartOptions = CommandRunOptions & {
80
+ tag?: string;
81
+ stdin?: boolean;
82
+ onStdout?: CommandOutputHandler;
83
+ onStderr?: CommandOutputHandler;
84
+ onExit?: (result: CommandResult) => void;
85
+ };
86
+ type PtyStartOptions = Omit<CommandRunOptions, "timeoutMs"> & {
87
+ cols?: number;
88
+ rows?: number;
89
+ tag?: string;
90
+ onData?: PtyOutputHandler;
91
+ onExit?: (result: PtyResult) => void;
92
+ };
93
+ type ExecSessionCreateOptions = {
94
+ ttlSeconds?: number;
95
+ signal?: AbortSignal;
96
+ };
97
+ type CommandSelector = number | string | {
98
+ pid: number;
99
+ } | {
100
+ tag: string;
101
+ };
102
+ type CommandSignal = "SIGTERM" | "SIGKILL";
103
+ type CommandOutputHandler = (chunk: string, raw: Uint8Array) => void;
104
+ type PtyOutputHandler = (chunk: string, raw: Uint8Array) => void;
105
+ type CommandInfo = {
106
+ pid: number;
107
+ tag?: string;
108
+ cmd: string;
109
+ args: string[];
110
+ envs: Record<string, string>;
111
+ cwd?: string;
112
+ };
113
+ type CommandResult = {
114
+ pid: number;
115
+ tag?: string;
116
+ stdout: string;
117
+ stderr: string;
118
+ exitCode: number;
119
+ status: string;
120
+ error?: string;
121
+ };
122
+ type PtyResult = {
123
+ pid: number;
124
+ tag?: string;
125
+ output: string;
126
+ exitCode: number;
127
+ status: string;
128
+ error?: string;
129
+ };
130
+ type FileReadOptions = {
131
+ signal?: AbortSignal;
132
+ };
133
+ type FileWriteOptions = {
134
+ mode?: number;
135
+ signal?: AbortSignal;
136
+ };
137
+ type FileRemoveOptions = {
138
+ recursive?: boolean;
139
+ signal?: AbortSignal;
140
+ };
141
+ type FileListOptions = {
142
+ recursive?: boolean;
143
+ signal?: AbortSignal;
144
+ };
145
+ type FilePatchOptions = {
146
+ signal?: AbortSignal;
147
+ };
148
+ type FileReadRange = {
149
+ offset: number;
150
+ length: number;
151
+ };
152
+ type FileWriteRange = {
153
+ offset: number;
154
+ };
155
+ type FileMkdirOptions = {
156
+ recursive?: boolean;
157
+ signal?: AbortSignal;
158
+ };
159
+ type FilePatchEdit = {
160
+ find: string;
161
+ replace: string;
162
+ };
163
+ type FilePatchRequest = FilePatchEdit[] | {
164
+ setContents: string;
165
+ };
166
+ type FileGrepOptions = {
167
+ path?: string;
168
+ regex?: boolean;
169
+ caseInsensitive?: boolean;
170
+ maxMatches?: number;
171
+ signal?: AbortSignal;
172
+ };
173
+ type ShareLinkOptions = {
174
+ expiresAt?: string;
175
+ allowBrowser?: boolean;
176
+ allowVnc?: boolean;
177
+ signal?: AbortSignal;
178
+ };
179
+ type TransferComputerOptions = {
180
+ targetOrgId: string;
181
+ signal?: AbortSignal;
182
+ };
183
+ type PublishPortOptions = {
184
+ port: number;
185
+ name?: string;
186
+ visibility?: "public" | "private";
187
+ signal?: AbortSignal;
188
+ };
189
+ type SnapshotRestoreOptions = {
190
+ handle?: string;
191
+ displayName?: string;
192
+ authorizedKeys?: string[];
193
+ signal?: AbortSignal;
194
+ };
195
+ declare class AgentComputer {
196
+ readonly images: ComputerImagesClient;
197
+ readonly computers: ComputersClient;
198
+ readonly snapshots: SnapshotsClient;
199
+ readonly sshKeys: SSHKeysClient;
200
+ private readonly client;
201
+ private readonly fetchImpl;
202
+ private readonly defaultPollIntervalMs;
203
+ private readonly defaultOperationTimeoutMs;
204
+ private readonly defaultComputerStateTimeoutMs;
205
+ private readonly defaultConnectRequestTimeoutMs;
206
+ constructor(options?: AgentComputerOptions);
207
+ me(signal?: AbortSignal): Promise<MeResponse>;
208
+ usage(signal?: AbortSignal): Promise<UsageEnvelope>;
209
+ resolveShare(shareToken: string, signal?: AbortSignal): Promise<ResolveShareResponse>;
210
+ redeemShare(shareToken: string, body?: Partial<CreateAccessSessionRequest>, signal?: AbortSignal): Promise<AccessSessionEnvelope>;
211
+ waitForOperation(operationOrId: string | Pick<OperationResponse, "id">, options?: WaitOptions): Promise<OperationResponse>;
212
+ waitForComputerState(computerId: string, targetState: ComputerState, options?: WaitOptions): Promise<Computer>;
213
+ computer(idOrHandle: string): Promise<Computer>;
214
+ /** @internal */
215
+ internalClient(): LowLevelClient;
216
+ /** @internal */
217
+ internalFetch(): typeof fetch;
218
+ /** @internal */
219
+ internalDefaultPollIntervalMs(): number;
220
+ /** @internal */
221
+ internalDefaultComputerStateTimeoutMs(): number;
222
+ /** @internal */
223
+ internalDefaultOperationTimeoutMs(): number;
224
+ /** @internal */
225
+ internalDefaultConnectRequestTimeoutMs(): number;
226
+ }
227
+ declare class ComputerImagesClient {
228
+ private readonly sdk;
229
+ constructor(sdk: AgentComputer);
230
+ list(signal?: AbortSignal): Promise<ComputerImageResponse[]>;
231
+ get(imageId: string, signal?: AbortSignal): Promise<ComputerImageResponse>;
232
+ getDefault(signal?: AbortSignal): Promise<ComputerImageResponse>;
233
+ }
234
+ declare class ComputersClient {
235
+ private readonly sdk;
236
+ constructor(sdk: AgentComputer);
237
+ list(signal?: AbortSignal): Promise<Computer[]>;
238
+ get(computerId: string, signal?: AbortSignal): Promise<Computer>;
239
+ getByHandle(handle: string, signal?: AbortSignal): Promise<Computer | null>;
240
+ resolve(idOrHandle: string, signal?: AbortSignal): Promise<Computer>;
241
+ checkCapacity(options?: ComputerCapacityOptions, signal?: AbortSignal): Promise<ComputerCapacityCheckResponse>;
242
+ create(options?: ComputerCreateOptions, signal?: AbortSignal): Promise<Computer>;
243
+ ensure(options?: ComputerEnsureOptions, signal?: AbortSignal): Promise<Computer>;
244
+ private defaultSource;
245
+ }
246
+ declare class Computer {
247
+ private readonly sdk;
248
+ private computer;
249
+ readonly commands: ComputerCommandsClient;
250
+ readonly pty: ComputerPtyClient;
251
+ readonly files: ComputerFilesClient;
252
+ readonly git: ComputerGitClient;
253
+ readonly mounts: ComputerMountsClient;
254
+ readonly ports: ComputerPortsClient;
255
+ readonly shares: ComputerSharesClient;
256
+ readonly snapshots: ComputerSnapshotsClient;
257
+ constructor(sdk: AgentComputer, computer: ComputerResponse);
258
+ get raw(): ComputerResponse;
259
+ get id(): string;
260
+ get handle(): string;
261
+ get displayName(): string;
262
+ get state(): ComputerState;
263
+ get sourceKind(): ComputerResponse["source_kind"];
264
+ get sourceSnapshotId(): string | null | undefined;
265
+ get createdAt(): string;
266
+ get updatedAt(): string;
267
+ get deletedAt(): string | null | undefined;
268
+ get primaryUrl(): string;
269
+ get failureReason(): string | null | undefined;
270
+ internalSdk(): AgentComputer;
271
+ refresh(signal?: AbortSignal): Promise<Computer>;
272
+ update(options: ComputerUpdateOptions, signal?: AbortSignal): Promise<Computer>;
273
+ start(signal?: AbortSignal): Promise<Computer>;
274
+ stop(signal?: AbortSignal): Promise<Computer>;
275
+ resize(options: ComputerResizeOptions | LowLevelComputerResizeOptions, signal?: AbortSignal): Promise<Computer>;
276
+ delete(signal?: AbortSignal): Promise<void>;
277
+ transfer(options: TransferComputerOptions): Promise<Computer>;
278
+ usage(signal?: AbortSignal): Promise<ComputerUsageEnvelope>;
279
+ ensureReady(options?: WaitOptions): Promise<Computer>;
280
+ ensureRunning(options?: WaitOptions): Promise<Computer>;
281
+ ensureStopped(options?: WaitOptions): Promise<Computer>;
282
+ waitUntilRunning(options?: WaitOptions): Promise<Computer>;
283
+ waitUntilStopped(options?: WaitOptions): Promise<Computer>;
284
+ getConnection(signal?: AbortSignal): Promise<ComputerConnectionResponse>;
285
+ createBrowserAccess(options?: ExecSessionCreateOptions): Promise<AccessSessionResponse>;
286
+ createVNCAccess(options?: ExecSessionCreateOptions): Promise<AccessSessionResponse>;
287
+ createSSHCertificate(body: CreateSSHCertificateRequest, signal?: AbortSignal): Promise<SSHCertificateResponse>;
288
+ execCapabilities(signal?: AbortSignal): Promise<readonly string[]>;
289
+ supportsCapability(capability: ComputerCapability, signal?: AbortSignal): Promise<boolean>;
290
+ requireCapability(capability: "files" | "git", signal?: AbortSignal): Promise<readonly string[]>;
291
+ waitForPort(port: number, options?: WaitOptions): Promise<PublishedPortResponse>;
292
+ waitForUrl(url: string, options?: WaitOptions): Promise<Response>;
293
+ waitForProcess(selectorOrPredicate: CommandSelector | ((command: CommandInfo) => boolean), options?: WaitOptions): Promise<CommandInfo>;
294
+ waitForFile(path: string, options?: WaitOptions): Promise<void>;
295
+ }
296
+ declare class ExecTransportError extends Error {
297
+ readonly status?: number;
298
+ readonly code?: string;
299
+ readonly details?: unknown;
300
+ constructor(message: string, options?: {
301
+ status?: number;
302
+ code?: string;
303
+ details?: unknown;
304
+ });
305
+ }
306
+ declare class UnsupportedCapabilityError extends Error {
307
+ readonly capability: "files" | "git";
308
+ readonly availableCapabilities: readonly string[];
309
+ constructor(capability: "files" | "git", availableCapabilities?: readonly string[]);
310
+ }
311
+ declare class CommandExitError extends Error {
312
+ readonly result: CommandResult;
313
+ constructor(result: CommandResult);
314
+ }
315
+ type ExecGatewayMethod = "List" | "Start" | "Connect" | "Update" | "SendInput" | "SendSignal" | "CloseStdin";
316
+ declare class ExecGatewayConnection {
317
+ private readonly client;
318
+ private readonly fetchImpl;
319
+ private readonly computerId;
320
+ readonly session: AccessSessionResponse;
321
+ constructor(client: LowLevelClient, fetchImpl: typeof fetch, computerId: string, session: AccessSessionResponse);
322
+ close(signal?: AbortSignal): Promise<void>;
323
+ requestJson<T>(method: ExecGatewayMethod, body: unknown, options?: {
324
+ signal?: AbortSignal;
325
+ requestTimeoutMs?: number;
326
+ }): Promise<T>;
327
+ openStream(method: "Start" | "Connect", body: unknown, options?: {
328
+ signal?: AbortSignal;
329
+ requestTimeoutMs?: number;
330
+ }): Promise<ReadableStreamDefaultReader<Uint8Array>>;
331
+ private endpoint;
332
+ private authorizationHeader;
333
+ private request;
334
+ }
335
+ declare class CommandHandle {
336
+ private readonly commands;
337
+ private readonly gateway;
338
+ private readonly reader;
339
+ private readonly selector;
340
+ private readonly stdoutChunks;
341
+ private readonly stderrChunks;
342
+ private readonly pidPromise;
343
+ private readonly resultPromise;
344
+ private pidResolve;
345
+ private pidReject;
346
+ private resolvedPid?;
347
+ private closed;
348
+ constructor(commands: ComputerCommandsClient, gateway: ExecGatewayConnection, reader: ReadableStreamDefaultReader<Uint8Array>, initialSelector: CommandSelector | undefined, handlers?: Pick<CommandStartOptions, "onStdout" | "onStderr" | "onExit">);
349
+ get pid(): number;
350
+ get stdout(): string;
351
+ get stderr(): string;
352
+ wait(options?: {
353
+ rejectOnNonZero?: boolean;
354
+ }): Promise<CommandResult>;
355
+ disconnect(): Promise<void>;
356
+ kill(signal?: CommandSignal, requestSignal?: AbortSignal): Promise<void>;
357
+ sendStdin(data: string | Uint8Array, requestSignal?: AbortSignal): Promise<void>;
358
+ closeStdin(requestSignal?: AbortSignal): Promise<void>;
359
+ awaitPid(): Promise<number>;
360
+ private currentSelector;
361
+ private consume;
362
+ }
363
+ declare class PtySession {
364
+ private readonly commands;
365
+ private readonly gateway;
366
+ private readonly reader;
367
+ private readonly selector;
368
+ private readonly outputChunks;
369
+ private readonly pidPromise;
370
+ private readonly resultPromise;
371
+ private pidResolve;
372
+ private pidReject;
373
+ private resolvedPid?;
374
+ private closed;
375
+ constructor(commands: ComputerCommandsClient, gateway: ExecGatewayConnection, reader: ReadableStreamDefaultReader<Uint8Array>, initialSelector: CommandSelector | undefined, handlers?: Pick<PtyStartOptions, "onData" | "onExit">);
376
+ get pid(): number;
377
+ get output(): string;
378
+ wait(options?: {
379
+ rejectOnNonZero?: boolean;
380
+ }): Promise<PtyResult>;
381
+ sendInput(data: string | Uint8Array, requestSignal?: AbortSignal): Promise<void>;
382
+ resize(cols: number, rows: number, requestSignal?: AbortSignal): Promise<void>;
383
+ kill(signal?: CommandSignal, requestSignal?: AbortSignal): Promise<void>;
384
+ disconnect(): Promise<void>;
385
+ awaitPid(): Promise<number>;
386
+ private currentSelector;
387
+ private consume;
388
+ }
389
+ declare class ComputerCommandsClient {
390
+ private readonly computer;
391
+ constructor(computer: Computer);
392
+ run(command: string | readonly string[], options?: CommandRunOptions): Promise<CommandResult>;
393
+ start(command: string | readonly string[], options?: CommandStartOptions): Promise<CommandHandle>;
394
+ connect(selector: CommandSelector, options?: Omit<CommandStartOptions, "stdin">): Promise<CommandHandle>;
395
+ list(signal?: AbortSignal): Promise<CommandInfo[]>;
396
+ sendStdin(selector: CommandSelector, data: string | Uint8Array, signal?: AbortSignal): Promise<void>;
397
+ sendPtyInput(selector: CommandSelector, data: string | Uint8Array, signal?: AbortSignal): Promise<void>;
398
+ closeStdin(selector: CommandSelector, signal?: AbortSignal): Promise<void>;
399
+ kill(selector: CommandSelector, signalName?: CommandSignal, signal?: AbortSignal): Promise<void>;
400
+ resizePty(selector: CommandSelector, cols: number, rows: number, signal?: AbortSignal): Promise<void>;
401
+ private sendProcessInput;
402
+ /** @internal */
403
+ createGateway(options: {
404
+ signal?: AbortSignal;
405
+ requestTimeoutMs?: number;
406
+ }): Promise<ExecGatewayConnection>;
407
+ }
408
+ declare class ComputerPtyClient {
409
+ private readonly computer;
410
+ constructor(computer: Computer);
411
+ create(options?: PtyStartOptions): Promise<PtySession>;
412
+ start(command: string | readonly string[], options?: PtyStartOptions): Promise<PtySession>;
413
+ attach(selector: CommandSelector, options?: Pick<PtyStartOptions, "requestTimeoutMs" | "signal" | "onData" | "onExit">): Promise<PtySession>;
414
+ connect(selector: CommandSelector, options?: Pick<PtyStartOptions, "requestTimeoutMs" | "signal" | "onData" | "onExit">): Promise<PtySession>;
415
+ }
416
+ declare class ComputerFilesClient {
417
+ private readonly computer;
418
+ constructor(computer: Computer);
419
+ readText(path: string, opts?: FileReadOptions | AbortSignal): Promise<string>;
420
+ readBytes(path: string, opts?: FileReadOptions): Promise<Uint8Array>;
421
+ writeText(path: string, content: string, opts?: FileWriteOptions | AbortSignal): Promise<void>;
422
+ writeBytes(path: string, content: Uint8Array, opts?: FileWriteOptions): Promise<void>;
423
+ remove(path: string, opts?: FileRemoveOptions | AbortSignal): Promise<void>;
424
+ list(path: string, opts?: FileListOptions): Promise<FileEntry[]>;
425
+ stat(path: string, opts?: FileReadOptions): Promise<FileStat>;
426
+ exists(path: string, opts?: FileReadOptions): Promise<boolean>;
427
+ patch(path: string, edits: FilePatchRequest, opts?: FilePatchOptions): Promise<{
428
+ version: number;
429
+ }>;
430
+ readRange(path: string, range: FileReadRange, opts?: FileReadOptions): Promise<Uint8Array>;
431
+ writeRange(path: string, range: FileWriteRange, content: Uint8Array, opts?: FileWriteOptions): Promise<void>;
432
+ mkdir(path: string, opts?: FileMkdirOptions): Promise<void>;
433
+ move(from: string, to: string, opts?: FileReadOptions): Promise<void>;
434
+ grep(pattern: string, opts?: FileGrepOptions): Promise<FileGrepMatch[]>;
435
+ private operate;
436
+ }
437
+ declare class ComputerGitClient {
438
+ private readonly computer;
439
+ constructor(computer: Computer);
440
+ status(signal?: AbortSignal): Promise<string>;
441
+ clone(repoUrl: string, signal?: AbortSignal): Promise<void>;
442
+ pull(signal?: AbortSignal): Promise<void>;
443
+ }
444
+ type AttachMountOptions = {
445
+ kind: "r2" | "s3" | "gcs" | "webdav";
446
+ targetPath: string;
447
+ bucket: string;
448
+ accessKeyId: string;
449
+ secretAccessKey: string;
450
+ endpoint?: string;
451
+ region?: string;
452
+ readOnly?: boolean;
453
+ vfsCacheMode?: string;
454
+ signal?: AbortSignal;
455
+ };
456
+ declare class ComputerMountsClient {
457
+ private readonly computer;
458
+ constructor(computer: Computer);
459
+ list(signal?: AbortSignal): Promise<FuseMountResponse[]>;
460
+ attach(options: AttachMountOptions): Promise<FuseMountResponse>;
461
+ detach(mountId: string, signal?: AbortSignal): Promise<FuseMountResponse>;
462
+ private find;
463
+ }
464
+ declare class ComputerPortsClient {
465
+ private readonly computer;
466
+ constructor(computer: Computer);
467
+ list(signal?: AbortSignal): Promise<ListPublishedPortsResponse["ports"]>;
468
+ publish(options: PublishPortOptions): Promise<PublishedPortResponse>;
469
+ delete(port: number, signal?: AbortSignal): Promise<PublishedPortMutationResponse["port"]>;
470
+ }
471
+ declare class ComputerSharesClient {
472
+ private readonly computer;
473
+ constructor(computer: Computer);
474
+ list(signal?: AbortSignal): Promise<ListSharesResponse["shares"]>;
475
+ createLink(options?: ShareLinkOptions): Promise<ShareResponse>;
476
+ delete(shareId: string, signal?: AbortSignal): Promise<void>;
477
+ }
478
+ declare class ComputerSnapshotsClient {
479
+ private readonly computer;
480
+ constructor(computer: Computer);
481
+ list(signal?: AbortSignal): Promise<ListSnapshotsResponse["snapshots"]>;
482
+ create(signal?: AbortSignal): Promise<SnapshotResponse>;
483
+ }
484
+ declare class SnapshotsClient {
485
+ private readonly sdk;
486
+ constructor(sdk: AgentComputer);
487
+ get(snapshotId: string, signal?: AbortSignal): Promise<SnapshotResponse>;
488
+ delete(snapshotId: string, signal?: AbortSignal): Promise<SnapshotResponse>;
489
+ restore(snapshotId: string, options?: SnapshotRestoreOptions): Promise<Computer>;
490
+ }
491
+ declare class SSHKeysClient {
492
+ private readonly sdk;
493
+ constructor(sdk: AgentComputer);
494
+ list(signal?: AbortSignal): Promise<ListSSHKeysResponse["ssh_keys"]>;
495
+ create(body: CreateSSHKeyRequest, signal?: AbortSignal): Promise<SSHKeyEnvelope["ssh_key"]>;
496
+ delete(sshKeyId: string, signal?: AbortSignal): Promise<void>;
497
+ }
498
+
499
+ export { AgentComputer, type AgentComputerOptions, type AttachMountOptions, CommandExitError, CommandHandle, type CommandInfo, type CommandOutputHandler, type CommandResult, type CommandRunOptions, type CommandSelector, type CommandSignal, type CommandStartOptions, Computer, type ComputerCapability, type ComputerCapacityOptions, ComputerCommandsClient, type ComputerCreateOptions, type ComputerEnsureOptions, ComputerFilesClient, ComputerGitClient, ComputerImagesClient, ComputerMountsClient, ComputerPortsClient, ComputerPtyClient, type ComputerResizeOptions, ComputerSharesClient, ComputerSnapshotsClient, type ComputerSource, type ComputerState, type ComputerUpdateOptions, ComputersClient, type ExecSessionCreateOptions, ExecTransportError, type FileEntry, type FileGrepMatch, type FileGrepOptions, type FileListOptions, type FileMkdirOptions, type FilePatchEdit, type FilePatchOptions, type FilePatchRequest, type FileReadOptions, type FileReadRange, type FileRemoveOptions, type FileStat, type FileWriteOptions, type FileWriteRange, type LowLevelComputerResizeOptions, type PtyOutputHandler, type PtyResult, PtySession, type PtyStartOptions, type PublishPortOptions, SSHKeysClient, type ShareLinkOptions, type SnapshotRestoreOptions, SnapshotsClient, type TransferComputerOptions, UnsupportedCapabilityError, type WaitOptions };