orbitx 0.1.2 → 0.1.3

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 (46) hide show
  1. package/Readme.md +48 -8
  2. package/dist/core/anthropic-provider.d.ts +1 -6
  3. package/dist/core/anthropic-provider.d.ts.map +1 -1
  4. package/dist/core/anthropic-provider.js +22 -22
  5. package/dist/core/anthropic-provider.js.map +1 -1
  6. package/dist/core/deepseek-provider.d.ts +1 -4
  7. package/dist/core/deepseek-provider.d.ts.map +1 -1
  8. package/dist/core/deepseek-provider.js +15 -15
  9. package/dist/core/deepseek-provider.js.map +1 -1
  10. package/dist/core/mcp-client.d.ts +0 -8
  11. package/dist/core/mcp-client.d.ts.map +1 -1
  12. package/dist/core/mcp-client.js +7 -15
  13. package/dist/core/mcp-client.js.map +1 -1
  14. package/dist/core/mcp-computer.d.ts +3 -5
  15. package/dist/core/mcp-computer.d.ts.map +1 -1
  16. package/dist/core/mcp-computer.js +70 -28
  17. package/dist/core/mcp-computer.js.map +1 -1
  18. package/dist/core/mcp-connection.d.ts +17 -0
  19. package/dist/core/mcp-connection.d.ts.map +1 -1
  20. package/dist/core/mcp-connection.js +24 -2
  21. package/dist/core/mcp-connection.js.map +1 -1
  22. package/dist/core/mcp-ipc-connection.d.ts +13 -14
  23. package/dist/core/mcp-ipc-connection.d.ts.map +1 -1
  24. package/dist/core/mcp-ipc-connection.js +75 -64
  25. package/dist/core/mcp-ipc-connection.js.map +1 -1
  26. package/dist/core/mcp-server.js +4 -4
  27. package/dist/core/mcp-server.js.map +1 -1
  28. package/dist/core/mcp-ws-connection.d.ts +45 -0
  29. package/dist/core/mcp-ws-connection.d.ts.map +1 -0
  30. package/dist/core/mcp-ws-connection.js +165 -0
  31. package/dist/core/mcp-ws-connection.js.map +1 -0
  32. package/dist/core/ollama-provider.d.ts +1 -4
  33. package/dist/core/ollama-provider.d.ts.map +1 -1
  34. package/dist/core/ollama-provider.js +16 -16
  35. package/dist/core/ollama-provider.js.map +1 -1
  36. package/dist/core/openai-provider.d.ts +1 -5
  37. package/dist/core/openai-provider.d.ts.map +1 -1
  38. package/dist/core/openai-provider.js +18 -18
  39. package/dist/core/openai-provider.js.map +1 -1
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/sandbox.js +19 -3
  45. package/dist/sandbox.js.map +1 -1
  46. package/package.json +4 -2
package/Readme.md CHANGED
@@ -13,7 +13,7 @@ The fastest way to get an agent running is `SimpleAgent` — give it a provider,
13
13
  ```ts
14
14
  import { OllamaProvider, SimpleAgent, GetCurrentTimeTool } from "orbitx";
15
15
 
16
- const ollamaProvider = new OllamaProvider("gemma3:latest");
16
+ const ollamaProvider = new OllamaProvider("gemma4:e4b");
17
17
 
18
18
  const agent = new SimpleAgent({
19
19
  aiProvider: ollamaProvider,
@@ -79,7 +79,7 @@ OrbitX ships with pluggable AI providers so you can swap models without changing
79
79
  ```ts
80
80
  import { OllamaProvider } from "orbitx";
81
81
 
