@robota-sdk/agent-transport-ws 3.0.0-beta.46 → 3.0.0-beta.47
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 +20 -0
- package/dist/node/index.cjs +28 -2
- package/dist/node/index.d.cts +17 -2
- package/dist/node/index.d.ts +17 -2
- package/dist/node/index.js +26 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -63,6 +63,26 @@ All messages are JSON-encoded objects with a `type` field.
|
|
|
63
63
|
| `pending` | `{ pending: string\|null }` | get-pending response |
|
|
64
64
|
| `protocol_error` | `{ message: string }` | invalid client message |
|
|
65
65
|
|
|
66
|
+
## ITransportAdapter
|
|
67
|
+
|
|
68
|
+
The WebSocket transport implements the `ITransportAdapter` interface from `@robota-sdk/agent-sdk`:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
import { createWsTransport } from '@robota-sdk/agent-transport-ws';
|
|
72
|
+
import type { ITransportAdapter } from '@robota-sdk/agent-sdk';
|
|
73
|
+
|
|
74
|
+
const transport: ITransportAdapter = createWsTransport({
|
|
75
|
+
send: (msg) => ws.send(JSON.stringify(msg)),
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
transport.attach(interactiveSession);
|
|
79
|
+
await transport.start();
|
|
80
|
+
|
|
81
|
+
// Wire incoming messages
|
|
82
|
+
ws.on('message', (data) => transport.onMessage(String(data)));
|
|
83
|
+
ws.on('close', () => transport.stop());
|
|
84
|
+
```
|
|
85
|
+
|
|
66
86
|
## Dependencies
|
|
67
87
|
|
|
68
88
|
- `@robota-sdk/agent-sdk` — `InteractiveSession`
|
package/dist/node/index.cjs
CHANGED
|
@@ -20,7 +20,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
|
-
createWsHandler: () => createWsHandler
|
|
23
|
+
createWsHandler: () => createWsHandler,
|
|
24
|
+
createWsTransport: () => createWsTransport
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(index_exports);
|
|
26
27
|
|
|
@@ -108,7 +109,32 @@ function createWsHandler(options) {
|
|
|
108
109
|
};
|
|
109
110
|
return { onMessage, cleanup };
|
|
110
111
|
}
|
|
112
|
+
|
|
113
|
+
// src/ws-transport.ts
|
|
114
|
+
function createWsTransport(options) {
|
|
115
|
+
let session = null;
|
|
116
|
+
let cleanup = null;
|
|
117
|
+
return {
|
|
118
|
+
name: "ws",
|
|
119
|
+
onMessage: null,
|
|
120
|
+
attach(s) {
|
|
121
|
+
session = s;
|
|
122
|
+
},
|
|
123
|
+
async start() {
|
|
124
|
+
if (!session) throw new Error("No session attached. Call attach() first.");
|
|
125
|
+
const handler = createWsHandler({ session, send: options.send });
|
|
126
|
+
cleanup = handler.cleanup;
|
|
127
|
+
this.onMessage = handler.onMessage;
|
|
128
|
+
},
|
|
129
|
+
async stop() {
|
|
130
|
+
cleanup?.();
|
|
131
|
+
cleanup = null;
|
|
132
|
+
this.onMessage = null;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
111
136
|
// Annotate the CommonJS export names for ESM import in node:
|
|
112
137
|
0 && (module.exports = {
|
|
113
|
-
createWsHandler
|
|
138
|
+
createWsHandler,
|
|
139
|
+
createWsTransport
|
|
114
140
|
});
|
package/dist/node/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InteractiveSession, IToolState, IExecutionResult } from '@robota-sdk/agent-sdk';
|
|
1
|
+
import { InteractiveSession, IToolState, IExecutionResult, ITransportAdapter } from '@robota-sdk/agent-sdk';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* WebSocket transport adapter — exposes InteractiveSession over WebSocket.
|
|
@@ -104,4 +104,19 @@ declare function createWsHandler(options: IWsHandlerOptions): {
|
|
|
104
104
|
cleanup: () => void;
|
|
105
105
|
};
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
/**
|
|
108
|
+
* ITransportAdapter implementation for WebSocket transport.
|
|
109
|
+
*
|
|
110
|
+
* Wraps createWsHandler into the unified ITransportAdapter interface.
|
|
111
|
+
* After start(), the consumer must wire onMessage to their WebSocket.
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
interface IWsTransportOptions {
|
|
115
|
+
/** Send a JSON message to the connected WebSocket client. */
|
|
116
|
+
send: (message: TServerMessage) => void;
|
|
117
|
+
}
|
|
118
|
+
declare function createWsTransport(options: IWsTransportOptions): ITransportAdapter & {
|
|
119
|
+
onMessage: ((data: string) => void) | null;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { type IWsHandlerOptions, type IWsTransportOptions, type TClientMessage, type TServerMessage, createWsHandler, createWsTransport };
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InteractiveSession, IToolState, IExecutionResult } from '@robota-sdk/agent-sdk';
|
|
1
|
+
import { InteractiveSession, IToolState, IExecutionResult, ITransportAdapter } from '@robota-sdk/agent-sdk';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* WebSocket transport adapter — exposes InteractiveSession over WebSocket.
|
|
@@ -104,4 +104,19 @@ declare function createWsHandler(options: IWsHandlerOptions): {
|
|
|
104
104
|
cleanup: () => void;
|
|
105
105
|
};
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
/**
|
|
108
|
+
* ITransportAdapter implementation for WebSocket transport.
|
|
109
|
+
*
|
|
110
|
+
* Wraps createWsHandler into the unified ITransportAdapter interface.
|
|
111
|
+
* After start(), the consumer must wire onMessage to their WebSocket.
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
interface IWsTransportOptions {
|
|
115
|
+
/** Send a JSON message to the connected WebSocket client. */
|
|
116
|
+
send: (message: TServerMessage) => void;
|
|
117
|
+
}
|
|
118
|
+
declare function createWsTransport(options: IWsTransportOptions): ITransportAdapter & {
|
|
119
|
+
onMessage: ((data: string) => void) | null;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { type IWsHandlerOptions, type IWsTransportOptions, type TClientMessage, type TServerMessage, createWsHandler, createWsTransport };
|
package/dist/node/index.js
CHANGED
|
@@ -82,6 +82,31 @@ function createWsHandler(options) {
|
|
|
82
82
|
};
|
|
83
83
|
return { onMessage, cleanup };
|
|
84
84
|
}
|
|
85
|
+
|
|
86
|
+
// src/ws-transport.ts
|
|
87
|
+
function createWsTransport(options) {
|
|
88
|
+
let session = null;
|
|
89
|
+
let cleanup = null;
|
|
90
|
+
return {
|
|
91
|
+
name: "ws",
|
|
92
|
+
onMessage: null,
|
|
93
|
+
attach(s) {
|
|
94
|
+
session = s;
|
|
95
|
+
},
|
|
96
|
+
async start() {
|
|
97
|
+
if (!session) throw new Error("No session attached. Call attach() first.");
|
|
98
|
+
const handler = createWsHandler({ session, send: options.send });
|
|
99
|
+
cleanup = handler.cleanup;
|
|
100
|
+
this.onMessage = handler.onMessage;
|
|
101
|
+
},
|
|
102
|
+
async stop() {
|
|
103
|
+
cleanup?.();
|
|
104
|
+
cleanup = null;
|
|
105
|
+
this.onMessage = null;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
85
109
|
export {
|
|
86
|
-
createWsHandler
|
|
110
|
+
createWsHandler,
|
|
111
|
+
createWsTransport
|
|
87
112
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robota-sdk/agent-transport-ws",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.47",
|
|
4
4
|
"description": "WebSocket transport adapter for exposing InteractiveSession over real-time connections",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/node/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@robota-sdk/agent-sdk": "3.0.0-beta.
|
|
25
|
+
"@robota-sdk/agent-sdk": "3.0.0-beta.47"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"rimraf": "^5.0.5",
|