network-ai 4.0.17 → 4.2.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 +113 -30
- package/dist/adapters/a2a-adapter.d.ts +152 -0
- package/dist/adapters/a2a-adapter.d.ts.map +1 -0
- package/dist/adapters/a2a-adapter.js +235 -0
- package/dist/adapters/a2a-adapter.js.map +1 -0
- package/dist/adapters/codex-adapter.d.ts +152 -0
- package/dist/adapters/codex-adapter.d.ts.map +1 -0
- package/dist/adapters/codex-adapter.js +318 -0
- package/dist/adapters/codex-adapter.js.map +1 -0
- package/dist/adapters/custom-streaming-adapter.d.ts +68 -0
- package/dist/adapters/custom-streaming-adapter.d.ts.map +1 -0
- package/dist/adapters/custom-streaming-adapter.js +181 -0
- package/dist/adapters/custom-streaming-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +9 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +15 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/langchain-streaming-adapter.d.ts +48 -0
- package/dist/adapters/langchain-streaming-adapter.d.ts.map +1 -0
- package/dist/adapters/langchain-streaming-adapter.js +161 -0
- package/dist/adapters/langchain-streaming-adapter.js.map +1 -0
- package/dist/adapters/streaming-base-adapter.d.ts +42 -0
- package/dist/adapters/streaming-base-adapter.d.ts.map +1 -0
- package/dist/adapters/streaming-base-adapter.js +68 -0
- package/dist/adapters/streaming-base-adapter.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/run.js +1 -0
- package/dist/run.js.map +1 -1
- package/package.json +7 -4
- package/socket.json +12 -0
- package/types/streaming-adapter.d.ts +63 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CustomStreamingAdapter — CustomAdapter with streaming support.
|
|
4
|
+
*
|
|
5
|
+
* Extends {@link CustomAdapter} so that handlers can yield incremental text
|
|
6
|
+
* by returning an `AsyncIterable<string>` or `AsyncIterable<StreamingChunk>`.
|
|
7
|
+
* Plain `Promise<unknown>` handlers work unchanged (single-chunk fallback).
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
*
|
|
11
|
+
* const adapter = new CustomStreamingAdapter();
|
|
12
|
+
*
|
|
13
|
+
* // Streaming handler — yields tokens incrementally
|
|
14
|
+
* adapter.registerHandler('writer', async function*(payload) {
|
|
15
|
+
* yield 'Once ';
|
|
16
|
+
* yield 'upon ';
|
|
17
|
+
* yield 'a time…';
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Non-streaming handler — works exactly as before
|
|
21
|
+
* adapter.registerHandler('analyze', async (payload) => ({ result: 'done' }));
|
|
22
|
+
*
|
|
23
|
+
* // Consume the stream
|
|
24
|
+
* for await (const chunk of adapter.executeAgentStream('writer', payload, ctx)) {
|
|
25
|
+
* process.stdout.write(chunk.text);
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* @module CustomStreamingAdapter
|
|
29
|
+
* @version 1.0.0
|
|
30
|
+
*/
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.CustomStreamingAdapter = void 0;
|
|
33
|
+
const custom_adapter_1 = require("./custom-adapter");
|
|
34
|
+
/** Type guard — checks whether the return value of a handler is async-iterable. */
|
|
35
|
+
function isAsyncIterable(val) {
|
|
36
|
+
return (val != null &&
|
|
37
|
+
typeof val === 'object' &&
|
|
38
|
+
Symbol.asyncIterator in val);
|
|
39
|
+
}
|
|
40
|
+
/** Type guard — checks whether a `StreamingChunk`-shaped object was yielded. */
|
|
41
|
+
function isStreamingChunk(val) {
|
|
42
|
+
return (val !== null &&
|
|
43
|
+
typeof val === 'object' &&
|
|
44
|
+
typeof val.text === 'string' &&
|
|
45
|
+
typeof val.done === 'boolean');
|
|
46
|
+
}
|
|
47
|
+
class CustomStreamingAdapter extends custom_adapter_1.CustomAdapter {
|
|
48
|
+
streamingHandlers = new Set();
|
|
49
|
+
get capabilities() {
|
|
50
|
+
return {
|
|
51
|
+
...super.capabilities,
|
|
52
|
+
streaming: true,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Register a handler. Streaming handlers (functions returning `AsyncIterable`)
|
|
57
|
+
* are detected automatically and exposed through `executeAgentStream()`.
|
|
58
|
+
*/
|
|
59
|
+
registerHandler(agentId, handler, metadata) {
|
|
60
|
+
// Probe: call the handler with synthetic inputs and check if the return
|
|
61
|
+
// is async-iterable. We do this via a duck-typed try, falling back safely.
|
|
62
|
+
// Instead, infer from the handler's prototype / generator signature:
|
|
63
|
+
const isGenerator = handler.constructor?.name === 'AsyncGeneratorFunction' ||
|
|
64
|
+
(Object.prototype.toString.call(handler) === '[object AsyncGeneratorFunction]');
|
|
65
|
+
if (isGenerator) {
|
|
66
|
+
this.streamingHandlers.add(agentId);
|
|
67
|
+
}
|
|
68
|
+
// Cast to base AgentHandler — the broader type is compatible at runtime
|
|
69
|
+
super.registerHandler(agentId, handler, metadata);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Mark an already-registered handler as streaming.
|
|
73
|
+
* Useful when the handler function is not an async generator but returns
|
|
74
|
+
* an `AsyncIterable` (e.g. a closure around a separate generator).
|
|
75
|
+
*/
|
|
76
|
+
markStreaming(agentId) {
|
|
77
|
+
this.streamingHandlers.add(agentId);
|
|
78
|
+
}
|
|
79
|
+
supportsStreaming(agentId) {
|
|
80
|
+
return this.streamingHandlers.has(agentId);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Execute a handler with streaming support.
|
|
84
|
+
*
|
|
85
|
+
* - If the handler is registered as streaming (yields tokens), pipes the
|
|
86
|
+
* async iterable to `StreamingChunk` values.
|
|
87
|
+
* - Otherwise falls back to `executeAgent()` and wraps the result as a
|
|
88
|
+
* single chunk (same behaviour as the non-streaming `CustomAdapter`).
|
|
89
|
+
*/
|
|
90
|
+
async *executeAgentStream(agentId, payload, context) {
|
|
91
|
+
this.ensureReady();
|
|
92
|
+
// Access the internal handlers map stored in the parent class
|
|
93
|
+
const handlers = this.handlers;
|
|
94
|
+
const handler = handlers?.get(agentId);
|
|
95
|
+
if (!handler) {
|
|
96
|
+
// No handler — delegate to base executeAgent (which returns AGENT_NOT_FOUND)
|
|
97
|
+
const result = await this.executeAgent(agentId, payload, context);
|
|
98
|
+
yield {
|
|
99
|
+
text: result.error?.message ?? 'Agent not found',
|
|
100
|
+
done: true,
|
|
101
|
+
metadata: { error: true },
|
|
102
|
+
};
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
// Invoke the handler — may return a Promise or an AsyncIterable
|
|
106
|
+
let returnValue;
|
|
107
|
+
try {
|
|
108
|
+
returnValue = handler(payload, context);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
yield {
|
|
112
|
+
text: err instanceof Error ? err.message : 'Handler threw synchronously',
|
|
113
|
+
done: true,
|
|
114
|
+
metadata: { error: true },
|
|
115
|
+
};
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
// If the return is a Promise, await it first
|
|
119
|
+
if (returnValue instanceof Promise) {
|
|
120
|
+
let resolved;
|
|
121
|
+
try {
|
|
122
|
+
resolved = await returnValue;
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
yield {
|
|
126
|
+
text: err instanceof Error ? err.message : 'Handler rejected',
|
|
127
|
+
done: true,
|
|
128
|
+
metadata: { error: true },
|
|
129
|
+
};
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (isAsyncIterable(resolved)) {
|
|
133
|
+
// Resolved to an async iterable — pipe it through
|
|
134
|
+
yield* this._pipeIterable(resolved);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// Plain resolved value — single chunk fallback
|
|
138
|
+
const text = typeof resolved === 'string' ? resolved :
|
|
139
|
+
resolved != null ? JSON.stringify(resolved) :
|
|
140
|
+
'';
|
|
141
|
+
yield { text, done: false };
|
|
142
|
+
yield { text: '', done: true };
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// Returned an AsyncIterable directly (generator function, etc.)
|
|
146
|
+
if (isAsyncIterable(returnValue)) {
|
|
147
|
+
yield* this._pipeIterable(returnValue);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// Fallback — single chunk from whatever value was returned
|
|
151
|
+
const text = typeof returnValue === 'string' ? returnValue :
|
|
152
|
+
returnValue != null ? JSON.stringify(returnValue) :
|
|
153
|
+
'';
|
|
154
|
+
yield { text, done: false };
|
|
155
|
+
yield { text: '', done: true };
|
|
156
|
+
}
|
|
157
|
+
/** Pipe an `AsyncIterable<string | StreamingChunk>` to `StreamingChunk` values. */
|
|
158
|
+
async *_pipeIterable(iterable) {
|
|
159
|
+
try {
|
|
160
|
+
for await (const item of iterable) {
|
|
161
|
+
if (isStreamingChunk(item)) {
|
|
162
|
+
yield item;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const text = typeof item === 'string' ? item : JSON.stringify(item);
|
|
166
|
+
yield { text, done: false };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
yield { text: '', done: true };
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
yield {
|
|
173
|
+
text: err instanceof Error ? err.message : 'Stream iteration failed',
|
|
174
|
+
done: true,
|
|
175
|
+
metadata: { error: true },
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.CustomStreamingAdapter = CustomStreamingAdapter;
|
|
181
|
+
//# sourceMappingURL=custom-streaming-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-streaming-adapter.js","sourceRoot":"","sources":["../../adapters/custom-streaming-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -43,5 +43,14 @@ export { DSPyAdapter } from './dspy-adapter';
|
|
|
43
43
|
export type { DSPyModule, DSPyProgram, DSPyPrediction, DSPyPredictor } from './dspy-adapter';
|
|
44
44
|
export { AgnoAdapter } from './agno-adapter';
|
|
45
45
|
export type { AgnoAgent, AgnoTeam, AgnoResponse, AgnoFunction, } from './agno-adapter';
|
|
46
|
+
export { StreamingBaseAdapter, collectStream } from './streaming-base-adapter';
|
|
47
|
+
export { LangChainStreamingAdapter } from './langchain-streaming-adapter';
|
|
48
|
+
export { CustomStreamingAdapter } from './custom-streaming-adapter';
|
|
49
|
+
export type { StreamingAgentHandler } from './custom-streaming-adapter';
|
|
50
|
+
export { A2AAdapter } from './a2a-adapter';
|
|
51
|
+
export type { A2AAgentCard, A2ATask, A2ATaskResponse, A2ATaskState, A2AArtifact, A2AAdapterConfig, } from './a2a-adapter';
|
|
52
|
+
export { CodexAdapter } from './codex-adapter';
|
|
53
|
+
export type { CodexMode, CodexAgentConfig, CodexChatClient, CodexCompletionClient, CodexCLIExecutor, } from './codex-adapter';
|
|
54
|
+
export type { StreamingChunk, IStreamingAdapter, StreamCollector } from '../types/streaming-adapter';
|
|
46
55
|
export type { IAgentAdapter, AgentPayload, AgentContext, AgentResult, AgentInfo, AdapterConfig, AdapterCapabilities, AdapterRoute, RegistryConfig, AdapterEvent, AdapterEventHandler, AdapterEventType, } from '../types/agent-adapter';
|
|
47
56
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,SAAS,GACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* @version 1.0.0
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.AgnoAdapter = exports.DSPyAdapter = exports.HaystackAdapter = exports.OpenAIAssistantsAdapter = exports.SemanticKernelAdapter = exports.LlamaIndexAdapter = exports.CustomAdapter = exports.MCPAdapter = exports.CrewAIAdapter = exports.AutoGenAdapter = exports.LangChainAdapter = exports.OpenClawAdapter = exports.getRegistry = exports.AdapterRegistry = exports.BaseAdapter = void 0;
|
|
23
|
+
exports.CodexAdapter = exports.A2AAdapter = exports.CustomStreamingAdapter = exports.LangChainStreamingAdapter = exports.collectStream = exports.StreamingBaseAdapter = exports.AgnoAdapter = exports.DSPyAdapter = exports.HaystackAdapter = exports.OpenAIAssistantsAdapter = exports.SemanticKernelAdapter = exports.LlamaIndexAdapter = exports.CustomAdapter = exports.MCPAdapter = exports.CrewAIAdapter = exports.AutoGenAdapter = exports.LangChainAdapter = exports.OpenClawAdapter = exports.getRegistry = exports.AdapterRegistry = exports.BaseAdapter = void 0;
|
|
24
24
|
// Core infrastructure
|
|
25
25
|
var base_adapter_1 = require("./base-adapter");
|
|
26
26
|
Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return base_adapter_1.BaseAdapter; } });
|
|
@@ -53,4 +53,18 @@ var dspy_adapter_1 = require("./dspy-adapter");
|
|
|
53
53
|
Object.defineProperty(exports, "DSPyAdapter", { enumerable: true, get: function () { return dspy_adapter_1.DSPyAdapter; } });
|
|
54
54
|
var agno_adapter_1 = require("./agno-adapter");
|
|
55
55
|
Object.defineProperty(exports, "AgnoAdapter", { enumerable: true, get: function () { return agno_adapter_1.AgnoAdapter; } });
|
|
56
|
+
// Streaming adapters
|
|
57
|
+
var streaming_base_adapter_1 = require("./streaming-base-adapter");
|
|
58
|
+
Object.defineProperty(exports, "StreamingBaseAdapter", { enumerable: true, get: function () { return streaming_base_adapter_1.StreamingBaseAdapter; } });
|
|
59
|
+
Object.defineProperty(exports, "collectStream", { enumerable: true, get: function () { return streaming_base_adapter_1.collectStream; } });
|
|
60
|
+
var langchain_streaming_adapter_1 = require("./langchain-streaming-adapter");
|
|
61
|
+
Object.defineProperty(exports, "LangChainStreamingAdapter", { enumerable: true, get: function () { return langchain_streaming_adapter_1.LangChainStreamingAdapter; } });
|
|
62
|
+
var custom_streaming_adapter_1 = require("./custom-streaming-adapter");
|
|
63
|
+
Object.defineProperty(exports, "CustomStreamingAdapter", { enumerable: true, get: function () { return custom_streaming_adapter_1.CustomStreamingAdapter; } });
|
|
64
|
+
// A2A (Agent-to-Agent) adapter
|
|
65
|
+
var a2a_adapter_1 = require("./a2a-adapter");
|
|
66
|
+
Object.defineProperty(exports, "A2AAdapter", { enumerable: true, get: function () { return a2a_adapter_1.A2AAdapter; } });
|
|
67
|
+
// Codex adapter (OpenAI Codex CLI / chat / completion)
|
|
68
|
+
var codex_adapter_1 = require("./codex-adapter");
|
|
69
|
+
Object.defineProperty(exports, "CodexAdapter", { enumerable: true, get: function () { return codex_adapter_1.CodexAdapter; } });
|
|
56
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH,sBAAsB;AACtB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,uDAAkE;AAAzD,mHAAA,eAAe,OAAA;AAAE,+GAAA,WAAW,OAAA;AAErC,mCAAmC;AACnC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAEzB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAEtB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAGtB,8BAA8B;AAC9B,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAO1B,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAE9B,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAOhC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAQxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH,sBAAsB;AACtB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,uDAAkE;AAAzD,mHAAA,eAAe,OAAA;AAAE,+GAAA,WAAW,OAAA;AAErC,mCAAmC;AACnC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAEzB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAEtB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAGtB,8BAA8B;AAC9B,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAO1B,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAE9B,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAOhC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAQxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAQpB,qBAAqB;AACrB,mEAA+E;AAAtE,8HAAA,oBAAoB,OAAA;AAAE,uHAAA,aAAa,OAAA;AAC5C,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA;AAClC,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAG/B,+BAA+B;AAC/B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAUnB,uDAAuD;AACvD,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LangChainStreamingAdapter — LangChainAdapter with real incremental streaming.
|
|
3
|
+
*
|
|
4
|
+
* Extends {@link LangChainAdapter} with genuine streaming via the LangChain
|
|
5
|
+
* Runnable `.stream()` interface. Falls back gracefully to `.invoke()` for
|
|
6
|
+
* agents whose Runnable does not expose `.stream()`.
|
|
7
|
+
*
|
|
8
|
+
* Usage (drop-in replacement for LangChainAdapter):
|
|
9
|
+
*
|
|
10
|
+
* const adapter = new LangChainStreamingAdapter();
|
|
11
|
+
* adapter.registerAgent('analyst', myChain); // same API
|
|
12
|
+
* await registry.addAdapter(adapter);
|
|
13
|
+
*
|
|
14
|
+
* // Stream the response
|
|
15
|
+
* for await (const chunk of adapter.executeAgentStream('analyst', payload, ctx)) {
|
|
16
|
+
* process.stdout.write(chunk.text);
|
|
17
|
+
* if (chunk.done) break;
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* @module LangChainStreamingAdapter
|
|
21
|
+
* @version 1.0.0
|
|
22
|
+
*/
|
|
23
|
+
import type { AgentPayload, AgentContext, AdapterCapabilities } from '../types/agent-adapter';
|
|
24
|
+
import type { StreamingChunk } from '../types/streaming-adapter';
|
|
25
|
+
import type { IStreamingAdapter } from '../types/streaming-adapter';
|
|
26
|
+
import { LangChainAdapter, LangChainRunnable } from './langchain-adapter';
|
|
27
|
+
export declare class LangChainStreamingAdapter extends LangChainAdapter implements IStreamingAdapter {
|
|
28
|
+
private streamableAgentIds;
|
|
29
|
+
get capabilities(): AdapterCapabilities;
|
|
30
|
+
/**
|
|
31
|
+
* Register a LangChain agent. Automatically detects `.stream()` support.
|
|
32
|
+
*/
|
|
33
|
+
registerAgent(agentId: string, runnable: LangChainRunnable, metadata?: {
|
|
34
|
+
description?: string;
|
|
35
|
+
capabilities?: string[];
|
|
36
|
+
}): void;
|
|
37
|
+
/** Returns `true` when the agent exposes LangChain's `.stream()` method. */
|
|
38
|
+
supportsStreaming(agentId: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Stream agent execution as incremental `StreamingChunk` values.
|
|
41
|
+
*
|
|
42
|
+
* - If the registered Runnable exposes `.stream()`, emits tokens incrementally.
|
|
43
|
+
* - Otherwise falls back to `.invoke()` and emits a single chunk.
|
|
44
|
+
*/
|
|
45
|
+
executeAgentStream(agentId: string, payload: AgentPayload, context: AgentContext): AsyncIterable<StreamingChunk>;
|
|
46
|
+
private _fallbackStream;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=langchain-streaming-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langchain-streaming-adapter.d.ts","sourceRoot":"","sources":["../../adapters/langchain-streaming-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAsC1E,qBAAa,yBAA0B,SAAQ,gBAAiB,YAAW,iBAAiB;IAG1F,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,IAAI,YAAY,IAAI,mBAAmB,CAKtC;IAED;;OAEG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAOP,4EAA4E;IAC5E,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACI,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,aAAa,CAAC,cAAc,CAAC;YAkEjB,eAAe;CAsB/B"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* LangChainStreamingAdapter — LangChainAdapter with real incremental streaming.
|
|
4
|
+
*
|
|
5
|
+
* Extends {@link LangChainAdapter} with genuine streaming via the LangChain
|
|
6
|
+
* Runnable `.stream()` interface. Falls back gracefully to `.invoke()` for
|
|
7
|
+
* agents whose Runnable does not expose `.stream()`.
|
|
8
|
+
*
|
|
9
|
+
* Usage (drop-in replacement for LangChainAdapter):
|
|
10
|
+
*
|
|
11
|
+
* const adapter = new LangChainStreamingAdapter();
|
|
12
|
+
* adapter.registerAgent('analyst', myChain); // same API
|
|
13
|
+
* await registry.addAdapter(adapter);
|
|
14
|
+
*
|
|
15
|
+
* // Stream the response
|
|
16
|
+
* for await (const chunk of adapter.executeAgentStream('analyst', payload, ctx)) {
|
|
17
|
+
* process.stdout.write(chunk.text);
|
|
18
|
+
* if (chunk.done) break;
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* @module LangChainStreamingAdapter
|
|
22
|
+
* @version 1.0.0
|
|
23
|
+
*/
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.LangChainStreamingAdapter = void 0;
|
|
26
|
+
const langchain_adapter_1 = require("./langchain-adapter");
|
|
27
|
+
function isStreamable(runnable) {
|
|
28
|
+
return (typeof runnable === 'object' &&
|
|
29
|
+
runnable !== null &&
|
|
30
|
+
typeof runnable.stream === 'function');
|
|
31
|
+
}
|
|
32
|
+
/** Coerce any chunk value yielded by a LangChain stream to a string. */
|
|
33
|
+
function chunkToText(raw) {
|
|
34
|
+
if (typeof raw === 'string')
|
|
35
|
+
return raw;
|
|
36
|
+
if (raw == null)
|
|
37
|
+
return '';
|
|
38
|
+
if (typeof raw === 'object') {
|
|
39
|
+
const obj = raw;
|
|
40
|
+
// AIMessage / BaseMessage pattern
|
|
41
|
+
if (typeof obj.content === 'string')
|
|
42
|
+
return obj.content;
|
|
43
|
+
// { output: "..." } pattern
|
|
44
|
+
if (typeof obj.output === 'string')
|
|
45
|
+
return obj.output;
|
|
46
|
+
// { result: "..." } pattern
|
|
47
|
+
if (typeof obj.result === 'string')
|
|
48
|
+
return obj.result;
|
|
49
|
+
// Generic object — stringify
|
|
50
|
+
return JSON.stringify(obj);
|
|
51
|
+
}
|
|
52
|
+
return String(raw);
|
|
53
|
+
}
|
|
54
|
+
class LangChainStreamingAdapter extends langchain_adapter_1.LangChainAdapter {
|
|
55
|
+
// Internal registry of agents that have a real .stream() method
|
|
56
|
+
streamableAgentIds = new Set();
|
|
57
|
+
get capabilities() {
|
|
58
|
+
return {
|
|
59
|
+
...super.capabilities,
|
|
60
|
+
streaming: true,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Register a LangChain agent. Automatically detects `.stream()` support.
|
|
65
|
+
*/
|
|
66
|
+
registerAgent(agentId, runnable, metadata) {
|
|
67
|
+
super.registerAgent(agentId, runnable, metadata);
|
|
68
|
+
if (isStreamable(runnable)) {
|
|
69
|
+
this.streamableAgentIds.add(agentId);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** Returns `true` when the agent exposes LangChain's `.stream()` method. */
|
|
73
|
+
supportsStreaming(agentId) {
|
|
74
|
+
return this.streamableAgentIds.has(agentId);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Stream agent execution as incremental `StreamingChunk` values.
|
|
78
|
+
*
|
|
79
|
+
* - If the registered Runnable exposes `.stream()`, emits tokens incrementally.
|
|
80
|
+
* - Otherwise falls back to `.invoke()` and emits a single chunk.
|
|
81
|
+
*/
|
|
82
|
+
async *executeAgentStream(agentId, payload, context) {
|
|
83
|
+
this.ensureReady();
|
|
84
|
+
// Access the internal runnables map via the parent's execute path.
|
|
85
|
+
// We override at the stream level; non-streamable agents fall through
|
|
86
|
+
// to the single-chunk wrapper in the base non-streaming path.
|
|
87
|
+
if (!this.streamableAgentIds.has(agentId)) {
|
|
88
|
+
// Fall back: executeAgent → single chunk
|
|
89
|
+
const result = await this.executeAgent(agentId, payload, context);
|
|
90
|
+
if (!result.success) {
|
|
91
|
+
yield {
|
|
92
|
+
text: result.error?.message ?? 'Agent execution failed',
|
|
93
|
+
done: true,
|
|
94
|
+
metadata: { error: true, code: result.error?.code },
|
|
95
|
+
};
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const data = result.data;
|
|
99
|
+
const text = typeof data === 'string' ? data :
|
|
100
|
+
data != null ? JSON.stringify(data) :
|
|
101
|
+
'';
|
|
102
|
+
yield { text, done: false, metadata: result.metadata };
|
|
103
|
+
yield { text: '', done: true, metadata: { adapter: this.name } };
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
// Build the same input the non-streaming path would use
|
|
107
|
+
const input = this.buildInput(payload, context);
|
|
108
|
+
// We need the runnable — access it via executeAgent's path by delegating
|
|
109
|
+
// through a custom approach: re-invoke via the known runnables map.
|
|
110
|
+
// The parent stores runnables as a private field; we get it via symbol.
|
|
111
|
+
const runnables = this.runnables;
|
|
112
|
+
const runnable = runnables?.get(agentId);
|
|
113
|
+
if (!runnable || !isStreamable(runnable)) {
|
|
114
|
+
// Shouldn't happen — fallback anyway
|
|
115
|
+
yield* this._fallbackStream(agentId, payload, context);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const langchainConfig = {
|
|
119
|
+
metadata: {
|
|
120
|
+
taskId: context.taskId,
|
|
121
|
+
sessionId: context.sessionId,
|
|
122
|
+
sourceAgent: context.agentId,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
try {
|
|
126
|
+
for await (const rawChunk of runnable.stream(input, langchainConfig)) {
|
|
127
|
+
const text = chunkToText(rawChunk);
|
|
128
|
+
if (text)
|
|
129
|
+
yield { text, done: false };
|
|
130
|
+
}
|
|
131
|
+
yield { text: '', done: true, metadata: { adapter: this.name } };
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
yield {
|
|
135
|
+
text: error instanceof Error ? error.message : 'Streaming failed',
|
|
136
|
+
done: true,
|
|
137
|
+
metadata: { error: true },
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Private helper used for fallback path
|
|
142
|
+
async *_fallbackStream(agentId, payload, context) {
|
|
143
|
+
const result = await this.executeAgent(agentId, payload, context);
|
|
144
|
+
if (!result.success) {
|
|
145
|
+
yield {
|
|
146
|
+
text: result.error?.message ?? 'Agent execution failed',
|
|
147
|
+
done: true,
|
|
148
|
+
metadata: { error: true },
|
|
149
|
+
};
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const data = result.data;
|
|
153
|
+
const text = typeof data === 'string' ? data :
|
|
154
|
+
data != null ? JSON.stringify(data) :
|
|
155
|
+
'';
|
|
156
|
+
yield { text, done: false };
|
|
157
|
+
yield { text: '', done: true };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.LangChainStreamingAdapter = LangChainStreamingAdapter;
|
|
161
|
+
//# sourceMappingURL=langchain-streaming-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langchain-streaming-adapter.js","sourceRoot":"","sources":["../../adapters/langchain-streaming-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StreamingBaseAdapter — Abstract base for all streaming-capable adapters.
|
|
3
|
+
*
|
|
4
|
+
* Extends {@link BaseAdapter} with a default `executeAgentStream()` that wraps
|
|
5
|
+
* the non-streaming `executeAgent()` result as a single `StreamingChunk`.
|
|
6
|
+
* Subclasses override `executeAgentStream()` and/or `supportsStreaming()` to
|
|
7
|
+
* provide genuine incremental streaming.
|
|
8
|
+
*
|
|
9
|
+
* @module StreamingBaseAdapter
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
import type { AgentPayload, AgentContext } from '../types/agent-adapter';
|
|
13
|
+
import type { IStreamingAdapter, StreamingChunk } from '../types/streaming-adapter';
|
|
14
|
+
import { BaseAdapter } from './base-adapter';
|
|
15
|
+
export declare abstract class StreamingBaseAdapter extends BaseAdapter implements IStreamingAdapter {
|
|
16
|
+
/**
|
|
17
|
+
* Returns `true` when the named agent has a real streaming implementation.
|
|
18
|
+
* Default: `false` (fallback single-chunk wrapper is used).
|
|
19
|
+
* Override in subclasses that register streaming agents.
|
|
20
|
+
*/
|
|
21
|
+
supportsStreaming(_agentId: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Default streaming implementation — wraps `executeAgent()` as a single chunk.
|
|
24
|
+
*
|
|
25
|
+
* Subclasses that support genuine streaming should override this method.
|
|
26
|
+
* The overriding implementation should:
|
|
27
|
+
* 1. yield partial text chunks as they arrive
|
|
28
|
+
* 2. yield a final chunk with `done: true` and `text: ''`
|
|
29
|
+
*/
|
|
30
|
+
executeAgentStream(agentId: string, payload: AgentPayload, context: AgentContext): AsyncIterable<StreamingChunk>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Utility: drain a streaming adapter into a single accumulated result.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const { output } = await collectStream(adapter.executeAgentStream('my-agent', payload, ctx));
|
|
37
|
+
*/
|
|
38
|
+
export declare function collectStream(stream: AsyncIterable<StreamingChunk>): Promise<{
|
|
39
|
+
output: string;
|
|
40
|
+
chunks: StreamingChunk[];
|
|
41
|
+
}>;
|
|
42
|
+
//# sourceMappingURL=streaming-base-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-base-adapter.d.ts","sourceRoot":"","sources":["../../adapters/streaming-base-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,8BAAsB,oBAAqB,SAAQ,WAAY,YAAW,iBAAiB;IAEzF;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;;;;OAOG;IACI,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,aAAa,CAAC,cAAc,CAAC;CAoBjC;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,GACpC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAQvD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* StreamingBaseAdapter — Abstract base for all streaming-capable adapters.
|
|
4
|
+
*
|
|
5
|
+
* Extends {@link BaseAdapter} with a default `executeAgentStream()` that wraps
|
|
6
|
+
* the non-streaming `executeAgent()` result as a single `StreamingChunk`.
|
|
7
|
+
* Subclasses override `executeAgentStream()` and/or `supportsStreaming()` to
|
|
8
|
+
* provide genuine incremental streaming.
|
|
9
|
+
*
|
|
10
|
+
* @module StreamingBaseAdapter
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.StreamingBaseAdapter = void 0;
|
|
15
|
+
exports.collectStream = collectStream;
|
|
16
|
+
const base_adapter_1 = require("./base-adapter");
|
|
17
|
+
class StreamingBaseAdapter extends base_adapter_1.BaseAdapter {
|
|
18
|
+
/**
|
|
19
|
+
* Returns `true` when the named agent has a real streaming implementation.
|
|
20
|
+
* Default: `false` (fallback single-chunk wrapper is used).
|
|
21
|
+
* Override in subclasses that register streaming agents.
|
|
22
|
+
*/
|
|
23
|
+
supportsStreaming(_agentId) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Default streaming implementation — wraps `executeAgent()` as a single chunk.
|
|
28
|
+
*
|
|
29
|
+
* Subclasses that support genuine streaming should override this method.
|
|
30
|
+
* The overriding implementation should:
|
|
31
|
+
* 1. yield partial text chunks as they arrive
|
|
32
|
+
* 2. yield a final chunk with `done: true` and `text: ''`
|
|
33
|
+
*/
|
|
34
|
+
async *executeAgentStream(agentId, payload, context) {
|
|
35
|
+
const result = await this.executeAgent(agentId, payload, context);
|
|
36
|
+
if (!result.success) {
|
|
37
|
+
// Propagate the error as a single done-chunk with error text
|
|
38
|
+
const msg = result.error?.message ?? 'Agent execution failed';
|
|
39
|
+
yield { text: msg, done: true, metadata: { error: true, code: result.error?.code } };
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Flatten data to a string for the streaming consumer
|
|
43
|
+
const data = result.data;
|
|
44
|
+
const text = typeof data === 'string' ? data :
|
|
45
|
+
data != null ? JSON.stringify(data) :
|
|
46
|
+
'';
|
|
47
|
+
yield { text, done: false, metadata: result.metadata };
|
|
48
|
+
yield { text: '', done: true, metadata: { adapter: this.name } };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.StreamingBaseAdapter = StreamingBaseAdapter;
|
|
52
|
+
/**
|
|
53
|
+
* Utility: drain a streaming adapter into a single accumulated result.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* const { output } = await collectStream(adapter.executeAgentStream('my-agent', payload, ctx));
|
|
57
|
+
*/
|
|
58
|
+
async function collectStream(stream) {
|
|
59
|
+
const chunks = [];
|
|
60
|
+
let output = '';
|
|
61
|
+
for await (const chunk of stream) {
|
|
62
|
+
chunks.push(chunk);
|
|
63
|
+
if (chunk.text)
|
|
64
|
+
output += chunk.text;
|
|
65
|
+
}
|
|
66
|
+
return { output, chunks };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=streaming-base-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-base-adapter.js","sourceRoot":"","sources":["../../adapters/streaming-base-adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAyDH,sCAUC;AA/DD,iDAA6C;AAE7C,MAAsB,oBAAqB,SAAQ,0BAAW;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,QAAgB;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,kBAAkB,CACvB,OAAe,EACf,OAAqB,EACrB,OAAqB;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,6DAA6D;YAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,wBAAwB,CAAC;YAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YACrF,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,IAAI,GACR,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,IAAI,IAAI,CAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtB,EAAE,CAAC;QAEhC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IACnE,CAAC;CACF;AA3CD,oDA2CC;AAED;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CACjC,MAAqC;IAErC,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -788,4 +788,13 @@ export { ExtendedMcpTools } from './lib/mcp-tools-extended';
|
|
|
788
788
|
export type { IBudget, ITokenManager, ExtendedMcpToolsOptions } from './lib/mcp-tools-extended';
|
|
789
789
|
export { ControlMcpTools } from './lib/mcp-tools-control';
|
|
790
790
|
export type { IConfig, IAgentStatus, ControlMcpToolsOptions } from './lib/mcp-tools-control';
|
|
791
|
+
export { StreamingBaseAdapter, collectStream } from './adapters/streaming-base-adapter';
|
|
792
|
+
export { LangChainStreamingAdapter } from './adapters/langchain-streaming-adapter';
|
|
793
|
+
export { CustomStreamingAdapter } from './adapters/custom-streaming-adapter';
|
|
794
|
+
export type { StreamingAgentHandler } from './adapters/custom-streaming-adapter';
|
|
795
|
+
export { A2AAdapter } from './adapters/a2a-adapter';
|
|
796
|
+
export type { A2AAgentCard, A2ATask, A2ATaskResponse, A2ATaskState, A2AArtifact, A2AAdapterConfig, } from './adapters/a2a-adapter';
|
|
797
|
+
export { CodexAdapter } from './adapters/codex-adapter';
|
|
798
|
+
export type { CodexMode, CodexAgentConfig, CodexChatClient, CodexCompletionClient, CodexCLIExecutor, } from './adapters/codex-adapter';
|
|
799
|
+
export type { StreamingChunk, IStreamingAdapter, StreamCollector } from './types/streaming-adapter';
|
|
791
800
|
//# sourceMappingURL=index.d.ts.map
|