@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.
Files changed (194) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/authentication/index.js +4 -30
  3. package/dist/cjs/cache/index.js +3 -16
  4. package/dist/cjs/common/browser.js +22 -0
  5. package/dist/cjs/common/env.js +12 -24
  6. package/dist/cjs/common/node.js +13 -25
  7. package/dist/cjs/common/settings.js +2 -2
  8. package/dist/cjs/sandbox/filesystem/filesystem.js +12 -13
  9. package/dist/cjs/sandbox/sandbox.js +2 -2
  10. package/dist/cjs/types/common/browser.d.ts +5 -0
  11. package/dist/cjs/types/common/node.d.ts +1 -2
  12. package/dist/cjs/types/sandbox/filesystem/filesystem.d.ts +6 -2
  13. package/dist/cjs-browser/.tsbuildinfo +1 -0
  14. package/dist/cjs-browser/agents/index.js +109 -0
  15. package/dist/cjs-browser/authentication/apikey.js +24 -0
  16. package/dist/cjs-browser/authentication/clientcredentials.js +85 -0
  17. package/dist/cjs-browser/authentication/credentials.js +17 -0
  18. package/dist/cjs-browser/authentication/deviceMode.js +70 -0
  19. package/dist/cjs-browser/authentication/index.js +62 -0
  20. package/dist/cjs-browser/authentication/types.js +2 -0
  21. package/dist/cjs-browser/cache/index.js +26 -0
  22. package/dist/cjs-browser/client/authentication.js +15 -0
  23. package/dist/cjs-browser/client/client.gen.js +8 -0
  24. package/dist/cjs-browser/client/client.js +17 -0
  25. package/dist/cjs-browser/client/index.js +19 -0
  26. package/dist/cjs-browser/client/interceptors.js +17 -0
  27. package/dist/cjs-browser/client/sdk.gen.js +1824 -0
  28. package/dist/cjs-browser/client/types.gen.js +4 -0
  29. package/dist/cjs-browser/common/autoload.js +27 -0
  30. package/dist/cjs-browser/common/env.js +57 -0
  31. package/dist/cjs-browser/common/errors.js +17 -0
  32. package/dist/cjs-browser/common/internal.js +228 -0
  33. package/dist/cjs-browser/common/internal.test.js +39 -0
  34. package/dist/cjs-browser/common/logger.js +69 -0
  35. package/dist/cjs-browser/common/node.js +22 -0
  36. package/dist/cjs-browser/common/settings.js +181 -0
  37. package/dist/cjs-browser/index.browser.test.js +45 -0
  38. package/dist/cjs-browser/index.js +34 -0
  39. package/dist/cjs-browser/jobs/index.js +19 -0
  40. package/dist/cjs-browser/jobs/jobs.js +90 -0
  41. package/dist/cjs-browser/jobs/start.js +66 -0
  42. package/dist/cjs-browser/jobs/types.js +2 -0
  43. package/dist/cjs-browser/mcp/client.js +235 -0
  44. package/dist/cjs-browser/mcp/index.js +18 -0
  45. package/dist/cjs-browser/mcp/server.js +213 -0
  46. package/dist/cjs-browser/models/index.js +31 -0
  47. package/dist/cjs-browser/sandbox/action.js +83 -0
  48. package/dist/cjs-browser/sandbox/client/client.gen.js +6 -0
  49. package/dist/cjs-browser/sandbox/client/index.js +19 -0
  50. package/dist/cjs-browser/sandbox/client/sdk.gen.js +289 -0
  51. package/dist/cjs-browser/sandbox/client/types.gen.js +3 -0
  52. package/dist/cjs-browser/sandbox/filesystem/filesystem.js +240 -0
  53. package/dist/cjs-browser/sandbox/filesystem/index.js +18 -0
  54. package/dist/cjs-browser/sandbox/filesystem/types.js +2 -0
  55. package/dist/cjs-browser/sandbox/index.js +36 -0
  56. package/dist/cjs-browser/sandbox/network/index.js +17 -0
  57. package/dist/cjs-browser/sandbox/network/network.js +10 -0
  58. package/dist/cjs-browser/sandbox/preview.js +148 -0
  59. package/dist/cjs-browser/sandbox/process/index.js +17 -0
  60. package/dist/cjs-browser/sandbox/process/process.js +189 -0
  61. package/dist/cjs-browser/sandbox/sandbox.js +180 -0
  62. package/dist/cjs-browser/sandbox/session.js +123 -0
  63. package/dist/cjs-browser/sandbox/types.js +81 -0
  64. package/dist/cjs-browser/telemetry/telemetry.js +80 -0
  65. package/dist/cjs-browser/tools/index.js +52 -0
  66. package/dist/cjs-browser/tools/mcpTool.js +254 -0
  67. package/dist/cjs-browser/tools/types.js +2 -0
  68. package/dist/cjs-browser/tools/zodSchema.js +50 -0
  69. package/dist/cjs-browser/types/agents/index.d.ts +15 -0
  70. package/dist/cjs-browser/types/authentication/apikey.d.ts +10 -0
  71. package/dist/cjs-browser/types/authentication/clientcredentials.d.ts +17 -0
  72. package/dist/cjs-browser/types/authentication/credentials.d.ts +6 -0
  73. package/dist/cjs-browser/types/authentication/deviceMode.d.ts +15 -0
  74. package/dist/cjs-browser/types/authentication/index.d.ts +3 -0
  75. package/dist/cjs-browser/types/authentication/types.d.ts +9 -0
  76. package/dist/cjs-browser/types/cache/index.d.ts +1 -0
  77. package/dist/cjs-browser/types/client/authentication.d.ts +25 -0
  78. package/dist/cjs-browser/types/client/client.d.ts +2 -0
  79. package/dist/cjs-browser/types/client/client.gen.d.ts +12 -0
  80. package/dist/cjs-browser/types/client/index.d.ts +2 -0
  81. package/dist/cjs-browser/types/client/interceptors.d.ts +3 -0
  82. package/dist/cjs-browser/types/client/sdk.gen.d.ts +519 -0
  83. package/dist/cjs-browser/types/client/types.gen.d.ts +4950 -0
  84. package/dist/cjs-browser/types/common/autoload.d.ts +3 -0
  85. package/dist/cjs-browser/types/common/browser.d.ts +5 -0
  86. package/dist/cjs-browser/types/common/env.d.ts +5 -0
  87. package/dist/cjs-browser/types/common/errors.d.ts +1 -0
  88. package/dist/cjs-browser/types/common/internal.d.ts +6 -0
  89. package/dist/cjs-browser/types/common/internal.test.d.ts +1 -0
  90. package/dist/cjs-browser/types/common/logger.d.ts +25 -0
  91. package/dist/cjs-browser/types/common/node.d.ts +6 -0
  92. package/dist/cjs-browser/types/common/settings.d.ts +32 -0
  93. package/dist/cjs-browser/types/index.browser.test.d.ts +1 -0
  94. package/dist/cjs-browser/types/index.d.ts +18 -0
  95. package/dist/cjs-browser/types/jobs/index.d.ts +3 -0
  96. package/dist/cjs-browser/types/jobs/jobs.d.ts +13 -0
  97. package/dist/cjs-browser/types/jobs/start.d.ts +1 -0
  98. package/dist/cjs-browser/types/jobs/types.d.ts +3 -0
  99. package/dist/cjs-browser/types/mcp/client.d.ts +28 -0
  100. package/dist/cjs-browser/types/mcp/index.d.ts +2 -0
  101. package/dist/cjs-browser/types/mcp/server.d.ts +24 -0
  102. package/dist/cjs-browser/types/models/index.d.ts +8 -0
  103. package/dist/cjs-browser/types/sandbox/action.d.ts +19 -0
  104. package/dist/cjs-browser/types/sandbox/client/client.gen.d.ts +12 -0
  105. package/dist/cjs-browser/types/sandbox/client/index.d.ts +2 -0
  106. package/dist/cjs-browser/types/sandbox/client/sdk.gen.d.ts +101 -0
  107. package/dist/cjs-browser/types/sandbox/client/types.gen.d.ts +578 -0
  108. package/dist/cjs-browser/types/sandbox/filesystem/filesystem.d.ts +27 -0
  109. package/dist/cjs-browser/types/sandbox/filesystem/index.d.ts +2 -0
  110. package/dist/cjs-browser/types/sandbox/filesystem/types.d.ts +15 -0
  111. package/dist/cjs-browser/types/sandbox/index.d.ts +4 -0
  112. package/dist/cjs-browser/types/sandbox/network/index.d.ts +1 -0
  113. package/dist/cjs-browser/types/sandbox/network/network.d.ts +5 -0
  114. package/dist/cjs-browser/types/sandbox/preview.d.ts +37 -0
  115. package/dist/cjs-browser/types/sandbox/process/index.d.ts +1 -0
  116. package/dist/cjs-browser/types/sandbox/process/process.d.ts +24 -0
  117. package/dist/cjs-browser/types/sandbox/sandbox.d.ts +33 -0
  118. package/dist/cjs-browser/types/sandbox/session.d.ts +27 -0
  119. package/dist/cjs-browser/types/sandbox/types.d.ts +52 -0
  120. package/dist/cjs-browser/types/telemetry/telemetry.d.ts +62 -0
  121. package/dist/cjs-browser/types/tools/index.d.ts +12 -0
  122. package/dist/cjs-browser/types/tools/mcpTool.d.ts +33 -0
  123. package/dist/cjs-browser/types/tools/types.d.ts +8 -0
  124. package/dist/cjs-browser/types/tools/zodSchema.d.ts +82 -0
  125. package/dist/cjs-browser/types/volume/index.d.ts +23 -0
  126. package/dist/cjs-browser/volume/index.js +113 -0
  127. package/dist/esm/.tsbuildinfo +1 -1
  128. package/dist/esm/authentication/index.js +1 -27
  129. package/dist/esm/cache/index.js +2 -15
  130. package/dist/esm/common/browser.js +18 -0
  131. package/dist/esm/common/env.js +7 -19
  132. package/dist/esm/common/node.js +10 -21
  133. package/dist/esm/common/settings.js +2 -2
  134. package/dist/esm/sandbox/filesystem/filesystem.js +13 -14
  135. package/dist/esm/sandbox/sandbox.js +2 -2
  136. package/dist/esm-browser/.tsbuildinfo +1 -0
  137. package/dist/esm-browser/agents/index.js +104 -0
  138. package/dist/esm-browser/authentication/apikey.js +20 -0
  139. package/dist/esm-browser/authentication/clientcredentials.js +81 -0
  140. package/dist/esm-browser/authentication/credentials.js +13 -0
  141. package/dist/esm-browser/authentication/deviceMode.js +66 -0
  142. package/dist/esm-browser/authentication/index.js +56 -0
  143. package/dist/esm-browser/authentication/types.js +1 -0
  144. package/dist/esm-browser/cache/index.js +20 -0
  145. package/dist/esm-browser/client/authentication.js +11 -0
  146. package/dist/esm-browser/client/client.gen.js +5 -0
  147. package/dist/esm-browser/client/client.js +1 -0
  148. package/dist/esm-browser/client/index.js +3 -0
  149. package/dist/esm-browser/client/interceptors.js +14 -0
  150. package/dist/esm-browser/client/sdk.gen.js +1717 -0
  151. package/dist/esm-browser/client/types.gen.js +3 -0
  152. package/dist/esm-browser/common/autoload.js +23 -0
  153. package/dist/esm-browser/common/env.js +51 -0
  154. package/dist/esm-browser/common/errors.js +14 -0
  155. package/dist/esm-browser/common/internal.js +220 -0
  156. package/dist/esm-browser/common/internal.test.js +37 -0
  157. package/dist/esm-browser/common/logger.js +65 -0
  158. package/dist/esm-browser/common/node.js +18 -0
  159. package/dist/esm-browser/common/settings.js +178 -0
  160. package/dist/esm-browser/index.browser.test.js +10 -0
  161. package/dist/esm-browser/index.js +18 -0
  162. package/dist/esm-browser/jobs/index.js +3 -0
  163. package/dist/esm-browser/jobs/jobs.js +86 -0
  164. package/dist/esm-browser/jobs/start.js +62 -0
  165. package/dist/esm-browser/jobs/types.js +1 -0
  166. package/dist/esm-browser/mcp/client.js +231 -0
  167. package/dist/esm-browser/mcp/index.js +2 -0
  168. package/dist/esm-browser/mcp/server.js +176 -0
  169. package/dist/esm-browser/models/index.js +25 -0
  170. package/dist/esm-browser/package.json +1 -0
  171. package/dist/esm-browser/sandbox/action.js +78 -0
  172. package/dist/esm-browser/sandbox/client/client.gen.js +3 -0
  173. package/dist/esm-browser/sandbox/client/index.js +3 -0
  174. package/dist/esm-browser/sandbox/client/sdk.gen.js +270 -0
  175. package/dist/esm-browser/sandbox/client/types.gen.js +2 -0
  176. package/dist/esm-browser/sandbox/filesystem/filesystem.js +236 -0
  177. package/dist/esm-browser/sandbox/filesystem/index.js +2 -0
  178. package/dist/esm-browser/sandbox/filesystem/types.js +1 -0
  179. package/dist/esm-browser/sandbox/index.js +7 -0
  180. package/dist/esm-browser/sandbox/network/index.js +1 -0
  181. package/dist/esm-browser/sandbox/network/network.js +6 -0
  182. package/dist/esm-browser/sandbox/preview.js +141 -0
  183. package/dist/esm-browser/sandbox/process/index.js +1 -0
  184. package/dist/esm-browser/sandbox/process/process.js +185 -0
  185. package/dist/esm-browser/sandbox/sandbox.js +176 -0
  186. package/dist/esm-browser/sandbox/session.js +119 -0
  187. package/dist/esm-browser/sandbox/types.js +76 -0
  188. package/dist/esm-browser/telemetry/telemetry.js +74 -0
  189. package/dist/esm-browser/tools/index.js +44 -0
  190. package/dist/esm-browser/tools/mcpTool.js +249 -0
  191. package/dist/esm-browser/tools/types.js +1 -0
  192. package/dist/esm-browser/tools/zodSchema.js +43 -0
  193. package/dist/esm-browser/volume/index.js +109 -0
  194. package/package.json +16 -4
