veryfront 0.1.139 → 0.1.140
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/runtime/ai-stream-handler.d.ts.map +1 -1
- package/esm/src/agent/runtime/ai-stream-handler.js +59 -0
- 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/src/deno.js +1 -1
- package/src/src/agent/runtime/ai-stream-handler.ts +79 -0
- package/src/src/utils/version-constant.ts +1 -1
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/ai-stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/ai-stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAUpD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;CACZ;AA6HD,wBAAgB,iBAAiB,IAAI,aAAa,CAQjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EACxC,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,iBAAiB,EAC7B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,CAsNf"}
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
import { sendSSE } from "./sse-utils.js";
|
|
11
11
|
import { isDynamicTool } from "./tool-helpers.js";
|
|
12
12
|
import { serverLogger } from "../../utils/index.js";
|
|
13
|
+
import { isAnyDebugEnabled } from "../../utils/constants/env.js";
|
|
13
14
|
import { setActiveSpanAttributes, withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
15
|
+
import { getHostEnv } from "../../platform/compat/process.js";
|
|
14
16
|
const logger = serverLogger.component("agent");
|
|
15
17
|
function isRecord(value) {
|
|
16
18
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -63,6 +65,45 @@ function stringifyToolError(output) {
|
|
|
63
65
|
return String(output);
|
|
64
66
|
}
|
|
65
67
|
}
|
|
68
|
+
function summarizeDebugValue(value) {
|
|
69
|
+
if (value instanceof Error) {
|
|
70
|
+
return {
|
|
71
|
+
name: value.name,
|
|
72
|
+
message: value.message,
|
|
73
|
+
stack: value.stack,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
if (typeof value === "string") {
|
|
77
|
+
return value.length > 500 ? `${value.slice(0, 500)}…` : value;
|
|
78
|
+
}
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
81
|
+
function logProviderToolPart(partType, part) {
|
|
82
|
+
if (!isAnyDebugEnabled({ get: getHostEnv })) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (part.providerExecuted !== true) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (part.toolName !== "web_search" && part.toolName !== "web_fetch") {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
logger.debug("Provider tool stream part observed", {
|
|
92
|
+
partType,
|
|
93
|
+
toolCallId: part.toolCallId,
|
|
94
|
+
toolName: part.toolName,
|
|
95
|
+
providerExecuted: part.providerExecuted,
|
|
96
|
+
dynamic: part.dynamic,
|
|
97
|
+
preliminary: part.preliminary,
|
|
98
|
+
isError: part.isError,
|
|
99
|
+
outputType: typeof part.output,
|
|
100
|
+
errorType: typeof part.error,
|
|
101
|
+
inputType: typeof part.input,
|
|
102
|
+
output: summarizeDebugValue(part.output),
|
|
103
|
+
error: summarizeDebugValue(part.error),
|
|
104
|
+
input: summarizeDebugValue(part.input),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
66
107
|
export function createStreamState() {
|
|
67
108
|
return {
|
|
68
109
|
accumulatedText: "",
|
|
@@ -158,6 +199,16 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
158
199
|
}
|
|
159
200
|
case "tool-result": {
|
|
160
201
|
const isError = "isError" in part && part.isError === true;
|
|
202
|
+
logProviderToolPart("tool-result", {
|
|
203
|
+
toolCallId: part.toolCallId,
|
|
204
|
+
toolName: part.toolName,
|
|
205
|
+
providerExecuted: "providerExecuted" in part ? part.providerExecuted : undefined,
|
|
206
|
+
dynamic: "dynamic" in part ? part.dynamic : undefined,
|
|
207
|
+
output: part.output,
|
|
208
|
+
input: "input" in part ? part.input : undefined,
|
|
209
|
+
preliminary: "preliminary" in part ? part.preliminary : undefined,
|
|
210
|
+
isError,
|
|
211
|
+
});
|
|
161
212
|
if (isError) {
|
|
162
213
|
state.toolResults.push({
|
|
163
214
|
toolCallId: part.toolCallId,
|
|
@@ -206,6 +257,14 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
206
257
|
break;
|
|
207
258
|
}
|
|
208
259
|
case "tool-error": {
|
|
260
|
+
logProviderToolPart("tool-error", {
|
|
261
|
+
toolCallId: part.toolCallId,
|
|
262
|
+
toolName: part.toolName,
|
|
263
|
+
providerExecuted: "providerExecuted" in part ? part.providerExecuted : undefined,
|
|
264
|
+
dynamic: "dynamic" in part ? part.dynamic : undefined,
|
|
265
|
+
error: part.error,
|
|
266
|
+
input: "input" in part ? part.input : undefined,
|
|
267
|
+
});
|
|
209
268
|
state.toolResults.push({
|
|
210
269
|
toolCallId: part.toolCallId,
|
|
211
270
|
toolName: part.toolName,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.140";
|
|
2
2
|
//# sourceMappingURL=version-constant.d.ts.map
|
package/package.json
CHANGED
package/src/deno.js
CHANGED
|
@@ -12,7 +12,9 @@ import type { StreamTextResult, ToolSet } from "ai";
|
|
|
12
12
|
import { sendSSE } from "./sse-utils.js";
|
|
13
13
|
import { isDynamicTool } from "./tool-helpers.js";
|
|
14
14
|
import { serverLogger } from "../../utils/index.js";
|
|
15
|
+
import { isAnyDebugEnabled } from "../../utils/constants/env.js";
|
|
15
16
|
import { setActiveSpanAttributes, withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
17
|
+
import { getHostEnv } from "../../platform/compat/process.js";
|
|
16
18
|
|
|
17
19
|
const logger = serverLogger.component("agent");
|
|
18
20
|
|
|
@@ -115,6 +117,65 @@ function stringifyToolError(output: unknown): string {
|
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
119
|
|
|
120
|
+
function summarizeDebugValue(value: unknown): unknown {
|
|
121
|
+
if (value instanceof Error) {
|
|
122
|
+
return {
|
|
123
|
+
name: value.name,
|
|
124
|
+
message: value.message,
|
|
125
|
+
stack: value.stack,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (typeof value === "string") {
|
|
130
|
+
return value.length > 500 ? `${value.slice(0, 500)}…` : value;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return value;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function logProviderToolPart(
|
|
137
|
+
partType: "tool-result" | "tool-error",
|
|
138
|
+
part: {
|
|
139
|
+
toolCallId: string;
|
|
140
|
+
toolName: string;
|
|
141
|
+
providerExecuted?: boolean;
|
|
142
|
+
dynamic?: boolean;
|
|
143
|
+
output?: unknown;
|
|
144
|
+
error?: unknown;
|
|
145
|
+
input?: unknown;
|
|
146
|
+
preliminary?: boolean;
|
|
147
|
+
isError?: boolean;
|
|
148
|
+
},
|
|
149
|
+
): void {
|
|
150
|
+
if (!isAnyDebugEnabled({ get: getHostEnv })) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (part.providerExecuted !== true) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (part.toolName !== "web_search" && part.toolName !== "web_fetch") {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
logger.debug("Provider tool stream part observed", {
|
|
163
|
+
partType,
|
|
164
|
+
toolCallId: part.toolCallId,
|
|
165
|
+
toolName: part.toolName,
|
|
166
|
+
providerExecuted: part.providerExecuted,
|
|
167
|
+
dynamic: part.dynamic,
|
|
168
|
+
preliminary: part.preliminary,
|
|
169
|
+
isError: part.isError,
|
|
170
|
+
outputType: typeof part.output,
|
|
171
|
+
errorType: typeof part.error,
|
|
172
|
+
inputType: typeof part.input,
|
|
173
|
+
output: summarizeDebugValue(part.output),
|
|
174
|
+
error: summarizeDebugValue(part.error),
|
|
175
|
+
input: summarizeDebugValue(part.input),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
118
179
|
export function createStreamState(): AIStreamState {
|
|
119
180
|
return {
|
|
120
181
|
accumulatedText: "",
|
|
@@ -228,6 +289,16 @@ export function processStream(
|
|
|
228
289
|
|
|
229
290
|
case "tool-result": {
|
|
230
291
|
const isError = "isError" in part && part.isError === true;
|
|
292
|
+
logProviderToolPart("tool-result", {
|
|
293
|
+
toolCallId: part.toolCallId,
|
|
294
|
+
toolName: part.toolName,
|
|
295
|
+
providerExecuted: "providerExecuted" in part ? part.providerExecuted : undefined,
|
|
296
|
+
dynamic: "dynamic" in part ? part.dynamic : undefined,
|
|
297
|
+
output: part.output,
|
|
298
|
+
input: "input" in part ? part.input : undefined,
|
|
299
|
+
preliminary: "preliminary" in part ? part.preliminary : undefined,
|
|
300
|
+
isError,
|
|
301
|
+
});
|
|
231
302
|
if (isError) {
|
|
232
303
|
state.toolResults.push({
|
|
233
304
|
toolCallId: part.toolCallId,
|
|
@@ -278,6 +349,14 @@ export function processStream(
|
|
|
278
349
|
}
|
|
279
350
|
|
|
280
351
|
case "tool-error": {
|
|
352
|
+
logProviderToolPart("tool-error", {
|
|
353
|
+
toolCallId: part.toolCallId,
|
|
354
|
+
toolName: part.toolName,
|
|
355
|
+
providerExecuted: "providerExecuted" in part ? part.providerExecuted : undefined,
|
|
356
|
+
dynamic: "dynamic" in part ? part.dynamic : undefined,
|
|
357
|
+
error: part.error,
|
|
358
|
+
input: "input" in part ? part.input : undefined,
|
|
359
|
+
});
|
|
281
360
|
state.toolResults.push({
|
|
282
361
|
toolCallId: part.toolCallId,
|
|
283
362
|
toolName: part.toolName,
|