veryfront 0.1.703 → 0.1.705
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/esm/deno.js +1 -1
- package/esm/src/agent/streaming/fork-runtime-step-state.d.ts +36 -0
- package/esm/src/agent/streaming/fork-runtime-step-state.d.ts.map +1 -0
- package/esm/src/agent/streaming/fork-runtime-step-state.js +240 -0
- package/esm/src/agent/streaming/fork-runtime-stream.d.ts +2 -31
- package/esm/src/agent/streaming/fork-runtime-stream.d.ts.map +1 -1
- package/esm/src/agent/streaming/fork-runtime-stream.js +4 -239
- package/esm/src/build/binary-plugin-includes.d.ts +1 -0
- package/esm/src/build/binary-plugin-includes.d.ts.map +1 -1
- package/esm/src/build/binary-plugin-includes.js +17 -1
- package/esm/src/cache/backends/api.js +1 -1
- package/esm/src/cache/backends/memory.js +1 -1
- package/esm/src/cache/backends/redis.js +1 -1
- package/esm/src/cache/{backends/batch-results.d.ts → batch-results.d.ts} +6 -6
- package/esm/src/cache/batch-results.d.ts.map +1 -0
- package/esm/src/cache/{backends/batch-results.js → batch-results.js} +6 -6
- package/esm/src/cache/request-cache-batcher.d.ts.map +1 -1
- package/esm/src/cache/request-cache-batcher.js +4 -5
- package/esm/src/cache/tokenizing-gateway.d.ts.map +1 -1
- package/esm/src/cache/tokenizing-gateway.js +11 -15
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +3 -0
- package/esm/src/tool/types.d.ts +2 -0
- package/esm/src/tool/types.d.ts.map +1 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
- package/esm/src/cache/backends/batch-results.d.ts.map +0 -1
package/esm/deno.js
CHANGED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AgentResponse, Message as AgentMessage } from "../schemas/index.js";
|
|
2
|
+
import type { ForkPart } from "./fork-runtime-stream.js";
|
|
3
|
+
type StreamedToolCallState = {
|
|
4
|
+
toolCallId: string;
|
|
5
|
+
toolName: string;
|
|
6
|
+
inputText: string;
|
|
7
|
+
input: unknown;
|
|
8
|
+
status: "pending" | "completed" | "error";
|
|
9
|
+
output?: unknown;
|
|
10
|
+
errorText?: string;
|
|
11
|
+
};
|
|
12
|
+
type StreamedMessage = {
|
|
13
|
+
role: "assistant" | "tool";
|
|
14
|
+
parts: AgentMessage["parts"];
|
|
15
|
+
};
|
|
16
|
+
export type StreamedStepState = {
|
|
17
|
+
text: string;
|
|
18
|
+
toolCalls: Map<string, StreamedToolCallState>;
|
|
19
|
+
messages: StreamedMessage[];
|
|
20
|
+
streamError?: Error;
|
|
21
|
+
};
|
|
22
|
+
export declare function createAgentRuntimeForkAbortError(abortSignal?: AbortSignal): Error;
|
|
23
|
+
/** State for create streamed step. */
|
|
24
|
+
export declare function createStreamedStepState(): StreamedStepState;
|
|
25
|
+
/** State for apply part to streamed step. */
|
|
26
|
+
export declare function applyPartToStreamedStepState(state: StreamedStepState, part: ForkPart): void;
|
|
27
|
+
/** Response payload for resolve fork step. */
|
|
28
|
+
export declare function resolveForkStepResponse(input: {
|
|
29
|
+
responsePromise: Promise<AgentResponse>;
|
|
30
|
+
responseTimeoutMs: number;
|
|
31
|
+
abortSignal?: AbortSignal;
|
|
32
|
+
currentMessages: readonly AgentMessage[];
|
|
33
|
+
streamedStepState: StreamedStepState;
|
|
34
|
+
}): Promise<AgentResponse>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=fork-runtime-step-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork-runtime-step-state.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/streaming/fork-runtime-step-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOlF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC9C,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,KAAK,CAMjF;AAED,sCAAsC;AACtC,wBAAgB,uBAAuB,IAAI,iBAAiB,CAM3D;AAyBD,6CAA6C;AAC7C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,QAsGpF;AAyGD,8CAA8C;AAC9C,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG,OAAO,CAAC,aAAa,CAAC,CAgCzB"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import * as dntShim from "../../../_dnt.shims.js";
|
|
2
|
+
import { isRecord } from "../../chat/conversation.js";
|
|
3
|
+
import { HOSTED_CHILD_STREAM_TIMEOUT_TOKEN, resolveHostedChildPromiseWithTimeout, } from "../hosted/child-stream-watchdog.js";
|
|
4
|
+
import { mergeToolInputDelta, parseToolInputObject } from "./data-stream.js";
|
|
5
|
+
import { getParsedStreamedToolInput } from "./fork-runtime-part-mapper.js";
|
|
6
|
+
export function createAgentRuntimeForkAbortError(abortSignal) {
|
|
7
|
+
if (abortSignal?.reason instanceof Error) {
|
|
8
|
+
return abortSignal.reason;
|
|
9
|
+
}
|
|
10
|
+
return new DOMException("Agent runtime fork aborted before completion.", "AbortError");
|
|
11
|
+
}
|
|
12
|
+
/** State for create streamed step. */
|
|
13
|
+
export function createStreamedStepState() {
|
|
14
|
+
return {
|
|
15
|
+
text: "",
|
|
16
|
+
toolCalls: new Map(),
|
|
17
|
+
messages: [],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function appendStreamedMessagePart(state, role, part) {
|
|
21
|
+
const lastMessage = state.messages.at(-1);
|
|
22
|
+
if (lastMessage?.role === role) {
|
|
23
|
+
lastMessage.parts.push(part);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
state.messages.push({
|
|
27
|
+
role,
|
|
28
|
+
parts: [part],
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function isFrameworkTextPart(part) {
|
|
32
|
+
return part.type === "text";
|
|
33
|
+
}
|
|
34
|
+
/** State for apply part to streamed step. */
|
|
35
|
+
export function applyPartToStreamedStepState(state, part) {
|
|
36
|
+
switch (part.type) {
|
|
37
|
+
case "tool-input-start": {
|
|
38
|
+
const existing = state.toolCalls.get(part.toolCallId);
|
|
39
|
+
state.toolCalls.set(part.toolCallId, {
|
|
40
|
+
toolCallId: part.toolCallId,
|
|
41
|
+
toolName: part.toolName,
|
|
42
|
+
inputText: existing?.inputText ?? "",
|
|
43
|
+
input: existing?.input ?? {},
|
|
44
|
+
status: existing?.status ?? "pending",
|
|
45
|
+
...(existing?.output !== undefined ? { output: existing.output } : {}),
|
|
46
|
+
...(existing?.errorText ? { errorText: existing.errorText } : {}),
|
|
47
|
+
});
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
case "text-delta": {
|
|
51
|
+
state.text += part.text;
|
|
52
|
+
const lastAssistantMessage = state.messages.at(-1);
|
|
53
|
+
const lastAssistantPart = lastAssistantMessage?.role === "assistant"
|
|
54
|
+
? lastAssistantMessage.parts.at(-1)
|
|
55
|
+
: null;
|
|
56
|
+
if (lastAssistantMessage && lastAssistantPart && isFrameworkTextPart(lastAssistantPart)) {
|
|
57
|
+
lastAssistantPart.text += part.text;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
appendStreamedMessagePart(state, "assistant", {
|
|
61
|
+
type: "text",
|
|
62
|
+
text: part.text,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case "tool-input-delta": {
|
|
68
|
+
const existing = state.toolCalls.get(part.toolCallId);
|
|
69
|
+
if (!existing) {
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
existing.inputText = mergeToolInputDelta(existing.inputText, part.delta);
|
|
73
|
+
const parsedInput = getParsedStreamedToolInput(existing.inputText);
|
|
74
|
+
if (parsedInput) {
|
|
75
|
+
existing.input = parsedInput;
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case "tool-call": {
|
|
80
|
+
const existing = state.toolCalls.get(part.toolCallId);
|
|
81
|
+
state.toolCalls.set(part.toolCallId, {
|
|
82
|
+
toolCallId: part.toolCallId,
|
|
83
|
+
toolName: part.toolName,
|
|
84
|
+
input: part.input,
|
|
85
|
+
inputText: existing?.inputText ?? "",
|
|
86
|
+
status: "pending",
|
|
87
|
+
...(existing?.output !== undefined ? { output: existing.output } : {}),
|
|
88
|
+
...(existing?.errorText ? { errorText: existing.errorText } : {}),
|
|
89
|
+
});
|
|
90
|
+
appendStreamedMessagePart(state, "assistant", {
|
|
91
|
+
type: `tool-${part.toolName}`,
|
|
92
|
+
toolCallId: part.toolCallId,
|
|
93
|
+
toolName: part.toolName,
|
|
94
|
+
args: parseToolInputObject(part.input),
|
|
95
|
+
});
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case "tool-result": {
|
|
99
|
+
const existing = state.toolCalls.get(part.toolCallId);
|
|
100
|
+
state.toolCalls.set(part.toolCallId, {
|
|
101
|
+
toolCallId: part.toolCallId,
|
|
102
|
+
toolName: part.toolName,
|
|
103
|
+
input: part.input,
|
|
104
|
+
inputText: existing?.inputText ?? "",
|
|
105
|
+
status: "completed",
|
|
106
|
+
output: part.output,
|
|
107
|
+
...(existing?.errorText ? { errorText: existing.errorText } : {}),
|
|
108
|
+
});
|
|
109
|
+
appendStreamedMessagePart(state, "tool", {
|
|
110
|
+
type: "tool-result",
|
|
111
|
+
toolCallId: part.toolCallId,
|
|
112
|
+
toolName: part.toolName,
|
|
113
|
+
result: part.output,
|
|
114
|
+
});
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case "tool-error": {
|
|
118
|
+
const existing = state.toolCalls.get(part.toolCallId);
|
|
119
|
+
state.toolCalls.set(part.toolCallId, {
|
|
120
|
+
toolCallId: part.toolCallId,
|
|
121
|
+
toolName: part.toolName,
|
|
122
|
+
input: part.input,
|
|
123
|
+
inputText: existing?.inputText ?? "",
|
|
124
|
+
status: "error",
|
|
125
|
+
...(existing?.output !== undefined ? { output: existing.output } : {}),
|
|
126
|
+
errorText: part.error.message,
|
|
127
|
+
});
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case "error": {
|
|
131
|
+
state.streamError = part.error;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
default:
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function buildFallbackAgentRuntimeMessages(baseMessages, state) {
|
|
139
|
+
const messages = baseMessages.map((message) => ({
|
|
140
|
+
...message,
|
|
141
|
+
parts: [...message.parts],
|
|
142
|
+
}));
|
|
143
|
+
if (state.messages.length > 0) {
|
|
144
|
+
messages.push(...state.messages.map((message) => ({
|
|
145
|
+
id: dntShim.crypto.randomUUID(),
|
|
146
|
+
role: message.role,
|
|
147
|
+
timestamp: Date.now(),
|
|
148
|
+
parts: structuredClone(message.parts),
|
|
149
|
+
})));
|
|
150
|
+
}
|
|
151
|
+
else if (state.text.trim().length > 0) {
|
|
152
|
+
messages.push({
|
|
153
|
+
id: dntShim.crypto.randomUUID(),
|
|
154
|
+
role: "assistant",
|
|
155
|
+
timestamp: Date.now(),
|
|
156
|
+
parts: [{ type: "text", text: state.text }],
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return messages;
|
|
160
|
+
}
|
|
161
|
+
function collectToolResultPaths(messages) {
|
|
162
|
+
const paths = new Set();
|
|
163
|
+
for (const message of messages) {
|
|
164
|
+
for (const part of message.parts) {
|
|
165
|
+
if (part.type !== "tool-result") {
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const partResult = "result" in part ? part.result : null;
|
|
169
|
+
const result = isRecord(partResult) ? partResult : null;
|
|
170
|
+
const path = typeof result?.path === "string" ? result.path : null;
|
|
171
|
+
if (path) {
|
|
172
|
+
paths.add(path);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return [...paths];
|
|
177
|
+
}
|
|
178
|
+
function buildRecoverablePriorWorkState(messages) {
|
|
179
|
+
const paths = collectToolResultPaths(messages);
|
|
180
|
+
if (paths.length === 0) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
const previewPaths = paths.slice(0, 8);
|
|
184
|
+
const suffix = paths.length > previewPaths.length
|
|
185
|
+
? ` and ${paths.length - previewPaths.length} more`
|
|
186
|
+
: "";
|
|
187
|
+
const text = `Completed child tool work. Project artifact(s): ${previewPaths.join(", ")}${suffix}.`;
|
|
188
|
+
return {
|
|
189
|
+
text,
|
|
190
|
+
toolCalls: new Map(),
|
|
191
|
+
messages: [
|
|
192
|
+
{
|
|
193
|
+
role: "assistant",
|
|
194
|
+
parts: [{ type: "text", text }],
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
function hasFallbackStepContent(state) {
|
|
200
|
+
return state.text.trim().length > 0 || state.toolCalls.size > 0;
|
|
201
|
+
}
|
|
202
|
+
function buildFallbackAgentResponse(input) {
|
|
203
|
+
return {
|
|
204
|
+
text: input.state.text,
|
|
205
|
+
messages: buildFallbackAgentRuntimeMessages(input.baseMessages, input.state),
|
|
206
|
+
toolCalls: [...input.state.toolCalls.values()].map((toolCall) => ({
|
|
207
|
+
id: toolCall.toolCallId,
|
|
208
|
+
name: toolCall.toolName,
|
|
209
|
+
args: parseToolInputObject(toolCall.input),
|
|
210
|
+
status: toolCall.status,
|
|
211
|
+
...(toolCall.status === "completed" ? { result: toolCall.output } : {}),
|
|
212
|
+
...(toolCall.status === "error" && toolCall.errorText ? { error: toolCall.errorText } : {}),
|
|
213
|
+
})),
|
|
214
|
+
metadata: {},
|
|
215
|
+
status: "completed",
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/** Response payload for resolve fork step. */
|
|
219
|
+
export async function resolveForkStepResponse(input) {
|
|
220
|
+
const resolvedResponse = await resolveHostedChildPromiseWithTimeout(input.responsePromise, input.responseTimeoutMs);
|
|
221
|
+
if (resolvedResponse !== HOSTED_CHILD_STREAM_TIMEOUT_TOKEN) {
|
|
222
|
+
return resolvedResponse;
|
|
223
|
+
}
|
|
224
|
+
if (input.abortSignal?.aborted) {
|
|
225
|
+
throw createAgentRuntimeForkAbortError(input.abortSignal);
|
|
226
|
+
}
|
|
227
|
+
if (input.streamedStepState.streamError) {
|
|
228
|
+
throw input.streamedStepState.streamError;
|
|
229
|
+
}
|
|
230
|
+
const fallbackState = hasFallbackStepContent(input.streamedStepState)
|
|
231
|
+
? input.streamedStepState
|
|
232
|
+
: buildRecoverablePriorWorkState(input.currentMessages);
|
|
233
|
+
if (!fallbackState) {
|
|
234
|
+
throw new Error("Agent runtime fork stream ended without onFinish and without recoverable output.");
|
|
235
|
+
}
|
|
236
|
+
return buildFallbackAgentResponse({
|
|
237
|
+
baseMessages: input.currentMessages,
|
|
238
|
+
state: fallbackState,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type HostToolSet, type HostToolTraceAttributes, type Tool, type TraceHostToolsOptions } from "../../tool/index.js";
|
|
2
2
|
import type { AgentResponse, Message as AgentMessage } from "../schemas/index.js";
|
|
3
3
|
export { buildRecoveredStepParts, createForkRuntimeStreamMappingState, createFrameworkStreamState, mapAgUiRuntimeEventToForkParts, mapFrameworkEventToForkParts, } from "./fork-runtime-part-mapper.js";
|
|
4
|
+
export { applyPartToStreamedStepState, createStreamedStepState, resolveForkStepResponse, } from "./fork-runtime-step-state.js";
|
|
4
5
|
export type { ForkRecoveredPartsState, ForkRuntimeStreamMappingState, FrameworkStreamState, RecoveredToolObservation, } from "./fork-runtime-part-mapper.js";
|
|
6
|
+
export type { StreamedStepState } from "./fork-runtime-step-state.js";
|
|
5
7
|
interface ForkStreamPart {
|
|
6
8
|
type: "reasoning-delta" | "text-delta";
|
|
7
9
|
text: string;
|
|
@@ -57,25 +59,6 @@ export interface ForkRuntimeStep {
|
|
|
57
59
|
}>;
|
|
58
60
|
finishReason: string | null;
|
|
59
61
|
}
|
|
60
|
-
type StreamedToolCallState = {
|
|
61
|
-
toolCallId: string;
|
|
62
|
-
toolName: string;
|
|
63
|
-
inputText: string;
|
|
64
|
-
input: unknown;
|
|
65
|
-
status: "pending" | "completed" | "error";
|
|
66
|
-
output?: unknown;
|
|
67
|
-
errorText?: string;
|
|
68
|
-
};
|
|
69
|
-
type StreamedMessage = {
|
|
70
|
-
role: "assistant" | "tool";
|
|
71
|
-
parts: AgentMessage["parts"];
|
|
72
|
-
};
|
|
73
|
-
type StreamedStepState = {
|
|
74
|
-
text: string;
|
|
75
|
-
toolCalls: Map<string, StreamedToolCallState>;
|
|
76
|
-
messages: StreamedMessage[];
|
|
77
|
-
streamError?: Error;
|
|
78
|
-
};
|
|
79
62
|
/** Public API contract for fork part. */
|
|
80
63
|
export type ForkPart = ForkStreamPart | ForkToolInputStartPart | ForkToolInputDeltaPart | ForkToolCallPart | ForkToolResultPart | ForkToolErrorPart | ForkErrorPart;
|
|
81
64
|
/** Public API contract for fork runtime stream logger. */
|
|
@@ -212,16 +195,4 @@ export declare function resolveForkRuntimeContinuationState(input: {
|
|
|
212
195
|
} | null>;
|
|
213
196
|
/** Starts agent runtime fork. */
|
|
214
197
|
export declare function startAgentRuntimeFork(input: StartAgentRuntimeForkInput): ForkRuntimeStreamResult;
|
|
215
|
-
/** State for create streamed step. */
|
|
216
|
-
export declare function createStreamedStepState(): StreamedStepState;
|
|
217
|
-
/** State for apply part to streamed step. */
|
|
218
|
-
export declare function applyPartToStreamedStepState(state: StreamedStepState, part: ForkPart): void;
|
|
219
|
-
/** Response payload for resolve fork step. */
|
|
220
|
-
export declare function resolveForkStepResponse(input: {
|
|
221
|
-
responsePromise: Promise<AgentResponse>;
|
|
222
|
-
responseTimeoutMs: number;
|
|
223
|
-
abortSignal?: AbortSignal;
|
|
224
|
-
currentMessages: readonly AgentMessage[];
|
|
225
|
-
streamedStepState: StreamedStepState;
|
|
226
|
-
}): Promise<AgentResponse>;
|
|
227
198
|
//# sourceMappingURL=fork-runtime-stream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork-runtime-stream.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/streaming/fork-runtime-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,IAAI,EAET,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"fork-runtime-stream.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/streaming/fork-runtime-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,IAAI,EAET,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAmB7B,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElF,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,0BAA0B,EAC1B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,UAAU,cAAc;IACtB,IAAI,EAAE,iBAAiB,GAAG,YAAY,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd;AAED,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC,CAAC;IACH,WAAW,EAAE,KAAK,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,yCAAyC;AACzC,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,sBAAsB,GACtB,sBAAsB,GACtB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,aAAa,CAAC;AAElB,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,KAAK,EAAE,WAAW,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;IAC/C,UAAU,EAAE,WAAW,CACnB;QACA,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACC,SAAS,CACZ,CAAC;CACH;AAED,0DAA0D;AAC1D,eAAO,MAAM,wCAAwC,OAAQ,CAAC;AAE9D,KAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG,CACpC,KAAK,EAAE,+BAA+B,KACnC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAEtE,8DAA8D;AAC9D,MAAM,MAAM,0BAA0B,GAAG,CACvC,KAAK,EAAE,4BAA4B,KAChC,OAAO,CAAC;IACX,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACzC,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,qCAAqC,CAAC;IACrD,eAAe,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,uCAAuC,CACjD,WAAW,SAAS,uBAAuB,GAAG,uBAAuB,IAEnE,IAAI,CACJ,0BAA0B,EAC1B,eAAe,GAAG,OAAO,GAAG,cAAc,CAC3C,GACC;IACA,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;CACjD,CAAC;AAEJ,iDAAiD;AACjD,wBAAgB,kCAAkC,CAChD,WAAW,SAAS,uBAAuB,GAAG,uBAAuB,EAErE,KAAK,EAAE,uCAAuC,CAAC,WAAW,CAAC,GAC1D;IACD,YAAY,EAAE,uBAAuB,CAAC;IACtC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CA8CA;AAyCD,qDAAqD;AACrD,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,GAAG;IAC3F,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;CAChD,CAAC;AAEF,mCAAmC;AACnC,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC;IAC1F,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACzC,CAAC,CA0DD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;IAC9E,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACzC,CAAC,CAcD;AAED,yEAAyE;AACzE,MAAM,MAAM,qCAAqC,GAAG,CAAC,KAAK,EAAE;IAC1D,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7C,yDAAyD;AACzD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,aAAa,GAAG,eAAe,CA2BzF;AAED,gDAAgD;AAChD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAGT;AAED,kDAAkD;AAClD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAOf;AAED,4CAA4C;AAC5C,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,eAAe,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,YAAY,EAAE,CAWjB;AAED,0CAA0C;AAC1C,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GAAG,MAAM,CAET;AAED,mDAAmD;AACnD,wBAAsB,mCAAmC,CAAC,KAAK,EAAE;IAC/D,0BAA0B,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,qCAAqC,CAAC;IACrD,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,0BAA0B,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAoB1F;AAED,iCAAiC;AACjC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,uBAAuB,CA2GhG"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as dntShim from "../../../_dnt.shims.js";
|
|
2
2
|
import { createToolsFromHostDefinitions, traceHostTools, } from "../../tool/index.js";
|
|
3
|
-
import { isRecord } from "../../chat/conversation.js";
|
|
4
3
|
import { runWithVeryfrontCloudContextAsync } from "../../provider/veryfront-cloud/context.js";
|
|
5
|
-
import {
|
|
6
|
-
import { buildRecoveredStepParts, createForkRuntimeStreamMappingState,
|
|
7
|
-
import {
|
|
4
|
+
import { streamDataStreamEvents } from "./data-stream.js";
|
|
5
|
+
import { buildRecoveredStepParts, createForkRuntimeStreamMappingState, mapAgUiRuntimeEventToForkParts, } from "./fork-runtime-part-mapper.js";
|
|
6
|
+
import { applyPartToStreamedStepState, createAgentRuntimeForkAbortError, createStreamedStepState, resolveForkStepResponse, } from "./fork-runtime-step-state.js";
|
|
8
7
|
import { getForkRuntimeAllowedToolNames, getProviderNativeToolNames, } from "../runtime/provider-native-tool-inventory.js";
|
|
9
8
|
import { AgentRuntime } from "../runtime/index.js";
|
|
10
9
|
export { buildRecoveredStepParts, createForkRuntimeStreamMappingState, createFrameworkStreamState, mapAgUiRuntimeEventToForkParts, mapFrameworkEventToForkParts, } from "./fork-runtime-part-mapper.js";
|
|
10
|
+
export { applyPartToStreamedStepState, createStreamedStepState, resolveForkStepResponse, } from "./fork-runtime-step-state.js";
|
|
11
11
|
/** Default value for fork response promise timeout ms. */
|
|
12
12
|
export const DEFAULT_FORK_RESPONSE_PROMISE_TIMEOUT_MS = 1_000;
|
|
13
13
|
/** Starts agent runtime fork with host tools. */
|
|
@@ -79,12 +79,6 @@ async function prepareForkRuntimeStep(input) {
|
|
|
79
79
|
system: input.buildInstructions(),
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
-
function createAgentRuntimeForkAbortError(abortSignal) {
|
|
83
|
-
if (abortSignal?.reason instanceof Error) {
|
|
84
|
-
return abortSignal.reason;
|
|
85
|
-
}
|
|
86
|
-
return new DOMException("Agent runtime fork aborted before completion.", "AbortError");
|
|
87
|
-
}
|
|
88
82
|
/** Run agent runtime fork step. */
|
|
89
83
|
export async function runAgentRuntimeForkStep(input) {
|
|
90
84
|
let resolveResponsePromise;
|
|
@@ -319,232 +313,3 @@ export function startAgentRuntimeFork(input) {
|
|
|
319
313
|
totalUsage: totalUsageDeferred.promise,
|
|
320
314
|
};
|
|
321
315
|
}
|
|
322
|
-
/** State for create streamed step. */
|
|
323
|
-
export function createStreamedStepState() {
|
|
324
|
-
return {
|
|
325
|
-
text: "",
|
|
326
|
-
toolCalls: new Map(),
|
|
327
|
-
messages: [],
|
|
328
|
-
};
|
|
329
|
-
}
|
|
330
|
-
function appendStreamedMessagePart(state, role, part) {
|
|
331
|
-
const lastMessage = state.messages.at(-1);
|
|
332
|
-
if (lastMessage?.role === role) {
|
|
333
|
-
lastMessage.parts.push(part);
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
state.messages.push({
|
|
337
|
-
role,
|
|
338
|
-
parts: [part],
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
function isFrameworkTextPart(part) {
|
|
342
|
-
return part.type === "text";
|
|
343
|
-
}
|
|
344
|
-
/** State for apply part to streamed step. */
|
|
345
|
-
export function applyPartToStreamedStepState(state, part) {
|
|
346
|
-
switch (part.type) {
|
|
347
|
-
case "tool-input-start": {
|
|
348
|
-
const existing = state.toolCalls.get(part.toolCallId);
|
|
349
|
-
state.toolCalls.set(part.toolCallId, {
|
|
350
|
-
toolCallId: part.toolCallId,
|
|
351
|
-
toolName: part.toolName,
|
|
352
|
-
inputText: existing?.inputText ?? "",
|
|
353
|
-
input: existing?.input ?? {},
|
|
354
|
-
status: existing?.status ?? "pending",
|
|
355
|
-
...(existing?.output !== undefined ? { output: existing.output } : {}),
|
|
356
|
-
...(existing?.errorText ? { errorText: existing.errorText } : {}),
|
|
357
|
-
});
|
|
358
|
-
break;
|
|
359
|
-
}
|
|
360
|
-
case "text-delta": {
|
|
361
|
-
state.text += part.text;
|
|
362
|
-
const lastAssistantMessage = state.messages.at(-1);
|
|
363
|
-
const lastAssistantPart = lastAssistantMessage?.role === "assistant"
|
|
364
|
-
? lastAssistantMessage.parts.at(-1)
|
|
365
|
-
: null;
|
|
366
|
-
if (lastAssistantMessage && lastAssistantPart && isFrameworkTextPart(lastAssistantPart)) {
|
|
367
|
-
lastAssistantPart.text += part.text;
|
|
368
|
-
}
|
|
369
|
-
else {
|
|
370
|
-
appendStreamedMessagePart(state, "assistant", {
|
|
371
|
-
type: "text",
|
|
372
|
-
text: part.text,
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
break;
|
|
376
|
-
}
|
|
377
|
-
case "tool-input-delta": {
|
|
378
|
-
const existing = state.toolCalls.get(part.toolCallId);
|
|
379
|
-
if (!existing) {
|
|
380
|
-
break;
|
|
381
|
-
}
|
|
382
|
-
existing.inputText = mergeToolInputDelta(existing.inputText, part.delta);
|
|
383
|
-
const parsedInput = getParsedStreamedToolInput(existing.inputText);
|
|
384
|
-
if (parsedInput) {
|
|
385
|
-
existing.input = parsedInput;
|
|
386
|
-
}
|
|
387
|
-
break;
|
|
388
|
-
}
|
|
389
|
-
case "tool-call": {
|
|
390
|
-
const existing = state.toolCalls.get(part.toolCallId);
|
|
391
|
-
state.toolCalls.set(part.toolCallId, {
|
|
392
|
-
toolCallId: part.toolCallId,
|
|
393
|
-
toolName: part.toolName,
|
|
394
|
-
input: part.input,
|
|
395
|
-
inputText: existing?.inputText ?? "",
|
|
396
|
-
status: "pending",
|
|
397
|
-
...(existing?.output !== undefined ? { output: existing.output } : {}),
|
|
398
|
-
...(existing?.errorText ? { errorText: existing.errorText } : {}),
|
|
399
|
-
});
|
|
400
|
-
appendStreamedMessagePart(state, "assistant", {
|
|
401
|
-
type: `tool-${part.toolName}`,
|
|
402
|
-
toolCallId: part.toolCallId,
|
|
403
|
-
toolName: part.toolName,
|
|
404
|
-
args: parseToolInputObject(part.input),
|
|
405
|
-
});
|
|
406
|
-
break;
|
|
407
|
-
}
|
|
408
|
-
case "tool-result": {
|
|
409
|
-
const existing = state.toolCalls.get(part.toolCallId);
|
|
410
|
-
state.toolCalls.set(part.toolCallId, {
|
|
411
|
-
toolCallId: part.toolCallId,
|
|
412
|
-
toolName: part.toolName,
|
|
413
|
-
input: part.input,
|
|
414
|
-
inputText: existing?.inputText ?? "",
|
|
415
|
-
status: "completed",
|
|
416
|
-
output: part.output,
|
|
417
|
-
...(existing?.errorText ? { errorText: existing.errorText } : {}),
|
|
418
|
-
});
|
|
419
|
-
appendStreamedMessagePart(state, "tool", {
|
|
420
|
-
type: "tool-result",
|
|
421
|
-
toolCallId: part.toolCallId,
|
|
422
|
-
toolName: part.toolName,
|
|
423
|
-
result: part.output,
|
|
424
|
-
});
|
|
425
|
-
break;
|
|
426
|
-
}
|
|
427
|
-
case "tool-error": {
|
|
428
|
-
const existing = state.toolCalls.get(part.toolCallId);
|
|
429
|
-
state.toolCalls.set(part.toolCallId, {
|
|
430
|
-
toolCallId: part.toolCallId,
|
|
431
|
-
toolName: part.toolName,
|
|
432
|
-
input: part.input,
|
|
433
|
-
inputText: existing?.inputText ?? "",
|
|
434
|
-
status: "error",
|
|
435
|
-
...(existing?.output !== undefined ? { output: existing.output } : {}),
|
|
436
|
-
errorText: part.error.message,
|
|
437
|
-
});
|
|
438
|
-
break;
|
|
439
|
-
}
|
|
440
|
-
case "error": {
|
|
441
|
-
state.streamError = part.error;
|
|
442
|
-
break;
|
|
443
|
-
}
|
|
444
|
-
default:
|
|
445
|
-
break;
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
function buildFallbackAgentRuntimeMessages(baseMessages, state) {
|
|
449
|
-
const messages = baseMessages.map((message) => ({
|
|
450
|
-
...message,
|
|
451
|
-
parts: [...message.parts],
|
|
452
|
-
}));
|
|
453
|
-
if (state.messages.length > 0) {
|
|
454
|
-
messages.push(...state.messages.map((message) => ({
|
|
455
|
-
id: dntShim.crypto.randomUUID(),
|
|
456
|
-
role: message.role,
|
|
457
|
-
timestamp: Date.now(),
|
|
458
|
-
parts: structuredClone(message.parts),
|
|
459
|
-
})));
|
|
460
|
-
}
|
|
461
|
-
else if (state.text.trim().length > 0) {
|
|
462
|
-
messages.push({
|
|
463
|
-
id: dntShim.crypto.randomUUID(),
|
|
464
|
-
role: "assistant",
|
|
465
|
-
timestamp: Date.now(),
|
|
466
|
-
parts: [{ type: "text", text: state.text }],
|
|
467
|
-
});
|
|
468
|
-
}
|
|
469
|
-
return messages;
|
|
470
|
-
}
|
|
471
|
-
function collectToolResultPaths(messages) {
|
|
472
|
-
const paths = new Set();
|
|
473
|
-
for (const message of messages) {
|
|
474
|
-
for (const part of message.parts) {
|
|
475
|
-
if (part.type !== "tool-result") {
|
|
476
|
-
continue;
|
|
477
|
-
}
|
|
478
|
-
const partResult = "result" in part ? part.result : null;
|
|
479
|
-
const result = isRecord(partResult) ? partResult : null;
|
|
480
|
-
const path = typeof result?.path === "string" ? result.path : null;
|
|
481
|
-
if (path) {
|
|
482
|
-
paths.add(path);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
return [...paths];
|
|
487
|
-
}
|
|
488
|
-
function buildRecoverablePriorWorkState(messages) {
|
|
489
|
-
const paths = collectToolResultPaths(messages);
|
|
490
|
-
if (paths.length === 0) {
|
|
491
|
-
return null;
|
|
492
|
-
}
|
|
493
|
-
const previewPaths = paths.slice(0, 8);
|
|
494
|
-
const suffix = paths.length > previewPaths.length
|
|
495
|
-
? ` and ${paths.length - previewPaths.length} more`
|
|
496
|
-
: "";
|
|
497
|
-
const text = `Completed child tool work. Project artifact(s): ${previewPaths.join(", ")}${suffix}.`;
|
|
498
|
-
return {
|
|
499
|
-
text,
|
|
500
|
-
toolCalls: new Map(),
|
|
501
|
-
messages: [
|
|
502
|
-
{
|
|
503
|
-
role: "assistant",
|
|
504
|
-
parts: [{ type: "text", text }],
|
|
505
|
-
},
|
|
506
|
-
],
|
|
507
|
-
};
|
|
508
|
-
}
|
|
509
|
-
function hasFallbackStepContent(state) {
|
|
510
|
-
return state.text.trim().length > 0 || state.toolCalls.size > 0;
|
|
511
|
-
}
|
|
512
|
-
function buildFallbackAgentResponse(input) {
|
|
513
|
-
return {
|
|
514
|
-
text: input.state.text,
|
|
515
|
-
messages: buildFallbackAgentRuntimeMessages(input.baseMessages, input.state),
|
|
516
|
-
toolCalls: [...input.state.toolCalls.values()].map((toolCall) => ({
|
|
517
|
-
id: toolCall.toolCallId,
|
|
518
|
-
name: toolCall.toolName,
|
|
519
|
-
args: parseToolInputObject(toolCall.input),
|
|
520
|
-
status: toolCall.status,
|
|
521
|
-
...(toolCall.status === "completed" ? { result: toolCall.output } : {}),
|
|
522
|
-
...(toolCall.status === "error" && toolCall.errorText ? { error: toolCall.errorText } : {}),
|
|
523
|
-
})),
|
|
524
|
-
metadata: {},
|
|
525
|
-
status: "completed",
|
|
526
|
-
};
|
|
527
|
-
}
|
|
528
|
-
/** Response payload for resolve fork step. */
|
|
529
|
-
export async function resolveForkStepResponse(input) {
|
|
530
|
-
const resolvedResponse = await resolveHostedChildPromiseWithTimeout(input.responsePromise, input.responseTimeoutMs);
|
|
531
|
-
if (resolvedResponse !== HOSTED_CHILD_STREAM_TIMEOUT_TOKEN) {
|
|
532
|
-
return resolvedResponse;
|
|
533
|
-
}
|
|
534
|
-
if (input.abortSignal?.aborted) {
|
|
535
|
-
throw createAgentRuntimeForkAbortError(input.abortSignal);
|
|
536
|
-
}
|
|
537
|
-
if (input.streamedStepState.streamError) {
|
|
538
|
-
throw input.streamedStepState.streamError;
|
|
539
|
-
}
|
|
540
|
-
const fallbackState = hasFallbackStepContent(input.streamedStepState)
|
|
541
|
-
? input.streamedStepState
|
|
542
|
-
: buildRecoverablePriorWorkState(input.currentMessages);
|
|
543
|
-
if (!fallbackState) {
|
|
544
|
-
throw new Error("Agent runtime fork stream ended without onFinish and without recoverable output.");
|
|
545
|
-
}
|
|
546
|
-
return buildFallbackAgentResponse({
|
|
547
|
-
baseMessages: input.currentMessages,
|
|
548
|
-
state: fallbackState,
|
|
549
|
-
});
|
|
550
|
-
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
declare const BINARY_TAILWIND_PLUGIN_PACKAGES: readonly ["tailwindcss-animate@1.0.7", "@tailwindcss/typography@0.5.19", "@tailwindcss/forms@0.5.11", "tailwind-scrollbar-hide@2.0.0", "daisyui@5.5.14"];
|
|
2
|
+
export declare function resolveTailwindPluginBundlePackage(packageName: string): string;
|
|
2
3
|
export declare function getTailwindPluginBundleUrl(packageName: string): string;
|
|
3
4
|
export declare function getBinaryPluginBundleIncludes(): string[];
|
|
4
5
|
export { BINARY_TAILWIND_PLUGIN_PACKAGES };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-plugin-includes.d.ts","sourceRoot":"","sources":["../../../src/src/build/binary-plugin-includes.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,+BAA+B,0JAM3B,CAAC;
|
|
1
|
+
{"version":3,"file":"binary-plugin-includes.d.ts","sourceRoot":"","sources":["../../../src/src/build/binary-plugin-includes.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,+BAA+B,0JAM3B,CAAC;AAgBX,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM9E;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,wBAAgB,6BAA6B,IAAI,MAAM,EAAE,CAExD;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC"}
|
|
@@ -5,8 +5,24 @@ const BINARY_TAILWIND_PLUGIN_PACKAGES = [
|
|
|
5
5
|
"tailwind-scrollbar-hide@2.0.0",
|
|
6
6
|
"daisyui@5.5.14",
|
|
7
7
|
];
|
|
8
|
+
function barePackageName(spec) {
|
|
9
|
+
if (spec.startsWith("@")) {
|
|
10
|
+
const versionIndex = spec.indexOf("@", 1);
|
|
11
|
+
return versionIndex === -1 ? spec : spec.slice(0, versionIndex);
|
|
12
|
+
}
|
|
13
|
+
const versionIndex = spec.indexOf("@");
|
|
14
|
+
return versionIndex === -1 ? spec : spec.slice(0, versionIndex);
|
|
15
|
+
}
|
|
16
|
+
const BINARY_TAILWIND_PLUGIN_PACKAGE_BY_NAME = new Map(BINARY_TAILWIND_PLUGIN_PACKAGES.map((pkg) => [barePackageName(pkg), pkg]));
|
|
17
|
+
export function resolveTailwindPluginBundlePackage(packageName) {
|
|
18
|
+
if (packageName.includes("@", packageName.startsWith("@") ? 1 : 0)) {
|
|
19
|
+
return packageName;
|
|
20
|
+
}
|
|
21
|
+
return BINARY_TAILWIND_PLUGIN_PACKAGE_BY_NAME.get(packageName) ?? packageName;
|
|
22
|
+
}
|
|
8
23
|
export function getTailwindPluginBundleUrl(packageName) {
|
|
9
|
-
|
|
24
|
+
const resolvedPackage = resolveTailwindPluginBundlePackage(packageName);
|
|
25
|
+
return `https://esm.sh/${resolvedPackage}?bundle&external=tailwindcss&target=denonext`;
|
|
10
26
|
}
|
|
11
27
|
export function getBinaryPluginBundleIncludes() {
|
|
12
28
|
return BINARY_TAILWIND_PLUGIN_PACKAGES.map(getTailwindPluginBundleUrl);
|
|
@@ -5,7 +5,7 @@ import { SpanNames } from "../../observability/tracing/span-names.js";
|
|
|
5
5
|
import { tryGetCacheKeyContext } from "../cache-key-builder.js";
|
|
6
6
|
import { CircuitBreakerOpen, getCircuitBreaker } from "../../utils/circuit-breaker.js";
|
|
7
7
|
import { getEnvValue } from "./helpers.js";
|
|
8
|
-
import { buildBatchResults } from "
|
|
8
|
+
import { buildBatchResults } from "../batch-results.js";
|
|
9
9
|
import { REQUEST_ERROR } from "../../errors/index.js";
|
|
10
10
|
const logger = baseLogger.component("api-cache-backend");
|
|
11
11
|
const DEFAULT_TIMEOUT_MS = 10_000;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MEMORY_CACHE_MAX_ENTRIES, MEMORY_CACHE_MAX_SIZE_BYTES, } from "../../utils/constants/cache.js";
|
|
2
|
-
import { buildBatchResults } from "
|
|
2
|
+
import { buildBatchResults } from "../batch-results.js";
|
|
3
3
|
const DEFAULT_TTL_SECONDS = 300;
|
|
4
4
|
const MAX_REGEX_CACHE_SIZE = 100;
|
|
5
5
|
export class MemoryCacheBackend {
|
|
@@ -2,7 +2,7 @@ import { logger as baseLogger } from "../../utils/index.js";
|
|
|
2
2
|
import { withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
3
3
|
import { SpanNames } from "../../observability/tracing/span-names.js";
|
|
4
4
|
import { getRedisClient, isRedisConfigured, } from "../../utils/redis-client.js";
|
|
5
|
-
import { buildBatchResults } from "
|
|
5
|
+
import { buildBatchResults } from "../batch-results.js";
|
|
6
6
|
const logger = baseLogger.component("redis-cache-backend");
|
|
7
7
|
// Re-export for use by factory
|
|
8
8
|
export { isRedisConfigured };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared batch-result assembly for cache
|
|
2
|
+
* Shared batch-result assembly for cache reads.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Cache backends and cache gateways often resolve a requested key list into a
|
|
5
|
+
* `Map<string, string | null>` where each requested key is present and missing
|
|
6
|
+
* values resolve to `null`. This helper centralizes that assembly so callers
|
|
7
|
+
* only supply the resolver.
|
|
8
8
|
*
|
|
9
|
-
* @module cache/
|
|
9
|
+
* @module cache/batch-results
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
12
|
* Build a `Map` of batch results by resolving each key in order.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-results.d.ts","sourceRoot":"","sources":["../../../src/src/cache/batch-results.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GACtC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAM5B"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared batch-result assembly for cache
|
|
2
|
+
* Shared batch-result assembly for cache reads.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Cache backends and cache gateways often resolve a requested key list into a
|
|
5
|
+
* `Map<string, string | null>` where each requested key is present and missing
|
|
6
|
+
* values resolve to `null`. This helper centralizes that assembly so callers
|
|
7
|
+
* only supply the resolver.
|
|
8
8
|
*
|
|
9
|
-
* @module cache/
|
|
9
|
+
* @module cache/batch-results
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
12
|
* Build a `Map` of batch results by resolving each key in order.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-cache-batcher.d.ts","sourceRoot":"","sources":["../../../src/src/cache/request-cache-batcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAK/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"request-cache-batcher.d.ts","sourceRoot":"","sources":["../../../src/src/cache/request-cache-batcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAK/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CAC1D;AAMD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAexE;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,SAAS,CAExE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkCxB;AAgDD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEzE;AAED,wBAAgB,oBAAoB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAK9E"}
|
|
@@ -3,6 +3,7 @@ import { AsyncLocalStorage } from "node:async_hooks";
|
|
|
3
3
|
import { ensureError } from "../errors/veryfront-error.js";
|
|
4
4
|
import { logger as baseLogger } from "../utils/index.js";
|
|
5
5
|
import { MAX_BATCH_SIZE } from "../utils/constants/limits.js";
|
|
6
|
+
import { buildBatchResults } from "./batch-results.js";
|
|
6
7
|
const logger = baseLogger.component("request-cache-batcher");
|
|
7
8
|
const asyncLocalStorage = new AsyncLocalStorage();
|
|
8
9
|
const BATCH_DELAY_MS = 1;
|
|
@@ -90,11 +91,9 @@ async function flushBatch(ctx, backend) {
|
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
async function getIndividually(backend, keys) {
|
|
93
|
-
const
|
|
94
|
-
await Promise.all(keys.map(async (key) =>
|
|
95
|
-
|
|
96
|
-
}));
|
|
97
|
-
return results;
|
|
94
|
+
const entries = new Map();
|
|
95
|
+
await Promise.all(keys.map(async (key) => entries.set(key, await backend.get(key))));
|
|
96
|
+
return buildBatchResults(keys, (key) => entries.get(key) ?? null);
|
|
98
97
|
}
|
|
99
98
|
export function setInRequestCache(key, value) {
|
|
100
99
|
asyncLocalStorage.getStore()?.cache.set(key, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizing-gateway.d.ts","sourceRoot":"","sources":["../../../src/src/cache/tokenizing-gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenizing-gateway.d.ts","sourceRoot":"","sources":["../../../src/src/cache/tokenizing-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* @module cache/tokenizing-gateway
|
|
14
14
|
*/
|
|
15
15
|
import { logger } from "../utils/index.js";
|
|
16
|
+
import { buildBatchResults } from "./batch-results.js";
|
|
16
17
|
import { assertPortableCode, detokenizeAllCachePaths, tokenizeAllVeryFrontPaths } from "./paths.js";
|
|
17
18
|
/**
|
|
18
19
|
* TokenizingCacheGateway wraps a CacheBackend and enforces tokenization
|
|
@@ -54,30 +55,25 @@ export class TokenizingCacheGateway {
|
|
|
54
55
|
* Get multiple codes from cache with automatic detokenization.
|
|
55
56
|
*/
|
|
56
57
|
async getCodeBatch(keys) {
|
|
57
|
-
const results = new Map();
|
|
58
58
|
if (keys.length === 0)
|
|
59
|
-
return
|
|
59
|
+
return new Map();
|
|
60
60
|
if (!this.backend.getBatch) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
return results;
|
|
61
|
+
const values = new Map();
|
|
62
|
+
await Promise.all(keys.map(async (key) => values.set(key, await this.getCode(key))));
|
|
63
|
+
return buildBatchResults(keys, (key) => values.get(key) ?? null);
|
|
66
64
|
}
|
|
67
65
|
const rawResults = await this.backend.getBatch(keys);
|
|
68
|
-
|
|
66
|
+
return buildBatchResults(keys, (key) => {
|
|
67
|
+
const raw = rawResults.get(key) ?? null;
|
|
69
68
|
if (!raw) {
|
|
70
|
-
|
|
71
|
-
continue;
|
|
69
|
+
return null;
|
|
72
70
|
}
|
|
73
71
|
// Only detokenize for distributed backends
|
|
74
72
|
if (!this.isDistributed()) {
|
|
75
|
-
|
|
76
|
-
continue;
|
|
73
|
+
return raw;
|
|
77
74
|
}
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
return results;
|
|
75
|
+
return detokenizeAllCachePaths(raw);
|
|
76
|
+
});
|
|
81
77
|
}
|
|
82
78
|
/**
|
|
83
79
|
* Store code in cache with automatic tokenization.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EACV,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,qBAAqB,CAAC;AAkB7B,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAkCxD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,sBAAsB,CAAC;IACvC,mBAAmB,CAAC,EAAE;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,cAAc,CAAC,EAAE,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;IACnE,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAClC;QACH,MAAM,EAAE,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;SAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,KACtB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1C,CAAC;CACH;AA0RD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EACV,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,qBAAqB,CAAC;AAkB7B,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAkCxD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,sBAAsB,CAAC;IACvC,mBAAmB,CAAC,EAAE;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,cAAc,CAAC,EAAE,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;IACnE,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAClC;QACH,MAAM,EAAE,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;SAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,KACtB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1C,CAAC;CACH;AA0RD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,QAAQ,CAAC,CAgTnB"}
|
|
@@ -273,6 +273,9 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
|
|
|
273
273
|
runtimeStream = await runtime.stream(runtimeMessages, {
|
|
274
274
|
threadId: input.threadId,
|
|
275
275
|
runId: input.runId,
|
|
276
|
+
...(deps.projectAgentSandbox?.authToken
|
|
277
|
+
? { authToken: deps.projectAgentSandbox.authToken }
|
|
278
|
+
: {}),
|
|
276
279
|
...(input.parentRunId ? { parentRunId: input.parentRunId } : {}),
|
|
277
280
|
...(input.state !== undefined ? { state: input.state } : {}),
|
|
278
281
|
context: input.context,
|
package/esm/src/tool/types.d.ts
CHANGED
|
@@ -60,6 +60,8 @@ export interface ToolExecutionContext {
|
|
|
60
60
|
toolCallId?: string;
|
|
61
61
|
/** Project identity used by integration token resolution */
|
|
62
62
|
projectId?: string;
|
|
63
|
+
/** Request-scoped Veryfront auth token for project-local platform API tools */
|
|
64
|
+
authToken?: string;
|
|
63
65
|
/** Abort signal for cooperative cancellation during long-running tool execution */
|
|
64
66
|
abortSignal?: AbortSignal;
|
|
65
67
|
/** Progress token for sending progress notifications (MCP 2025-11-25) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/tool/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;GAEG;AAEH,MAAM,WAAW,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IACrD,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;IAEzC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;IAE5C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAEvF,wBAAwB;IACxB,GAAG,CAAC,EAAE;QACJ,qBAAqB;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,6BAA6B;QAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB,mBAAmB;QACnB,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC;QAEnD,uCAAuC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oDAAoD;QACpD,WAAW,CAAC,EAAE,eAAe,CAAC;KAC/B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,yBAAyB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,sDAAsD;IACtD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qCAAqC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,KAAK,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvC;;GAEG;AAEH,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAC/C,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,2FAA2F;IAC3F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IAEpB,uFAAuF;IACvF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5B;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAE7B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAE9B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/B;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E,wBAAwB;IACxB,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/tool/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch-results.d.ts","sourceRoot":"","sources":["../../../../src/src/cache/backends/batch-results.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GACtC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAM5B"}
|