computer-agents 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -4
- package/dist/cloud/resources/EnvironmentsResource.d.ts +106 -17
- package/dist/cloud/resources/EnvironmentsResource.js +163 -25
- package/dist/cloud/resources/EnvironmentsResource.js.map +1 -1
- package/dist/cloud/resources/FilesResource.d.ts +28 -0
- package/dist/cloud/resources/FilesResource.js +24 -0
- package/dist/cloud/resources/FilesResource.js.map +1 -1
- package/dist/cloud/resources/index.d.ts +2 -1
- package/dist/cloud/resources/index.js.map +1 -1
- package/dist/cloud/types.d.ts +95 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ console.log(result.content);
|
|
|
44
44
|
```typescript
|
|
45
45
|
const client = new ComputerAgentsClient({
|
|
46
46
|
apiKey: 'tb_xxx', // Required
|
|
47
|
-
baseUrl: 'https://api.computer-agents.com', // Optional
|
|
47
|
+
baseUrl: 'https://api.computer-agents.com', // Optional (default)
|
|
48
48
|
timeout: 60000, // Optional (default: 60s)
|
|
49
49
|
debug: false // Optional
|
|
50
50
|
});
|
|
@@ -108,9 +108,16 @@ await client.threads.delete('thread_xxx');
|
|
|
108
108
|
Manage isolated execution environments:
|
|
109
109
|
|
|
110
110
|
```typescript
|
|
111
|
-
// Create an environment
|
|
111
|
+
// Create an environment with custom configuration
|
|
112
112
|
const env = await client.environments.create({
|
|
113
|
-
name: '
|
|
113
|
+
name: 'data-science',
|
|
114
|
+
description: 'Environment for data processing',
|
|
115
|
+
runtimes: { python: '3.12', nodejs: '20' },
|
|
116
|
+
packages: {
|
|
117
|
+
system: ['ffmpeg'],
|
|
118
|
+
python: ['pandas', 'numpy'],
|
|
119
|
+
node: ['typescript']
|
|
120
|
+
},
|
|
114
121
|
internetAccess: true
|
|
115
122
|
});
|
|
116
123
|
|
|
@@ -120,15 +127,95 @@ const environments = await client.environments.list();
|
|
|
120
127
|
// Get an environment
|
|
121
128
|
const env = await client.environments.get('env_xxx');
|
|
122
129
|
|
|
130
|
+
// Get default environment (creates one if doesn't exist)
|
|
131
|
+
const defaultEnv = await client.environments.getDefault();
|
|
132
|
+
|
|
123
133
|
// Update an environment
|
|
124
134
|
await client.environments.update('env_xxx', {
|
|
125
|
-
|
|
135
|
+
description: 'Updated description'
|
|
126
136
|
});
|
|
127
137
|
|
|
128
138
|
// Delete an environment
|
|
129
139
|
await client.environments.delete('env_xxx');
|
|
130
140
|
```
|
|
131
141
|
|
|
142
|
+
#### Runtime Management
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
// List all available runtimes and versions
|
|
146
|
+
const available = await client.environments.listAvailableRuntimes();
|
|
147
|
+
// { python: ['3.9', '3.10', '3.11', '3.12', '3.13'], nodejs: ['18', '20', '22'], ... }
|
|
148
|
+
|
|
149
|
+
// Get current runtimes for an environment
|
|
150
|
+
const runtimes = await client.environments.getRuntimes('env_xxx');
|
|
151
|
+
// { python: '3.12', nodejs: '20' }
|
|
152
|
+
|
|
153
|
+
// Set runtime versions (triggers rebuild)
|
|
154
|
+
await client.environments.setRuntimes('env_xxx', {
|
|
155
|
+
python: '3.12',
|
|
156
|
+
nodejs: '20',
|
|
157
|
+
go: '1.22'
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
#### Package Management
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
// List installed packages
|
|
165
|
+
const packages = await client.environments.listPackages('env_xxx');
|
|
166
|
+
// { system: ['ffmpeg'], python: ['pandas'], node: ['typescript'] }
|
|
167
|
+
|
|
168
|
+
// Install packages (triggers rebuild)
|
|
169
|
+
await client.environments.installPackages('env_xxx', 'python', ['requests', 'beautifulsoup4']);
|
|
170
|
+
await client.environments.installPackages('env_xxx', 'system', ['imagemagick']);
|
|
171
|
+
await client.environments.installPackages('env_xxx', 'node', ['tsx']);
|
|
172
|
+
|
|
173
|
+
// Uninstall a package (triggers rebuild)
|
|
174
|
+
await client.environments.uninstallPackage('env_xxx', 'python', 'requests');
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
#### Dockerfile Customization
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
// Get Dockerfile configuration
|
|
181
|
+
const dockerfile = await client.environments.getDockerfile('env_xxx');
|
|
182
|
+
// { baseImage: '...', dockerfileExtensions: '...', effectiveDockerfile: '...' }
|
|
183
|
+
|
|
184
|
+
// Set Dockerfile extensions (triggers rebuild)
|
|
185
|
+
await client.environments.setDockerfileExtensions('env_xxx',
|
|
186
|
+
'RUN pip install custom-package\nRUN apt-get install -y custom-tool'
|
|
187
|
+
);
|
|
188
|
+
|
|
189
|
+
// Validate Dockerfile syntax without building
|
|
190
|
+
const validation = await client.environments.validateDockerfile('env_xxx',
|
|
191
|
+
'RUN pip install something'
|
|
192
|
+
);
|
|
193
|
+
// { valid: true, warnings: [], effectiveDockerfile: '...' }
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
#### Build Management
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
// Trigger a build
|
|
200
|
+
const build = await client.environments.triggerBuild('env_xxx');
|
|
201
|
+
// { buildId: 'build_xxx', status: 'building', message: 'Build started' }
|
|
202
|
+
|
|
203
|
+
// Force rebuild even if up to date
|
|
204
|
+
await client.environments.triggerBuild('env_xxx', true);
|
|
205
|
+
|
|
206
|
+
// Get build status
|
|
207
|
+
const status = await client.environments.getBuildStatus('env_xxx');
|
|
208
|
+
// { buildStatus: 'ready', buildHash: '...', imageTag: '...', lastBuildAt: '...' }
|
|
209
|
+
|
|
210
|
+
// Get build logs
|
|
211
|
+
const logs = await client.environments.getBuildLogs('env_xxx');
|
|
212
|
+
// { logs: '...', buildStatus: 'ready' }
|
|
213
|
+
|
|
214
|
+
// Test build (validates without caching)
|
|
215
|
+
const test = await client.environments.testBuild('env_xxx');
|
|
216
|
+
// { success: true, logs: '...', duration: 45000 }
|
|
217
|
+
```
|
|
218
|
+
|
|
132
219
|
### Agents
|
|
133
220
|
|
|
134
221
|
Configure agent behavior:
|
|
@@ -268,12 +355,22 @@ Full type definitions are included:
|
|
|
268
355
|
|
|
269
356
|
```typescript
|
|
270
357
|
import type {
|
|
358
|
+
// Core types
|
|
271
359
|
Thread,
|
|
272
360
|
Environment,
|
|
273
361
|
CloudAgent,
|
|
274
362
|
Schedule,
|
|
275
363
|
BudgetStatus,
|
|
276
364
|
MessageStreamEvent,
|
|
365
|
+
|
|
366
|
+
// Environment configuration
|
|
367
|
+
RuntimeConfig,
|
|
368
|
+
PackagesConfig,
|
|
369
|
+
AvailableRuntimes,
|
|
370
|
+
PackageType,
|
|
371
|
+
BuildStatus,
|
|
372
|
+
BuildStatusResult,
|
|
373
|
+
DockerfileResult,
|
|
277
374
|
} from 'computer-agents';
|
|
278
375
|
```
|
|
279
376
|
|
|
@@ -2,42 +2,139 @@
|
|
|
2
2
|
* Environments Resource Manager
|
|
3
3
|
*
|
|
4
4
|
* Handles environment management including CRUD operations,
|
|
5
|
-
* container lifecycle, and
|
|
5
|
+
* container lifecycle, runtime/package management, and build management.
|
|
6
6
|
*
|
|
7
|
-
* Note:
|
|
7
|
+
* Note: userId is now embedded in the API key, so routes use
|
|
8
8
|
* simplified paths without /projects/:projectId prefix.
|
|
9
9
|
*/
|
|
10
10
|
import type { ApiClient } from '../ApiClient';
|
|
11
|
-
import type { Environment, CreateEnvironmentParams, UpdateEnvironmentParams, ContainerStatus, BuildResult, StartContainerParams, StartContainerResult } from '../types';
|
|
11
|
+
import type { Environment, CreateEnvironmentParams, UpdateEnvironmentParams, ContainerStatus, BuildResult, BuildStatusResult, BuildLogsResult, TestBuildResult, StartContainerParams, StartContainerResult, RuntimeConfig, PackagesConfig, AvailableRuntimes, PackageType, InstallPackagesResult, DockerfileResult, ValidateDockerfileResult } from '../types';
|
|
12
|
+
export interface ListEnvironmentsParams {
|
|
13
|
+
isActive?: boolean;
|
|
14
|
+
isDefault?: boolean;
|
|
15
|
+
limit?: number;
|
|
16
|
+
offset?: number;
|
|
17
|
+
}
|
|
12
18
|
export declare class EnvironmentsResource {
|
|
13
19
|
private readonly client;
|
|
14
20
|
constructor(client: ApiClient);
|
|
15
21
|
/**
|
|
16
22
|
* Create a new environment
|
|
17
23
|
*
|
|
18
|
-
*
|
|
24
|
+
* User is determined automatically from the API key.
|
|
19
25
|
*/
|
|
20
26
|
create(params: CreateEnvironmentParams): Promise<Environment>;
|
|
21
27
|
/**
|
|
22
28
|
* List all environments
|
|
23
29
|
*
|
|
24
|
-
*
|
|
30
|
+
* User is determined automatically from the API key.
|
|
25
31
|
*/
|
|
26
|
-
list(): Promise<Environment[]>;
|
|
32
|
+
list(params?: ListEnvironmentsParams): Promise<Environment[]>;
|
|
27
33
|
/**
|
|
28
34
|
* Get an environment by ID
|
|
29
35
|
*/
|
|
30
36
|
get(environmentId: string): Promise<Environment>;
|
|
37
|
+
/**
|
|
38
|
+
* Get the user's default environment
|
|
39
|
+
* Creates one if it doesn't exist.
|
|
40
|
+
*/
|
|
41
|
+
getDefault(): Promise<Environment>;
|
|
31
42
|
/**
|
|
32
43
|
* Update an environment
|
|
33
44
|
*/
|
|
34
45
|
update(environmentId: string, params: UpdateEnvironmentParams): Promise<Environment>;
|
|
35
46
|
/**
|
|
36
|
-
* Delete an environment
|
|
47
|
+
* Delete an environment (soft delete)
|
|
48
|
+
*/
|
|
49
|
+
delete(environmentId: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Get all available runtime versions
|
|
52
|
+
* Returns supported versions for Python, Node.js, Go, PHP, Java, Ruby, Rust
|
|
53
|
+
*/
|
|
54
|
+
listAvailableRuntimes(): Promise<AvailableRuntimes>;
|
|
55
|
+
/**
|
|
56
|
+
* Get current runtime versions for an environment
|
|
57
|
+
*/
|
|
58
|
+
getRuntimes(environmentId: string): Promise<RuntimeConfig>;
|
|
59
|
+
/**
|
|
60
|
+
* Set runtime versions for an environment
|
|
61
|
+
* This triggers a rebuild of the environment image.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* await client.environments.setRuntimes('env_xyz', {
|
|
65
|
+
* python: '3.12',
|
|
66
|
+
* nodejs: '20',
|
|
67
|
+
* go: '1.22'
|
|
68
|
+
* });
|
|
69
|
+
*/
|
|
70
|
+
setRuntimes(environmentId: string, runtimes: RuntimeConfig): Promise<Environment>;
|
|
71
|
+
/**
|
|
72
|
+
* List installed packages for an environment
|
|
73
|
+
*/
|
|
74
|
+
listPackages(environmentId: string): Promise<PackagesConfig>;
|
|
75
|
+
/**
|
|
76
|
+
* Install packages in an environment
|
|
77
|
+
* This triggers a rebuild of the environment image.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* await client.environments.installPackages('env_xyz', 'python', ['pandas', 'numpy']);
|
|
81
|
+
* await client.environments.installPackages('env_xyz', 'system', ['ffmpeg', 'imagemagick']);
|
|
82
|
+
* await client.environments.installPackages('env_xyz', 'node', ['typescript', 'tsx']);
|
|
83
|
+
*/
|
|
84
|
+
installPackages(environmentId: string, type: PackageType, packages: string[]): Promise<InstallPackagesResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Uninstall a package from an environment
|
|
87
|
+
* This triggers a rebuild of the environment image.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* await client.environments.uninstallPackage('env_xyz', 'python', 'pandas');
|
|
37
91
|
*/
|
|
38
|
-
|
|
92
|
+
uninstallPackage(environmentId: string, type: PackageType, packageName: string): Promise<Environment>;
|
|
39
93
|
/**
|
|
40
|
-
*
|
|
94
|
+
* Get the Dockerfile configuration for an environment
|
|
95
|
+
* Returns the base image, custom extensions, and effective Dockerfile
|
|
96
|
+
*/
|
|
97
|
+
getDockerfile(environmentId: string): Promise<DockerfileResult>;
|
|
98
|
+
/**
|
|
99
|
+
* Update Dockerfile extensions for an environment
|
|
100
|
+
* Extensions are added after runtime and package installation but before the entrypoint.
|
|
101
|
+
* This triggers a rebuild of the environment image.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* await client.environments.setDockerfileExtensions('env_xyz',
|
|
105
|
+
* 'RUN apt-get update && apt-get install -y custom-tool\nRUN pip install custom-package'
|
|
106
|
+
* );
|
|
107
|
+
*/
|
|
108
|
+
setDockerfileExtensions(environmentId: string, dockerfileExtensions: string): Promise<Environment>;
|
|
109
|
+
/**
|
|
110
|
+
* Validate Dockerfile syntax without building
|
|
111
|
+
*/
|
|
112
|
+
validateDockerfile(environmentId: string, dockerfileExtensions: string): Promise<ValidateDockerfileResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Trigger a build of the environment image
|
|
115
|
+
*
|
|
116
|
+
* @param environmentId - Environment ID
|
|
117
|
+
* @param force - Force rebuild even if up to date (default: false)
|
|
118
|
+
*/
|
|
119
|
+
triggerBuild(environmentId: string, force?: boolean): Promise<{
|
|
120
|
+
buildId: string;
|
|
121
|
+
status: string;
|
|
122
|
+
message: string;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Get build status for an environment
|
|
126
|
+
*/
|
|
127
|
+
getBuildStatus(environmentId: string): Promise<BuildStatusResult>;
|
|
128
|
+
/**
|
|
129
|
+
* Get build logs for an environment
|
|
130
|
+
*/
|
|
131
|
+
getBuildLogs(environmentId: string): Promise<BuildLogsResult>;
|
|
132
|
+
/**
|
|
133
|
+
* Perform a test build to validate configuration without caching
|
|
134
|
+
*/
|
|
135
|
+
testBuild(environmentId: string): Promise<TestBuildResult>;
|
|
136
|
+
/**
|
|
137
|
+
* @deprecated Use triggerBuild instead
|
|
41
138
|
*/
|
|
42
139
|
build(environmentId: string, force?: boolean): Promise<BuildResult>;
|
|
43
140
|
/**
|
|
@@ -59,14 +156,6 @@ export declare class EnvironmentsResource {
|
|
|
59
156
|
* Get container status for an environment
|
|
60
157
|
*/
|
|
61
158
|
getStatus(environmentId: string): Promise<ContainerStatus>;
|
|
62
|
-
/**
|
|
63
|
-
* Get the Dockerfile for an environment
|
|
64
|
-
*/
|
|
65
|
-
getDockerfile(environmentId: string): Promise<string>;
|
|
66
|
-
/**
|
|
67
|
-
* Update the Dockerfile for an environment
|
|
68
|
-
*/
|
|
69
|
-
updateDockerfile(environmentId: string, dockerfile: string): Promise<void>;
|
|
70
159
|
/**
|
|
71
160
|
* Get the Codex configuration for an environment
|
|
72
161
|
*/
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Environments Resource Manager
|
|
4
4
|
*
|
|
5
5
|
* Handles environment management including CRUD operations,
|
|
6
|
-
* container lifecycle, and
|
|
6
|
+
* container lifecycle, runtime/package management, and build management.
|
|
7
7
|
*
|
|
8
|
-
* Note:
|
|
8
|
+
* Note: userId is now embedded in the API key, so routes use
|
|
9
9
|
* simplified paths without /projects/:projectId prefix.
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -18,7 +18,7 @@ class EnvironmentsResource {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new environment
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* User is determined automatically from the API key.
|
|
22
22
|
*/
|
|
23
23
|
async create(params) {
|
|
24
24
|
const response = await this.client.post(`/environments`, params);
|
|
@@ -27,10 +27,20 @@ class EnvironmentsResource {
|
|
|
27
27
|
/**
|
|
28
28
|
* List all environments
|
|
29
29
|
*
|
|
30
|
-
*
|
|
30
|
+
* User is determined automatically from the API key.
|
|
31
31
|
*/
|
|
32
|
-
async list() {
|
|
33
|
-
const
|
|
32
|
+
async list(params) {
|
|
33
|
+
const queryParams = new URLSearchParams();
|
|
34
|
+
if (params?.isActive !== undefined)
|
|
35
|
+
queryParams.set('isActive', String(params.isActive));
|
|
36
|
+
if (params?.isDefault !== undefined)
|
|
37
|
+
queryParams.set('isDefault', String(params.isDefault));
|
|
38
|
+
if (params?.limit !== undefined)
|
|
39
|
+
queryParams.set('limit', String(params.limit));
|
|
40
|
+
if (params?.offset !== undefined)
|
|
41
|
+
queryParams.set('offset', String(params.offset));
|
|
42
|
+
const queryString = queryParams.toString();
|
|
43
|
+
const response = await this.client.get(`/environments${queryString ? `?${queryString}` : ''}`);
|
|
34
44
|
return response.data;
|
|
35
45
|
}
|
|
36
46
|
/**
|
|
@@ -40,29 +50,170 @@ class EnvironmentsResource {
|
|
|
40
50
|
const response = await this.client.get(`/environments/${environmentId}`);
|
|
41
51
|
return response.environment;
|
|
42
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Get the user's default environment
|
|
55
|
+
* Creates one if it doesn't exist.
|
|
56
|
+
*/
|
|
57
|
+
async getDefault() {
|
|
58
|
+
const response = await this.client.get(`/environments/default`);
|
|
59
|
+
return response;
|
|
60
|
+
}
|
|
43
61
|
/**
|
|
44
62
|
* Update an environment
|
|
45
63
|
*/
|
|
46
64
|
async update(environmentId, params) {
|
|
47
|
-
const response = await this.client.
|
|
65
|
+
const response = await this.client.patch(`/environments/${environmentId}`, params);
|
|
48
66
|
return response.environment;
|
|
49
67
|
}
|
|
50
68
|
/**
|
|
51
|
-
* Delete an environment
|
|
69
|
+
* Delete an environment (soft delete)
|
|
52
70
|
*/
|
|
53
|
-
async delete(environmentId
|
|
54
|
-
await this.client.delete(`/environments/${environmentId}
|
|
71
|
+
async delete(environmentId) {
|
|
72
|
+
await this.client.delete(`/environments/${environmentId}`);
|
|
55
73
|
}
|
|
56
74
|
// =========================================================================
|
|
57
|
-
//
|
|
75
|
+
// Runtime Management
|
|
76
|
+
// =========================================================================
|
|
77
|
+
/**
|
|
78
|
+
* Get all available runtime versions
|
|
79
|
+
* Returns supported versions for Python, Node.js, Go, PHP, Java, Ruby, Rust
|
|
80
|
+
*/
|
|
81
|
+
async listAvailableRuntimes() {
|
|
82
|
+
const response = await this.client.get(`/environments/runtimes/available`);
|
|
83
|
+
return response.runtimes;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get current runtime versions for an environment
|
|
87
|
+
*/
|
|
88
|
+
async getRuntimes(environmentId) {
|
|
89
|
+
const response = await this.client.get(`/environments/${environmentId}/runtimes`);
|
|
90
|
+
return response.runtimes;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Set runtime versions for an environment
|
|
94
|
+
* This triggers a rebuild of the environment image.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* await client.environments.setRuntimes('env_xyz', {
|
|
98
|
+
* python: '3.12',
|
|
99
|
+
* nodejs: '20',
|
|
100
|
+
* go: '1.22'
|
|
101
|
+
* });
|
|
102
|
+
*/
|
|
103
|
+
async setRuntimes(environmentId, runtimes) {
|
|
104
|
+
const response = await this.client.put(`/environments/${environmentId}/runtimes`, { runtimes });
|
|
105
|
+
return response.environment;
|
|
106
|
+
}
|
|
107
|
+
// =========================================================================
|
|
108
|
+
// Package Management
|
|
109
|
+
// =========================================================================
|
|
110
|
+
/**
|
|
111
|
+
* List installed packages for an environment
|
|
112
|
+
*/
|
|
113
|
+
async listPackages(environmentId) {
|
|
114
|
+
const response = await this.client.get(`/environments/${environmentId}/packages`);
|
|
115
|
+
return response.packages;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Install packages in an environment
|
|
119
|
+
* This triggers a rebuild of the environment image.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* await client.environments.installPackages('env_xyz', 'python', ['pandas', 'numpy']);
|
|
123
|
+
* await client.environments.installPackages('env_xyz', 'system', ['ffmpeg', 'imagemagick']);
|
|
124
|
+
* await client.environments.installPackages('env_xyz', 'node', ['typescript', 'tsx']);
|
|
125
|
+
*/
|
|
126
|
+
async installPackages(environmentId, type, packages) {
|
|
127
|
+
const response = await this.client.post(`/environments/${environmentId}/packages`, { type, packages });
|
|
128
|
+
return response;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Uninstall a package from an environment
|
|
132
|
+
* This triggers a rebuild of the environment image.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* await client.environments.uninstallPackage('env_xyz', 'python', 'pandas');
|
|
136
|
+
*/
|
|
137
|
+
async uninstallPackage(environmentId, type, packageName) {
|
|
138
|
+
const response = await this.client.delete(`/environments/${environmentId}/packages/${type}/${packageName}`);
|
|
139
|
+
return response.environment;
|
|
140
|
+
}
|
|
141
|
+
// =========================================================================
|
|
142
|
+
// Dockerfile Management
|
|
143
|
+
// =========================================================================
|
|
144
|
+
/**
|
|
145
|
+
* Get the Dockerfile configuration for an environment
|
|
146
|
+
* Returns the base image, custom extensions, and effective Dockerfile
|
|
147
|
+
*/
|
|
148
|
+
async getDockerfile(environmentId) {
|
|
149
|
+
const response = await this.client.get(`/environments/${environmentId}/dockerfile`);
|
|
150
|
+
return response;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Update Dockerfile extensions for an environment
|
|
154
|
+
* Extensions are added after runtime and package installation but before the entrypoint.
|
|
155
|
+
* This triggers a rebuild of the environment image.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* await client.environments.setDockerfileExtensions('env_xyz',
|
|
159
|
+
* 'RUN apt-get update && apt-get install -y custom-tool\nRUN pip install custom-package'
|
|
160
|
+
* );
|
|
161
|
+
*/
|
|
162
|
+
async setDockerfileExtensions(environmentId, dockerfileExtensions) {
|
|
163
|
+
const response = await this.client.put(`/environments/${environmentId}/dockerfile`, { dockerfileExtensions });
|
|
164
|
+
return response.environment;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Validate Dockerfile syntax without building
|
|
168
|
+
*/
|
|
169
|
+
async validateDockerfile(environmentId, dockerfileExtensions) {
|
|
170
|
+
const response = await this.client.post(`/environments/${environmentId}/dockerfile/validate`, { dockerfileExtensions });
|
|
171
|
+
return response;
|
|
172
|
+
}
|
|
58
173
|
// =========================================================================
|
|
174
|
+
// Build Management
|
|
175
|
+
// =========================================================================
|
|
176
|
+
/**
|
|
177
|
+
* Trigger a build of the environment image
|
|
178
|
+
*
|
|
179
|
+
* @param environmentId - Environment ID
|
|
180
|
+
* @param force - Force rebuild even if up to date (default: false)
|
|
181
|
+
*/
|
|
182
|
+
async triggerBuild(environmentId, force = false) {
|
|
183
|
+
const response = await this.client.post(`/environments/${environmentId}/build${force ? '?force=true' : ''}`, {});
|
|
184
|
+
return response;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get build status for an environment
|
|
188
|
+
*/
|
|
189
|
+
async getBuildStatus(environmentId) {
|
|
190
|
+
const response = await this.client.get(`/environments/${environmentId}/build/status`);
|
|
191
|
+
return response;
|
|
192
|
+
}
|
|
59
193
|
/**
|
|
60
|
-
*
|
|
194
|
+
* Get build logs for an environment
|
|
195
|
+
*/
|
|
196
|
+
async getBuildLogs(environmentId) {
|
|
197
|
+
const response = await this.client.get(`/environments/${environmentId}/build/logs`);
|
|
198
|
+
return response;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Perform a test build to validate configuration without caching
|
|
202
|
+
*/
|
|
203
|
+
async testBuild(environmentId) {
|
|
204
|
+
const response = await this.client.post(`/environments/${environmentId}/build/test`, {});
|
|
205
|
+
return response;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* @deprecated Use triggerBuild instead
|
|
61
209
|
*/
|
|
62
210
|
async build(environmentId, force = false) {
|
|
63
211
|
const response = await this.client.post(`/environments/${environmentId}/build`, { force });
|
|
64
212
|
return response;
|
|
65
213
|
}
|
|
214
|
+
// =========================================================================
|
|
215
|
+
// Container Lifecycle
|
|
216
|
+
// =========================================================================
|
|
66
217
|
/**
|
|
67
218
|
* Start the environment's container
|
|
68
219
|
*/
|
|
@@ -87,19 +238,6 @@ class EnvironmentsResource {
|
|
|
87
238
|
// =========================================================================
|
|
88
239
|
// Configuration Management
|
|
89
240
|
// =========================================================================
|
|
90
|
-
/**
|
|
91
|
-
* Get the Dockerfile for an environment
|
|
92
|
-
*/
|
|
93
|
-
async getDockerfile(environmentId) {
|
|
94
|
-
const response = await this.client.get(`/environments/${environmentId}/dockerfile`);
|
|
95
|
-
return response.dockerfile;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Update the Dockerfile for an environment
|
|
99
|
-
*/
|
|
100
|
-
async updateDockerfile(environmentId, dockerfile) {
|
|
101
|
-
await this.client.put(`/environments/${environmentId}/dockerfile`, { dockerfile });
|
|
102
|
-
}
|
|
103
241
|
/**
|
|
104
242
|
* Get the Codex configuration for an environment
|
|
105
243
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentsResource.js","sourceRoot":"","sources":["../../../src/cloud/resources/EnvironmentsResource.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"EnvironmentsResource.js","sourceRoot":"","sources":["../../../src/cloud/resources/EnvironmentsResource.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA8BH,MAAa,oBAAoB;IACF;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA+B;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,eAAe,EACf,MAAM,CACP,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,MAA+B;QACxC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,MAAM,EAAE,QAAQ,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzF,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5F,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnF,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,gBAAgB,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACvD,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,aAAqB;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,EAAE,CACjC,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,uBAAuB,CACxB,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,aAAqB,EACrB,MAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACtC,iBAAiB,aAAa,EAAE,EAChC,MAAM,CACP,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAE5E;;;OAGG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,kCAAkC,CACnC,CAAC;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,aAAqB;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,WAAW,CAC1C,CAAC;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,WAAW,CACf,aAAqB,EACrB,QAAuB;QAEvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,WAAW,EACzC,EAAE,QAAQ,EAAE,CACb,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAE5E;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,aAAqB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,WAAW,CAC1C,CAAC;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,eAAe,CACnB,aAAqB,EACrB,IAAiB,EACjB,QAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,iBAAiB,aAAa,WAAW,EACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,aAAqB,EACrB,IAAiB,EACjB,WAAmB;QAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CACvC,iBAAiB,aAAa,aAAa,IAAI,IAAI,WAAW,EAAE,CACjE,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,4EAA4E;IAC5E,wBAAwB;IACxB,4EAA4E;IAE5E;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,aAAqB;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,aAAa,CAC5C,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,uBAAuB,CAC3B,aAAqB,EACrB,oBAA4B;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,aAAa,EAC3C,EAAE,oBAAoB,EAAE,CACzB,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,aAAqB,EACrB,oBAA4B;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,iBAAiB,aAAa,sBAAsB,EACpD,EAAE,oBAAoB,EAAE,CACzB,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAE5E;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,aAAqB,EACrB,QAAiB,KAAK;QAEtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,iBAAiB,aAAa,SAAS,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EACnE,EAAE,CACH,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,aAAqB;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,eAAe,CAC9C,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,aAAqB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,aAAa,CAC5C,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,aAAqB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,iBAAiB,aAAa,aAAa,EAC3C,EAAE,CACH,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,aAAqB,EACrB,QAAiB,KAAK;QAEtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,iBAAiB,aAAa,QAAQ,EACtC,EAAE,KAAK,EAAE,CACV,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAE5E;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,aAAqB,EACrB,SAA+B,EAAE;QAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,iBAAiB,aAAa,QAAQ,EACtC,MAAM,CACP,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,aAAqB,EACrB,OAAiD;QAEjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAKrC,iBAAiB,aAAa,OAAO,EACrC,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,aAAqB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,SAAS,CACxC,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,aAAqB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,aAAa,SAAS,CACxC,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,aAAqB,EACrB,MAAc;QAEd,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACnB,iBAAiB,aAAa,SAAS,EACvC,EAAE,MAAM,EAAE,CACX,CAAC;IACJ,CAAC;CACF;AA7WD,oDA6WC"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* API Endpoints (matching server.ts):
|
|
8
8
|
* - GET /environments/:environmentId/files - List files
|
|
9
9
|
* - POST /environments/:environmentId/files/upload - Upload file (multipart)
|
|
10
|
+
* - POST /environments/:environmentId/files/mkdir - Create directory
|
|
10
11
|
* - GET /environments/:environmentId/files/download/* - Download file
|
|
11
12
|
* - DELETE /environments/:environmentId/files/* - Delete file
|
|
12
13
|
* - POST /environments/:environmentId/files/move - Move/rename file
|
|
@@ -81,6 +82,14 @@ export interface DeleteFileResult {
|
|
|
81
82
|
environmentId: string;
|
|
82
83
|
filePath: string;
|
|
83
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Result from creating a directory
|
|
87
|
+
*/
|
|
88
|
+
export interface CreateDirectoryResult {
|
|
89
|
+
success: boolean;
|
|
90
|
+
path: string;
|
|
91
|
+
environmentId: string;
|
|
92
|
+
}
|
|
84
93
|
export declare class FilesResource {
|
|
85
94
|
private readonly client;
|
|
86
95
|
constructor(client: ApiClient);
|
|
@@ -170,4 +179,23 @@ export declare class FilesResource {
|
|
|
170
179
|
* ```
|
|
171
180
|
*/
|
|
172
181
|
moveFile(params: MoveFileParams): Promise<MoveFileResult>;
|
|
182
|
+
/**
|
|
183
|
+
* Create a directory in an environment workspace
|
|
184
|
+
*
|
|
185
|
+
* Parent directories are created automatically if they don't exist.
|
|
186
|
+
*
|
|
187
|
+
* @param environmentId - The environment ID
|
|
188
|
+
* @param path - Directory path to create (relative to workspace root)
|
|
189
|
+
* @returns Create directory result
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* // Create a simple directory
|
|
194
|
+
* await client.files.createDirectory('env_xxx', 'src/components');
|
|
195
|
+
*
|
|
196
|
+
* // Create nested directories (parents created automatically)
|
|
197
|
+
* await client.files.createDirectory('env_xxx', 'src/components/ui/buttons');
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
createDirectory(environmentId: string, path: string): Promise<CreateDirectoryResult>;
|
|
173
201
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* API Endpoints (matching server.ts):
|
|
9
9
|
* - GET /environments/:environmentId/files - List files
|
|
10
10
|
* - POST /environments/:environmentId/files/upload - Upload file (multipart)
|
|
11
|
+
* - POST /environments/:environmentId/files/mkdir - Create directory
|
|
11
12
|
* - GET /environments/:environmentId/files/download/* - Download file
|
|
12
13
|
* - DELETE /environments/:environmentId/files/* - Delete file
|
|
13
14
|
* - POST /environments/:environmentId/files/move - Move/rename file
|
|
@@ -175,6 +176,29 @@ class FilesResource {
|
|
|
175
176
|
const { environmentId, sourcePath, destPath } = params;
|
|
176
177
|
return this.client.post(`/environments/${environmentId}/files/move`, { sourcePath, destPath });
|
|
177
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Create a directory in an environment workspace
|
|
181
|
+
*
|
|
182
|
+
* Parent directories are created automatically if they don't exist.
|
|
183
|
+
*
|
|
184
|
+
* @param environmentId - The environment ID
|
|
185
|
+
* @param path - Directory path to create (relative to workspace root)
|
|
186
|
+
* @returns Create directory result
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```typescript
|
|
190
|
+
* // Create a simple directory
|
|
191
|
+
* await client.files.createDirectory('env_xxx', 'src/components');
|
|
192
|
+
*
|
|
193
|
+
* // Create nested directories (parents created automatically)
|
|
194
|
+
* await client.files.createDirectory('env_xxx', 'src/components/ui/buttons');
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
async createDirectory(environmentId, path) {
|
|
198
|
+
// Normalize path - remove leading slash if present
|
|
199
|
+
const normalizedPath = path.replace(/^\/+/, '');
|
|
200
|
+
return this.client.post(`/environments/${environmentId}/files/mkdir`, { path: normalizedPath });
|
|
201
|
+
}
|
|
178
202
|
}
|
|
179
203
|
exports.FilesResource = FilesResource;
|
|
180
204
|
//# sourceMappingURL=FilesResource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilesResource.js","sourceRoot":"","sources":["../../../src/cloud/resources/FilesResource.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"FilesResource.js","sourceRoot":"","sources":["../../../src/cloud/resources/FilesResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { ProjectsResource } from './ProjectsResource';
|
|
7
7
|
export { EnvironmentsResource } from './EnvironmentsResource';
|
|
8
|
+
export type { ListEnvironmentsParams } from './EnvironmentsResource';
|
|
8
9
|
export { ThreadsResource } from './ThreadsResource';
|
|
9
10
|
export type { StreamEventCallback, SendMessageOptions, SendMessageResult } from './ThreadsResource';
|
|
10
11
|
export { RunsResource } from './RunsResource';
|
|
@@ -13,4 +14,4 @@ export { BudgetResource, BillingResource } from './BudgetResource';
|
|
|
13
14
|
export { SchedulesResource } from './SchedulesResource';
|
|
14
15
|
export { GitResource } from './GitResource';
|
|
15
16
|
export { FilesResource } from './FilesResource';
|
|
16
|
-
export type { EnvironmentFile, ListFilesResult, UploadFileParams, UploadFileResult, MoveFileParams, MoveFileResult, DeleteFileResult, } from './FilesResource';
|
|
17
|
+
export type { EnvironmentFile, ListFilesResult, UploadFileParams, UploadFileResult, MoveFileParams, MoveFileResult, DeleteFileResult, CreateDirectoryResult, } from './FilesResource';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cloud/resources/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cloud/resources/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAE7B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAmE;AAA1D,gHAAA,cAAc,OAAA;AAAE,iHAAA,eAAe,OAAA;AACxC,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"}
|
package/dist/cloud/types.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ export interface ProjectStats {
|
|
|
65
65
|
storageBytes: number;
|
|
66
66
|
}
|
|
67
67
|
export type EnvironmentStatus = 'stopped' | 'building' | 'running' | 'error';
|
|
68
|
+
export type BuildStatus = 'pending' | 'building' | 'ready' | 'failed';
|
|
68
69
|
export interface EnvironmentVariable {
|
|
69
70
|
key: string;
|
|
70
71
|
value: string;
|
|
@@ -77,27 +78,78 @@ export interface McpServer {
|
|
|
77
78
|
url?: string;
|
|
78
79
|
bearerToken?: string;
|
|
79
80
|
env?: Record<string, string>;
|
|
81
|
+
enabled?: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Runtime version configuration
|
|
85
|
+
* Keys are runtime names (python, nodejs, go, etc.)
|
|
86
|
+
* Values are version strings
|
|
87
|
+
*/
|
|
88
|
+
export interface RuntimeConfig {
|
|
89
|
+
python?: string;
|
|
90
|
+
nodejs?: string;
|
|
91
|
+
go?: string;
|
|
92
|
+
php?: string;
|
|
93
|
+
java?: string;
|
|
94
|
+
ruby?: string;
|
|
95
|
+
rust?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Package configuration by type
|
|
99
|
+
*/
|
|
100
|
+
export interface PackagesConfig {
|
|
101
|
+
system?: string[];
|
|
102
|
+
python?: string[];
|
|
103
|
+
node?: string[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Available runtimes with their supported versions
|
|
107
|
+
*/
|
|
108
|
+
export interface AvailableRuntimes {
|
|
109
|
+
python: string[];
|
|
110
|
+
nodejs: string[];
|
|
111
|
+
go: string[];
|
|
112
|
+
php: string[];
|
|
113
|
+
java: string[];
|
|
114
|
+
ruby: string[];
|
|
115
|
+
rust: string[];
|
|
80
116
|
}
|
|
81
117
|
export interface Environment {
|
|
82
118
|
id: string;
|
|
83
|
-
|
|
119
|
+
userId: string;
|
|
84
120
|
name: string;
|
|
85
121
|
description?: string;
|
|
86
122
|
status: EnvironmentStatus;
|
|
123
|
+
baseImage?: string;
|
|
124
|
+
dockerfileExtensions?: string;
|
|
125
|
+
runtimes?: RuntimeConfig;
|
|
126
|
+
packages?: PackagesConfig;
|
|
87
127
|
environmentVariables?: EnvironmentVariable[];
|
|
88
128
|
secrets?: EnvironmentVariable[];
|
|
89
129
|
setupScripts?: string[];
|
|
90
130
|
mcpServers?: McpServer[];
|
|
91
131
|
documentation?: string[];
|
|
92
132
|
internetAccess?: boolean;
|
|
133
|
+
buildStatus?: BuildStatus;
|
|
134
|
+
buildHash?: string;
|
|
135
|
+
buildError?: string;
|
|
136
|
+
buildLogs?: string;
|
|
137
|
+
lastBuildAt?: string;
|
|
138
|
+
imageTag?: string;
|
|
93
139
|
isDefault?: boolean;
|
|
140
|
+
isActive?: boolean;
|
|
94
141
|
createdAt: string;
|
|
95
142
|
updatedAt: string;
|
|
96
143
|
deletedAt?: string;
|
|
144
|
+
/** @deprecated Use userId instead */
|
|
145
|
+
projectId?: string;
|
|
97
146
|
}
|
|
98
147
|
export interface CreateEnvironmentParams {
|
|
99
148
|
name: string;
|
|
100
149
|
description?: string;
|
|
150
|
+
runtimes?: RuntimeConfig;
|
|
151
|
+
packages?: PackagesConfig;
|
|
152
|
+
dockerfileExtensions?: string;
|
|
101
153
|
environmentVariables?: EnvironmentVariable[];
|
|
102
154
|
secrets?: EnvironmentVariable[];
|
|
103
155
|
setupScripts?: string[];
|
|
@@ -109,11 +161,15 @@ export interface CreateEnvironmentParams {
|
|
|
109
161
|
export interface UpdateEnvironmentParams {
|
|
110
162
|
name?: string;
|
|
111
163
|
description?: string;
|
|
164
|
+
runtimes?: RuntimeConfig;
|
|
165
|
+
packages?: PackagesConfig;
|
|
166
|
+
dockerfileExtensions?: string;
|
|
112
167
|
environmentVariables?: EnvironmentVariable[];
|
|
113
168
|
secrets?: EnvironmentVariable[];
|
|
114
169
|
setupScripts?: string[];
|
|
115
170
|
mcpServers?: McpServer[];
|
|
116
171
|
internetAccess?: boolean;
|
|
172
|
+
isDefault?: boolean;
|
|
117
173
|
}
|
|
118
174
|
export interface ContainerStatus {
|
|
119
175
|
status: EnvironmentStatus;
|
|
@@ -129,9 +185,45 @@ export interface ContainerStatus {
|
|
|
129
185
|
export interface BuildResult {
|
|
130
186
|
success: boolean;
|
|
131
187
|
imageTag: string;
|
|
132
|
-
|
|
133
|
-
|
|
188
|
+
buildHash?: string;
|
|
189
|
+
logs?: string;
|
|
190
|
+
error?: string;
|
|
191
|
+
duration?: number;
|
|
192
|
+
environmentId?: string;
|
|
193
|
+
environmentName?: string;
|
|
194
|
+
}
|
|
195
|
+
export interface BuildStatusResult {
|
|
196
|
+
buildStatus: BuildStatus;
|
|
197
|
+
buildHash?: string;
|
|
198
|
+
imageTag?: string;
|
|
199
|
+
lastBuildAt?: string;
|
|
200
|
+
buildError?: string;
|
|
201
|
+
}
|
|
202
|
+
export interface BuildLogsResult {
|
|
203
|
+
logs: string;
|
|
204
|
+
buildStatus: BuildStatus;
|
|
205
|
+
}
|
|
206
|
+
export interface TestBuildResult {
|
|
207
|
+
success: boolean;
|
|
208
|
+
logs: string;
|
|
209
|
+
duration: number;
|
|
210
|
+
imageTag?: string;
|
|
211
|
+
}
|
|
212
|
+
export interface DockerfileResult {
|
|
213
|
+
baseImage: string;
|
|
214
|
+
dockerfileExtensions?: string;
|
|
215
|
+
effectiveDockerfile: string;
|
|
216
|
+
}
|
|
217
|
+
export interface ValidateDockerfileResult {
|
|
218
|
+
valid: boolean;
|
|
219
|
+
warnings: string[];
|
|
220
|
+
effectiveDockerfile: string;
|
|
221
|
+
}
|
|
222
|
+
export interface InstallPackagesResult {
|
|
223
|
+
environment: Environment;
|
|
224
|
+
installed: string[];
|
|
134
225
|
}
|
|
226
|
+
export type PackageType = 'system' | 'python' | 'node';
|
|
135
227
|
export interface StartContainerParams {
|
|
136
228
|
workspaceId?: string;
|
|
137
229
|
cpus?: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,6 @@
|
|
|
23
23
|
export { ComputerAgentsClient, CloudClient, TestbaseClient, ApiClientError, } from './ComputerAgentsClient';
|
|
24
24
|
export type { ComputerAgentsClientConfig, RunOptions, RunResult, ApiClientConfig, } from './ComputerAgentsClient';
|
|
25
25
|
export { ProjectsResource, EnvironmentsResource, ThreadsResource, RunsResource, AgentsResource, BudgetResource, BillingResource, SchedulesResource, GitResource, } from './cloud/resources';
|
|
26
|
-
export type { StreamEventCallback, SendMessageOptions, SendMessageResult, } from './cloud/resources';
|
|
27
|
-
export type { PaginationParams, PaginatedResponse, ApiError, Project, CreateProjectParams, UpdateProjectParams, ProjectStats, ProjectType, ProjectSource, Environment, CreateEnvironmentParams, UpdateEnvironmentParams, EnvironmentStatus, EnvironmentVariable, McpServer, ContainerStatus, BuildResult, StartContainerParams, StartContainerResult, Thread, CreateThreadParams, UpdateThreadParams, ListThreadsParams, SendMessageParams, ThreadMessage, ThreadStatus, AgentConfig, StreamEvent, MessageStreamEvent, ResponseStartedEvent, ResponseItemCompletedEvent, ResponseCompletedEvent, StreamCompletedEvent, StreamErrorEvent, Run, CreateRunParams, UpdateRunParams, ListRunsParams, RunStatus, RunLogEntry, RunDiff, TokenUsage, CloudAgent, CreateAgentParams, UpdateAgentParams, AgentModel, ReasoningEffort, AgentBinary, BudgetStatus, CanExecuteResult, IncreaseBudgetParams, IncreaseBudgetResult, BillingRecord, ListBillingRecordsParams, BillingAccount, UsageStats, UsageStatsParams, FileEntry, ListFilesParams, UploadFileParams, CreateDirectoryParams, GitDiffFile, GitDiffResult, GitCommitParams, GitCommitResult, GitPushParams, GitPushResult, Schedule, CreateScheduleParams, UpdateScheduleParams, ScheduleType, HealthCheck, Metrics, } from './cloud/types';
|
|
26
|
+
export type { StreamEventCallback, SendMessageOptions, SendMessageResult, ListEnvironmentsParams, } from './cloud/resources';
|
|
27
|
+
export type { PaginationParams, PaginatedResponse, ApiError, Project, CreateProjectParams, UpdateProjectParams, ProjectStats, ProjectType, ProjectSource, Environment, CreateEnvironmentParams, UpdateEnvironmentParams, EnvironmentStatus, EnvironmentVariable, McpServer, ContainerStatus, BuildResult, BuildStatus, BuildStatusResult, BuildLogsResult, TestBuildResult, DockerfileResult, ValidateDockerfileResult, RuntimeConfig, PackagesConfig, AvailableRuntimes, PackageType, InstallPackagesResult, StartContainerParams, StartContainerResult, Thread, CreateThreadParams, UpdateThreadParams, ListThreadsParams, SendMessageParams, ThreadMessage, ThreadStatus, AgentConfig, StreamEvent, MessageStreamEvent, ResponseStartedEvent, ResponseItemCompletedEvent, ResponseCompletedEvent, StreamCompletedEvent, StreamErrorEvent, Run, CreateRunParams, UpdateRunParams, ListRunsParams, RunStatus, RunLogEntry, RunDiff, TokenUsage, CloudAgent, CreateAgentParams, UpdateAgentParams, AgentModel, ReasoningEffort, AgentBinary, BudgetStatus, CanExecuteResult, IncreaseBudgetParams, IncreaseBudgetResult, BillingRecord, ListBillingRecordsParams, BillingAccount, UsageStats, UsageStatsParams, FileEntry, ListFilesParams, UploadFileParams, CreateDirectoryParams, GitDiffFile, GitDiffResult, GitCommitParams, GitCommitResult, GitPushParams, GitPushResult, Schedule, CreateScheduleParams, UpdateScheduleParams, ScheduleType, HealthCheck, Metrics, } from './cloud/types';
|
|
28
28
|
export { ApiClient } from './cloud/ApiClient';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,+DAOgC;AAN9B,4HAAA,oBAAoB,OAAA;AACpB,kCAAkC;AAClC,mHAAA,WAAW,OAAA;AACX,sHAAA,cAAc,OAAA;AACd,cAAc;AACd,sHAAA,cAAc,OAAA;AAUhB,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,+CAU2B;AATzB,6GAAA,gBAAgB,OAAA;AAChB,iHAAA,oBAAoB,OAAA;AACpB,4GAAA,eAAe,OAAA;AACf,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,wGAAA,WAAW,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,+DAOgC;AAN9B,4HAAA,oBAAoB,OAAA;AACpB,kCAAkC;AAClC,mHAAA,WAAW,OAAA;AACX,sHAAA,cAAc,OAAA;AACd,cAAc;AACd,sHAAA,cAAc,OAAA;AAUhB,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,+CAU2B;AATzB,6GAAA,gBAAgB,OAAA;AAChB,iHAAA,oBAAoB,OAAA;AACpB,4GAAA,eAAe,OAAA;AACf,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,wGAAA,WAAW,OAAA;AA4Hb,+EAA+E;AAC/E,4CAA4C;AAC5C,+EAA+E;AAE/E,+CAA8C;AAArC,sGAAA,SAAS,OAAA"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "computer-agents",
|
|
3
3
|
"repository": "https://github.com/TestBase-ai/computer-agents",
|
|
4
4
|
"homepage": "https://computer-agents.com",
|
|
5
|
-
"version": "1.0
|
|
5
|
+
"version": "1.1.0",
|
|
6
6
|
"description": "Official SDK for the Computer Agents Cloud API. Execute AI agents in the cloud with a simple, clean interface.",
|
|
7
7
|
"author": "Computer Agents",
|
|
8
8
|
"main": "dist/index.js",
|