@copilotkit/runtime 1.57.2 → 1.57.4
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/lib/runtime/copilot-runtime.cjs +2 -0
- package/dist/lib/runtime/copilot-runtime.cjs.map +1 -1
- package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -1
- package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -1
- package/dist/lib/runtime/copilot-runtime.mjs +2 -0
- package/dist/lib/runtime/copilot-runtime.mjs.map +1 -1
- package/dist/package.cjs +52 -19
- package/dist/package.mjs +52 -19
- package/dist/v2/runtime/core/runtime.cjs +4 -1
- package/dist/v2/runtime/core/runtime.cjs.map +1 -1
- package/dist/v2/runtime/core/runtime.d.cts.map +1 -1
- package/dist/v2/runtime/core/runtime.d.mts.map +1 -1
- package/dist/v2/runtime/core/runtime.mjs +4 -1
- package/dist/v2/runtime/core/runtime.mjs.map +1 -1
- package/dist/v2/runtime/handlers/get-runtime-info.cjs +1 -1
- package/dist/v2/runtime/handlers/get-runtime-info.mjs +1 -1
- package/dist/v2/runtime/handlers/handle-connect.cjs +1 -1
- package/dist/v2/runtime/handlers/handle-connect.mjs +1 -1
- package/dist/v2/runtime/handlers/handle-run.cjs +1 -1
- package/dist/v2/runtime/handlers/handle-run.mjs +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.cjs +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.mjs +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.mjs.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.cjs +22 -6
- package/dist/v2/runtime/telemetry/telemetry-client.cjs.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.mjs +27 -11
- package/dist/v2/runtime/telemetry/telemetry-client.mjs.map +1 -1
- package/package.json +8 -18
- package/skills/runtime/SKILL.md +98 -0
- package/skills/runtime/references/agent-runners-custom.md +161 -0
- package/skills/runtime/references/agent-runners-in-memory.md +64 -0
- package/skills/runtime/references/agent-runners-sqlite.md +90 -0
- package/skills/runtime/references/agent-runners.md +304 -0
- package/skills/runtime/references/built-in-agent-factory-modes.md +232 -0
- package/skills/runtime/references/built-in-agent-helper-utilities.md +123 -0
- package/skills/runtime/references/built-in-agent-model-identifiers.md +59 -0
- package/skills/runtime/references/built-in-agent.md +523 -0
- package/skills/runtime/references/intelligence-mode.md +336 -0
- package/skills/runtime/references/middleware.md +376 -0
- package/skills/runtime/references/server-side-tools.md +414 -0
- package/skills/runtime/references/setup-endpoint.md +503 -0
- package/skills/runtime/references/transcription.md +287 -0
- package/skills/runtime/references/wiring-a2a.md +40 -0
- package/skills/runtime/references/wiring-adk.md +45 -0
- package/skills/runtime/references/wiring-ag2.md +41 -0
- package/skills/runtime/references/wiring-agno.md +39 -0
- package/skills/runtime/references/wiring-aws-strands.md +59 -0
- package/skills/runtime/references/wiring-crewai-crews.md +51 -0
- package/skills/runtime/references/wiring-crewai-flows.md +45 -0
- package/skills/runtime/references/wiring-external-agents.md +348 -0
- package/skills/runtime/references/wiring-langgraph.md +50 -0
- package/skills/runtime/references/wiring-llamaindex.md +39 -0
- package/skills/runtime/references/wiring-mastra.md +70 -0
- package/skills/runtime/references/wiring-mcp-apps-middleware.md +68 -0
- package/skills/runtime/references/wiring-ms-agent-framework.md +41 -0
- package/skills/runtime/references/wiring-pydantic-ai.md +45 -0
- package/CHANGELOG.md +0 -3624
- package/__snapshots__/schema/schema.graphql +0 -371
- package/dist/v2/runtime/telemetry/scarf-client.cjs +0 -32
- package/dist/v2/runtime/telemetry/scarf-client.cjs.map +0 -1
- package/dist/v2/runtime/telemetry/scarf-client.mjs +0 -32
- package/dist/v2/runtime/telemetry/scarf-client.mjs.map +0 -1
- package/scripts/generate-gql-schema.ts +0 -16
- package/src/agent/__tests__/agent-test-helpers.ts +0 -476
- package/src/agent/__tests__/agent.test.ts +0 -593
- package/src/agent/__tests__/ai-sdk-v6-compat.test.ts +0 -116
- package/src/agent/__tests__/basic-agent.test.ts +0 -1698
- package/src/agent/__tests__/capabilities.test.ts +0 -81
- package/src/agent/__tests__/config-tools-execution.test.ts +0 -516
- package/src/agent/__tests__/converter-aisdk.test.ts +0 -692
- package/src/agent/__tests__/converter-custom.test.ts +0 -319
- package/src/agent/__tests__/converter-tanstack-input.test.ts +0 -211
- package/src/agent/__tests__/converter-tanstack.test.ts +0 -594
- package/src/agent/__tests__/mcp-clients.test.ts +0 -246
- package/src/agent/__tests__/mcp-servers-integration.test.ts +0 -373
- package/src/agent/__tests__/multimodal-tanstack.test.ts +0 -284
- package/src/agent/__tests__/multimodal.test.ts +0 -176
- package/src/agent/__tests__/property-overrides.test.ts +0 -598
- package/src/agent/__tests__/provider-id-collision.test.ts +0 -195
- package/src/agent/__tests__/standard-schema-tools.test.ts +0 -313
- package/src/agent/__tests__/standard-schema-types.test.ts +0 -158
- package/src/agent/__tests__/state-tools.test.ts +0 -436
- package/src/agent/__tests__/test-helpers.ts +0 -197
- package/src/agent/__tests__/utils.test.ts +0 -536
- package/src/agent/__tests__/zod-regression.test.ts +0 -350
- package/src/agent/converters/aisdk.ts +0 -326
- package/src/agent/converters/index.ts +0 -7
- package/src/agent/converters/tanstack.ts +0 -451
- package/src/agent/index.ts +0 -1743
- package/src/agents/langgraph/__tests__/event-source.test.ts +0 -256
- package/src/agents/langgraph/event-source.ts +0 -365
- package/src/agents/langgraph/events.ts +0 -394
- package/src/graphql/inputs/action.input.ts +0 -16
- package/src/graphql/inputs/agent-session.input.ts +0 -13
- package/src/graphql/inputs/agent-state.input.ts +0 -13
- package/src/graphql/inputs/cloud-guardrails.input.ts +0 -16
- package/src/graphql/inputs/cloud.input.ts +0 -8
- package/src/graphql/inputs/context-property.input.ts +0 -10
- package/src/graphql/inputs/copilot-context.input.ts +0 -10
- package/src/graphql/inputs/custom-property.input.ts +0 -15
- package/src/graphql/inputs/extensions.input.ts +0 -21
- package/src/graphql/inputs/forwarded-parameters.input.ts +0 -22
- package/src/graphql/inputs/frontend.input.ts +0 -14
- package/src/graphql/inputs/generate-copilot-response.input.ts +0 -59
- package/src/graphql/inputs/load-agent-state.input.ts +0 -10
- package/src/graphql/inputs/message.input.ts +0 -110
- package/src/graphql/inputs/meta-event.input.ts +0 -18
- package/src/graphql/message-conversion/agui-to-gql.test.ts +0 -1384
- package/src/graphql/message-conversion/agui-to-gql.ts +0 -384
- package/src/graphql/message-conversion/gql-to-agui.test.ts +0 -1653
- package/src/graphql/message-conversion/gql-to-agui.ts +0 -297
- package/src/graphql/message-conversion/index.ts +0 -2
- package/src/graphql/message-conversion/roundtrip-conversion.test.ts +0 -561
- package/src/graphql/resolvers/__tests__/resolve-message-id.test.ts +0 -25
- package/src/graphql/resolvers/copilot.resolver.ts +0 -785
- package/src/graphql/resolvers/resolve-message-id.ts +0 -14
- package/src/graphql/resolvers/state.resolver.ts +0 -30
- package/src/graphql/types/agents-response.type.ts +0 -19
- package/src/graphql/types/base/index.ts +0 -10
- package/src/graphql/types/converted/index.ts +0 -183
- package/src/graphql/types/copilot-response.type.ts +0 -141
- package/src/graphql/types/enums.ts +0 -38
- package/src/graphql/types/extensions-response.type.ts +0 -23
- package/src/graphql/types/guardrails-result.type.ts +0 -20
- package/src/graphql/types/load-agent-state-response.type.ts +0 -17
- package/src/graphql/types/message-status.type.ts +0 -48
- package/src/graphql/types/meta-events.type.ts +0 -78
- package/src/graphql/types/response-status.type.ts +0 -77
- package/src/index.ts +0 -3
- package/src/langgraph.ts +0 -1
- package/src/lib/__tests__/telemetry-disclosure.test.ts +0 -55
- package/src/lib/cloud/index.ts +0 -4
- package/src/lib/error-messages.ts +0 -211
- package/src/lib/index.ts +0 -52
- package/src/lib/integrations/index.ts +0 -6
- package/src/lib/integrations/nest/index.ts +0 -21
- package/src/lib/integrations/nextjs/app-router.ts +0 -47
- package/src/lib/integrations/nextjs/pages-router.ts +0 -45
- package/src/lib/integrations/node-express/index.ts +0 -21
- package/src/lib/integrations/node-http/__tests__/request-duck-type.test.ts +0 -66
- package/src/lib/integrations/node-http/index.ts +0 -187
- package/src/lib/integrations/node-http/request-handler.ts +0 -128
- package/src/lib/integrations/shared.ts +0 -112
- package/src/lib/logger.ts +0 -31
- package/src/lib/observability.ts +0 -167
- package/src/lib/runtime/__tests__/copilot-runtime-error.test.ts +0 -183
- package/src/lib/runtime/__tests__/handle-service-adapter.test.ts +0 -108
- package/src/lib/runtime/__tests__/mcp-tools-utils.test.ts +0 -499
- package/src/lib/runtime/__tests__/on-after-request.test.ts +0 -122
- package/src/lib/runtime/__tests__/retry-utils.test.ts +0 -137
- package/src/lib/runtime/__tests__/v1-agent-factory.test.ts +0 -109
- package/src/lib/runtime/agent-integrations/langgraph/__tests__/dispatch-event-filtering.test.ts +0 -345
- package/src/lib/runtime/agent-integrations/langgraph/__tests__/run-message-filtering.test.ts +0 -156
- package/src/lib/runtime/agent-integrations/langgraph/agent.ts +0 -263
- package/src/lib/runtime/agent-integrations/langgraph/consts.ts +0 -37
- package/src/lib/runtime/agent-integrations/langgraph/index.ts +0 -2
- package/src/lib/runtime/copilot-runtime.ts +0 -863
- package/src/lib/runtime/mcp-tools-utils.ts +0 -313
- package/src/lib/runtime/retry-utils.ts +0 -141
- package/src/lib/runtime/telemetry-agent-runner.ts +0 -151
- package/src/lib/runtime/types.ts +0 -48
- package/src/lib/runtime/utils.ts +0 -93
- package/src/lib/streaming.ts +0 -220
- package/src/lib/telemetry-client.ts +0 -66
- package/src/lib/telemetry-disclosure.ts +0 -53
- package/src/service-adapters/anthropic/anthropic-adapter.ts +0 -532
- package/src/service-adapters/anthropic/utils.ts +0 -219
- package/src/service-adapters/bedrock/bedrock-adapter.ts +0 -73
- package/src/service-adapters/conversion.test.ts +0 -56
- package/src/service-adapters/conversion.ts +0 -69
- package/src/service-adapters/empty/empty-adapter.ts +0 -38
- package/src/service-adapters/events.ts +0 -337
- package/src/service-adapters/experimental/ollama/ollama-adapter.ts +0 -84
- package/src/service-adapters/google/google-genai-adapter.test.ts +0 -151
- package/src/service-adapters/google/google-genai-adapter.ts +0 -95
- package/src/service-adapters/groq/groq-adapter.ts +0 -229
- package/src/service-adapters/index.ts +0 -18
- package/src/service-adapters/langchain/langchain-adapter.ts +0 -113
- package/src/service-adapters/langchain/langserve.ts +0 -88
- package/src/service-adapters/langchain/types.ts +0 -20
- package/src/service-adapters/langchain/utils.ts +0 -330
- package/src/service-adapters/openai/__tests__/openai-v5-compat.test.ts +0 -177
- package/src/service-adapters/openai/openai-adapter.ts +0 -324
- package/src/service-adapters/openai/openai-assistant-adapter.ts +0 -385
- package/src/service-adapters/openai/utils.ts +0 -305
- package/src/service-adapters/service-adapter.ts +0 -50
- package/src/service-adapters/shared/error-utils.ts +0 -64
- package/src/service-adapters/shared/index.ts +0 -2
- package/src/service-adapters/shared/sdk-client-utils.ts +0 -19
- package/src/service-adapters/unify/unify-adapter.ts +0 -165
- package/src/utils/failed-response-status-reasons.ts +0 -70
- package/src/utils/index.ts +0 -1
- package/src/v2/express.ts +0 -1
- package/src/v2/hono.ts +0 -1
- package/src/v2/index.ts +0 -5
- package/src/v2/node.ts +0 -1
- package/src/v2/runtime/__tests__/agents-factory.test.ts +0 -136
- package/src/v2/runtime/__tests__/backward-compat.test.ts +0 -261
- package/src/v2/runtime/__tests__/code-review-fixes.test.ts +0 -500
- package/src/v2/runtime/__tests__/cors-credentials.test.ts +0 -320
- package/src/v2/runtime/__tests__/debug-sse-response.test.ts +0 -302
- package/src/v2/runtime/__tests__/express-adapter.test.ts +0 -188
- package/src/v2/runtime/__tests__/express-body-order.test.ts +0 -76
- package/src/v2/runtime/__tests__/express-fetch-bridge.test.ts +0 -344
- package/src/v2/runtime/__tests__/express-single-sse.test.ts +0 -122
- package/src/v2/runtime/__tests__/express-single-telemetry.integration.test.ts +0 -65
- package/src/v2/runtime/__tests__/express-telemetry.integration.test.ts +0 -101
- package/src/v2/runtime/__tests__/fetch-cors.test.ts +0 -205
- package/src/v2/runtime/__tests__/fetch-handler-validation.test.ts +0 -440
- package/src/v2/runtime/__tests__/fetch-handler.test.ts +0 -456
- package/src/v2/runtime/__tests__/fetch-router.test.ts +0 -276
- package/src/v2/runtime/__tests__/get-runtime-info.test.ts +0 -335
- package/src/v2/runtime/__tests__/handle-connect.test.ts +0 -585
- package/src/v2/runtime/__tests__/handle-run.test.ts +0 -1388
- package/src/v2/runtime/__tests__/handle-threads.test.ts +0 -930
- package/src/v2/runtime/__tests__/handle-transcribe.test.ts +0 -301
- package/src/v2/runtime/__tests__/header-utils.test.ts +0 -88
- package/src/v2/runtime/__tests__/hono-adapter.test.ts +0 -150
- package/src/v2/runtime/__tests__/hono-single-telemetry.integration.test.ts +0 -46
- package/src/v2/runtime/__tests__/hono-telemetry.integration.test.ts +0 -99
- package/src/v2/runtime/__tests__/hooks-edge-cases.test.ts +0 -457
- package/src/v2/runtime/__tests__/hooks.test.ts +0 -557
- package/src/v2/runtime/__tests__/in-process-agent-runner-messages.test.ts +0 -230
- package/src/v2/runtime/__tests__/in-process-agent-runner.test.ts +0 -1030
- package/src/v2/runtime/__tests__/integration/bun/bun-servers.integration.test.ts +0 -27
- package/src/v2/runtime/__tests__/integration/bun/elysia-multi.ts +0 -32
- package/src/v2/runtime/__tests__/integration/bun/elysia-single.ts +0 -33
- package/src/v2/runtime/__tests__/integration/bun/hono-bun-multi.ts +0 -25
- package/src/v2/runtime/__tests__/integration/bun/hono-bun-single.ts +0 -32
- package/src/v2/runtime/__tests__/integration/helpers/create-test-runtime.ts +0 -15
- package/src/v2/runtime/__tests__/integration/helpers/sse-reader.ts +0 -45
- package/src/v2/runtime/__tests__/integration/helpers/test-agent.ts +0 -58
- package/src/v2/runtime/__tests__/integration/node-servers.integration.test.ts +0 -58
- package/src/v2/runtime/__tests__/integration/servers/express-multi.ts +0 -35
- package/src/v2/runtime/__tests__/integration/servers/express-single.ts +0 -36
- package/src/v2/runtime/__tests__/integration/servers/fetch-direct.ts +0 -39
- package/src/v2/runtime/__tests__/integration/servers/hono-multi.ts +0 -30
- package/src/v2/runtime/__tests__/integration/servers/hono-single.ts +0 -37
- package/src/v2/runtime/__tests__/integration/servers/node-multi.ts +0 -45
- package/src/v2/runtime/__tests__/integration/servers/node-single.ts +0 -46
- package/src/v2/runtime/__tests__/integration/servers/types.ts +0 -18
- package/src/v2/runtime/__tests__/integration/suites/debug-events.suite.ts +0 -253
- package/src/v2/runtime/__tests__/integration/suites/multi-endpoint.suite.ts +0 -358
- package/src/v2/runtime/__tests__/integration/suites/single-endpoint.suite.ts +0 -363
- package/src/v2/runtime/__tests__/intelligence-run-telemetry.test.ts +0 -194
- package/src/v2/runtime/__tests__/mcp-apps-middleware-integration.test.ts +0 -275
- package/src/v2/runtime/__tests__/middleware-express.test.ts +0 -208
- package/src/v2/runtime/__tests__/middleware-single-express.test.ts +0 -213
- package/src/v2/runtime/__tests__/middleware-single.test.ts +0 -225
- package/src/v2/runtime/__tests__/middleware-sse-parser.test.ts +0 -237
- package/src/v2/runtime/__tests__/middleware.test.ts +0 -250
- package/src/v2/runtime/__tests__/node-fetch-handler.test.ts +0 -157
- package/src/v2/runtime/__tests__/open-generative-ui-middleware.e2e.test.ts +0 -728
- package/src/v2/runtime/__tests__/router-edge-cases.test.ts +0 -217
- package/src/v2/runtime/__tests__/routing-express.test.ts +0 -174
- package/src/v2/runtime/__tests__/routing-single-express.test.ts +0 -168
- package/src/v2/runtime/__tests__/routing-single.test.ts +0 -193
- package/src/v2/runtime/__tests__/routing.test.ts +0 -257
- package/src/v2/runtime/__tests__/runtime.test.ts +0 -234
- package/src/v2/runtime/__tests__/sse-response-telemetry.test.ts +0 -108
- package/src/v2/runtime/__tests__/telemetry.test.ts +0 -167
- package/src/v2/runtime/__tests__/thread-names.test.ts +0 -188
- package/src/v2/runtime/core/__tests__/debug-event-bus.test.ts +0 -156
- package/src/v2/runtime/core/debug-event-bus.ts +0 -45
- package/src/v2/runtime/core/fetch-cors.ts +0 -136
- package/src/v2/runtime/core/fetch-handler.ts +0 -492
- package/src/v2/runtime/core/fetch-router.ts +0 -203
- package/src/v2/runtime/core/hooks.ts +0 -160
- package/src/v2/runtime/core/middleware-sse-parser.ts +0 -210
- package/src/v2/runtime/core/middleware.ts +0 -115
- package/src/v2/runtime/core/runtime.ts +0 -432
- package/src/v2/runtime/endpoints/express-fetch-bridge.ts +0 -137
- package/src/v2/runtime/endpoints/express-single.ts +0 -54
- package/src/v2/runtime/endpoints/express.ts +0 -179
- package/src/v2/runtime/endpoints/hono-single.ts +0 -60
- package/src/v2/runtime/endpoints/hono.ts +0 -89
- package/src/v2/runtime/endpoints/index.ts +0 -4
- package/src/v2/runtime/endpoints/node-fetch-handler.ts +0 -48
- package/src/v2/runtime/endpoints/node.ts +0 -28
- package/src/v2/runtime/endpoints/single-route-helpers.ts +0 -125
- package/src/v2/runtime/express.ts +0 -2
- package/src/v2/runtime/handlers/__tests__/handle-debug-events.test.ts +0 -176
- package/src/v2/runtime/handlers/get-runtime-info.ts +0 -101
- package/src/v2/runtime/handlers/handle-connect.ts +0 -80
- package/src/v2/runtime/handlers/handle-debug-events.ts +0 -52
- package/src/v2/runtime/handlers/handle-run.ts +0 -111
- package/src/v2/runtime/handlers/handle-stop.ts +0 -77
- package/src/v2/runtime/handlers/handle-threads.ts +0 -11
- package/src/v2/runtime/handlers/handle-transcribe.ts +0 -269
- package/src/v2/runtime/handlers/header-utils.ts +0 -24
- package/src/v2/runtime/handlers/intelligence/connect.ts +0 -102
- package/src/v2/runtime/handlers/intelligence/run.ts +0 -351
- package/src/v2/runtime/handlers/intelligence/thread-names.ts +0 -246
- package/src/v2/runtime/handlers/intelligence/threads.ts +0 -420
- package/src/v2/runtime/handlers/shared/agent-utils.ts +0 -154
- package/src/v2/runtime/handlers/shared/intelligence-utils.ts +0 -41
- package/src/v2/runtime/handlers/shared/json-response.ts +0 -9
- package/src/v2/runtime/handlers/shared/resolve-intelligence-user.ts +0 -28
- package/src/v2/runtime/handlers/shared/sse-response.ts +0 -215
- package/src/v2/runtime/handlers/sse/__tests__/sse-connect-agent-id.test.ts +0 -71
- package/src/v2/runtime/handlers/sse/connect.ts +0 -30
- package/src/v2/runtime/handlers/sse/run.ts +0 -40
- package/src/v2/runtime/hono.ts +0 -2
- package/src/v2/runtime/index.ts +0 -51
- package/src/v2/runtime/intelligence-platform/__tests__/client.test.ts +0 -601
- package/src/v2/runtime/intelligence-platform/__tests__/intelligence-mcp-helper.test.ts +0 -246
- package/src/v2/runtime/intelligence-platform/client.ts +0 -818
- package/src/v2/runtime/intelligence-platform/index.ts +0 -10
- package/src/v2/runtime/node.ts +0 -6
- package/src/v2/runtime/open-generative-ui-middleware.ts +0 -373
- package/src/v2/runtime/runner/__tests__/finalize-events.test.ts +0 -109
- package/src/v2/runtime/runner/__tests__/in-memory-runner.e2e.test.ts +0 -775
- package/src/v2/runtime/runner/__tests__/in-memory-runner.test.ts +0 -777
- package/src/v2/runtime/runner/__tests__/intelligence-runner.test.ts +0 -1039
- package/src/v2/runtime/runner/agent-runner.ts +0 -35
- package/src/v2/runtime/runner/in-memory.ts +0 -467
- package/src/v2/runtime/runner/index.ts +0 -4
- package/src/v2/runtime/runner/intelligence.ts +0 -498
- package/src/v2/runtime/telemetry/__tests__/instance-created.test.ts +0 -96
- package/src/v2/runtime/telemetry/events.ts +0 -35
- package/src/v2/runtime/telemetry/index.ts +0 -7
- package/src/v2/runtime/telemetry/instance-created.ts +0 -44
- package/src/v2/runtime/telemetry/scarf-client.ts +0 -39
- package/src/v2/runtime/telemetry/telemetry-client.ts +0 -70
- package/src/v2/runtime/transcription-service/transcription-service.ts +0 -11
- package/tests/global.d.ts +0 -1
- package/tests/service-adapters/anthropic/allowlist-approach.test.ts +0 -259
- package/tests/service-adapters/anthropic/anthropic-adapter-language-model.test.ts +0 -101
- package/tests/service-adapters/anthropic/anthropic-adapter.test.ts +0 -645
- package/tests/service-adapters/anthropic/utils-token-trimming.test.ts +0 -301
- package/tests/service-adapters/groq/groq-adapter-language-model.test.ts +0 -102
- package/tests/service-adapters/openai/allowlist-approach.test.ts +0 -294
- package/tests/service-adapters/openai/openai-adapter-language-model.test.ts +0 -122
- package/tests/service-adapters/openai/openai-adapter.test.ts +0 -291
- package/tests/service-adapters/shared/sdk-client-utils.test.ts +0 -36
- package/tests/setup.vitest.ts +0 -8
- package/tests/tsconfig.json +0 -10
- package/tsconfig.json +0 -20
- package/tsdown.config.ts +0 -45
- package/typedoc.json +0 -4
- package/vitest.config.mjs +0 -13
package/src/index.ts
DELETED
package/src/langgraph.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./lib/runtime/agent-integrations/langgraph";
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
afterEach,
|
|
3
|
-
beforeEach,
|
|
4
|
-
describe,
|
|
5
|
-
expect,
|
|
6
|
-
it,
|
|
7
|
-
vi,
|
|
8
|
-
type MockInstance,
|
|
9
|
-
} from "vitest";
|
|
10
|
-
|
|
11
|
-
import {
|
|
12
|
-
_resetRuntimeTelemetryDisclosureForTesting,
|
|
13
|
-
logRuntimeTelemetryDisclosure,
|
|
14
|
-
} from "../telemetry-disclosure";
|
|
15
|
-
|
|
16
|
-
let consoleInfoSpy: MockInstance<typeof console.info>;
|
|
17
|
-
const originalEnv = { ...process.env };
|
|
18
|
-
|
|
19
|
-
beforeEach(() => {
|
|
20
|
-
_resetRuntimeTelemetryDisclosureForTesting();
|
|
21
|
-
consoleInfoSpy = vi.spyOn(console, "info").mockImplementation(() => {});
|
|
22
|
-
// Clear opt-out env vars so the disclosure can fire by default.
|
|
23
|
-
delete process.env.COPILOTKIT_TELEMETRY_DISABLED;
|
|
24
|
-
delete process.env.DO_NOT_TRACK;
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
afterEach(() => {
|
|
28
|
-
vi.restoreAllMocks();
|
|
29
|
-
process.env = { ...originalEnv };
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
describe("logRuntimeTelemetryDisclosure", () => {
|
|
33
|
-
it("logs once per process", () => {
|
|
34
|
-
logRuntimeTelemetryDisclosure();
|
|
35
|
-
logRuntimeTelemetryDisclosure();
|
|
36
|
-
logRuntimeTelemetryDisclosure();
|
|
37
|
-
|
|
38
|
-
expect(consoleInfoSpy).toHaveBeenCalledTimes(1);
|
|
39
|
-
const [message] = consoleInfoSpy.mock.calls[0]!;
|
|
40
|
-
expect(message).toMatch(/anonymous telemetry/i);
|
|
41
|
-
expect(message).toMatch(/COPILOTKIT_TELEMETRY_DISABLED/);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it("does not log when COPILOTKIT_TELEMETRY_DISABLED is set", () => {
|
|
45
|
-
process.env.COPILOTKIT_TELEMETRY_DISABLED = "true";
|
|
46
|
-
logRuntimeTelemetryDisclosure();
|
|
47
|
-
expect(consoleInfoSpy).not.toHaveBeenCalled();
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
it("does not log when DO_NOT_TRACK is set", () => {
|
|
51
|
-
process.env.DO_NOT_TRACK = "1";
|
|
52
|
-
logRuntimeTelemetryDisclosure();
|
|
53
|
-
expect(consoleInfoSpy).not.toHaveBeenCalled();
|
|
54
|
-
});
|
|
55
|
-
});
|
package/src/lib/cloud/index.ts
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error message configuration - Single source of truth for all error messages
|
|
3
|
-
*
|
|
4
|
-
* This centralized configuration system provides:
|
|
5
|
-
*
|
|
6
|
-
* 🎯 **Benefits:**
|
|
7
|
-
* - Single source of truth for all error messages
|
|
8
|
-
* - Easy content management without touching code
|
|
9
|
-
* - Consistent error messaging across the application
|
|
10
|
-
* - Ready for internationalization (i18n)
|
|
11
|
-
* - Type-safe configuration with TypeScript
|
|
12
|
-
* - Categorized errors for better handling
|
|
13
|
-
*
|
|
14
|
-
* 📝 **How to use:**
|
|
15
|
-
* 1. Add new error patterns to `errorPatterns` object
|
|
16
|
-
* 2. Use {context} placeholder for dynamic context injection
|
|
17
|
-
* 3. Specify category, severity, and actionable flags
|
|
18
|
-
* 4. Add fallback messages for error categories
|
|
19
|
-
*
|
|
20
|
-
* 🔧 **How to maintain:**
|
|
21
|
-
* - Content teams can update messages here without touching logic
|
|
22
|
-
* - Developers add new error patterns as needed
|
|
23
|
-
* - Use categories to group similar errors
|
|
24
|
-
* - Mark errors as actionable if users can fix them
|
|
25
|
-
*
|
|
26
|
-
* 🌍 **Future i18n support:**
|
|
27
|
-
* - Replace `message` string with `messages: { en: "...", es: "..." }`
|
|
28
|
-
* - Add locale parameter to helper functions
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* // Adding a new error pattern:
|
|
33
|
-
* "CUSTOM_ERROR": {
|
|
34
|
-
* message: "Custom error occurred in {context}. Please try again.",
|
|
35
|
-
* category: "unknown",
|
|
36
|
-
* severity: "error",
|
|
37
|
-
* actionable: true
|
|
38
|
-
* }
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
export interface ErrorPatternConfig {
|
|
43
|
-
message: string;
|
|
44
|
-
category:
|
|
45
|
-
| "network"
|
|
46
|
-
| "connection"
|
|
47
|
-
| "authentication"
|
|
48
|
-
| "validation"
|
|
49
|
-
| "unknown";
|
|
50
|
-
severity: "error" | "warning" | "info";
|
|
51
|
-
actionable: boolean;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export interface ErrorConfig {
|
|
55
|
-
errorPatterns: Record<string, ErrorPatternConfig>;
|
|
56
|
-
fallbacks: Record<string, string>;
|
|
57
|
-
contextTemplates: Record<string, string>;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export const errorConfig: ErrorConfig = {
|
|
61
|
-
errorPatterns: {
|
|
62
|
-
ECONNREFUSED: {
|
|
63
|
-
message:
|
|
64
|
-
"Connection refused - the agent service is not running or not accessible at the specified address. Please check that your agent is started and listening on the correct port.",
|
|
65
|
-
category: "network",
|
|
66
|
-
severity: "error",
|
|
67
|
-
actionable: true,
|
|
68
|
-
},
|
|
69
|
-
ENOTFOUND: {
|
|
70
|
-
message:
|
|
71
|
-
"Host not found - the agent service URL appears to be incorrect or the service is not accessible. Please verify the agent endpoint URL.",
|
|
72
|
-
category: "network",
|
|
73
|
-
severity: "error",
|
|
74
|
-
actionable: true,
|
|
75
|
-
},
|
|
76
|
-
ETIMEDOUT: {
|
|
77
|
-
message:
|
|
78
|
-
"Connection timeout - the agent service is taking too long to respond. This could indicate network issues or an overloaded agent service.",
|
|
79
|
-
category: "network",
|
|
80
|
-
severity: "warning",
|
|
81
|
-
actionable: true,
|
|
82
|
-
},
|
|
83
|
-
terminated: {
|
|
84
|
-
message:
|
|
85
|
-
"Agent {context} was unexpectedly terminated. This often indicates an error in the agent service (e.g., authentication failures, missing environment variables, or agent crashes). Check the agent logs for the root cause.",
|
|
86
|
-
category: "connection",
|
|
87
|
-
severity: "error",
|
|
88
|
-
actionable: true,
|
|
89
|
-
},
|
|
90
|
-
UND_ERR_SOCKET: {
|
|
91
|
-
message:
|
|
92
|
-
"Socket connection was closed unexpectedly. This typically indicates the agent service encountered an error and shut down the connection. Check the agent logs for the underlying cause.",
|
|
93
|
-
category: "connection",
|
|
94
|
-
severity: "error",
|
|
95
|
-
actionable: true,
|
|
96
|
-
},
|
|
97
|
-
other_side_closed: {
|
|
98
|
-
message:
|
|
99
|
-
"The agent service closed the connection unexpectedly. This usually indicates an error in the agent service. Check the agent logs for more details.",
|
|
100
|
-
category: "connection",
|
|
101
|
-
severity: "error",
|
|
102
|
-
actionable: true,
|
|
103
|
-
},
|
|
104
|
-
fetch_failed: {
|
|
105
|
-
message:
|
|
106
|
-
"Failed to connect to the agent service. Please verify the agent is running and the endpoint URL is correct.",
|
|
107
|
-
category: "network",
|
|
108
|
-
severity: "error",
|
|
109
|
-
actionable: true,
|
|
110
|
-
},
|
|
111
|
-
// Authentication patterns
|
|
112
|
-
"401": {
|
|
113
|
-
message:
|
|
114
|
-
"Authentication failed. Please check your API keys and ensure they are correctly configured.",
|
|
115
|
-
category: "authentication",
|
|
116
|
-
severity: "error",
|
|
117
|
-
actionable: true,
|
|
118
|
-
},
|
|
119
|
-
"api key": {
|
|
120
|
-
message:
|
|
121
|
-
"API key error detected. Please verify your API key is correct and has the necessary permissions.",
|
|
122
|
-
category: "authentication",
|
|
123
|
-
severity: "error",
|
|
124
|
-
actionable: true,
|
|
125
|
-
},
|
|
126
|
-
unauthorized: {
|
|
127
|
-
message:
|
|
128
|
-
"Unauthorized access. Please check your authentication credentials.",
|
|
129
|
-
category: "authentication",
|
|
130
|
-
severity: "error",
|
|
131
|
-
actionable: true,
|
|
132
|
-
},
|
|
133
|
-
// Python-specific error patterns
|
|
134
|
-
AuthenticationError: {
|
|
135
|
-
message:
|
|
136
|
-
"OpenAI authentication failed. Please check your OPENAI_API_KEY environment variable or API key configuration.",
|
|
137
|
-
category: "authentication",
|
|
138
|
-
severity: "error",
|
|
139
|
-
actionable: true,
|
|
140
|
-
},
|
|
141
|
-
"Incorrect API key provided": {
|
|
142
|
-
message:
|
|
143
|
-
"OpenAI API key is invalid. Please verify your OPENAI_API_KEY is correct and active.",
|
|
144
|
-
category: "authentication",
|
|
145
|
-
severity: "error",
|
|
146
|
-
actionable: true,
|
|
147
|
-
},
|
|
148
|
-
RateLimitError: {
|
|
149
|
-
message:
|
|
150
|
-
"OpenAI rate limit exceeded. Please wait a moment and try again, or check your OpenAI usage limits.",
|
|
151
|
-
category: "network",
|
|
152
|
-
severity: "warning",
|
|
153
|
-
actionable: true,
|
|
154
|
-
},
|
|
155
|
-
InvalidRequestError: {
|
|
156
|
-
message:
|
|
157
|
-
"Invalid request to OpenAI API. Please check your request parameters and model configuration.",
|
|
158
|
-
category: "validation",
|
|
159
|
-
severity: "error",
|
|
160
|
-
actionable: true,
|
|
161
|
-
},
|
|
162
|
-
PermissionDeniedError: {
|
|
163
|
-
message:
|
|
164
|
-
"Permission denied for OpenAI API. Please check your API key permissions and billing status.",
|
|
165
|
-
category: "authentication",
|
|
166
|
-
severity: "error",
|
|
167
|
-
actionable: true,
|
|
168
|
-
},
|
|
169
|
-
NotFoundError: {
|
|
170
|
-
message:
|
|
171
|
-
"OpenAI resource not found. Please check your model name and availability.",
|
|
172
|
-
category: "validation",
|
|
173
|
-
severity: "error",
|
|
174
|
-
actionable: true,
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
fallbacks: {
|
|
178
|
-
network:
|
|
179
|
-
"A network error occurred while connecting to the agent service. Please check your connection and ensure the agent service is running.",
|
|
180
|
-
connection:
|
|
181
|
-
"The connection to the agent service was lost unexpectedly. This may indicate an issue with the agent service.",
|
|
182
|
-
authentication:
|
|
183
|
-
"Authentication failed. Please check your API keys and credentials.",
|
|
184
|
-
validation:
|
|
185
|
-
"Invalid input or configuration. Please check your parameters and try again.",
|
|
186
|
-
unknown:
|
|
187
|
-
"An unexpected error occurred. Please check the logs for more details.",
|
|
188
|
-
default:
|
|
189
|
-
"An unexpected error occurred. Please check the logs for more details.",
|
|
190
|
-
},
|
|
191
|
-
contextTemplates: {
|
|
192
|
-
connection: "connection",
|
|
193
|
-
event_streaming_connection: "event streaming connection",
|
|
194
|
-
agent_streaming_connection: "agent streaming connection",
|
|
195
|
-
langgraph_agent_connection: "LangGraph agent connection",
|
|
196
|
-
},
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Helper function to get error pattern configuration by key
|
|
201
|
-
*/
|
|
202
|
-
export function getErrorPattern(key: string): ErrorPatternConfig | undefined {
|
|
203
|
-
return errorConfig.errorPatterns[key];
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Helper function to get fallback message by category
|
|
208
|
-
*/
|
|
209
|
-
export function getFallbackMessage(category: string): string {
|
|
210
|
-
return errorConfig.fallbacks[category] || errorConfig.fallbacks.default;
|
|
211
|
-
}
|
package/src/lib/index.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export * from "../service-adapters/openai/openai-adapter";
|
|
2
|
-
export * from "../service-adapters/langchain/langchain-adapter";
|
|
3
|
-
export * from "../service-adapters/google/google-genai-adapter";
|
|
4
|
-
export * from "../service-adapters/openai/openai-assistant-adapter";
|
|
5
|
-
export * from "../service-adapters/unify/unify-adapter";
|
|
6
|
-
export * from "../service-adapters/groq/groq-adapter";
|
|
7
|
-
export * from "./integrations";
|
|
8
|
-
export * from "./logger";
|
|
9
|
-
export * from "./runtime/copilot-runtime";
|
|
10
|
-
export * from "./runtime/mcp-tools-utils";
|
|
11
|
-
export * from "./runtime/telemetry-agent-runner";
|
|
12
|
-
|
|
13
|
-
// The below re-exports "dummy" classes and types, to get a deprecation warning redirecting the users to import these from the correct, new route
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated LangGraphAgent import from `@copilotkit/runtime` is deprecated. Please import it from `@copilotkit/runtime/langgraph` instead
|
|
17
|
-
*/
|
|
18
|
-
export class LangGraphAgent {
|
|
19
|
-
constructor() {
|
|
20
|
-
throw new Error(
|
|
21
|
-
"LangGraphAgent import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead",
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @deprecated LangGraphHttpAgent import from `@copilotkit/runtime` is deprecated. Please import it from `@copilotkit/runtime/langgraph` instead
|
|
28
|
-
*/
|
|
29
|
-
export class LangGraphHttpAgent {
|
|
30
|
-
constructor() {
|
|
31
|
-
throw new Error(
|
|
32
|
-
"LangGraphHttpAgent import from @copilotkit/runtime is deprecated. Please import it from @copilotkit/runtime/langgraph instead",
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @deprecated TextMessageEvents import from `@copilotkit/runtime` is deprecated. Please import it from `@copilotkit/runtime/langgraph` instead
|
|
39
|
-
*/
|
|
40
|
-
export type TextMessageEvents = any;
|
|
41
|
-
/**
|
|
42
|
-
* @deprecated ToolCallEvents import from `@copilotkit/runtime` is deprecated. Please import it from `@copilotkit/runtime/langgraph` instead
|
|
43
|
-
*/
|
|
44
|
-
export type ToolCallEvents = any;
|
|
45
|
-
/**
|
|
46
|
-
* @deprecated CustomEventNames import from `@copilotkit/runtime` is deprecated. Please import it from `@copilotkit/runtime/langgraph` instead
|
|
47
|
-
*/
|
|
48
|
-
export type CustomEventNames = any;
|
|
49
|
-
/**
|
|
50
|
-
* @deprecated PredictStateTool import from `@copilotkit/runtime` is deprecated. Please import it from `@copilotkit/runtime/langgraph` instead
|
|
51
|
-
*/
|
|
52
|
-
export type PredictStateTool = any;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { CreateCopilotRuntimeServerOptions } from "../shared";
|
|
2
|
-
import { copilotRuntimeNodeHttpEndpoint } from "../node-http";
|
|
3
|
-
import telemetry, {
|
|
4
|
-
getRuntimeInstanceTelemetryInfo,
|
|
5
|
-
} from "../../telemetry-client";
|
|
6
|
-
|
|
7
|
-
export function copilotRuntimeNestEndpoint(
|
|
8
|
-
options: CreateCopilotRuntimeServerOptions,
|
|
9
|
-
) {
|
|
10
|
-
telemetry.setGlobalProperties({
|
|
11
|
-
runtime: {
|
|
12
|
-
framework: "nest",
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
telemetry.capture(
|
|
17
|
-
"oss.runtime.instance_created",
|
|
18
|
-
getRuntimeInstanceTelemetryInfo(options),
|
|
19
|
-
);
|
|
20
|
-
return copilotRuntimeNodeHttpEndpoint(options);
|
|
21
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { createCopilotEndpointSingleRoute } from "../../../v2/runtime";
|
|
2
|
-
import { CreateCopilotRuntimeServerOptions, getCommonConfig } from "../shared";
|
|
3
|
-
import telemetry, {
|
|
4
|
-
getRuntimeInstanceTelemetryInfo,
|
|
5
|
-
} from "../../telemetry-client";
|
|
6
|
-
import { handle } from "hono/vercel";
|
|
7
|
-
|
|
8
|
-
export function copilotRuntimeNextJSAppRouterEndpoint(
|
|
9
|
-
options: CreateCopilotRuntimeServerOptions,
|
|
10
|
-
) {
|
|
11
|
-
const commonConfig = getCommonConfig(options);
|
|
12
|
-
|
|
13
|
-
telemetry.setGlobalProperties({
|
|
14
|
-
runtime: {
|
|
15
|
-
framework: "nextjs-app-router",
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
if (options.properties?._copilotkit) {
|
|
20
|
-
telemetry.setGlobalProperties({
|
|
21
|
-
_copilotkit: options.properties._copilotkit,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
telemetry.capture(
|
|
26
|
-
"oss.runtime.instance_created",
|
|
27
|
-
getRuntimeInstanceTelemetryInfo(options),
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
const logger = commonConfig.logging;
|
|
31
|
-
logger.debug("Creating NextJS App Router endpoint");
|
|
32
|
-
|
|
33
|
-
const serviceAdapter = options.serviceAdapter;
|
|
34
|
-
if (serviceAdapter) {
|
|
35
|
-
options.runtime.handleServiceAdapter(serviceAdapter);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Note: cors option requires @copilotkit/runtime with credentials support
|
|
39
|
-
const copilotRoute = createCopilotEndpointSingleRoute({
|
|
40
|
-
runtime: options.runtime.instance,
|
|
41
|
-
basePath: options.baseUrl ?? options.endpoint,
|
|
42
|
-
...(options.cors && { cors: options.cors }),
|
|
43
|
-
} as any);
|
|
44
|
-
|
|
45
|
-
const handleRequest = handle(copilotRoute as any);
|
|
46
|
-
return { handleRequest };
|
|
47
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { CreateCopilotRuntimeServerOptions, getCommonConfig } from "../shared";
|
|
2
|
-
import telemetry, {
|
|
3
|
-
getRuntimeInstanceTelemetryInfo,
|
|
4
|
-
} from "../../telemetry-client";
|
|
5
|
-
import { copilotRuntimeNodeHttpEndpoint } from "../node-http";
|
|
6
|
-
|
|
7
|
-
export const config = {
|
|
8
|
-
api: {
|
|
9
|
-
bodyParser: false,
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
// This import is needed to fix the type error
|
|
14
|
-
// Fix is currently in TypeScript 5.5 beta, waiting for stable version
|
|
15
|
-
// https://github.com/microsoft/TypeScript/issues/42873#issuecomment-2066874644
|
|
16
|
-
// oxlint-disable-next-line unicorn/require-module-specifiers, typescript/no-useless-empty-export
|
|
17
|
-
export type {} from "@whatwg-node/server";
|
|
18
|
-
|
|
19
|
-
export function copilotRuntimeNextJSPagesRouterEndpoint(
|
|
20
|
-
options: CreateCopilotRuntimeServerOptions,
|
|
21
|
-
) {
|
|
22
|
-
const commonConfig = getCommonConfig(options);
|
|
23
|
-
|
|
24
|
-
telemetry.setGlobalProperties({
|
|
25
|
-
runtime: {
|
|
26
|
-
framework: "nextjs-pages-router",
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
if (options.properties?._copilotkit) {
|
|
31
|
-
telemetry.setGlobalProperties({
|
|
32
|
-
_copilotkit: options.properties._copilotkit,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
telemetry.capture(
|
|
37
|
-
"oss.runtime.instance_created",
|
|
38
|
-
getRuntimeInstanceTelemetryInfo(options),
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
const logger = commonConfig.logging;
|
|
42
|
-
logger.debug("Creating NextJS Pages Router endpoint");
|
|
43
|
-
|
|
44
|
-
return copilotRuntimeNodeHttpEndpoint(options);
|
|
45
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { CreateCopilotRuntimeServerOptions } from "../shared";
|
|
2
|
-
import { copilotRuntimeNodeHttpEndpoint } from "../node-http";
|
|
3
|
-
import telemetry, {
|
|
4
|
-
getRuntimeInstanceTelemetryInfo,
|
|
5
|
-
} from "../../telemetry-client";
|
|
6
|
-
|
|
7
|
-
export function copilotRuntimeNodeExpressEndpoint(
|
|
8
|
-
options: CreateCopilotRuntimeServerOptions,
|
|
9
|
-
) {
|
|
10
|
-
telemetry.setGlobalProperties({
|
|
11
|
-
runtime: {
|
|
12
|
-
framework: "node-express",
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
telemetry.capture(
|
|
17
|
-
"oss.runtime.instance_created",
|
|
18
|
-
getRuntimeInstanceTelemetryInfo(options),
|
|
19
|
-
);
|
|
20
|
-
return copilotRuntimeNodeHttpEndpoint(options);
|
|
21
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Test for #2986: instanceof Request fails with @hono/node-server polyfill
|
|
5
|
-
*
|
|
6
|
-
* When Hono polyfills the Request class, `instanceof Request` fails because
|
|
7
|
-
* the polyfilled Request has a different prototype. We need duck-type checking.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
// Simulates a polyfilled Request object that does NOT pass instanceof Request
|
|
11
|
-
function createPolyfillRequest(url: string, method: string = "GET"): object {
|
|
12
|
-
return {
|
|
13
|
-
url,
|
|
14
|
-
method,
|
|
15
|
-
headers: new Headers({ "content-type": "application/json" }),
|
|
16
|
-
body: null,
|
|
17
|
-
clone: () => createPolyfillRequest(url, method),
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// This is the duck-type check that should replace instanceof
|
|
22
|
-
function isRequestLike(obj: unknown): obj is Request {
|
|
23
|
-
return (
|
|
24
|
-
typeof obj === "object" &&
|
|
25
|
-
obj !== null &&
|
|
26
|
-
"url" in obj &&
|
|
27
|
-
"method" in obj &&
|
|
28
|
-
"headers" in obj &&
|
|
29
|
-
typeof (obj as any).url === "string" &&
|
|
30
|
-
typeof (obj as any).method === "string"
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
describe("Request duck-type detection (#2986)", () => {
|
|
35
|
-
it("should detect a native Request object", () => {
|
|
36
|
-
const req = new Request("http://localhost:3000/api/copilotkit", {
|
|
37
|
-
method: "POST",
|
|
38
|
-
});
|
|
39
|
-
expect(isRequestLike(req)).toBe(true);
|
|
40
|
-
expect(req instanceof Request).toBe(true);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it("should detect a polyfilled Request object that fails instanceof", () => {
|
|
44
|
-
const polyfilled = createPolyfillRequest(
|
|
45
|
-
"http://localhost:3000/api/copilotkit",
|
|
46
|
-
"POST",
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
// instanceof fails for polyfilled objects
|
|
50
|
-
expect(polyfilled instanceof Request).toBe(false);
|
|
51
|
-
|
|
52
|
-
// But duck-type check succeeds
|
|
53
|
-
expect(isRequestLike(polyfilled)).toBe(true);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it("should NOT match null or undefined", () => {
|
|
57
|
-
expect(isRequestLike(null)).toBe(false);
|
|
58
|
-
expect(isRequestLike(undefined)).toBe(false);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it("should NOT match an object missing required properties", () => {
|
|
62
|
-
expect(isRequestLike({ url: "http://test.com" })).toBe(false);
|
|
63
|
-
expect(isRequestLike({ method: "GET" })).toBe(false);
|
|
64
|
-
expect(isRequestLike({})).toBe(false);
|
|
65
|
-
});
|
|
66
|
-
});
|