@beeos-ai/bma-executor-sdk 0.0.0-stage → 0.4.1
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/README.md +170 -2
- package/dist/agent.d.ts +126 -0
- package/dist/agent.js +478 -0
- package/dist/agent.js.map +1 -0
- package/dist/client.d.ts +170 -0
- package/dist/client.js +610 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.js +85 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/executor.d.ts +1218 -0
- package/dist/generated/executor.js +455 -0
- package/dist/generated/executor.js.map +1 -0
- package/dist/harness.d.ts +261 -0
- package/dist/harness.js +809 -0
- package/dist/harness.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/local.d.ts +49 -0
- package/dist/local.js +169 -0
- package/dist/local.js.map +1 -0
- package/dist/rpc.d.ts +38 -0
- package/dist/rpc.js +123 -0
- package/dist/rpc.js.map +1 -0
- package/dist/transport.d.ts +53 -0
- package/dist/transport.js +177 -0
- package/dist/transport.js.map +1 -0
- package/package.json +35 -4
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
// Transports carry protocol frames unchanged: one JSON-RPC message (control
|
|
2
|
+
// channel) or one raw MCP JSON-RPC message (MCP channel) per frame. Two
|
|
3
|
+
// transports exist: WebSocket, over TCP (ws://, wss://) or a local socket
|
|
4
|
+
// (unix://, npipe://, see local.ts), and in-process pairs.
|
|
5
|
+
import { connect } from 'node:net';
|
|
6
|
+
import WebSocket from 'ws';
|
|
7
|
+
import { NotConnectedError } from './errors.js';
|
|
8
|
+
import { localSocketPath } from './local.js';
|
|
9
|
+
/** Largest frame accepted on any transport (1 MiB), as in the Go SDK. */
|
|
10
|
+
export const MAX_FRAME_BYTES = 1 << 20;
|
|
11
|
+
class BaseConn {
|
|
12
|
+
protocol;
|
|
13
|
+
closed = false;
|
|
14
|
+
handlers;
|
|
15
|
+
queue = [];
|
|
16
|
+
closeInfo;
|
|
17
|
+
constructor(protocol) {
|
|
18
|
+
this.protocol = protocol;
|
|
19
|
+
}
|
|
20
|
+
setHandlers(handlers) {
|
|
21
|
+
this.handlers = handlers;
|
|
22
|
+
const queued = this.queue;
|
|
23
|
+
this.queue = [];
|
|
24
|
+
for (const frame of queued)
|
|
25
|
+
handlers.message(frame);
|
|
26
|
+
if (this.closeInfo)
|
|
27
|
+
handlers.close(...this.closeInfo);
|
|
28
|
+
}
|
|
29
|
+
deliver(frame) {
|
|
30
|
+
if (this.closeInfo)
|
|
31
|
+
return;
|
|
32
|
+
if (this.handlers)
|
|
33
|
+
this.handlers.message(frame);
|
|
34
|
+
else
|
|
35
|
+
this.queue.push(frame);
|
|
36
|
+
}
|
|
37
|
+
closedWith(code, reason) {
|
|
38
|
+
if (this.closeInfo)
|
|
39
|
+
return;
|
|
40
|
+
this.closed = true;
|
|
41
|
+
this.closeInfo = [code, reason];
|
|
42
|
+
this.handlers?.close(code, reason);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
class InProcessConn extends BaseConn {
|
|
46
|
+
peer;
|
|
47
|
+
send(frame) {
|
|
48
|
+
if (this.closed)
|
|
49
|
+
throw new NotConnectedError();
|
|
50
|
+
const peer = this.peer;
|
|
51
|
+
queueMicrotask(() => peer.deliver(frame));
|
|
52
|
+
}
|
|
53
|
+
close(code = 1000, reason = '') {
|
|
54
|
+
if (this.closed)
|
|
55
|
+
return;
|
|
56
|
+
this.closedWith(code, reason);
|
|
57
|
+
const peer = this.peer;
|
|
58
|
+
queueMicrotask(() => peer.closedWith(code, reason));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** Two connected in-process ends, for a brain and a hand in one process. */
|
|
62
|
+
export function inProcessPair(protocol) {
|
|
63
|
+
const a = new InProcessConn(protocol);
|
|
64
|
+
const b = new InProcessConn(protocol);
|
|
65
|
+
a.peer = b;
|
|
66
|
+
b.peer = a;
|
|
67
|
+
return [a, b];
|
|
68
|
+
}
|
|
69
|
+
class WebSocketConn extends BaseConn {
|
|
70
|
+
ws;
|
|
71
|
+
constructor(ws) {
|
|
72
|
+
super(ws.protocol);
|
|
73
|
+
this.ws = ws;
|
|
74
|
+
ws.on('message', (data) => this.deliver(data.toString()));
|
|
75
|
+
ws.on('close', (code, reason) => this.closedWith(code, reason.toString()));
|
|
76
|
+
// An error is always followed by close; the listener keeps it from throwing.
|
|
77
|
+
ws.on('error', () => { });
|
|
78
|
+
}
|
|
79
|
+
send(frame) {
|
|
80
|
+
if (this.ws.readyState !== WebSocket.OPEN)
|
|
81
|
+
throw new NotConnectedError();
|
|
82
|
+
this.ws.send(frame);
|
|
83
|
+
}
|
|
84
|
+
close(code = 1000, reason = '') {
|
|
85
|
+
if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING)
|
|
86
|
+
this.ws.close(code, reason);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Wraps an open `ws` WebSocket. */
|
|
90
|
+
export function webSocketConn(ws) {
|
|
91
|
+
return new WebSocketConn(ws);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Dials a WebSocket and resolves once it is open. unix:// and npipe:// URLs
|
|
95
|
+
* run the same handshake over the local socket; their query is the request's.
|
|
96
|
+
*/
|
|
97
|
+
export function dialWebSocket(url, options) {
|
|
98
|
+
return new Promise((resolve, reject) => {
|
|
99
|
+
const socketPath = localSocketPath(url);
|
|
100
|
+
const target = socketPath === undefined ? url : `ws://localhost/v1/executors/channel${new URL(url).search}`;
|
|
101
|
+
const ws = new WebSocket(target, options.protocols, {
|
|
102
|
+
headers: options.token ? { Authorization: `Bearer ${options.token}` } : {},
|
|
103
|
+
maxPayload: options.maxPayload ?? MAX_FRAME_BYTES,
|
|
104
|
+
...(socketPath === undefined ? {} : { createConnection: () => connect(socketPath) }),
|
|
105
|
+
});
|
|
106
|
+
const onAbort = () => ws.terminate();
|
|
107
|
+
options.signal?.addEventListener('abort', onAbort, { once: true });
|
|
108
|
+
ws.once('open', () => {
|
|
109
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
110
|
+
resolve(webSocketConn(ws));
|
|
111
|
+
});
|
|
112
|
+
ws.once('unexpected-response', (_request, response) => {
|
|
113
|
+
reject(new Error(`websocket dial ${url}: HTTP ${response.statusCode}`));
|
|
114
|
+
ws.terminate();
|
|
115
|
+
});
|
|
116
|
+
ws.once('error', (error) => reject(new Error(`websocket dial ${url}: ${error.message}`)));
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* FrameChannel reads frames from a Conn one at a time: the raw MCP channel
|
|
121
|
+
* on both ends. read() rejects with NotConnectedError once the channel closed
|
|
122
|
+
* and every queued frame was read.
|
|
123
|
+
*/
|
|
124
|
+
export class FrameChannel {
|
|
125
|
+
conn;
|
|
126
|
+
frames = [];
|
|
127
|
+
waiters = [];
|
|
128
|
+
closeError;
|
|
129
|
+
closedPromise;
|
|
130
|
+
markClosed;
|
|
131
|
+
constructor(conn) {
|
|
132
|
+
this.conn = conn;
|
|
133
|
+
this.closedPromise = new Promise((resolve) => (this.markClosed = resolve));
|
|
134
|
+
conn.setHandlers({
|
|
135
|
+
message: (frame) => {
|
|
136
|
+
const waiter = this.waiters.shift();
|
|
137
|
+
if (waiter)
|
|
138
|
+
waiter.resolve(frame);
|
|
139
|
+
else
|
|
140
|
+
this.frames.push(frame);
|
|
141
|
+
},
|
|
142
|
+
close: (code, reason) => {
|
|
143
|
+
this.closeError = new NotConnectedError(`channel closed (${code}${reason ? `: ${reason}` : ''})`);
|
|
144
|
+
for (const waiter of this.waiters)
|
|
145
|
+
waiter.reject(this.closeError);
|
|
146
|
+
this.waiters = [];
|
|
147
|
+
this.markClosed();
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/** Resolves when the channel has closed. */
|
|
152
|
+
get done() {
|
|
153
|
+
return this.closedPromise;
|
|
154
|
+
}
|
|
155
|
+
read(signal) {
|
|
156
|
+
const frame = this.frames.shift();
|
|
157
|
+
if (frame !== undefined)
|
|
158
|
+
return Promise.resolve(frame);
|
|
159
|
+
if (this.closeError)
|
|
160
|
+
return Promise.reject(this.closeError);
|
|
161
|
+
return new Promise((resolve, reject) => {
|
|
162
|
+
const waiter = { resolve, reject };
|
|
163
|
+
this.waiters.push(waiter);
|
|
164
|
+
signal?.addEventListener('abort', () => {
|
|
165
|
+
this.waiters = this.waiters.filter((candidate) => candidate !== waiter);
|
|
166
|
+
reject(signal.reason);
|
|
167
|
+
}, { once: true });
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
write(frame) {
|
|
171
|
+
this.conn.send(frame);
|
|
172
|
+
}
|
|
173
|
+
close() {
|
|
174
|
+
this.conn.close(1000, 'mcp channel closed');
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beeos-ai/bma-executor-sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.4.1",
|
|
4
|
+
"description": "BMA executor protocol (bma.executor.v1.1): executor, harness and agent ends with WebSocket, local socket and in-process transports.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/beeos-ai/bma-sdks.git",
|
|
9
|
+
"directory": "executor/typescript"
|
|
10
|
+
},
|
|
11
|
+
"type": "module",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"!dist/**/*.test.*"
|
|
21
|
+
],
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=20"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc -p tsconfig.json",
|
|
27
|
+
"test": "tsc -p tsconfig.test.json && node --test build-test/test/*.test.js"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"ws": "8.22.1"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/node": "^22.0.0",
|
|
34
|
+
"@types/ws": "8.18.2",
|
|
35
|
+
"typescript": "5.9.3"
|
|
36
|
+
}
|
|
37
|
+
}
|