@blaxel/core 0.2.49-dev.214 → 0.2.49-dev1
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/agents/index.d.ts +15 -0
- package/dist/agents/index.js +109 -0
- package/dist/authentication/apikey.d.ts +10 -0
- package/dist/authentication/apikey.js +24 -0
- package/dist/authentication/clientcredentials.d.ts +17 -0
- package/dist/authentication/clientcredentials.js +85 -0
- package/dist/authentication/credentials.d.ts +6 -0
- package/dist/authentication/credentials.js +17 -0
- package/dist/authentication/deviceMode.d.ts +15 -0
- package/dist/authentication/deviceMode.js +70 -0
- package/dist/authentication/index.d.ts +3 -0
- package/dist/authentication/index.js +62 -0
- package/dist/authentication/types.d.ts +9 -0
- package/dist/authentication/types.js +2 -0
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.js +26 -0
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/agents/index.js +2 -2
- package/dist/cjs/authentication/clientcredentials.js +1 -4
- package/dist/cjs/client/responseInterceptor.js +53 -0
- package/dist/cjs/client/sdk.gen.js +143 -3
- package/dist/cjs/common/autoload.js +7 -0
- package/dist/cjs/common/env.js +3 -0
- package/dist/cjs/common/internal.js +0 -40
- package/dist/cjs/common/settings.js +2 -5
- package/dist/cjs/common/version.js +6 -0
- package/dist/cjs/common/webhook.js +101 -0
- package/dist/cjs/jobs/executions.js +119 -0
- package/dist/cjs/jobs/jobs.js +2 -2
- package/dist/cjs/jobs/start.js +1 -32
- package/dist/cjs/sandbox/action.js +2 -1
- package/dist/cjs/sandbox/index.js +1 -0
- package/dist/cjs/sandbox/interpreter.js +400 -0
- package/dist/cjs/sandbox/sandbox.js +10 -67
- package/dist/cjs/tools/mcpTool.js +2 -6
- package/dist/cjs/types/client/responseInterceptor.d.ts +12 -0
- package/dist/cjs/types/client/sdk.gen.d.ts +41 -1
- package/dist/cjs/types/client/types.gen.d.ts +599 -16
- package/dist/cjs/types/common/internal.d.ts +0 -2
- package/dist/cjs/types/common/settings.d.ts +0 -1
- package/dist/cjs/types/common/version.d.ts +2 -0
- package/dist/cjs/types/common/webhook.d.ts +89 -0
- package/dist/cjs/types/jobs/executions.d.ts +42 -0
- package/dist/cjs/types/sandbox/client/sdk.gen.d.ts +1 -1
- package/dist/cjs/types/sandbox/index.d.ts +1 -0
- package/dist/cjs/types/sandbox/interpreter.d.ts +71 -0
- package/dist/cjs/types/sandbox/sandbox.d.ts +6 -12
- package/dist/cjs/types/sandbox/types.d.ts +0 -3
- package/dist/cjs-browser/.tsbuildinfo +1 -1
- package/dist/cjs-browser/agents/index.js +2 -2
- package/dist/cjs-browser/authentication/clientcredentials.js +1 -4
- package/dist/cjs-browser/client/responseInterceptor.js +53 -0
- package/dist/cjs-browser/client/sdk.gen.js +143 -3
- package/dist/cjs-browser/common/autoload.js +7 -0
- package/dist/cjs-browser/common/env.js +3 -0
- package/dist/cjs-browser/common/internal.js +0 -40
- package/dist/cjs-browser/common/settings.js +2 -5
- package/dist/cjs-browser/common/version.js +6 -0
- package/dist/cjs-browser/common/webhook.js +101 -0
- package/dist/cjs-browser/jobs/executions.js +119 -0
- package/dist/cjs-browser/jobs/jobs.js +2 -2
- package/dist/cjs-browser/jobs/start.js +1 -32
- package/dist/cjs-browser/sandbox/action.js +2 -1
- package/dist/cjs-browser/sandbox/index.js +1 -0
- package/dist/cjs-browser/sandbox/interpreter.js +400 -0
- package/dist/cjs-browser/sandbox/sandbox.js +10 -67
- package/dist/cjs-browser/tools/mcpTool.js +2 -6
- package/dist/cjs-browser/types/client/responseInterceptor.d.ts +12 -0
- package/dist/cjs-browser/types/client/sdk.gen.d.ts +41 -1
- package/dist/cjs-browser/types/client/types.gen.d.ts +599 -16
- package/dist/cjs-browser/types/common/internal.d.ts +0 -2
- package/dist/cjs-browser/types/common/settings.d.ts +0 -1
- package/dist/cjs-browser/types/common/version.d.ts +2 -0
- package/dist/cjs-browser/types/common/webhook.d.ts +89 -0
- package/dist/cjs-browser/types/jobs/executions.d.ts +42 -0
- package/dist/cjs-browser/types/sandbox/client/sdk.gen.d.ts +1 -1
- package/dist/cjs-browser/types/sandbox/index.d.ts +1 -0
- package/dist/cjs-browser/types/sandbox/interpreter.d.ts +71 -0
- package/dist/cjs-browser/types/sandbox/sandbox.d.ts +6 -12
- package/dist/cjs-browser/types/sandbox/types.d.ts +0 -3
- package/dist/client/authentication.d.ts +25 -0
- package/dist/client/authentication.js +15 -0
- package/dist/client/client.d.ts +2 -0
- package/dist/client/client.gen.d.ts +12 -0
- package/dist/client/client.gen.js +8 -0
- package/dist/{cjs/sandbox/websocket/index.js → client/client.js} +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.js +19 -0
- package/dist/client/interceptors.d.ts +3 -0
- package/dist/client/interceptors.js +17 -0
- package/dist/client/sdk.gen.d.ts +499 -0
- package/dist/client/sdk.gen.js +1751 -0
- package/dist/client/types.gen.d.ts +4546 -0
- package/dist/client/types.gen.js +4 -0
- package/dist/common/autoload.d.ts +3 -0
- package/dist/common/autoload.js +27 -0
- package/dist/common/env.d.ts +5 -0
- package/dist/common/env.js +42 -0
- package/dist/common/errors.d.ts +1 -0
- package/dist/common/errors.js +17 -0
- package/dist/common/internal.d.ts +4 -0
- package/dist/common/internal.js +188 -0
- package/dist/common/internal.test.d.ts +1 -0
- package/dist/common/internal.test.js +39 -0
- package/dist/common/logger.d.ts +25 -0
- package/dist/common/logger.js +69 -0
- package/dist/common/node.d.ts +5 -0
- package/dist/common/node.js +26 -0
- package/dist/common/settings.d.ts +31 -0
- package/dist/common/settings.js +170 -0
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/agents/index.js +3 -3
- package/dist/esm/authentication/clientcredentials.js +1 -4
- package/dist/esm/client/responseInterceptor.js +49 -0
- package/dist/esm/client/sdk.gen.js +132 -0
- package/dist/esm/common/autoload.js +7 -0
- package/dist/esm/common/env.js +3 -0
- package/dist/esm/common/internal.js +0 -38
- package/dist/esm/common/settings.js +2 -5
- package/dist/esm/common/version.js +3 -0
- package/dist/esm/common/webhook.js +97 -0
- package/dist/esm/jobs/executions.js +114 -0
- package/dist/esm/jobs/jobs.js +3 -3
- package/dist/esm/jobs/start.js +1 -32
- package/dist/esm/sandbox/action.js +3 -2
- package/dist/esm/sandbox/index.js +1 -0
- package/dist/esm/sandbox/interpreter.js +396 -0
- package/dist/esm/sandbox/sandbox.js +10 -67
- package/dist/esm/tools/mcpTool.js +3 -7
- package/dist/esm-browser/.tsbuildinfo +1 -1
- package/dist/esm-browser/agents/index.js +3 -3
- package/dist/esm-browser/authentication/clientcredentials.js +1 -4
- package/dist/esm-browser/client/responseInterceptor.js +49 -0
- package/dist/esm-browser/client/sdk.gen.js +132 -0
- package/dist/esm-browser/common/autoload.js +7 -0
- package/dist/esm-browser/common/env.js +3 -0
- package/dist/esm-browser/common/internal.js +0 -38
- package/dist/esm-browser/common/settings.js +2 -5
- package/dist/esm-browser/common/version.js +3 -0
- package/dist/esm-browser/common/webhook.js +97 -0
- package/dist/esm-browser/jobs/executions.js +114 -0
- package/dist/esm-browser/jobs/jobs.js +3 -3
- package/dist/esm-browser/jobs/start.js +1 -32
- package/dist/esm-browser/sandbox/action.js +3 -2
- package/dist/esm-browser/sandbox/index.js +1 -0
- package/dist/esm-browser/sandbox/interpreter.js +396 -0
- package/dist/esm-browser/sandbox/sandbox.js +10 -67
- package/dist/esm-browser/tools/mcpTool.js +3 -7
- package/dist/index.browser.test.d.ts +1 -0
- package/dist/index.browser.test.js +45 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +33 -0
- package/dist/jobs/index.d.ts +3 -0
- package/dist/jobs/index.js +19 -0
- package/dist/jobs/jobs.d.ts +13 -0
- package/dist/jobs/jobs.js +90 -0
- package/dist/jobs/start.d.ts +1 -0
- package/dist/jobs/start.js +66 -0
- package/dist/jobs/types.d.ts +3 -0
- package/dist/jobs/types.js +2 -0
- package/dist/mcp/client.d.ts +28 -0
- package/dist/mcp/client.js +247 -0
- package/dist/{cjs-browser/types/sandbox/websocket → mcp}/index.d.ts +1 -0
- package/dist/{cjs-browser/sandbox/websocket → mcp}/index.js +1 -0
- package/dist/mcp/server.d.ts +24 -0
- package/dist/mcp/server.js +213 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.js +31 -0
- package/dist/sandbox/action.d.ts +19 -0
- package/dist/sandbox/action.js +84 -0
- package/dist/sandbox/client/client.gen.d.ts +12 -0
- package/dist/sandbox/client/client.gen.js +6 -0
- package/dist/sandbox/client/index.d.ts +2 -0
- package/dist/sandbox/client/index.js +19 -0
- package/dist/sandbox/client/sdk.gen.d.ts +101 -0
- package/dist/sandbox/client/sdk.gen.js +289 -0
- package/dist/sandbox/client/types.gen.d.ts +578 -0
- package/dist/sandbox/client/types.gen.js +3 -0
- package/dist/{cjs/types/sandbox/filesystem/filesystem-ws.d.ts → sandbox/filesystem/filesystem.d.ts} +6 -18
- package/dist/sandbox/filesystem/filesystem.js +276 -0
- package/dist/sandbox/filesystem/index.d.ts +2 -0
- package/dist/sandbox/filesystem/index.js +18 -0
- package/dist/sandbox/filesystem/types.d.ts +15 -0
- package/dist/sandbox/filesystem/types.js +2 -0
- package/dist/sandbox/index.d.ts +4 -0
- package/dist/sandbox/index.js +36 -0
- package/dist/sandbox/network/index.d.ts +1 -0
- package/dist/sandbox/network/index.js +17 -0
- package/dist/sandbox/network/network.d.ts +5 -0
- package/dist/sandbox/network/network.js +10 -0
- package/dist/sandbox/preview.d.ts +37 -0
- package/dist/sandbox/preview.js +148 -0
- package/dist/sandbox/process/index.d.ts +1 -0
- package/dist/sandbox/process/index.js +17 -0
- package/dist/sandbox/process/process.d.ts +24 -0
- package/dist/sandbox/process/process.js +189 -0
- package/dist/sandbox/sandbox.d.ts +33 -0
- package/dist/sandbox/sandbox.js +178 -0
- package/dist/sandbox/session.d.ts +27 -0
- package/dist/sandbox/session.js +123 -0
- package/dist/sandbox/types.d.ts +51 -0
- package/dist/sandbox/types.js +81 -0
- package/dist/telemetry/telemetry.d.ts +62 -0
- package/dist/telemetry/telemetry.js +80 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.js +52 -0
- package/dist/tools/mcpTool.d.ts +28 -0
- package/dist/tools/mcpTool.js +218 -0
- package/dist/tools/types.d.ts +8 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/zodSchema.d.ts +9 -0
- package/dist/tools/zodSchema.js +50 -0
- package/dist/volume/index.d.ts +23 -0
- package/dist/volume/index.js +113 -0
- package/package.json +2 -2
- package/dist/cjs/sandbox/codegen/codegen-ws.js +0 -30
- package/dist/cjs/sandbox/filesystem/filesystem-ws.js +0 -106
- package/dist/cjs/sandbox/network/network-ws.js +0 -12
- package/dist/cjs/sandbox/process/process-ws.js +0 -139
- package/dist/cjs/sandbox/websocket/client.js +0 -269
- package/dist/cjs/types/sandbox/codegen/codegen-ws.d.ts +0 -10
- package/dist/cjs/types/sandbox/network/network-ws.d.ts +0 -7
- package/dist/cjs/types/sandbox/process/process-ws.d.ts +0 -27
- package/dist/cjs/types/sandbox/websocket/client.d.ts +0 -48
- package/dist/cjs/types/sandbox/websocket/index.d.ts +0 -1
- package/dist/cjs-browser/sandbox/codegen/codegen-ws.js +0 -30
- package/dist/cjs-browser/sandbox/filesystem/filesystem-ws.js +0 -106
- package/dist/cjs-browser/sandbox/network/network-ws.js +0 -12
- package/dist/cjs-browser/sandbox/process/process-ws.js +0 -139
- package/dist/cjs-browser/sandbox/websocket/client.js +0 -269
- package/dist/cjs-browser/types/sandbox/codegen/codegen-ws.d.ts +0 -10
- package/dist/cjs-browser/types/sandbox/filesystem/filesystem-ws.d.ts +0 -35
- package/dist/cjs-browser/types/sandbox/network/network-ws.d.ts +0 -7
- package/dist/cjs-browser/types/sandbox/process/process-ws.d.ts +0 -27
- package/dist/cjs-browser/types/sandbox/websocket/client.d.ts +0 -48
- package/dist/esm/sandbox/codegen/codegen-ws.js +0 -26
- package/dist/esm/sandbox/filesystem/filesystem-ws.js +0 -102
- package/dist/esm/sandbox/network/network-ws.js +0 -8
- package/dist/esm/sandbox/process/process-ws.js +0 -135
- package/dist/esm/sandbox/websocket/client.js +0 -265
- package/dist/esm/sandbox/websocket/index.js +0 -1
- package/dist/esm-browser/sandbox/codegen/codegen-ws.js +0 -26
- package/dist/esm-browser/sandbox/filesystem/filesystem-ws.js +0 -102
- package/dist/esm-browser/sandbox/network/network-ws.js +0 -8
- package/dist/esm-browser/sandbox/process/process-ws.js +0 -135
- package/dist/esm-browser/sandbox/websocket/client.js +0 -265
- package/dist/esm-browser/sandbox/websocket/index.js +0 -1
|
@@ -0,0 +1,213 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.BlaxelMcpServerTransport = void 0;
|
|
37
|
+
const uuid_1 = require("uuid");
|
|
38
|
+
const ws_1 = __importStar(require("ws"));
|
|
39
|
+
const env_js_1 = require("../common/env.js");
|
|
40
|
+
const logger_js_1 = require("../common/logger.js");
|
|
41
|
+
const telemetry_js_1 = require("../telemetry/telemetry.js");
|
|
42
|
+
const spans = new Map();
|
|
43
|
+
class BlaxelMcpServerTransport {
|
|
44
|
+
port;
|
|
45
|
+
wss;
|
|
46
|
+
clients = new Map();
|
|
47
|
+
onclose;
|
|
48
|
+
onerror;
|
|
49
|
+
messageHandler;
|
|
50
|
+
onconnection;
|
|
51
|
+
ondisconnection;
|
|
52
|
+
set onmessage(handler) {
|
|
53
|
+
this.messageHandler = handler
|
|
54
|
+
? (msg, clientId) => {
|
|
55
|
+
if (!("id" in msg)) {
|
|
56
|
+
return handler(msg);
|
|
57
|
+
}
|
|
58
|
+
return handler({
|
|
59
|
+
...msg,
|
|
60
|
+
id: clientId + ":" + msg.id,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
: undefined;
|
|
64
|
+
}
|
|
65
|
+
constructor(port) {
|
|
66
|
+
this.port = port ?? parseInt(env_js_1.env.BL_SERVER_PORT ?? "8080", 10);
|
|
67
|
+
this.wss = new ws_1.WebSocketServer({ port: this.port });
|
|
68
|
+
}
|
|
69
|
+
async start() {
|
|
70
|
+
logger_js_1.logger.info("Starting WebSocket Server on port " + this.port);
|
|
71
|
+
this.wss.on("connection", (ws) => {
|
|
72
|
+
const clientId = (0, uuid_1.v4)();
|
|
73
|
+
this.clients.set(clientId, {
|
|
74
|
+
ws,
|
|
75
|
+
});
|
|
76
|
+
this.onconnection?.(clientId);
|
|
77
|
+
ws.on("message", (data) => {
|
|
78
|
+
const span = (0, telemetry_js_1.startSpan)("message", {
|
|
79
|
+
attributes: {
|
|
80
|
+
"mcp.client.id": clientId,
|
|
81
|
+
"span.type": "mcp.message",
|
|
82
|
+
},
|
|
83
|
+
isRoot: false,
|
|
84
|
+
});
|
|
85
|
+
try {
|
|
86
|
+
const msg = JSON.parse(data.toString());
|
|
87
|
+
this.messageHandler?.(msg, clientId);
|
|
88
|
+
if ("method" in msg && "id" in msg && "params" in msg) {
|
|
89
|
+
span.setAttributes({
|
|
90
|
+
"mcp.message.parsed": true,
|
|
91
|
+
"mcp.method": msg.method,
|
|
92
|
+
"mcp.messageId": msg.id,
|
|
93
|
+
"mcp.toolName": msg.params?.name,
|
|
94
|
+
});
|
|
95
|
+
spans.set(clientId + ":" + msg.id, span);
|
|
96
|
+
}
|
|
97
|
+
// Handle msg.id safely
|
|
98
|
+
const msgId = msg.id ? String(msg.id) : "";
|
|
99
|
+
const [cId, parsedMsgId] = msgId.split(":");
|
|
100
|
+
msg.id = parsedMsgId ? parseInt(parsedMsgId) : undefined;
|
|
101
|
+
// Use optional chaining for safe access
|
|
102
|
+
const client = this.clients.get(cId ?? "");
|
|
103
|
+
if (client?.ws?.readyState === ws_1.default.OPEN) {
|
|
104
|
+
const msgSpan = spans.get(cId + ":" + (msg.id ?? ""));
|
|
105
|
+
try {
|
|
106
|
+
client.ws.send(JSON.stringify(msg));
|
|
107
|
+
if (msgSpan) {
|
|
108
|
+
msgSpan.setAttributes({
|
|
109
|
+
"mcp.message.response_sent": true,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
if (msgSpan) {
|
|
115
|
+
msgSpan.setStatus("error"); // Error status
|
|
116
|
+
msgSpan.recordException(err);
|
|
117
|
+
}
|
|
118
|
+
throw err;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
if (msgSpan) {
|
|
122
|
+
msgSpan.end();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.clients.delete(cId);
|
|
128
|
+
this.ondisconnection?.(cId);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
if (err instanceof Error) {
|
|
133
|
+
span.setStatus("error"); // Error status
|
|
134
|
+
span.recordException(err);
|
|
135
|
+
this.onerror?.(err);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.onerror?.(new Error(`Failed to parse message: ${String(err)}`));
|
|
139
|
+
}
|
|
140
|
+
span.end();
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
ws.on("close", () => {
|
|
144
|
+
this.clients.delete(clientId);
|
|
145
|
+
this.ondisconnection?.(clientId);
|
|
146
|
+
});
|
|
147
|
+
ws.on("error", (err) => {
|
|
148
|
+
this.onerror?.(err);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
return Promise.resolve();
|
|
152
|
+
}
|
|
153
|
+
async send(msg) {
|
|
154
|
+
const [cId, msgId] = msg.id ? String(msg.id).split(":") : [];
|
|
155
|
+
msg.id = parseInt(msgId);
|
|
156
|
+
const data = JSON.stringify(msg);
|
|
157
|
+
const deadClients = [];
|
|
158
|
+
if (cId) {
|
|
159
|
+
// Send to specific client
|
|
160
|
+
const client = this.clients.get(cId);
|
|
161
|
+
if (client?.ws?.readyState === ws_1.default.OPEN) {
|
|
162
|
+
const msgSpan = spans.get(cId + ":" + msg.id);
|
|
163
|
+
try {
|
|
164
|
+
client.ws.send(data);
|
|
165
|
+
if (msgSpan) {
|
|
166
|
+
msgSpan.setAttributes({
|
|
167
|
+
"mcp.message.response_sent": true,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
if (msgSpan) {
|
|
173
|
+
msgSpan.setStatus("error"); // Error status
|
|
174
|
+
msgSpan.recordException(err);
|
|
175
|
+
}
|
|
176
|
+
throw err;
|
|
177
|
+
}
|
|
178
|
+
finally {
|
|
179
|
+
if (msgSpan) {
|
|
180
|
+
msgSpan.end();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
this.clients.delete(cId);
|
|
186
|
+
this.ondisconnection?.(cId);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
for (const [id, client] of this.clients.entries()) {
|
|
190
|
+
if (client.ws.readyState !== ws_1.default.OPEN) {
|
|
191
|
+
deadClients.push(id);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Cleanup dead clients
|
|
195
|
+
deadClients.forEach((id) => {
|
|
196
|
+
this.clients.delete(id);
|
|
197
|
+
this.ondisconnection?.(id);
|
|
198
|
+
});
|
|
199
|
+
return Promise.resolve();
|
|
200
|
+
}
|
|
201
|
+
async broadcast(msg) {
|
|
202
|
+
return this.send(msg);
|
|
203
|
+
}
|
|
204
|
+
async close() {
|
|
205
|
+
return new Promise((resolve) => {
|
|
206
|
+
this.wss.close(() => {
|
|
207
|
+
this.clients.clear();
|
|
208
|
+
resolve();
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
exports.BlaxelMcpServerTransport = BlaxelMcpServerTransport;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Model } from "../client/types.gen.js";
|
|
2
|
+
export declare class BLModel {
|
|
3
|
+
modelName: string;
|
|
4
|
+
options?: Record<string, unknown>;
|
|
5
|
+
constructor(modelName: string, options?: Record<string, unknown>);
|
|
6
|
+
}
|
|
7
|
+
export declare const blModel: (modelName: string, options?: Record<string, unknown>) => BLModel;
|
|
8
|
+
export declare const getModelMetadata: (model: string) => Promise<Model | null>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getModelMetadata = exports.blModel = exports.BLModel = void 0;
|
|
4
|
+
const index_js_1 = require("../cache/index.js");
|
|
5
|
+
const sdk_gen_js_1 = require("../client/sdk.gen.js");
|
|
6
|
+
class BLModel {
|
|
7
|
+
modelName;
|
|
8
|
+
options;
|
|
9
|
+
constructor(modelName, options) {
|
|
10
|
+
this.modelName = modelName;
|
|
11
|
+
this.options = options || {};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.BLModel = BLModel;
|
|
15
|
+
const blModel = (modelName, options) => {
|
|
16
|
+
return new BLModel(modelName, options);
|
|
17
|
+
};
|
|
18
|
+
exports.blModel = blModel;
|
|
19
|
+
const getModelMetadata = async (model) => {
|
|
20
|
+
const cacheData = await (0, index_js_1.findFromCache)("Model", model);
|
|
21
|
+
if (cacheData) {
|
|
22
|
+
return cacheData;
|
|
23
|
+
}
|
|
24
|
+
const { data } = await (0, sdk_gen_js_1.getModel)({
|
|
25
|
+
path: {
|
|
26
|
+
modelName: model,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
return data || null;
|
|
30
|
+
};
|
|
31
|
+
exports.getModelMetadata = getModelMetadata;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SandboxConfiguration } from "./types.js";
|
|
2
|
+
export declare class ResponseError extends Error {
|
|
3
|
+
response: Response;
|
|
4
|
+
data: unknown;
|
|
5
|
+
error: unknown;
|
|
6
|
+
constructor(response: Response, data: unknown, error: unknown);
|
|
7
|
+
}
|
|
8
|
+
export declare class SandboxAction {
|
|
9
|
+
protected sandbox: SandboxConfiguration;
|
|
10
|
+
constructor(sandbox: SandboxConfiguration);
|
|
11
|
+
get name(): string;
|
|
12
|
+
get fallbackUrl(): string | null;
|
|
13
|
+
get externalUrl(): string;
|
|
14
|
+
get internalUrl(): string;
|
|
15
|
+
get client(): import("@hey-api/client-fetch").Client;
|
|
16
|
+
get forcedUrl(): string | import("url").URL | null;
|
|
17
|
+
get url(): string;
|
|
18
|
+
handleResponseError(response: Response, data: unknown, error: unknown): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SandboxAction = exports.ResponseError = void 0;
|
|
4
|
+
const client_fetch_1 = require("@hey-api/client-fetch");
|
|
5
|
+
const internal_js_1 = require("../common/internal.js");
|
|
6
|
+
const settings_js_1 = require("../common/settings.js");
|
|
7
|
+
const client_gen_js_1 = require("./client/client.gen.js");
|
|
8
|
+
class ResponseError extends Error {
|
|
9
|
+
response;
|
|
10
|
+
data;
|
|
11
|
+
error;
|
|
12
|
+
constructor(response, data, error) {
|
|
13
|
+
let dataError = {};
|
|
14
|
+
if (data && typeof data === 'object' && 'error' in data) {
|
|
15
|
+
dataError = data;
|
|
16
|
+
}
|
|
17
|
+
if (error && typeof error === 'object' && 'error' in error) {
|
|
18
|
+
dataError['error'] = error.error;
|
|
19
|
+
}
|
|
20
|
+
if (response.status) {
|
|
21
|
+
dataError['status'] = response.status;
|
|
22
|
+
}
|
|
23
|
+
if (response.statusText) {
|
|
24
|
+
dataError['statusText'] = response.statusText;
|
|
25
|
+
}
|
|
26
|
+
super(JSON.stringify(dataError));
|
|
27
|
+
this.response = response;
|
|
28
|
+
this.data = data;
|
|
29
|
+
this.error = error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ResponseError = ResponseError;
|
|
33
|
+
class SandboxAction {
|
|
34
|
+
sandbox;
|
|
35
|
+
constructor(sandbox) {
|
|
36
|
+
this.sandbox = sandbox;
|
|
37
|
+
}
|
|
38
|
+
get name() {
|
|
39
|
+
return this.sandbox.metadata?.name ?? "";
|
|
40
|
+
}
|
|
41
|
+
get fallbackUrl() {
|
|
42
|
+
if (this.externalUrl != this.url) {
|
|
43
|
+
return this.externalUrl;
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
get externalUrl() {
|
|
48
|
+
return `${settings_js_1.settings.runUrl}/${settings_js_1.settings.workspace}/sandboxes/${this.name}`;
|
|
49
|
+
}
|
|
50
|
+
get internalUrl() {
|
|
51
|
+
const hash = (0, internal_js_1.getGlobalUniqueHash)(settings_js_1.settings.workspace, "sandbox", this.name);
|
|
52
|
+
return `${settings_js_1.settings.runInternalProtocol}://bl-${settings_js_1.settings.env}-${hash}.${settings_js_1.settings.runInternalHostname}`;
|
|
53
|
+
}
|
|
54
|
+
get client() {
|
|
55
|
+
if (this.sandbox.forceUrl) {
|
|
56
|
+
return (0, client_fetch_1.createClient)({
|
|
57
|
+
baseUrl: this.sandbox.forceUrl,
|
|
58
|
+
headers: this.sandbox.headers,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return client_gen_js_1.client;
|
|
62
|
+
}
|
|
63
|
+
get forcedUrl() {
|
|
64
|
+
if (this.sandbox.forceUrl)
|
|
65
|
+
return this.sandbox.forceUrl;
|
|
66
|
+
return (0, internal_js_1.getForcedUrl)('sandbox', this.name);
|
|
67
|
+
}
|
|
68
|
+
get url() {
|
|
69
|
+
if (this.forcedUrl) {
|
|
70
|
+
const url = this.forcedUrl.toString();
|
|
71
|
+
return url.endsWith('/') ? url.slice(0, -1) : url;
|
|
72
|
+
}
|
|
73
|
+
// Uncomment and use this when agent and mcp are available in mk3
|
|
74
|
+
// Update all requests made in this package to use fallbackUrl when internalUrl is not working
|
|
75
|
+
// if (settings.runInternalHostname) return this.internalUrl;
|
|
76
|
+
return this.externalUrl;
|
|
77
|
+
}
|
|
78
|
+
handleResponseError(response, data, error) {
|
|
79
|
+
if (!response.ok || !data) {
|
|
80
|
+
throw new ResponseError(response, data, error);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.SandboxAction = SandboxAction;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ClientOptions } from './types.gen';
|
|
2
|
+
import { type Config, type ClientOptions as DefaultClientOptions } from '@hey-api/client-fetch';
|
|
3
|
+
/**
|
|
4
|
+
* The `createClientConfig()` function will be called on client initialization
|
|
5
|
+
* and the returned object will become the client's initial configuration.
|
|
6
|
+
*
|
|
7
|
+
* You may want to initialize your client this way instead of calling
|
|
8
|
+
* `setConfig()`. This is useful for example if you're using Next.js
|
|
9
|
+
* to ensure your client always has the correct values.
|
|
10
|
+
*/
|
|
11
|
+
export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>;
|
|
12
|
+
export declare const client: import("@hey-api/client-fetch").Client;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.client = void 0;
|
|
5
|
+
const client_fetch_1 = require("@hey-api/client-fetch");
|
|
6
|
+
exports.client = (0, client_fetch_1.createClient)((0, client_fetch_1.createConfig)());
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
18
|
+
__exportStar(require("./types.gen.js"), exports);
|
|
19
|
+
__exportStar(require("./sdk.gen.js"), exports);
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch';
|
|
2
|
+
import type { DeleteFilesystemByPathData, GetFilesystemByPathData, PutFilesystemByPathData, DeleteNetworkProcessByPidMonitorData, PostNetworkProcessByPidMonitorData, GetNetworkProcessByPidPortsData, GetProcessData, PostProcessData, DeleteProcessByIdentifierData, GetProcessByIdentifierData, DeleteProcessByIdentifierKillData, GetProcessByIdentifierLogsData, GetProcessByIdentifierLogsStreamData, GetWatchFilesystemByPathData, GetWsProcessByIdentifierLogsStreamData, GetWsWatchFilesystemByPathData } from './types.gen';
|
|
3
|
+
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
|
|
4
|
+
/**
|
|
5
|
+
* You can provide a client instance returned by `createClient()` instead of
|
|
6
|
+
* individual options. This might be also useful if you want to implement a
|
|
7
|
+
* custom client.
|
|
8
|
+
*/
|
|
9
|
+
client?: Client;
|
|
10
|
+
/**
|
|
11
|
+
* You can pass arbitrary values through the `meta` object. This can be
|
|
12
|
+
* used to access values that aren't defined as part of the SDK function.
|
|
13
|
+
*/
|
|
14
|
+
meta?: Record<string, unknown>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Delete file or directory
|
|
18
|
+
* Delete a file or directory
|
|
19
|
+
*/
|
|
20
|
+
export declare const deleteFilesystemByPath: <ThrowOnError extends boolean = false>(options: Options<DeleteFilesystemByPathData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
21
|
+
/**
|
|
22
|
+
* Get file or directory information
|
|
23
|
+
* Get content of a file or listing of a directory
|
|
24
|
+
*/
|
|
25
|
+
export declare const getFilesystemByPath: <ThrowOnError extends boolean = false>(options: Options<GetFilesystemByPathData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").Directory | import("./types.gen").FileWithContent, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
26
|
+
/**
|
|
27
|
+
* Create or update a file or directory
|
|
28
|
+
* Create or update a file or directory
|
|
29
|
+
*/
|
|
30
|
+
export declare const putFilesystemByPath: <ThrowOnError extends boolean = false>(options: Options<PutFilesystemByPathData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
31
|
+
/**
|
|
32
|
+
* Stop monitoring ports for a process
|
|
33
|
+
* Stop monitoring for new ports opened by a process
|
|
34
|
+
*/
|
|
35
|
+
export declare const deleteNetworkProcessByPidMonitor: <ThrowOnError extends boolean = false>(options: Options<DeleteNetworkProcessByPidMonitorData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
}, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
38
|
+
/**
|
|
39
|
+
* Start monitoring ports for a process
|
|
40
|
+
* Start monitoring for new ports opened by a process
|
|
41
|
+
*/
|
|
42
|
+
export declare const postNetworkProcessByPidMonitor: <ThrowOnError extends boolean = false>(options: Options<PostNetworkProcessByPidMonitorData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
}, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
45
|
+
/**
|
|
46
|
+
* Get open ports for a process
|
|
47
|
+
* Get a list of all open ports for a process
|
|
48
|
+
*/
|
|
49
|
+
export declare const getNetworkProcessByPidPorts: <ThrowOnError extends boolean = false>(options: Options<GetNetworkProcessByPidPortsData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
|
|
50
|
+
[key: string]: unknown;
|
|
51
|
+
}, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
52
|
+
/**
|
|
53
|
+
* List all processes
|
|
54
|
+
* Get a list of all running and completed processes
|
|
55
|
+
*/
|
|
56
|
+
export declare const getProcess: <ThrowOnError extends boolean = false>(options?: Options<GetProcessData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").ProcessResponse[], unknown, ThrowOnError>;
|
|
57
|
+
/**
|
|
58
|
+
* Execute a command
|
|
59
|
+
* Execute a command and return process information
|
|
60
|
+
*/
|
|
61
|
+
export declare const postProcess: <ThrowOnError extends boolean = false>(options: Options<PostProcessData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").ProcessResponse, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
62
|
+
/**
|
|
63
|
+
* Stop a process
|
|
64
|
+
* Gracefully stop a running process
|
|
65
|
+
*/
|
|
66
|
+
export declare const deleteProcessByIdentifier: <ThrowOnError extends boolean = false>(options: Options<DeleteProcessByIdentifierData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
67
|
+
/**
|
|
68
|
+
* Get process by identifier
|
|
69
|
+
* Get information about a process by its PID or name
|
|
70
|
+
*/
|
|
71
|
+
export declare const getProcessByIdentifier: <ThrowOnError extends boolean = false>(options: Options<GetProcessByIdentifierData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").ProcessResponse, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
72
|
+
/**
|
|
73
|
+
* Kill a process
|
|
74
|
+
* Forcefully kill a running process
|
|
75
|
+
*/
|
|
76
|
+
export declare const deleteProcessByIdentifierKill: <ThrowOnError extends boolean = false>(options: Options<DeleteProcessByIdentifierKillData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
77
|
+
/**
|
|
78
|
+
* Get process logs
|
|
79
|
+
* Get the stdout and stderr output of a process
|
|
80
|
+
*/
|
|
81
|
+
export declare const getProcessByIdentifierLogs: <ThrowOnError extends boolean = false>(options: Options<GetProcessByIdentifierLogsData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").ProcessLogs, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
82
|
+
/**
|
|
83
|
+
* Stream process logs in real time
|
|
84
|
+
* Streams the stdout and stderr output of a process in real time, one line per log, prefixed with 'stdout:' or 'stderr:'. Closes when the process exits or the client disconnects.
|
|
85
|
+
*/
|
|
86
|
+
export declare const getProcessByIdentifierLogsStream: <ThrowOnError extends boolean = false>(options: Options<GetProcessByIdentifierLogsStreamData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<string, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
87
|
+
/**
|
|
88
|
+
* Stream file modification events in a directory
|
|
89
|
+
* Streams the path of modified files (one per line) in the given directory. Closes when the client disconnects.
|
|
90
|
+
*/
|
|
91
|
+
export declare const getWatchFilesystemByPath: <ThrowOnError extends boolean = false>(options: Options<GetWatchFilesystemByPathData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<string, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
92
|
+
/**
|
|
93
|
+
* Stream process logs in real time via WebSocket
|
|
94
|
+
* Streams the stdout and stderr output of a process in real time as JSON messages.
|
|
95
|
+
*/
|
|
96
|
+
export declare const getWsProcessByIdentifierLogsStream: <ThrowOnError extends boolean = false>(options: Options<GetWsProcessByIdentifierLogsStreamData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<unknown, import("./types.gen").ErrorResponse, ThrowOnError>;
|
|
97
|
+
/**
|
|
98
|
+
* Stream file modification events in a directory via WebSocket
|
|
99
|
+
* Streams JSON events of modified files in the given directory. Closes when the client disconnects.
|
|
100
|
+
*/
|
|
101
|
+
export declare const getWsWatchFilesystemByPath: <ThrowOnError extends boolean = false>(options: Options<GetWsWatchFilesystemByPathData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<unknown, import("./types.gen").ErrorResponse, ThrowOnError>;
|