@blaxel/core 0.2.43-dev.196 → 0.2.43-dev.199
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/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/authentication/index.js +4 -30
- package/dist/cjs/cache/index.js +3 -16
- package/dist/cjs/common/browser.js +22 -0
- package/dist/cjs/common/env.js +12 -24
- package/dist/cjs/common/node.js +13 -25
- package/dist/cjs/common/settings.js +2 -2
- package/dist/cjs/sandbox/filesystem/filesystem.js +12 -13
- package/dist/cjs/sandbox/sandbox.js +2 -2
- package/dist/cjs/types/common/browser.d.ts +5 -0
- package/dist/cjs/types/common/node.d.ts +1 -2
- package/dist/cjs/types/sandbox/filesystem/filesystem.d.ts +6 -2
- package/dist/cjs-browser/.tsbuildinfo +1 -0
- package/dist/cjs-browser/agents/index.js +109 -0
- package/dist/cjs-browser/authentication/apikey.js +24 -0
- package/dist/cjs-browser/authentication/clientcredentials.js +85 -0
- package/dist/cjs-browser/authentication/credentials.js +17 -0
- package/dist/cjs-browser/authentication/deviceMode.js +70 -0
- package/dist/cjs-browser/authentication/index.js +62 -0
- package/dist/cjs-browser/authentication/types.js +2 -0
- package/dist/cjs-browser/cache/index.js +26 -0
- package/dist/cjs-browser/client/authentication.js +15 -0
- package/dist/cjs-browser/client/client.gen.js +8 -0
- package/dist/cjs-browser/client/client.js +17 -0
- package/dist/cjs-browser/client/index.js +19 -0
- package/dist/cjs-browser/client/interceptors.js +17 -0
- package/dist/cjs-browser/client/sdk.gen.js +1824 -0
- package/dist/cjs-browser/client/types.gen.js +4 -0
- package/dist/cjs-browser/common/autoload.js +27 -0
- package/dist/cjs-browser/common/env.js +57 -0
- package/dist/cjs-browser/common/errors.js +17 -0
- package/dist/cjs-browser/common/internal.js +228 -0
- package/dist/cjs-browser/common/internal.test.js +39 -0
- package/dist/cjs-browser/common/logger.js +69 -0
- package/dist/cjs-browser/common/node.js +22 -0
- package/dist/cjs-browser/common/settings.js +181 -0
- package/dist/cjs-browser/index.browser.test.js +45 -0
- package/dist/cjs-browser/index.js +34 -0
- package/dist/cjs-browser/jobs/index.js +19 -0
- package/dist/cjs-browser/jobs/jobs.js +90 -0
- package/dist/cjs-browser/jobs/start.js +66 -0
- package/dist/cjs-browser/jobs/types.js +2 -0
- package/dist/cjs-browser/mcp/client.js +235 -0
- package/dist/cjs-browser/mcp/index.js +18 -0
- package/dist/cjs-browser/mcp/server.js +213 -0
- package/dist/cjs-browser/models/index.js +31 -0
- package/dist/cjs-browser/sandbox/action.js +83 -0
- package/dist/cjs-browser/sandbox/client/client.gen.js +6 -0
- package/dist/cjs-browser/sandbox/client/index.js +19 -0
- package/dist/cjs-browser/sandbox/client/sdk.gen.js +289 -0
- package/dist/cjs-browser/sandbox/client/types.gen.js +3 -0
- package/dist/cjs-browser/sandbox/filesystem/filesystem.js +240 -0
- package/dist/cjs-browser/sandbox/filesystem/index.js +18 -0
- package/dist/cjs-browser/sandbox/filesystem/types.js +2 -0
- package/dist/cjs-browser/sandbox/index.js +36 -0
- package/dist/cjs-browser/sandbox/network/index.js +17 -0
- package/dist/cjs-browser/sandbox/network/network.js +10 -0
- package/dist/cjs-browser/sandbox/preview.js +148 -0
- package/dist/cjs-browser/sandbox/process/index.js +17 -0
- package/dist/cjs-browser/sandbox/process/process.js +189 -0
- package/dist/cjs-browser/sandbox/sandbox.js +180 -0
- package/dist/cjs-browser/sandbox/session.js +123 -0
- package/dist/cjs-browser/sandbox/types.js +81 -0
- package/dist/cjs-browser/telemetry/telemetry.js +80 -0
- package/dist/cjs-browser/tools/index.js +52 -0
- package/dist/cjs-browser/tools/mcpTool.js +254 -0
- package/dist/cjs-browser/tools/types.js +2 -0
- package/dist/cjs-browser/tools/zodSchema.js +50 -0
- package/dist/cjs-browser/types/agents/index.d.ts +15 -0
- package/dist/cjs-browser/types/authentication/apikey.d.ts +10 -0
- package/dist/cjs-browser/types/authentication/clientcredentials.d.ts +17 -0
- package/dist/cjs-browser/types/authentication/credentials.d.ts +6 -0
- package/dist/cjs-browser/types/authentication/deviceMode.d.ts +15 -0
- package/dist/cjs-browser/types/authentication/index.d.ts +3 -0
- package/dist/cjs-browser/types/authentication/types.d.ts +9 -0
- package/dist/cjs-browser/types/cache/index.d.ts +1 -0
- package/dist/cjs-browser/types/client/authentication.d.ts +25 -0
- package/dist/cjs-browser/types/client/client.d.ts +2 -0
- package/dist/cjs-browser/types/client/client.gen.d.ts +12 -0
- package/dist/cjs-browser/types/client/index.d.ts +2 -0
- package/dist/cjs-browser/types/client/interceptors.d.ts +3 -0
- package/dist/cjs-browser/types/client/sdk.gen.d.ts +519 -0
- package/dist/cjs-browser/types/client/types.gen.d.ts +4950 -0
- package/dist/cjs-browser/types/common/autoload.d.ts +3 -0
- package/dist/cjs-browser/types/common/browser.d.ts +5 -0
- package/dist/cjs-browser/types/common/env.d.ts +5 -0
- package/dist/cjs-browser/types/common/errors.d.ts +1 -0
- package/dist/cjs-browser/types/common/internal.d.ts +6 -0
- package/dist/cjs-browser/types/common/internal.test.d.ts +1 -0
- package/dist/cjs-browser/types/common/logger.d.ts +25 -0
- package/dist/cjs-browser/types/common/node.d.ts +6 -0
- package/dist/cjs-browser/types/common/settings.d.ts +32 -0
- package/dist/cjs-browser/types/index.browser.test.d.ts +1 -0
- package/dist/cjs-browser/types/index.d.ts +18 -0
- package/dist/cjs-browser/types/jobs/index.d.ts +3 -0
- package/dist/cjs-browser/types/jobs/jobs.d.ts +13 -0
- package/dist/cjs-browser/types/jobs/start.d.ts +1 -0
- package/dist/cjs-browser/types/jobs/types.d.ts +3 -0
- package/dist/cjs-browser/types/mcp/client.d.ts +28 -0
- package/dist/cjs-browser/types/mcp/index.d.ts +2 -0
- package/dist/cjs-browser/types/mcp/server.d.ts +24 -0
- package/dist/cjs-browser/types/models/index.d.ts +8 -0
- package/dist/cjs-browser/types/sandbox/action.d.ts +19 -0
- package/dist/cjs-browser/types/sandbox/client/client.gen.d.ts +12 -0
- package/dist/cjs-browser/types/sandbox/client/index.d.ts +2 -0
- package/dist/cjs-browser/types/sandbox/client/sdk.gen.d.ts +101 -0
- package/dist/cjs-browser/types/sandbox/client/types.gen.d.ts +578 -0
- package/dist/cjs-browser/types/sandbox/filesystem/filesystem.d.ts +27 -0
- package/dist/cjs-browser/types/sandbox/filesystem/index.d.ts +2 -0
- package/dist/cjs-browser/types/sandbox/filesystem/types.d.ts +15 -0
- package/dist/cjs-browser/types/sandbox/index.d.ts +4 -0
- package/dist/cjs-browser/types/sandbox/network/index.d.ts +1 -0
- package/dist/cjs-browser/types/sandbox/network/network.d.ts +5 -0
- package/dist/cjs-browser/types/sandbox/preview.d.ts +37 -0
- package/dist/cjs-browser/types/sandbox/process/index.d.ts +1 -0
- package/dist/cjs-browser/types/sandbox/process/process.d.ts +24 -0
- package/dist/cjs-browser/types/sandbox/sandbox.d.ts +33 -0
- package/dist/cjs-browser/types/sandbox/session.d.ts +27 -0
- package/dist/cjs-browser/types/sandbox/types.d.ts +52 -0
- package/dist/cjs-browser/types/telemetry/telemetry.d.ts +62 -0
- package/dist/cjs-browser/types/tools/index.d.ts +12 -0
- package/dist/cjs-browser/types/tools/mcpTool.d.ts +33 -0
- package/dist/cjs-browser/types/tools/types.d.ts +8 -0
- package/dist/cjs-browser/types/tools/zodSchema.d.ts +82 -0
- package/dist/cjs-browser/types/volume/index.d.ts +23 -0
- package/dist/cjs-browser/volume/index.js +113 -0
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/authentication/index.js +1 -27
- package/dist/esm/cache/index.js +2 -15
- package/dist/esm/common/browser.js +18 -0
- package/dist/esm/common/env.js +7 -19
- package/dist/esm/common/node.js +10 -21
- package/dist/esm/common/settings.js +2 -2
- package/dist/esm/sandbox/filesystem/filesystem.js +13 -14
- package/dist/esm/sandbox/sandbox.js +2 -2
- package/dist/esm-browser/.tsbuildinfo +1 -0
- package/dist/esm-browser/agents/index.js +104 -0
- package/dist/esm-browser/authentication/apikey.js +20 -0
- package/dist/esm-browser/authentication/clientcredentials.js +81 -0
- package/dist/esm-browser/authentication/credentials.js +13 -0
- package/dist/esm-browser/authentication/deviceMode.js +66 -0
- package/dist/esm-browser/authentication/index.js +56 -0
- package/dist/esm-browser/authentication/types.js +1 -0
- package/dist/esm-browser/cache/index.js +20 -0
- package/dist/esm-browser/client/authentication.js +11 -0
- package/dist/esm-browser/client/client.gen.js +5 -0
- package/dist/esm-browser/client/client.js +1 -0
- package/dist/esm-browser/client/index.js +3 -0
- package/dist/esm-browser/client/interceptors.js +14 -0
- package/dist/esm-browser/client/sdk.gen.js +1717 -0
- package/dist/esm-browser/client/types.gen.js +3 -0
- package/dist/esm-browser/common/autoload.js +23 -0
- package/dist/esm-browser/common/env.js +51 -0
- package/dist/esm-browser/common/errors.js +14 -0
- package/dist/esm-browser/common/internal.js +220 -0
- package/dist/esm-browser/common/internal.test.js +37 -0
- package/dist/esm-browser/common/logger.js +65 -0
- package/dist/esm-browser/common/node.js +18 -0
- package/dist/esm-browser/common/settings.js +178 -0
- package/dist/esm-browser/index.browser.test.js +10 -0
- package/dist/esm-browser/index.js +18 -0
- package/dist/esm-browser/jobs/index.js +3 -0
- package/dist/esm-browser/jobs/jobs.js +86 -0
- package/dist/esm-browser/jobs/start.js +62 -0
- package/dist/esm-browser/jobs/types.js +1 -0
- package/dist/esm-browser/mcp/client.js +231 -0
- package/dist/esm-browser/mcp/index.js +2 -0
- package/dist/esm-browser/mcp/server.js +176 -0
- package/dist/esm-browser/models/index.js +25 -0
- package/dist/esm-browser/package.json +1 -0
- package/dist/esm-browser/sandbox/action.js +78 -0
- package/dist/esm-browser/sandbox/client/client.gen.js +3 -0
- package/dist/esm-browser/sandbox/client/index.js +3 -0
- package/dist/esm-browser/sandbox/client/sdk.gen.js +270 -0
- package/dist/esm-browser/sandbox/client/types.gen.js +2 -0
- package/dist/esm-browser/sandbox/filesystem/filesystem.js +236 -0
- package/dist/esm-browser/sandbox/filesystem/index.js +2 -0
- package/dist/esm-browser/sandbox/filesystem/types.js +1 -0
- package/dist/esm-browser/sandbox/index.js +7 -0
- package/dist/esm-browser/sandbox/network/index.js +1 -0
- package/dist/esm-browser/sandbox/network/network.js +6 -0
- package/dist/esm-browser/sandbox/preview.js +141 -0
- package/dist/esm-browser/sandbox/process/index.js +1 -0
- package/dist/esm-browser/sandbox/process/process.js +185 -0
- package/dist/esm-browser/sandbox/sandbox.js +176 -0
- package/dist/esm-browser/sandbox/session.js +119 -0
- package/dist/esm-browser/sandbox/types.js +76 -0
- package/dist/esm-browser/telemetry/telemetry.js +74 -0
- package/dist/esm-browser/tools/index.js +44 -0
- package/dist/esm-browser/tools/mcpTool.js +249 -0
- package/dist/esm-browser/tools/types.js +1 -0
- package/dist/esm-browser/tools/zodSchema.js +43 -0
- package/dist/esm-browser/volume/index.js +109 -0
- package/package.json +16 -4
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SandboxFileSystem = void 0;
|
|
4
|
+
const settings_js_1 = require("../../common/settings.js");
|
|
5
|
+
const action_js_1 = require("../action.js");
|
|
6
|
+
const index_js_1 = require("../client/index.js");
|
|
7
|
+
class SandboxFileSystem extends action_js_1.SandboxAction {
|
|
8
|
+
process;
|
|
9
|
+
constructor(sandbox, process) {
|
|
10
|
+
super(sandbox);
|
|
11
|
+
this.process = process;
|
|
12
|
+
this.process = process;
|
|
13
|
+
}
|
|
14
|
+
async mkdir(path, permissions = "0755") {
|
|
15
|
+
path = this.formatPath(path);
|
|
16
|
+
const { response, data, error } = await (0, index_js_1.putFilesystemByPath)({
|
|
17
|
+
path: { path },
|
|
18
|
+
body: { isDirectory: true, permissions },
|
|
19
|
+
baseUrl: this.url,
|
|
20
|
+
client: this.client,
|
|
21
|
+
});
|
|
22
|
+
this.handleResponseError(response, data, error);
|
|
23
|
+
return data;
|
|
24
|
+
}
|
|
25
|
+
async write(path, content) {
|
|
26
|
+
path = this.formatPath(path);
|
|
27
|
+
const { response, data, error } = await (0, index_js_1.putFilesystemByPath)({
|
|
28
|
+
path: { path },
|
|
29
|
+
body: { content },
|
|
30
|
+
baseUrl: this.url,
|
|
31
|
+
client: this.client,
|
|
32
|
+
});
|
|
33
|
+
this.handleResponseError(response, data, error);
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
async writeBinary(path, content) {
|
|
37
|
+
path = this.formatPath(path);
|
|
38
|
+
const formData = new FormData();
|
|
39
|
+
// Convert content to Blob regardless of input type
|
|
40
|
+
let fileBlob;
|
|
41
|
+
if (content instanceof Blob || content instanceof File) {
|
|
42
|
+
fileBlob = content;
|
|
43
|
+
}
|
|
44
|
+
else if (Buffer.isBuffer(content)) {
|
|
45
|
+
// Convert Buffer to Blob
|
|
46
|
+
fileBlob = new Blob([content]);
|
|
47
|
+
}
|
|
48
|
+
else if (content instanceof Uint8Array) {
|
|
49
|
+
// Convert Uint8Array to Blob
|
|
50
|
+
fileBlob = new Blob([content]);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new Error("Unsupported content type");
|
|
54
|
+
}
|
|
55
|
+
// Append the file as a Blob
|
|
56
|
+
formData.append("file", fileBlob, "test-binary.bin");
|
|
57
|
+
formData.append("permissions", "0644");
|
|
58
|
+
formData.append("path", path);
|
|
59
|
+
// Build URL
|
|
60
|
+
let url = `${this.url}/filesystem/${path}`;
|
|
61
|
+
if (this.forcedUrl) {
|
|
62
|
+
url = `${this.forcedUrl.toString()}/filesystem/${path}`;
|
|
63
|
+
}
|
|
64
|
+
// Make the request using fetch instead of axios for better FormData handling
|
|
65
|
+
const response = await fetch(url, {
|
|
66
|
+
method: 'PUT',
|
|
67
|
+
headers: {
|
|
68
|
+
...settings_js_1.settings.headers,
|
|
69
|
+
},
|
|
70
|
+
body: formData,
|
|
71
|
+
});
|
|
72
|
+
if (!response.ok) {
|
|
73
|
+
const errorText = await response.text();
|
|
74
|
+
throw new Error(`Failed to write binary: ${response.status} ${errorText}`);
|
|
75
|
+
}
|
|
76
|
+
return await response.json();
|
|
77
|
+
}
|
|
78
|
+
async writeTree(files, destinationPath = null) {
|
|
79
|
+
const options = {
|
|
80
|
+
body: {
|
|
81
|
+
files: files.reduce((acc, file) => {
|
|
82
|
+
acc[file.path] = file.content;
|
|
83
|
+
return acc;
|
|
84
|
+
}, {}),
|
|
85
|
+
},
|
|
86
|
+
baseUrl: this.url,
|
|
87
|
+
client: this.client,
|
|
88
|
+
};
|
|
89
|
+
const path = this.formatPath(destinationPath ?? "");
|
|
90
|
+
const { response, data, error } = await this.client.put({
|
|
91
|
+
url: `/filesystem/tree/${path}`,
|
|
92
|
+
...options,
|
|
93
|
+
headers: {
|
|
94
|
+
'Content-Type': 'application/json',
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
this.handleResponseError(response, data, error);
|
|
98
|
+
return data;
|
|
99
|
+
}
|
|
100
|
+
async read(path) {
|
|
101
|
+
path = this.formatPath(path);
|
|
102
|
+
const { response, data, error } = await (0, index_js_1.getFilesystemByPath)({
|
|
103
|
+
path: { path },
|
|
104
|
+
baseUrl: this.url,
|
|
105
|
+
client: this.client,
|
|
106
|
+
});
|
|
107
|
+
this.handleResponseError(response, data, error);
|
|
108
|
+
if (data && 'content' in data) {
|
|
109
|
+
return data.content;
|
|
110
|
+
}
|
|
111
|
+
throw new Error("Unsupported file type");
|
|
112
|
+
}
|
|
113
|
+
async rm(path, recursive = false) {
|
|
114
|
+
path = this.formatPath(path);
|
|
115
|
+
const { response, data, error } = await (0, index_js_1.deleteFilesystemByPath)({
|
|
116
|
+
path: { path },
|
|
117
|
+
query: { recursive },
|
|
118
|
+
baseUrl: this.url,
|
|
119
|
+
client: this.client,
|
|
120
|
+
});
|
|
121
|
+
this.handleResponseError(response, data, error);
|
|
122
|
+
return data;
|
|
123
|
+
}
|
|
124
|
+
async ls(path) {
|
|
125
|
+
path = this.formatPath(path);
|
|
126
|
+
const { response, data, error } = await (0, index_js_1.getFilesystemByPath)({
|
|
127
|
+
path: { path },
|
|
128
|
+
baseUrl: this.url,
|
|
129
|
+
client: this.client,
|
|
130
|
+
});
|
|
131
|
+
this.handleResponseError(response, data, error);
|
|
132
|
+
if (!data || !('files' in data || 'subdirectories' in data)) {
|
|
133
|
+
throw new Error(JSON.stringify({ error: "Directory not found" }));
|
|
134
|
+
}
|
|
135
|
+
return data;
|
|
136
|
+
}
|
|
137
|
+
async cp(source, destination, { maxWait = 1000 * 60 * 60 } = {}) {
|
|
138
|
+
let process = await this.process.exec({
|
|
139
|
+
command: `cp -r ${source} ${destination}`,
|
|
140
|
+
});
|
|
141
|
+
process = await this.process.wait(process.pid, { maxWait, interval: 100 });
|
|
142
|
+
if (process.status === "failed") {
|
|
143
|
+
throw new Error(`Could not copy ${source} to ${destination} cause: ${process.logs}`);
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
message: "Files copied",
|
|
147
|
+
source,
|
|
148
|
+
destination,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
watch(path, callback, options) {
|
|
152
|
+
path = this.formatPath(path);
|
|
153
|
+
let closed = false;
|
|
154
|
+
const controller = new AbortController();
|
|
155
|
+
const start = async () => {
|
|
156
|
+
const query = {};
|
|
157
|
+
if (options?.ignore) {
|
|
158
|
+
query.ignore = options.ignore.join(",");
|
|
159
|
+
}
|
|
160
|
+
const { response, data, error } = await (0, index_js_1.getWatchFilesystemByPath)({
|
|
161
|
+
client: this.client,
|
|
162
|
+
path: { path },
|
|
163
|
+
query,
|
|
164
|
+
baseUrl: this.url,
|
|
165
|
+
parseAs: 'stream',
|
|
166
|
+
signal: controller.signal,
|
|
167
|
+
});
|
|
168
|
+
if (error)
|
|
169
|
+
throw new Error(error instanceof Error ? error.message : JSON.stringify(error));
|
|
170
|
+
const stream = data ?? response.body;
|
|
171
|
+
if (!stream)
|
|
172
|
+
throw new Error('No stream returned');
|
|
173
|
+
const reader = stream.getReader();
|
|
174
|
+
let buffer = '';
|
|
175
|
+
const decoder = new TextDecoder();
|
|
176
|
+
try {
|
|
177
|
+
while (!closed) {
|
|
178
|
+
const { value, done } = await reader.read();
|
|
179
|
+
if (done)
|
|
180
|
+
break;
|
|
181
|
+
buffer += decoder.decode(value, { stream: true });
|
|
182
|
+
const lines = buffer.split('\n');
|
|
183
|
+
buffer = lines.pop();
|
|
184
|
+
for (const line of lines) {
|
|
185
|
+
const trimmed = line.trim();
|
|
186
|
+
if (!trimmed)
|
|
187
|
+
continue;
|
|
188
|
+
// Skip keepalive messages
|
|
189
|
+
if (line.startsWith("[keepalive]")) {
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
const fileEvent = JSON.parse(trimmed);
|
|
193
|
+
if (options?.withContent && ["CREATE", "WRITE"].includes(fileEvent.op)) {
|
|
194
|
+
try {
|
|
195
|
+
let filePath = "";
|
|
196
|
+
if (fileEvent.path.endsWith("/")) {
|
|
197
|
+
filePath = fileEvent.path + fileEvent.name;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
filePath = fileEvent.path + "/" + fileEvent.name;
|
|
201
|
+
}
|
|
202
|
+
const content = await this.read(filePath);
|
|
203
|
+
await callback({ ...fileEvent, content });
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
await callback({ ...fileEvent, content: undefined });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
await callback(fileEvent);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
finally {
|
|
216
|
+
reader.releaseLock();
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
start().catch((err) => {
|
|
220
|
+
// Suppress AbortError when closing
|
|
221
|
+
if (!(err && typeof err === 'object' && 'name' in err && err.name === 'AbortError')) {
|
|
222
|
+
if (options?.onError) {
|
|
223
|
+
options.onError(err instanceof Error ? err : new Error(String(err)));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
closed = true;
|
|
227
|
+
controller.abort();
|
|
228
|
+
});
|
|
229
|
+
return {
|
|
230
|
+
close: () => {
|
|
231
|
+
closed = true;
|
|
232
|
+
controller.abort();
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
formatPath(path) {
|
|
237
|
+
return path;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
exports.SandboxFileSystem = SandboxFileSystem;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./filesystem.js"), exports);
|
|
18
|
+
__exportStar(require("./types.js"), exports);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.putFilesystemByPath = exports.postProcess = exports.postNetworkProcessByPidMonitor = exports.getProcessByIdentifierLogsStream = exports.getProcessByIdentifierLogs = exports.getProcessByIdentifier = exports.getProcess = exports.getNetworkProcessByPidPorts = exports.getFilesystemByPath = exports.deleteProcessByIdentifierKill = exports.deleteProcessByIdentifier = exports.deleteNetworkProcessByPidMonitor = exports.deleteFilesystemByPath = void 0;
|
|
18
|
+
var index_js_1 = require("./client/index.js");
|
|
19
|
+
/* Export SDK functions */
|
|
20
|
+
Object.defineProperty(exports, "deleteFilesystemByPath", { enumerable: true, get: function () { return index_js_1.deleteFilesystemByPath; } });
|
|
21
|
+
Object.defineProperty(exports, "deleteNetworkProcessByPidMonitor", { enumerable: true, get: function () { return index_js_1.deleteNetworkProcessByPidMonitor; } });
|
|
22
|
+
Object.defineProperty(exports, "deleteProcessByIdentifier", { enumerable: true, get: function () { return index_js_1.deleteProcessByIdentifier; } });
|
|
23
|
+
Object.defineProperty(exports, "deleteProcessByIdentifierKill", { enumerable: true, get: function () { return index_js_1.deleteProcessByIdentifierKill; } });
|
|
24
|
+
Object.defineProperty(exports, "getFilesystemByPath", { enumerable: true, get: function () { return index_js_1.getFilesystemByPath; } });
|
|
25
|
+
Object.defineProperty(exports, "getNetworkProcessByPidPorts", { enumerable: true, get: function () { return index_js_1.getNetworkProcessByPidPorts; } });
|
|
26
|
+
Object.defineProperty(exports, "getProcess", { enumerable: true, get: function () { return index_js_1.getProcess; } });
|
|
27
|
+
Object.defineProperty(exports, "getProcessByIdentifier", { enumerable: true, get: function () { return index_js_1.getProcessByIdentifier; } });
|
|
28
|
+
Object.defineProperty(exports, "getProcessByIdentifierLogs", { enumerable: true, get: function () { return index_js_1.getProcessByIdentifierLogs; } });
|
|
29
|
+
Object.defineProperty(exports, "getProcessByIdentifierLogsStream", { enumerable: true, get: function () { return index_js_1.getProcessByIdentifierLogsStream; } });
|
|
30
|
+
Object.defineProperty(exports, "postNetworkProcessByPidMonitor", { enumerable: true, get: function () { return index_js_1.postNetworkProcessByPidMonitor; } });
|
|
31
|
+
Object.defineProperty(exports, "postProcess", { enumerable: true, get: function () { return index_js_1.postProcess; } });
|
|
32
|
+
Object.defineProperty(exports, "putFilesystemByPath", { enumerable: true, get: function () { return index_js_1.putFilesystemByPath; } });
|
|
33
|
+
__exportStar(require("./filesystem/index.js"), exports);
|
|
34
|
+
__exportStar(require("./sandbox.js"), exports);
|
|
35
|
+
__exportStar(require("./types.js"), exports);
|
|
36
|
+
// Re-export everything from client except ClientOptions to avoid conflict
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./network.js"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SandboxNetwork = void 0;
|
|
4
|
+
const action_js_1 = require("../action.js");
|
|
5
|
+
class SandboxNetwork extends action_js_1.SandboxAction {
|
|
6
|
+
constructor(sandbox) {
|
|
7
|
+
super(sandbox);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.SandboxNetwork = SandboxNetwork;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SandboxPreviews = exports.SandboxPreview = exports.SandboxPreviewTokens = exports.SandboxPreviewToken = void 0;
|
|
4
|
+
const index_js_1 = require("../client/index.js");
|
|
5
|
+
class SandboxPreviewToken {
|
|
6
|
+
previewToken;
|
|
7
|
+
constructor(previewToken) {
|
|
8
|
+
this.previewToken = previewToken;
|
|
9
|
+
}
|
|
10
|
+
get value() {
|
|
11
|
+
return this.previewToken.spec?.token ?? "";
|
|
12
|
+
}
|
|
13
|
+
get expiresAt() {
|
|
14
|
+
return this.previewToken.spec?.expiresAt ?? new Date();
|
|
15
|
+
}
|
|
16
|
+
get expired() {
|
|
17
|
+
return this.previewToken.spec?.expired ?? false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.SandboxPreviewToken = SandboxPreviewToken;
|
|
21
|
+
class SandboxPreviewTokens {
|
|
22
|
+
preview;
|
|
23
|
+
constructor(preview) {
|
|
24
|
+
this.preview = preview;
|
|
25
|
+
}
|
|
26
|
+
get previewName() {
|
|
27
|
+
return this.preview.metadata?.name ?? "";
|
|
28
|
+
}
|
|
29
|
+
get resourceName() {
|
|
30
|
+
return this.preview.metadata?.resourceName ?? "";
|
|
31
|
+
}
|
|
32
|
+
async create(expiresAt) {
|
|
33
|
+
const { data } = await (0, index_js_1.createSandboxPreviewToken)({
|
|
34
|
+
path: {
|
|
35
|
+
sandboxName: this.resourceName,
|
|
36
|
+
previewName: this.previewName,
|
|
37
|
+
},
|
|
38
|
+
body: {
|
|
39
|
+
spec: {
|
|
40
|
+
expiresAt: expiresAt.toISOString(),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
throwOnError: true,
|
|
44
|
+
});
|
|
45
|
+
return new SandboxPreviewToken(data);
|
|
46
|
+
}
|
|
47
|
+
async list() {
|
|
48
|
+
const { data } = await (0, index_js_1.listSandboxPreviewTokens)({
|
|
49
|
+
path: {
|
|
50
|
+
sandboxName: this.resourceName,
|
|
51
|
+
previewName: this.previewName,
|
|
52
|
+
},
|
|
53
|
+
throwOnError: true,
|
|
54
|
+
});
|
|
55
|
+
return data.map((token) => new SandboxPreviewToken(token));
|
|
56
|
+
}
|
|
57
|
+
async delete(tokenName) {
|
|
58
|
+
const { data } = await (0, index_js_1.deleteSandboxPreviewToken)({
|
|
59
|
+
path: {
|
|
60
|
+
sandboxName: this.resourceName,
|
|
61
|
+
previewName: this.previewName,
|
|
62
|
+
tokenName,
|
|
63
|
+
},
|
|
64
|
+
throwOnError: true,
|
|
65
|
+
});
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.SandboxPreviewTokens = SandboxPreviewTokens;
|
|
70
|
+
class SandboxPreview {
|
|
71
|
+
preview;
|
|
72
|
+
tokens;
|
|
73
|
+
constructor(preview) {
|
|
74
|
+
this.preview = preview;
|
|
75
|
+
this.tokens = new SandboxPreviewTokens(this);
|
|
76
|
+
}
|
|
77
|
+
get name() {
|
|
78
|
+
return this.preview.metadata?.name ?? "";
|
|
79
|
+
}
|
|
80
|
+
get metadata() {
|
|
81
|
+
return this.preview.metadata;
|
|
82
|
+
}
|
|
83
|
+
get spec() {
|
|
84
|
+
return this.preview.spec;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.SandboxPreview = SandboxPreview;
|
|
88
|
+
class SandboxPreviews {
|
|
89
|
+
sandbox;
|
|
90
|
+
constructor(sandbox) {
|
|
91
|
+
this.sandbox = sandbox;
|
|
92
|
+
}
|
|
93
|
+
get sandboxName() {
|
|
94
|
+
return this.sandbox.metadata?.name ?? "";
|
|
95
|
+
}
|
|
96
|
+
async list() {
|
|
97
|
+
const { data } = await (0, index_js_1.listSandboxPreviews)({
|
|
98
|
+
path: {
|
|
99
|
+
sandboxName: this.sandboxName,
|
|
100
|
+
},
|
|
101
|
+
throwOnError: true,
|
|
102
|
+
});
|
|
103
|
+
return data.map((preview) => new SandboxPreview(preview));
|
|
104
|
+
}
|
|
105
|
+
async create(preview) {
|
|
106
|
+
const { data } = await (0, index_js_1.createSandboxPreview)({
|
|
107
|
+
path: {
|
|
108
|
+
sandboxName: this.sandboxName,
|
|
109
|
+
},
|
|
110
|
+
body: preview,
|
|
111
|
+
throwOnError: true,
|
|
112
|
+
});
|
|
113
|
+
return new SandboxPreview(data);
|
|
114
|
+
}
|
|
115
|
+
async createIfNotExists(preview) {
|
|
116
|
+
try {
|
|
117
|
+
const previewInstance = await this.get(preview.metadata?.name ?? "");
|
|
118
|
+
return previewInstance;
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
if (typeof e === "object" && e !== null && "code" in e && e.code === 404) {
|
|
122
|
+
return this.create(preview);
|
|
123
|
+
}
|
|
124
|
+
throw e;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async get(previewName) {
|
|
128
|
+
const { data } = await (0, index_js_1.getSandboxPreview)({
|
|
129
|
+
path: {
|
|
130
|
+
sandboxName: this.sandboxName,
|
|
131
|
+
previewName,
|
|
132
|
+
},
|
|
133
|
+
throwOnError: true,
|
|
134
|
+
});
|
|
135
|
+
return new SandboxPreview(data);
|
|
136
|
+
}
|
|
137
|
+
async delete(previewName) {
|
|
138
|
+
const { data } = await (0, index_js_1.deleteSandboxPreview)({
|
|
139
|
+
path: {
|
|
140
|
+
sandboxName: this.sandboxName,
|
|
141
|
+
previewName,
|
|
142
|
+
},
|
|
143
|
+
throwOnError: true,
|
|
144
|
+
});
|
|
145
|
+
return data;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.SandboxPreviews = SandboxPreviews;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./process.js"), exports);
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SandboxProcess = void 0;
|
|
4
|
+
const settings_js_1 = require("../../common/settings.js");
|
|
5
|
+
const action_js_1 = require("../action.js");
|
|
6
|
+
const index_js_1 = require("../client/index.js");
|
|
7
|
+
class SandboxProcess extends action_js_1.SandboxAction {
|
|
8
|
+
constructor(sandbox) {
|
|
9
|
+
super(sandbox);
|
|
10
|
+
}
|
|
11
|
+
streamLogs(identifier, options) {
|
|
12
|
+
const controller = new AbortController();
|
|
13
|
+
void (async () => {
|
|
14
|
+
try {
|
|
15
|
+
const headers = this.sandbox.forceUrl ? this.sandbox.headers : settings_js_1.settings.headers;
|
|
16
|
+
const stream = await fetch(`${this.url}/process/${identifier}/logs/stream`, {
|
|
17
|
+
method: 'GET',
|
|
18
|
+
signal: controller.signal,
|
|
19
|
+
headers,
|
|
20
|
+
});
|
|
21
|
+
if (stream.status !== 200) {
|
|
22
|
+
throw new Error(`Failed to stream logs: ${await stream.text()}`);
|
|
23
|
+
}
|
|
24
|
+
if (!stream.body)
|
|
25
|
+
throw new Error('No stream body');
|
|
26
|
+
const reader = stream.body.getReader();
|
|
27
|
+
const decoder = new TextDecoder();
|
|
28
|
+
let buffer = '';
|
|
29
|
+
while (true) {
|
|
30
|
+
const result = await reader.read();
|
|
31
|
+
if (result.done)
|
|
32
|
+
break;
|
|
33
|
+
if (result.value && result.value instanceof Uint8Array) {
|
|
34
|
+
buffer += decoder.decode(result.value, { stream: true });
|
|
35
|
+
}
|
|
36
|
+
const lines = buffer.split(/\r?\n/);
|
|
37
|
+
buffer = lines.pop();
|
|
38
|
+
for (const line of lines) {
|
|
39
|
+
if (line.startsWith("[keepalive]")) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (line.startsWith('stdout:')) {
|
|
43
|
+
options.onStdout?.(line.slice(7));
|
|
44
|
+
options.onLog?.(line.slice(7));
|
|
45
|
+
}
|
|
46
|
+
else if (line.startsWith('stderr:')) {
|
|
47
|
+
options.onStderr?.(line.slice(7));
|
|
48
|
+
options.onLog?.(line.slice(7));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
options.onLog?.(line);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
if (err && typeof err === 'object' && 'name' in err && err.name !== 'AbortError') {
|
|
58
|
+
console.error("Stream error:", err);
|
|
59
|
+
throw new Error(err instanceof Error ? err.message : 'Unknown stream error');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
})();
|
|
63
|
+
return {
|
|
64
|
+
close: () => controller.abort(),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async exec(process) {
|
|
68
|
+
let onLog;
|
|
69
|
+
if ('onLog' in process && process.onLog) {
|
|
70
|
+
onLog = process.onLog;
|
|
71
|
+
delete process.onLog;
|
|
72
|
+
}
|
|
73
|
+
// Store original wait_for_completion setting
|
|
74
|
+
const shouldWaitForCompletion = process.waitForCompletion;
|
|
75
|
+
// Always start process without wait_for_completion to avoid server-side blocking
|
|
76
|
+
if (shouldWaitForCompletion && onLog) {
|
|
77
|
+
process.waitForCompletion = false;
|
|
78
|
+
}
|
|
79
|
+
const { response, data, error } = await (0, index_js_1.postProcess)({
|
|
80
|
+
body: process,
|
|
81
|
+
baseUrl: this.url,
|
|
82
|
+
client: this.client,
|
|
83
|
+
});
|
|
84
|
+
this.handleResponseError(response, data, error);
|
|
85
|
+
let result = data;
|
|
86
|
+
// Handle wait_for_completion with parallel log streaming
|
|
87
|
+
if (shouldWaitForCompletion && onLog) {
|
|
88
|
+
const streamControl = this.streamLogs(result.pid, { onLog });
|
|
89
|
+
try {
|
|
90
|
+
// Wait for process completion
|
|
91
|
+
result = await this.wait(result.pid, { interval: 500, maxWait: 1000 * 60 * 60 });
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
// Clean up log streaming
|
|
95
|
+
if (streamControl) {
|
|
96
|
+
streamControl.close();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// For non-blocking execution, set up log streaming immediately if requested
|
|
102
|
+
if (onLog) {
|
|
103
|
+
const streamControl = this.streamLogs(result.pid, { onLog });
|
|
104
|
+
return {
|
|
105
|
+
...result,
|
|
106
|
+
close() {
|
|
107
|
+
if (streamControl) {
|
|
108
|
+
streamControl.close();
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { ...result, close: () => { } };
|
|
115
|
+
}
|
|
116
|
+
async wait(identifier, { maxWait = 60000, interval = 1000 } = {}) {
|
|
117
|
+
const startTime = Date.now();
|
|
118
|
+
let status = "running";
|
|
119
|
+
let data = await this.get(identifier);
|
|
120
|
+
while (status === "running") {
|
|
121
|
+
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
122
|
+
try {
|
|
123
|
+
data = await this.get(identifier);
|
|
124
|
+
status = data.status ?? "running";
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
if (Date.now() - startTime > maxWait) {
|
|
130
|
+
throw new Error("Process did not finish in time");
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return data;
|
|
134
|
+
}
|
|
135
|
+
async get(identifier) {
|
|
136
|
+
const { response, data, error } = await (0, index_js_1.getProcessByIdentifier)({
|
|
137
|
+
path: { identifier },
|
|
138
|
+
baseUrl: this.url,
|
|
139
|
+
client: this.client,
|
|
140
|
+
});
|
|
141
|
+
this.handleResponseError(response, data, error);
|
|
142
|
+
return data;
|
|
143
|
+
}
|
|
144
|
+
async list() {
|
|
145
|
+
const { response, data, error } = await (0, index_js_1.getProcess)({
|
|
146
|
+
baseUrl: this.url,
|
|
147
|
+
client: this.client,
|
|
148
|
+
});
|
|
149
|
+
this.handleResponseError(response, data, error);
|
|
150
|
+
return data;
|
|
151
|
+
}
|
|
152
|
+
async stop(identifier) {
|
|
153
|
+
const { response, data, error } = await (0, index_js_1.deleteProcessByIdentifier)({
|
|
154
|
+
path: { identifier },
|
|
155
|
+
baseUrl: this.url,
|
|
156
|
+
client: this.client,
|
|
157
|
+
});
|
|
158
|
+
this.handleResponseError(response, data, error);
|
|
159
|
+
return data;
|
|
160
|
+
}
|
|
161
|
+
async kill(identifier) {
|
|
162
|
+
const { response, data, error } = await (0, index_js_1.deleteProcessByIdentifierKill)({
|
|
163
|
+
path: { identifier },
|
|
164
|
+
baseUrl: this.url,
|
|
165
|
+
client: this.client,
|
|
166
|
+
});
|
|
167
|
+
this.handleResponseError(response, data, error);
|
|
168
|
+
return data;
|
|
169
|
+
}
|
|
170
|
+
async logs(identifier, type = "all") {
|
|
171
|
+
const { response, data, error } = await (0, index_js_1.getProcessByIdentifierLogs)({
|
|
172
|
+
path: { identifier },
|
|
173
|
+
baseUrl: this.url,
|
|
174
|
+
client: this.client,
|
|
175
|
+
});
|
|
176
|
+
this.handleResponseError(response, data, error);
|
|
177
|
+
if (type === "all") {
|
|
178
|
+
return data?.logs || "";
|
|
179
|
+
}
|
|
180
|
+
else if (type === "stdout") {
|
|
181
|
+
return data?.stdout || "";
|
|
182
|
+
}
|
|
183
|
+
else if (type === "stderr") {
|
|
184
|
+
return data?.stderr || "";
|
|
185
|
+
}
|
|
186
|
+
throw new Error("Unsupported log type");
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.SandboxProcess = SandboxProcess;
|