82
- const ollamaProvider = new OllamaProvider("gemma3:latest");
82
+ const ollamaProvider = new OllamaProvider("gemma4:e4b");
83
83
  ```
84
84
 
85
85
  ### DeepSeek
@@ -130,6 +130,13 @@ Tools are grouped by domain. Import each group's array (e.g. `FsTools()`) to get
130
130
 
131
131
  ### Filesystem (`FsTools`)
132
132
 
133
+ ⚠️ EXTREMELY IMPORTANT WARNING ABOUT `FsWriteFileTool` / `FsDeleteTool` ⚠️
134
+
135
+ 🔴 CRITICAL: FsWriteFileTool and FsDeleteTool can permanently overwrite, delete, or corrupt existing files – no undo available.
136
+
137
+ We strongly prefer running bash commands through MCPComputer, which provides a sandboxed, isolated environment – protecting your host system from accidental damage.
138
+
139
+
133
140
  | Tool | Purpose |
134
141
  |---|---|
135
142
  | `FsReadFileTool` | Read a text file, paging through large files by line. |
@@ -143,6 +150,12 @@ Tools are grouped by domain. Import each group's array (e.g. `FsTools()`) to get
143
150
 
144
151
  ### Bash / processes (`BashTools`)
145
152
 
153
+ ⚠️ EXTREMELY IMPORTANT WARNING ABOUT `BashRunTool` ⚠️
154
+
155
+ 🔴 CRITICAL: Shell commands can permanently delete files, corrupt data, modify system settings, or execute harmful operations – no undo available.
156
+
157
+ We strongly prefer running bash commands through MCPComputer, which provides a sandboxed, isolated environment – protecting your host system from accidental damage.
158
+
146
159
  | Tool | Purpose |
147
160
  |---|---|
148
161
  | `BashRunTool` | Launch a shell command as a background process; returns immediately if it's still running after `waitMs` (e.g. a dev server). |
@@ -234,7 +247,7 @@ import {
234
247
  GetCurrentTimeTool,
235
248
  } from "orbitx";
236
249
 
237
- const ollamaProvider = new OllamaProvider("gemma3:latest");
250
+ const ollamaProvider = new OllamaProvider("gemma4:e4b");
238
251
 
239
252
  const connection = new MCPConnection();
240
253
 
@@ -276,16 +289,24 @@ import { MCPIPCConnection } from "orbitx";
276
289
  const path =
277
290
  os.platform() === "win32" ? `\\\\.\\pipe\\mcp_test` : `/tmp/mcp_test.sock`;
278
291
 
279
- const ipcConnection = new MCPIPCConnection(path);
292
+ const ipcConnection = new MCPIPCConnection({ mode: "server", socketPath: path });
280
293
  ```
281
294
 
282
- ## Creating a Custom Tool
295
+ ### WS Connections
283
296
 
284
- Define your own tools with `MCPTool` to extend an agent's capabilities and integrate with your own ecosystem.
297
+ Run your MCP server as a separate process and connect to it over an web-socket communication (WS) channel:
285
298
 
286
- ⚠️ EXTREMELY IMPORTANT WARNING ABOUT `FsWriteFileTool` / `FsDeleteTool` ⚠️
299
+ ```ts
300
+ import os from "os";
301
+ import { MCPWSConnection } from "orbitx";
287
302
 
288
- 🔴 CRITICAL: USE FILE-WRITING/DELETING TOOLS WITH EXTREME CAUTION – THEY CAN PERMANENTLY OVERWRITE, DELETE, OR CORRUPT EXISTING FILES ON YOUR SYSTEM WITHOUT UNDO CAPABILITY.
303
+ const wsConnection = new MCPWSConnection({ mode: "server", host: "0.0.0.0", port: 9257, token: "1234" });
304
+ ```
305
+
306
+
307
+ ## Creating a Custom Tool
308
+
309
+ Define your own tools with `MCPTool` to extend an agent's capabilities and integrate with your own ecosystem.
289
310
 
290
311
  ```ts
291
312
  import { MCPTool } from "orbitx";
@@ -366,4 +387,23 @@ const agent = new SimpleAgent({
366
387
  });
367
388
  ```
368
389
 
