agent-relay 2.1.4 → 2.1.6

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 (132) hide show
  1. package/README.md +85 -236
  2. package/dist/index.cjs +281 -24
  3. package/package.json +19 -19
  4. package/packages/api-types/package.json +1 -1
  5. package/packages/benchmark/package.json +4 -4
  6. package/packages/bridge/dist/spawner.d.ts.map +1 -1
  7. package/packages/bridge/dist/spawner.js +39 -5
  8. package/packages/bridge/dist/spawner.js.map +1 -1
  9. package/packages/bridge/package.json +8 -8
  10. package/packages/bridge/src/spawner.ts +40 -5
  11. package/packages/cli-tester/package.json +1 -1
  12. package/packages/config/package.json +2 -2
  13. package/packages/continuity/package.json +2 -2
  14. package/packages/daemon/dist/server.d.ts +5 -0
  15. package/packages/daemon/dist/server.d.ts.map +1 -1
  16. package/packages/daemon/dist/server.js +31 -0
  17. package/packages/daemon/dist/server.js.map +1 -1
  18. package/packages/daemon/package.json +12 -12
  19. package/packages/daemon/src/server.ts +37 -0
  20. package/packages/hooks/package.json +4 -4
  21. package/packages/mcp/dist/cloud.d.ts +7 -114
  22. package/packages/mcp/dist/cloud.d.ts.map +1 -1
  23. package/packages/mcp/dist/cloud.js +21 -431
  24. package/packages/mcp/dist/cloud.js.map +1 -1
  25. package/packages/mcp/dist/errors.d.ts +4 -22
  26. package/packages/mcp/dist/errors.d.ts.map +1 -1
  27. package/packages/mcp/dist/errors.js +4 -43
  28. package/packages/mcp/dist/errors.js.map +1 -1
  29. package/packages/mcp/dist/hybrid-client.d.ts.map +1 -1
  30. package/packages/mcp/dist/hybrid-client.js +7 -1
  31. package/packages/mcp/dist/hybrid-client.js.map +1 -1
  32. package/packages/mcp/package.json +4 -3
  33. package/packages/mcp/src/cloud.ts +29 -511
  34. package/packages/mcp/src/errors.ts +12 -49
  35. package/packages/mcp/src/hybrid-client.ts +8 -1
  36. package/packages/mcp/tests/discover.test.ts +72 -11
  37. package/packages/memory/package.json +2 -2
  38. package/packages/policy/package.json +2 -2
  39. package/packages/protocol/dist/types.d.ts +17 -1
  40. package/packages/protocol/dist/types.d.ts.map +1 -1
  41. package/packages/protocol/package.json +1 -1
  42. package/packages/protocol/src/types.ts +23 -0
  43. package/packages/resiliency/package.json +1 -1
  44. package/packages/sdk/dist/browser-client.d.ts +212 -0
  45. package/packages/sdk/dist/browser-client.d.ts.map +1 -0
  46. package/packages/sdk/dist/browser-client.js +750 -0
  47. package/packages/sdk/dist/browser-client.js.map +1 -0
  48. package/packages/sdk/dist/browser-framing.d.ts +46 -0
  49. package/packages/sdk/dist/browser-framing.d.ts.map +1 -0
  50. package/packages/sdk/dist/browser-framing.js +122 -0
  51. package/packages/sdk/dist/browser-framing.js.map +1 -0
  52. package/packages/sdk/dist/client.d.ts +129 -2
  53. package/packages/sdk/dist/client.d.ts.map +1 -1
  54. package/packages/sdk/dist/client.js +312 -2
  55. package/packages/sdk/dist/client.js.map +1 -1
  56. package/packages/sdk/dist/discovery.d.ts +10 -0
  57. package/packages/sdk/dist/discovery.d.ts.map +1 -0
  58. package/packages/sdk/dist/discovery.js +22 -0
  59. package/packages/sdk/dist/discovery.js.map +1 -0
  60. package/packages/sdk/dist/errors.d.ts +9 -0
  61. package/packages/sdk/dist/errors.d.ts.map +1 -0
  62. package/packages/sdk/dist/errors.js +9 -0
  63. package/packages/sdk/dist/errors.js.map +1 -0
  64. package/packages/sdk/dist/index.d.ts +18 -2
  65. package/packages/sdk/dist/index.d.ts.map +1 -1
  66. package/packages/sdk/dist/index.js +27 -1
  67. package/packages/sdk/dist/index.js.map +1 -1
  68. package/packages/sdk/dist/transports/index.d.ts +92 -0
  69. package/packages/sdk/dist/transports/index.d.ts.map +1 -0
  70. package/packages/sdk/dist/transports/index.js +129 -0
  71. package/packages/sdk/dist/transports/index.js.map +1 -0
  72. package/packages/sdk/dist/transports/socket-transport.d.ts +30 -0
  73. package/packages/sdk/dist/transports/socket-transport.d.ts.map +1 -0
  74. package/packages/sdk/dist/transports/socket-transport.js +94 -0
  75. package/packages/sdk/dist/transports/socket-transport.js.map +1 -0
  76. package/packages/sdk/dist/transports/types.d.ts +69 -0
  77. package/packages/sdk/dist/transports/types.d.ts.map +1 -0
  78. package/packages/sdk/dist/transports/types.js +10 -0
  79. package/packages/sdk/dist/transports/types.js.map +1 -0
  80. package/packages/sdk/dist/transports/websocket-transport.d.ts +55 -0
  81. package/packages/sdk/dist/transports/websocket-transport.d.ts.map +1 -0
  82. package/packages/sdk/dist/transports/websocket-transport.js +180 -0
  83. package/packages/sdk/dist/transports/websocket-transport.js.map +1 -0
  84. package/packages/sdk/package.json +28 -4
  85. package/packages/sdk/src/browser-client.ts +985 -0
  86. package/packages/sdk/src/browser-framing.test.ts +115 -0
  87. package/packages/sdk/src/browser-framing.ts +150 -0
  88. package/packages/sdk/src/client.test.ts +425 -0
  89. package/packages/sdk/src/client.ts +397 -3
  90. package/packages/sdk/src/discovery.ts +38 -0
  91. package/packages/sdk/src/errors.ts +17 -0
  92. package/packages/sdk/src/index.ts +82 -1
  93. package/packages/sdk/src/transports/index.ts +197 -0
  94. package/packages/sdk/src/transports/socket-transport.ts +115 -0
  95. package/packages/sdk/src/transports/types.ts +77 -0
  96. package/packages/sdk/src/transports/websocket-transport.ts +245 -0
  97. package/packages/sdk/tsconfig.json +1 -1
  98. package/packages/spawner/package.json +1 -1
  99. package/packages/state/package.json +1 -1
  100. package/packages/storage/package.json +2 -2
  101. package/packages/storage/src/jsonl-adapter.test.ts +8 -3
  102. package/packages/telemetry/package.json +1 -1
  103. package/packages/trajectory/package.json +2 -2
  104. package/packages/user-directory/package.json +2 -2
  105. package/packages/utils/dist/cjs/discovery.js +328 -0
  106. package/packages/utils/dist/cjs/errors.js +81 -0
  107. package/packages/utils/dist/discovery.d.ts +123 -0
  108. package/packages/utils/dist/discovery.d.ts.map +1 -0
  109. package/packages/utils/dist/discovery.js +439 -0
  110. package/packages/utils/dist/discovery.js.map +1 -0
  111. package/packages/utils/dist/errors.d.ts +29 -0
  112. package/packages/utils/dist/errors.d.ts.map +1 -0
  113. package/packages/utils/dist/errors.js +50 -0
  114. package/packages/utils/dist/errors.js.map +1 -0
  115. package/packages/utils/package.json +15 -2
  116. package/packages/utils/src/consolidation.test.ts +125 -0
  117. package/packages/utils/src/discovery.test.ts +196 -0
  118. package/packages/utils/src/discovery.ts +524 -0
  119. package/packages/utils/src/errors.test.ts +83 -0
  120. package/packages/utils/src/errors.ts +56 -0
  121. package/packages/wrapper/dist/opencode-wrapper.d.ts +6 -2
  122. package/packages/wrapper/dist/opencode-wrapper.d.ts.map +1 -1
  123. package/packages/wrapper/dist/opencode-wrapper.js +34 -10
  124. package/packages/wrapper/dist/opencode-wrapper.js.map +1 -1
  125. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts +22 -2
  126. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts.map +1 -1
  127. package/packages/wrapper/dist/relay-pty-orchestrator.js +174 -4
  128. package/packages/wrapper/dist/relay-pty-orchestrator.js.map +1 -1
  129. package/packages/wrapper/package.json +6 -6
  130. package/packages/wrapper/src/opencode-wrapper.ts +37 -9
  131. package/packages/wrapper/src/relay-pty-orchestrator.ts +197 -4
  132. package/relay-snippets/agent-relay-snippet.md +17 -5