@@ -0,0 +1,45 @@
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
+ const vitest_1 = require("vitest");
37
+ // Import your SDK entry point or a function to test
38
+ const sdk = __importStar(require("./index"));
39
+ (0, vitest_1.describe)('SDK Browser Integration', () => {
40
+ (0, vitest_1.it)('should load the SDK without Node.js-only modules', () => {
41
+ // Example: check that SDK loads and a function exists
42
+ (0, vitest_1.expect)(typeof sdk).toBe('object');
43
+ // Add more specific tests for your SDK as needed
44
+ });
45
+ });
@@ -0,0 +1,34 @@
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
+ require("./common/autoload");
18
+ __exportStar(require("./agents/index.js"), exports);
19
+ __exportStar(require("./client/client.js"), exports);
20
+ __exportStar(require("./common/autoload.js"), exports);
21
+ __exportStar(require("./common/env.js"), exports);
22
+ __exportStar(require("./common/node.js"), exports);
23
+ __exportStar(require("./common/errors.js"), exports);
24
+ __exportStar(require("./common/internal.js"), exports);
25
+ __exportStar(require("./common/logger.js"), exports);
26
+ __exportStar(require("./common/settings.js"), exports);
27
+ __exportStar(require("./jobs/index.js"), exports);
28
+ __exportStar(require("./mcp/index.js"), exports);
29
+ __exportStar(require("./models/index.js"), exports);
30
+ __exportStar(require("./sandbox/index.js"), exports);
31
+ __exportStar(require("./telemetry/telemetry.js"), exports);
32
+ __exportStar(require("./tools/index.js"), exports);
33
+ __exportStar(require("./tools/types.js"), exports);
34
+ __exportStar(require("./volume/index.js"), exports);
@@ -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
+ __exportStar(require("./jobs.js"), exports);
18
+ __exportStar(require("./start.js"), exports);
19
+ __exportStar(require("./types.js"), exports);
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.blJob = void 0;
4
+ const internal_js_1 = require("../common/internal.js");
5
+ const logger_js_1 = require("../common/logger.js");
6
+ const settings_js_1 = require("../common/settings.js");
7
+ const telemetry_js_1 = require("../telemetry/telemetry.js");
8
+ class BlJob {
9
+ jobName;
10
+ constructor(jobName) {
11
+ this.jobName = jobName;
12
+ }
13
+ get fallbackUrl() {
14
+ if (this.externalUrl != this.url) {
15
+ return this.externalUrl;
16
+ }
17
+ return null;
18
+ }
19
+ get externalUrl() {
20
+ return new URL(`${settings_js_1.settings.runUrl}/${settings_js_1.settings.workspace}/jobs/${this.jobName}`);
21
+ }
22
+ get internalUrl() {
23
+ const url = (0, internal_js_1.generateInternalUrl)(settings_js_1.settings.workspace, "job", this.jobName, settings_js_1.settings.env, settings_js_1.settings.runInternalProtocol, settings_js_1.settings.runInternalHostname, settings_js_1.settings.blCloud, settings_js_1.settings.workspaceId);
24
+ return new URL(url);
25
+ }
26
+ get forcedUrl() {
27
+ return (0, internal_js_1.getForcedUrl)('job', this.jobName);
28
+ }
29
+ get url() {
30
+ if (this.forcedUrl)
31
+ return this.forcedUrl;
32
+ if (settings_js_1.settings.runInternalHostname)
33
+ return this.internalUrl;
34
+ return this.externalUrl;
35
+ }
36
+ async call(url, tasks) {
37
+ const body = {
38
+ tasks: tasks
39
+ };
40
+ const response = await fetch(url.toString() + "/executions", {
41
+ method: "POST",
42
+ headers: {
43
+ ...settings_js_1.settings.headers,
44
+ "Content-Type": "application/json",
45
+ },
46
+ body: JSON.stringify(body),
47
+ });
48
+ return response;
49
+ }
50
+ async run(tasks) {
51
+ logger_js_1.logger.debug(`Job Calling: ${this.jobName}`);
52
+ const span = (0, telemetry_js_1.startSpan)(this.jobName, {
53
+ attributes: {
54
+ "job.name": this.jobName,
55
+ "span.type": "job.run",
56
+ },
57
+ isRoot: false,
58
+ });
59
+ try {
60
+ const response = await this.call(this.url, tasks);
61
+ return await response.text();
62
+ }
63
+ catch (err) {
64
+ if (err instanceof Error) {
65
+ if (!this.fallbackUrl) {
66
+ span.setAttribute("job.run.error", err.stack);
67
+ throw err;
68
+ }
69
+ try {
70
+ const response = await this.call(this.fallbackUrl, tasks);
71
+ return await response.text();
72
+ }
73
+ catch (err) {
74
+ if (err instanceof Error) {
75
+ span.setAttribute("job.run.error", err.stack);
76
+ }
77
+ throw err;
78
+ }
79
+ }
80
+ throw err;
81
+ }
82
+ finally {
83
+ span.end();
84
+ }
85
+ }
86
+ }
87
+ const blJob = (jobName) => {
88
+ return new BlJob(jobName);
89
+ };
90
+ exports.blJob = blJob;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.blStartJob = void 0;
4
+ const autoload_js_1 = require("../common/autoload.js");
5
+ const env_js_1 = require("../common/env.js");
6
+ const telemetry_js_1 = require("../telemetry/telemetry.js");
7
+ class BlJobWrapper {
8
+ async getArguments() {
9
+ if (!env_js_1.env.BL_EXECUTION_DATA_URL) {
10
+ const args = this.parseCommandLineArgs();
11
+ return args;
12
+ }
13
+ const response = await fetch(env_js_1.env.BL_EXECUTION_DATA_URL);
14
+ const data = await response.json();
15
+ return data.tasks[this.index] ?? {};
16
+ }
17
+ parseCommandLineArgs() {
18
+ const args = process.argv.slice(2);
19
+ const result = {};
20
+ for (let i = 0; i < args.length; i++) {
21
+ const arg = args[i];
22
+ if (arg.startsWith('--')) {
23
+ const key = arg.slice(2);
24
+ const value = args[i + 1];
25
+ if (value && !value.startsWith('--')) {
26
+ result[key] = value;
27
+ i++;
28
+ }
29
+ else {
30
+ result[key] = 'true';
31
+ }
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+ get indexKey() {
37
+ return env_js_1.env.BL_TASK_KEY ?? "TASK_INDEX";
38
+ }
39
+ get index() {
40
+ return env_js_1.env[this.indexKey] ? Number(env_js_1.env[this.indexKey]) : 0;
41
+ }
42
+ /*
43
+ Run a job defined in a function, it's run in the current process
44
+ */
45
+ async start(func) {
46
+ await (0, autoload_js_1.authenticate)();
47
+ const parsedArgs = await this.getArguments();
48
+ await func(parsedArgs);
49
+ }
50
+ }
51
+ const blStartJob = (func) => {
52
+ const job = new BlJobWrapper();
53
+ job.start(func).then(async () => {
54
+ try {
55
+ await (0, telemetry_js_1.flush)();
56
+ }
57
+ catch (error) {
58
+ console.error('Error flushing telemetry:', error);
59
+ }
60
+ process.exit(0);
61
+ }).catch((error) => {
62
+ console.error('Job execution failed:', error);
63
+ process.exit(1);
64
+ });
65
+ };
66
+ exports.blStartJob = blStartJob;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlaxelMcpClientTransport = void 0;
4
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
5
+ const logger_js_1 = require("../common/logger.js");
6
+ const node_js_1 = require("../common/node.js");
7
+ const settings_js_1 = require("../common/settings.js");
8
+ // WebSocket will be loaded dynamically via getWebSocket() function
9
+ //const SUBPROTOCOL = "mcp";
10
+ // Helper function to wait
11
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
12
+ /**
13
+ * Client transport for WebSocket: this will connect to a server over the WebSocket protocol.
14
+ * Works in both browser and Node.js environments.
15
+ */
16
+ class BlaxelMcpClientTransport {
17
+ _socket;
18
+ _url;
19
+ _headers;
20
+ _isBrowser;
21
+ _retry_max;
22
+ _retry_delay;
23
+ onclose;
24
+ onerror;
25
+ onmessage;
26
+ constructor(url, headers, options) {
27
+ this._url = new URL(url.replace("http", "ws"));
28
+ this._retry_max = options?.retry?.max ?? 3;
29
+ this._retry_delay = options?.retry?.delay ?? 1000;
30
+ this._headers = headers ?? {};
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
32
+ this._isBrowser = typeof globalThis !== "undefined" && (globalThis)?.window !== undefined;
33
+ }
34
+ async start() {
35
+ if (this._socket) {
36
+ throw new Error("Blaxel already started! If using Client class, note that connect() calls start() automatically.");
37
+ }
38
+ let attempts = 0;
39
+ const maxAttempts = Math.max(1, this._retry_max + 1); // Ensure at least 1 attempt
40
+ while (attempts < maxAttempts) {
41
+ try {
42
+ await this._connect();
43
+ return;
44
+ }
45
+ catch (error) {
46
+ attempts++;
47
+ if (error instanceof Error) {
48
+ logger_js_1.logger.warn(error.stack ?? error.message);
49
+ }
50
+ if (attempts >= maxAttempts) {
51
+ throw error;
52
+ }
53
+ logger_js_1.logger.debug(`WebSocket connection attempt ${attempts} failed, retrying in ${this._retry_delay}ms...`);
54
+ await delay(this._retry_delay);
55
+ }
56
+ }
57
+ }
58
+ async _connect() {
59
+ return new Promise((resolve, reject) => {
60
+ const setupConnection = async () => {
61
+ try {
62
+ if (this._isBrowser) {
63
+ // Use native browser WebSocket
64
+ const url = `${this._url.toString()}?token=${settings_js_1.settings.token}`;
65
+ this._socket = new WebSocket(url);
66
+ }
67
+ else {
68
+ // Use Node.js WebSocket - get it via the centralized async function
69
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
70
+ const NodeWebSocket = await (0, node_js_1.getWebSocket)();
71
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
72
+ this._socket = new NodeWebSocket(this._url, {
73
+ //protocols: SUBPROTOCOL,
74
+ headers: this._headers,
75
+ });
76
+ }
77
+ this._socket.onerror = (event) => {
78
+ // Log websocket error with meaningful information instead of raw event
79
+ const errorInfo = {
80
+ type: 'WebSocket Error',
81
+ url: this._url.toString(),
82
+ readyState: this._socket?.readyState,
83
+ browser: this._isBrowser,
84
+ // Extract any available error details from the event
85
+ eventType: event && typeof event === 'object' && 'type' in event
86
+ ? String(event.type)
87
+ : 'unknown',
88
+ // Browser events might have different properties than Node.js
89
+ message: this._isBrowser && event && typeof event === 'object' && 'message' in event
90
+ ? String(event.message)
91
+ : undefined,
92
+ error: !this._isBrowser && event && typeof event === 'object' && 'error' in event
93
+ ? String(event.error)
94
+ : undefined
95
+ };
96
+ logger_js_1.logger.error('WebSocket connection error', errorInfo);
97
+ const error = this._isBrowser
98
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
99
+ ? new Error(`WebSocket error: ${event.message}`)
100
+ : "error" in event
101
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
102
+ ? event.error
103
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
104
+ : new Error(`WebSocket error: ${event.message}`);
105
+ reject(error);
106
+ this.onerror?.(error);
107
+ };
108
+ this._socket.onopen = () => {
109
+ resolve();
110
+ };
111
+ this._socket.onclose = () => {
112
+ this.onclose?.();
113
+ this._socket = undefined;
114
+ };
115
+ this._socket.onmessage = (event) => {
116
+ let message;
117
+ try {
118
+ let dataString;
119
+ if (this._isBrowser) {
120
+ // Browser WebSocket MessageEvent
121
+ const browserEvent = event;
122
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
123
+ dataString = typeof browserEvent.data === "string"
124
+ ? browserEvent.data
125
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
126
+ : browserEvent.data.toString();
127
+ }
128
+ else {
129
+ // Node.js WebSocket MessageEvent
130
+ const nodeEvent = event;
131
+ if (typeof nodeEvent.data === "string") {
132
+ dataString = nodeEvent.data;
133
+ }
134
+ else if (nodeEvent.data instanceof Buffer) {
135
+ dataString = nodeEvent.data.toString("utf-8");
136
+ }
137
+ else {
138
+ throw new Error("Unsupported data type for event.data");
139
+ }
140
+ }
141
+ message = types_js_1.JSONRPCMessageSchema.parse(JSON.parse(dataString));
142
+ }
143
+ catch (error) {
144
+ logger_js_1.logger.error(`Error parsing message: ${
145
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
146
+ typeof event.data === "object"
147
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
148
+ ? JSON.stringify(event.data)
149
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
150
+ : event.data}`);
151
+ this.onerror?.(error);
152
+ return;
153
+ }
154
+ this.onmessage?.(message);
155
+ };
156
+ }
157
+ catch (error) {
158
+ if (error instanceof Error && error.message.includes("ws does not work in the browser")) {
159
+ this._isBrowser = true;
160
+ return this._connect().then(resolve).catch(reject);
161
+ }
162
+ reject(error);
163
+ }
164
+ };
165
+ setupConnection().catch(reject);
166
+ });
167
+ }
168
+ get isConnected() {
169
+ if (!this._socket)
170
+ return false;
171
+ if (this._isBrowser) {
172
+ return this._socket.readyState === 1; // WebSocket.OPEN = 1
173
+ }
174
+ else {
175
+ return this._socket.readyState === 1; // WebSocket.OPEN = 1
176
+ }
177
+ }
178
+ async close() {
179
+ this._socket?.close();
180
+ this._socket = undefined;
181
+ this.onclose?.();
182
+ return Promise.resolve();
183
+ }
184
+ async send(message) {
185
+ let attempts = 0;
186
+ const maxAttempts = Math.max(1, this._retry_max + 1); // Ensure at least 1 attempt
187
+ while (attempts < maxAttempts) {
188
+ try {
189
+ if (!this._socket || !this.isConnected) {
190
+ if (!this._socket) {
191
+ // Only try to start if socket doesn't exist
192
+ await this.start();
193
+ }
194
+ else {
195
+ throw new Error("WebSocket is not in OPEN state");
196
+ }
197
+ }
198
+ await new Promise((resolve, reject) => {
199
+ try {
200
+ const messageStr = JSON.stringify(message);
201
+ if (this._isBrowser) {
202
+ // Browser WebSocket
203
+ this._socket?.send(messageStr);
204
+ resolve();
205
+ }
206
+ else {
207
+ // Node.js WebSocket
208
+ this._socket?.send(messageStr, (error) => {
209
+ if (error) {
210
+ reject(error);
211
+ }
212
+ else {
213
+ resolve();
214
+ }
215
+ });
216
+ }
217
+ }
218
+ catch (error) {
219
+ reject(error);
220
+ }
221
+ });
222
+ return;
223
+ }
224
+ catch (error) {
225
+ attempts++;
226
+ if (attempts >= maxAttempts) {
227
+ throw error;
228
+ }
229
+ logger_js_1.logger.warn(`WebSocket send attempt ${attempts} failed, retrying in ${this._retry_delay}ms...`);
230
+ await delay(this._retry_delay);
231
+ }
232
+ }
233
+ }
234
+ }
235
+ exports.BlaxelMcpClientTransport = BlaxelMcpClientTransport;
@@ -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("./client.js"), exports);
18
+ __exportStar(require("./server.js"), exports);