@orchestration-ai/sdk 0.7.1 → 0.8.0
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 +55 -0
- package/dist/cjs/app-builder.js +6 -6
- package/dist/cjs/client.gen.d.ts.map +1 -1
- package/dist/cjs/client.gen.js +1 -1
- package/dist/cjs/client.gen.js.map +1 -1
- package/dist/cjs/services.d.ts +2 -0
- package/dist/cjs/services.d.ts.map +1 -1
- package/dist/cjs/services.js +3 -1
- package/dist/cjs/services.js.map +1 -1
- package/dist/cjs/streaming.d.ts +24 -0
- package/dist/cjs/streaming.d.ts.map +1 -0
- package/dist/cjs/streaming.js +71 -0
- package/dist/cjs/streaming.js.map +1 -0
- package/dist/cjs/types.gen.d.ts +1 -1
- package/dist/cjs/types.gen.d.ts.map +1 -1
- package/dist/esm/app-builder.js +6 -6
- package/dist/esm/client.gen.d.ts.map +1 -1
- package/dist/esm/client.gen.js +1 -1
- package/dist/esm/client.gen.js.map +1 -1
- package/dist/esm/services.d.ts +2 -0
- package/dist/esm/services.d.ts.map +1 -1
- package/dist/esm/services.js +1 -0
- package/dist/esm/services.js.map +1 -1
- package/dist/esm/streaming.d.ts +24 -0
- package/dist/esm/streaming.d.ts.map +1 -0
- package/dist/esm/streaming.js +68 -0
- package/dist/esm/streaming.js.map +1 -0
- package/dist/esm/types.gen.d.ts +1 -1
- package/dist/esm/types.gen.d.ts.map +1 -1
- package/package.json +11 -1
package/README.md
CHANGED
|
@@ -200,6 +200,61 @@ const response = await sendMessages(
|
|
|
200
200
|
);
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
+
### Streaming Chat
|
|
204
|
+
|
|
205
|
+
For realtime, streaming conversations with agents, use `openStreamingChat`. It opens a WebSocket connection and streams the agent's response chunk by chunk. Works in both Node.js and the browser - no extra dependencies required.
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
import { openStreamingChat } from '@orchestration-ai/sdk/streaming';
|
|
209
|
+
|
|
210
|
+
const chat = openStreamingChat('agent-id', 0, {
|
|
211
|
+
onChunk: (chunk) => process.stdout.write(chunk),
|
|
212
|
+
onResponse: (fullText) => console.log('\n[Done]'),
|
|
213
|
+
onCancelled: () => console.log('[Cancelled]'),
|
|
214
|
+
onError: (err) => console.error('[Error]', err),
|
|
215
|
+
onOpen: () => console.log('[Connected]'),
|
|
216
|
+
onClose: () => console.log('[Disconnected]'),
|
|
217
|
+
}, {
|
|
218
|
+
accessKey: 'your-access-key', // optional — falls back to OAI_ACCESS_KEY env
|
|
219
|
+
engineUrl: 'https://engine.orchestration-ai.com', // optional — falls back to ENGINE_URL env
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
// Send a message (agent streams its reply via onChunk)
|
|
223
|
+
chat.send('What are my sales numbers this month?');
|
|
224
|
+
|
|
225
|
+
// Cancel the current stream mid-response
|
|
226
|
+
chat.cancel();
|
|
227
|
+
|
|
228
|
+
// Close the connection (clears conversation memory)
|
|
229
|
+
chat.close();
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**Browser example:**
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
import { openStreamingChat } from '@orchestration-ai/sdk/streaming';
|
|
236
|
+
|
|
237
|
+
const output = document.getElementById('output');
|
|
238
|
+
|
|
239
|
+
const chat = openStreamingChat(agentId, 0, {
|
|
240
|
+
onChunk: (chunk) => { output.textContent += chunk; },
|
|
241
|
+
onResponse: () => { /* response complete */ },
|
|
242
|
+
onError: (err) => { output.textContent = `Error: ${err}`; },
|
|
243
|
+
}, { accessKey: 'your-access-key' });
|
|
244
|
+
|
|
245
|
+
document.getElementById('send-btn').onclick = () => {
|
|
246
|
+
output.textContent = '';
|
|
247
|
+
chat.send(document.getElementById('input').value);
|
|
248
|
+
};
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Key details:**
|
|
252
|
+
|
|
253
|
+
- The connection maintains conversation memory — each message builds on prior context within the session.
|
|
254
|
+
- Sending a new message while a response is streaming implicitly cancels the previous stream.
|
|
255
|
+
- Calling `chat.close()` ends the session. Open a new connection for a fresh conversation.
|
|
256
|
+
- Unknown server channels are silently ignored for forward compatibility.
|
|
257
|
+
|
|
203
258
|
### Getting Agent Context
|
|
204
259
|
|
|
205
260
|
```typescript
|
package/dist/cjs/app-builder.js
CHANGED
|
@@ -81,7 +81,7 @@ function renderExplorePage(services, permissions) {
|
|
|
81
81
|
<p class="tool-desc">${tool.description}</p>
|
|
82
82
|
${params ? `<div class="params">${params}</div>` : ""}
|
|
83
83
|
<form class="tool-form" style="display:none" onsubmit="callTool(event, '${s.unique_name}', '${tool.path}', '${tool.method}')">
|
|
84
|
-
<input class="param-input layer-id-input" type="text" name="
|
|
84
|
+
<input class="param-input layer-id-input" type="text" name="__passkey__" placeholder="X-Passkey (optional)" />
|
|
85
85
|
${paramInputs}
|
|
86
86
|
<div class="form-actions">
|
|
87
87
|
<button type="submit" class="call-btn">Call</button>
|
|
@@ -99,7 +99,7 @@ function renderExplorePage(services, permissions) {
|
|
|
99
99
|
<button class="try-btn" onclick="toggleForm(this)">Try</button>
|
|
100
100
|
</div>
|
|
101
101
|
<form class="tool-form" style="display:none" onsubmit="callTool(event, '${s.unique_name}', '${t}', 'POST')">
|
|
102
|
-
<input class="param-input layer-id-input" type="text" name="
|
|
102
|
+
<input class="param-input layer-id-input" type="text" name="__passkey__" placeholder="X-Passkey (optional)" />
|
|
103
103
|
<textarea class="raw-body" name="__raw__" placeholder='{ "key": "value" }' rows="3"></textarea>
|
|
104
104
|
<div class="form-actions">
|
|
105
105
|
<button type="submit" class="call-btn">Call</button>
|
|
@@ -411,14 +411,14 @@ function renderExplorePage(services, permissions) {
|
|
|
411
411
|
const form = e.target;
|
|
412
412
|
const responseEl = form.querySelector('.tool-response');
|
|
413
413
|
const rawField = form.querySelector('[name="__raw__"]');
|
|
414
|
-
const
|
|
415
|
-
const
|
|
414
|
+
const passkeyField = form.querySelector('[name="__passkey__"]');
|
|
415
|
+
const passkey = passkeyField ? passkeyField.value.trim() : '';
|
|
416
416
|
let body = {};
|
|
417
417
|
if (rawField) {
|
|
418
418
|
try { body = JSON.parse(rawField.value || '{}'); } catch { body = {}; }
|
|
419
419
|
} else {
|
|
420
420
|
for (const input of form.querySelectorAll('[name]')) {
|
|
421
|
-
if (input.name === '
|
|
421
|
+
if (input.name === '__passkey__') continue;
|
|
422
422
|
const name = input.name;
|
|
423
423
|
const type = input.dataset.type;
|
|
424
424
|
if (type === 'boolean') { body[name] = input.checked; }
|
|
@@ -433,7 +433,7 @@ function renderExplorePage(services, permissions) {
|
|
|
433
433
|
const url = '/services/' + service + '/api/' + path;
|
|
434
434
|
const headers = {};
|
|
435
435
|
if (isBodyMethod) { headers['Content-Type'] = 'application/json'; }
|
|
436
|
-
if (
|
|
436
|
+
if (passkey) { headers['X-Passkey'] = passkey; }
|
|
437
437
|
const opts = { method: method.toUpperCase(), headers };
|
|
438
438
|
if (isBodyMethod) { opts.body = JSON.stringify(body); }
|
|
439
439
|
const res = await fetch(url, opts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.gen.d.ts","sourceRoot":"","sources":["../../typescript/client.gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAA8B,MAAM,UAAU,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,aAAa,GAAG,cAAc,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzJ,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"client.gen.d.ts","sourceRoot":"","sources":["../../typescript/client.gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAA8B,MAAM,UAAU,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,aAAa,GAAG,cAAc,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzJ,eAAO,MAAM,MAAM,2BAA8F,CAAC"}
|
package/dist/cjs/client.gen.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.client = void 0;
|
|
5
5
|
const client_1 = require("./client");
|
|
6
|
-
exports.client = (0, client_1.createClient)((0, client_1.createConfig)({ baseURL: 'https://api
|
|
6
|
+
exports.client = (0, client_1.createClient)((0, client_1.createConfig)({ baseURL: 'https://api.orchestration-ai.com' }));
|
|
7
7
|
//# sourceMappingURL=client.gen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.gen.js","sourceRoot":"","sources":["../../typescript/client.gen.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAErD,qCAAuF;AAa1E,QAAA,MAAM,GAAG,IAAA,qBAAY,EAAC,IAAA,qBAAY,EAAiB,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"client.gen.js","sourceRoot":"","sources":["../../typescript/client.gen.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAErD,qCAAuF;AAa1E,QAAA,MAAM,GAAG,IAAA,qBAAY,EAAC,IAAA,qBAAY,EAAiB,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC"}
|
package/dist/cjs/services.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { Application } from './types.gen';
|
|
|
3
3
|
import type { Context, Message, Permission, ServiceDescription, ServiceInfo, Setting } from './shared-types';
|
|
4
4
|
export type { AgentIdentity, Context, Message, Permission, PermissionName, ServiceDescription, ServiceDescriptionPart, ServiceInfo, Setting, } from './shared-types';
|
|
5
5
|
export { getBooleanSetting, getTextSetting, getSecretSetting } from './shared-types';
|
|
6
|
+
export { openStreamingChat } from './streaming';
|
|
7
|
+
export type { StreamingChat, StreamingChatConfig, StreamingChatEvents, StreamingChannel, ServerMessage, } from './streaming';
|
|
6
8
|
/** Create a client configured for an application's URL, optionally with a layer ID for context */
|
|
7
9
|
export declare function createApplicationClient(application: Application, layerId?: string): Client;
|
|
8
10
|
/** Create a bare API client (no auth configured). Use with setupClientCredentials. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../typescript/services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,UAAU,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,OAAO,EACR,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../typescript/services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,UAAU,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,OAAO,EACR,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AAIrB,kGAAkG;AAClG,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAO1F;AAED,sFAAsF;AACtF,wBAAgB,eAAe,IAAI,MAAM,CAIxC;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AACxF,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AAgB9D,kCAAkC;AAClC,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAMzE;AAED,kDAAkD;AAClD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAM1E;AAED,yCAAyC;AACzC,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,EAAE,CAAC,CAMpB;AAED,qDAAqD;AACrD,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAM7B;AAED,qEAAqE;AACrE,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EACxE,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrD,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,GACA,OAAO,CAAC,SAAS,CAAC,CASpB;AAID,kCAAkC;AAClC,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOlF;AAED,uEAAuE;AACvE,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
|
package/dist/cjs/services.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getSecretSetting = exports.getTextSetting = exports.getBooleanSetting = void 0;
|
|
6
|
+
exports.openStreamingChat = exports.getSecretSetting = exports.getTextSetting = exports.getBooleanSetting = void 0;
|
|
7
7
|
exports.createApplicationClient = createApplicationClient;
|
|
8
8
|
exports.createApiClient = createApiClient;
|
|
9
9
|
exports.createEngineClient = createEngineClient;
|
|
@@ -21,6 +21,8 @@ var shared_types_1 = require("./shared-types");
|
|
|
21
21
|
Object.defineProperty(exports, "getBooleanSetting", { enumerable: true, get: function () { return shared_types_1.getBooleanSetting; } });
|
|
22
22
|
Object.defineProperty(exports, "getTextSetting", { enumerable: true, get: function () { return shared_types_1.getTextSetting; } });
|
|
23
23
|
Object.defineProperty(exports, "getSecretSetting", { enumerable: true, get: function () { return shared_types_1.getSecretSetting; } });
|
|
24
|
+
var streaming_1 = require("./streaming");
|
|
25
|
+
Object.defineProperty(exports, "openStreamingChat", { enumerable: true, get: function () { return streaming_1.openStreamingChat; } });
|
|
24
26
|
// --- Client Factories ---
|
|
25
27
|
/** Create a client configured for an application's URL, optionally with a layer ID for context */
|
|
26
28
|
function createApplicationClient(application, layerId) {
|
package/dist/cjs/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../typescript/services.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../typescript/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type StreamingChannel = 'response' | 'response_end' | 'response_cancelled' | 'error';
|
|
2
|
+
export type ServerMessage = {
|
|
3
|
+
channel: StreamingChannel;
|
|
4
|
+
data: string;
|
|
5
|
+
};
|
|
6
|
+
export type StreamingChatConfig = {
|
|
7
|
+
engineUrl?: string;
|
|
8
|
+
accessKey?: string;
|
|
9
|
+
};
|
|
10
|
+
export type StreamingChatEvents = {
|
|
11
|
+
onChunk?: (text: string) => void;
|
|
12
|
+
onResponse?: (fullText: string) => void;
|
|
13
|
+
onCancelled?: () => void;
|
|
14
|
+
onError?: (error: string) => void;
|
|
15
|
+
onClose?: () => void;
|
|
16
|
+
onOpen?: () => void;
|
|
17
|
+
};
|
|
18
|
+
export type StreamingChat = {
|
|
19
|
+
send: (message: string) => void;
|
|
20
|
+
cancel: () => void;
|
|
21
|
+
close: () => void;
|
|
22
|
+
};
|
|
23
|
+
export declare function openStreamingChat(agentId: string, layerIndex: number, events: StreamingChatEvents, config?: StreamingChatConfig): StreamingChat;
|
|
24
|
+
//# sourceMappingURL=streaming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../typescript/streaming.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,cAAc,GAAG,oBAAoB,GAAG,OAAO,CAAC;AAE5F,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AASF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,mBAAmB,GAC3B,aAAa,CA8Df"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.openStreamingChat = openStreamingChat;
|
|
4
|
+
function getEnv(key) {
|
|
5
|
+
var _a;
|
|
6
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
7
|
+
return (_a = process.env[key]) !== null && _a !== void 0 ? _a : '';
|
|
8
|
+
}
|
|
9
|
+
return '';
|
|
10
|
+
}
|
|
11
|
+
function openStreamingChat(agentId, layerIndex, events, config) {
|
|
12
|
+
const engineUrl = (config === null || config === void 0 ? void 0 : config.engineUrl) || getEnv('ENGINE_URL') || 'https://engine.orchestration-ai.com';
|
|
13
|
+
const accessKey = (config === null || config === void 0 ? void 0 : config.accessKey) || getEnv('OAI_ACCESS_KEY') || '';
|
|
14
|
+
const wsUrl = engineUrl.replace(/^http/, 'ws');
|
|
15
|
+
const url = `${wsUrl}/agents/${agentId}/layers/${layerIndex}/ws?token=${encodeURIComponent(accessKey)}`;
|
|
16
|
+
const ws = new WebSocket(url);
|
|
17
|
+
let buffer = '';
|
|
18
|
+
ws.onopen = () => {
|
|
19
|
+
var _a;
|
|
20
|
+
(_a = events.onOpen) === null || _a === void 0 ? void 0 : _a.call(events);
|
|
21
|
+
};
|
|
22
|
+
ws.onmessage = (event) => {
|
|
23
|
+
var _a, _b, _c, _d;
|
|
24
|
+
let msg;
|
|
25
|
+
try {
|
|
26
|
+
msg = JSON.parse(typeof event.data === 'string' ? event.data : String(event.data));
|
|
27
|
+
}
|
|
28
|
+
catch (_e) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
switch (msg.channel) {
|
|
32
|
+
case 'response':
|
|
33
|
+
buffer += msg.data;
|
|
34
|
+
(_a = events.onChunk) === null || _a === void 0 ? void 0 : _a.call(events, msg.data);
|
|
35
|
+
break;
|
|
36
|
+
case 'response_end':
|
|
37
|
+
(_b = events.onResponse) === null || _b === void 0 ? void 0 : _b.call(events, buffer);
|
|
38
|
+
buffer = '';
|
|
39
|
+
break;
|
|
40
|
+
case 'response_cancelled':
|
|
41
|
+
buffer = '';
|
|
42
|
+
(_c = events.onCancelled) === null || _c === void 0 ? void 0 : _c.call(events);
|
|
43
|
+
break;
|
|
44
|
+
case 'error':
|
|
45
|
+
buffer = '';
|
|
46
|
+
(_d = events.onError) === null || _d === void 0 ? void 0 : _d.call(events, msg.data);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
ws.onclose = () => {
|
|
51
|
+
var _a;
|
|
52
|
+
(_a = events.onClose) === null || _a === void 0 ? void 0 : _a.call(events);
|
|
53
|
+
};
|
|
54
|
+
ws.onerror = () => {
|
|
55
|
+
var _a;
|
|
56
|
+
(_a = events.onError) === null || _a === void 0 ? void 0 : _a.call(events, 'WebSocket connection error');
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
send(message) {
|
|
60
|
+
buffer = '';
|
|
61
|
+
ws.send(JSON.stringify({ message }));
|
|
62
|
+
},
|
|
63
|
+
cancel() {
|
|
64
|
+
ws.send(JSON.stringify({ type: 'cancel' }));
|
|
65
|
+
},
|
|
66
|
+
close() {
|
|
67
|
+
ws.close();
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=streaming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../typescript/streaming.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.gen.d.ts
CHANGED