@@ -0,0 +1,180 @@
1
+ /**
2
+ * WebSocket Transport for browser and Node.js environments.
3
+ * @agent-relay/sdk
4
+ *
5
+ * Uses native WebSocket in browsers and 'ws' package in Node.js.
6
+ * The transport expects the daemon to have a WebSocket endpoint (e.g., /ws).
7
+ */
8
+ /**
9
+ * WebSocket-based transport for browser and Node.js.
10
+ *
11
+ * In browsers, uses native WebSocket.
12
+ * In Node.js, requires 'ws' package (optional dependency).
13
+ */
14
+ export class WebSocketTransport {
15
+ ws;
16
+ config;
17
+ events = {};
18
+ _state = 'disconnected';
19
+ WebSocketImpl;
20
+ constructor(config) {
21
+ this.config = {
22
+ connectTimeout: 5000,
23
+ ...config,
24
+ };
25
+ }
26
+ get state() {
27
+ return this._state;
28
+ }
29
+ setEvents(events) {
30
+ this.events = events;
31
+ }
32
+ /**
33
+ * Get WebSocket implementation (native or 'ws' package).
34
+ */
35
+ async getWebSocketImpl() {
36
+ if (this.WebSocketImpl) {
37
+ return this.WebSocketImpl;
38
+ }
39
+ // Check for browser environment
40
+ if (typeof globalThis !== 'undefined' && 'WebSocket' in globalThis) {
41
+ this.WebSocketImpl = globalThis.WebSocket;
42
+ return this.WebSocketImpl;
43
+ }
44
+ // Node.js environment - try to load 'ws' package
45
+ try {
46
+ // Dynamic import of 'ws' for Node.js
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ const wsModule = await import('ws');
49
+ const impl = wsModule.default || wsModule.WebSocket || wsModule;
50
+ if (!impl) {
51
+ throw new Error('ws module loaded but WebSocket constructor not found');
52
+ }
53
+ this.WebSocketImpl = impl;
54
+ return this.WebSocketImpl;
55
+ }
56
+ catch {
57
+ throw new Error('WebSocket not available. In Node.js, install the "ws" package:\n' +
58
+ ' npm install ws\n\n' +
59
+ 'In browsers, native WebSocket should be available.');
60
+ }
61
+ }
62
+ async connect() {
63
+ if (this._state !== 'disconnected') {
64
+ return;
65
+ }
66
+ const WebSocketImpl = await this.getWebSocketImpl();
67
+ return new Promise((resolve, reject) => {
68
+ this._state = 'connecting';
69
+ const timeout = setTimeout(() => {
70
+ if (this._state === 'connecting') {
71
+ this.ws?.close();
72
+ this._state = 'disconnected';
73
+ reject(new Error('Connection timeout'));
74
+ }
75
+ }, this.config.connectTimeout);
76
+ try {
77
+ this.ws = new WebSocketImpl(this.config.url, this.config.protocols);
78
+ this.ws.binaryType = 'arraybuffer';
79
+ this.ws.onopen = () => {
80
+ clearTimeout(timeout);
81
+ this._state = 'connected';
82
+ this.events.onConnect?.();
83
+ resolve();
84
+ };
85
+ this.ws.onmessage = (event) => {
86
+ // Handle binary data
87
+ if (event.data instanceof ArrayBuffer) {
88
+ this.events.onData?.(new Uint8Array(event.data));
89
+ }
90
+ else if (typeof event.data === 'string') {
91
+ // Convert string to Uint8Array (shouldn't happen with binaryType = 'arraybuffer')
92
+ const encoder = new TextEncoder();
93
+ this.events.onData?.(encoder.encode(event.data));
94
+ }
95
+ else if (event.data && typeof event.data.buffer !== 'undefined') {
96
+ // Handle Node.js Buffer
97
+ const buf = event.data;
98
+ this.events.onData?.(new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength));
99
+ }
100
+ };
101
+ this.ws.onclose = () => {
102
+ clearTimeout(timeout);
103
+ this._state = 'disconnected';
104
+ this.events.onClose?.();
105
+ };
106
+ this.ws.onerror = (event) => {
107
+ clearTimeout(timeout);
108
+ const error = event instanceof Error
109
+ ? event
110
+ : new Error('WebSocket error');
111
+ if (this._state === 'connecting') {
112
+ this._state = 'disconnected';
113
+ reject(error);
114
+ }
115
+ this.events.onError?.(error);
116
+ };
117
+ }
118
+ catch (err) {
119
+ clearTimeout(timeout);
120
+ this._state = 'disconnected';
121
+ reject(err instanceof Error ? err : new Error(String(err)));
122
+ }
123
+ });
124
+ }
125
+ disconnect() {
126
+ if (!this.ws || this._state === 'disconnected') {
127
+ return;
128
+ }
129
+ this._state = 'closing';
130
+ this.ws.close();
131
+ this.ws = undefined;
132
+ this._state = 'disconnected';
133
+ }
134
+ send(data) {
135
+ if (!this.ws || this._state !== 'connected') {
136
+ return false;
137
+ }
138
+ try {
139
+ // WebSocket send accepts ArrayBuffer or Uint8Array
140
+ // Convert Buffer to Uint8Array for browser compatibility
141
+ let bytes;
142
+ if (data instanceof Uint8Array) {
143
+ bytes = data;
144
+ }
145
+ else {
146
+ // Handle Buffer (Node.js)
147
+ const buf = data;
148
+ bytes = new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
149
+ }
150
+ this.ws.send(bytes);
151
+ return true;
152
+ }
153
+ catch {
154
+ return false;
155
+ }
156
+ }
157
+ }
158
+ /**
159
+ * Create a WebSocket transport.
160
+ *
161
+ * @param url - WebSocket URL (e.g., ws://localhost:3888/ws)
162
+ * @param config - Additional configuration options
163
+ */
164
+ export function createWebSocketTransport(url, config) {
165
+ return new WebSocketTransport({ url, ...config });
166
+ }
167
+ /**
168
+ * Convert a socket path to WebSocket URL.
169
+ * Useful when daemon provides both Unix socket and WebSocket endpoints.
170
+ *
171
+ * @param host - Host address (default: localhost)
172
+ * @param port - Port number (default: 3888)
173
+ * @param path - WebSocket path (default: /ws)
174
+ * @param secure - Use wss:// instead of ws:// (default: false)
175
+ */
176
+ export function socketPathToWsUrl(host = 'localhost', port = 3888, path = '/ws', secure = false) {
177
+ const protocol = secure ? 'wss' : 'ws';
178
+ return `${protocol}://${host}:${port}${path}`;
179
+ }
180
+ //# sourceMappingURL=websocket-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-transport.js","sourceRoot":"","sources":["../../src/transports/websocket-transport.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/sdk",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "Lightweight SDK for agent-to-agent communication via Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,6 +24,26 @@
24
24
  "types": "./dist/client.d.ts",
