@agent-native/core 0.30.6 → 0.31.0
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/dist/a2a/client.d.ts +2 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +6 -4
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/handlers.d.ts.map +1 -1
- package/dist/a2a/handlers.js +3 -0
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/server.d.ts.map +1 -1
- package/dist/a2a/server.js.map +1 -1
- package/dist/a2a/task-store.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/anthropic-engine.js +0 -7
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.d.ts.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.js +5 -3
- package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
- package/dist/agent/production-agent.js +7 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +14 -6
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/application-state/store.d.ts.map +1 -1
- package/dist/application-state/store.js.map +1 -1
- package/dist/brand-kit/brand-signals.d.ts +31 -0
- package/dist/brand-kit/brand-signals.d.ts.map +1 -0
- package/dist/brand-kit/brand-signals.js +101 -0
- package/dist/brand-kit/brand-signals.js.map +1 -0
- package/dist/brand-kit/index.d.ts +21 -0
- package/dist/brand-kit/index.d.ts.map +1 -0
- package/dist/brand-kit/index.js +34 -0
- package/dist/brand-kit/index.js.map +1 -0
- package/dist/brand-kit/types.d.ts +103 -0
- package/dist/brand-kit/types.d.ts.map +1 -0
- package/dist/brand-kit/types.js +17 -0
- package/dist/brand-kit/types.js.map +1 -0
- package/dist/cli/code-agent-executor.d.ts.map +1 -1
- package/dist/cli/code-agent-executor.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +0 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/client/AgentNative.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +0 -2
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +69 -17
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/IframeEmbed.d.ts.map +1 -1
- package/dist/client/IframeEmbed.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/RunStuckBanner.js.map +1 -1
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/builder-mark.d.ts.map +1 -1
- package/dist/client/builder-mark.js.map +1 -1
- package/dist/client/components/MissingKeyCard.d.ts.map +1 -1
- package/dist/client/components/MissingKeyCard.js.map +1 -1
- package/dist/client/composer/PromptComposer.d.ts.map +1 -1
- package/dist/client/composer/PromptComposer.js +6 -3
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +5 -0
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.d.ts.map +1 -1
- package/dist/client/composer/VoiceButton.js +9 -0
- package/dist/client/composer/VoiceButton.js.map +1 -1
- package/dist/client/composer/extensions/FileReference.d.ts.map +1 -1
- package/dist/client/composer/extensions/FileReference.js.map +1 -1
- package/dist/client/composer/extensions/MentionReference.d.ts.map +1 -1
- package/dist/client/composer/extensions/MentionReference.js.map +1 -1
- package/dist/client/composer/extensions/SkillReference.d.ts.map +1 -1
- package/dist/client/composer/extensions/SkillReference.js.map +1 -1
- package/dist/client/conversation/AgentConversation.js +8 -6
- package/dist/client/conversation/AgentConversation.js.map +1 -1
- package/dist/client/conversation/use-near-bottom-autoscroll.d.ts.map +1 -1
- package/dist/client/conversation/use-near-bottom-autoscroll.js +133 -35
- package/dist/client/conversation/use-near-bottom-autoscroll.js.map +1 -1
- package/dist/client/db-admin/DbAdminPage.js.map +1 -1
- package/dist/client/dev-overlay/DevOverlay.d.ts.map +1 -1
- package/dist/client/dev-overlay/DevOverlay.js +0 -1
- package/dist/client/dev-overlay/DevOverlay.js.map +1 -1
- package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
- package/dist/client/extensions/EmbeddedExtension.js +19 -0
- package/dist/client/extensions/EmbeddedExtension.js.map +1 -1
- package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionViewer.js +11 -3
- package/dist/client/extensions/ExtensionViewer.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/mcp-app-host.d.ts.map +1 -1
- package/dist/client/mcp-app-host.js +6 -1
- package/dist/client/mcp-app-host.js.map +1 -1
- package/dist/client/mcp-apps/McpAppRenderer.d.ts.map +1 -1
- package/dist/client/mcp-apps/McpAppRenderer.js +1 -1
- package/dist/client/mcp-apps/McpAppRenderer.js.map +1 -1
- package/dist/client/notifications/NotificationsBell.js.map +1 -1
- package/dist/client/onboarding/SetupButton.d.ts.map +1 -1
- package/dist/client/onboarding/SetupButton.js +6 -0
- package/dist/client/onboarding/SetupButton.js.map +1 -1
- package/dist/client/progress/RunsTray.js.map +1 -1
- package/dist/client/resources/McpServerDetail.d.ts.map +1 -1
- package/dist/client/resources/McpServerDetail.js.map +1 -1
- package/dist/client/settings/AgentsSection.d.ts.map +1 -1
- package/dist/client/settings/AgentsSection.js +1 -1
- package/dist/client/settings/AgentsSection.js.map +1 -1
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +0 -4
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
- package/dist/client/terminal/AgentTerminal.js +1 -1
- package/dist/client/terminal/AgentTerminal.js.map +1 -1
- package/dist/client/use-agent-chat.d.ts.map +1 -1
- package/dist/client/use-agent-chat.js +20 -4
- package/dist/client/use-agent-chat.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +39 -25
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/use-db-sync.d.ts.map +1 -1
- package/dist/client/use-db-sync.js +8 -0
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/client/use-dev-mode.d.ts.map +1 -1
- package/dist/client/use-dev-mode.js +25 -9
- package/dist/client/use-dev-mode.js.map +1 -1
- package/dist/client/useProductionAgent.d.ts.map +1 -1
- package/dist/client/useProductionAgent.js +6 -2
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/collab/agent-presence.d.ts.map +1 -1
- package/dist/collab/agent-presence.js +1 -1
- package/dist/collab/agent-presence.js.map +1 -1
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/awareness.js +8 -0
- package/dist/collab/awareness.js.map +1 -1
- package/dist/collab/client-struct.js.map +1 -1
- package/dist/deploy/build.js +0 -5
- package/dist/deploy/build.js.map +1 -1
- package/dist/extensions/fetch-tool.d.ts.map +1 -1
- package/dist/extensions/fetch-tool.js +4 -1
- package/dist/extensions/fetch-tool.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts.map +1 -1
- package/dist/file-upload/actions/upload-image.js +39 -4
- package/dist/file-upload/actions/upload-image.js.map +1 -1
- package/dist/integrations/adapters/slack.d.ts.map +1 -1
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/google-docs-poller.d.ts.map +1 -1
- package/dist/integrations/google-docs-poller.js +14 -1
- package/dist/integrations/google-docs-poller.js.map +1 -1
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +10 -1
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +20 -8
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/mcp/connect-store.d.ts.map +1 -1
- package/dist/mcp/connect-store.js +1 -1
- package/dist/mcp/connect-store.js.map +1 -1
- package/dist/notifications/channels.d.ts.map +1 -1
- package/dist/notifications/channels.js +3 -2
- package/dist/notifications/channels.js.map +1 -1
- package/dist/oauth-tokens/store.js.map +1 -1
- package/dist/observability/evals.d.ts.map +1 -1
- package/dist/observability/evals.js +7 -7
- package/dist/observability/evals.js.map +1 -1
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +15 -5
- package/dist/observability/traces.js.map +1 -1
- package/dist/org/handlers.d.ts.map +1 -1
- package/dist/org/handlers.js +3 -2
- package/dist/org/handlers.js.map +1 -1
- package/dist/resources/handlers.d.ts +5 -5
- package/dist/resources/handlers.d.ts.map +1 -1
- package/dist/resources/handlers.js.map +1 -1
- package/dist/scripts/db/schema.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +0 -6
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js +0 -3
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +1 -2
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +0 -23
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +0 -3
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/poll.d.ts.map +1 -1
- package/dist/server/poll.js +49 -18
- package/dist/server/poll.js.map +1 -1
- package/dist/settings/store.js.map +1 -1
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +25 -4
- package/dist/sharing/access.js.map +1 -1
- package/dist/triggers/dispatcher.d.ts.map +1 -1
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +2 -0
- package/dist/vite/client.js.map +1 -1
- package/package.json +3 -2
- package/dist/client/conversation/AgentConversation.spec.d.ts +0 -2
- package/dist/client/conversation/AgentConversation.spec.d.ts.map +0 -1
- package/dist/client/conversation/AgentConversation.spec.js +0 -69
- package/dist/client/conversation/AgentConversation.spec.js.map +0 -1
- package/dist/client/extensions/AgentNativeExtensionFrame.e2e-host.d.ts +0 -2
- package/dist/client/extensions/AgentNativeExtensionFrame.e2e-host.d.ts.map +0 -1
- package/dist/client/extensions/AgentNativeExtensionFrame.e2e-host.js +0 -110
- package/dist/client/extensions/AgentNativeExtensionFrame.e2e-host.js.map +0 -1
- package/dist/client/extensions/AgentNativeExtensionFrame.spec.d.ts +0 -2
- package/dist/client/extensions/AgentNativeExtensionFrame.spec.d.ts.map +0 -1
- package/dist/client/extensions/AgentNativeExtensionFrame.spec.js +0 -68
- package/dist/client/extensions/AgentNativeExtensionFrame.spec.js.map +0 -1
- package/dist/client/extensions/ExtensionViewer.spec.d.ts +0 -2
- package/dist/client/extensions/ExtensionViewer.spec.d.ts.map +0 -1
- package/dist/client/extensions/ExtensionViewer.spec.js +0 -94
- package/dist/client/extensions/ExtensionViewer.spec.js.map +0 -1
- package/dist/client/guided-questions.flow.spec.d.ts +0 -2
- package/dist/client/guided-questions.flow.spec.d.ts.map +0 -1
- package/dist/client/guided-questions.flow.spec.js +0 -147
- package/dist/client/guided-questions.flow.spec.js.map +0 -1
- package/dist/client/settings/useBuilderStatus.spec.d.ts +0 -2
- package/dist/client/settings/useBuilderStatus.spec.d.ts.map +0 -1
- package/dist/client/settings/useBuilderStatus.spec.js +0 -487
- package/dist/client/settings/useBuilderStatus.spec.js.map +0 -1
- package/dist/client/sharing/ShareButton.spec.d.ts +0 -2
- package/dist/client/sharing/ShareButton.spec.d.ts.map +0 -1
- package/dist/client/sharing/ShareButton.spec.js +0 -196
- package/dist/client/sharing/ShareButton.spec.js.map +0 -1
- package/dist/client/use-chat-models.spec.d.ts +0 -2
- package/dist/client/use-chat-models.spec.d.ts.map +0 -1
- package/dist/client/use-chat-models.spec.js +0 -39
- package/dist/client/use-chat-models.spec.js.map +0 -1
- package/dist/client/use-chat-threads.spec.d.ts +0 -2
- package/dist/client/use-chat-threads.spec.d.ts.map +0 -1
- package/dist/client/use-chat-threads.spec.js +0 -760
- package/dist/client/use-chat-threads.spec.js.map +0 -1
- package/dist/client/use-db-sync.spec.d.ts +0 -2
- package/dist/client/use-db-sync.spec.d.ts.map +0 -1
- package/dist/client/use-db-sync.spec.js +0 -107
- package/dist/client/use-db-sync.spec.js.map +0 -1
- package/dist/server/script-discovery.d.ts +0 -6
- package/dist/server/script-discovery.d.ts.map +0 -1
- package/dist/server/script-discovery.js +0 -6
- package/dist/server/script-discovery.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate-ai-sdk.js","sourceRoot":"","sources":["../../../src/agent/engine/translate-ai-sdk.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Translation helpers between AgentEngine normalized types and\n * Vercel AI SDK (`ai` package, v6+) types.\n *\n * The framework keeps a provider-neutral content/event model (see ./types.ts).\n * These helpers convert in both directions against the v6 `TextStreamPart` and\n * `ModelMessage` shapes.\n */\n\nimport type {\n EngineTool,\n EngineMessage,\n EngineContentPart,\n EngineEvent,\n} from \"./types.js\";\nimport { backfillEngineMessagesToolResults } from \"./translate-anthropic.js\";\n\n// ---------------------------------------------------------------------------\n// EngineTool → AI SDK tool definition\n// ---------------------------------------------------------------------------\n\n/**\n * Convert EngineTool[] into the record shape that AI SDK's `streamText` expects\n * under the `tools` option.\n *\n * Pass the `jsonSchema` helper from the `ai` package when available so the\n * schema is wrapped in the SDK's runtime validator; fall back to the raw JSON\n * Schema object otherwise (mostly for unit tests that don't import `ai`).\n */\nexport function engineToolsToAISDK(\n tools: EngineTool[],\n jsonSchema?: (schema: Record<string, unknown>) => unknown,\n): Record<string, any> {\n const result: Record<string, any> = {};\n for (const tool of tools) {\n const rawSchema: Record<string, unknown> = {\n type: \"object\",\n properties: tool.inputSchema.properties ?? {},\n required: tool.inputSchema.required ?? [],\n };\n result[tool.name] = {\n description: tool.description,\n inputSchema: jsonSchema ? jsonSchema(rawSchema) : rawSchema,\n };\n }\n return result;\n}\n\n// ---------------------------------------------------------------------------\n// EngineMessage → AI SDK ModelMessage\n// ---------------------------------------------------------------------------\n\n/**\n * Convert a single EngineMessage into **one or more** AI SDK ModelMessages.\n *\n * v6 puts tool-results in a dedicated `role: \"tool\"` message rather than\n * embedding them in user content. When an EngineMessage's user content mixes\n * text/images with tool-results, we emit the tool-result parts first as a\n * `{role: \"tool\"}` message, followed by the remaining text/image parts as a\n * `{role: \"user\"}` message.\n */\nexport function engineMessageToAISDK(msg: EngineMessage): any[] {\n // EngineMessage is `user | assistant` — both branches return below.\n if (msg.role === \"user\") {\n const userParts: any[] = [];\n const toolResultParts: any[] = [];\n for (const part of msg.content) {\n if (part.type === \"text\") {\n userParts.push({ type: \"text\", text: part.text });\n } else if (part.type === \"image\") {\n userParts.push({\n type: \"image\",\n image: `data:${part.mediaType};base64,${part.data}`,\n mediaType: part.mediaType,\n });\n } else if (part.type === \"file\") {\n userParts.push({\n type: \"file\",\n data: part.data,\n mediaType: part.mediaType,\n filename: part.filename,\n });\n } else if (part.type === \"tool-result\") {\n toolResultParts.push({\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: part.isError\n ? { type: \"error-text\", value: part.content }\n : { type: \"text\", value: part.content },\n });\n }\n }\n\n const out: any[] = [];\n if (toolResultParts.length > 0) {\n out.push({ role: \"tool\", content: toolResultParts });\n }\n if (userParts.length > 0) {\n out.push({\n role: \"user\",\n content:\n userParts.length === 1 && userParts[0].type === \"text\"\n ? userParts[0].text\n : userParts,\n });\n }\n return out;\n }\n\n if (msg.role === \"assistant\") {\n const content: any[] = [];\n for (const part of msg.content) {\n if (part.type === \"text\") {\n content.push({ type: \"text\", text: part.text });\n } else if (part.type === \"tool-call\") {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: part.name,\n input: part.input,\n });\n } else if (part.type === \"thinking\") {\n const reasoning: Record<string, unknown> = {\n type: \"reasoning\",\n text: part.text,\n };\n if (part.signature) {\n // Round-trip the Anthropic extended-thinking signature through\n // providerOptions so the model can continue its chain of thought.\n reasoning.providerOptions = {\n anthropic: { signature: part.signature },\n };\n }\n content.push(reasoning);\n }\n }\n return [\n {\n role: \"assistant\",\n content:\n content.length === 1 && content[0].type === \"text\"\n ? content[0].text\n : content,\n },\n ];\n }\n\n throw new Error(`unknown EngineMessage role: ${(msg as any).role}`);\n}\n\nexport function engineMessagesToAISDK(messages: EngineMessage[]): any[] {\n return backfillEngineMessagesToolResults(messages).flatMap(\n engineMessageToAISDK,\n );\n}\n\n// ---------------------------------------------------------------------------\n// AI SDK TextStreamPart → EngineEvent\n// ---------------------------------------------------------------------------\n\n/**\n * Translate a single part from AI SDK's `result.fullStream` into the flat\n * sequence of EngineEvent items the framework works with.\n *\n * v6 emits lifecycle events (`text-start` / `text-delta` / `text-end`,\n * `reasoning-start` / `reasoning-delta` / `reasoning-end`, `tool-input-*`).\n * We absorb text/reasoning boundaries, forward text/reasoning/tool-input\n * deltas, and keep the terminal `tool-call`, `finish-step`, and `finish` parts.\n */\nexport function aiSdkPartToEngineEvents(part: any): EngineEvent[] {\n const events: EngineEvent[] = [];\n\n switch (part?.type) {\n case \"text-delta\":\n if (part.text) events.push({ type: \"text-delta\", text: part.text });\n break;\n case \"text-start\":\n case \"text-end\":\n break;\n\n case \"reasoning-delta\":\n if (part.text) events.push({ type: \"thinking-delta\", text: part.text });\n break;\n case \"reasoning-start\":\n case \"reasoning-end\":\n break;\n\n case \"tool-input-start\":\n events.push({\n type: \"tool-input-start\",\n id: part.id ?? part.toolCallId,\n name: part.toolName,\n });\n break;\n case \"tool-input-delta\":\n events.push({\n type: \"tool-input-delta\",\n id: part.id ?? part.toolCallId,\n name: part.toolName,\n text:\n typeof part.delta === \"string\"\n ? part.delta\n : typeof part.text === \"string\"\n ? part.text\n : \"\",\n });\n break;\n case \"tool-input-end\":\n // Ignored: the terminal `tool-call` part carries the full input.\n break;\n\n case \"tool-call\":\n events.push({\n type: \"tool-call\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input ?? {},\n });\n break;\n\n case \"tool-input-error\":\n case \"tool-error\":\n events.push({\n type: \"tool-call-error\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input ?? {},\n error:\n part.errorText ??\n (part.error instanceof Error\n ? part.error.message\n : typeof part.error === \"string\"\n ? part.error\n : JSON.stringify(part.error ?? \"Invalid tool input\")),\n });\n break;\n\n case \"tool-result\":\n // Only fired when the SDK itself executes a tool. Our runAgentLoop\n // dispatches tools on the outside, so these don't appear in our flow.\n break;\n\n case \"error\": {\n const errMsg =\n part.error instanceof Error\n ? part.error.message\n : typeof part.error === \"string\"\n ? part.error\n : JSON.stringify(part.error);\n events.push({ type: \"stop\", reason: \"error\", error: errMsg });\n break;\n }\n\n case \"finish-step\":\n if (part.usage) {\n events.push(usageEventFromLanguageModelUsage(part.usage));\n }\n break;\n\n case \"finish\":\n if (part.totalUsage) {\n events.push(usageEventFromLanguageModelUsage(part.totalUsage));\n }\n events.push({\n type: \"stop\",\n reason: finishReasonToStopReason(part.finishReason),\n });\n break;\n\n case \"start\":\n case \"start-step\":\n case \"source\":\n case \"file\":\n case \"abort\":\n case \"raw\":\n default:\n break;\n }\n\n return events;\n}\n\nfunction finishReasonToStopReason(\n reason: unknown,\n): \"end_turn\" | \"tool_use\" | \"max_tokens\" | \"stop_sequence\" | \"error\" {\n switch (reason) {\n case \"tool-calls\":\n return \"tool_use\";\n case \"length\":\n return \"max_tokens\";\n case \"content-filter\":\n case \"error\":\n return \"error\";\n default:\n // Maps \"stop\", \"other\", \"unknown\", and anything we don't recognise.\n return \"end_turn\";\n }\n}\n\nfunction usageEventFromLanguageModelUsage(usage: any): EngineEvent {\n // v6 exposes cache/reasoning tokens via detail objects; older providers\n // put them at the top level (deprecated but still read as a fallback).\n return {\n type: \"usage\",\n inputTokens: usage.inputTokens ?? 0,\n outputTokens: usage.outputTokens ?? 0,\n totalTokens: usage.totalTokens,\n cacheReadTokens:\n usage.inputTokenDetails?.cacheReadTokens ?? usage.cachedInputTokens ?? 0,\n cacheWriteTokens: usage.inputTokenDetails?.cacheWriteTokens ?? 0,\n reasoningTokens:\n usage.outputTokenDetails?.reasoningTokens ?? usage.reasoningTokens,\n };\n}\n\n// ---------------------------------------------------------------------------\n// AI SDK StepResult → EngineContentPart[] (assistant content reconstruction)\n// ---------------------------------------------------------------------------\n\n/**\n * Reconstruct the assistant message content from an AI SDK v6 `StepResult`.\n * `step.content` is the canonical structured form — iterate it.\n */\nexport function aiSdkStepToAssistantContent(step: any): EngineContentPart[] {\n const parts: EngineContentPart[] = [];\n for (const part of step?.content ?? []) {\n if (part.type === \"text\" && part.text) {\n parts.push({ type: \"text\", text: part.text });\n } else if (part.type === \"reasoning\") {\n const signature = part.providerMetadata?.anthropic?.signature;\n const thinking: EngineContentPart = {\n type: \"thinking\",\n text: part.text ?? \"\",\n };\n if (typeof signature === \"string\") thinking.signature = signature;\n parts.push(thinking);\n } else if (part.type === \"tool-call\") {\n parts.push({\n type: \"tool-call\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input,\n });\n } else if (part.type === \"tool-input-error\" || part.type === \"tool-error\") {\n parts.push({\n type: \"tool-call\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input ?? {},\n });\n }\n }\n return parts;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"translate-ai-sdk.js","sourceRoot":"","sources":["../../../src/agent/engine/translate-ai-sdk.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Translation helpers between AgentEngine normalized types and\n * Vercel AI SDK (`ai` package, v6+) types.\n *\n * The framework keeps a provider-neutral content/event model (see ./types.ts).\n * These helpers convert in both directions against the v6 `TextStreamPart` and\n * `ModelMessage` shapes.\n */\n\nimport type {\n EngineTool,\n EngineMessage,\n EngineContentPart,\n EngineEvent,\n} from \"./types.js\";\nimport { backfillEngineMessagesToolResults } from \"./translate-anthropic.js\";\n\n// ---------------------------------------------------------------------------\n// EngineTool → AI SDK tool definition\n// ---------------------------------------------------------------------------\n\n/**\n * Convert EngineTool[] into the record shape that AI SDK's `streamText` expects\n * under the `tools` option.\n *\n * Pass the `jsonSchema` helper from the `ai` package when available so the\n * schema is wrapped in the SDK's runtime validator; fall back to the raw JSON\n * Schema object otherwise (mostly for unit tests that don't import `ai`).\n */\nexport function engineToolsToAISDK(\n tools: EngineTool[],\n jsonSchema?: (schema: Record<string, unknown>) => unknown,\n): Record<string, any> {\n const result: Record<string, any> = {};\n for (const tool of tools) {\n const rawSchema: Record<string, unknown> = {\n type: \"object\",\n properties: tool.inputSchema.properties ?? {},\n required: tool.inputSchema.required ?? [],\n };\n result[tool.name] = {\n description: tool.description,\n inputSchema: jsonSchema ? jsonSchema(rawSchema) : rawSchema,\n };\n }\n return result;\n}\n\n// ---------------------------------------------------------------------------\n// EngineMessage → AI SDK ModelMessage\n// ---------------------------------------------------------------------------\n\n/**\n * Convert a single EngineMessage into **one or more** AI SDK ModelMessages.\n *\n * v6 puts tool-results in a dedicated `role: \"tool\"` message rather than\n * embedding them in user content. When an EngineMessage's user content mixes\n * text/images with tool-results, we emit the tool-result parts first as a\n * `{role: \"tool\"}` message, followed by the remaining text/image parts as a\n * `{role: \"user\"}` message.\n */\nexport function engineMessageToAISDK(msg: EngineMessage): any[] {\n // EngineMessage is `user | assistant` — both branches return below.\n if (msg.role === \"user\") {\n const userParts: any[] = [];\n const toolResultParts: any[] = [];\n for (const part of msg.content) {\n if (part.type === \"text\") {\n userParts.push({ type: \"text\", text: part.text });\n } else if (part.type === \"image\") {\n userParts.push({\n type: \"image\",\n image: `data:${part.mediaType};base64,${part.data}`,\n mediaType: part.mediaType,\n });\n } else if (part.type === \"file\") {\n userParts.push({\n type: \"file\",\n data: part.data,\n mediaType: part.mediaType,\n filename: part.filename,\n });\n } else if (part.type === \"tool-result\") {\n toolResultParts.push({\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: part.isError\n ? { type: \"error-text\", value: part.content }\n : { type: \"text\", value: part.content },\n });\n }\n }\n\n const out: any[] = [];\n if (toolResultParts.length > 0) {\n out.push({ role: \"tool\", content: toolResultParts });\n }\n if (userParts.length > 0) {\n out.push({\n role: \"user\",\n content:\n userParts.length === 1 && userParts[0].type === \"text\"\n ? userParts[0].text\n : userParts,\n });\n }\n return out;\n }\n\n if (msg.role === \"assistant\") {\n const content: any[] = [];\n for (const part of msg.content) {\n if (part.type === \"text\") {\n content.push({ type: \"text\", text: part.text });\n } else if (part.type === \"tool-call\") {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: part.name,\n input: part.input,\n });\n } else if (part.type === \"thinking\") {\n const reasoning: Record<string, unknown> = {\n type: \"reasoning\",\n text: part.text,\n };\n if (part.signature) {\n // Round-trip the Anthropic extended-thinking signature through\n // providerOptions so the model can continue its chain of thought.\n reasoning.providerOptions = {\n anthropic: { signature: part.signature },\n };\n }\n content.push(reasoning);\n }\n }\n return [\n {\n role: \"assistant\",\n content:\n content.length === 1 && content[0].type === \"text\"\n ? content[0].text\n : content,\n },\n ];\n }\n\n throw new Error(`unknown EngineMessage role: ${(msg as any).role}`);\n}\n\nexport function engineMessagesToAISDK(messages: EngineMessage[]): any[] {\n return backfillEngineMessagesToolResults(messages).flatMap(\n engineMessageToAISDK,\n );\n}\n\n// ---------------------------------------------------------------------------\n// AI SDK TextStreamPart → EngineEvent\n// ---------------------------------------------------------------------------\n\n/**\n * Translate a single part from AI SDK's `result.fullStream` into the flat\n * sequence of EngineEvent items the framework works with.\n *\n * v6 emits lifecycle events (`text-start` / `text-delta` / `text-end`,\n * `reasoning-start` / `reasoning-delta` / `reasoning-end`, `tool-input-*`).\n * We absorb text/reasoning boundaries, forward text/reasoning/tool-input\n * deltas, and keep the terminal `tool-call`, `finish-step`, and `finish` parts.\n */\nexport function aiSdkPartToEngineEvents(part: any): EngineEvent[] {\n const events: EngineEvent[] = [];\n\n switch (part?.type) {\n case \"text-delta\":\n if (part.text) events.push({ type: \"text-delta\", text: part.text });\n break;\n case \"text-start\":\n case \"text-end\":\n break;\n\n case \"reasoning-delta\":\n if (part.text) events.push({ type: \"thinking-delta\", text: part.text });\n break;\n case \"reasoning-start\":\n case \"reasoning-end\":\n break;\n\n case \"tool-input-start\":\n events.push({\n type: \"tool-input-start\",\n id: part.id ?? part.toolCallId,\n name: part.toolName,\n });\n break;\n case \"tool-input-delta\":\n events.push({\n type: \"tool-input-delta\",\n id: part.id ?? part.toolCallId,\n name: part.toolName,\n text:\n typeof part.delta === \"string\"\n ? part.delta\n : typeof part.text === \"string\"\n ? part.text\n : \"\",\n });\n break;\n case \"tool-input-end\":\n // Ignored: the terminal `tool-call` part carries the full input.\n break;\n\n case \"tool-call\":\n events.push({\n type: \"tool-call\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input ?? {},\n });\n break;\n\n case \"tool-input-error\":\n case \"tool-error\":\n events.push({\n type: \"tool-call-error\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input ?? {},\n error:\n part.errorText ??\n (part.error instanceof Error\n ? part.error.message\n : typeof part.error === \"string\"\n ? part.error\n : JSON.stringify(part.error ?? \"Invalid tool input\")),\n });\n break;\n\n case \"tool-result\":\n // Only fired when the SDK itself executes a tool. Our runAgentLoop\n // dispatches tools on the outside, so these don't appear in our flow.\n break;\n\n case \"error\": {\n const errMsg =\n part.error instanceof Error\n ? part.error.message\n : typeof part.error === \"string\"\n ? part.error\n : JSON.stringify(part.error);\n events.push({ type: \"stop\", reason: \"error\", error: errMsg });\n break;\n }\n\n case \"finish-step\":\n // Usage is intentionally NOT emitted here. AI SDK's fullStream emits both\n // a per-step `finish-step` (part.usage) and a terminal `finish`\n // (part.totalUsage) for every step. runAgentLoop runs one model step per\n // stream() call, so totalUsage already covers it; emitting here too would\n // double-count tokens into recordUsage / cost tracking.\n break;\n\n case \"finish\":\n if (part.totalUsage) {\n events.push(usageEventFromLanguageModelUsage(part.totalUsage));\n }\n events.push({\n type: \"stop\",\n reason: finishReasonToStopReason(part.finishReason),\n });\n break;\n\n case \"start\":\n case \"start-step\":\n case \"source\":\n case \"file\":\n case \"abort\":\n case \"raw\":\n default:\n break;\n }\n\n return events;\n}\n\nfunction finishReasonToStopReason(\n reason: unknown,\n): \"end_turn\" | \"tool_use\" | \"max_tokens\" | \"stop_sequence\" | \"error\" {\n switch (reason) {\n case \"tool-calls\":\n return \"tool_use\";\n case \"length\":\n return \"max_tokens\";\n case \"content-filter\":\n case \"error\":\n return \"error\";\n default:\n // Maps \"stop\", \"other\", \"unknown\", and anything we don't recognise.\n return \"end_turn\";\n }\n}\n\nfunction usageEventFromLanguageModelUsage(usage: any): EngineEvent {\n // v6 exposes cache/reasoning tokens via detail objects; older providers\n // put them at the top level (deprecated but still read as a fallback).\n return {\n type: \"usage\",\n inputTokens: usage.inputTokens ?? 0,\n outputTokens: usage.outputTokens ?? 0,\n totalTokens: usage.totalTokens,\n cacheReadTokens:\n usage.inputTokenDetails?.cacheReadTokens ?? usage.cachedInputTokens ?? 0,\n cacheWriteTokens: usage.inputTokenDetails?.cacheWriteTokens ?? 0,\n reasoningTokens:\n usage.outputTokenDetails?.reasoningTokens ?? usage.reasoningTokens,\n };\n}\n\n// ---------------------------------------------------------------------------\n// AI SDK StepResult → EngineContentPart[] (assistant content reconstruction)\n// ---------------------------------------------------------------------------\n\n/**\n * Reconstruct the assistant message content from an AI SDK v6 `StepResult`.\n * `step.content` is the canonical structured form — iterate it.\n */\nexport function aiSdkStepToAssistantContent(step: any): EngineContentPart[] {\n const parts: EngineContentPart[] = [];\n for (const part of step?.content ?? []) {\n if (part.type === \"text\" && part.text) {\n parts.push({ type: \"text\", text: part.text });\n } else if (part.type === \"reasoning\") {\n const signature = part.providerMetadata?.anthropic?.signature;\n const thinking: EngineContentPart = {\n type: \"thinking\",\n text: part.text ?? \"\",\n };\n if (typeof signature === \"string\") thinking.signature = signature;\n parts.push(thinking);\n } else if (part.type === \"tool-call\") {\n parts.push({\n type: \"tool-call\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input,\n });\n } else if (part.type === \"tool-input-error\" || part.type === \"tool-error\") {\n parts.push({\n type: \"tool-call\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input ?? {},\n });\n }\n }\n return parts;\n}\n"]}
|
|
@@ -501,11 +501,15 @@ function retryDelay(attempt, signal) {
|
|
|
501
501
|
return new Promise((resolve, reject) => {
|
|
502
502
|
if (signal.aborted)
|
|
503
503
|
return reject(new Error("aborted"));
|
|
504
|
-
const
|
|
505
|
-
signal.addEventListener("abort", () => {
|
|
504
|
+
const onAbort = () => {
|
|
506
505
|
clearTimeout(timer);
|
|
507
506
|
reject(new Error("aborted"));
|
|
508
|
-
}
|
|
507
|
+
};
|
|
508
|
+
const timer = setTimeout(() => {
|
|
509
|
+
signal.removeEventListener("abort", onAbort);
|
|
510
|
+
resolve();
|
|
511
|
+
}, ms);
|
|
512
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
509
513
|
});
|
|
510
514
|
}
|
|
511
515
|
function isSupportedImageMediaType(mediaType) {
|