@nexface/agent 0.1.1-alpha.1 → 0.1.1-alpha.10

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.
Files changed (41) hide show
  1. package/dist/agent.d.ts +4 -8
  2. package/dist/agent.js +696 -319
  3. package/dist/agent.js.map +1 -1
  4. package/dist/browser-prompt.d.ts +1 -1
  5. package/dist/browser-prompt.generated.d.ts +1 -1
  6. package/dist/browser-prompt.generated.js +2 -2
  7. package/dist/errors.d.ts +2 -2
  8. package/dist/errors.js +1 -1
  9. package/dist/errors.js.map +1 -1
  10. package/dist/history-compaction.d.ts +22 -0
  11. package/dist/history-compaction.js +181 -0
  12. package/dist/history-compaction.js.map +1 -0
  13. package/dist/index.d.ts +2 -3
  14. package/dist/index.js +0 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/model/binding.d.ts +4 -0
  17. package/dist/model/binding.js.map +1 -1
  18. package/dist/models/{42.js → 39.js} +236 -42
  19. package/dist/models/851.js +10 -0
  20. package/dist/models/_chunks/{anthropic-messages~1-a838a7c1.js → anthropic-messages~1-d35e3e7d.js} +1 -1
  21. package/dist/models/_chunks/{google-generative-ai~1-5ceee40d.js → google-generative-ai~1-2ba71457.js} +1 -1
  22. package/dist/models/_chunks/{openai-completions~1-396a5c3a.js → openai-completions~1-b340f0e0.js} +1 -1
  23. package/dist/models/_chunks/{openai-responses~1-2b3e0291.js → openai-responses~1-b53c65c2.js} +1 -1
  24. package/dist/models/anthropic-messages.d.ts +1 -1
  25. package/dist/models/anthropic-messages.js +3 -3
  26. package/dist/models/google-generative-ai.d.ts +1 -1
  27. package/dist/models/google-generative-ai.js +3 -3
  28. package/dist/models/openai-completions.js +6 -3
  29. package/dist/models/openai-responses.js +6 -3
  30. package/dist/request.d.ts +95 -0
  31. package/dist/request.js +238 -0
  32. package/dist/request.js.map +1 -0
  33. package/dist/tool-bridge.js +11 -73
  34. package/dist/tool-bridge.js.map +1 -1
  35. package/dist/tool-result.d.ts +1 -0
  36. package/dist/tool-result.js +12 -0
  37. package/dist/tool-result.js.map +1 -0
  38. package/dist/types.d.ts +26 -42
  39. package/dist/types.js.map +1 -1
  40. package/package.json +12 -8
  41. package/dist/models/663.js +0 -5
@@ -1,8 +1,7 @@
1
- import { lazyApi, AgentModelError, createProtocolModelConfig } from "./42.js";
2
- import { flattenModelCatalog } from "./663.js";
1
+ import { lazyApi, AgentModelError, flattenModelCatalog, createProtocolModelConfig } from "./39.js";
3
2
 
4
3
 
5
- const googleGenerativeAIApi = () => lazyApi(() => import("./_chunks/google-generative-ai~1-5ceee40d.js").then(m => m.google_generative_ai_namespaceObject));
4
+ const googleGenerativeAIApi = () => lazyApi(() => import("./_chunks/google-generative-ai~1-2ba71457.js").then(m => m.google_generative_ai_namespaceObject));
6
5
  //# sourceMappingURL=google-generative-ai.lazy.js.map
7
6
  var google_namespaceObject = /*#__PURE__*/JSON.parse('{"google-generative-ai":{"deep-research-max-preview-04-2026":{"id":"deep-research-max-preview-04-2026","name":"Deep Research Max Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"deep-research-preview-04-2026":{"id":"deep-research-preview-04-2026","name":"Deep Research Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.0-flash":{"id":"gemini-2.0-flash","name":"Gemini 2.0 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":false,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":8192},"gemini-2.0-flash-lite":{"id":"gemini-2.0-flash-lite","name":"Gemini 2.0 Flash-Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":false,"input":["text","image"],"cost":{"input":0.075,"output":0.3,"cacheRead":0,"cacheWrite":0},"contextWindow":1048576,"maxTokens":8192},"gemini-2.5-computer-use-preview-10-2025":{"id":"gemini-2.5-computer-use-preview-10-2025","name":"Gemini 2.5 Computer Use Preview 10-2025","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3-pro-preview":{"id":"gemini-3-pro-preview","name":"Gemini 3 Pro Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-image":{"id":"gemini-3.1-flash-lite-image","name":"Nano Banana 2 Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":30,"cacheRead":0,"cacheWrite":0},"contextWindow":65536,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-live-preview":{"id":"gemini-3.1-flash-live-preview","name":"Gemini 3.1 Flash Live Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":7.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-robotics-er-1.6-preview":{"id":"gemini-robotics-er-1.6-preview","name":"Gemini Robotics-ER 1.6 Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemma-4-26b-a4b-it":{"id":"gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}},"gemma-4-31b-it":{"id":"gemma-4-31b-it","name":"Gemma 4 31B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}}}}')