390
+ ## MCPComputer (Experimental Feature)
391
+
392
+ Spins up a sandboxed Docker container running the MCP server and returns a ready-to-use client connection — no need to manage IPC sockets, ports, or tokens manually.
393
+
394
+ ```typescript
395
+ import MCPComputer from "./core/mcp-computer.js";
396
+
397
+ const computer = new MCPComputer("/path/to/mount", [3000, 8080]);
398
+ await computer.start();
399
+
400
+ const connection = computer.getConnection();
401
+ computer.stop();
402
+ ```
403
+
404
+ - **`mountPath`**: host directory mounted into the container
405
+ - **`ports`**: ports to expose, or `"*"` for host network mode (Linux only, or Windows via WSL2)
406
+ - **`getConnection()`**: returns a ready `MCPConnection` (IPC on Linux/macOS, WebSocket on Windows)
407
+ - **`stop()`**: kills the container
369
408
 
409
+ Requires the `aliafsordeh/orbitx-sandbox:0.1` image (pull it, or build from the `Dockerfile.sandbox` reference on our GitHub page).
@@ -1,12 +1,7 @@
1
1
  import type { Message, ChatResponse, StreamCallback, ToolSchema, ProviderCapabilities } from "./ai-provider.js";
2
2
  import AIProvider from "./ai-provider.js";
