@openrouter/agent 0.9.0 → 0.11.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 +267 -2
- package/THIRD_PARTY_NOTICES.md +25 -0
- package/esm/index.d.ts +4 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/inner-loop/call-model.d.ts.map +1 -1
- package/esm/inner-loop/call-model.js +26 -7
- package/esm/inner-loop/call-model.js.map +1 -1
- package/esm/lib/agent-tool.d.ts +1 -1
- package/esm/lib/agent-tool.d.ts.map +1 -1
- package/esm/lib/agent-tool.js.map +1 -1
- package/esm/lib/async-params.d.ts +23 -1
- package/esm/lib/async-params.d.ts.map +1 -1
- package/esm/lib/async-params.js +26 -1
- package/esm/lib/async-params.js.map +1 -1
- package/esm/lib/conversation-state.d.ts +1 -1
- package/esm/lib/conversation-state.d.ts.map +1 -1
- package/esm/lib/conversation-state.js +48 -13
- package/esm/lib/conversation-state.js.map +1 -1
- package/esm/lib/hooks-schemas.d.ts +3 -7
- package/esm/lib/hooks-schemas.d.ts.map +1 -1
- package/esm/lib/hooks-schemas.js.map +1 -1
- package/esm/lib/model-result.d.ts +32 -4
- package/esm/lib/model-result.d.ts.map +1 -1
- package/esm/lib/model-result.js +444 -128
- package/esm/lib/model-result.js.map +1 -1
- package/esm/lib/next-turn-params.d.ts.map +1 -1
- package/esm/lib/next-turn-params.js +3 -1
- package/esm/lib/next-turn-params.js.map +1 -1
- package/esm/lib/next-turn-params.test.js +72 -0
- package/esm/lib/next-turn-params.test.js.map +1 -1
- package/esm/lib/reusable-stream.d.ts +30 -3
- package/esm/lib/reusable-stream.d.ts.map +1 -1
- package/esm/lib/reusable-stream.js +127 -32
- package/esm/lib/reusable-stream.js.map +1 -1
- package/esm/lib/stream-transformers.d.ts +1 -1
- package/esm/lib/stream-transformers.d.ts.map +1 -1
- package/esm/lib/stream-transformers.js.map +1 -1
- package/esm/lib/tool-event-broadcaster.d.ts +18 -5
- package/esm/lib/tool-event-broadcaster.d.ts.map +1 -1
- package/esm/lib/tool-event-broadcaster.js +90 -19
- package/esm/lib/tool-event-broadcaster.js.map +1 -1
- package/esm/lib/tool-set-types.d.ts +298 -0
- package/esm/lib/tool-set-types.d.ts.map +1 -0
- package/esm/lib/tool-set-types.js +2 -0
- package/esm/lib/tool-set-types.js.map +1 -0
- package/esm/lib/tool-set.d.ts +157 -0
- package/esm/lib/tool-set.d.ts.map +1 -0
- package/esm/lib/tool-set.js +473 -0
- package/esm/lib/tool-set.js.map +1 -0
- package/esm/lib/tool-types.d.ts +203 -29
- package/esm/lib/tool-types.d.ts.map +1 -1
- package/esm/lib/tool-types.js.map +1 -1
- package/esm/lib/tool.d.ts +47 -21
- package/esm/lib/tool.d.ts.map +1 -1
- package/esm/lib/tool.js +13 -3
- package/esm/lib/tool.js.map +1 -1
- package/esm/lib/turn-context.d.ts +1 -1
- package/esm/lib/turn-context.d.ts.map +1 -1
- package/esm/lib/turn-context.js +1 -2
- package/esm/lib/turn-context.js.map +1 -1
- package/esm/mcp/auth/auth-resolver.d.ts +14 -0
- package/esm/mcp/auth/auth-resolver.d.ts.map +1 -0
- package/esm/mcp/auth/auth-resolver.js +27 -0
- package/esm/mcp/auth/auth-resolver.js.map +1 -0
- package/esm/mcp/auth/auth-types.d.ts +33 -0
- package/esm/mcp/auth/auth-types.d.ts.map +1 -0
- package/esm/mcp/auth/auth-types.js +4 -0
- package/esm/mcp/auth/auth-types.js.map +1 -0
- package/esm/mcp/build-tools.d.ts +29 -0
- package/esm/mcp/build-tools.d.ts.map +1 -0
- package/esm/mcp/build-tools.js +80 -0
- package/esm/mcp/build-tools.js.map +1 -0
- package/esm/mcp/cache/cache-store.d.ts +24 -0
- package/esm/mcp/cache/cache-store.d.ts.map +1 -0
- package/esm/mcp/cache/cache-store.js +20 -0
- package/esm/mcp/cache/cache-store.js.map +1 -0
- package/esm/mcp/cache/cache-types.d.ts +71 -0
- package/esm/mcp/cache/cache-types.d.ts.map +1 -0
- package/esm/mcp/cache/cache-types.js +49 -0
- package/esm/mcp/cache/cache-types.js.map +1 -0
- package/esm/mcp/cache/serialize.d.ts +25 -0
- package/esm/mcp/cache/serialize.d.ts.map +1 -0
- package/esm/mcp/cache/serialize.js +96 -0
- package/esm/mcp/cache/serialize.js.map +1 -0
- package/esm/mcp/close-quietly.d.ts +24 -0
- package/esm/mcp/close-quietly.d.ts.map +1 -0
- package/esm/mcp/close-quietly.js +30 -0
- package/esm/mcp/close-quietly.js.map +1 -0
- package/esm/mcp/create-mcp-tools.d.ts +13 -0
- package/esm/mcp/create-mcp-tools.d.ts.map +1 -0
- package/esm/mcp/create-mcp-tools.js +87 -0
- package/esm/mcp/create-mcp-tools.js.map +1 -0
- package/esm/mcp/elicitation.d.ts +11 -0
- package/esm/mcp/elicitation.d.ts.map +1 -0
- package/esm/mcp/elicitation.js +51 -0
- package/esm/mcp/elicitation.js.map +1 -0
- package/esm/mcp/errors.d.ts +91 -0
- package/esm/mcp/errors.d.ts.map +1 -0
- package/esm/mcp/errors.js +91 -0
- package/esm/mcp/errors.js.map +1 -0
- package/esm/mcp/handle.d.ts +66 -0
- package/esm/mcp/handle.d.ts.map +1 -0
- package/esm/mcp/handle.js +323 -0
- package/esm/mcp/handle.js.map +1 -0
- package/esm/mcp/index.d.ts +13 -0
- package/esm/mcp/index.d.ts.map +1 -0
- package/esm/mcp/index.js +11 -0
- package/esm/mcp/index.js.map +1 -0
- package/esm/mcp/mcp-connection.d.ts +150 -0
- package/esm/mcp/mcp-connection.d.ts.map +1 -0
- package/esm/mcp/mcp-connection.js +478 -0
- package/esm/mcp/mcp-connection.js.map +1 -0
- package/esm/mcp/mcp-sdk.d.ts +10 -0
- package/esm/mcp/mcp-sdk.d.ts.map +1 -0
- package/esm/mcp/mcp-sdk.js +37 -0
- package/esm/mcp/mcp-sdk.js.map +1 -0
- package/esm/mcp/rehydrate.d.ts +76 -0
- package/esm/mcp/rehydrate.d.ts.map +1 -0
- package/esm/mcp/rehydrate.js +505 -0
- package/esm/mcp/rehydrate.js.map +1 -0
- package/esm/mcp/resource-tools.d.ts +17 -0
- package/esm/mcp/resource-tools.d.ts.map +1 -0
- package/esm/mcp/resource-tools.js +155 -0
- package/esm/mcp/resource-tools.js.map +1 -0
- package/esm/mcp/result-mapper.d.ts +19 -0
- package/esm/mcp/result-mapper.d.ts.map +1 -0
- package/esm/mcp/result-mapper.js +40 -0
- package/esm/mcp/result-mapper.js.map +1 -0
- package/esm/mcp/schema/json-schema-guards.d.ts +14 -0
- package/esm/mcp/schema/json-schema-guards.d.ts.map +1 -0
- package/esm/mcp/schema/json-schema-guards.js +19 -0
- package/esm/mcp/schema/json-schema-guards.js.map +1 -0
- package/esm/mcp/schema/json-schema-to-zod.d.ts +20 -0
- package/esm/mcp/schema/json-schema-to-zod.d.ts.map +1 -0
- package/esm/mcp/schema/json-schema-to-zod.js +72 -0
- package/esm/mcp/schema/json-schema-to-zod.js.map +1 -0
- package/esm/mcp/tool-wrapper.d.ts +41 -0
- package/esm/mcp/tool-wrapper.d.ts.map +1 -0
- package/esm/mcp/tool-wrapper.js +131 -0
- package/esm/mcp/tool-wrapper.js.map +1 -0
- package/esm/mcp/transport-types.d.ts +45 -0
- package/esm/mcp/transport-types.d.ts.map +1 -0
- package/esm/mcp/transport-types.js +2 -0
- package/esm/mcp/transport-types.js.map +1 -0
- package/esm/mcp/types.d.ts +119 -0
- package/esm/mcp/types.d.ts.map +1 -0
- package/esm/mcp/types.js +2 -0
- package/esm/mcp/types.js.map +1 -0
- package/esm/mcp/version.d.ts +3 -0
- package/esm/mcp/version.d.ts.map +1 -0
- package/esm/mcp/version.js +5 -0
- package/esm/mcp/version.js.map +1 -0
- package/package.json +48 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-turn-params.d.ts","sourceRoot":"","sources":["../../src/lib/next-turn-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAUnF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,gBAAgB,GAC/B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"next-turn-params.d.ts","sourceRoot":"","sources":["../../src/lib/next-turn-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAUnF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,gBAAgB,GAC/B,qBAAqB,CAYvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,EACjC,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,cAAc,EAAE,MAAM,CAAC,gBAAgB,GACtC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CA4CzC;AA0ED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAChC,cAAc,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAC7C,MAAM,CAAC,gBAAgB,CAWzB"}
|
|
@@ -15,6 +15,7 @@ function isRecord(value) {
|
|
|
15
15
|
export function buildNextTurnParamsContext(request) {
|
|
16
16
|
return {
|
|
17
17
|
input: request.input ?? [],
|
|
18
|
+
toolChoice: request.toolChoice,
|
|
18
19
|
model: request.model ?? '',
|
|
19
20
|
models: request.models ?? [],
|
|
20
21
|
temperature: request.temperature ?? null,
|
|
@@ -79,7 +80,7 @@ async function processNextTurnParamsForCall(nextParams, params, workingContext,
|
|
|
79
80
|
if (!isValidNextTurnParamKey(paramKey)) {
|
|
80
81
|
if (process.env['NODE_ENV'] !== 'production') {
|
|
81
82
|
console.warn(`Invalid nextTurnParams key "${paramKey}" in tool "${toolName}". ` +
|
|
82
|
-
'Valid keys: input, model, models, temperature, maxOutputTokens, topP, topK, instructions');
|
|
83
|
+
'Valid keys: input, toolChoice, model, models, temperature, maxOutputTokens, topP, topK, instructions');
|
|
83
84
|
}
|
|
84
85
|
continue;
|
|
85
86
|
}
|
|
@@ -97,6 +98,7 @@ async function processNextTurnParamsForCall(nextParams, params, workingContext,
|
|
|
97
98
|
function isValidNextTurnParamKey(key) {
|
|
98
99
|
const validKeys = new Set([
|
|
99
100
|
'input',
|
|
101
|
+
'toolChoice',
|
|
100
102
|
'model',
|
|
101
103
|
'models',
|
|
102
104
|
'temperature',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-turn-params.js","sourceRoot":"","sources":["../../src/lib/next-turn-params.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"next-turn-params.js","sourceRoot":"","sources":["../../src/lib/next-turn-params.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,4 +95,76 @@ describe('applyNextTurnParamsToRequest', () => {
|
|
|
95
95
|
expect(result.instructions).toBe('');
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
|
+
/*
|
|
99
|
+
* `toolChoice` is how a tool-search tool widens the model's reach mid-run: the
|
|
100
|
+
* `tools` array stays byte-identical (preserving the provider's prompt-cache
|
|
101
|
+
* prefix) while `{ type: 'allowed_tools', tools: [...] }` grows.
|
|
102
|
+
*/
|
|
103
|
+
describe('applyNextTurnParamsToRequest with allowed_tools', () => {
|
|
104
|
+
const allowed = (names) => ({
|
|
105
|
+
type: 'allowed_tools',
|
|
106
|
+
mode: 'auto',
|
|
107
|
+
tools: names.map((name) => ({
|
|
108
|
+
type: 'function',
|
|
109
|
+
name,
|
|
110
|
+
})),
|
|
111
|
+
});
|
|
112
|
+
it('replaces toolChoice with a widened allowed_tools set', () => {
|
|
113
|
+
const request = createBaseRequest({
|
|
114
|
+
toolChoice: allowed([
|
|
115
|
+
'tool_search',
|
|
116
|
+
]),
|
|
117
|
+
});
|
|
118
|
+
const result = applyNextTurnParamsToRequest(request, {
|
|
119
|
+
toolChoice: allowed([
|
|
120
|
+
'tool_search',
|
|
121
|
+
'get_weather',
|
|
122
|
+
]),
|
|
123
|
+
});
|
|
124
|
+
expect(result.toolChoice).toEqual(allowed([
|
|
125
|
+
'tool_search',
|
|
126
|
+
'get_weather',
|
|
127
|
+
]));
|
|
128
|
+
});
|
|
129
|
+
it('leaves the tools array untouched so the prompt-cache prefix survives', () => {
|
|
130
|
+
const tools = [
|
|
131
|
+
{
|
|
132
|
+
type: 'function',
|
|
133
|
+
name: 'tool_search',
|
|
134
|
+
parameters: {},
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'function',
|
|
138
|
+
name: 'get_weather',
|
|
139
|
+
parameters: {},
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
const request = createBaseRequest({
|
|
143
|
+
tools,
|
|
144
|
+
toolChoice: allowed([
|
|
145
|
+
'tool_search',
|
|
146
|
+
]),
|
|
147
|
+
});
|
|
148
|
+
const result = applyNextTurnParamsToRequest(request, {
|
|
149
|
+
toolChoice: allowed([
|
|
150
|
+
'tool_search',
|
|
151
|
+
'get_weather',
|
|
152
|
+
]),
|
|
153
|
+
});
|
|
154
|
+
expect(result.tools).toBe(tools);
|
|
155
|
+
});
|
|
156
|
+
it('leaves toolChoice alone when no tool computed one', () => {
|
|
157
|
+
const request = createBaseRequest({
|
|
158
|
+
toolChoice: allowed([
|
|
159
|
+
'tool_search',
|
|
160
|
+
]),
|
|
161
|
+
});
|
|
162
|
+
const result = applyNextTurnParamsToRequest(request, {
|
|
163
|
+
temperature: 0.2,
|
|
164
|
+
});
|
|
165
|
+
expect(result.toolChoice).toEqual(allowed([
|
|
166
|
+
'tool_search',
|
|
167
|
+
]));
|
|
168
|
+
});
|
|
169
|
+
});
|
|
98
170
|
//# sourceMappingURL=next-turn-params.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-turn-params.test.js","sourceRoot":"","sources":["../../src/lib/next-turn-params.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"next-turn-params.test.js","sourceRoot":"","sources":["../../src/lib/next-turn-params.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,19 +5,32 @@
|
|
|
5
5
|
* Key features:
|
|
6
6
|
* - Multiple concurrent consumers with independent read positions
|
|
7
7
|
* - New consumers can attach while streaming is active
|
|
8
|
-
* -
|
|
8
|
+
* - Full replay for delayed and sequential consumers by default
|
|
9
|
+
* - Opt-in active-consumer replay compaction for bounded memory
|
|
9
10
|
* - Each consumer can read at their own pace
|
|
10
11
|
*/
|
|
12
|
+
export type StreamReplay = 'full' | 'active-consumers';
|
|
13
|
+
export interface ReusableReadableStreamOptions<T> {
|
|
14
|
+
streamReplay?: StreamReplay;
|
|
15
|
+
onValue?: (value: T) => void;
|
|
16
|
+
isTerminalValue?: (value: T) => boolean;
|
|
17
|
+
}
|
|
11
18
|
export declare class ReusableReadableStream<T> {
|
|
12
19
|
private sourceStream;
|
|
13
20
|
private buffer;
|
|
21
|
+
private bufferHead;
|
|
22
|
+
private trimOffset;
|
|
14
23
|
private consumers;
|
|
15
24
|
private nextConsumerId;
|
|
16
25
|
private sourceReader;
|
|
17
26
|
private sourceComplete;
|
|
18
27
|
private sourceError;
|
|
19
28
|
private pumpStarted;
|
|
20
|
-
|
|
29
|
+
private sourceCancelPromise;
|
|
30
|
+
private readonly streamReplay;
|
|
31
|
+
private readonly onValue;
|
|
32
|
+
private readonly isTerminalValue;
|
|
33
|
+
constructor(sourceStream: ReadableStream<T>, options?: ReusableReadableStreamOptions<T>);
|
|
21
34
|
/**
|
|
22
35
|
* True once the source stream has been fully read into the buffer.
|
|
23
36
|
* A fresh consumer created after this point replays the retained buffer
|
|
@@ -35,13 +48,27 @@ export declare class ReusableReadableStream<T> {
|
|
|
35
48
|
findLastBuffered(predicate: (item: T) => boolean): T | undefined;
|
|
36
49
|
/**
|
|
37
50
|
* Create a new consumer that can independently iterate over the stream.
|
|
38
|
-
*
|
|
51
|
+
* Full-replay consumers start at position 0. Active-consumer replay starts
|
|
52
|
+
* at the current trim watermark. Multiple attached consumers advance
|
|
53
|
+
* independently in either mode.
|
|
39
54
|
*/
|
|
40
55
|
createConsumer(): AsyncIterableIterator<T>;
|
|
56
|
+
private trimConsumed;
|
|
57
|
+
/**
|
|
58
|
+
* Drop the retained backlog once no consumer can ever read it again.
|
|
59
|
+
* Before the first consumer joins, the backlog IS the catch-up history late
|
|
60
|
+
* joiners replay — retain it. Once at least one consumer has existed and
|
|
61
|
+
* none remain, any future consumer starts at the watermark anyway, so the
|
|
62
|
+
* retained bytes would stay pinned until GC for nothing. `findLastBuffered`
|
|
63
|
+
* callers that must observe terminal events after teardown should capture
|
|
64
|
+
* them via `onValue` instead of relying on the backlog surviving.
|
|
65
|
+
*/
|
|
66
|
+
private dropUnreadBacklog;
|
|
41
67
|
/**
|
|
42
68
|
* Start pumping data from the source stream into the buffer
|
|
43
69
|
*/
|
|
44
70
|
private startPump;
|
|
71
|
+
private cancelSourceReader;
|
|
45
72
|
/**
|
|
46
73
|
* Notify all waiting consumers that new data is available
|
|
47
74
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reusable-stream.d.ts","sourceRoot":"","sources":["../../src/lib/reusable-stream.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reusable-stream.d.ts","sourceRoot":"","sources":["../../src/lib/reusable-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAEvD,MAAM,WAAW,6BAA6B,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CACzC;AAED,qBAAa,sBAAsB,CAAC,CAAC;IAiBjC,OAAO,CAAC,YAAY;IAhBtB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;gBAG5D,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,EACvC,OAAO,GAAE,6BAA6B,CAAC,CAAC,CAAM;IAOhD;;;;OAIG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS;IAUhE;;;;;OAKG;IACH,cAAc,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAiI1C,OAAO,CAAC,YAAY;IAqCpB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,SAAS;IAkDjB,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB9B"}
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A reusable readable stream that allows multiple consumers to read from the same source stream
|
|
3
|
-
* concurrently while it's actively streaming, without forcing consumers to wait for full buffering.
|
|
4
|
-
*
|
|
5
|
-
* Key features:
|
|
6
|
-
* - Multiple concurrent consumers with independent read positions
|
|
7
|
-
* - New consumers can attach while streaming is active
|
|
8
|
-
* - Efficient memory management with automatic cleanup
|
|
9
|
-
* - Each consumer can read at their own pace
|
|
10
|
-
*/
|
|
11
1
|
export class ReusableReadableStream {
|
|
12
|
-
constructor(sourceStream) {
|
|
2
|
+
constructor(sourceStream, options = {}) {
|
|
13
3
|
this.sourceStream = sourceStream;
|
|
14
4
|
this.buffer = [];
|
|
5
|
+
this.bufferHead = 0;
|
|
6
|
+
// Consumer positions are absolute. Buffer index = bufferHead + position - trimOffset.
|
|
7
|
+
this.trimOffset = 0;
|
|
15
8
|
this.consumers = new Map();
|
|
16
9
|
this.nextConsumerId = 0;
|
|
17
10
|
this.sourceReader = null;
|
|
18
11
|
this.sourceComplete = false;
|
|
19
12
|
this.sourceError = null;
|
|
20
13
|
this.pumpStarted = false;
|
|
14
|
+
this.sourceCancelPromise = null;
|
|
15
|
+
this.streamReplay = options.streamReplay ?? 'full';
|
|
16
|
+
this.onValue = options.onValue;
|
|
17
|
+
this.isTerminalValue = options.isTerminalValue;
|
|
21
18
|
}
|
|
22
19
|
/**
|
|
23
20
|
* True once the source stream has been fully read into the buffer.
|
|
@@ -36,9 +33,9 @@ export class ReusableReadableStream {
|
|
|
36
33
|
* buffer asynchronously.
|
|
37
34
|
*/
|
|
38
35
|
findLastBuffered(predicate) {
|
|
39
|
-
for (let i = this.buffer.length - 1; i >=
|
|
36
|
+
for (let i = this.buffer.length - 1; i >= this.bufferHead; i--) {
|
|
40
37
|
const item = this.buffer[i];
|
|
41
|
-
if (predicate(item)) {
|
|
38
|
+
if (item !== undefined && predicate(item)) {
|
|
42
39
|
return item;
|
|
43
40
|
}
|
|
44
41
|
}
|
|
@@ -46,12 +43,14 @@ export class ReusableReadableStream {
|
|
|
46
43
|
}
|
|
47
44
|
/**
|
|
48
45
|
* Create a new consumer that can independently iterate over the stream.
|
|
49
|
-
*
|
|
46
|
+
* Full-replay consumers start at position 0. Active-consumer replay starts
|
|
47
|
+
* at the current trim watermark. Multiple attached consumers advance
|
|
48
|
+
* independently in either mode.
|
|
50
49
|
*/
|
|
51
50
|
createConsumer() {
|
|
52
51
|
const consumerId = this.nextConsumerId++;
|
|
53
52
|
const state = {
|
|
54
|
-
position:
|
|
53
|
+
position: this.trimOffset,
|
|
55
54
|
waitingPromise: null,
|
|
56
55
|
cancelled: false,
|
|
57
56
|
};
|
|
@@ -65,23 +64,20 @@ export class ReusableReadableStream {
|
|
|
65
64
|
return {
|
|
66
65
|
async next() {
|
|
67
66
|
const consumer = self.consumers.get(consumerId);
|
|
68
|
-
if (!consumer) {
|
|
67
|
+
if (!consumer || consumer.cancelled) {
|
|
69
68
|
return {
|
|
70
69
|
done: true,
|
|
71
70
|
value: undefined,
|
|
72
71
|
};
|
|
73
72
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// If we have buffered data at this position, return it
|
|
81
|
-
if (consumer.position < self.buffer.length) {
|
|
82
|
-
const value = self.buffer[consumer.position];
|
|
73
|
+
const bufferIndex = self.bufferHead + consumer.position - self.trimOffset;
|
|
74
|
+
if (bufferIndex < self.buffer.length) {
|
|
75
|
+
const value = self.buffer[bufferIndex];
|
|
76
|
+
if (value === undefined) {
|
|
77
|
+
throw new Error('ReusableReadableStream buffer invariant violated: consumed slot was cleared');
|
|
78
|
+
}
|
|
83
79
|
consumer.position++;
|
|
84
|
-
|
|
80
|
+
self.trimConsumed();
|
|
85
81
|
return {
|
|
86
82
|
done: false,
|
|
87
83
|
value,
|
|
@@ -110,7 +106,9 @@ export class ReusableReadableStream {
|
|
|
110
106
|
// Immediately check if we should resolve after setting up the promise
|
|
111
107
|
// This handles the case where data arrived or source completed
|
|
112
108
|
// between our initial checks and promise creation
|
|
113
|
-
if (self.sourceComplete ||
|
|
109
|
+
if (self.sourceComplete ||
|
|
110
|
+
self.sourceError ||
|
|
111
|
+
self.bufferHead + consumer.position - self.trimOffset < self.buffer.length) {
|
|
114
112
|
resolve();
|
|
115
113
|
}
|
|
116
114
|
});
|
|
@@ -124,7 +122,15 @@ export class ReusableReadableStream {
|
|
|
124
122
|
const consumer = self.consumers.get(consumerId);
|
|
125
123
|
if (consumer) {
|
|
126
124
|
consumer.cancelled = true;
|
|
125
|
+
// Wake a pending next() so it does not hang forever on a consumer
|
|
126
|
+
// that has just been removed; the re-run next() observes the
|
|
127
|
+
// removal and reports done.
|
|
128
|
+
if (consumer.waitingPromise) {
|
|
129
|
+
consumer.waitingPromise.resolve();
|
|
130
|
+
consumer.waitingPromise = null;
|
|
131
|
+
}
|
|
127
132
|
self.consumers.delete(consumerId);
|
|
133
|
+
self.trimConsumed();
|
|
128
134
|
}
|
|
129
135
|
return {
|
|
130
136
|
done: true,
|
|
@@ -135,7 +141,14 @@ export class ReusableReadableStream {
|
|
|
135
141
|
const consumer = self.consumers.get(consumerId);
|
|
136
142
|
if (consumer) {
|
|
137
143
|
consumer.cancelled = true;
|
|
144
|
+
// Reject a pending next() with the same error so it does not hang
|
|
145
|
+
// on a consumer that has just been removed.
|
|
146
|
+
if (consumer.waitingPromise) {
|
|
147
|
+
consumer.waitingPromise.reject(e instanceof Error ? e : new Error(String(e)));
|
|
148
|
+
consumer.waitingPromise = null;
|
|
149
|
+
}
|
|
138
150
|
self.consumers.delete(consumerId);
|
|
151
|
+
self.trimConsumed();
|
|
139
152
|
}
|
|
140
153
|
throw e;
|
|
141
154
|
},
|
|
@@ -144,6 +157,59 @@ export class ReusableReadableStream {
|
|
|
144
157
|
},
|
|
145
158
|
};
|
|
146
159
|
}
|
|
160
|
+
trimConsumed() {
|
|
161
|
+
if (this.streamReplay === 'full') {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if (this.consumers.size === 0) {
|
|
165
|
+
this.dropUnreadBacklog();
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
let min = Number.POSITIVE_INFINITY;
|
|
169
|
+
for (const consumer of this.consumers.values()) {
|
|
170
|
+
if (consumer.position < min) {
|
|
171
|
+
min = consumer.position;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const nextHead = this.bufferHead + min - this.trimOffset;
|
|
175
|
+
if (nextHead <= this.bufferHead) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
this.trimOffset = min;
|
|
179
|
+
if (nextHead === this.buffer.length) {
|
|
180
|
+
this.buffer = [];
|
|
181
|
+
this.bufferHead = 0;
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
this.buffer.fill(undefined, this.bufferHead, nextHead);
|
|
185
|
+
if (nextHead >= BUFFER_COMPACTION_MIN_HEAD && nextHead * 2 >= this.buffer.length) {
|
|
186
|
+
this.buffer = this.buffer.slice(nextHead);
|
|
187
|
+
this.bufferHead = 0;
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
this.bufferHead = nextHead;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Drop the retained backlog once no consumer can ever read it again.
|
|
194
|
+
* Before the first consumer joins, the backlog IS the catch-up history late
|
|
195
|
+
* joiners replay — retain it. Once at least one consumer has existed and
|
|
196
|
+
* none remain, any future consumer starts at the watermark anyway, so the
|
|
197
|
+
* retained bytes would stay pinned until GC for nothing. `findLastBuffered`
|
|
198
|
+
* callers that must observe terminal events after teardown should capture
|
|
199
|
+
* them via `onValue` instead of relying on the backlog surviving.
|
|
200
|
+
*/
|
|
201
|
+
dropUnreadBacklog() {
|
|
202
|
+
if (this.nextConsumerId === 0) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const dropped = this.buffer.length - this.bufferHead;
|
|
206
|
+
if (dropped === 0) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
this.trimOffset += dropped;
|
|
210
|
+
this.buffer = [];
|
|
211
|
+
this.bufferHead = 0;
|
|
212
|
+
}
|
|
147
213
|
/**
|
|
148
214
|
* Start pumping data from the source stream into the buffer
|
|
149
215
|
*/
|
|
@@ -153,11 +219,12 @@ export class ReusableReadableStream {
|
|
|
153
219
|
}
|
|
154
220
|
this.pumpStarted = true;
|
|
155
221
|
this.sourceReader = this.sourceStream.getReader();
|
|
222
|
+
const sourceReader = this.sourceReader;
|
|
156
223
|
// biome-ignore lint: IIFE used for fire-and-forget stream pump
|
|
157
224
|
void (async () => {
|
|
158
225
|
try {
|
|
159
226
|
while (true) {
|
|
160
|
-
const result = await
|
|
227
|
+
const result = await sourceReader.read();
|
|
161
228
|
if (result.done) {
|
|
162
229
|
this.sourceComplete = true;
|
|
163
230
|
this.notifyAllConsumers();
|
|
@@ -165,8 +232,20 @@ export class ReusableReadableStream {
|
|
|
165
232
|
}
|
|
166
233
|
// Add to buffer
|
|
167
234
|
this.buffer.push(result.value);
|
|
235
|
+
this.onValue?.(result.value);
|
|
168
236
|
// Notify waiting consumers
|
|
169
237
|
this.notifyAllConsumers();
|
|
238
|
+
if (this.isTerminalValue?.(result.value)) {
|
|
239
|
+
this.sourceComplete = true;
|
|
240
|
+
this.notifyAllConsumers();
|
|
241
|
+
try {
|
|
242
|
+
await this.cancelSourceReader(sourceReader);
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
// The terminal event is authoritative, cancellation is cleanup only.
|
|
246
|
+
}
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
170
249
|
}
|
|
171
250
|
}
|
|
172
251
|
catch (error) {
|
|
@@ -174,12 +253,19 @@ export class ReusableReadableStream {
|
|
|
174
253
|
this.notifyAllConsumers();
|
|
175
254
|
}
|
|
176
255
|
finally {
|
|
177
|
-
|
|
178
|
-
|
|
256
|
+
sourceReader.releaseLock();
|
|
257
|
+
if (this.sourceReader === sourceReader) {
|
|
258
|
+
this.sourceReader = null;
|
|
179
259
|
}
|
|
180
260
|
}
|
|
181
261
|
})();
|
|
182
262
|
}
|
|
263
|
+
cancelSourceReader(sourceReader) {
|
|
264
|
+
if (!this.sourceCancelPromise) {
|
|
265
|
+
this.sourceCancelPromise = sourceReader.cancel();
|
|
266
|
+
}
|
|
267
|
+
return this.sourceCancelPromise;
|
|
268
|
+
}
|
|
183
269
|
/**
|
|
184
270
|
* Notify all waiting consumers that new data is available
|
|
185
271
|
*/
|
|
@@ -208,11 +294,20 @@ export class ReusableReadableStream {
|
|
|
208
294
|
}
|
|
209
295
|
}
|
|
210
296
|
this.consumers.clear();
|
|
297
|
+
// Cancellation is terminal: every consumer is gone, so nobody can read
|
|
298
|
+
// the buffered backlog anymore. Drop it instead of pinning it until GC.
|
|
299
|
+
this.dropUnreadBacklog();
|
|
211
300
|
// Cancel the source stream
|
|
212
301
|
if (this.sourceReader) {
|
|
213
|
-
await this.sourceReader
|
|
214
|
-
this.sourceReader.releaseLock();
|
|
302
|
+
await this.cancelSourceReader(this.sourceReader);
|
|
215
303
|
}
|
|
304
|
+
/*
|
|
305
|
+
* The pump may have landed one in-flight chunk between the synchronous
|
|
306
|
+
* section above and reader cancellation — sweep once more so the buffer
|
|
307
|
+
* is empty regardless of microtask interleaving.
|
|
308
|
+
*/
|
|
309
|
+
this.dropUnreadBacklog();
|
|
216
310
|
}
|
|
217
311
|
}
|
|
312
|
+
const BUFFER_COMPACTION_MIN_HEAD = 1024;
|
|
218
313
|
//# sourceMappingURL=reusable-stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reusable-stream.js","sourceRoot":"","sources":["../../src/lib/reusable-stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reusable-stream.js","sourceRoot":"","sources":["../../src/lib/reusable-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ type InferServerToolOutputsUnion<TTools extends readonly Tool[]> = InferServerTo
|
|
|
81
81
|
* `true extends (distributed-check)` so distribution over a union yields
|
|
82
82
|
* `true` when any member matches (not `boolean`).
|
|
83
83
|
*/
|
|
84
|
-
type HasClientTool<TTools extends readonly Tool[]> =
|
|
84
|
+
type HasClientTool<TTools extends readonly Tool[]> = Extract<TTools[number], ClientTool> extends never ? false : true;
|
|
85
85
|
/**
|
|
86
86
|
* Widest possible streamable output — every item type the API can emit
|
|
87
87
|
* plus `function_call_output` that we construct for client tool results.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-transformers.d.ts","sourceRoot":"","sources":["../../src/lib/stream-transformers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAEV,aAAa,EAGb,kBAAkB,EACnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAwBnE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEpF;;GAEG;AACH,wBAAuB,iBAAiB,CACtC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,GAClD,qBAAqB,CAAC,MAAM,CAAC,CAU/B;AAED;;GAEG;AACH,wBAAuB,sBAAsB,CAC3C,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,GAClD,qBAAqB,CAAC,MAAM,CAAC,CAU/B;AAED;;GAEG;AACH,wBAAuB,iBAAiB,CACtC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,GAClD,qBAAqB,CAAC,MAAM,CAAC,CAU/B;AA8ED;;;GAGG;AACH,wBAAuB,2BAA2B,CAChD,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,GAClD,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAsB7C;AAED;;;GAGG;AACH,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,CAC/C,MAAM,CAAC,WAAW,EAClB;IACE,IAAI,EAAE,CAAC,CAAC;CACT,CACF,CAAC;AAEF;;;;;;GAMG;AACH,KAAK,0BAA0B,GAAG,OAAO,CACvC,MAAM,CAAC,WAAW,EAChB;IACE,IAAI,EAAE,SAAS,CAAC;CACjB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;CACvB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;CACzB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;CAC/B,CACJ,CAAC;AAEF;;;;;;GAMG;AACH,KAAK,sBAAsB,GAAG;IAC5B,kBAAkB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACxD,6BAA6B,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACnE,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAChD,qBAAqB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAK3D,uBAAuB,EACnB,gBAAgB,CAAC,iBAAiB,CAAC,GACnC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAC9C,WAAW,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAClD,gBAAgB,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAC5D,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;CAIhE,CAAC;AAEF;;;;;GAKG;AACH,KAAK,qBAAqB,CAAC,CAAC,IAC1B,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GACzB,CAAC,SAAS,MAAM,sBAAsB,GACpC,sBAAsB,CAAC,CAAC,CAAC,GACzB,0BAA0B,GAC5B,KAAK,CAAC;AAEZ;;;;GAIG;AACH,KAAK,2BAA2B,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,IAAI,qBAAqB,CACtF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CACpC,CAAC;AAEF;;;;GAIG;AACH,KAAK,aAAa,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"stream-transformers.d.ts","sourceRoot":"","sources":["../../src/lib/stream-transformers.ts"],"names":[],"mappings":"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"}
|