veryfront 0.1.261 → 0.1.262
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/cli/commands/knowledge/command.d.ts.map +1 -1
- package/esm/cli/commands/knowledge/command.js +19 -26
- package/esm/deno.js +1 -1
- package/esm/src/agent/ag-ui-detached-start.d.ts +1 -4
- package/esm/src/agent/ag-ui-detached-start.d.ts.map +1 -1
- package/esm/src/agent/ag-ui-detached-start.js +4 -67
- package/esm/src/agent/ag-ui-handler.d.ts +1 -4
- package/esm/src/agent/ag-ui-handler.d.ts.map +1 -1
- package/esm/src/agent/ag-ui-handler.js +3 -61
- package/esm/src/agent/ag-ui-host-support.d.ts.map +1 -1
- package/esm/src/agent/ag-ui-host-support.js +2 -21
- package/esm/src/agent/ag-ui-request-shared.d.ts +4 -0
- package/esm/src/agent/ag-ui-request-shared.d.ts.map +1 -0
- package/esm/src/agent/ag-ui-request-shared.js +47 -0
- package/esm/src/agent/ag-ui-run-control.d.ts.map +1 -1
- package/esm/src/agent/ag-ui-run-control.js +1 -23
- package/esm/src/agent/ag-ui-runtime-handler.d.ts +1 -5
- package/esm/src/agent/ag-ui-runtime-handler.d.ts.map +1 -1
- package/esm/src/agent/ag-ui-runtime-handler.js +3 -67
- package/esm/src/agent/ag-ui-tool-shared.d.ts +15 -0
- package/esm/src/agent/ag-ui-tool-shared.d.ts.map +1 -0
- package/esm/src/agent/ag-ui-tool-shared.js +47 -0
- package/esm/src/agent/index.d.ts +2 -0
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +1 -0
- package/esm/src/agent/runtime-ag-ui-contract.d.ts.map +1 -1
- package/esm/src/agent/runtime-ag-ui-contract.js +2 -21
- package/esm/src/chat/chat-ui-message-helpers.d.ts +18 -0
- package/esm/src/chat/chat-ui-message-helpers.d.ts.map +1 -0
- package/esm/src/chat/chat-ui-message-helpers.js +84 -0
- package/esm/src/chat/index.d.ts +2 -0
- package/esm/src/chat/index.d.ts.map +1 -1
- package/esm/src/chat/index.js +1 -0
- package/esm/src/chat/protocol.d.ts +109 -0
- package/esm/src/chat/protocol.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/src/cli/commands/knowledge/command.ts +27 -32
- package/src/deno.js +1 -1
- package/src/src/agent/ag-ui-detached-start.ts +4 -92
- package/src/src/agent/ag-ui-handler.ts +3 -81
- package/src/src/agent/ag-ui-host-support.ts +5 -28
- package/src/src/agent/ag-ui-request-shared.ts +62 -0
- package/src/src/agent/ag-ui-run-control.ts +1 -27
- package/src/src/agent/ag-ui-runtime-handler.ts +3 -86
- package/src/src/agent/ag-ui-tool-shared.ts +77 -0
- package/src/src/agent/index.ts +15 -0
- package/src/src/agent/runtime-ag-ui-contract.ts +5 -28
- package/src/src/chat/chat-ui-message-helpers.ts +114 -0
- package/src/src/chat/index.ts +17 -0
- package/src/src/chat/protocol.ts +148 -0
- package/src/src/utils/version-constant.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/knowledge/command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/knowledge/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -150,6 +150,23 @@ function createFailedKnowledgeSource(input) {
|
|
|
150
150
|
async function collectLocalFiles(root, recursive) {
|
|
151
151
|
return commandHelpers.collectLocalFiles(root, recursive);
|
|
152
152
|
}
|
|
153
|
+
function classifyListedUploadsForKnowledge(uploads) {
|
|
154
|
+
const skipped = [];
|
|
155
|
+
const uploadTargets = [];
|
|
156
|
+
for (const item of uploads) {
|
|
157
|
+
if (item.type === "folder") {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
const source = formatKnowledgeUploadSource(item.path);
|
|
161
|
+
const skippedUpload = classifySourceOrSkip({ source });
|
|
162
|
+
if (skippedUpload == null) {
|
|
163
|
+
uploadTargets.push(item.path);
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
skipped.push(skippedUpload);
|
|
167
|
+
}
|
|
168
|
+
return { skipped, uploadTargets };
|
|
169
|
+
}
|
|
153
170
|
function buildSourceReference(source) {
|
|
154
171
|
return commandHelpers.buildSourceReference(source);
|
|
155
172
|
}
|
|
@@ -336,34 +353,10 @@ export async function collectKnowledgeSources(options, deps) {
|
|
|
336
353
|
limit: 100,
|
|
337
354
|
});
|
|
338
355
|
let uploads = await listUploadsForPrefix(uploadPrefix || undefined);
|
|
339
|
-
let skipped = uploads
|
|
340
|
-
if (item.type === "folder") {
|
|
341
|
-
return [];
|
|
342
|
-
}
|
|
343
|
-
const skippedUpload = classifySourceOrSkip({
|
|
344
|
-
source: formatKnowledgeUploadSource(item.path),
|
|
345
|
-
});
|
|
346
|
-
return skippedUpload == null ? [] : [skippedUpload];
|
|
347
|
-
});
|
|
348
|
-
let uploadTargets = uploads
|
|
349
|
-
.filter((item) => item.type !== "folder")
|
|
350
|
-
.map((item) => item.path)
|
|
351
|
-
.filter((uploadPath) => classifySourceOrSkip({ source: formatKnowledgeUploadSource(uploadPath) }) == null);
|
|
356
|
+
let { skipped, uploadTargets } = classifyListedUploadsForKnowledge(uploads);
|
|
352
357
|
if (!uploadTargets.length && uploadPrefix && !uploadPrefix.endsWith("/")) {
|
|
353
358
|
uploads = await listUploadsForPrefix(`${uploadPrefix}/`);
|
|
354
|
-
skipped = uploads
|
|
355
|
-
if (item.type === "folder") {
|
|
356
|
-
return [];
|
|
357
|
-
}
|
|
358
|
-
const skippedUpload = classifySourceOrSkip({
|
|
359
|
-
source: formatKnowledgeUploadSource(item.path),
|
|
360
|
-
});
|
|
361
|
-
return skippedUpload == null ? [] : [skippedUpload];
|
|
362
|
-
});
|
|
363
|
-
uploadTargets = uploads
|
|
364
|
-
.filter((item) => item.type !== "folder")
|
|
365
|
-
.map((item) => item.path)
|
|
366
|
-
.filter((uploadPath) => classifySourceOrSkip({ source: formatKnowledgeUploadSource(uploadPath) }) == null);
|
|
359
|
+
({ skipped, uploadTargets } = classifyListedUploadsForKnowledge(uploads));
|
|
367
360
|
}
|
|
368
361
|
if (!uploadTargets.length && skipped.length === 0) {
|
|
369
362
|
throw new Error(`No supported uploads found under ${displayUploadPrefix}`);
|
package/esm/deno.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { type AgUiResumeValue } from "./ag-ui-tool-shared.js";
|
|
2
3
|
import { type RunResumeSessionManager } from "./runtime/index.js";
|
|
3
4
|
import type { Agent } from "./types.js";
|
|
4
|
-
type AgUiResumeValue = {
|
|
5
|
-
result: unknown;
|
|
6
|
-
isError: boolean;
|
|
7
|
-
};
|
|
8
5
|
type AgUiContextValue = Record<string, unknown> | ((request: Request) => Record<string, unknown> | Promise<Record<string, unknown>>);
|
|
9
6
|
export declare const AgUiDetachedStartRequestSchema: z.ZodObject<{
|
|
10
7
|
messages: z.ZodArray<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ag-ui-detached-start.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-detached-start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ag-ui-detached-start.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-detached-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { INVALID_ARGUMENT } from "../errors/index.js";
|
|
3
|
-
import { SKILL_TOOL_IDS } from "../skill/types.js";
|
|
4
|
-
import { toolRegistry } from "../tool/index.js";
|
|
5
3
|
import { streamDataStreamEvents } from "./data-stream.js";
|
|
6
|
-
import { AgUiRequestSchema, normalizeAgUiMessages
|
|
4
|
+
import { AgUiRequestSchema, normalizeAgUiMessages } from "./ag-ui-host-support.js";
|
|
5
|
+
import { extractRequest } from "./ag-ui-request-shared.js";
|
|
6
|
+
import { buildMergedAgUiTools } from "./ag-ui-tool-shared.js";
|
|
7
7
|
import { AgentRuntime, RunAlreadyExistsError, } from "./runtime/index.js";
|
|
8
8
|
const AGENT_ID_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
9
9
|
const AG_UI_DETACHED_RUN_ID_SCHEMA = z.string().min(1).max(128).regex(AGENT_ID_PATTERN);
|
|
10
|
-
function isRequest(obj) {
|
|
11
|
-
return (typeof obj === "object" &&
|
|
12
|
-
obj !== null &&
|
|
13
|
-
"json" in obj &&
|
|
14
|
-
typeof obj.json === "function" &&
|
|
15
|
-
"url" in obj &&
|
|
16
|
-
typeof obj.url === "string" &&
|
|
17
|
-
"method" in obj &&
|
|
18
|
-
typeof obj.method === "string");
|
|
19
|
-
}
|
|
20
|
-
function extractRequest(requestOrCtx) {
|
|
21
|
-
if (isRequest(requestOrCtx))
|
|
22
|
-
return requestOrCtx;
|
|
23
|
-
if (typeof requestOrCtx === "object" && requestOrCtx !== null && "request" in requestOrCtx) {
|
|
24
|
-
const candidate = requestOrCtx.request;
|
|
25
|
-
if (isRequest(candidate))
|
|
26
|
-
return candidate;
|
|
27
|
-
}
|
|
28
|
-
throw INVALID_ARGUMENT.create({
|
|
29
|
-
detail: "Invalid handler argument: expected Request or APIContext",
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
10
|
function buildStreamContext(request, baseContext, threadId, runId) {
|
|
33
11
|
return {
|
|
34
12
|
...baseContext,
|
|
@@ -40,49 +18,8 @@ function buildStreamContext(request, baseContext, threadId, runId) {
|
|
|
40
18
|
},
|
|
41
19
|
};
|
|
42
20
|
}
|
|
43
|
-
function createInjectedAgUiTool(runId, tool, sessionManager) {
|
|
44
|
-
return {
|
|
45
|
-
id: tool.name,
|
|
46
|
-
type: "function",
|
|
47
|
-
description: tool.description ?? tool.name,
|
|
48
|
-
inputSchema: z.record(z.string(), z.unknown()),
|
|
49
|
-
inputSchemaJson: (tool.parameters ??
|
|
50
|
-
{ type: "object", properties: {}, additionalProperties: true }),
|
|
51
|
-
execute: async (_input, context) => {
|
|
52
|
-
const toolCallId = typeof context?.toolCallId === "string" ? context.toolCallId : null;
|
|
53
|
-
if (!toolCallId) {
|
|
54
|
-
throw new Error(`Missing toolCallId for injected tool "${tool.name}"`);
|
|
55
|
-
}
|
|
56
|
-
sessionManager.prepareForSignal(runId, toolCallId);
|
|
57
|
-
const submitted = await sessionManager.waitForSignal(runId, toolCallId);
|
|
58
|
-
if (submitted.isError) {
|
|
59
|
-
throw new Error(typeof submitted.result === "string"
|
|
60
|
-
? submitted.result
|
|
61
|
-
: JSON.stringify(submitted.result));
|
|
62
|
-
}
|
|
63
|
-
return submitted.result;
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
21
|
function buildMergedTools(agent, request, sessionManager) {
|
|
68
|
-
|
|
69
|
-
tool.name,
|
|
70
|
-
createInjectedAgUiTool(request.runId, tool, sessionManager),
|
|
71
|
-
]));
|
|
72
|
-
if (!agent.config.tools) {
|
|
73
|
-
return Object.keys(injectedTools).length > 0 ? injectedTools : undefined;
|
|
74
|
-
}
|
|
75
|
-
if (agent.config.tools === true) {
|
|
76
|
-
const merged = {};
|
|
77
|
-
for (const [toolId] of toolRegistry.getAll()) {
|
|
78
|
-
if (!agent.config.skills && SKILL_TOOL_IDS.has(toolId)) {
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
merged[toolId] = true;
|
|
82
|
-
}
|
|
83
|
-
return { ...merged, ...injectedTools };
|
|
84
|
-
}
|
|
85
|
-
return { ...agent.config.tools, ...injectedTools };
|
|
22
|
+
return buildMergedAgUiTools(agent, request.runId, request.tools, sessionManager);
|
|
86
23
|
}
|
|
87
24
|
function scheduleDetachedTask(requestOrCtx, task) {
|
|
88
25
|
if (typeof requestOrCtx === "object" &&
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import type { Agent } from "./types.js";
|
|
2
2
|
import { type RunResumeSessionManager } from "./runtime/index.js";
|
|
3
|
+
import { type AgUiResumeValue } from "./ag-ui-tool-shared.js";
|
|
3
4
|
export { type AgUiContextItem, AgUiContextItemSchema, type AgUiInjectedTool, AgUiInjectedToolSchema, type AgUiRequest, AgUiRequestSchema, } from "./ag-ui-host-support.js";
|
|
4
|
-
type AgUiResumeValue = {
|
|
5
|
-
result: unknown;
|
|
6
|
-
isError: boolean;
|
|
7
|
-
};
|
|
8
5
|
export interface AgUiHandlerOptions {
|
|
9
6
|
context?: Record<string, unknown> | ((request: Request) => Record<string, unknown> | Promise<Record<string, unknown>>);
|
|
10
7
|
sessionManager?: RunResumeSessionManager<AgUiResumeValue>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ag-ui-handler.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ag-ui-handler.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,KAAK,eAAe,EAAwB,MAAM,wBAAwB,CAAC;AAEpF,OAAO,EACL,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,WAAW,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AA8OjC,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvF,cAAc,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,KAAK,EAAE,KAAK,CAAC;CACd;AAUD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -2,40 +2,17 @@ import * as dntShim from "../../_dnt.shims.js";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { getAgent } from "./composition/index.js";
|
|
4
4
|
import { AgentRuntime, RunAlreadyExistsError, } from "./runtime/index.js";
|
|
5
|
-
import { INVALID_ARGUMENT } from "../errors/index.js";
|
|
6
|
-
import { SKILL_TOOL_IDS } from "../skill/types.js";
|
|
7
|
-
import { toolRegistry } from "../tool/index.js";
|
|
8
5
|
import { createStreamTransformState, finalizeRunEvents, formatAgUiEvent, mapRuntimeEventToAgUi, } from "../internal-agents/ag-ui-sse.js";
|
|
9
6
|
import { streamDataStreamEvents } from "./data-stream.js";
|
|
10
7
|
import { normalizeAgUiMessages, parseAgUiRequestOrError, } from "./ag-ui-host-support.js";
|
|
8
|
+
import { extractRequest } from "./ag-ui-request-shared.js";
|
|
9
|
+
import { buildMergedAgUiTools } from "./ag-ui-tool-shared.js";
|
|
11
10
|
export { AgUiContextItemSchema, AgUiInjectedToolSchema, AgUiRequestSchema, } from "./ag-ui-host-support.js";
|
|
12
11
|
const AG_UI_HEADERS = {
|
|
13
12
|
"Content-Type": "text/event-stream",
|
|
14
13
|
"Cache-Control": "no-cache",
|
|
15
14
|
Connection: "keep-alive",
|
|
16
15
|
};
|
|
17
|
-
function isRequest(obj) {
|
|
18
|
-
return (typeof obj === "object" &&
|
|
19
|
-
obj !== null &&
|
|
20
|
-
"json" in obj &&
|
|
21
|
-
typeof obj.json === "function" &&
|
|
22
|
-
"url" in obj &&
|
|
23
|
-
typeof obj.url === "string" &&
|
|
24
|
-
"method" in obj &&
|
|
25
|
-
typeof obj.method === "string");
|
|
26
|
-
}
|
|
27
|
-
function extractRequest(requestOrCtx) {
|
|
28
|
-
if (isRequest(requestOrCtx))
|
|
29
|
-
return requestOrCtx;
|
|
30
|
-
if (typeof requestOrCtx === "object" && requestOrCtx !== null && "request" in requestOrCtx) {
|
|
31
|
-
const candidate = requestOrCtx.request;
|
|
32
|
-
if (isRequest(candidate))
|
|
33
|
-
return candidate;
|
|
34
|
-
}
|
|
35
|
-
throw INVALID_ARGUMENT.create({
|
|
36
|
-
detail: "Invalid handler argument: expected Request or APIContext",
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
16
|
function generateRunId() {
|
|
40
17
|
return `run_${dntShim.crypto.randomUUID().replaceAll("-", "")}`;
|
|
41
18
|
}
|
|
@@ -155,30 +132,6 @@ async function createAgUiDirectStreamResponse(agent, request, baseContext) {
|
|
|
155
132
|
upstreamStatusText: upstream.statusText,
|
|
156
133
|
});
|
|
157
134
|
}
|
|
158
|
-
function createInjectedAgUiTool(runId, tool, sessionManager) {
|
|
159
|
-
return {
|
|
160
|
-
id: tool.name,
|
|
161
|
-
type: "function",
|
|
162
|
-
description: tool.description ?? tool.name,
|
|
163
|
-
inputSchema: z.record(z.string(), z.unknown()),
|
|
164
|
-
inputSchemaJson: (tool.parameters ??
|
|
165
|
-
{ type: "object", properties: {}, additionalProperties: true }),
|
|
166
|
-
execute: async (_input, context) => {
|
|
167
|
-
const toolCallId = typeof context?.toolCallId === "string" ? context.toolCallId : null;
|
|
168
|
-
if (!toolCallId) {
|
|
169
|
-
throw new Error(`Missing toolCallId for injected tool "${tool.name}"`);
|
|
170
|
-
}
|
|
171
|
-
sessionManager.prepareForSignal(runId, toolCallId);
|
|
172
|
-
const submitted = await sessionManager.waitForSignal(runId, toolCallId);
|
|
173
|
-
if (submitted.isError) {
|
|
174
|
-
throw new Error(typeof submitted.result === "string"
|
|
175
|
-
? submitted.result
|
|
176
|
-
: JSON.stringify(submitted.result));
|
|
177
|
-
}
|
|
178
|
-
return submitted.result;
|
|
179
|
-
},
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
135
|
async function createAgUiInjectedToolsStreamResponse(agent, request, baseContext, sessionManager) {
|
|
183
136
|
const threadId = request.threadId ?? dntShim.crypto.randomUUID();
|
|
184
137
|
const runId = request.runId ?? generateRunId();
|
|
@@ -191,20 +144,9 @@ async function createAgUiInjectedToolsStreamResponse(agent, request, baseContext
|
|
|
191
144
|
}
|
|
192
145
|
throw error;
|
|
193
146
|
}
|
|
194
|
-
const injectedTools = Object.fromEntries(request.tools.map((tool) => [tool.name, createInjectedAgUiTool(runId, tool, sessionManager)]));
|
|
195
|
-
const mergedTools = !agent.config.tools
|
|
196
|
-
? injectedTools
|
|
197
|
-
: agent.config.tools === true
|
|
198
|
-
? {
|
|
199
|
-
...Object.fromEntries([...toolRegistry.getAll()]
|
|
200
|
-
.filter(([toolId]) => agent.config.skills || !SKILL_TOOL_IDS.has(toolId))
|
|
201
|
-
.map(([toolId]) => [toolId, true])),
|
|
202
|
-
...injectedTools,
|
|
203
|
-
}
|
|
204
|
-
: { ...agent.config.tools, ...injectedTools };
|
|
205
147
|
const runtime = new AgentRuntime(agent.id, {
|
|
206
148
|
...agent.config,
|
|
207
|
-
tools:
|
|
149
|
+
tools: buildMergedAgUiTools(agent, runId, request.tools, sessionManager),
|
|
208
150
|
});
|
|
209
151
|
let upstreamBody;
|
|
210
152
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ag-ui-host-support.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-host-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ag-ui-host-support.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-host-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAa1C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAgBD,eAAO,MAAM,sBAAsB;;;;iBAOjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;2BAqBhC,CAAC;AAYH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AA0E5D,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAE7E;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,CAKjC;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE,CAUlF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAQpF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAUxF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,QAAQ,CASlF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { formatAgUiEvent } from "../internal-agents/ag-ui-sse.js";
|
|
3
|
+
import { parseAgUiJsonRequestOrError } from "./ag-ui-request-shared.js";
|
|
3
4
|
const AGENT_ID_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
4
5
|
const MAX_TOOL_PARAMETERS_BYTES = 16_384;
|
|
5
6
|
const MAX_CONTEXT_ITEM_BYTES = 16_384;
|
|
@@ -127,27 +128,7 @@ export async function parseAgUiRequest(request) {
|
|
|
127
128
|
return AgUiRequestSchema.parse(await request.json());
|
|
128
129
|
}
|
|
129
130
|
export async function parseAgUiRequestOrError(request) {
|
|
130
|
-
|
|
131
|
-
return await parseAgUiRequest(request);
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
if (error instanceof z.ZodError) {
|
|
135
|
-
return Response.json({
|
|
136
|
-
error: "Invalid AG-UI request",
|
|
137
|
-
details: error.issues.map((issue) => ({
|
|
138
|
-
path: issue.path,
|
|
139
|
-
message: issue.message,
|
|
140
|
-
})),
|
|
141
|
-
}, { status: 400 });
|
|
142
|
-
}
|
|
143
|
-
if (error instanceof SyntaxError || error instanceof TypeError) {
|
|
144
|
-
return Response.json({
|
|
145
|
-
error: "Invalid AG-UI request",
|
|
146
|
-
details: [{ path: [], message: "Malformed JSON request body" }],
|
|
147
|
-
}, { status: 400 });
|
|
148
|
-
}
|
|
149
|
-
throw error;
|
|
150
|
-
}
|
|
131
|
+
return await parseAgUiJsonRequestOrError(() => parseAgUiRequest(request), "Invalid AG-UI request");
|
|
151
132
|
}
|
|
152
133
|
export function normalizeAgUiMessages(messages) {
|
|
153
134
|
return messages.map((message) => ({
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function isRequest(value: unknown): value is Request;
|
|
2
|
+
export declare function extractRequest(requestOrCtx: unknown): Request;
|
|
3
|
+
export declare function parseAgUiJsonRequestOrError<T>(parseRequest: () => Promise<T>, errorLabel: string): Promise<T | Response>;
|
|
4
|
+
//# sourceMappingURL=ag-ui-request-shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ag-ui-request-shared.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-request-shared.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAW1D;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAW7D;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EACjD,YAAY,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CA6BvB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { INVALID_ARGUMENT } from "../errors/index.js";
|
|
3
|
+
export function isRequest(value) {
|
|
4
|
+
return (typeof value === "object" &&
|
|
5
|
+
value !== null &&
|
|
6
|
+
"json" in value &&
|
|
7
|
+
typeof value.json === "function" &&
|
|
8
|
+
"url" in value &&
|
|
9
|
+
typeof value.url === "string" &&
|
|
10
|
+
"method" in value &&
|
|
11
|
+
typeof value.method === "string");
|
|
12
|
+
}
|
|
13
|
+
export function extractRequest(requestOrCtx) {
|
|
14
|
+
if (isRequest(requestOrCtx))
|
|
15
|
+
return requestOrCtx;
|
|
16
|
+
if (typeof requestOrCtx === "object" && requestOrCtx !== null && "request" in requestOrCtx) {
|
|
17
|
+
const candidate = requestOrCtx.request;
|
|
18
|
+
if (isRequest(candidate))
|
|
19
|
+
return candidate;
|
|
20
|
+
}
|
|
21
|
+
throw INVALID_ARGUMENT.create({
|
|
22
|
+
detail: "Invalid handler argument: expected Request or APIContext",
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export async function parseAgUiJsonRequestOrError(parseRequest, errorLabel) {
|
|
26
|
+
try {
|
|
27
|
+
return await parseRequest();
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (error instanceof z.ZodError) {
|
|
31
|
+
return Response.json({
|
|
32
|
+
error: errorLabel,
|
|
33
|
+
details: error.issues.map((issue) => ({
|
|
34
|
+
path: issue.path,
|
|
35
|
+
message: issue.message,
|
|
36
|
+
})),
|
|
37
|
+
}, { status: 400 });
|
|
38
|
+
}
|
|
39
|
+
if (error instanceof SyntaxError || error instanceof TypeError) {
|
|
40
|
+
return Response.json({
|
|
41
|
+
error: errorLabel,
|
|
42
|
+
details: [{ path: [], message: "Malformed JSON request body" }],
|
|
43
|
+
}, { status: 400 });
|
|
44
|
+
}
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ag-ui-run-control.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-run-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,uBAAuB,EAGxB,MAAM,6BAA6B,CAAC;AAKrC,eAAO,MAAM,sBAAsB;;;;;2BAOjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"ag-ui-run-control.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-run-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,uBAAuB,EAGxB,MAAM,6BAA6B,CAAC;AAKrC,eAAO,MAAM,sBAAsB;;;;;2BAOjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAMF,MAAM,WAAW,4BAA4B;IAC3C,YAAY,CAAC,EACT,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,GAAG,IAAI,CAAC,GACvE,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,wBAAyB,SAAQ,4BAA4B;IAC5E,cAAc,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,4BAA4B;IACzF,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;CAC5C;AAaD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAsD9C;AAED,wBAAgB,uBAAuB,CAAC,CAAC,GAAG,OAAO,EACjD,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAgB9C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { extractRequest } from "./ag-ui-request-shared.js";
|
|
3
3
|
import { RunNotActiveError, WaitConflictError, WaitNotPendingError, } from "./runtime/resume-session.js";
|
|
4
4
|
const RESUME_PATH_REGEX = /^\/api\/ag-ui\/runs\/([^/]+)\/resume$/;
|
|
5
5
|
const CANCEL_PATH_REGEX = /^\/api\/ag-ui\/runs\/([^/]+)$/;
|
|
@@ -11,28 +11,6 @@ export const AgUiResumeSignalSchema = z.discriminatedUnion("type", [
|
|
|
11
11
|
isError: z.boolean().optional().default(false),
|
|
12
12
|
}),
|
|
13
13
|
]);
|
|
14
|
-
function isRequest(value) {
|
|
15
|
-
return (typeof value === "object" &&
|
|
16
|
-
value !== null &&
|
|
17
|
-
"json" in value &&
|
|
18
|
-
typeof value.json === "function" &&
|
|
19
|
-
"url" in value &&
|
|
20
|
-
typeof value.url === "string" &&
|
|
21
|
-
"method" in value &&
|
|
22
|
-
typeof value.method === "string");
|
|
23
|
-
}
|
|
24
|
-
function extractRequest(requestOrCtx) {
|
|
25
|
-
if (isRequest(requestOrCtx))
|
|
26
|
-
return requestOrCtx;
|
|
27
|
-
if (typeof requestOrCtx === "object" && requestOrCtx !== null && "request" in requestOrCtx) {
|
|
28
|
-
const candidate = requestOrCtx.request;
|
|
29
|
-
if (isRequest(candidate))
|
|
30
|
-
return candidate;
|
|
31
|
-
}
|
|
32
|
-
throw INVALID_ARGUMENT.create({
|
|
33
|
-
detail: "Invalid handler argument: expected Request or APIContext",
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
14
|
function getRunId(pathname, regex) {
|
|
37
15
|
return regex.exec(pathname)?.[1] ?? null;
|
|
38
16
|
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { type RunResumeSessionManager } from "./runtime/index.js";
|
|
2
2
|
import type { Agent } from "./types.js";
|
|
3
3
|
import { type AgUiRuntimeRequest } from "./runtime-ag-ui-contract.js";
|
|
4
|
-
type AgUiResumeValue
|
|
5
|
-
result: unknown;
|
|
6
|
-
isError: boolean;
|
|
7
|
-
};
|
|
4
|
+
import { type AgUiResumeValue } from "./ag-ui-tool-shared.js";
|
|
8
5
|
export interface AgUiRuntimeLifecycleContext {
|
|
9
6
|
request: AgUiRuntimeRequest;
|
|
10
7
|
toolCallId?: string;
|
|
@@ -33,5 +30,4 @@ export type AgUiRuntimeHandlerConfig = AgUiRuntimeHandlerConfigWithAgent | (AgUi
|
|
|
33
30
|
execute: AgUiRuntimeHandlerExecute;
|
|
34
31
|
});
|
|
35
32
|
export declare function createAgUiRuntimeHandler(config: AgUiRuntimeHandlerConfig): (requestOrCtx: unknown) => Promise<Response>;
|
|
36
|
-
export {};
|
|
37
33
|
//# sourceMappingURL=ag-ui-runtime-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ag-ui-runtime-handler.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-runtime-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ag-ui-runtime-handler.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-runtime-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,KAAK,eAAe,EAAwB,MAAM,wBAAwB,CAAC;AAkBpF,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAqRD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjD;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,KAAK,EAAE,8BAA8B,KAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvF,cAAc,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1E;AAED,MAAM,WAAW,iCAAkC,SAAQ,yBAAyB;IAClF,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,MAAM,wBAAwB,GAChC,iCAAiC,GACjC,CAAC,yBAAyB,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAAC;AAE5F,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAqI9C"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { INVALID_ARGUMENT } from "../errors/index.js";
|
|
3
|
-
import { SKILL_TOOL_IDS } from "../skill/types.js";
|
|
4
|
-
import { toolRegistry } from "../tool/index.js";
|
|
5
2
|
import { AgentRuntime, RunAlreadyExistsError, } from "./runtime/index.js";
|
|
6
3
|
import { parseAgUiRuntimeRequestOrError, } from "./runtime-ag-ui-contract.js";
|
|
4
|
+
import { extractRequest } from "./ag-ui-request-shared.js";
|
|
5
|
+
import { buildMergedAgUiTools } from "./ag-ui-tool-shared.js";
|
|
7
6
|
import { normalizeAgUiRuntimeMessages } from "./ag-ui-runtime-support.js";
|
|
8
7
|
import { createStreamTransformState, finalizeRunEvents, formatAgUiEvent, mapRuntimeEventToAgUi, } from "../internal-agents/ag-ui-sse.js";
|
|
9
8
|
import { streamDataStreamEvents } from "./data-stream.js";
|
|
@@ -33,31 +32,9 @@ async function invokeLifecycleCallbackAndWait(callback, context) {
|
|
|
33
32
|
return;
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
|
-
function isRequest(obj) {
|
|
37
|
-
return (typeof obj === "object" &&
|
|
38
|
-
obj !== null &&
|
|
39
|
-
"json" in obj &&
|
|
40
|
-
typeof obj.json === "function" &&
|
|
41
|
-
"url" in obj &&
|
|
42
|
-
typeof obj.url === "string" &&
|
|
43
|
-
"method" in obj &&
|
|
44
|
-
typeof obj.method === "string");
|
|
45
|
-
}
|
|
46
35
|
function isRecord(value) {
|
|
47
36
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
48
37
|
}
|
|
49
|
-
function extractRequest(requestOrCtx) {
|
|
50
|
-
if (isRequest(requestOrCtx))
|
|
51
|
-
return requestOrCtx;
|
|
52
|
-
if (typeof requestOrCtx === "object" && requestOrCtx !== null && "request" in requestOrCtx) {
|
|
53
|
-
const candidate = requestOrCtx.request;
|
|
54
|
-
if (isRequest(candidate))
|
|
55
|
-
return candidate;
|
|
56
|
-
}
|
|
57
|
-
throw INVALID_ARGUMENT.create({
|
|
58
|
-
detail: "Invalid handler argument: expected Request or APIContext",
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
38
|
function buildStreamContext(request, baseContext) {
|
|
62
39
|
return {
|
|
63
40
|
...baseContext,
|
|
@@ -179,49 +156,8 @@ async function createAgUiRuntimeDirectStreamResponse(agent, request, baseContext
|
|
|
179
156
|
onToolCallSeen: lifecycle?.onToolCallSeen,
|
|
180
157
|
});
|
|
181
158
|
}
|
|
182
|
-
function createInjectedAgUiTool(runId, tool, sessionManager) {
|
|
183
|
-
return {
|
|
184
|
-
id: tool.name,
|
|
185
|
-
type: "function",
|
|
186
|
-
description: tool.description ?? tool.name,
|
|
187
|
-
inputSchema: z.record(z.string(), z.unknown()),
|
|
188
|
-
inputSchemaJson: (tool.parameters ??
|
|
189
|
-
{ type: "object", properties: {}, additionalProperties: true }),
|
|
190
|
-
execute: async (_input, context) => {
|
|
191
|
-
const toolCallId = typeof context?.toolCallId === "string" ? context.toolCallId : null;
|
|
192
|
-
if (!toolCallId) {
|
|
193
|
-
throw new Error(`Missing toolCallId for injected tool "${tool.name}"`);
|
|
194
|
-
}
|
|
195
|
-
sessionManager.prepareForSignal(runId, toolCallId);
|
|
196
|
-
const submitted = await sessionManager.waitForSignal(runId, toolCallId);
|
|
197
|
-
if (submitted.isError) {
|
|
198
|
-
throw new Error(typeof submitted.result === "string"
|
|
199
|
-
? submitted.result
|
|
200
|
-
: JSON.stringify(submitted.result));
|
|
201
|
-
}
|
|
202
|
-
return submitted.result;
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
159
|
function buildMergedTools(agent, request, sessionManager) {
|
|
207
|
-
|
|
208
|
-
tool.name,
|
|
209
|
-
createInjectedAgUiTool(request.runId, tool, sessionManager),
|
|
210
|
-
]));
|
|
211
|
-
if (!agent.config.tools) {
|
|
212
|
-
return Object.keys(injectedTools).length > 0 ? injectedTools : undefined;
|
|
213
|
-
}
|
|
214
|
-
if (agent.config.tools === true) {
|
|
215
|
-
const merged = {};
|
|
216
|
-
for (const [toolId] of toolRegistry.getAll()) {
|
|
217
|
-
if (!agent.config.skills && SKILL_TOOL_IDS.has(toolId)) {
|
|
218
|
-
continue;
|
|
219
|
-
}
|
|
220
|
-
merged[toolId] = true;
|
|
221
|
-
}
|
|
222
|
-
return { ...merged, ...injectedTools };
|
|
223
|
-
}
|
|
224
|
-
return { ...agent.config.tools, ...injectedTools };
|
|
160
|
+
return buildMergedAgUiTools(agent, request.runId, request.tools, sessionManager);
|
|
225
161
|
}
|
|
226
162
|
async function createAgUiRuntimeInjectedToolsStreamResponse(agent, request, baseContext, sessionManager, lifecycle) {
|
|
227
163
|
try {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Tool } from "../tool/types.js";
|
|
2
|
+
import type { RunResumeSessionManager } from "./runtime/index.js";
|
|
3
|
+
import type { Agent } from "./types.js";
|
|
4
|
+
export type AgUiResumeValue = {
|
|
5
|
+
result: unknown;
|
|
6
|
+
isError: boolean;
|
|
7
|
+
};
|
|
8
|
+
export interface AgUiInjectedToolLike {
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
parameters?: unknown;
|
|
12
|
+
}
|
|
13
|
+
export declare function createInjectedAgUiTool(runId: string, tool: AgUiInjectedToolLike, sessionManager: RunResumeSessionManager<AgUiResumeValue>): Tool;
|
|
14
|
+
export declare function buildMergedAgUiTools(agent: Agent, runId: string, tools: AgUiInjectedToolLike[], sessionManager: RunResumeSessionManager<AgUiResumeValue>): Agent["config"]["tools"];
|
|
15
|
+
//# sourceMappingURL=ag-ui-tool-shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ag-ui-tool-shared.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-tool-shared.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,oBAAoB,EAC1B,cAAc,EAAE,uBAAuB,CAAC,eAAe,CAAC,GACvD,IAAI,CA0BN;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,oBAAoB,EAAE,EAC7B,cAAc,EAAE,uBAAuB,CAAC,eAAe,CAAC,GACvD,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAwB1B"}
|