@copilotkit/runtime
Version:
<img src="https://github.com/user-attachments/assets/0a6b64d9-e193-4940-a3f6-60334ac34084" alt="banner" style="border-radius: 12px; border: 2px solid #d6d4fa;" />
90 lines (88 loc) • 3.71 kB
JavaScript
require("reflect-metadata");
const require_runtime = require('../../../../_virtual/_rolldown/runtime.cjs');
const require_runtime$1 = require('../../core/runtime.cjs');
const require_open_generative_ui_middleware = require('../../open-generative-ui-middleware.cjs');
const require_header_utils = require('../header-utils.cjs');
let _copilotkit_shared = require("@copilotkit/shared");
let _ag_ui_client = require("@ag-ui/client");
let _ag_ui_a2ui_middleware = require("@ag-ui/a2ui-middleware");
let _ag_ui_mcp_apps_middleware = require("@ag-ui/mcp-apps-middleware");
//#region src/v2/runtime/handlers/shared/agent-utils.ts
async function cloneAgentForRequest(runtime, agentId, request) {
const agents = await require_runtime$1.resolveAgents(runtime.agents, request);
if (!agents[agentId]) return new Response(JSON.stringify({
error: "Agent not found",
message: `Agent '${agentId}' does not exist`
}), {
status: 404,
headers: { "Content-Type": "application/json" }
});
return agents[agentId].clone();
}
function configureAgentForRequest(params) {
const { runtime, request, agentId } = params;
const agent = params.agent;
if (runtime.a2ui) {
const { agents: targetAgents, ...a2uiOptions } = runtime.a2ui;
if ((!targetAgents || targetAgents.includes(agentId)) && typeof agent.use === "function") agent.use(new _ag_ui_a2ui_middleware.A2UIMiddleware(a2uiOptions));
}
if (runtime.mcpApps?.servers?.length) {
const mcpServers = runtime.mcpApps.servers.filter((server) => !server.agentId || server.agentId === agentId).map((server) => {
const mcpServer = { ...server };
delete mcpServer.agentId;
return mcpServer;
});
if (mcpServers.length > 0 && typeof agent.use === "function") agent.use(new _ag_ui_mcp_apps_middleware.MCPAppsMiddleware({ mcpServers }));
}
if (runtime.openGenerativeUI) {
const config = runtime.openGenerativeUI;
const targetAgents = typeof config === "object" ? config.agents : void 0;
if ((!targetAgents || targetAgents.includes(agentId)) && typeof agent.use === "function") agent.use(new require_open_generative_ui_middleware.OpenGenerativeUIMiddleware());
}
agent.headers = {
...agent.headers,
...require_header_utils.extractForwardableHeaders(request)
};
}
async function parseRunRequest(request) {
try {
const requestBody = await request.json();
return _ag_ui_client.RunAgentInputSchema.parse(requestBody);
} catch (error) {
_copilotkit_shared.logger.error("Invalid run request body:", error);
return new Response(JSON.stringify({
error: "Invalid request body",
details: error instanceof Error ? error.message : String(error)
}), {
status: 400,
headers: { "Content-Type": "application/json" }
});
}
}
async function parseConnectRequest(request) {
try {
const requestBody = await request.json();
const input = _ag_ui_client.RunAgentInputSchema.parse(requestBody);
let lastSeenEventId = null;
if ("lastSeenEventId" in requestBody && (typeof requestBody.lastSeenEventId === "string" || requestBody.lastSeenEventId === null)) lastSeenEventId = requestBody.lastSeenEventId ?? null;
return {
input,
lastSeenEventId
};
} catch (error) {
_copilotkit_shared.logger.error("Invalid connect request body:", error);
return new Response(JSON.stringify({
error: "Invalid request body",
details: error instanceof Error ? error.message : String(error)
}), {
status: 400,
headers: { "Content-Type": "application/json" }
});
}
}
//#endregion
exports.cloneAgentForRequest = cloneAgentForRequest;
exports.configureAgentForRequest = configureAgentForRequest;
exports.parseConnectRequest = parseConnectRequest;
exports.parseRunRequest = parseRunRequest;
//# sourceMappingURL=agent-utils.cjs.map