8
7
  // This file is auto-generated by scripts/generate-models.ts
@@ -25,6 +24,7 @@ function createModelConfig(config) {
25
24
  defaultBaseURL: "https://generativelanguage.googleapis.com/v1beta",
26
25
  stream: googleGenerativeAIApi(),
27
26
  supportsCustomFetch: false,
27
+ preserveCatalogCompat: true,
28
28
  resolveCatalogModel: (model)=>Object.values(GOOGLE_MODELS).find(({ id })=>id === model)
29
29
  }, config);
30
30
  }
@@ -1,15 +1,18 @@
1
- import { lazyApi, createProtocolModelConfig } from "./42.js";
1
+ import { lazyApi, createProtocolModelConfig } from "./39.js";
2
+ import { OPENAI_MODELS } from "./851.js";
2
3
 
3
4
 
4
- const openAICompletionsApi = () => lazyApi(() => import("./_chunks/openai-completions~1-396a5c3a.js"));
5
+ const openAICompletionsApi = () => lazyApi(() => import("./_chunks/openai-completions~1-b340f0e0.js"));
5
6
  //# sourceMappingURL=openai-completions.lazy.js.map
6
7
 
7
8
 
9
+
8
10
  function createModelConfig(config) {
9
11
  return createProtocolModelConfig({
10
12
  provider: "openai-compatible",
11
13
  api: "openai-completions",
12
- stream: openAICompletionsApi()
14
+ stream: openAICompletionsApi(),
15
+ resolveCatalogModel: (model)=>Object.values(OPENAI_MODELS).find(({ id })=>id === model)
13
16
  }, config);
14
17
  }
15
18
 
@@ -1,15 +1,18 @@
1
- import { lazyApi, createProtocolModelConfig } from "./42.js";
1
+ import { lazyApi, createProtocolModelConfig } from "./39.js";
2
+ import { OPENAI_MODELS } from "./851.js";
2
3
 
3
4
 
4
- const openAIResponsesApi = () => lazyApi(() => import("./_chunks/openai-responses~1-2b3e0291.js").then(m => m.openai_responses_namespaceObject));
5
+ const openAIResponsesApi = () => lazyApi(() => import("./_chunks/openai-responses~1-b53c65c2.js").then(m => m.openai_responses_namespaceObject));
5
6
  //# sourceMappingURL=openai-responses.lazy.js.map
6
7
 
7
8
 
9
+
8
10
  function createModelConfig(config) {
9
11
  return createProtocolModelConfig({
10
12
  provider: "openai-compatible",
11
13
  api: "openai-responses",
12
- stream: openAIResponsesApi()
14
+ stream: openAIResponsesApi(),
15
+ resolveCatalogModel: (model)=>Object.values(OPENAI_MODELS).find(({ id })=>id === model)
13
16
  }, config);
14
17
  }
15
18
 
