@copilotkit/runtime 1.51.5-next.0 → 1.51.5-next.1
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/CHANGELOG.md +8 -0
- package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.cjs +12 -0
- package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.mjs +11 -0
- package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateMetadata.cjs +9 -0
- package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateMetadata.mjs +8 -0
- package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateParam.cjs +11 -0
- package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateParam.mjs +10 -0
- package/dist/_virtual/_rolldown/runtime.cjs +32 -0
- package/dist/_virtual/_rolldown/runtime.mjs +9 -0
- package/dist/agents/langgraph/events.cjs +25 -0
- package/dist/agents/langgraph/events.cjs.map +1 -0
- package/dist/agents/langgraph/events.mjs +24 -0
- package/dist/agents/langgraph/events.mjs.map +1 -0
- package/dist/graphql/inputs/action.input.cjs +24 -0
- package/dist/graphql/inputs/action.input.cjs.map +1 -0
- package/dist/graphql/inputs/action.input.d.cts +13 -0
- package/dist/graphql/inputs/action.input.d.cts.map +1 -0
- package/dist/graphql/inputs/action.input.d.mts +13 -0
- package/dist/graphql/inputs/action.input.d.mts.map +1 -0
- package/dist/graphql/inputs/action.input.mjs +18 -0
- package/dist/graphql/inputs/action.input.mjs.map +1 -0
- package/dist/graphql/inputs/agent-session.input.cjs +21 -0
- package/dist/graphql/inputs/agent-session.input.cjs.map +1 -0
- package/dist/graphql/inputs/agent-session.input.d.cts +10 -0
- package/dist/graphql/inputs/agent-session.input.d.cts.map +1 -0
- package/dist/graphql/inputs/agent-session.input.d.mts +10 -0
- package/dist/graphql/inputs/agent-session.input.d.mts.map +1 -0
- package/dist/graphql/inputs/agent-session.input.mjs +15 -0
- package/dist/graphql/inputs/agent-session.input.mjs.map +1 -0
- package/dist/graphql/inputs/agent-state.input.cjs +21 -0
- package/dist/graphql/inputs/agent-state.input.cjs.map +1 -0
- package/dist/graphql/inputs/agent-state.input.d.cts +10 -0
- package/dist/graphql/inputs/agent-state.input.d.cts.map +1 -0
- package/dist/graphql/inputs/agent-state.input.d.mts +10 -0
- package/dist/graphql/inputs/agent-state.input.d.mts.map +1 -0
- package/dist/graphql/inputs/agent-state.input.mjs +15 -0
- package/dist/graphql/inputs/agent-state.input.mjs.map +1 -0
- package/dist/graphql/inputs/cloud-guardrails.input.cjs +29 -0
- package/dist/graphql/inputs/cloud-guardrails.input.cjs.map +1 -0
- package/dist/graphql/inputs/cloud-guardrails.input.mjs +23 -0
- package/dist/graphql/inputs/cloud-guardrails.input.mjs.map +1 -0
- package/dist/graphql/inputs/cloud.input.cjs +21 -0
- package/dist/graphql/inputs/cloud.input.cjs.map +1 -0
- package/dist/graphql/inputs/cloud.input.mjs +15 -0
- package/dist/graphql/inputs/cloud.input.mjs.map +1 -0
- package/dist/graphql/inputs/copilot-context.input.cjs +20 -0
- package/dist/graphql/inputs/copilot-context.input.cjs.map +1 -0
- package/dist/graphql/inputs/copilot-context.input.mjs +14 -0
- package/dist/graphql/inputs/copilot-context.input.mjs.map +1 -0
- package/dist/graphql/inputs/extensions.input.cjs +24 -0
- package/dist/graphql/inputs/extensions.input.cjs.map +1 -0
- package/dist/graphql/inputs/extensions.input.d.cts +16 -0
- package/dist/graphql/inputs/extensions.input.d.cts.map +1 -0
- package/dist/graphql/inputs/extensions.input.d.mts +16 -0
- package/dist/graphql/inputs/extensions.input.d.mts.map +1 -0
- package/dist/graphql/inputs/extensions.input.mjs +18 -0
- package/dist/graphql/inputs/extensions.input.mjs.map +1 -0
- package/dist/graphql/inputs/forwarded-parameters.input.cjs +25 -0
- package/dist/graphql/inputs/forwarded-parameters.input.cjs.map +1 -0
- package/dist/graphql/inputs/forwarded-parameters.input.d.cts +13 -0
- package/dist/graphql/inputs/forwarded-parameters.input.d.cts.map +1 -0
- package/dist/graphql/inputs/forwarded-parameters.input.d.mts +13 -0
- package/dist/graphql/inputs/forwarded-parameters.input.d.mts.map +1 -0
- package/dist/graphql/inputs/forwarded-parameters.input.mjs +19 -0
- package/dist/graphql/inputs/forwarded-parameters.input.mjs.map +1 -0
- package/dist/graphql/inputs/frontend.input.cjs +22 -0
- package/dist/graphql/inputs/frontend.input.cjs.map +1 -0
- package/dist/graphql/inputs/frontend.input.mjs +16 -0
- package/dist/graphql/inputs/frontend.input.mjs.map +1 -0
- package/dist/graphql/inputs/generate-copilot-response.input.cjs +45 -0
- package/dist/graphql/inputs/generate-copilot-response.input.cjs.map +1 -0
- package/dist/graphql/inputs/generate-copilot-response.input.mjs +39 -0
- package/dist/graphql/inputs/generate-copilot-response.input.mjs.map +1 -0
- package/dist/graphql/inputs/load-agent-state.input.cjs +20 -0
- package/dist/graphql/inputs/load-agent-state.input.cjs.map +1 -0
- package/dist/graphql/inputs/load-agent-state.input.mjs +14 -0
- package/dist/graphql/inputs/load-agent-state.input.mjs.map +1 -0
- package/dist/graphql/inputs/message.input.cjs +62 -0
- package/dist/graphql/inputs/message.input.cjs.map +1 -0
- package/dist/graphql/inputs/message.input.d.cts +48 -0
- package/dist/graphql/inputs/message.input.d.cts.map +1 -0
- package/dist/graphql/inputs/message.input.d.mts +48 -0
- package/dist/graphql/inputs/message.input.d.mts.map +1 -0
- package/dist/graphql/inputs/message.input.mjs +56 -0
- package/dist/graphql/inputs/message.input.mjs.map +1 -0
- package/dist/graphql/inputs/meta-event.input.cjs +25 -0
- package/dist/graphql/inputs/meta-event.input.cjs.map +1 -0
- package/dist/graphql/inputs/meta-event.input.mjs +19 -0
- package/dist/graphql/inputs/meta-event.input.mjs.map +1 -0
- package/dist/graphql/message-conversion/agui-to-gql.cjs +155 -0
- package/dist/graphql/message-conversion/agui-to-gql.cjs.map +1 -0
- package/dist/graphql/message-conversion/agui-to-gql.mjs +155 -0
- package/dist/graphql/message-conversion/agui-to-gql.mjs.map +1 -0
- package/dist/graphql/resolvers/copilot.resolver.cjs +451 -0
- package/dist/graphql/resolvers/copilot.resolver.cjs.map +1 -0
- package/dist/graphql/resolvers/copilot.resolver.mjs +445 -0
- package/dist/graphql/resolvers/copilot.resolver.mjs.map +1 -0
- package/dist/graphql/resolvers/state.resolver.cjs +43 -0
- package/dist/graphql/resolvers/state.resolver.cjs.map +1 -0
- package/dist/graphql/resolvers/state.resolver.mjs +37 -0
- package/dist/graphql/resolvers/state.resolver.mjs.map +1 -0
- package/dist/graphql/types/agents-response.type.cjs +24 -0
- package/dist/graphql/types/agents-response.type.cjs.map +1 -0
- package/dist/graphql/types/agents-response.type.mjs +18 -0
- package/dist/graphql/types/agents-response.type.mjs.map +1 -0
- package/dist/graphql/types/base/index.cjs +21 -0
- package/dist/graphql/types/base/index.cjs.map +1 -0
- package/dist/graphql/types/base/index.d.cts +9 -0
- package/dist/graphql/types/base/index.d.cts.map +1 -0
- package/dist/graphql/types/base/index.d.mts +9 -0
- package/dist/graphql/types/base/index.d.mts.map +1 -0
- package/dist/graphql/types/base/index.mjs +15 -0
- package/dist/graphql/types/base/index.mjs.map +1 -0
- package/dist/graphql/types/converted/index.cjs +118 -0
- package/dist/graphql/types/converted/index.cjs.map +1 -0
- package/dist/graphql/types/converted/index.d.cts +78 -0
- package/dist/graphql/types/converted/index.d.cts.map +1 -0
- package/dist/graphql/types/converted/index.d.mts +78 -0
- package/dist/graphql/types/converted/index.d.mts.map +1 -0
- package/dist/graphql/types/converted/index.mjs +112 -0
- package/dist/graphql/types/converted/index.mjs.map +1 -0
- package/dist/graphql/types/copilot-response.type.cjs +82 -0
- package/dist/graphql/types/copilot-response.type.cjs.map +1 -0
- package/dist/graphql/types/copilot-response.type.d.cts +12 -0
- package/dist/graphql/types/copilot-response.type.d.cts.map +1 -0
- package/dist/graphql/types/copilot-response.type.d.mts +12 -0
- package/dist/graphql/types/copilot-response.type.d.mts.map +1 -0
- package/dist/graphql/types/copilot-response.type.mjs +70 -0
- package/dist/graphql/types/copilot-response.type.mjs.map +1 -0
- package/dist/graphql/types/enums.cjs +45 -0
- package/dist/graphql/types/enums.cjs.map +1 -0
- package/dist/graphql/types/enums.d.cts +17 -0
- package/dist/graphql/types/enums.d.cts.map +1 -0
- package/dist/graphql/types/enums.d.mts +17 -0
- package/dist/graphql/types/enums.d.mts.map +1 -0
- package/dist/graphql/types/enums.mjs +42 -0
- package/dist/graphql/types/enums.mjs.map +1 -0
- package/dist/graphql/types/extensions-response.type.cjs +24 -0
- package/dist/graphql/types/extensions-response.type.cjs.map +1 -0
- package/dist/graphql/types/extensions-response.type.d.cts +18 -0
- package/dist/graphql/types/extensions-response.type.d.cts.map +1 -0
- package/dist/graphql/types/extensions-response.type.d.mts +18 -0
- package/dist/graphql/types/extensions-response.type.d.mts.map +1 -0
- package/dist/graphql/types/extensions-response.type.mjs +18 -0
- package/dist/graphql/types/extensions-response.type.mjs.map +1 -0
- package/dist/graphql/types/load-agent-state-response.type.cjs +22 -0
- package/dist/graphql/types/load-agent-state-response.type.cjs.map +1 -0
- package/dist/graphql/types/load-agent-state-response.type.mjs +16 -0
- package/dist/graphql/types/load-agent-state-response.type.mjs.map +1 -0
- package/dist/graphql/types/message-status.type.cjs +65 -0
- package/dist/graphql/types/message-status.type.cjs.map +1 -0
- package/dist/graphql/types/message-status.type.d.cts +25 -0
- package/dist/graphql/types/message-status.type.d.cts.map +1 -0
- package/dist/graphql/types/message-status.type.d.mts +25 -0
- package/dist/graphql/types/message-status.type.d.mts.map +1 -0
- package/dist/graphql/types/message-status.type.mjs +51 -0
- package/dist/graphql/types/message-status.type.mjs.map +1 -0
- package/dist/graphql/types/meta-events.type.cjs +73 -0
- package/dist/graphql/types/meta-events.type.cjs.map +1 -0
- package/dist/graphql/types/meta-events.type.mjs +54 -0
- package/dist/graphql/types/meta-events.type.mjs.map +1 -0
- package/dist/graphql/types/response-status.type.cjs +79 -0
- package/dist/graphql/types/response-status.type.cjs.map +1 -0
- package/dist/graphql/types/response-status.type.d.cts +23 -0
- package/dist/graphql/types/response-status.type.d.cts.map +1 -0
- package/dist/graphql/types/response-status.type.d.mts +23 -0
- package/dist/graphql/types/response-status.type.d.mts.map +1 -0
- package/dist/graphql/types/response-status.type.mjs +65 -0
- package/dist/graphql/types/response-status.type.mjs.map +1 -0
- package/dist/index.cjs +62 -0
- package/dist/index.d.cts +28 -0
- package/dist/index.d.mts +28 -0
- package/dist/index.mjs +27 -5612
- package/dist/langgraph.cjs +10 -0
- package/dist/langgraph.d.cts +5 -0
- package/dist/langgraph.d.mts +5 -0
- package/dist/langgraph.mjs +4 -201
- package/dist/lib/cloud/index.d.cts +9 -0
- package/dist/lib/cloud/index.d.cts.map +1 -0
- package/dist/lib/cloud/index.d.mts +9 -0
- package/dist/lib/cloud/index.d.mts.map +1 -0
- package/dist/lib/index.cjs +40 -0
- package/dist/lib/index.cjs.map +1 -0
- package/dist/lib/index.d.cts +51 -0
- package/dist/lib/index.d.cts.map +1 -0
- package/dist/lib/index.d.mts +51 -0
- package/dist/lib/index.d.mts.map +1 -0
- package/dist/lib/index.mjs +39 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/integrations/index.d.cts +7 -0
- package/dist/lib/integrations/index.d.mts +7 -0
- package/dist/lib/integrations/nest/index.cjs +14 -0
- package/dist/lib/integrations/nest/index.cjs.map +1 -0
- package/dist/lib/integrations/nest/index.d.cts +9 -0
- package/dist/lib/integrations/nest/index.d.cts.map +1 -0
- package/dist/lib/integrations/nest/index.d.mts +9 -0
- package/dist/lib/integrations/nest/index.d.mts.map +1 -0
- package/dist/lib/integrations/nest/index.mjs +14 -0
- package/dist/lib/integrations/nest/index.mjs.map +1 -0
- package/dist/lib/integrations/nextjs/app-router.cjs +26 -0
- package/dist/lib/integrations/nextjs/app-router.cjs.map +1 -0
- package/dist/lib/integrations/nextjs/app-router.d.cts +10 -0
- package/dist/lib/integrations/nextjs/app-router.d.cts.map +1 -0
- package/dist/lib/integrations/nextjs/app-router.d.mts +10 -0
- package/dist/lib/integrations/nextjs/app-router.d.mts.map +1 -0
- package/dist/lib/integrations/nextjs/app-router.mjs +25 -0
- package/dist/lib/integrations/nextjs/app-router.mjs.map +1 -0
- package/dist/lib/integrations/nextjs/pages-router.cjs +20 -0
- package/dist/lib/integrations/nextjs/pages-router.cjs.map +1 -0
- package/dist/lib/integrations/nextjs/pages-router.d.cts +15 -0
- package/dist/lib/integrations/nextjs/pages-router.d.cts.map +1 -0
- package/dist/lib/integrations/nextjs/pages-router.d.mts +15 -0
- package/dist/lib/integrations/nextjs/pages-router.d.mts.map +1 -0
- package/dist/lib/integrations/nextjs/pages-router.mjs +19 -0
- package/dist/lib/integrations/nextjs/pages-router.mjs.map +1 -0
- package/dist/lib/integrations/node-express/index.cjs +14 -0
- package/dist/lib/integrations/node-express/index.cjs.map +1 -0
- package/dist/lib/integrations/node-express/index.d.cts +9 -0
- package/dist/lib/integrations/node-express/index.d.cts.map +1 -0
- package/dist/lib/integrations/node-express/index.d.mts +9 -0
- package/dist/lib/integrations/node-express/index.d.mts.map +1 -0
- package/dist/lib/integrations/node-express/index.mjs +14 -0
- package/dist/lib/integrations/node-express/index.mjs.map +1 -0
- package/dist/lib/integrations/node-http/index.cjs +85 -0
- package/dist/lib/integrations/node-http/index.cjs.map +1 -0
- package/dist/lib/integrations/node-http/index.d.cts +9 -0
- package/dist/lib/integrations/node-http/index.d.cts.map +1 -0
- package/dist/lib/integrations/node-http/index.d.mts +9 -0
- package/dist/lib/integrations/node-http/index.d.mts.map +1 -0
- package/dist/lib/integrations/node-http/index.mjs +84 -0
- package/dist/lib/integrations/node-http/index.mjs.map +1 -0
- package/dist/lib/integrations/node-http/request-handler.cjs +81 -0
- package/dist/lib/integrations/node-http/request-handler.cjs.map +1 -0
- package/dist/lib/integrations/node-http/request-handler.mjs +74 -0
- package/dist/lib/integrations/node-http/request-handler.mjs.map +1 -0
- package/dist/lib/integrations/shared.cjs +41 -0
- package/dist/lib/integrations/shared.cjs.map +1 -0
- package/dist/lib/integrations/shared.d.cts +57 -0
- package/dist/lib/integrations/shared.d.cts.map +1 -0
- package/dist/lib/integrations/shared.d.mts +57 -0
- package/dist/lib/integrations/shared.d.mts.map +1 -0
- package/dist/lib/integrations/shared.mjs +39 -0
- package/dist/lib/integrations/shared.mjs.map +1 -0
- package/dist/lib/logger.cjs +25 -0
- package/dist/lib/logger.cjs.map +1 -0
- package/dist/lib/logger.d.cts +13 -0
- package/dist/lib/logger.d.cts.map +1 -0
- package/dist/lib/logger.d.mts +13 -0
- package/dist/lib/logger.d.mts.map +1 -0
- package/dist/lib/logger.mjs +22 -0
- package/dist/lib/logger.mjs.map +1 -0
- package/dist/lib/observability.d.cts +72 -0
- package/dist/lib/observability.d.cts.map +1 -0
- package/dist/lib/observability.d.mts +72 -0
- package/dist/lib/observability.d.mts.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.cjs +135 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.cjs.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts +851 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.mts +851 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.mts.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.mjs +134 -0
- package/dist/lib/runtime/agent-integrations/langgraph/agent.mjs.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.cjs +14 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.cjs.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.d.cts +20 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.d.cts.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.d.mts +20 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.d.mts.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.mjs +13 -0
- package/dist/lib/runtime/agent-integrations/langgraph/consts.mjs.map +1 -0
- package/dist/lib/runtime/agent-integrations/langgraph/index.d.cts +3 -0
- package/dist/lib/runtime/agent-integrations/langgraph/index.d.mts +3 -0
- package/dist/lib/runtime/copilot-runtime.cjs +251 -0
- package/dist/lib/runtime/copilot-runtime.cjs.map +1 -0
- package/dist/lib/runtime/copilot-runtime.d.cts +215 -0
- package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -0
- package/dist/lib/runtime/copilot-runtime.d.mts +215 -0
- package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -0
- package/dist/lib/runtime/copilot-runtime.mjs +247 -0
- package/dist/lib/runtime/copilot-runtime.mjs.map +1 -0
- package/dist/lib/runtime/mcp-tools-utils.cjs +138 -0
- package/dist/lib/runtime/mcp-tools-utils.cjs.map +1 -0
- package/dist/lib/runtime/mcp-tools-utils.d.cts +57 -0
- package/dist/lib/runtime/mcp-tools-utils.d.cts.map +1 -0
- package/dist/lib/runtime/mcp-tools-utils.d.mts +57 -0
- package/dist/lib/runtime/mcp-tools-utils.d.mts.map +1 -0
- package/dist/lib/runtime/mcp-tools-utils.mjs +135 -0
- package/dist/lib/runtime/mcp-tools-utils.mjs.map +1 -0
- package/dist/lib/runtime/telemetry-agent-runner.cjs +90 -0
- package/dist/lib/runtime/telemetry-agent-runner.cjs.map +1 -0
- package/dist/lib/runtime/telemetry-agent-runner.d.cts +55 -0
- package/dist/lib/runtime/telemetry-agent-runner.d.cts.map +1 -0
- package/dist/lib/runtime/telemetry-agent-runner.d.mts +55 -0
- package/dist/lib/runtime/telemetry-agent-runner.d.mts.map +1 -0
- package/dist/lib/runtime/telemetry-agent-runner.mjs +89 -0
- package/dist/lib/runtime/telemetry-agent-runner.mjs.map +1 -0
- package/dist/lib/runtime/types.cjs +12 -0
- package/dist/lib/runtime/types.cjs.map +1 -0
- package/dist/lib/runtime/types.d.cts +36 -0
- package/dist/lib/runtime/types.d.cts.map +1 -0
- package/dist/lib/runtime/types.d.mts +36 -0
- package/dist/lib/runtime/types.d.mts.map +1 -0
- package/dist/lib/runtime/types.mjs +11 -0
- package/dist/lib/runtime/types.mjs.map +1 -0
- package/dist/lib/telemetry-client.cjs +56 -0
- package/dist/lib/telemetry-client.cjs.map +1 -0
- package/dist/lib/telemetry-client.mjs +54 -0
- package/dist/lib/telemetry-client.mjs.map +1 -0
- package/dist/package.cjs +139 -0
- package/dist/package.cjs.map +1 -0
- package/dist/package.mjs +136 -0
- package/dist/package.mjs.map +1 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.cjs +221 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.cjs.map +1 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.d.cts +54 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.d.cts.map +1 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.d.mts +54 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.d.mts.map +1 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.mjs +221 -0
- package/dist/service-adapters/anthropic/anthropic-adapter.mjs.map +1 -0
- package/dist/service-adapters/anthropic/utils.cjs +116 -0
- package/dist/service-adapters/anthropic/utils.cjs.map +1 -0
- package/dist/service-adapters/anthropic/utils.mjs +113 -0
- package/dist/service-adapters/anthropic/utils.mjs.map +1 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.cjs +47 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.cjs.map +1 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.d.cts +31 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.d.cts.map +1 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.d.mts +31 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.d.mts.map +1 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.mjs +48 -0
- package/dist/service-adapters/bedrock/bedrock-adapter.mjs.map +1 -0
- package/dist/service-adapters/empty/empty-adapter.cjs +19 -0
- package/dist/service-adapters/empty/empty-adapter.cjs.map +1 -0
- package/dist/service-adapters/empty/empty-adapter.d.cts +12 -0
- package/dist/service-adapters/empty/empty-adapter.d.cts.map +1 -0
- package/dist/service-adapters/empty/empty-adapter.d.mts +12 -0
- package/dist/service-adapters/empty/empty-adapter.d.mts.map +1 -0
- package/dist/service-adapters/empty/empty-adapter.mjs +17 -0
- package/dist/service-adapters/empty/empty-adapter.mjs.map +1 -0
- package/dist/service-adapters/events.cjs +29 -0
- package/dist/service-adapters/events.cjs.map +1 -0
- package/dist/service-adapters/events.d.cts +185 -0
- package/dist/service-adapters/events.d.cts.map +1 -0
- package/dist/service-adapters/events.d.mts +185 -0
- package/dist/service-adapters/events.d.mts.map +1 -0
- package/dist/service-adapters/events.mjs +28 -0
- package/dist/service-adapters/events.mjs.map +1 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.cjs +38 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.cjs.map +1 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.d.cts +17 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.d.cts.map +1 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.d.mts +17 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.d.mts.map +1 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.mjs +38 -0
- package/dist/service-adapters/experimental/ollama/ollama-adapter.mjs.map +1 -0
- package/dist/service-adapters/google/google-genai-adapter.cjs +52 -0
- package/dist/service-adapters/google/google-genai-adapter.cjs.map +1 -0
- package/dist/service-adapters/google/google-genai-adapter.d.cts +26 -0
- package/dist/service-adapters/google/google-genai-adapter.d.cts.map +1 -0
- package/dist/service-adapters/google/google-genai-adapter.d.mts +26 -0
- package/dist/service-adapters/google/google-genai-adapter.d.mts.map +1 -0
- package/dist/service-adapters/google/google-genai-adapter.mjs +53 -0
- package/dist/service-adapters/google/google-genai-adapter.mjs.map +1 -0
- package/dist/service-adapters/groq/groq-adapter.cjs +109 -0
- package/dist/service-adapters/groq/groq-adapter.cjs.map +1 -0
- package/dist/service-adapters/groq/groq-adapter.d.cts +38 -0
- package/dist/service-adapters/groq/groq-adapter.d.cts.map +1 -0
- package/dist/service-adapters/groq/groq-adapter.d.mts +38 -0
- package/dist/service-adapters/groq/groq-adapter.d.mts.map +1 -0
- package/dist/service-adapters/groq/groq-adapter.mjs +109 -0
- package/dist/service-adapters/groq/groq-adapter.mjs.map +1 -0
- package/dist/service-adapters/index.d.cts +14 -0
- package/dist/service-adapters/index.d.mts +15 -0
- package/dist/service-adapters/langchain/langchain-adapter.cjs +44 -0
- package/dist/service-adapters/langchain/langchain-adapter.cjs.map +1 -0
- package/dist/service-adapters/langchain/langchain-adapter.d.cts +32 -0
- package/dist/service-adapters/langchain/langchain-adapter.d.cts.map +1 -0
- package/dist/service-adapters/langchain/langchain-adapter.d.mts +32 -0
- package/dist/service-adapters/langchain/langchain-adapter.d.mts.map +1 -0
- package/dist/service-adapters/langchain/langchain-adapter.mjs +44 -0
- package/dist/service-adapters/langchain/langchain-adapter.mjs.map +1 -0
- package/dist/service-adapters/langchain/langserve.cjs +63 -0
- package/dist/service-adapters/langchain/langserve.cjs.map +1 -0
- package/dist/service-adapters/langchain/langserve.d.cts +24 -0
- package/dist/service-adapters/langchain/langserve.d.cts.map +1 -0
- package/dist/service-adapters/langchain/langserve.d.mts +24 -0
- package/dist/service-adapters/langchain/langserve.d.mts.map +1 -0
- package/dist/service-adapters/langchain/langserve.mjs +64 -0
- package/dist/service-adapters/langchain/langserve.mjs.map +1 -0
- package/dist/service-adapters/langchain/types.d.cts +11 -0
- package/dist/service-adapters/langchain/types.d.cts.map +1 -0
- package/dist/service-adapters/langchain/types.d.mts +11 -0
- package/dist/service-adapters/langchain/types.d.mts.map +1 -0
- package/dist/service-adapters/langchain/utils.cjs +183 -0
- package/dist/service-adapters/langchain/utils.cjs.map +1 -0
- package/dist/service-adapters/langchain/utils.mjs +180 -0
- package/dist/service-adapters/langchain/utils.mjs.map +1 -0
- package/dist/service-adapters/openai/openai-adapter.cjs +123 -0
- package/dist/service-adapters/openai/openai-adapter.cjs.map +1 -0
- package/dist/service-adapters/openai/openai-adapter.d.cts +47 -0
- package/dist/service-adapters/openai/openai-adapter.d.cts.map +1 -0
- package/dist/service-adapters/openai/openai-adapter.d.mts +47 -0
- package/dist/service-adapters/openai/openai-adapter.d.mts.map +1 -0
- package/dist/service-adapters/openai/openai-adapter.mjs +123 -0
- package/dist/service-adapters/openai/openai-adapter.mjs.map +1 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.cjs +157 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.cjs.map +1 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.d.cts +59 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.d.cts.map +1 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.d.mts +59 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.d.mts.map +1 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.mjs +158 -0
- package/dist/service-adapters/openai/openai-assistant-adapter.mjs.map +1 -0
- package/dist/service-adapters/openai/utils.cjs +143 -0
- package/dist/service-adapters/openai/utils.cjs.map +1 -0
- package/dist/service-adapters/openai/utils.mjs +139 -0
- package/dist/service-adapters/openai/utils.mjs.map +1 -0
- package/dist/service-adapters/service-adapter.d.cts +37 -0
- package/dist/service-adapters/service-adapter.d.cts.map +1 -0
- package/dist/service-adapters/service-adapter.d.mts +37 -0
- package/dist/service-adapters/service-adapter.d.mts.map +1 -0
- package/dist/service-adapters/shared/error-utils.cjs +36 -0
- package/dist/service-adapters/shared/error-utils.cjs.map +1 -0
- package/dist/service-adapters/shared/error-utils.d.cts +12 -0
- package/dist/service-adapters/shared/error-utils.d.cts.map +1 -0
- package/dist/service-adapters/shared/error-utils.d.mts +12 -0
- package/dist/service-adapters/shared/error-utils.d.mts.map +1 -0
- package/dist/service-adapters/shared/error-utils.mjs +35 -0
- package/dist/service-adapters/shared/error-utils.mjs.map +1 -0
- package/dist/service-adapters/shared/index.d.mts +2 -0
- package/dist/service-adapters/unify/unify-adapter.cjs +93 -0
- package/dist/service-adapters/unify/unify-adapter.cjs.map +1 -0
- package/dist/service-adapters/unify/unify-adapter.d.cts +20 -0
- package/dist/service-adapters/unify/unify-adapter.d.cts.map +1 -0
- package/dist/service-adapters/unify/unify-adapter.d.mts +20 -0
- package/dist/service-adapters/unify/unify-adapter.d.mts.map +1 -0
- package/dist/service-adapters/unify/unify-adapter.mjs +93 -0
- package/dist/service-adapters/unify/unify-adapter.mjs.map +1 -0
- package/dist/utils/failed-response-status-reasons.cjs +37 -0
- package/dist/utils/failed-response-status-reasons.cjs.map +1 -0
- package/dist/utils/failed-response-status-reasons.d.cts +58 -0
- package/dist/utils/failed-response-status-reasons.d.cts.map +1 -0
- package/dist/utils/failed-response-status-reasons.d.mts +58 -0
- package/dist/utils/failed-response-status-reasons.d.mts.map +1 -0
- package/dist/utils/failed-response-status-reasons.mjs +35 -0
- package/dist/utils/failed-response-status-reasons.mjs.map +1 -0
- package/dist/v2/index.cjs +18 -0
- package/dist/v2/index.d.cts +3 -0
- package/dist/v2/index.d.mts +3 -0
- package/dist/v2/index.mjs +6 -5
- package/package.json +30 -28
- package/src/graphql/inputs/extensions.input.ts +6 -6
- package/src/graphql/inputs/message.input.ts +20 -20
- package/src/graphql/message-conversion/agui-to-gql.test.ts +2 -2
- package/src/graphql/message-conversion/gql-to-agui.test.ts +28 -28
- package/src/graphql/message-conversion/roundtrip-conversion.test.ts +8 -8
- package/src/graphql/types/extensions-response.type.ts +6 -6
- package/src/index.ts +0 -1
- package/src/lib/integrations/shared.ts +1 -81
- package/src/lib/runtime/__tests__/copilot-runtime-error.test.ts +4 -4
- package/src/lib/runtime/__tests__/mcp-tools-utils.test.ts +1 -1
- package/src/service-adapters/google/google-genai-adapter.test.ts +54 -11
- package/src/v2/index.ts +0 -1
- package/tests/global.d.ts +1 -13
- package/tests/service-adapters/anthropic/allowlist-approach.test.ts +0 -6
- package/tests/service-adapters/anthropic/anthropic-adapter.test.ts +28 -51
- package/tests/service-adapters/openai/allowlist-approach.test.ts +0 -6
- package/tests/service-adapters/openai/openai-adapter.test.ts +23 -38
- package/tests/setup.vitest.ts +8 -0
- package/tests/tsconfig.json +1 -1
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +37 -0
- package/vitest.config.mjs +16 -0
- package/dist/index.d.ts +0 -1514
- package/dist/index.js +0 -5655
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/langgraph.d.ts +0 -869
- package/dist/langgraph.js +0 -207
- package/dist/langgraph.js.map +0 -1
- package/dist/langgraph.mjs.map +0 -1
- package/dist/v2/index.d.ts +0 -2
- package/dist/v2/index.js +0 -22
- package/dist/v2/index.js.map +0 -1
- package/dist/v2/index.mjs.map +0 -1
- package/jest.config.js +0 -10
- package/tests/setup.jest.ts +0 -21
- package/tsup.config.ts +0 -20
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { MessageRole } from "../types/enums.mjs";
|
|
3
|
+
import { BaseMessageInput } from "../types/base/index.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/graphql/inputs/message.input.d.ts
|
|
6
|
+
declare class TextMessageInput {
|
|
7
|
+
content: string;
|
|
8
|
+
parentMessageId?: string;
|
|
9
|
+
role: MessageRole;
|
|
10
|
+
}
|
|
11
|
+
declare class ActionExecutionMessageInput {
|
|
12
|
+
name: string;
|
|
13
|
+
arguments: string;
|
|
14
|
+
parentMessageId?: string;
|
|
15
|
+
scope?: String;
|
|
16
|
+
}
|
|
17
|
+
declare class ResultMessageInput {
|
|
18
|
+
actionExecutionId: string;
|
|
19
|
+
actionName: string;
|
|
20
|
+
parentMessageId?: string;
|
|
21
|
+
result: string;
|
|
22
|
+
}
|
|
23
|
+
declare class AgentStateMessageInput {
|
|
24
|
+
threadId: string;
|
|
25
|
+
agentName: string;
|
|
26
|
+
role: MessageRole;
|
|
27
|
+
state: string;
|
|
28
|
+
running: boolean;
|
|
29
|
+
nodeName: string;
|
|
30
|
+
runId: string;
|
|
31
|
+
active: boolean;
|
|
32
|
+
}
|
|
33
|
+
declare class ImageMessageInput {
|
|
34
|
+
format: string;
|
|
35
|
+
bytes: string;
|
|
36
|
+
parentMessageId?: string;
|
|
37
|
+
role: MessageRole;
|
|
38
|
+
}
|
|
39
|
+
declare class MessageInput extends BaseMessageInput {
|
|
40
|
+
textMessage?: TextMessageInput;
|
|
41
|
+
actionExecutionMessage?: ActionExecutionMessageInput;
|
|
42
|
+
resultMessage?: ResultMessageInput;
|
|
43
|
+
agentStateMessage?: AgentStateMessageInput;
|
|
44
|
+
imageMessage?: ImageMessageInput;
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { ActionExecutionMessageInput, AgentStateMessageInput, ImageMessageInput, MessageInput, ResultMessageInput, TextMessageInput };
|
|
48
|
+
//# sourceMappingURL=message.input.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.input.d.mts","names":[],"sources":["../../../src/graphql/inputs/message.input.ts"],"mappings":";;;;;cAKa,gBAAA;EAEX,OAAA;EAGA,eAAA;EAGA,IAAA,EAAM,WAAA;AAAA;AAAA,cAIK,2BAAA;EAEX,IAAA;EAGA,SAAA;EAGA,eAAA;EAMA,KAAA,GAAQ,MAAA;AAAA;AAAA,cAIG,kBAAA;EAEX,iBAAA;EAGA,UAAA;EAGA,eAAA;EAGA,MAAA;AAAA;AAAA,cAIW,sBAAA;EAEX,QAAA;EAGA,SAAA;EAGA,IAAA,EAAM,WAAA;EAGN,KAAA;EAGA,OAAA;EAGA,QAAA;EAGA,KAAA;EAGA,MAAA;AAAA;AAAA,cAIW,iBAAA;EAEX,MAAA;EAGA,KAAA;EAGA,eAAA;EAGA,IAAA,EAAM,WAAA;AAAA;AAAA,cAMK,YAAA,SAAqB,gBAAA;EAEhC,WAAA,GAAc,gBAAA;EAGd,sBAAA,GAAyB,2BAAA;EAGzB,aAAA,GAAgB,kBAAA;EAGhB,iBAAA,GAAoB,sBAAA;EAGpB,YAAA,GAAe,iBAAA;AAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { MessageRole } from "../types/enums.mjs";
|
|
3
|
+
import { __decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateMetadata.mjs";
|
|
4
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.mjs";
|
|
5
|
+
import { BaseMessageInput } from "../types/base/index.mjs";
|
|
6
|
+
import { Field, InputType } from "type-graphql";
|
|
7
|
+
|
|
8
|
+
//#region src/graphql/inputs/message.input.ts
|
|
9
|
+
var _ref, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
|
|
10
|
+
let TextMessageInput = class TextMessageInput {};
|
|
11
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], TextMessageInput.prototype, "content", void 0);
|
|
12
|
+
__decorate([Field(() => String, { nullable: true }), __decorateMetadata("design:type", String)], TextMessageInput.prototype, "parentMessageId", void 0);
|
|
13
|
+
__decorate([Field(() => MessageRole), __decorateMetadata("design:type", typeof (_ref = typeof MessageRole !== "undefined" && MessageRole) === "function" ? _ref : Object)], TextMessageInput.prototype, "role", void 0);
|
|
14
|
+
TextMessageInput = __decorate([InputType()], TextMessageInput);
|
|
15
|
+
let ActionExecutionMessageInput = class ActionExecutionMessageInput {};
|
|
16
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], ActionExecutionMessageInput.prototype, "name", void 0);
|
|
17
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], ActionExecutionMessageInput.prototype, "arguments", void 0);
|
|
18
|
+
__decorate([Field(() => String, { nullable: true }), __decorateMetadata("design:type", String)], ActionExecutionMessageInput.prototype, "parentMessageId", void 0);
|
|
19
|
+
__decorate([Field(() => String, {
|
|
20
|
+
nullable: true,
|
|
21
|
+
deprecationReason: "This field will be removed in a future version"
|
|
22
|
+
}), __decorateMetadata("design:type", typeof (_ref2 = typeof String !== "undefined" && String) === "function" ? _ref2 : Object)], ActionExecutionMessageInput.prototype, "scope", void 0);
|
|
23
|
+
ActionExecutionMessageInput = __decorate([InputType()], ActionExecutionMessageInput);
|
|
24
|
+
let ResultMessageInput = class ResultMessageInput {};
|
|
25
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], ResultMessageInput.prototype, "actionExecutionId", void 0);
|
|
26
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], ResultMessageInput.prototype, "actionName", void 0);
|
|
27
|
+
__decorate([Field(() => String, { nullable: true }), __decorateMetadata("design:type", String)], ResultMessageInput.prototype, "parentMessageId", void 0);
|
|
28
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], ResultMessageInput.prototype, "result", void 0);
|
|
29
|
+
ResultMessageInput = __decorate([InputType()], ResultMessageInput);
|
|
30
|
+
let AgentStateMessageInput = class AgentStateMessageInput {};
|
|
31
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], AgentStateMessageInput.prototype, "threadId", void 0);
|
|
32
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], AgentStateMessageInput.prototype, "agentName", void 0);
|
|
33
|
+
__decorate([Field(() => MessageRole), __decorateMetadata("design:type", typeof (_ref3 = typeof MessageRole !== "undefined" && MessageRole) === "function" ? _ref3 : Object)], AgentStateMessageInput.prototype, "role", void 0);
|
|
34
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], AgentStateMessageInput.prototype, "state", void 0);
|
|
35
|
+
__decorate([Field(() => Boolean), __decorateMetadata("design:type", Boolean)], AgentStateMessageInput.prototype, "running", void 0);
|
|
36
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], AgentStateMessageInput.prototype, "nodeName", void 0);
|
|
37
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], AgentStateMessageInput.prototype, "runId", void 0);
|
|
38
|
+
__decorate([Field(() => Boolean), __decorateMetadata("design:type", Boolean)], AgentStateMessageInput.prototype, "active", void 0);
|
|
39
|
+
AgentStateMessageInput = __decorate([InputType()], AgentStateMessageInput);
|
|
40
|
+
let ImageMessageInput = class ImageMessageInput {};
|
|
41
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], ImageMessageInput.prototype, "format", void 0);
|
|
42
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], ImageMessageInput.prototype, "bytes", void 0);
|
|
43
|
+
__decorate([Field(() => String, { nullable: true }), __decorateMetadata("design:type", String)], ImageMessageInput.prototype, "parentMessageId", void 0);
|
|
44
|
+
__decorate([Field(() => MessageRole), __decorateMetadata("design:type", typeof (_ref4 = typeof MessageRole !== "undefined" && MessageRole) === "function" ? _ref4 : Object)], ImageMessageInput.prototype, "role", void 0);
|
|
45
|
+
ImageMessageInput = __decorate([InputType()], ImageMessageInput);
|
|
46
|
+
let MessageInput = class MessageInput extends BaseMessageInput {};
|
|
47
|
+
__decorate([Field(() => TextMessageInput, { nullable: true }), __decorateMetadata("design:type", typeof (_ref5 = typeof TextMessageInput !== "undefined" && TextMessageInput) === "function" ? _ref5 : Object)], MessageInput.prototype, "textMessage", void 0);
|
|
48
|
+
__decorate([Field(() => ActionExecutionMessageInput, { nullable: true }), __decorateMetadata("design:type", typeof (_ref6 = typeof ActionExecutionMessageInput !== "undefined" && ActionExecutionMessageInput) === "function" ? _ref6 : Object)], MessageInput.prototype, "actionExecutionMessage", void 0);
|
|
49
|
+
__decorate([Field(() => ResultMessageInput, { nullable: true }), __decorateMetadata("design:type", typeof (_ref7 = typeof ResultMessageInput !== "undefined" && ResultMessageInput) === "function" ? _ref7 : Object)], MessageInput.prototype, "resultMessage", void 0);
|
|
50
|
+
__decorate([Field(() => AgentStateMessageInput, { nullable: true }), __decorateMetadata("design:type", typeof (_ref8 = typeof AgentStateMessageInput !== "undefined" && AgentStateMessageInput) === "function" ? _ref8 : Object)], MessageInput.prototype, "agentStateMessage", void 0);
|
|
51
|
+
__decorate([Field(() => ImageMessageInput, { nullable: true }), __decorateMetadata("design:type", typeof (_ref9 = typeof ImageMessageInput !== "undefined" && ImageMessageInput) === "function" ? _ref9 : Object)], MessageInput.prototype, "imageMessage", void 0);
|
|
52
|
+
MessageInput = __decorate([InputType()], MessageInput);
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { MessageInput };
|
|
56
|
+
//# sourceMappingURL=message.input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.input.mjs","names":[],"sources":["../../../src/graphql/inputs/message.input.ts"],"sourcesContent":["import { Field, InputType } from \"type-graphql\";\nimport { MessageRole } from \"../types/enums\";\nimport { BaseMessageInput } from \"../types/base\";\n\n@InputType()\nexport class TextMessageInput {\n @Field(() => String)\n content: string;\n\n @Field(() => String, { nullable: true })\n parentMessageId?: string;\n\n @Field(() => MessageRole)\n role: MessageRole;\n}\n\n@InputType()\nexport class ActionExecutionMessageInput {\n @Field(() => String)\n name: string;\n\n @Field(() => String)\n arguments: string;\n\n @Field(() => String, { nullable: true })\n parentMessageId?: string;\n\n @Field(() => String, {\n nullable: true,\n deprecationReason: \"This field will be removed in a future version\",\n })\n scope?: String;\n}\n\n@InputType()\nexport class ResultMessageInput {\n @Field(() => String)\n actionExecutionId: string;\n\n @Field(() => String)\n actionName: string;\n\n @Field(() => String, { nullable: true })\n parentMessageId?: string;\n\n @Field(() => String)\n result: string;\n}\n\n@InputType()\nexport class AgentStateMessageInput {\n @Field(() => String)\n threadId: string;\n\n @Field(() => String)\n agentName: string;\n\n @Field(() => MessageRole)\n role: MessageRole;\n\n @Field(() => String)\n state: string;\n\n @Field(() => Boolean)\n running: boolean;\n\n @Field(() => String)\n nodeName: string;\n\n @Field(() => String)\n runId: string;\n\n @Field(() => Boolean)\n active: boolean;\n}\n\n@InputType()\nexport class ImageMessageInput {\n @Field(() => String)\n format: string;\n\n @Field(() => String)\n bytes: string;\n\n @Field(() => String, { nullable: true })\n parentMessageId?: string;\n\n @Field(() => MessageRole)\n role: MessageRole;\n}\n\n// GraphQL does not support union types in inputs, so we need to use\n// optional fields for the different subtypes.\n@InputType()\nexport class MessageInput extends BaseMessageInput {\n @Field(() => TextMessageInput, { nullable: true })\n textMessage?: TextMessageInput;\n\n @Field(() => ActionExecutionMessageInput, { nullable: true })\n actionExecutionMessage?: ActionExecutionMessageInput;\n\n @Field(() => ResultMessageInput, { nullable: true })\n resultMessage?: ResultMessageInput;\n\n @Field(() => AgentStateMessageInput, { nullable: true })\n agentStateMessage?: AgentStateMessageInput;\n\n @Field(() => ImageMessageInput, { nullable: true })\n imageMessage?: ImageMessageInput;\n}\n"],"mappings":";;;;;;;;;AAKO,6BAAM,iBAAiB;YAC3B,YAAY,OAAO;YAGnB,YAAY,QAAQ,EAAE,UAAU,MAAM,CAAC;YAGvC,YAAY,YAAY;+BAR1B,WAAW;AAaL,wCAAM,4BAA4B;YACtC,YAAY,OAAO;YAGnB,YAAY,OAAO;YAGnB,YAAY,QAAQ,EAAE,UAAU,MAAM,CAAC;YAGvC,YAAY,QAAQ;CACnB,UAAU;CACV,mBAAmB;CACpB,CAAC;0CAdH,WAAW;AAmBL,+BAAM,mBAAmB;YAC7B,YAAY,OAAO;YAGnB,YAAY,OAAO;YAGnB,YAAY,QAAQ,EAAE,UAAU,MAAM,CAAC;YAGvC,YAAY,OAAO;iCAXrB,WAAW;AAgBL,mCAAM,uBAAuB;YACjC,YAAY,OAAO;YAGnB,YAAY,OAAO;YAGnB,YAAY,YAAY;YAGxB,YAAY,OAAO;YAGnB,YAAY,QAAQ;YAGpB,YAAY,OAAO;YAGnB,YAAY,OAAO;YAGnB,YAAY,QAAQ;qCAvBtB,WAAW;AA4BL,8BAAM,kBAAkB;YAC5B,YAAY,OAAO;YAGnB,YAAY,OAAO;YAGnB,YAAY,QAAQ,EAAE,UAAU,MAAM,CAAC;YAGvC,YAAY,YAAY;gCAX1B,WAAW;AAkBL,yBAAM,qBAAqB,iBAAiB;YAChD,YAAY,kBAAkB,EAAE,UAAU,MAAM,CAAC;YAGjD,YAAY,6BAA6B,EAAE,UAAU,MAAM,CAAC;YAG5D,YAAY,oBAAoB,EAAE,UAAU,MAAM,CAAC;YAGnD,YAAY,wBAAwB,EAAE,UAAU,MAAM,CAAC;YAGvD,YAAY,mBAAmB,EAAE,UAAU,MAAM,CAAC;2BAdpD,WAAW"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require("reflect-metadata");
|
|
2
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
3
|
+
const require_decorateMetadata = require('../../_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateMetadata.cjs');
|
|
4
|
+
const require_decorate = require('../../_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.cjs');
|
|
5
|
+
const require_message_input = require('./message.input.cjs');
|
|
6
|
+
const require_meta_events_type = require('../types/meta-events.type.cjs');
|
|
7
|
+
let type_graphql = require("type-graphql");
|
|
8
|
+
|
|
9
|
+
//#region src/graphql/inputs/meta-event.input.ts
|
|
10
|
+
var _ref;
|
|
11
|
+
let MetaEventInput = class MetaEventInput {};
|
|
12
|
+
require_decorate.__decorate([(0, type_graphql.Field)(() => require_meta_events_type.MetaEventName), require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref = typeof require_meta_events_type.MetaEventName !== "undefined" && require_meta_events_type.MetaEventName) === "function" ? _ref : Object)], MetaEventInput.prototype, "name", void 0);
|
|
13
|
+
require_decorate.__decorate([(0, type_graphql.Field)(() => String), require_decorateMetadata.__decorateMetadata("design:type", String)], MetaEventInput.prototype, "value", void 0);
|
|
14
|
+
require_decorate.__decorate([(0, type_graphql.Field)(() => String, { nullable: true }), require_decorateMetadata.__decorateMetadata("design:type", String)], MetaEventInput.prototype, "response", void 0);
|
|
15
|
+
require_decorate.__decorate([(0, type_graphql.Field)(() => [require_message_input.MessageInput], { nullable: true }), require_decorateMetadata.__decorateMetadata("design:type", Array)], MetaEventInput.prototype, "messages", void 0);
|
|
16
|
+
MetaEventInput = require_decorate.__decorate([(0, type_graphql.InputType)()], MetaEventInput);
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
Object.defineProperty(exports, 'MetaEventInput', {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return MetaEventInput;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=meta-event.input.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-event.input.cjs","names":["MetaEventName","MessageInput"],"sources":["../../../src/graphql/inputs/meta-event.input.ts"],"sourcesContent":["import { Field, InputType } from \"type-graphql\";\nimport { MetaEventName } from \"../types/meta-events.type\";\nimport { MessageInput } from \"./message.input\";\n\n@InputType()\nexport class MetaEventInput {\n @Field(() => MetaEventName)\n name: MetaEventName;\n\n @Field(() => String)\n value?: string;\n\n @Field(() => String, { nullable: true })\n response?: string;\n\n @Field(() => [MessageInput], { nullable: true })\n messages?: MessageInput[];\n}\n"],"mappings":";;;;;;;;;;AAKO,2BAAM,eAAe;2DACbA,uCAAc;2DAGd,OAAO;2DAGP,QAAQ,EAAE,UAAU,MAAM,CAAC;2DAG3B,CAACC,mCAAa,EAAE,EAAE,UAAU,MAAM,CAAC;2EAXtC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { __decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateMetadata.mjs";
|
|
3
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.mjs";
|
|
4
|
+
import { MessageInput } from "./message.input.mjs";
|
|
5
|
+
import { MetaEventName } from "../types/meta-events.type.mjs";
|
|
6
|
+
import { Field, InputType } from "type-graphql";
|
|
7
|
+
|
|
8
|
+
//#region src/graphql/inputs/meta-event.input.ts
|
|
9
|
+
var _ref;
|
|
10
|
+
let MetaEventInput = class MetaEventInput {};
|
|
11
|
+
__decorate([Field(() => MetaEventName), __decorateMetadata("design:type", typeof (_ref = typeof MetaEventName !== "undefined" && MetaEventName) === "function" ? _ref : Object)], MetaEventInput.prototype, "name", void 0);
|
|
12
|
+
__decorate([Field(() => String), __decorateMetadata("design:type", String)], MetaEventInput.prototype, "value", void 0);
|
|
13
|
+
__decorate([Field(() => String, { nullable: true }), __decorateMetadata("design:type", String)], MetaEventInput.prototype, "response", void 0);
|
|
14
|
+
__decorate([Field(() => [MessageInput], { nullable: true }), __decorateMetadata("design:type", Array)], MetaEventInput.prototype, "messages", void 0);
|
|
15
|
+
MetaEventInput = __decorate([InputType()], MetaEventInput);
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { MetaEventInput };
|
|
19
|
+
//# sourceMappingURL=meta-event.input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-event.input.mjs","names":[],"sources":["../../../src/graphql/inputs/meta-event.input.ts"],"sourcesContent":["import { Field, InputType } from \"type-graphql\";\nimport { MetaEventName } from \"../types/meta-events.type\";\nimport { MessageInput } from \"./message.input\";\n\n@InputType()\nexport class MetaEventInput {\n @Field(() => MetaEventName)\n name: MetaEventName;\n\n @Field(() => String)\n value?: string;\n\n @Field(() => String, { nullable: true })\n response?: string;\n\n @Field(() => [MessageInput], { nullable: true })\n messages?: MessageInput[];\n}\n"],"mappings":";;;;;;;;;AAKO,2BAAM,eAAe;YACzB,YAAY,cAAc;YAG1B,YAAY,OAAO;YAGnB,YAAY,QAAQ,EAAE,UAAU,MAAM,CAAC;YAGvC,YAAY,CAAC,aAAa,EAAE,EAAE,UAAU,MAAM,CAAC;6BAXjD,WAAW"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
require("reflect-metadata");
|
|
2
|
+
const require_index = require('../types/converted/index.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/graphql/message-conversion/agui-to-gql.ts
|
|
5
|
+
function extractAgentName(message) {
|
|
6
|
+
if (message.role !== "assistant") throw new Error(`Cannot extract agent name from message with role ${message.role}`);
|
|
7
|
+
return message.agentName || "unknown";
|
|
8
|
+
}
|
|
9
|
+
function isAgentStateMessage(message) {
|
|
10
|
+
return message.role === "assistant" && "agentName" in message && "state" in message;
|
|
11
|
+
}
|
|
12
|
+
function hasImageProperty(message) {
|
|
13
|
+
if (!(message.role === "assistant" || message.role === "user") || message.image === void 0) return false;
|
|
14
|
+
if (message.image.format === void 0 || message.image.bytes === void 0) return false;
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
function normalizeMessageContent(content) {
|
|
18
|
+
if (typeof content === "string" || typeof content === "undefined") return content || "";
|
|
19
|
+
if (Array.isArray(content)) return content.map((part) => {
|
|
20
|
+
if (part?.type === "text") return part.text;
|
|
21
|
+
if (part?.type === "binary") return part.data || part.url || part.filename || `[binary:${part.mimeType}]`;
|
|
22
|
+
return "";
|
|
23
|
+
}).filter(Boolean).join("\n");
|
|
24
|
+
if (content && typeof content === "object") try {
|
|
25
|
+
return JSON.stringify(content);
|
|
26
|
+
} catch (error) {
|
|
27
|
+
console.warn("Failed to serialize message content", error);
|
|
28
|
+
}
|
|
29
|
+
return String(content ?? "");
|
|
30
|
+
}
|
|
31
|
+
function aguiToGQL(messages, actions, coAgentStateRenders) {
|
|
32
|
+
const gqlMessages = [];
|
|
33
|
+
messages = Array.isArray(messages) ? messages : [messages];
|
|
34
|
+
const toolCallNames = {};
|
|
35
|
+
for (const message of messages) {
|
|
36
|
+
if (isAgentStateMessage(message)) {
|
|
37
|
+
const agentName = extractAgentName(message);
|
|
38
|
+
const state = "state" in message && message.state ? message.state : {};
|
|
39
|
+
gqlMessages.push(new require_index.AgentStateMessage({
|
|
40
|
+
id: message.id,
|
|
41
|
+
agentName,
|
|
42
|
+
state,
|
|
43
|
+
role: require_index.Role.assistant
|
|
44
|
+
}));
|
|
45
|
+
if ("generativeUI" in message && message.generativeUI && coAgentStateRenders) coAgentStateRenders[agentName] = {
|
|
46
|
+
name: agentName,
|
|
47
|
+
render: message.generativeUI
|
|
48
|
+
};
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (hasImageProperty(message)) {
|
|
52
|
+
gqlMessages.push(aguiMessageWithImageToGQLMessage(message));
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (message.role === "assistant" && message.toolCalls) {
|
|
56
|
+
gqlMessages.push(aguiTextMessageToGQLMessage(message));
|
|
57
|
+
for (const toolCall of message.toolCalls) {
|
|
58
|
+
toolCallNames[toolCall.id] = toolCall.function.name;
|
|
59
|
+
const actionExecMsg = aguiToolCallToGQLActionExecution(toolCall, message.id);
|
|
60
|
+
if ("generativeUI" in message && message.generativeUI && actions) {
|
|
61
|
+
const actionName = toolCall.function.name;
|
|
62
|
+
const specificAction = Object.values(actions).find((action) => action.name === actionName);
|
|
63
|
+
const wildcardAction = Object.values(actions).find((action) => action.name === "*");
|
|
64
|
+
if (specificAction) specificAction.render = message.generativeUI;
|
|
65
|
+
else if (wildcardAction) wildcardAction.render = message.generativeUI;
|
|
66
|
+
}
|
|
67
|
+
gqlMessages.push(actionExecMsg);
|
|
68
|
+
}
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (message.role === "reasoning") continue;
|
|
72
|
+
if (message.role === "developer" || message.role === "system" || message.role === "assistant" || message.role === "user") {
|
|
73
|
+
gqlMessages.push(aguiTextMessageToGQLMessage(message));
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (message.role === "tool") {
|
|
77
|
+
gqlMessages.push(aguiToolMessageToGQLResultMessage(message, toolCallNames));
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
throw new Error(`Unknown message role: "${message.role}" in message with id: ${message.id}`);
|
|
81
|
+
}
|
|
82
|
+
return gqlMessages;
|
|
83
|
+
}
|
|
84
|
+
function aguiTextMessageToGQLMessage(message) {
|
|
85
|
+
if (message.role !== "developer" && message.role !== "system" && message.role !== "assistant" && message.role !== "user") throw new Error(`Cannot convert message with role ${message.role} to TextMessage`);
|
|
86
|
+
let roleValue;
|
|
87
|
+
if (message.role === "developer") roleValue = require_index.Role.developer;
|
|
88
|
+
else if (message.role === "system") roleValue = require_index.Role.system;
|
|
89
|
+
else if (message.role === "assistant") roleValue = require_index.Role.assistant;
|
|
90
|
+
else roleValue = require_index.Role.user;
|
|
91
|
+
return new require_index.TextMessage({
|
|
92
|
+
id: message.id,
|
|
93
|
+
content: normalizeMessageContent(message.content),
|
|
94
|
+
role: roleValue
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function aguiToolCallToGQLActionExecution(toolCall, parentMessageId) {
|
|
98
|
+
if (toolCall.type !== "function") throw new Error(`Unsupported tool call type: ${toolCall.type}`);
|
|
99
|
+
let argumentsObj;
|
|
100
|
+
if (typeof toolCall.function.arguments === "string") try {
|
|
101
|
+
argumentsObj = JSON.parse(toolCall.function.arguments);
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.warn(`Failed to parse tool call arguments for ${toolCall.function.name}:`, error);
|
|
104
|
+
argumentsObj = {};
|
|
105
|
+
}
|
|
106
|
+
else if (typeof toolCall.function.arguments === "object" && toolCall.function.arguments !== null) argumentsObj = toolCall.function.arguments;
|
|
107
|
+
else {
|
|
108
|
+
console.warn(`Invalid tool call arguments type for ${toolCall.function.name}:`, typeof toolCall.function.arguments);
|
|
109
|
+
argumentsObj = {};
|
|
110
|
+
}
|
|
111
|
+
return new require_index.ActionExecutionMessage({
|
|
112
|
+
id: toolCall.id,
|
|
113
|
+
name: toolCall.function.name,
|
|
114
|
+
arguments: argumentsObj,
|
|
115
|
+
parentMessageId
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
function aguiToolMessageToGQLResultMessage(message, toolCallNames) {
|
|
119
|
+
if (message.role !== "tool") throw new Error(`Cannot convert message with role ${message.role} to ResultMessage`);
|
|
120
|
+
if (!message.toolCallId) throw new Error("Tool message must have a toolCallId");
|
|
121
|
+
const actionName = toolCallNames[message.toolCallId] || "unknown";
|
|
122
|
+
let resultContent;
|
|
123
|
+
const messageContent = message.content || "";
|
|
124
|
+
if (typeof messageContent === "string") resultContent = messageContent;
|
|
125
|
+
else if (typeof messageContent === "object" && messageContent !== null) try {
|
|
126
|
+
resultContent = JSON.stringify(messageContent);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.warn(`Failed to stringify tool result for ${actionName}:`, error);
|
|
129
|
+
resultContent = String(messageContent);
|
|
130
|
+
}
|
|
131
|
+
else resultContent = String(messageContent);
|
|
132
|
+
return new require_index.ResultMessage({
|
|
133
|
+
id: message.id,
|
|
134
|
+
result: resultContent,
|
|
135
|
+
actionExecutionId: message.toolCallId,
|
|
136
|
+
actionName: message.toolName || actionName
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function aguiMessageWithImageToGQLMessage(message) {
|
|
140
|
+
if (!hasImageProperty(message)) throw new Error(`Cannot convert message to ImageMessage: missing format or bytes`);
|
|
141
|
+
let roleValue;
|
|
142
|
+
if (message.role === "assistant") roleValue = require_index.Role.assistant;
|
|
143
|
+
else roleValue = require_index.Role.user;
|
|
144
|
+
if (message.role !== "assistant" && message.role !== "user") throw new Error(`Cannot convert message with role ${message.role} to ImageMessage`);
|
|
145
|
+
return new require_index.ImageMessage({
|
|
146
|
+
id: message.id,
|
|
147
|
+
format: message.image.format,
|
|
148
|
+
bytes: message.image.bytes,
|
|
149
|
+
role: roleValue
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
//#endregion
|
|
154
|
+
exports.aguiToGQL = aguiToGQL;
|
|
155
|
+
//# sourceMappingURL=agui-to-gql.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agui-to-gql.cjs","names":[],"sources":["../../../src/graphql/message-conversion/agui-to-gql.ts"],"sourcesContent":["import * as gql from \"../types/converted/index\";\nimport { MessageRole } from \"../types/enums\";\nimport agui from \"@copilotkit/shared\"; // named agui for clarity, but this only includes agui message types\n\n// Helper function to extract agent name from message\nfunction extractAgentName(message: agui.Message): string {\n if (message.role !== \"assistant\") {\n throw new Error(\n `Cannot extract agent name from message with role ${message.role}`,\n );\n }\n\n return message.agentName || \"unknown\";\n}\n\n// Type guard for agent state message\nfunction isAgentStateMessage(message: agui.Message): boolean {\n return (\n message.role === \"assistant\" && \"agentName\" in message && \"state\" in message\n );\n}\n\n// Type guard for messages with image property\nfunction hasImageProperty(message: agui.Message): boolean {\n const canContainImage =\n message.role === \"assistant\" || message.role === \"user\";\n if (!canContainImage || message.image === undefined) {\n return false;\n }\n\n const isMalformed =\n message.image.format === undefined || message.image.bytes === undefined;\n if (isMalformed) {\n return false;\n }\n\n return true;\n}\n\nfunction normalizeMessageContent(content: agui.Message[\"content\"]): string {\n if (typeof content === \"string\" || typeof content === \"undefined\") {\n return content || \"\";\n }\n\n if (Array.isArray(content)) {\n return content\n .map((part) => {\n if (part?.type === \"text\") {\n return part.text;\n }\n if (part?.type === \"binary\") {\n return (\n part.data ||\n part.url ||\n part.filename ||\n `[binary:${part.mimeType}]`\n );\n }\n return \"\";\n })\n .filter(Boolean)\n .join(\"\\n\");\n }\n\n if (content && typeof content === \"object\") {\n try {\n return JSON.stringify(content);\n } catch (error) {\n console.warn(\"Failed to serialize message content\", error);\n }\n }\n\n return String(content ?? \"\");\n}\n\n/*\n ----------------------------\n AGUI Message -> GQL Message\n ----------------------------\n*/\nexport function aguiToGQL(\n messages: agui.Message[] | agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n const gqlMessages: gql.Message[] = [];\n messages = Array.isArray(messages) ? messages : [messages];\n\n // Track tool call names by their IDs for use in result messages\n const toolCallNames: Record<string, string> = {};\n\n for (const message of messages) {\n // Agent state message support\n if (isAgentStateMessage(message)) {\n const agentName = extractAgentName(message);\n const state = \"state\" in message && message.state ? message.state : {};\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName,\n state,\n role: gql.Role.assistant,\n }),\n );\n // Optionally preserve render function\n if (\n \"generativeUI\" in message &&\n message.generativeUI &&\n coAgentStateRenders\n ) {\n coAgentStateRenders[agentName] = {\n name: agentName,\n render: message.generativeUI,\n };\n }\n continue;\n }\n\n if (hasImageProperty(message)) {\n gqlMessages.push(aguiMessageWithImageToGQLMessage(message));\n continue;\n }\n\n // Action execution message support\n if (message.role === \"assistant\" && message.toolCalls) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n for (const toolCall of message.toolCalls) {\n // Track the tool call name by its ID\n toolCallNames[toolCall.id] = toolCall.function.name;\n\n const actionExecMsg = aguiToolCallToGQLActionExecution(\n toolCall,\n message.id,\n );\n // Preserve render function in actions context\n if (\"generativeUI\" in message && message.generativeUI && actions) {\n const actionName = toolCall.function.name;\n // Check for specific action first, then wild card action\n const specificAction = Object.values(actions).find(\n (action: any) => action.name === actionName,\n );\n const wildcardAction = Object.values(actions).find(\n (action: any) => action.name === \"*\",\n );\n\n // Assign render function to the matching action (specific takes priority)\n if (specificAction) {\n specificAction.render = message.generativeUI;\n } else if (wildcardAction) {\n wildcardAction.render = message.generativeUI;\n }\n }\n gqlMessages.push(actionExecMsg);\n }\n continue;\n }\n // Reasoning messages are ephemeral display-only content with no GQL equivalent — skip them\n if (message.role === \"reasoning\") {\n continue;\n }\n // Regular text messages\n if (\n message.role === \"developer\" ||\n message.role === \"system\" ||\n message.role === \"assistant\" ||\n message.role === \"user\"\n ) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n continue;\n }\n // Tool result message\n if (message.role === \"tool\") {\n gqlMessages.push(\n aguiToolMessageToGQLResultMessage(message, toolCallNames),\n );\n continue;\n }\n throw new Error(\n `Unknown message role: \"${(message as any).role}\" in message with id: ${(message as any).id}`,\n );\n }\n\n return gqlMessages;\n}\n\nexport function aguiTextMessageToGQLMessage(\n message: agui.Message,\n): gql.TextMessage {\n if (\n message.role !== \"developer\" &&\n message.role !== \"system\" &&\n message.role !== \"assistant\" &&\n message.role !== \"user\"\n ) {\n throw new Error(\n `Cannot convert message with role ${message.role} to TextMessage`,\n );\n }\n\n let roleValue: MessageRole;\n\n if (message.role === \"developer\") {\n roleValue = gql.Role.developer;\n } else if (message.role === \"system\") {\n roleValue = gql.Role.system;\n } else if (message.role === \"assistant\") {\n roleValue = gql.Role.assistant;\n } else {\n roleValue = gql.Role.user;\n }\n\n return new gql.TextMessage({\n id: message.id,\n content: normalizeMessageContent(message.content),\n role: roleValue,\n });\n}\n\nexport function aguiToolCallToGQLActionExecution(\n toolCall: agui.ToolCall,\n parentMessageId: string,\n): gql.ActionExecutionMessage {\n if (toolCall.type !== \"function\") {\n throw new Error(`Unsupported tool call type: ${toolCall.type}`);\n }\n\n // Handle arguments - they should be a JSON string in AGUI format,\n // but we need to convert them to an object for GQL format\n let argumentsObj: any;\n\n if (typeof toolCall.function.arguments === \"string\") {\n // Expected case: arguments is a JSON string\n try {\n argumentsObj = JSON.parse(toolCall.function.arguments);\n } catch (error) {\n console.warn(\n `Failed to parse tool call arguments for ${toolCall.function.name}:`,\n error,\n );\n // Provide fallback empty object to prevent application crash\n argumentsObj = {};\n }\n } else if (\n typeof toolCall.function.arguments === \"object\" &&\n toolCall.function.arguments !== null\n ) {\n // Backward compatibility: arguments is already an object\n argumentsObj = toolCall.function.arguments;\n } else {\n // Fallback for undefined, null, or other types\n console.warn(\n `Invalid tool call arguments type for ${toolCall.function.name}:`,\n typeof toolCall.function.arguments,\n );\n argumentsObj = {};\n }\n\n // Always include name and arguments\n return new gql.ActionExecutionMessage({\n id: toolCall.id,\n name: toolCall.function.name,\n arguments: argumentsObj,\n parentMessageId: parentMessageId,\n });\n}\n\nexport function aguiToolMessageToGQLResultMessage(\n message: agui.Message,\n toolCallNames: Record<string, string>,\n): gql.ResultMessage {\n if (message.role !== \"tool\") {\n throw new Error(\n `Cannot convert message with role ${message.role} to ResultMessage`,\n );\n }\n\n if (!message.toolCallId) {\n throw new Error(\"Tool message must have a toolCallId\");\n }\n\n const actionName = toolCallNames[message.toolCallId] || \"unknown\";\n\n // Handle result content - it could be a string or an object that needs serialization\n let resultContent: string;\n const messageContent = message.content || \"\";\n\n if (typeof messageContent === \"string\") {\n // Expected case: content is already a string\n resultContent = messageContent;\n } else if (typeof messageContent === \"object\" && messageContent !== null) {\n // Handle case where content is an object that needs to be serialized\n try {\n resultContent = JSON.stringify(messageContent);\n } catch (error) {\n console.warn(`Failed to stringify tool result for ${actionName}:`, error);\n resultContent = String(messageContent);\n }\n } else {\n // Handle other types (number, boolean, etc.)\n resultContent = String(messageContent);\n }\n\n return new gql.ResultMessage({\n id: message.id,\n result: resultContent,\n actionExecutionId: message.toolCallId,\n actionName: message.toolName || actionName,\n });\n}\n\n// New function to handle AGUI messages with render functions\nexport function aguiMessageWithRenderToGQL(\n message: agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n // Handle the special case: assistant messages with render function but no tool calls\n if (\n message.role === \"assistant\" &&\n \"generativeUI\" in message &&\n message.generativeUI &&\n !message.toolCalls\n ) {\n const gqlMessages: gql.Message[] = [];\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName: \"unknown\",\n state: {},\n role: gql.Role.assistant,\n }),\n );\n if (coAgentStateRenders) {\n coAgentStateRenders.unknown = {\n name: \"unknown\",\n render: message.generativeUI,\n };\n }\n return gqlMessages;\n }\n\n // For all other cases, delegate to aguiToGQL\n return aguiToGQL([message], actions, coAgentStateRenders);\n}\n\nexport function aguiMessageWithImageToGQLMessage(\n message: agui.Message,\n): gql.ImageMessage {\n if (!hasImageProperty(message)) {\n throw new Error(\n `Cannot convert message to ImageMessage: missing format or bytes`,\n );\n }\n\n let roleValue: MessageRole;\n if (message.role === \"assistant\") {\n roleValue = gql.Role.assistant;\n } else {\n roleValue = gql.Role.user;\n }\n\n if (message.role !== \"assistant\" && message.role !== \"user\") {\n throw new Error(\n `Cannot convert message with role ${message.role} to ImageMessage`,\n );\n }\n\n return new gql.ImageMessage({\n id: message.id,\n format: message.image!.format,\n bytes: message.image!.bytes,\n role: roleValue,\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { ActionExecutionMessage, AgentStateMessage, ImageMessage, ResultMessage, Role, TextMessage } from "../types/converted/index.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/graphql/message-conversion/agui-to-gql.ts
|
|
5
|
+
function extractAgentName(message) {
|
|
6
|
+
if (message.role !== "assistant") throw new Error(`Cannot extract agent name from message with role ${message.role}`);
|
|
7
|
+
return message.agentName || "unknown";
|
|
8
|
+
}
|
|
9
|
+
function isAgentStateMessage(message) {
|
|
10
|
+
return message.role === "assistant" && "agentName" in message && "state" in message;
|
|
11
|
+
}
|
|
12
|
+
function hasImageProperty(message) {
|
|
13
|
+
if (!(message.role === "assistant" || message.role === "user") || message.image === void 0) return false;
|
|
14
|
+
if (message.image.format === void 0 || message.image.bytes === void 0) return false;
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
function normalizeMessageContent(content) {
|
|
18
|
+
if (typeof content === "string" || typeof content === "undefined") return content || "";
|
|
19
|
+
if (Array.isArray(content)) return content.map((part) => {
|
|
20
|
+
if (part?.type === "text") return part.text;
|
|
21
|
+
if (part?.type === "binary") return part.data || part.url || part.filename || `[binary:${part.mimeType}]`;
|
|
22
|
+
return "";
|
|
23
|
+
}).filter(Boolean).join("\n");
|
|
24
|
+
if (content && typeof content === "object") try {
|
|
25
|
+
return JSON.stringify(content);
|
|
26
|
+
} catch (error) {
|
|
27
|
+
console.warn("Failed to serialize message content", error);
|
|
28
|
+
}
|
|
29
|
+
return String(content ?? "");
|
|
30
|
+
}
|
|
31
|
+
function aguiToGQL(messages, actions, coAgentStateRenders) {
|
|
32
|
+
const gqlMessages = [];
|
|
33
|
+
messages = Array.isArray(messages) ? messages : [messages];
|
|
34
|
+
const toolCallNames = {};
|
|
35
|
+
for (const message of messages) {
|
|
36
|
+
if (isAgentStateMessage(message)) {
|
|
37
|
+
const agentName = extractAgentName(message);
|
|
38
|
+
const state = "state" in message && message.state ? message.state : {};
|
|
39
|
+
gqlMessages.push(new AgentStateMessage({
|
|
40
|
+
id: message.id,
|
|
41
|
+
agentName,
|
|
42
|
+
state,
|
|
43
|
+
role: Role.assistant
|
|
44
|
+
}));
|
|
45
|
+
if ("generativeUI" in message && message.generativeUI && coAgentStateRenders) coAgentStateRenders[agentName] = {
|
|
46
|
+
name: agentName,
|
|
47
|
+
render: message.generativeUI
|
|
48
|
+
};
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (hasImageProperty(message)) {
|
|
52
|
+
gqlMessages.push(aguiMessageWithImageToGQLMessage(message));
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (message.role === "assistant" && message.toolCalls) {
|
|
56
|
+
gqlMessages.push(aguiTextMessageToGQLMessage(message));
|
|
57
|
+
for (const toolCall of message.toolCalls) {
|
|
58
|
+
toolCallNames[toolCall.id] = toolCall.function.name;
|
|
59
|
+
const actionExecMsg = aguiToolCallToGQLActionExecution(toolCall, message.id);
|
|
60
|
+
if ("generativeUI" in message && message.generativeUI && actions) {
|
|
61
|
+
const actionName = toolCall.function.name;
|
|
62
|
+
const specificAction = Object.values(actions).find((action) => action.name === actionName);
|
|
63
|
+
const wildcardAction = Object.values(actions).find((action) => action.name === "*");
|
|
64
|
+
if (specificAction) specificAction.render = message.generativeUI;
|
|
65
|
+
else if (wildcardAction) wildcardAction.render = message.generativeUI;
|
|
66
|
+
}
|
|
67
|
+
gqlMessages.push(actionExecMsg);
|
|
68
|
+
}
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (message.role === "reasoning") continue;
|
|
72
|
+
if (message.role === "developer" || message.role === "system" || message.role === "assistant" || message.role === "user") {
|
|
73
|
+
gqlMessages.push(aguiTextMessageToGQLMessage(message));
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (message.role === "tool") {
|
|
77
|
+
gqlMessages.push(aguiToolMessageToGQLResultMessage(message, toolCallNames));
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
throw new Error(`Unknown message role: "${message.role}" in message with id: ${message.id}`);
|
|
81
|
+
}
|
|
82
|
+
return gqlMessages;
|
|
83
|
+
}
|
|
84
|
+
function aguiTextMessageToGQLMessage(message) {
|
|
85
|
+
if (message.role !== "developer" && message.role !== "system" && message.role !== "assistant" && message.role !== "user") throw new Error(`Cannot convert message with role ${message.role} to TextMessage`);
|
|
86
|
+
let roleValue;
|
|
87
|
+
if (message.role === "developer") roleValue = Role.developer;
|
|
88
|
+
else if (message.role === "system") roleValue = Role.system;
|
|
89
|
+
else if (message.role === "assistant") roleValue = Role.assistant;
|
|
90
|
+
else roleValue = Role.user;
|
|
91
|
+
return new TextMessage({
|
|
92
|
+
id: message.id,
|
|
93
|
+
content: normalizeMessageContent(message.content),
|
|
94
|
+
role: roleValue
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function aguiToolCallToGQLActionExecution(toolCall, parentMessageId) {
|
|
98
|
+
if (toolCall.type !== "function") throw new Error(`Unsupported tool call type: ${toolCall.type}`);
|
|
99
|
+
let argumentsObj;
|
|
100
|
+
if (typeof toolCall.function.arguments === "string") try {
|
|
101
|
+
argumentsObj = JSON.parse(toolCall.function.arguments);
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.warn(`Failed to parse tool call arguments for ${toolCall.function.name}:`, error);
|
|
104
|
+
argumentsObj = {};
|
|
105
|
+
}
|
|
106
|
+
else if (typeof toolCall.function.arguments === "object" && toolCall.function.arguments !== null) argumentsObj = toolCall.function.arguments;
|
|
107
|
+
else {
|
|
108
|
+
console.warn(`Invalid tool call arguments type for ${toolCall.function.name}:`, typeof toolCall.function.arguments);
|
|
109
|
+
argumentsObj = {};
|
|
110
|
+
}
|
|
111
|
+
return new ActionExecutionMessage({
|
|
112
|
+
id: toolCall.id,
|
|
113
|
+
name: toolCall.function.name,
|
|
114
|
+
arguments: argumentsObj,
|
|
115
|
+
parentMessageId
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
function aguiToolMessageToGQLResultMessage(message, toolCallNames) {
|
|
119
|
+
if (message.role !== "tool") throw new Error(`Cannot convert message with role ${message.role} to ResultMessage`);
|
|
120
|
+
if (!message.toolCallId) throw new Error("Tool message must have a toolCallId");
|
|
121
|
+
const actionName = toolCallNames[message.toolCallId] || "unknown";
|
|
122
|
+
let resultContent;
|
|
123
|
+
const messageContent = message.content || "";
|
|
124
|
+
if (typeof messageContent === "string") resultContent = messageContent;
|
|
125
|
+
else if (typeof messageContent === "object" && messageContent !== null) try {
|
|
126
|
+
resultContent = JSON.stringify(messageContent);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.warn(`Failed to stringify tool result for ${actionName}:`, error);
|
|
129
|
+
resultContent = String(messageContent);
|
|
130
|
+
}
|
|
131
|
+
else resultContent = String(messageContent);
|
|
132
|
+
return new ResultMessage({
|
|
133
|
+
id: message.id,
|
|
134
|
+
result: resultContent,
|
|
135
|
+
actionExecutionId: message.toolCallId,
|
|
136
|
+
actionName: message.toolName || actionName
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function aguiMessageWithImageToGQLMessage(message) {
|
|
140
|
+
if (!hasImageProperty(message)) throw new Error(`Cannot convert message to ImageMessage: missing format or bytes`);
|
|
141
|
+
let roleValue;
|
|
142
|
+
if (message.role === "assistant") roleValue = Role.assistant;
|
|
143
|
+
else roleValue = Role.user;
|
|
144
|
+
if (message.role !== "assistant" && message.role !== "user") throw new Error(`Cannot convert message with role ${message.role} to ImageMessage`);
|
|
145
|
+
return new ImageMessage({
|
|
146
|
+
id: message.id,
|
|
147
|
+
format: message.image.format,
|
|
148
|
+
bytes: message.image.bytes,
|
|
149
|
+
role: roleValue
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
//#endregion
|
|
154
|
+
export { aguiToGQL };
|
|
155
|
+
//# sourceMappingURL=agui-to-gql.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agui-to-gql.mjs","names":["gql.AgentStateMessage","gql.TextMessage","gql.ActionExecutionMessage","gql.ResultMessage","gql.ImageMessage"],"sources":["../../../src/graphql/message-conversion/agui-to-gql.ts"],"sourcesContent":["import * as gql from \"../types/converted/index\";\nimport { MessageRole } from \"../types/enums\";\nimport agui from \"@copilotkit/shared\"; // named agui for clarity, but this only includes agui message types\n\n// Helper function to extract agent name from message\nfunction extractAgentName(message: agui.Message): string {\n if (message.role !== \"assistant\") {\n throw new Error(\n `Cannot extract agent name from message with role ${message.role}`,\n );\n }\n\n return message.agentName || \"unknown\";\n}\n\n// Type guard for agent state message\nfunction isAgentStateMessage(message: agui.Message): boolean {\n return (\n message.role === \"assistant\" && \"agentName\" in message && \"state\" in message\n );\n}\n\n// Type guard for messages with image property\nfunction hasImageProperty(message: agui.Message): boolean {\n const canContainImage =\n message.role === \"assistant\" || message.role === \"user\";\n if (!canContainImage || message.image === undefined) {\n return false;\n }\n\n const isMalformed =\n message.image.format === undefined || message.image.bytes === undefined;\n if (isMalformed) {\n return false;\n }\n\n return true;\n}\n\nfunction normalizeMessageContent(content: agui.Message[\"content\"]): string {\n if (typeof content === \"string\" || typeof content === \"undefined\") {\n return content || \"\";\n }\n\n if (Array.isArray(content)) {\n return content\n .map((part) => {\n if (part?.type === \"text\") {\n return part.text;\n }\n if (part?.type === \"binary\") {\n return (\n part.data ||\n part.url ||\n part.filename ||\n `[binary:${part.mimeType}]`\n );\n }\n return \"\";\n })\n .filter(Boolean)\n .join(\"\\n\");\n }\n\n if (content && typeof content === \"object\") {\n try {\n return JSON.stringify(content);\n } catch (error) {\n console.warn(\"Failed to serialize message content\", error);\n }\n }\n\n return String(content ?? \"\");\n}\n\n/*\n ----------------------------\n AGUI Message -> GQL Message\n ----------------------------\n*/\nexport function aguiToGQL(\n messages: agui.Message[] | agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n const gqlMessages: gql.Message[] = [];\n messages = Array.isArray(messages) ? messages : [messages];\n\n // Track tool call names by their IDs for use in result messages\n const toolCallNames: Record<string, string> = {};\n\n for (const message of messages) {\n // Agent state message support\n if (isAgentStateMessage(message)) {\n const agentName = extractAgentName(message);\n const state = \"state\" in message && message.state ? message.state : {};\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName,\n state,\n role: gql.Role.assistant,\n }),\n );\n // Optionally preserve render function\n if (\n \"generativeUI\" in message &&\n message.generativeUI &&\n coAgentStateRenders\n ) {\n coAgentStateRenders[agentName] = {\n name: agentName,\n render: message.generativeUI,\n };\n }\n continue;\n }\n\n if (hasImageProperty(message)) {\n gqlMessages.push(aguiMessageWithImageToGQLMessage(message));\n continue;\n }\n\n // Action execution message support\n if (message.role === \"assistant\" && message.toolCalls) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n for (const toolCall of message.toolCalls) {\n // Track the tool call name by its ID\n toolCallNames[toolCall.id] = toolCall.function.name;\n\n const actionExecMsg = aguiToolCallToGQLActionExecution(\n toolCall,\n message.id,\n );\n // Preserve render function in actions context\n if (\"generativeUI\" in message && message.generativeUI && actions) {\n const actionName = toolCall.function.name;\n // Check for specific action first, then wild card action\n const specificAction = Object.values(actions).find(\n (action: any) => action.name === actionName,\n );\n const wildcardAction = Object.values(actions).find(\n (action: any) => action.name === \"*\",\n );\n\n // Assign render function to the matching action (specific takes priority)\n if (specificAction) {\n specificAction.render = message.generativeUI;\n } else if (wildcardAction) {\n wildcardAction.render = message.generativeUI;\n }\n }\n gqlMessages.push(actionExecMsg);\n }\n continue;\n }\n // Reasoning messages are ephemeral display-only content with no GQL equivalent — skip them\n if (message.role === \"reasoning\") {\n continue;\n }\n // Regular text messages\n if (\n message.role === \"developer\" ||\n message.role === \"system\" ||\n message.role === \"assistant\" ||\n message.role === \"user\"\n ) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n continue;\n }\n // Tool result message\n if (message.role === \"tool\") {\n gqlMessages.push(\n aguiToolMessageToGQLResultMessage(message, toolCallNames),\n );\n continue;\n }\n throw new Error(\n `Unknown message role: \"${(message as any).role}\" in message with id: ${(message as any).id}`,\n );\n }\n\n return gqlMessages;\n}\n\nexport function aguiTextMessageToGQLMessage(\n message: agui.Message,\n): gql.TextMessage {\n if (\n message.role !== \"developer\" &&\n message.role !== \"system\" &&\n message.role !== \"assistant\" &&\n message.role !== \"user\"\n ) {\n throw new Error(\n `Cannot convert message with role ${message.role} to TextMessage`,\n );\n }\n\n let roleValue: MessageRole;\n\n if (message.role === \"developer\") {\n roleValue = gql.Role.developer;\n } else if (message.role === \"system\") {\n roleValue = gql.Role.system;\n } else if (message.role === \"assistant\") {\n roleValue = gql.Role.assistant;\n } else {\n roleValue = gql.Role.user;\n }\n\n return new gql.TextMessage({\n id: message.id,\n content: normalizeMessageContent(message.content),\n role: roleValue,\n });\n}\n\nexport function aguiToolCallToGQLActionExecution(\n toolCall: agui.ToolCall,\n parentMessageId: string,\n): gql.ActionExecutionMessage {\n if (toolCall.type !== \"function\") {\n throw new Error(`Unsupported tool call type: ${toolCall.type}`);\n }\n\n // Handle arguments - they should be a JSON string in AGUI format,\n // but we need to convert them to an object for GQL format\n let argumentsObj: any;\n\n if (typeof toolCall.function.arguments === \"string\") {\n // Expected case: arguments is a JSON string\n try {\n argumentsObj = JSON.parse(toolCall.function.arguments);\n } catch (error) {\n console.warn(\n `Failed to parse tool call arguments for ${toolCall.function.name}:`,\n error,\n );\n // Provide fallback empty object to prevent application crash\n argumentsObj = {};\n }\n } else if (\n typeof toolCall.function.arguments === \"object\" &&\n toolCall.function.arguments !== null\n ) {\n // Backward compatibility: arguments is already an object\n argumentsObj = toolCall.function.arguments;\n } else {\n // Fallback for undefined, null, or other types\n console.warn(\n `Invalid tool call arguments type for ${toolCall.function.name}:`,\n typeof toolCall.function.arguments,\n );\n argumentsObj = {};\n }\n\n // Always include name and arguments\n return new gql.ActionExecutionMessage({\n id: toolCall.id,\n name: toolCall.function.name,\n arguments: argumentsObj,\n parentMessageId: parentMessageId,\n });\n}\n\nexport function aguiToolMessageToGQLResultMessage(\n message: agui.Message,\n toolCallNames: Record<string, string>,\n): gql.ResultMessage {\n if (message.role !== \"tool\") {\n throw new Error(\n `Cannot convert message with role ${message.role} to ResultMessage`,\n );\n }\n\n if (!message.toolCallId) {\n throw new Error(\"Tool message must have a toolCallId\");\n }\n\n const actionName = toolCallNames[message.toolCallId] || \"unknown\";\n\n // Handle result content - it could be a string or an object that needs serialization\n let resultContent: string;\n const messageContent = message.content || \"\";\n\n if (typeof messageContent === \"string\") {\n // Expected case: content is already a string\n resultContent = messageContent;\n } else if (typeof messageContent === \"object\" && messageContent !== null) {\n // Handle case where content is an object that needs to be serialized\n try {\n resultContent = JSON.stringify(messageContent);\n } catch (error) {\n console.warn(`Failed to stringify tool result for ${actionName}:`, error);\n resultContent = String(messageContent);\n }\n } else {\n // Handle other types (number, boolean, etc.)\n resultContent = String(messageContent);\n }\n\n return new gql.ResultMessage({\n id: message.id,\n result: resultContent,\n actionExecutionId: message.toolCallId,\n actionName: message.toolName || actionName,\n });\n}\n\n// New function to handle AGUI messages with render functions\nexport function aguiMessageWithRenderToGQL(\n message: agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n // Handle the special case: assistant messages with render function but no tool calls\n if (\n message.role === \"assistant\" &&\n \"generativeUI\" in message &&\n message.generativeUI &&\n !message.toolCalls\n ) {\n const gqlMessages: gql.Message[] = [];\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName: \"unknown\",\n state: {},\n role: gql.Role.assistant,\n }),\n );\n if (coAgentStateRenders) {\n coAgentStateRenders.unknown = {\n name: \"unknown\",\n render: message.generativeUI,\n };\n }\n return gqlMessages;\n }\n\n // For all other cases, delegate to aguiToGQL\n return aguiToGQL([message], actions, coAgentStateRenders);\n}\n\nexport function aguiMessageWithImageToGQLMessage(\n message: agui.Message,\n): gql.ImageMessage {\n if (!hasImageProperty(message)) {\n throw new Error(\n `Cannot convert message to ImageMessage: missing format or bytes`,\n );\n }\n\n let roleValue: MessageRole;\n if (message.role === \"assistant\") {\n roleValue = gql.Role.assistant;\n } else {\n roleValue = gql.Role.user;\n }\n\n if (message.role !== \"assistant\" && message.role !== \"user\") {\n throw new Error(\n `Cannot convert message with role ${message.role} to ImageMessage`,\n );\n }\n\n return new gql.ImageMessage({\n id: message.id,\n format: message.image!.format,\n bytes: message.image!.bytes,\n role: roleValue,\n });\n}\n"],"mappings":"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"}
|