@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,23 @@
|
|
|
1
|
+
import { client } from "../client/client.gen.js";
|
|
2
|
+
import { interceptors } from "../client/interceptors.js";
|
|
3
|
+
import { client as clientSandbox } from "../sandbox/client/client.gen.js";
|
|
4
|
+
import { settings } from "./settings.js";
|
|
5
|
+
client.setConfig({
|
|
6
|
+
baseUrl: settings.baseUrl,
|
|
7
|
+
});
|
|
8
|
+
for (const interceptor of interceptors) {
|
|
9
|
+
// @ts-expect-error - Interceptor is not typed
|
|
10
|
+
client.interceptors.request.use(interceptor);
|
|
11
|
+
// @ts-expect-error - Interceptor is not typed
|
|
12
|
+
clientSandbox.interceptors.request.use(interceptor);
|
|
13
|
+
}
|
|
14
|
+
// Allow to set custom configuration for browser environment
|
|
15
|
+
export function initialize(config) {
|
|
16
|
+
settings.setConfig(config);
|
|
17
|
+
client.setConfig({
|
|
18
|
+
baseUrl: settings.baseUrl,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function authenticate() {
|
|
22
|
+
return settings.authenticate();
|
|
23
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import toml from "toml";
|
|
2
|
+
import { dotenv, fs } from "./node.js";
|
|
3
|
+
const secretEnv = {};
|
|
4
|
+
const configEnv = {};
|
|
5
|
+
if (fs !== null) {
|
|
6
|
+
try {
|
|
7
|
+
const configFile = fs.readFileSync("blaxel.toml", "utf8");
|
|
8
|
+
const configInfos = toml.parse(configFile);
|
|
9
|
+
for (const key in configInfos.env) {
|
|
10
|
+
configEnv[key] = configInfos.env[key];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
// ignore
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const secretFile = fs.readFileSync(".env", "utf8");
|
|
18
|
+
if (dotenv) {
|
|
19
|
+
const parsed = dotenv.parse(secretFile);
|
|
20
|
+
Object.assign(secretEnv, parsed);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// Simple .env parsing fallback when dotenv is not available
|
|
24
|
+
const lines = secretFile.split('\n');
|
|
25
|
+
for (const line of lines) {
|
|
26
|
+
const match = line.match(/^([^=]+)=(.*)$/);
|
|
27
|
+
if (match) {
|
|
28
|
+
secretEnv[match[1].trim()] = match[2].trim();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// ignore
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const env = new Proxy({}, {
|
|
38
|
+
get: (target, prop) => {
|
|
39
|
+
if (secretEnv[prop]) {
|
|
40
|
+
return secretEnv[prop];
|
|
41
|
+
}
|
|
42
|
+
if (configEnv[prop]) {
|
|
43
|
+
return configEnv[prop];
|
|
44
|
+
}
|
|
45
|
+
if (typeof process !== "undefined" && process.env) {
|
|
46
|
+
return process.env[prop];
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
export { env };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function handleDynamicImportError(err) {
|
|
2
|
+
if (err instanceof Error) {
|
|
3
|
+
// We check if it's module import error and retrieve package name from the error message with a regex
|
|
4
|
+
if (err.message.includes("Cannot find module")) {
|
|
5
|
+
const packageName = err.message.match(/Cannot find module '([^']+)'/)?.[1];
|
|
6
|
+
if (packageName) {
|
|
7
|
+
err.message = `Dependency not found. Please run one of the following commands to install it:
|
|
8
|
+
- npm: 'npm install ${packageName}'
|
|
9
|
+
- yarn: 'yarn add ${packageName}'
|
|
10
|
+
- pnpm: 'pnpm add ${packageName}'`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import { env } from './env.js';
|
|
3
|
+
// Pure JS MD5 implementation that matches standard crypto MD5
|
|
4
|
+
function md5(input) {
|
|
5
|
+
function cmn(q, a, b, x, s, t) {
|
|
6
|
+
a = (((a + q) | 0) + ((x + t) | 0)) | 0;
|
|
7
|
+
return (((a << s) | (a >>> (32 - s))) + b) | 0;
|
|
8
|
+
}
|
|
9
|
+
function ff(a, b, c, d, x, s, t) {
|
|
10
|
+
return cmn((b & c) | (~b & d), a, b, x, s, t);
|
|
11
|
+
}
|
|
12
|
+
function gg(a, b, c, d, x, s, t) {
|
|
13
|
+
return cmn((b & d) | (c & ~d), a, b, x, s, t);
|
|
14
|
+
}
|
|
15
|
+
function hh(a, b, c, d, x, s, t) {
|
|
16
|
+
return cmn(b ^ c ^ d, a, b, x, s, t);
|
|
17
|
+
}
|
|
18
|
+
function ii(a, b, c, d, x, s, t) {
|
|
19
|
+
return cmn(c ^ (b | ~d), a, b, x, s, t);
|
|
20
|
+
}
|
|
21
|
+
function md5cycle(x, k) {
|
|
22
|
+
let [a, b, c, d] = x;
|
|
23
|
+
a = ff(a, b, c, d, k[0], 7, -680876936);
|
|
24
|
+
d = ff(d, a, b, c, k[1], 12, -389564586);
|
|
25
|
+
c = ff(c, d, a, b, k[2], 17, 606105819);
|
|
26
|
+
b = ff(b, c, d, a, k[3], 22, -1044525330);
|
|
27
|
+
a = ff(a, b, c, d, k[4], 7, -176418897);
|
|
28
|
+
d = ff(d, a, b, c, k[5], 12, 1200080426);
|
|
29
|
+
c = ff(c, d, a, b, k[6], 17, -1473231341);
|
|
30
|
+
b = ff(b, c, d, a, k[7], 22, -45705983);
|
|
31
|
+
a = ff(a, b, c, d, k[8], 7, 1770035416);
|
|
32
|
+
d = ff(d, a, b, c, k[9], 12, -1958414417);
|
|
33
|
+
c = ff(c, d, a, b, k[10], 17, -42063);
|
|
34
|
+
b = ff(b, c, d, a, k[11], 22, -1990404162);
|
|
35
|
+
a = ff(a, b, c, d, k[12], 7, 1804603682);
|
|
36
|
+
d = ff(d, a, b, c, k[13], 12, -40341101);
|
|
37
|
+
c = ff(c, d, a, b, k[14], 17, -1502002290);
|
|
38
|
+
b = ff(b, c, d, a, k[15], 22, 1236535329);
|
|
39
|
+
a = gg(a, b, c, d, k[1], 5, -165796510);
|
|
40
|
+
d = gg(d, a, b, c, k[6], 9, -1069501632);
|
|
41
|
+
c = gg(c, d, a, b, k[11], 14, 643717713);
|
|
42
|
+
b = gg(b, c, d, a, k[0], 20, -373897302);
|
|
43
|
+
a = gg(a, b, c, d, k[5], 5, -701558691);
|
|
44
|
+
d = gg(d, a, b, c, k[10], 9, 38016083);
|
|
45
|
+
c = gg(c, d, a, b, k[15], 14, -660478335);
|
|
46
|
+
b = gg(b, c, d, a, k[4], 20, -405537848);
|
|
47
|
+
a = gg(a, b, c, d, k[9], 5, 568446438);
|
|
48
|
+
d = gg(d, a, b, c, k[14], 9, -1019803690);
|
|
49
|
+
c = gg(c, d, a, b, k[3], 14, -187363961);
|
|
50
|
+
b = gg(b, c, d, a, k[8], 20, 1163531501);
|
|
51
|
+
a = gg(a, b, c, d, k[13], 5, -1444681467);
|
|
52
|
+
d = gg(d, a, b, c, k[2], 9, -51403784);
|
|
53
|
+
c = gg(c, d, a, b, k[7], 14, 1735328473);
|
|
54
|
+
b = gg(b, c, d, a, k[12], 20, -1926607734);
|
|
55
|
+
a = hh(a, b, c, d, k[5], 4, -378558);
|
|
56
|
+
d = hh(d, a, b, c, k[8], 11, -2022574463);
|
|
57
|
+
c = hh(c, d, a, b, k[11], 16, 1839030562);
|
|
58
|
+
b = hh(b, c, d, a, k[14], 23, -35309556);
|
|
59
|
+
a = hh(a, b, c, d, k[1], 4, -1530992060);
|
|
60
|
+
d = hh(d, a, b, c, k[4], 11, 1272893353);
|
|
61
|
+
c = hh(c, d, a, b, k[7], 16, -155497632);
|
|
62
|
+
b = hh(b, c, d, a, k[10], 23, -1094730640);
|
|
63
|
+
a = hh(a, b, c, d, k[13], 4, 681279174);
|
|
64
|
+
d = hh(d, a, b, c, k[0], 11, -358537222);
|
|
65
|
+
c = hh(c, d, a, b, k[3], 16, -722521979);
|
|
66
|
+
b = hh(b, c, d, a, k[6], 23, 76029189);
|
|
67
|
+
a = hh(a, b, c, d, k[9], 4, -640364487);
|
|
68
|
+
d = hh(d, a, b, c, k[12], 11, -421815835);
|
|
69
|
+
c = hh(c, d, a, b, k[15], 16, 530742520);
|
|
70
|
+
b = hh(b, c, d, a, k[2], 23, -995338651);
|
|
71
|
+
a = ii(a, b, c, d, k[0], 6, -198630844);
|
|
72
|
+
d = ii(d, a, b, c, k[7], 10, 1126891415);
|
|
73
|
+
c = ii(c, d, a, b, k[14], 15, -1416354905);
|
|
74
|
+
b = ii(b, c, d, a, k[5], 21, -57434055);
|
|
75
|
+
a = ii(a, b, c, d, k[12], 6, 1700485571);
|
|
76
|
+
d = ii(d, a, b, c, k[3], 10, -1894986606);
|
|
77
|
+
c = ii(c, d, a, b, k[10], 15, -1051523);
|
|
78
|
+
b = ii(b, c, d, a, k[1], 21, -2054922799);
|
|
79
|
+
a = ii(a, b, c, d, k[8], 6, 1873313359);
|
|
80
|
+
d = ii(d, a, b, c, k[15], 10, -30611744);
|
|
81
|
+
c = ii(c, d, a, b, k[6], 15, -1560198380);
|
|
82
|
+
b = ii(b, c, d, a, k[13], 21, 1309151649);
|
|
83
|
+
a = ii(a, b, c, d, k[4], 6, -145523070);
|
|
84
|
+
d = ii(d, a, b, c, k[11], 10, -1120210379);
|
|
85
|
+
c = ii(c, d, a, b, k[2], 15, 718787259);
|
|
86
|
+
b = ii(b, c, d, a, k[9], 21, -343485551);
|
|
87
|
+
x[0] = (a + x[0]) | 0;
|
|
88
|
+
x[1] = (b + x[1]) | 0;
|
|
89
|
+
x[2] = (c + x[2]) | 0;
|
|
90
|
+
x[3] = (d + x[3]) | 0;
|
|
91
|
+
}
|
|
92
|
+
function md5blk(s) {
|
|
93
|
+
const md5blks = [];
|
|
94
|
+
for (let i = 0; i < 64; i += 4) {
|
|
95
|
+
md5blks[i >> 2] =
|
|
96
|
+
s.charCodeAt(i) +
|
|
97
|
+
(s.charCodeAt(i + 1) << 8) +
|
|
98
|
+
(s.charCodeAt(i + 2) << 16) +
|
|
99
|
+
(s.charCodeAt(i + 3) << 24);
|
|
100
|
+
}
|
|
101
|
+
return md5blks;
|
|
102
|
+
}
|
|
103
|
+
function md51(s) {
|
|
104
|
+
let n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i;
|
|
105
|
+
for (i = 64; i <= n; i += 64) {
|
|
106
|
+
md5cycle(state, md5blk(s.substring(i - 64, i)));
|
|
107
|
+
}
|
|
108
|
+
s = s.substring(i - 64);
|
|
109
|
+
const tail = Array(16).fill(0);
|
|
110
|
+
for (i = 0; i < s.length; i++)
|
|
111
|
+
tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
|
|
112
|
+
tail[i >> 2] |= 0x80 << ((i % 4) << 3);
|
|
113
|
+
if (i > 55) {
|
|
114
|
+
md5cycle(state, tail);
|
|
115
|
+
tail.fill(0);
|
|
116
|
+
}
|
|
117
|
+
tail[14] = n * 8;
|
|
118
|
+
md5cycle(state, tail);
|
|
119
|
+
return state;
|
|
120
|
+
}
|
|
121
|
+
// Fixed hex conversion function
|
|
122
|
+
function rhex(n) {
|
|
123
|
+
let s = '';
|
|
124
|
+
for (let j = 0; j < 4; j++) {
|
|
125
|
+
s += ((n >> (j * 8)) & 0xFF).toString(16).padStart(2, '0');
|
|
126
|
+
}
|
|
127
|
+
return s;
|
|
128
|
+
}
|
|
129
|
+
return md51(input).map(rhex).join('');
|
|
130
|
+
}
|
|
131
|
+
export function getAlphanumericLimitedHash(input, maxSize = 48) {
|
|
132
|
+
const hash = md5(input);
|
|
133
|
+
return hash.length > maxSize ? hash.substring(0, maxSize) : hash;
|
|
134
|
+
}
|
|
135
|
+
export function getGlobalUniqueHash(workspace, type, name) {
|
|
136
|
+
const globalUniqueName = `${workspace}-${type}-${name}`;
|
|
137
|
+
return getAlphanumericLimitedHash(globalUniqueName, 48);
|
|
138
|
+
}
|
|
139
|
+
export function pluralize(type) {
|
|
140
|
+
const word = type.toLowerCase();
|
|
141
|
+
// Words ending in s, ss, sh, ch, x, z - add 'es'
|
|
142
|
+
if (word.endsWith('s') || word.endsWith('ss') || word.endsWith('sh') ||
|
|
143
|
+
word.endsWith('ch') || word.endsWith('x') || word.endsWith('z')) {
|
|
144
|
+
return type + 'es';
|
|
145
|
+
}
|
|
146
|
+
// Words ending in consonant + y - change y to ies
|
|
147
|
+
if (word.endsWith('y') && word.length > 1) {
|
|
148
|
+
const beforeY = word[word.length - 2];
|
|
149
|
+
if (!'aeiou'.includes(beforeY)) {
|
|
150
|
+
return type.slice(0, -1) + 'ies';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Words ending in f or fe - change to ves
|
|
154
|
+
if (word.endsWith('f')) {
|
|
155
|
+
return type.slice(0, -1) + 'ves';
|
|
156
|
+
}
|
|
157
|
+
if (word.endsWith('fe')) {
|
|
158
|
+
return type.slice(0, -2) + 'ves';
|
|
159
|
+
}
|
|
160
|
+
// Words ending in consonant + o - add 'es'
|
|
161
|
+
if (word.endsWith('o') && word.length > 1) {
|
|
162
|
+
const beforeO = word[word.length - 2];
|
|
163
|
+
if (!'aeiou'.includes(beforeO)) {
|
|
164
|
+
return type + 'es';
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Default case - just add 's'
|
|
168
|
+
return type + 's';
|
|
169
|
+
}
|
|
170
|
+
export function getForcedUrl(type, name) {
|
|
171
|
+
const pluralType = pluralize(type);
|
|
172
|
+
const envVar = name.replace(/-/g, "_").toUpperCase();
|
|
173
|
+
// BL_FUNCTIONS_NAME_URL
|
|
174
|
+
if (env[`BL_${pluralType.toUpperCase()}_${envVar}_URL`]) {
|
|
175
|
+
return new URL(env[`BL_${pluralType.toUpperCase()}_${envVar}_URL`]);
|
|
176
|
+
}
|
|
177
|
+
// BL_FUNCTION_NAME_URL
|
|
178
|
+
if (env[`BL_${type.toUpperCase()}_${envVar}_URL`]) {
|
|
179
|
+
return new URL(env[`BL_${type.toUpperCase()}_${envVar}_URL`]);
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
export function getWorkloadTypeShort(type) {
|
|
184
|
+
const lowerType = type.toLowerCase();
|
|
185
|
+
switch (lowerType) {
|
|
186
|
+
case 'agent':
|
|
187
|
+
case 'agents':
|
|
188
|
+
return 'agt';
|
|
189
|
+
case 'mcp':
|
|
190
|
+
case 'mcps':
|
|
191
|
+
case 'function':
|
|
192
|
+
case 'functions':
|
|
193
|
+
return 'mcp';
|
|
194
|
+
case 'sandbox':
|
|
195
|
+
case 'sandboxes':
|
|
196
|
+
return 'sbx';
|
|
197
|
+
case 'job':
|
|
198
|
+
case 'jobs':
|
|
199
|
+
return 'job';
|
|
200
|
+
case 'model':
|
|
201
|
+
case 'models':
|
|
202
|
+
return 'mdl';
|
|
203
|
+
default:
|
|
204
|
+
// fallback to first 3 letters of type
|
|
205
|
+
return lowerType.substring(0, 3);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
export function generateInternalUrl(workspace, type, name, env, protocol, hostname, blCloud, workspaceId) {
|
|
209
|
+
if (blCloud && workspaceId) {
|
|
210
|
+
// New cloud format: bl-ENV-WORKLOAD_CALLED_NAME-WORKLOAD_TYPE_SHORT-WORKSPACE_ID
|
|
211
|
+
const workloadTypeShort = getWorkloadTypeShort(type);
|
|
212
|
+
const subdomain = `bl-${env}-${name}-${workloadTypeShort}-${workspaceId}`;
|
|
213
|
+
return `${protocol}://${subdomain}.${hostname}`;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
// Legacy format: bl-ENV-HASH.internalhostname
|
|
217
|
+
const hash = getGlobalUniqueHash(workspace, type, name);
|
|
218
|
+
return `${protocol}://bl-${env}-${hash}.${hostname}`;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { getAlphanumericLimitedHash, getGlobalUniqueHash } from "./internal.js";
|
|
3
|
+
describe('getAlphanumericLimitedHash', () => {
|
|
4
|
+
it('returns correct MD5 hash for a known string', () => {
|
|
5
|
+
// MD5 of 'hello' is 5d41402abc4b2a76b9719d911017c592
|
|
6
|
+
expect(getAlphanumericLimitedHash('hello')).toBe('5d41402abc4b2a76b9719d911017c592');
|
|
7
|
+
});
|
|
8
|
+
it('respects the maxSize parameter', () => {
|
|
9
|
+
const hash = getAlphanumericLimitedHash('hello', 8);
|
|
10
|
+
expect(hash.length).toBe(8);
|
|
11
|
+
expect(hash).toBe('5d41402a');
|
|
12
|
+
});
|
|
13
|
+
it('returns full hash if maxSize is larger than hash', () => {
|
|
14
|
+
const hash = getAlphanumericLimitedHash('hello', 64);
|
|
15
|
+
expect(hash).toBe('5d41402abc4b2a76b9719d911017c592');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
const testCases = [
|
|
19
|
+
{
|
|
20
|
+
workspace: 'charlou-dev',
|
|
21
|
+
type: 'function',
|
|
22
|
+
name: 'blaxel-search',
|
|
23
|
+
expected: '594d9322779f4a07a55a7bf1050360c6'
|
|
24
|
+
}, {
|
|
25
|
+
workspace: 'charlou-dev',
|
|
26
|
+
type: 'agent',
|
|
27
|
+
name: 'toto',
|
|
28
|
+
expected: '1bb3a151bda194751b062df8edb59eaf',
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
describe('getGlobalUniqueHash', () => {
|
|
32
|
+
testCases.forEach(({ workspace, type, name, expected }) => {
|
|
33
|
+
it(`returns ${expected} for ${workspace}-${type}-${name}`, () => {
|
|
34
|
+
expect(getGlobalUniqueHash(workspace, type, name)).toBe(expected);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stringify an object with a limited depth
|
|
3
|
+
* @param obj The object to stringify
|
|
4
|
+
* @param maxDepth Maximum depth (default: 1)
|
|
5
|
+
* @param depth Current depth (internal use)
|
|
6
|
+
*/
|
|
7
|
+
export function stringify(obj, maxDepth = 1, depth = 0) {
|
|
8
|
+
if (obj instanceof Error)
|
|
9
|
+
return obj.stack || obj.message;
|
|
10
|
+
if (obj === null)
|
|
11
|
+
return 'null';
|
|
12
|
+
if (obj === undefined)
|
|
13
|
+
return 'undefined';
|
|
14
|
+
// If we've reached max depth or it's not an object
|
|
15
|
+
if (depth >= maxDepth || typeof obj !== 'object') {
|
|
16
|
+
return typeof obj === 'object' ? `[${Array.isArray(obj) ? 'Array' : 'object'}]` :
|
|
17
|
+
typeof obj === 'string' ? `"${obj}"` : String(obj);
|
|
18
|
+
}
|
|
19
|
+
// Handle arrays
|
|
20
|
+
if (Array.isArray(obj)) {
|
|
21
|
+
return `[${obj.map(item => stringify(item, maxDepth, depth + 1)).join(', ')}]`;
|
|
22
|
+
}
|
|
23
|
+
// Handle objects
|
|
24
|
+
const pairs = Object.entries(obj).map(([key, val]) => `"${key}": ${stringify(val, maxDepth, depth + 1)}`);
|
|
25
|
+
return `{${pairs.join(', ')}}`;
|
|
26
|
+
}
|
|
27
|
+
class Logger {
|
|
28
|
+
logger;
|
|
29
|
+
constructor() {
|
|
30
|
+
this.logger = null;
|
|
31
|
+
}
|
|
32
|
+
setLogger(logger) {
|
|
33
|
+
this.logger = logger;
|
|
34
|
+
}
|
|
35
|
+
parseArgs(args) {
|
|
36
|
+
return args.map((arg) => {
|
|
37
|
+
if (arg instanceof Error) {
|
|
38
|
+
return arg.stack ?? arg.message;
|
|
39
|
+
}
|
|
40
|
+
return arg;
|
|
41
|
+
}).join(" ");
|
|
42
|
+
}
|
|
43
|
+
info(...message) {
|
|
44
|
+
if (this.logger) {
|
|
45
|
+
this.logger.info(this.parseArgs(message));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
debug(...message) {
|
|
49
|
+
if (this.logger) {
|
|
50
|
+
this.logger.debug(this.parseArgs(message));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
warn(...message) {
|
|
54
|
+
if (this.logger) {
|
|
55
|
+
this.logger.warn(this.parseArgs(message));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
error(...message) {
|
|
59
|
+
if (this.logger) {
|
|
60
|
+
this.logger.error(this.parseArgs(message));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const logger = new Logger();
|
|
65
|
+
export { logger };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// Browser-compatible exports for Node.js modules
|
|
3
|
+
// In browser environments, Node.js built-in modules are not available
|
|
4
|
+
// All Node.js modules are null in browser
|
|
5
|
+
export const fs = null;
|
|
6
|
+
export const os = null;
|
|
7
|
+
export const path = null;
|
|
8
|
+
export const dotenv = null;
|
|
9
|
+
// Async function to get WebSocket in browser environment
|
|
10
|
+
export async function getWebSocket() {
|
|
11
|
+
// In browser, use native WebSocket
|
|
12
|
+
if (typeof WebSocket !== 'undefined') {
|
|
13
|
+
return WebSocket;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw new Error("Native WebSocket not available in browser environment");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { authentication } from "../authentication/index.js";
|
|
2
|
+
import { env } from "../common/env.js";
|
|
3
|
+
// Function to get package version
|
|
4
|
+
function getPackageVersion() {
|
|
5
|
+
try {
|
|
6
|
+
// Check if require is available (CommonJS environment)
|
|
7
|
+
if (typeof require !== "undefined") {
|
|
8
|
+
// Try to require package.json (Node.js only, gracefully fails in browser)
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
10
|
+
const packageJson = {"version":"0.2.43-dev.199","commit":"f0e8fd40aacd9997e2a873e83577658212c0134f"};
|
|
11
|
+
return packageJson.version || "unknown";
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
// ESM environment - return unknown
|
|
15
|
+
return "unknown";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// Fallback for browser environments or if require fails
|
|
20
|
+
return "unknown";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Function to get OS and architecture
|
|
24
|
+
function getOsArch() {
|
|
25
|
+
try {
|
|
26
|
+
// Node.js environment
|
|
27
|
+
if (typeof process !== 'undefined' && process.platform && process.arch) {
|
|
28
|
+
const platform = process.platform === 'win32' ? 'windows' :
|
|
29
|
+
process.platform === 'darwin' ? 'darwin' :
|
|
30
|
+
process.platform === 'linux' ? 'linux' : process.platform;
|
|
31
|
+
return `${platform}/${process.arch}`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Fall through to browser detection
|
|
36
|
+
}
|
|
37
|
+
// Browser environment - use fixed detection
|
|
38
|
+
try {
|
|
39
|
+
const g = globalThis;
|
|
40
|
+
const platformValue = g.navigator?.platform;
|
|
41
|
+
if (typeof platformValue === 'string') {
|
|
42
|
+
const navPlatform = platformValue.toLowerCase();
|
|
43
|
+
const platform = navPlatform.includes('win') ? 'windows' :
|
|
44
|
+
navPlatform.includes('mac') ? 'darwin' :
|
|
45
|
+
navPlatform.includes('linux') ? 'linux' : 'browser';
|
|
46
|
+
const arch = navPlatform.includes('64') ? 'amd64' : 'unknown';
|
|
47
|
+
return `${platform}/${arch}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Ignore errors
|
|
52
|
+
}
|
|
53
|
+
return "browser/unknown";
|
|
54
|
+
}
|
|
55
|
+
// Function to get commit hash
|
|
56
|
+
function getCommitHash() {
|
|
57
|
+
try {
|
|
58
|
+
// Check if require is available (CommonJS environment)
|
|
59
|
+
if (typeof require !== "undefined") {
|
|
60
|
+
// Try to require package.json and look for commit field (set during build)
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
62
|
+
const packageJson = {"version":"0.2.43-dev.199","commit":"f0e8fd40aacd9997e2a873e83577658212c0134f"};
|
|
63
|
+
// Check for commit in various possible locations
|
|
64
|
+
const commit = packageJson.commit || packageJson.buildInfo?.commit;
|
|
65
|
+
if (commit) {
|
|
66
|
+
return commit.length > 7 ? commit.substring(0, 7) : commit;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Fallback for browser environments or if require fails
|
|
72
|
+
}
|
|
73
|
+
return "unknown";
|
|
74
|
+
}
|
|
75
|
+
class Settings {
|
|
76
|
+
credentials;
|
|
77
|
+
config;
|
|
78
|
+
_version = null;
|
|
79
|
+
constructor() {
|
|
80
|
+
this.credentials = authentication();
|
|
81
|
+
this.config = {
|
|
82
|
+
proxy: "",
|
|
83
|
+
apikey: "",
|
|
84
|
+
workspace: "",
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
setConfig(config) {
|
|
88
|
+
this.config = config;
|
|
89
|
+
}
|
|
90
|
+
get env() {
|
|
91
|
+
return env.BL_ENV || "prod";
|
|
92
|
+
}
|
|
93
|
+
get baseUrl() {
|
|
94
|
+
if (this.config.proxy) {
|
|
95
|
+
return this.config.proxy + "/api";
|
|
96
|
+
}
|
|
97
|
+
if (env.BL_API_URL) {
|
|
98
|
+
return env.BL_API_URL;
|
|
99
|
+
}
|
|
100
|
+
if (this.env === "prod") {
|
|
101
|
+
return "https://api.blaxel.ai/v0";
|
|
102
|
+
}
|
|
103
|
+
return "https://api.blaxel.dev/v0";
|
|
104
|
+
}
|
|
105
|
+
get runUrl() {
|
|
106
|
+
if (this.config.proxy) {
|
|
107
|
+
return this.config.proxy + "/run";
|
|
108
|
+
}
|
|
109
|
+
if (env.BL_RUN_URL) {
|
|
110
|
+
return env.BL_RUN_URL;
|
|
111
|
+
}
|
|
112
|
+
if (this.env === "prod") {
|
|
113
|
+
return "https://run.blaxel.ai";
|
|
114
|
+
}
|
|
115
|
+
return "https://run.blaxel.dev";
|
|
116
|
+
}
|
|
117
|
+
get workspace() {
|
|
118
|
+
return this.config.workspace || this.credentials.workspace || "";
|
|
119
|
+
}
|
|
120
|
+
get authorization() {
|
|
121
|
+
if (this.config.apikey) {
|
|
122
|
+
return 'Bearer ' + this.token;
|
|
123
|
+
}
|
|
124
|
+
return this.credentials.authorization;
|
|
125
|
+
}
|
|
126
|
+
get token() {
|
|
127
|
+
if (this.config.apikey) {
|
|
128
|
+
return this.config.apikey;
|
|
129
|
+
}
|
|
130
|
+
return this.credentials.token;
|
|
131
|
+
}
|
|
132
|
+
get version() {
|
|
133
|
+
if (this._version === null) {
|
|
134
|
+
this._version = getPackageVersion();
|
|
135
|
+
}
|
|
136
|
+
return this._version;
|
|
137
|
+
}
|
|
138
|
+
get headers() {
|
|
139
|
+
const osArch = getOsArch();
|
|
140
|
+
const commitHash = getCommitHash();
|
|
141
|
+
return {
|
|
142
|
+
"x-blaxel-authorization": this.authorization,
|
|
143
|
+
"x-blaxel-workspace": this.workspace || "",
|
|
144
|
+
"User-Agent": `blaxel/sdk/typescript/${this.version} (${osArch}) blaxel/${commitHash}`,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
get name() {
|
|
148
|
+
return env.BL_NAME || "";
|
|
149
|
+
}
|
|
150
|
+
get type() {
|
|
151
|
+
return env.BL_TYPE || "agents";
|
|
152
|
+
}
|
|
153
|
+
get runInternalHostname() {
|
|
154
|
+
if (!this.generation) {
|
|
155
|
+
return "";
|
|
156
|
+
}
|
|
157
|
+
return env.BL_RUN_INTERNAL_HOST || "";
|
|
158
|
+
}
|
|
159
|
+
get runInternalProtocol() {
|
|
160
|
+
return env.BL_RUN_INTERNAL_PROTOCOL || "https";
|
|
161
|
+
}
|
|
162
|
+
get blCloud() {
|
|
163
|
+
return env.BL_CLOUD === "true";
|
|
164
|
+
}
|
|
165
|
+
get workspaceId() {
|
|
166
|
+
return env.BL_WORKSPACE_ID || "";
|
|
167
|
+
}
|
|
168
|
+
get generation() {
|
|
169
|
+
return env.BL_GENERATION || "";
|
|
170
|
+
}
|
|
171
|
+
get loggerType() {
|
|
172
|
+
return env.BL_LOGGER || "http";
|
|
173
|
+
}
|
|
174
|
+
async authenticate() {
|
|
175
|
+
await this.credentials.authenticate();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
export const settings = new Settings();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
// Import your SDK entry point or a function to test
|
|
3
|
+
import * as sdk from "./index.js";
|
|
4
|
+
describe('SDK Browser Integration', () => {
|
|
5
|
+
it('should load the SDK without Node.js-only modules', () => {
|
|
6
|
+
// Example: check that SDK loads and a function exists
|
|
7
|
+
expect(typeof sdk).toBe('object');
|
|
8
|
+
// Add more specific tests for your SDK as needed
|
|
9
|
+
});
|
|
10
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "./common/autoload.js";
|
|
2
|
+
export * from "./agents/index.js";
|
|
3
|
+
export * from "./client/client.js";
|
|
4
|
+
export * from "./common/autoload.js";
|
|
5
|
+
export * from "./common/env.js";
|
|
6
|
+
export * from "./common/node.js";
|
|
7
|
+
export * from "./common/errors.js";
|
|
8
|
+
export * from "./common/internal.js";
|
|
9
|
+
export * from "./common/logger.js";
|
|
10
|
+
export * from "./common/settings.js";
|
|
11
|
+
export * from "./jobs/index.js";
|
|
12
|
+
export * from "./mcp/index.js";
|
|
13
|
+
export * from "./models/index.js";
|
|
14
|
+
export * from "./sandbox/index.js";
|
|
15
|
+
export * from "./telemetry/telemetry.js";
|
|
16
|
+
export * from "./tools/index.js";
|
|
17
|
+
export * from "./tools/types.js";
|
|
18
|
+
export * from "./volume/index.js";
|