3
3
  export declare class AnthropicProvider extends AIProvider {
4
- private client;
5
- private model;
6
- private supportsTools;
7
- private supportsImages;
8
- private contextWindow;
9
- private maxTokens;
4
+ #private;
10
5
  constructor(apiKey: string, model?: string, options?: {
11
6
  supportsTools?: boolean;
12
7
  supportsImages?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAmB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACjI,OAAO,UAAU,MAAM,kBAAkB,CAAC;AA4F1C,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA0B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAU9K,eAAe,IAAI,oBAAoB;IASjC,IAAI,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,YAAY,CAAC;CAmG3B;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAmB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACjI,OAAO,UAAU,MAAM,kBAAkB,CAAC;AA4F1C,qBAAa,iBAAkB,SAAQ,UAAU;;gBAQjC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA0B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAU9K,eAAe,IAAI,oBAAoB;IASjC,IAAI,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,YAAY,CAAC;CAmG3B;AAED,eAAe,iBAAiB,CAAC"}
@@ -86,32 +86,32 @@ function textFromAnthropicContent(content) {
86
86
  .join("");
87
87
  }
88
88
  export class AnthropicProvider extends AIProvider {
89
- client;
90
- model;
91
- supportsTools;
92
- supportsImages;
93
- contextWindow;
94
- maxTokens;
89
+ #client;
90
+ #model;
91
+ #supportsTools;
92
+ #supportsImages;
93
+ #contextWindow;
94
+ #maxTokens;
95
95
  constructor(apiKey, model = "claude-sonnet-5", options = {}) {
96
96
  super();
97
- this.client = new Anthropic({ apiKey });
98
- this.model = model;
99
- this.supportsTools = options.supportsTools ?? true;
100
- this.supportsImages = options.supportsImages ?? true;
101
- this.contextWindow = options.contextWindow ?? MODEL_CONTEXT_WINDOWS[model] ?? DEFAULT_CONTEXT_WINDOW;
102
- this.maxTokens = options.maxTokens ?? 4096;
97
+ this.#client = new Anthropic({ apiKey });
98
+ this.#model = model;
99
+ this.#supportsTools = options.supportsTools ?? true;
100
+ this.#supportsImages = options.supportsImages ?? true;
101
+ this.#contextWindow = options.contextWindow ?? MODEL_CONTEXT_WINDOWS[model] ?? DEFAULT_CONTEXT_WINDOW;
102
+ this.#maxTokens = options.maxTokens ?? 4096;
103
103
  }
104
104
  getCapabilities() {
105
105
  return {
106
- supportsTools: this.supportsTools,
107
- supportsImages: this.supportsImages,
108
- contextWindow: this.contextWindow,
106
+ supportsTools: this.#supportsTools,
107
+ supportsImages: this.#supportsImages,
108
+ contextWindow: this.#contextWindow,
109
109
  safeUsageRatio: 0.5,
110
110
  };
111
111
  }
112
112
  async chat(messages, streamCallback, tools) {
113
113
  const { system, messages: formattedMessages } = toAnthropicMessages(messages);
114
- const formattedTools = tools && tools.length > 0 && this.supportsTools
114
+ const formattedTools = tools && tools.length > 0 && this.#supportsTools
115
115
  ? toAnthropicTools(tools)
116
116
  : undefined;
117
117
  if (streamCallback) {
@@ -119,9 +119,9 @@ export class AnthropicProvider extends AIProvider {
119
119
  // Per-attempt accumulators live inside this closure so a
120
120
  // failed/partial stream from a previous attempt never leaks
121
121
  // into a retry's output — each attempt starts clean.
122
- const stream = await this.client.messages.create({
123
- model: this.model,
124
- max_tokens: this.maxTokens,
122
+ const stream = await this.#client.messages.create({
123
+ model: this.#model,
124
+ max_tokens: this.#maxTokens,
125
125
  ...(system ? { system } : {}),
126
126
  messages: formattedMessages,
127
127
  ...(formattedTools ? { tools: formattedTools } : {}),
@@ -186,9 +186,9 @@ export class AnthropicProvider extends AIProvider {
186
186
  }
187
187
  else {
188
188
  return withRetry(async () => {
189
- const response = await this.client.messages.create({
190
- model: this.model,
191
- max_tokens: this.maxTokens,
189
+ const response = await this.#client.messages.create({
190
+ model: this.#model,
191
+ max_tokens: this.#maxTokens,
192
192
  ...(system ? { system } : {}),
193
193
  messages: formattedMessages,
194
194
  ...(formattedTools ? { tools: formattedTools } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  import type { Message, ChatResponse, StreamCallback, ToolSchema, ProviderCapabilities } from "./ai-provider.js";
2
2
  import AIProvider from "./ai-provider.js";
3
3
  export declare class DeepSeekProvider extends AIProvider {
4
- private client;
5
- private model;
6
- private supportsTools;
7
- private contextWindow;
4
+ #private;
8
5
  constructor(apiKey: string, model?: string, options?: {
9
6
  supportsTools?: boolean;
10
7
  contextWindow?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../src/core/deepseek-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAmB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACjI,OAAO,UAAU,MAAM,kBAAkB,CAAC;AA4D1C,qBAAa,gBAAiB,SAAQ,UAAU;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA4B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAO;IAWlI,eAAe,IAAI,oBAAoB;IASjC,IAAI,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,YAAY,CAAC;CAmF3B;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../src/core/deepseek-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAmB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACjI,OAAO,UAAU,MAAM,kBAAkB,CAAC;AA4D1C,qBAAa,gBAAiB,SAAQ,UAAU;;gBAMhC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA4B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAO;IAWlI,eAAe,IAAI,oBAAoB;IASjC,IAAI,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,YAAY,CAAC;CAmF3B;AAED,eAAe,gBAAgB,CAAC"}
@@ -55,31 +55,31 @@ function fromOpenAIToolCalls(toolCalls) {
55
55
  });
56
56
  }
57
57
  export class DeepSeekProvider extends AIProvider {
58
- client;
59
- model;
60
- supportsTools;
61
- contextWindow;
58
+ #client;
59
+ #model;
60
+ #supportsTools;
61
+ #contextWindow;
62
62
  constructor(apiKey, model = "deepseek-v4-flash", options = {}) {
63
63
  super();
64
- this.client = new OpenAI({
64
+ this.#client = new OpenAI({
65
65
  apiKey: apiKey,
66
66
  baseURL: "https://api.deepseek.com"
67
67
  });
68
- this.model = model;
69
- this.supportsTools = options.supportsTools ?? true;
70
- this.contextWindow = options.contextWindow ?? MODEL_CONTEXT_WINDOWS[model] ?? DEFAULT_CONTEXT_WINDOW;
68
+ this.#model = model;
69
+ this.#supportsTools = options.supportsTools ?? true;
70
+ this.#contextWindow = options.contextWindow ?? MODEL_CONTEXT_WINDOWS[model] ?? DEFAULT_CONTEXT_WINDOW;
71
71
  }
72
72
  getCapabilities() {
73
73
  return {
74
- supportsTools: this.supportsTools,
74
+ supportsTools: this.#supportsTools,
75
75
  supportsImages: false,
76
- contextWindow: this.contextWindow,
76
+ contextWindow: this.#contextWindow,
77
77
  safeUsageRatio: 0.5,
78
78
  };
79
79
  }
80
80
  async chat(messages, streamCallback, tools) {
81
81
  const formattedMessages = toOpenAIMessages(messages);
82
- const formattedTools = tools && tools.length > 0 && this.supportsTools
82
+ const formattedTools = tools && tools.length > 0 && this.#supportsTools
83
83
  ? toOpenAIFunctionTools(tools)
84
84
  : undefined;
85
85
  if (streamCallback) {
@@ -87,8 +87,8 @@ export class DeepSeekProvider extends AIProvider {
87
87
  // Per-attempt accumulators live inside this closure so a
88
88
  // failed/partial stream from a previous attempt never leaks
89
89
  // into a retry's output — each attempt starts clean.
90
- const stream = await this.client.chat.completions.create({
91
- model: this.model,
90
+ const stream = await this.#client.chat.completions.create({
91
+ model: this.#model,
92
92
  messages: formattedMessages,
93
93
  ...(formattedTools ? { tools: formattedTools } : {}),
94
94
  stream: true
@@ -145,8 +145,8 @@ export class DeepSeekProvider extends AIProvider {
145
145
  }
146
146
  else {
147
147
  return withRetry(async () => {
148
- const response = await this.client.chat.completions.create({
149
- model: this.model,
148
+ const response = await this.#client.chat.completions.create({
149
+ model: this.#model,
150
150
  messages: formattedMessages,
151
151
  ...(formattedTools ? { tools: formattedTools } : {}),
152
152
  });
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek-provider.js","sourceRoot":"","sources":["../../src/core/deepseek-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deepseek-provider.js","sourceRoot":"","sources":["../../src/core/deepseek-provider.ts"],"names":[],"mappings":"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"}
@@ -19,14 +19,6 @@ export declare class MCPClient extends MCP {
19
19
  default?: any;
20
20
  }[];
21
21
  }[]>;
22
- /**
23
- * Calls a tool and returns its result normalized into the standard
24
- * MCPToolOutput contract ({type:"text"|"image", output:{...}}) —
25
- * regardless of whether the tool lives in-process or across the
26
- * IPC connection to a sandboxed MCPServer, and regardless of whether
27
- * the tool itself already returns that shape or just a plain object
28
- * (the legacy convention most existing tools use).
29
- */
30
22
  callTool(toolName: string, inputs: Record<string, any>): Promise<import("./mcp.js").MCPToolOutput>;
31
23
  registerTool(tool: MCPTool<any>): void;
32
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,GAAG,EAAuB,MAAM,UAAU,CAAC;AACpD,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAG/C,qBAAa,SAAU,SAAQ,GAAG;;gBAMlB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,aAAa,EAAE,EAAE,OAAO,GAAE,UAA+B,EAAE,GAAG,CAAC,EAAE,MAAM;IAU9H,UAAU,IAAI,UAAU;IAIxB,MAAM,IAAI,MAAM;IAIV,QAAQ;cAGI,MAAM;qBACC,MAAM;gBACX;YACJ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;YAC3D,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,GAAG,CAAC;SACjB,EAAE;;IAwCf;;;;;;;OAOG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAmC5D,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;CAIlC;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,GAAG,EAAuB,MAAM,UAAU,CAAC;AACpD,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAG/C,qBAAa,SAAU,SAAQ,GAAG;;gBAMlB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,aAAa,EAAE,EAAE,OAAO,GAAE,UAA+B,EAAE,GAAG,CAAC,EAAE,MAAM;IAU9H,UAAU,IAAI,UAAU;IAIxB,MAAM,IAAI,MAAM;IAIV,QAAQ;cAGI,MAAM;qBACC,MAAM;gBACX;YACJ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;YAC3D,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,GAAG,CAAC;SACjB,EAAE;;IAwCT,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAmC5D,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;CAIlC;AAED,eAAe,SAAS,CAAC"}
@@ -31,18 +31,18 @@ export class MCPClient extends MCP {
31
31
  const onRead = (data) => {
32
32
  if (data.topic === "getToolsCallback" && data.pid === pid) {
33
33
  resolved = true;
34
- conn.off("read", onRead);
34
+ conn.off("client_read", onRead);
35
35
  resolve(data.tools || []);
36
36
  }
37
37
  };
38
- conn.on("read", onRead);
39
- conn.emit("write", {
38
+ conn.on("client_read", onRead);
39
+ conn.emit("write_to_server", {
40
40
  pid,
41
41
  topic: "getTools"
42
42
  });
43
43
  setTimeout(() => {
44
44
  if (!resolved) {
45
- conn.off("read", onRead);
45
+ conn.off("client_read", onRead);
46
46
  resolve([]);
47
47
  }
48
48
  }, 2000);
@@ -58,14 +58,6 @@ export class MCPClient extends MCP {
58
58
  const clientToolNames = new Set(clientTools.map(ct => ct.name));
59
59
  return [...clientTools, ...connectionsTools.filter(t => !clientToolNames.has(t.name))];
60
60
  }
61
- /**
62
- * Calls a tool and returns its result normalized into the standard
63
- * MCPToolOutput contract ({type:"text"|"image", output:{...}}) —
64
- * regardless of whether the tool lives in-process or across the
65
- * IPC connection to a sandboxed MCPServer, and regardless of whether
66
- * the tool itself already returns that shape or just a plain object
67
- * (the legacy convention most existing tools use).
68
- */
69
61
  async callTool(toolName, inputs) {
70
62
  const clientTool = this.#tools.find(t => t.getOptions().name == toolName);
71
63
  if (clientTool) {
@@ -79,15 +71,15 @@ export class MCPClient extends MCP {
79
71
  const pid = randomUUID();
80
72
  const onRead = (data) => {
81
73
  if (data.topic === "toolCallCallback" && data.pid === pid) {
82
- conn.off("read", onRead);
74
+ conn.off("client_read", onRead);
83
75
  if (!resolvedResult) {
84
76
  resolve(data.output || {});
85
77
  resolvedResult = true;
86
78
  }
87
79
  }
88
80
  };
89
- conn.on("read", onRead);
90
- conn.emit("write", {
81
+ conn.on("client_read", onRead);
82
+ conn.emit("write_to_server", {
91
83
  pid,
92
84
  topic: "toolCall",
93
85
  tool: toolName,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
+ import type MCPConnection from "./mcp-connection.js";
1
2
  export declare class MCPComputer {
2
3
  #private;
3
4
  constructor(mountPath: string, ports: number[] | "*", image?: string);
4
- getIPCSocketPath(): string;
5
+ getConnection(wsHost?: string): MCPConnection;
5
6
  getPresentsHostPath(): string;
6
- isHostNetwork(): boolean;
7
- getPortUrl(port: number, host?: string): string;
8
- buildDockerArgs(): string[];
9
- start(): import("node:child_process").ChildProcess;
7
+ start(): Promise<import("node:child_process").ChildProcess>;
10
8
  stop(): void;
11
9
  getInstructions(): string;
12
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-computer.d.ts","sourceRoot":"","sources":["../../src/core/mcp-computer.ts"],"names":[],"mappings":"AAMA,qBAAa,WAAW;;gBAUR,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,KAAK,GAAE,MAA6B;IAuB1F,gBAAgB,IAAI,MAAM;IAI1B,mBAAmB,IAAI,MAAM;IAI7B,aAAa,IAAI,OAAO;IAIxB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,MAAM;IAsC5D,eAAe,IAAI,MAAM,EAAE;IA6B3B,KAAK;IAmBL,IAAI;IAUJ,eAAe,IAAI,MAAM;CAmB5B;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"mcp-computer.d.ts","sourceRoot":"","sources":["../../src/core/mcp-computer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAMrD,qBAAa,WAAW;;gBAcR,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,KAAK,GAAE,MAA6B;IAe1F,aAAa,CAAC,MAAM,GAAE,MAAoB,GAAG,aAAa;IAmB1D,mBAAmB,IAAI,MAAM;IAkGvB,KAAK;IAuBX,IAAI;IAUJ,eAAe,IAAI,MAAM;CAmB5B;AAED,eAAe,WAAW,CAAC"}
@@ -2,55 +2,61 @@ import os from "os";
2
2
  import { randomUUID } from "crypto";
3
3
  import { spawn, execFileSync } from "child_process";
4
4
  import fs from "fs";
5
+ import net from "net";
5
6
  import path from "path";
7
+ import MCPIPCConnection from "./mcp-ipc-connection.js";
8
+ import MCPWSConnection from "./mcp-ws-connection.js";
6
9
  export class MCPComputer {
7
10
  #mountPath;
8
11
  #ports;
9
12
  #hostNetwork;
10
13
  #image;
11
- #ipcPath;
12
14
  #containerName;
13
15
  #child = null;
14
16
  #exitHandler = null;
17
+ #connectionMode;
18
+ #ipcPath;
19
+ #wsPort;
20
+ #wsToken;
15
21
  constructor(mountPath, ports, image = "orbitx-sandbox:0.1") {
16
- if (os.platform() === "win32") {
17
- throw new Error("This feature is not currently supported natively on Windows. " +
18
- "Please run via WSL, or use a Unix-like filesystem (this feature needs one).");
19
- }
22
+ this.#connectionMode = os.platform() === "win32" ? "ws" : "ipc";
20
23
  this.#hostNetwork = ports === "*";
21
- if (this.#hostNetwork && os.platform() !== "linux") {
22
- throw new Error("Host network mode (ports: \"*\") requires Docker's --network host, " +
23
- "which is only supported on Linux. Pass an explicit array of ports instead.");
24
- }
25
24
  this.#mountPath = path.resolve(mountPath);
26
25
  this.#ports = ports;
27
26
  this.#image = image;
28
- this.#ipcPath = `/tmp/mcp-server-${randomUUID()}`;
29
27
  this.#containerName = `mcp-sandbox-${randomUUID()}`;
28
+ this.#ipcPath = `/tmp/mcp-server-${randomUUID()}`;
29
+ this.#wsPort = 0;
30
+ this.#wsToken = randomUUID();
30
31
  }
31
- getIPCSocketPath() {
32
- return `${this.#ipcPath}/socket.sock`;
32
+ getConnection(wsHost = "localhost") {
33
+ if (this.#connectionMode === "ipc") {
34
+ return new MCPIPCConnection({
35
+ socketPath: `${this.#ipcPath}/socket.sock`,
36
+ mode: "client",
37
+ });
38
+ }
39
+ if (!this.#wsPort) {
40
+ throw new Error("getConnection() is only available in 'ws' mode after start() has resolved a port.");
41
+ }
42
+ return new MCPWSConnection({
43
+ mode: "client",
44
+ url: `ws://${wsHost}:${this.#wsPort}`,
45
+ token: this.#wsToken,
46
+ });
33
47
  }
34
48
  getPresentsHostPath() {
35
49
  return path.join(this.#mountPath, "presents");
36
50
  }
37
- isHostNetwork() {
38
- return this.#hostNetwork;
39
- }
40
- getPortUrl(port, host = "localhost") {
41
- if (!this.#hostNetwork && !this.#ports.includes(port)) {
42
- throw new Error(`Port ${port} was not exposed for this sandbox. ` +
43
- `Available ports: ${this.#ports.join(", ") || "none"}. ` +
44
- `Pass ports: "*" at construction time to allow any port.`);
45
- }
46
- return `http://${host}:${port}`;
47
- }
48
51
  #prepareHostPaths(containerUid = 1000, containerGid = 1000) {
49
52
  const workspaceHost = path.join(this.#mountPath, "workspace");
50
53
  const storageHost = path.join(this.#mountPath, "mcp-server-storage");
51
54
  const presentsHost = path.join(this.#mountPath, "presents");
52
55
  const userInputsHost = path.join(this.#mountPath, "user-inputs");
53
- const dirs = [workspaceHost, storageHost, presentsHost, userInputsHost, this.#ipcPath];
56
+ const dirs = [workspaceHost, storageHost, presentsHost, userInputsHost];
57
+ if (this.#connectionMode === "ipc") {
58
+ dirs.push(this.#ipcPath);
59
+ }
54
60
  for (const dir of dirs) {
55
61
  fs.mkdirSync(dir, { recursive: true });
56
62
  }
@@ -73,7 +79,25 @@ export class MCPComputer {
73
79
  }
74
80
  }
75
81
  }
76
- buildDockerArgs() {
82
+ /** Finds a free TCP port on the host by briefly binding to port 0. */
83
+ #pickFreePort() {
84
+ return new Promise((resolve, reject) => {
85
+ const srv = net.createServer();
86
+ srv.unref();
87
+ srv.on("error", reject);
88
+ srv.listen(0, () => {
89
+ const address = srv.address();
90
+ if (address && typeof address === "object") {
91
+ const port = address.port;
92
+ srv.close(() => resolve(port));
93
+ }
94
+ else {
95
+ srv.close(() => reject(new Error("Could not determine a free port.")));
96
+ }
97
+ });
98
+ });
99
+ }
100
+ #buildDockerArgs() {
77
101
  const workspaceHost = path.join(this.#mountPath, "workspace");
78
102
  const storageHost = path.join(this.#mountPath, "mcp-server-storage");
79
103
  const presentsHost = path.join(this.#mountPath, "presents");
@@ -85,9 +109,19 @@ export class MCPComputer {
85
109
  "-v", `${storageHost}:/home/ubuntu/mcp-data`,
86
110
  "-v", `${presentsHost}:/home/ubuntu/presents`,
87
111
  "-v", `${userInputsHost}:/home/ubuntu/user-inputs`,
88
- "-v", `${this.#ipcPath}:/tmp/mcp-server`,
89
112
  "-e", "PRESENT_PATH=/home/ubuntu/presents",
90
113
  ];
114
+ if (this.#connectionMode === "ipc") {
115
+ args.push("-v", `${this.#ipcPath}:/tmp/mcp-server`);
116
+ args.push("-e", "CONNECTION_MODE=IPC");
117
+ args.push("-e", "CONNECTION_PATH=/tmp/mcp-server/socket.sock");
118
+ }
119
+ else {
120
+ args.push("-e", "CONNECTION_MODE=WS");
121
+ args.push("-e", "CONNECTION_HOST=0.0.0.0");
122
+ args.push("-e", `CONNECTION_PORT=${this.#wsPort}`);
123
+ args.push("-e", `CONNECTION_TOKEN=${this.#wsToken}`);
124
+ }
91
125
  if (this.#hostNetwork) {
92
126
  args.push("--network", "host");
93
127
  }
@@ -95,13 +129,21 @@ export class MCPComputer {
95
129
  for (const port of this.#ports) {
96
130
  args.push("-p", `${port}:${port}`);
97
131
  }
132
+ // The WS control channel needs its own published port too, since
133
+ // it isn't part of the user-facing #ports list.
134
+ if (this.#connectionMode === "ws") {
135
+ args.push("-p", `${this.#wsPort}:${this.#wsPort}`);
136
+ }
98
137
  }
99
138
  args.push(this.#image);
100
139
  return args;
101
140
  }
102
- start() {
141
+ async start() {
142
+ if (this.#connectionMode === "ws") {
143
+ this.#wsPort = await this.#pickFreePort();
144
+ }
103
145
  this.#prepareHostPaths();
104
- const args = this.buildDockerArgs();
146
+ const args = this.#buildDockerArgs();
105
147
  const child = spawn("docker", args, { stdio: "ignore" });
106
148
  this.#child = child;
107
149
  this.#exitHandler = () => {