25
25
  "import": "./dist/client.js",
26
26
  "default": "./dist/client.js"
27
+ },
28
+ "./browser": {
29
+ "types": "./dist/browser-client.d.ts",
30
+ "import": "./dist/browser-client.js",
31
+ "default": "./dist/browser-client.js"
32
+ },
33
+ "./transports": {
34
+ "types": "./dist/transports/index.d.ts",
35
+ "import": "./dist/transports/index.js",
36
+ "default": "./dist/transports/index.js"
37
+ },
38
+ "./discovery": {
39
+ "types": "./dist/discovery.d.ts",
40
+ "import": "./dist/discovery.js",
41
+ "default": "./dist/discovery.js"
42
+ },
43
+ "./errors": {
44
+ "types": "./dist/errors.d.ts",
45
+ "import": "./dist/errors.js",
46
+ "default": "./dist/errors.js"
27
47
  }
28
48
  },
29
49
  "files": [
@@ -42,7 +62,9 @@
42
62
  "agent",
43
63
  "ai",
44
64
  "communication",
45
- "sdk"
65
+ "sdk",
66
+ "websocket",
67
+ "browser"
46
68
  ],
47
69
  "author": "Khaliq Gant",
48
70
  "license": "Apache-2.0",
@@ -55,7 +77,8 @@
55
77
  "access": "public"
56
78
  },
57
79
  "dependencies": {
58
- "@agent-relay/protocol": "2.1.4"
80
+ "@agent-relay/protocol": "2.1.6",
81
+ "@agent-relay/utils": "2.1.6"
59
82
  },
60
83
  "engines": {
61
84
  "node": ">=18.0.0"
@@ -69,7 +92,8 @@
69
92
  }
70
93
  },
71
94
  "optionalDependencies": {
72
- "@msgpack/msgpack": "^3.0.0"
95
+ "@msgpack/msgpack": "^3.0.0",
96
+ "ws": "^8.0.0"
73
97
  },
74
98
  "devDependencies": {
75
99
  "@agent-relay/daemon": "*",