@@ -0,0 +1,95 @@
1
+ import { type Message, type RunAgentInput } from "@ag-ui/core";
2
+ export type { Message, RunAgentInput } from "@ag-ui/core";
3
+ import type { AgentContextEntry, AgentToolDefinition } from "@nexface/tools";
4
+ import type { AgentMessage, AgentModelToolCall, AgentRun, AgentRunInput } from "./types.js";
5
+ import type { HistorySummary } from "./history-compaction.js";
6
+ export interface AgentRequestState {
7
+ readonly nexface: RequestContinuation;
8
+ }
9
+ export type AgentResumeEntry = NonNullable<AgentRunInput["resume"]>[0] | {
10
+ readonly interruptId: string;
11
+ readonly status: "resolved";
12
+ readonly payload: {
13
+ readonly toolResultMessageId: string;
14
+ readonly confirmed?: boolean;
15
+ };
16
+ };
17
+ export interface BrowserToolResult {
18
+ readonly toolCallId: string;
19
+ readonly result?: unknown;
20
+ readonly error?: {
21
+ readonly code: string;
22
+ readonly message: string;
23
+ };
24
+ readonly confirmed?: boolean;
25
+ }
26
+ export interface InternalRequestInput {
27
+ readonly messages: readonly AgentMessage[];
28
+ readonly newMessages: readonly AgentMessage[];
29
+ readonly tools: readonly AgentToolDefinition<any, any>[];
30
+ readonly contexts: readonly AgentContextEntry[];
31
+ readonly continuation?: RequestContinuation;
32
+ readonly resume?: AgentResumeEntry;
33
+ readonly toolResult?: BrowserToolResult;
34
+ readonly receipts: readonly Message[];
35
+ }
36
+ export interface RequestContinuation {
37
+ version: 2;
38
+ threadId: string;
39
+ timeline: Array<{
40
+ messageId: string;
41
+ } | {
42
+ internal: AgentMessage;
43
+ }>;
44
+ model: {
45
+ provider: string;
46
+ model: string;
47
+ };
48
+ loadedSkills: string[];
49
+ browserSkillLoaded: boolean;
50
+ contextRevision: number;
51
+ lastContextSerialized?: string;
52
+ replay?: unknown;
53
+ summary?: HistorySummary;
54
+ compactionAttemptBeforeMessageId?: string;
55
+ pending?: {
56
+ kind: "client-tool-execution";
57
+ interruptId: string;
58
+ calls: AgentModelToolCall[];
59
+ definition: AgentToolDefinition<any, any>;
60
+ step: number;
61
+ recoverableFailures: number;
62
+ unresolvedToolFailures: string[];
63
+ browserSkillAvailable: boolean;
64
+ loadBrowserSkill: boolean;
65
+ };
66
+ }
67
+ export declare const approvalResponseSchema: {
68
+ type: string;
69
+ properties: {
70
+ approved: {
71
+ type: string;
72
+ };
73
+ };
74
+ required: string[];
75
+ additionalProperties: boolean;
76
+ };
77
+ export declare const toolResultResponseSchema: {
78
+ type: string;
79
+ properties: {
80
+ toolResultMessageId: {
81
+ type: string;
82
+ };
83
+ confirmed: {
84
+ type: string;
85
+ };
86
+ };
87
+ required: string[];
88
+ additionalProperties: boolean;
89
+ };
90
+ export declare function parseResume(value: unknown, allowMetadata?: boolean): AgentResumeEntry;
91
+ export declare function convertMessages(values: readonly Message[]): AgentMessage[];
92
+ export declare function decodeRequest(value: RunAgentInput): InternalRequestInput;
93
+ export declare function toProtocolMessages(messages: AgentMessage[]): Message[];
94
+ export declare function runResponse(run: AgentRun): Response;
95
+ export declare function mergeProtocolMessages(messages: Message[], previous: Message[]): Message[];
@@ -0,0 +1,238 @@
1
+ import { MessageSchema } from "@ag-ui/core";
2
+ import { getToolResultError } from "./tool-result.js";
3
+ export const approvalResponseSchema = {
4
+ type: "object", properties: { approved: { type: "boolean" } }, required: ["approved"], additionalProperties: false,
5
+ };
6
+ export const toolResultResponseSchema = {
7
+ type: "object", properties: { toolResultMessageId: { type: "string" }, confirmed: { type: "boolean" } }, required: ["toolResultMessageId"], additionalProperties: false,
8
+ };
9
+ export function parseResume(value, allowMetadata = false) {
10
+ if (!value || typeof value !== "object" || Array.isArray(value))
11
+ throw new Error("Invalid resume entry.");
12
+ const entry = value;
13
+ const allowed = ["interruptId", "status", "payload", ...(allowMetadata ? ["metadata"] : [])];
14
+ if (Object.keys(entry).some((key) => !allowed.includes(key)) || typeof entry.interruptId !== "string" || !entry.interruptId)
15
+ throw new Error("Invalid resume entry.");
16
+ if (entry.status === "cancelled") {
17
+ if (entry.payload !== undefined)
18
+ throw new Error("A cancelled response cannot carry a payload.");
19
+ return { interruptId: entry.interruptId, status: "cancelled" };
20
+ }
21
+ const payload = entry.payload;
22
+ if (entry.status !== "resolved" || !payload || typeof payload !== "object" || Array.isArray(payload))
23
+ throw new Error("A resolved response requires a payload.");
24
+ if (typeof payload.approved === "boolean" && Object.keys(payload).every((key) => key === "approved")) {
25
+ return { interruptId: entry.interruptId, status: "resolved", payload: { approved: payload.approved } };
26
+ }
27
+ if (typeof payload.toolResultMessageId === "string" && payload.toolResultMessageId && (payload.confirmed === undefined || typeof payload.confirmed === "boolean") && Object.keys(payload).every((key) => key === "toolResultMessageId" || key === "confirmed")) {
28
+ return { interruptId: entry.interruptId, status: "resolved", payload: { toolResultMessageId: payload.toolResultMessageId, ...(payload.confirmed === undefined ? {} : { confirmed: payload.confirmed }) } };
29
+ }
30
+ throw new Error("Invalid resume payload.");
31
+ }
32
+ export function convertMessages(values) {
33
+ const ids = new Set();
34
+ const calls = new Map();
35
+ return values.flatMap((value) => {
36
+ const message = MessageSchema.parse(value);
37
+ if (ids.has(message.id))
38
+ throw new Error("Duplicate message ID.");
39
+ ids.add(message.id);
40
+ if (message.role === "activity" || message.role === "reasoning")
41
+ return [];
42
+ if (message.role === "assistant") {
43
+ for (const call of message.toolCalls ?? [])
44
+ calls.set(call.id, call.function.name);
45
+ return [{ id: message.id, role: "assistant", content: message.content ?? null, toolCalls: (message.toolCalls ?? []).map((call) => ({ id: call.id, ...call.function })) }];
46
+ }
47
+ if (message.role === "tool") {
48
+ const name = calls.get(message.toolCallId);
49
+ if (!name)
50
+ throw new Error("A tool result has no preceding tool call.");
51
+ const content = message.error !== undefined && getToolResultError(message.content) === undefined
52
+ ? JSON.stringify({ error: { code: "TOOL_ERROR", message: message.error }, content: message.content }) : message.content;
53
+ return [{ id: message.id, role: "tool", name, toolCallId: message.toolCallId, content }];
54
+ }
55
+ if (message.role === "user") {
56
+ if (Array.isArray(message.content) && message.content.some((part) => part.type !== "text" && part.type !== "image"))
57
+ throw new Error("This Agent supports text and image input only.");
58
+ const content = typeof message.content === "string" ? message.content.trim() : message.content;
59
+ if (!content.length)
60
+ throw new Error("Agent message content is required.");
61
+ return [{ id: message.id, role: "user", content: content }];
62
+ }
63
+ throw new Error(`Unsupported model history role: ${message.role}.`);
64
+ });
65
+ }
66
+ export function decodeRequest(value) {
67
+ const extension = value.forwardedProps?.nexface;
68
+ if (extension && (extension.version !== 2 || "checkpoint" in extension || "confirmedToolCallId" in extension))
69
+ throw new Error("Unsupported Nexface request version or recovery channel.");
70
+ const state = value.state;
71
+ if (state != null && (typeof state !== "object" || Array.isArray(state)))
72
+ throw new Error("Invalid Agent state.");
73
+ if (state && "nexface" in state && (!state.nexface || typeof state.nexface !== "object" || Array.isArray(state.nexface)))
74
+ throw new Error("Invalid Nexface state.");
75
+ const restored = state?.nexface;
76
+ if (restored && (restored.version !== 2 || restored.threadId !== value.threadId || !Array.isArray(restored.timeline)))
77
+ throw new Error("Agent state does not match this thread or version.");
78
+ const converted = new Map(convertMessages(value.messages).map((message) => [message.id, message]));
79
+ const source = new Map(value.messages.map((message) => [message.id, message]));
80
+ const used = new Set();
81
+ const messages = (restored?.timeline ?? []).flatMap((entry) => {
82
+ if ("internal" in entry) {
83
+ if (!entry.internal || (entry.internal.role !== "system" && entry.internal.role !== "application_context"))
84
+ throw new Error("Invalid internal history.");
85
+ return [structuredClone(entry.internal)];
86
+ }
87
+ const message = converted.get(entry.messageId);
88
+ if (!message || used.has(entry.messageId))
89
+ throw new Error("State message is missing or repeated.");
90
+ used.add(entry.messageId);
91
+ return [message];
92
+ });
93
+ const pending = restored?.pending;
94
+ if (value.resume && value.resume.length !== 1)
95
+ throw new Error("Exactly one resume entry is required.");
96
+ const resume = value.resume?.[0] ? parseResume(value.resume[0], true) : undefined;
97
+ const receipts = [];
98
+ let toolResult;
99
+ if (pending) {
100
+ if (!resume || resume.interruptId !== pending.interruptId || !Array.isArray(pending.calls) || !pending.calls.length)
101
+ throw new Error("Resume does not match the pending interrupt.");
102
+ if (pending.kind !== "client-tool-execution")
103
+ throw new Error("Invalid pending kind.");
104
+ if (resume.status === "resolved") {
105
+ if (!("toolResultMessageId" in resume.payload))
106
+ throw new Error("A client tool requires a result reference.");
107
+ const message = source.get(resume.payload.toolResultMessageId);
108
+ if (!message || used.has(message.id) || message.role !== "tool" || message.toolCallId !== pending.calls[0].id)
109
+ throw new Error("Resume result does not match the pending call.");
110
+ const owner = [...messages].reverse().find((item) => item.role === "assistant");
111
+ const ownerIndex = value.messages.findIndex((item) => item.id === owner?.id);
112
+ const receiptIndex = value.messages.indexOf(message);
113
+ if (ownerIndex < 0 || receiptIndex <= ownerIndex || value.messages.slice(ownerIndex + 1, receiptIndex).some((item) => item.role === "user" || (item.role === "assistant" && item.toolCalls?.length)))
114
+ throw new Error("The receipt does not belong to the pending assistant batch.");
115
+ let payload;
116
+ try {
117
+ payload = JSON.parse(message.content);
118
+ }
119
+ catch {
120
+ if (!message.error)
121
+ throw new Error("Invalid tool result.");
122
+ }
123
+ if (message.error !== undefined)
124
+ payload = { error: { code: payload?.error?.code ?? "TOOL_ERROR", message: message.error } };
125
+ if (!payload || typeof payload !== "object" || (!("result" in payload) && !("error" in payload)))
126
+ throw new Error("Invalid tool result.");
127
+ if (payload.error && (typeof payload.error.code !== "string" || typeof payload.error.message !== "string"))
128
+ throw new Error("Invalid tool error.");
129
+ toolResult = { toolCallId: message.toolCallId, ...(payload.error ? { error: payload.error } : { result: payload.result }), ...(resume.payload.confirmed === undefined ? {} : { confirmed: resume.payload.confirmed }) };
130
+ receipts.push(message);
131
+ }
132
+ else {
133
+ const owner = [...messages].reverse().find((message) => message.role === "assistant");
134
+ const ownerIndex = value.messages.findIndex((message) => message.id === owner?.id);
135
+ for (const message of value.messages.slice(ownerIndex + 1)) {
136
+ if (message.role === "user")
137
+ break;
138
+ if (used.has(message.id) || message.role !== "tool" || !pending.calls.some((call) => call.id === message.toolCallId))
139
+ continue;
140
+ let payload;
141
+ try {
142
+ payload = JSON.parse(message.content);
143
+ }
144
+ catch {
145
+ throw new Error("Invalid cancellation receipt.");
146
+ }
147
+ const first = message.toolCallId === pending.calls[0].id;
148
+ if (!(first ? ["TOOL_CANCELLED", "TOOL_CONFIRMATION_INVALIDATED"] : ["TOOL_SKIPPED", "TOOL_CANCELLED"]).includes(payload?.error?.code))
149
+ throw new Error("Cancellation cannot replace an execution result.");
150
+ if (receipts.some((receipt) => receipt.role === "tool" && receipt.toolCallId === message.toolCallId))
151
+ throw new Error("Repeated cancellation receipt.");
152
+ receipts.push(message);
153
+ }
154
+ }
155
+ }
156
+ else if (resume)
157
+ throw new Error("Cannot resume without a pending interrupt.");
158
+ const receiptIds = new Set(receipts.map((message) => message.id));
159
+ const newMessages = value.messages.flatMap((message) => {
160
+ if (used.has(message.id) || receiptIds.has(message.id))
161
+ return [];
162
+ if (pending && message.role === "tool" && pending.calls.some((call) => call.id === message.toolCallId))
163
+ throw new Error("Repeated or unexpected pending result.");
164
+ const convertedMessage = converted.get(message.id);
165
+ if (pending && resume?.status === "resolved" && convertedMessage)
166
+ throw new Error("A resolved response cannot start a new task.");
167
+ return convertedMessage ? [convertedMessage] : [];
168
+ });
169
+ return {
170
+ messages, newMessages, receipts, ...(restored ? { continuation: structuredClone(restored) } : {}), ...(resume ? { resume } : {}), ...(toolResult ? { toolResult } : {}),
171
+ tools: value.tools.map((tool) => ({ name: tool.name, description: tool.description, inputSchema: tool.parameters, effect: extension?.toolMetadata?.[tool.name]?.effect ?? "action" })),
172
+ contexts: value.context.map((context, index) => {
173
+ let data = context.value;
174
+ try {
175
+ data = JSON.parse(context.value);
176
+ }
177
+ catch { /* Context values may be plain text. */ }
178
+ if (data && typeof data === "object" && "name" in data && "value" in data)
179
+ return data;
180
+ return { name: `context${index}`, description: context.description, value: data };
181
+ }),
182
+ };
183
+ }
184
+ export function toProtocolMessages(messages) {
185
+ return messages.flatMap((message) => {
186
+ message.id ??= globalThis.crypto.randomUUID();
187
+ if (message.role === "system" || message.role === "application_context")
188
+ return [];
189
+ if (message.role === "assistant")
190
+ return [{ id: message.id, role: "assistant", ...(message.content === null ? {} : { content: message.content }), toolCalls: message.toolCalls.map(({ id, name, arguments: args }) => ({ id, type: "function", function: { name, arguments: args } })) }];
191
+ if (message.role === "tool") {
192
+ const error = getToolResultError(message.content);
193
+ return [{ id: message.id, role: "tool", toolCallId: message.toolCallId, content: message.content, ...(error === undefined ? {} : { error }) }];
194
+ }
195
+ return [{ id: message.id, role: "user", content: message.content }];
196
+ });
197
+ }
198
+ export function runResponse(run) {
199
+ const encoder = new TextEncoder();
200
+ const iterator = run[Symbol.asyncIterator]();
201
+ void run.result.catch(() => undefined);
202
+ return new Response(new ReadableStream({
203
+ async pull(controller) {
204
+ try {
205
+ const next = await iterator.next();
206
+ if (next.done)
207
+ controller.close();
208
+ else
209
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify(next.value)}\n\n`));
210
+ }
211
+ catch (error) {
212
+ controller.error(error);
213
+ }
214
+ },
215
+ async cancel() { run.cancel(); await iterator.return?.(); },
216
+ }), { headers: {
217
+ "Content-Type": "text/event-stream",
218
+ "Cache-Control": "no-cache, no-transform",
219
+ "X-Accel-Buffering": "no",
220
+ } });
221
+ }
222
+ export function mergeProtocolMessages(messages, previous) {
223
+ const remaining = new Map(messages.map((message) => [message.id, message]));
224
+ const mergedHistory = previous.flatMap((old) => {
225
+ const message = remaining.get(old.id);
226
+ if (!message)
227
+ return old.role === "activity" || old.role === "reasoning" ? [old] : [];
228
+ remaining.delete(old.id);
229
+ const merged = { ...old, ...message };
230
+ if (message.role === "tool" && old.role === "tool" && old.error !== undefined)
231
+ merged.content = old.content;
232
+ if (message.role === "assistant" && old.role === "assistant")
233
+ merged.toolCalls = message.toolCalls?.map((call) => ({ ...old.toolCalls?.find((item) => item.id === call.id), ...call }));
234
+ return [MessageSchema.parse(merged)];
235
+ });
236
+ return [...mergedHistory, ...remaining.values()];
237
+ }
238
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { assertAgentToolInputSchema } from "@nexface/tools/internal";
1
2
  const getSnapshotTool = {
2
3
  name: "getSnapshot",
3
4
  effect: "read",
@@ -14,7 +15,7 @@ const getSnapshotTool = {
14
15
  const executeCodeTool = {
15
16
  name: "executeCode",
16
17
  effect: "action",
17
- description: 'Fallback only: execute async JavaScript through the host-provided restricted "ui" API when no application tool covers the page action. Call getSnapshot in an earlier model step, then follow the Browser Tools instructions supplied by the host. Never batch executeCode with getSnapshot.',
18
+ description: 'Fallback only: execute async JavaScript through the host-provided restricted "ui" API when no application tool covers the page action. Call getSnapshot in an earlier model step, then follow the page automation instructions supplied by the host. Never batch executeCode with getSnapshot.',
18
19
  inputSchema: {
19
20
  type: "object",
20
21
  properties: {
@@ -126,75 +127,6 @@ function deepFreeze(value, seen = new WeakSet()) {
126
127
  function sameDefinition(left, right) {
127
128
  return JSON.stringify(canonicalize(left)) === JSON.stringify(canonicalize(right));
128
129
  }
129
- const JSON_SCHEMA_TYPES = new Set([
130
- "object",
131
- "array",
132
- "string",
133
- "number",
134
- "integer",
135
- "boolean",
136
- "null",
137
- ]);
138
- function assertJsonSchema(value, path) {
139
- if (!value || typeof value !== "object" || Array.isArray(value)) {
140
- invalidResponse(`${path} must be an object.`);
141
- }
142
- const schema = value;
143
- const unexpectedKeys = Object.keys(schema).filter((key) => ![
144
- "type",
145
- "description",
146
- "properties",
147
- "required",
148
- "items",
149
- "enum",
150
- "additionalProperties",
151
- ].includes(key));
152
- if (unexpectedKeys.length > 0) {
153
- invalidResponse(`${path} has unsupported fields: ${unexpectedKeys.join(", ")}.`);
154
- }
155
- if (schema.type !== undefined && (typeof schema.type !== "string" || !JSON_SCHEMA_TYPES.has(schema.type))) {
156
- invalidResponse(`${path}.type is not supported.`);
157
- }
158
- if (schema.description !== undefined && typeof schema.description !== "string") {
159
- invalidResponse(`${path}.description must be a string.`);
160
- }
161
- if (schema.additionalProperties !== undefined
162
- && typeof schema.additionalProperties !== "boolean") {
163
- invalidResponse(`${path}.additionalProperties must be a boolean.`);
164
- }
165
- if (schema.enum !== undefined && !Array.isArray(schema.enum)) {
166
- invalidResponse(`${path}.enum must be an array.`);
167
- }
168
- if (schema.properties !== undefined) {
169
- if (schema.type !== "object"
170
- || !schema.properties
171
- || typeof schema.properties !== "object"
172
- || Array.isArray(schema.properties)) {
173
- invalidResponse(`${path}.properties requires an object schema.`);
174
- }
175
- for (const [name, property] of Object.entries(schema.properties)) {
176
- assertJsonSchema(property, `${path}.properties.${name}`);
177
- }
178
- }
179
- if (schema.required !== undefined) {
180
- if (schema.type !== "object"
181
- || !Array.isArray(schema.required)
182
- || schema.required.some((name) => typeof name !== "string")
183
- || new Set(schema.required).size !== schema.required.length) {
184
- invalidResponse(`${path}.required must contain unique property names.`);
185
- }
186
- const properties = schema.properties;
187
- if (schema.required.some((name) => !properties || !(name in properties))) {
188
- invalidResponse(`${path}.required must reference declared properties.`);
189
- }
190
- }
191
- if (schema.items !== undefined) {
192
- if (schema.type !== "array") {
193
- invalidResponse(`${path}.items requires an array schema.`);
194
- }
195
- assertJsonSchema(schema.items, `${path}.items`);
196
- }
197
- }
198
130
  const BUSINESS_TOOL_NAME_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
199
131
  const RESERVED_BUSINESS_TOOL_NAMES = new Set([
200
132
  "callAppTool",
@@ -240,7 +172,12 @@ export function validateBridgeTools(value) {
240
172
  }
241
173
  names.add(candidate.name);
242
174
  assertJsonCompatible(candidate, `tools[${index}]`);
243
- assertJsonSchema(candidate.inputSchema, `tools[${index}].inputSchema`);
175
+ try {
176
+ assertAgentToolInputSchema(candidate.inputSchema, `tools[${index}] (${candidate.name}).inputSchema`);
177
+ }
178
+ catch (error) {
179
+ invalidResponse(error instanceof Error ? error.message : String(error));
180
+ }
244
181
  if (candidate.name === getSnapshotTool.name) {
245
182
  if (!sameDefinition(candidate, getSnapshotTool)) {
246
183
  invalidResponse("ToolBridge returned a non-canonical getSnapshot definition.");
@@ -284,8 +221,9 @@ export function validateBridgeContexts(value) {
284
221
  invalidResponse(`ToolBridge returned duplicate context name "${candidate.name}".`);
285
222
  }
286
223
  names.add(candidate.name);
287
- if (typeof candidate.description !== "string" || !candidate.description.trim()) {
288
- invalidResponse(`Context "${candidate.name}" needs a description.`);
224
+ if (candidate.description !== undefined
225
+ && (typeof candidate.description !== "string" || !candidate.description.trim())) {
226
+ invalidResponse(`Context "${candidate.name}" must have a non-empty description when provided.`);
289
227
  }
290
228
  assertJsonCompatible(candidate.value, `contexts[${index}].value`);
291
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-bridge.js","sourceRoot":"","sources":["../src/tool-bridge.ts"],"names":[],"mappings":"AAOA,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,MAAM;IACd,WAAW,EACT,6RAA6R;IAC/R,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;SACtD;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,oBAAoB,EAAE,KAAK;KAC5B;CACqC,CAAC;AAEzC,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,QAAQ;IAChB,WAAW,EACT,8RAA8R;IAChS,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,oBAAoB,EAAE,KAAK;KAC5B;CACqC,CAAC;AA4BzC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAsB;IAC3D,oBAAoB;IACpB,yBAAyB;IACzB,2BAA2B;CAC5B,CAAC,CAAC;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAI7B;IAKA;IARF,IAAI,GAAG,mBAA4B,CAAC;IAE7C,YACW,IAGsB,EAC/B,OAAe,EACN,OAAiB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAPN,SAAI,GAAJ,IAAI,CAGkB;QAEtB,YAAO,GAAP,OAAO,CAAU;QAG1B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAS9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,SAAS,CAAC,IAAI,KAAK,mBAAmB;WACxC,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;WAClC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,IAA2B,CAAC;WAClE,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE;YACvB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAC3B,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CACN,CAAC;QAC7B,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE;YAC1B,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CACL,UAAyC,EACzC,KAAU,EACV,EAAE,MAAM,EAA2B;YAEnC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAClC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CACT,CAAC;YAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,eAAe,CACvC,yBAAyB,EACzB,SAAS,UAAU,CAAC,IAAI,6CAA6C,CACtE,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,OAAiB;IACzD,MAAM,IAAI,eAAe,CAAC,yBAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAc,EACd,IAAY,EACZ,OAAO,IAAI,OAAO,EAAU;IAE5B,IACE,KAAK,KAAK,IAAI;WACX,OAAO,KAAK,KAAK,QAAQ;WACzB,OAAO,KAAK,KAAK,SAAS;QAC7B,OAAO;IACT,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,eAAe,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,eAAe,CAAC,GAAG,IAAI,2BAA2B,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,eAAe,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAClF,eAAe,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC5B,oBAAoB,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,oBAAoB,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC;SAC1C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACZ,GAAG;QACH,YAAY,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC;KACtD,CAAC,CACL,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ,EAAE,OAAO,IAAI,OAAO,EAAU;IAC3D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CACrB,IAAyB,EACzB,KAA0B;IAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,MAAM;CACP,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,KAAc,EAAE,IAAY;IACpD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,eAAe,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM;QACN,aAAa;QACb,YAAY;QACZ,UAAU;QACV,OAAO;QACP,MAAM;QACN,sBAAsB;KACvB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACjB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,eAAe,CAAC,GAAG,IAAI,4BAA4B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAC/B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CACvE,EAAE,CAAC;QACF,eAAe,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC/E,eAAe,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC;IAC3D,CAAC;IACD,IACE,MAAM,CAAC,oBAAoB,KAAK,SAAS;WACtC,OAAO,MAAM,CAAC,oBAAoB,KAAK,SAAS,EACnD,CAAC;QACD,eAAe,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,eAAe,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ;eACrB,CAAC,MAAM,CAAC,UAAU;eAClB,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;eACrC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EACnC,CAAC;YACD,eAAe,CAAC,GAAG,IAAI,wCAAwC,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,gBAAgB,CAAC,QAAQ,EAAE,GAAG,IAAI,eAAe,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ;eACrB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;eAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;eACxD,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAC3D,CAAC;YACD,eAAe,CAAC,GAAG,IAAI,+CAA+C,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAiD,CAAC;QAC5E,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAE,IAAe,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC;YACrF,eAAe,CAAC,GAAG,IAAI,+CAA+C,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,eAAe,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;QAC7D,CAAC;QACD,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAC3D,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,aAAa;IACb,QAAQ;IACR,aAAa;IACb,aAAa;IACb,WAAW;CACZ,CAAC,CAAC;AAEH,SAAS,4BAA4B,CACnC,UAA+B;IAE/B,IACE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;WAC9C,4BAA4B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EACpD,CAAC;QACD,eAAe,CAAC,6CAA6C,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACjF,eAAe,CAAC,iDAAiD,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,eAAe,CAAC,sDAAsD,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,eAAe,CAAC,6CAA6C,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/E,eAAe,CAAC,4BAA4B,KAAK,qBAAqB,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,SAAS,GAAG,UAAiC,CAAC;QACpD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;aAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACpF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,eAAe,CACb,4BAA4B,KAAK,2BAA2B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,eAAe,CAAC,4BAA4B,KAAK,uBAAuB,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,eAAe,CACb,4BAA4B,KAAK,wBAAwB,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,eAAe,CAAC,4CAA4C,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1B,oBAAoB,CAAC,SAAS,EAAE,SAAS,KAAK,GAAG,CAAC,CAAC;QACnD,gBAAgB,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,KAAK,eAAe,CAAC,CAAC;QACvE,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;gBAChD,eAAe,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;gBAChD,eAAe,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,4BAA4B,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,KAAK;QAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,KAAuC,CAAC;SAChD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,eAAe,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,eAAe,CAAC,oBAAoB,KAAK,qBAAqB,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,SAAS,GAAG,KAA0B,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;aAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,eAAe,CACb,oBAAoB,KAAK,2BAA2B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjF,CAAC;QACJ,CAAC;QACD,IACE,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;eAChD,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC;iBACvD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAC3B,CAAC;YACD,eAAe,CAAC,oBAAoB,KAAK,uBAAuB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,eAAe,CAAC,+CAA+C,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/E,eAAe,CAAC,YAAY,SAAS,CAAC,IAAI,wBAAwB,CAAC,CAAC;QACtE,CAAC;QACD,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,GAAG,KAAqC,CAAC;SAC9C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,oBAAoB,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"tool-bridge.js","sourceRoot":"","sources":["../src/tool-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function getToolResultError(content: string): string | undefined;