@copilotkit/runtime 1.55.0-next.9 → 1.55.1-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -2
- package/dist/agent/index.cjs +101 -12
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts.map +1 -1
- package/dist/agent/index.d.mts.map +1 -1
- package/dist/agent/index.mjs +102 -13
- package/dist/agent/index.mjs.map +1 -1
- package/dist/lib/runtime/agent-integrations/langgraph/agent.cjs.map +1 -1
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts +4 -841
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts.map +1 -1
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.mts +4 -841
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.mts.map +1 -1
- package/dist/lib/runtime/agent-integrations/langgraph/agent.mjs.map +1 -1
- package/dist/lib/runtime/copilot-runtime.cjs +3 -2
- package/dist/lib/runtime/copilot-runtime.cjs.map +1 -1
- package/dist/lib/runtime/copilot-runtime.d.cts +1 -1
- package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -1
- package/dist/lib/runtime/copilot-runtime.d.mts +3 -3
- package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -1
- package/dist/lib/runtime/copilot-runtime.mjs +3 -2
- package/dist/lib/runtime/copilot-runtime.mjs.map +1 -1
- package/dist/package.cjs +70 -47
- package/dist/package.mjs +70 -47
- package/dist/v2/express.cjs +8 -0
- package/dist/v2/express.d.cts +5 -0
- package/dist/v2/express.d.mts +5 -0
- package/dist/v2/express.mjs +5 -0
- package/dist/v2/hono.cjs +9 -0
- package/dist/v2/hono.d.cts +5 -0
- package/dist/v2/hono.d.mts +5 -0
- package/dist/v2/hono.mjs +5 -0
- package/dist/v2/index.cjs +8 -3
- package/dist/v2/index.d.cts +8 -5
- package/dist/v2/index.d.mts +8 -5
- package/dist/v2/index.mjs +5 -4
- package/dist/v2/node.cjs +8 -0
- package/dist/v2/node.d.cts +5 -0
- package/dist/v2/node.d.mts +5 -0
- package/dist/v2/node.mjs +5 -0
- package/dist/v2/runtime/core/fetch-cors.cjs +72 -0
- package/dist/v2/runtime/core/fetch-cors.cjs.map +1 -0
- package/dist/v2/runtime/core/fetch-cors.d.cts +20 -0
- package/dist/v2/runtime/core/fetch-cors.d.cts.map +1 -0
- package/dist/v2/runtime/core/fetch-cors.d.mts +20 -0
- package/dist/v2/runtime/core/fetch-cors.d.mts.map +1 -0
- package/dist/v2/runtime/core/fetch-cors.mjs +70 -0
- package/dist/v2/runtime/core/fetch-cors.mjs.map +1 -0
- package/dist/v2/runtime/core/fetch-handler.cjs +232 -0
- package/dist/v2/runtime/core/fetch-handler.cjs.map +1 -0
- package/dist/v2/runtime/core/fetch-handler.d.cts +40 -0
- package/dist/v2/runtime/core/fetch-handler.d.cts.map +1 -0
- package/dist/v2/runtime/core/fetch-handler.d.mts +40 -0
- package/dist/v2/runtime/core/fetch-handler.d.mts.map +1 -0
- package/dist/v2/runtime/core/fetch-handler.mjs +231 -0
- package/dist/v2/runtime/core/fetch-handler.mjs.map +1 -0
- package/dist/v2/runtime/core/fetch-router.cjs +68 -0
- package/dist/v2/runtime/core/fetch-router.cjs.map +1 -0
- package/dist/v2/runtime/core/fetch-router.mjs +67 -0
- package/dist/v2/runtime/core/fetch-router.mjs.map +1 -0
- package/dist/v2/runtime/core/hooks.cjs +29 -0
- package/dist/v2/runtime/core/hooks.cjs.map +1 -0
- package/dist/v2/runtime/core/hooks.d.cts +78 -0
- package/dist/v2/runtime/core/hooks.d.cts.map +1 -0
- package/dist/v2/runtime/core/hooks.d.mts +78 -0
- package/dist/v2/runtime/core/hooks.d.mts.map +1 -0
- package/dist/v2/runtime/core/hooks.mjs +25 -0
- package/dist/v2/runtime/core/hooks.mjs.map +1 -0
- package/dist/v2/runtime/{middleware-sse-parser.cjs → core/middleware-sse-parser.cjs} +2 -2
- package/dist/v2/runtime/core/middleware-sse-parser.cjs.map +1 -0
- package/dist/v2/runtime/{middleware-sse-parser.d.cts → core/middleware-sse-parser.d.cts} +1 -1
- package/dist/v2/runtime/core/middleware-sse-parser.d.cts.map +1 -0
- package/dist/v2/runtime/{middleware-sse-parser.d.mts → core/middleware-sse-parser.d.mts} +1 -1
- package/dist/v2/runtime/core/middleware-sse-parser.d.mts.map +1 -0
- package/dist/v2/runtime/{middleware-sse-parser.mjs → core/middleware-sse-parser.mjs} +1 -1
- package/dist/v2/runtime/core/middleware-sse-parser.mjs.map +1 -0
- package/dist/v2/runtime/{middleware.cjs → core/middleware.cjs} +2 -2
- package/dist/v2/runtime/core/middleware.cjs.map +1 -0
- package/dist/v2/runtime/{middleware.d.cts → core/middleware.d.cts} +1 -1
- package/dist/v2/runtime/core/middleware.d.cts.map +1 -0
- package/dist/v2/runtime/{middleware.d.mts → core/middleware.d.mts} +1 -1
- package/dist/v2/runtime/core/middleware.d.mts.map +1 -0
- package/dist/v2/runtime/{middleware.mjs → core/middleware.mjs} +1 -1
- package/dist/v2/runtime/core/middleware.mjs.map +1 -0
- package/dist/v2/runtime/{runtime.cjs → core/runtime.cjs} +35 -10
- package/dist/v2/runtime/core/runtime.cjs.map +1 -0
- package/dist/v2/runtime/{runtime.d.cts → core/runtime.d.cts} +41 -7
- package/dist/v2/runtime/core/runtime.d.cts.map +1 -0
- package/dist/v2/runtime/{runtime.d.mts → core/runtime.d.mts} +42 -8
- package/dist/v2/runtime/core/runtime.d.mts.map +1 -0
- package/dist/v2/runtime/{runtime.mjs → core/runtime.mjs} +36 -11
- package/dist/v2/runtime/core/runtime.mjs.map +1 -0
- package/dist/v2/runtime/endpoints/express-fetch-bridge.cjs +83 -0
- package/dist/v2/runtime/endpoints/express-fetch-bridge.cjs.map +1 -0
- package/dist/v2/runtime/endpoints/express-fetch-bridge.mjs +82 -0
- package/dist/v2/runtime/endpoints/express-fetch-bridge.mjs.map +1 -0
- package/dist/v2/runtime/endpoints/express-single.cjs +35 -181
- package/dist/v2/runtime/endpoints/express-single.cjs.map +1 -1
- package/dist/v2/runtime/endpoints/express-single.d.cts +35 -2
- package/dist/v2/runtime/endpoints/express-single.d.cts.map +1 -1
- package/dist/v2/runtime/endpoints/express-single.d.mts +35 -2
- package/dist/v2/runtime/endpoints/express-single.d.mts.map +1 -1
- package/dist/v2/runtime/endpoints/express-single.mjs +35 -178
- package/dist/v2/runtime/endpoints/express-single.mjs.map +1 -1
- package/dist/v2/runtime/endpoints/express.cjs +41 -195
- package/dist/v2/runtime/endpoints/express.cjs.map +1 -1
- package/dist/v2/runtime/endpoints/express.d.cts +26 -4
- package/dist/v2/runtime/endpoints/express.d.cts.map +1 -1
- package/dist/v2/runtime/endpoints/express.d.mts +26 -4
- package/dist/v2/runtime/endpoints/express.d.mts.map +1 -1
- package/dist/v2/runtime/endpoints/express.mjs +41 -195
- package/dist/v2/runtime/endpoints/express.mjs.map +1 -1
- package/dist/v2/runtime/endpoints/hono-single.cjs +11 -123
- package/dist/v2/runtime/endpoints/hono-single.cjs.map +1 -1
- package/dist/v2/runtime/endpoints/hono-single.d.cts +14 -11
- package/dist/v2/runtime/endpoints/hono-single.d.cts.map +1 -1
- package/dist/v2/runtime/endpoints/hono-single.d.mts +14 -11
- package/dist/v2/runtime/endpoints/hono-single.d.mts.map +1 -1
- package/dist/v2/runtime/endpoints/hono-single.mjs +11 -123
- package/dist/v2/runtime/endpoints/hono-single.mjs.map +1 -1
- package/dist/v2/runtime/endpoints/hono.cjs +23 -237
- package/dist/v2/runtime/endpoints/hono.cjs.map +1 -1
- package/dist/v2/runtime/endpoints/hono.d.cts +29 -120
- package/dist/v2/runtime/endpoints/hono.d.cts.map +1 -1
- package/dist/v2/runtime/endpoints/hono.d.mts +29 -120
- package/dist/v2/runtime/endpoints/hono.d.mts.map +1 -1
- package/dist/v2/runtime/endpoints/hono.mjs +22 -238
- package/dist/v2/runtime/endpoints/hono.mjs.map +1 -1
- package/dist/v2/runtime/endpoints/index.d.cts +2 -2
- package/dist/v2/runtime/endpoints/index.d.mts +2 -2
- package/dist/v2/runtime/endpoints/node-fetch-handler.cjs +26 -0
- package/dist/v2/runtime/endpoints/node-fetch-handler.cjs.map +1 -0
- package/dist/v2/runtime/endpoints/node-fetch-handler.d.cts +12 -0
- package/dist/v2/runtime/endpoints/node-fetch-handler.d.cts.map +1 -0
- package/dist/v2/runtime/endpoints/node-fetch-handler.d.mts +12 -0
- package/dist/v2/runtime/endpoints/node-fetch-handler.d.mts.map +1 -0
- package/dist/v2/runtime/endpoints/node-fetch-handler.mjs +24 -0
- package/dist/v2/runtime/endpoints/node-fetch-handler.mjs.map +1 -0
- package/dist/v2/runtime/endpoints/node.cjs +30 -0
- package/dist/v2/runtime/endpoints/node.cjs.map +1 -0
- package/dist/v2/runtime/endpoints/node.d.cts +27 -0
- package/dist/v2/runtime/endpoints/node.d.cts.map +1 -0
- package/dist/v2/runtime/endpoints/node.d.mts +27 -0
- package/dist/v2/runtime/endpoints/node.d.mts.map +1 -0
- package/dist/v2/runtime/endpoints/node.mjs +30 -0
- package/dist/v2/runtime/endpoints/node.mjs.map +1 -0
- package/dist/v2/runtime/express.d.cts +3 -0
- package/dist/v2/runtime/express.d.mts +3 -0
- package/dist/v2/runtime/handlers/get-runtime-info.cjs +2 -1
- package/dist/v2/runtime/handlers/get-runtime-info.cjs.map +1 -1
- package/dist/v2/runtime/handlers/get-runtime-info.mjs +2 -1
- package/dist/v2/runtime/handlers/get-runtime-info.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-connect.cjs +6 -3
- package/dist/v2/runtime/handlers/handle-connect.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-connect.mjs +6 -3
- package/dist/v2/runtime/handlers/handle-connect.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-run.cjs +6 -3
- package/dist/v2/runtime/handlers/handle-run.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-run.mjs +6 -3
- package/dist/v2/runtime/handlers/handle-run.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-stop.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-stop.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-transcribe.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-transcribe.mjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/connect.cjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/connect.mjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/run.cjs +22 -1
- package/dist/v2/runtime/handlers/intelligence/run.cjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/run.mjs +22 -1
- package/dist/v2/runtime/handlers/intelligence/run.mjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/thread-names.cjs +1 -1
- package/dist/v2/runtime/handlers/intelligence/thread-names.cjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/thread-names.mjs +1 -1
- package/dist/v2/runtime/handlers/intelligence/thread-names.mjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.cjs +21 -6
- package/dist/v2/runtime/handlers/shared/agent-utils.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.mjs +21 -6
- package/dist/v2/runtime/handlers/shared/agent-utils.mjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/json-response.cjs +4 -1
- package/dist/v2/runtime/handlers/shared/json-response.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/json-response.mjs +4 -1
- package/dist/v2/runtime/handlers/shared/json-response.mjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/resolve-intelligence-user.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/resolve-intelligence-user.mjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/connect.cjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/connect.mjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/run.cjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/run.mjs.map +1 -1
- package/dist/v2/runtime/hono.d.cts +3 -0
- package/dist/v2/runtime/hono.d.mts +3 -0
- package/dist/v2/runtime/index.d.cts +16 -4
- package/dist/v2/runtime/index.d.cts.map +1 -0
- package/dist/v2/runtime/index.d.mts +16 -4
- package/dist/v2/runtime/index.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/client.cjs +10 -1
- package/dist/v2/runtime/intelligence-platform/client.cjs.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.d.cts +22 -0
- package/dist/v2/runtime/intelligence-platform/client.d.cts.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.d.mts +22 -0
- package/dist/v2/runtime/intelligence-platform/client.d.mts.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.mjs +10 -1
- package/dist/v2/runtime/intelligence-platform/client.mjs.map +1 -1
- package/dist/v2/runtime/node.d.cts +3 -0
- package/dist/v2/runtime/node.d.mts +3 -0
- package/dist/v2/runtime/open-generative-ui-middleware.cjs +282 -0
- package/dist/v2/runtime/open-generative-ui-middleware.cjs.map +1 -0
- package/dist/v2/runtime/open-generative-ui-middleware.mjs +280 -0
- package/dist/v2/runtime/open-generative-ui-middleware.mjs.map +1 -0
- package/dist/v2/runtime/runner/intelligence.cjs +4 -4
- package/dist/v2/runtime/runner/intelligence.cjs.map +1 -1
- package/dist/v2/runtime/runner/intelligence.d.cts +6 -2
- package/dist/v2/runtime/runner/intelligence.d.cts.map +1 -1
- package/dist/v2/runtime/runner/intelligence.d.mts +6 -2
- package/dist/v2/runtime/runner/intelligence.d.mts.map +1 -1
- package/dist/v2/runtime/runner/intelligence.mjs +4 -4
- package/dist/v2/runtime/runner/intelligence.mjs.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.cjs +37 -0
- package/dist/v2/runtime/telemetry/telemetry-client.cjs.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.mjs +36 -0
- package/dist/v2/runtime/telemetry/telemetry-client.mjs.map +1 -1
- package/dist/v2/runtime/telemetry/utils.cjs +15 -0
- package/dist/v2/runtime/telemetry/utils.cjs.map +1 -0
- package/dist/v2/runtime/telemetry/utils.mjs +14 -0
- package/dist/v2/runtime/telemetry/utils.mjs.map +1 -0
- package/package.json +81 -48
- package/src/agent/__tests__/multimodal.test.ts +176 -0
- package/src/agent/index.ts +130 -19
- package/src/lib/runtime/agent-integrations/langgraph/agent.ts +3 -3
- package/src/lib/runtime/copilot-runtime.ts +1 -0
- package/src/v2/express.ts +1 -0
- package/src/v2/hono.ts +1 -0
- package/src/v2/node.ts +1 -0
- package/src/v2/runtime/__tests__/backward-compat.test.ts +261 -0
- package/src/v2/runtime/__tests__/code-review-fixes.test.ts +500 -0
- package/src/v2/runtime/__tests__/cors-credentials.test.ts +2 -2
- package/src/v2/runtime/__tests__/express-adapter.test.ts +188 -0
- package/src/v2/runtime/__tests__/express-body-order.test.ts +1 -1
- package/src/v2/runtime/__tests__/express-fetch-bridge.test.ts +344 -0
- package/src/v2/runtime/__tests__/express-single-sse.test.ts +1 -1
- package/src/v2/runtime/__tests__/fetch-cors.test.ts +205 -0
- package/src/v2/runtime/__tests__/fetch-handler-validation.test.ts +372 -0
- package/src/v2/runtime/__tests__/fetch-handler.test.ts +456 -0
- package/src/v2/runtime/__tests__/fetch-router.test.ts +132 -0
- package/src/v2/runtime/__tests__/get-runtime-info.test.ts +4 -1
- package/src/v2/runtime/__tests__/handle-connect.test.ts +15 -13
- package/src/v2/runtime/__tests__/handle-run.test.ts +21 -17
- package/src/v2/runtime/__tests__/handle-threads.test.ts +1 -1
- package/src/v2/runtime/__tests__/handle-transcribe.test.ts +1 -1
- package/src/v2/runtime/__tests__/hono-adapter.test.ts +150 -0
- package/src/v2/runtime/__tests__/hooks-edge-cases.test.ts +457 -0
- package/src/v2/runtime/__tests__/hooks.test.ts +557 -0
- package/src/v2/runtime/__tests__/integration/bun/bun-servers.integration.test.ts +27 -0
- package/src/v2/runtime/__tests__/integration/bun/elysia-multi.ts +32 -0
- package/src/v2/runtime/__tests__/integration/bun/elysia-single.ts +33 -0
- package/src/v2/runtime/__tests__/integration/bun/hono-bun-multi.ts +25 -0
- package/src/v2/runtime/__tests__/integration/bun/hono-bun-single.ts +32 -0
- package/src/v2/runtime/__tests__/integration/helpers/create-test-runtime.ts +15 -0
- package/src/v2/runtime/__tests__/integration/helpers/sse-reader.ts +45 -0
- package/src/v2/runtime/__tests__/integration/helpers/test-agent.ts +58 -0
- package/src/v2/runtime/__tests__/integration/node-servers.integration.test.ts +39 -0
- package/src/v2/runtime/__tests__/integration/servers/express-multi.ts +35 -0
- package/src/v2/runtime/__tests__/integration/servers/express-single.ts +36 -0
- package/src/v2/runtime/__tests__/integration/servers/fetch-direct.ts +39 -0
- package/src/v2/runtime/__tests__/integration/servers/hono-multi.ts +30 -0
- package/src/v2/runtime/__tests__/integration/servers/hono-single.ts +37 -0
- package/src/v2/runtime/__tests__/integration/servers/node-multi.ts +45 -0
- package/src/v2/runtime/__tests__/integration/servers/node-single.ts +46 -0
- package/src/v2/runtime/__tests__/integration/servers/types.ts +18 -0
- package/src/v2/runtime/__tests__/integration/suites/multi-endpoint.suite.ts +358 -0
- package/src/v2/runtime/__tests__/integration/suites/single-endpoint.suite.ts +363 -0
- package/src/v2/runtime/__tests__/middleware-express.test.ts +1 -1
- package/src/v2/runtime/__tests__/middleware-single-express.test.ts +1 -1
- package/src/v2/runtime/__tests__/middleware-single.test.ts +1 -1
- package/src/v2/runtime/__tests__/middleware-sse-parser.test.ts +1 -1
- package/src/v2/runtime/__tests__/middleware.test.ts +1 -2
- package/src/v2/runtime/__tests__/node-fetch-handler.test.ts +157 -0
- package/src/v2/runtime/__tests__/open-generative-ui-middleware.e2e.test.ts +728 -0
- package/src/v2/runtime/__tests__/router-edge-cases.test.ts +217 -0
- package/src/v2/runtime/__tests__/routing-express.test.ts +1 -1
- package/src/v2/runtime/__tests__/routing-single-express.test.ts +1 -1
- package/src/v2/runtime/__tests__/routing-single.test.ts +1 -1
- package/src/v2/runtime/__tests__/routing.test.ts +1 -1
- package/src/v2/runtime/__tests__/runtime.test.ts +110 -1
- package/src/v2/runtime/__tests__/telemetry.test.ts +62 -1
- package/src/v2/runtime/core/fetch-cors.ts +136 -0
- package/src/v2/runtime/core/fetch-handler.ts +415 -0
- package/src/v2/runtime/core/fetch-router.ts +112 -0
- package/src/v2/runtime/core/hooks.ts +151 -0
- package/src/v2/runtime/{runtime.ts → core/runtime.ts} +79 -10
- package/src/v2/runtime/endpoints/express-fetch-bridge.ts +137 -0
- package/src/v2/runtime/endpoints/express-single.ts +42 -219
- package/src/v2/runtime/endpoints/express.ts +128 -230
- package/src/v2/runtime/endpoints/hono-single.ts +19 -171
- package/src/v2/runtime/endpoints/hono.ts +45 -270
- package/src/v2/runtime/endpoints/node-fetch-handler.ts +48 -0
- package/src/v2/runtime/endpoints/node.ts +28 -0
- package/src/v2/runtime/handlers/get-runtime-info.ts +3 -2
- package/src/v2/runtime/handlers/handle-connect.ts +7 -4
- package/src/v2/runtime/handlers/handle-run.ts +7 -4
- package/src/v2/runtime/handlers/handle-stop.ts +1 -1
- package/src/v2/runtime/handlers/handle-transcribe.ts +1 -1
- package/src/v2/runtime/handlers/intelligence/connect.ts +1 -1
- package/src/v2/runtime/handlers/intelligence/run.ts +31 -1
- package/src/v2/runtime/handlers/intelligence/thread-names.ts +2 -2
- package/src/v2/runtime/handlers/intelligence/threads.ts +1 -1
- package/src/v2/runtime/handlers/shared/agent-utils.ts +29 -10
- package/src/v2/runtime/handlers/shared/json-response.ts +4 -1
- package/src/v2/runtime/handlers/shared/resolve-intelligence-user.ts +1 -1
- package/src/v2/runtime/handlers/sse/connect.ts +1 -1
- package/src/v2/runtime/handlers/sse/run.ts +1 -1
- package/src/v2/runtime/hono.ts +2 -0
- package/src/v2/runtime/index.ts +27 -1
- package/src/v2/runtime/intelligence-platform/client.ts +50 -1
- package/src/v2/runtime/node.ts +6 -0
- package/src/v2/runtime/open-generative-ui-middleware.ts +373 -0
- package/src/v2/runtime/runner/intelligence.ts +14 -4
- package/src/v2/runtime/telemetry/telemetry-client.ts +56 -0
- package/src/v2/runtime/telemetry/utils.ts +15 -0
- package/tsdown.config.ts +8 -1
- package/vitest.config.mjs +2 -5
- package/.eslintrc.js +0 -7
- package/dist/v2/runtime/endpoints/express-utils.cjs +0 -119
- package/dist/v2/runtime/endpoints/express-utils.cjs.map +0 -1
- package/dist/v2/runtime/endpoints/express-utils.mjs +0 -117
- package/dist/v2/runtime/endpoints/express-utils.mjs.map +0 -1
- package/dist/v2/runtime/handlers/intelligence/threads.cjs +0 -159
- package/dist/v2/runtime/handlers/intelligence/threads.cjs.map +0 -1
- package/dist/v2/runtime/handlers/intelligence/threads.mjs +0 -154
- package/dist/v2/runtime/handlers/intelligence/threads.mjs.map +0 -1
- package/dist/v2/runtime/middleware-sse-parser.cjs.map +0 -1
- package/dist/v2/runtime/middleware-sse-parser.d.cts.map +0 -1
- package/dist/v2/runtime/middleware-sse-parser.d.mts.map +0 -1
- package/dist/v2/runtime/middleware-sse-parser.mjs.map +0 -1
- package/dist/v2/runtime/middleware.cjs.map +0 -1
- package/dist/v2/runtime/middleware.d.cts.map +0 -1
- package/dist/v2/runtime/middleware.d.mts.map +0 -1
- package/dist/v2/runtime/middleware.mjs.map +0 -1
- package/dist/v2/runtime/runtime.cjs.map +0 -1
- package/dist/v2/runtime/runtime.d.cts.map +0 -1
- package/dist/v2/runtime/runtime.d.mts.map +0 -1
- package/dist/v2/runtime/runtime.mjs.map +0 -1
- package/src/v2/runtime/__tests__/express-abort-signal.test.ts +0 -25
- package/src/v2/runtime/endpoints/express-utils.ts +0 -182
- package/src/v2/runtime/handler.ts +0 -3
- /package/src/v2/runtime/{middleware-sse-parser.ts → core/middleware-sse-parser.ts} +0 -0
- /package/src/v2/runtime/{middleware.ts → core/middleware.ts} +0 -0
|
@@ -1,16 +1,38 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import { CopilotRuntimeLike } from "../runtime.mjs";
|
|
2
|
+
import { CopilotRuntimeLike } from "../core/runtime.mjs";
|
|
3
|
+
import { CopilotRuntimeHooks } from "../core/hooks.mjs";
|
|
3
4
|
import { Router } from "express";
|
|
5
|
+
import { CorsOptions } from "cors";
|
|
4
6
|
|
|
5
7
|
//#region src/v2/runtime/endpoints/express.d.ts
|
|
6
8
|
interface CopilotExpressEndpointParams {
|
|
7
9
|
runtime: CopilotRuntimeLike;
|
|
8
10
|
basePath: string;
|
|
11
|
+
/**
|
|
12
|
+
* Endpoint mode.
|
|
13
|
+
* - `"multi-route"` (default): separate routes for each operation
|
|
14
|
+
* - `"single-route"`: single POST endpoint with JSON envelope dispatch
|
|
15
|
+
*/
|
|
16
|
+
mode?: "multi-route" | "single-route";
|
|
17
|
+
/**
|
|
18
|
+
* CORS configuration for the Express router.
|
|
19
|
+
* - `true` (default): permissive CORS (`origin: "*"`, all methods, all headers).
|
|
20
|
+
* - `false`: no CORS middleware is applied — handle it yourself.
|
|
21
|
+
* - object: passed directly to the Express `cors()` middleware.
|
|
22
|
+
*/
|
|
23
|
+
cors?: boolean | CorsOptions;
|
|
24
|
+
/**
|
|
25
|
+
* Lifecycle hooks for request processing.
|
|
26
|
+
*/
|
|
27
|
+
hooks?: CopilotRuntimeHooks;
|
|
9
28
|
}
|
|
10
|
-
declare function
|
|
29
|
+
declare function createCopilotExpressHandler({
|
|
11
30
|
runtime,
|
|
12
|
-
basePath
|
|
31
|
+
basePath,
|
|
32
|
+
mode,
|
|
33
|
+
cors: corsOption,
|
|
34
|
+
hooks
|
|
13
35
|
}: CopilotExpressEndpointParams): Router;
|
|
14
36
|
//#endregion
|
|
15
|
-
export {
|
|
37
|
+
export { CopilotExpressEndpointParams, createCopilotExpressHandler };
|
|
16
38
|
//# sourceMappingURL=express.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.d.mts","names":[],"sources":["../../../../src/v2/runtime/endpoints/express.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"express.d.mts","names":[],"sources":["../../../../src/v2/runtime/endpoints/express.ts"],"mappings":";;;;;;;UAciB,4BAAA;EACf,OAAA,EAAS,kBAAA;EACT,QAAA;EAF2C;;;;;EAS3C,IAAA;EAa2B;;;;;;EAL3B,IAAA,aAAiB,WAAA;EAKjB;;;EAAA,KAAA,GAAQ,mBAAA;AAAA;AAAA,iBAsDM,2BAAA,CAAA;EACd,OAAA;EACA,QAAA;EACA,IAAA;EACA,IAAA,EAAM,UAAA;EACN;AAAA,GACC,4BAAA,GAA+B,MAAA"}
|
|
@@ -1,200 +1,52 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { handleGetRuntimeInfo } from "../handlers/get-runtime-info.mjs";
|
|
5
|
-
import { handleTranscribe } from "../handlers/handle-transcribe.mjs";
|
|
6
|
-
import { callAfterRequestMiddleware, callBeforeRequestMiddleware } from "../middleware.mjs";
|
|
7
|
-
import { handleConnectAgent } from "../handlers/handle-connect.mjs";
|
|
8
|
-
import { handleStopAgent } from "../handlers/handle-stop.mjs";
|
|
9
|
-
import { handleArchiveThread, handleDeleteThread, handleListThreads, handleSubscribeToThreads, handleUpdateThread } from "../handlers/intelligence/threads.mjs";
|
|
10
|
-
import { createFetchRequestFromExpress, sendFetchResponse } from "./express-utils.mjs";
|
|
11
|
-
import { getLicenseWarningHeader, logger } from "@copilotkit/shared";
|
|
2
|
+
import { createCopilotRuntimeHandler } from "../core/fetch-handler.mjs";
|
|
3
|
+
import { createExpressNodeHandler } from "./express-fetch-bridge.mjs";
|
|
12
4
|
import express from "express";
|
|
13
5
|
import cors from "cors";
|
|
14
6
|
|
|
15
7
|
//#region src/v2/runtime/endpoints/express.ts
|
|
16
|
-
function
|
|
17
|
-
const router = express.Router();
|
|
8
|
+
function createCopilotExpressHandler({ runtime, basePath, mode = "multi-route", cors: corsOption = true, hooks }) {
|
|
18
9
|
const normalizedBase = normalizeBasePath(basePath);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}).catch(() => {});
|
|
28
|
-
router.use(cors({
|
|
29
|
-
origin: "*",
|
|
30
|
-
methods: [
|
|
31
|
-
"GET",
|
|
32
|
-
"HEAD",
|
|
33
|
-
"PUT",
|
|
34
|
-
"POST",
|
|
35
|
-
"DELETE",
|
|
36
|
-
"PATCH",
|
|
37
|
-
"OPTIONS"
|
|
38
|
-
],
|
|
39
|
-
allowedHeaders: ["*"]
|
|
40
|
-
}));
|
|
41
|
-
router.post(joinPath(normalizedBase, "/agent/:agentId/run"), createRouteHandler(runtime, async ({ request, req }) => {
|
|
42
|
-
const agentId = req.params.agentId;
|
|
43
|
-
return handleRunAgent({
|
|
44
|
-
runtime,
|
|
45
|
-
request,
|
|
46
|
-
agentId
|
|
47
|
-
});
|
|
48
|
-
}));
|
|
49
|
-
router.post(joinPath(normalizedBase, "/agent/:agentId/connect"), createRouteHandler(runtime, async ({ request, req }) => {
|
|
50
|
-
const agentId = req.params.agentId;
|
|
51
|
-
return handleConnectAgent({
|
|
52
|
-
runtime,
|
|
53
|
-
request,
|
|
54
|
-
agentId
|
|
55
|
-
});
|
|
56
|
-
}));
|
|
57
|
-
router.post(joinPath(normalizedBase, "/agent/:agentId/stop/:threadId"), createRouteHandler(runtime, async ({ request, req }) => {
|
|
58
|
-
const agentId = req.params.agentId;
|
|
59
|
-
const threadId = req.params.threadId;
|
|
60
|
-
return handleStopAgent({
|
|
61
|
-
runtime,
|
|
62
|
-
request,
|
|
63
|
-
agentId,
|
|
64
|
-
threadId
|
|
65
|
-
});
|
|
66
|
-
}));
|
|
67
|
-
router.get(joinPath(normalizedBase, "/info"), createRouteHandler(runtime, async ({ request }) => {
|
|
68
|
-
return handleGetRuntimeInfo({
|
|
69
|
-
runtime,
|
|
70
|
-
request
|
|
71
|
-
});
|
|
72
|
-
}));
|
|
73
|
-
router.post(joinPath(normalizedBase, "/transcribe"), createRouteHandler(runtime, async ({ request }) => {
|
|
74
|
-
return handleTranscribe({
|
|
75
|
-
runtime,
|
|
76
|
-
request
|
|
77
|
-
});
|
|
78
|
-
}));
|
|
79
|
-
router.get(joinPath(normalizedBase, "/threads"), createRouteHandler(runtime, async ({ request }) => {
|
|
80
|
-
return handleListThreads({
|
|
81
|
-
runtime,
|
|
82
|
-
request
|
|
83
|
-
});
|
|
84
|
-
}));
|
|
85
|
-
router.post(joinPath(normalizedBase, "/threads/subscribe"), createRouteHandler(runtime, async ({ request }) => {
|
|
86
|
-
return handleSubscribeToThreads({
|
|
87
|
-
runtime,
|
|
88
|
-
request
|
|
89
|
-
});
|
|
90
|
-
}));
|
|
91
|
-
router.patch(joinPath(normalizedBase, "/threads/:threadId"), createRouteHandler(runtime, async ({ request, req }) => {
|
|
92
|
-
const threadId = req.params.threadId;
|
|
93
|
-
return handleUpdateThread({
|
|
94
|
-
runtime,
|
|
95
|
-
request,
|
|
96
|
-
threadId
|
|
97
|
-
});
|
|
98
|
-
}));
|
|
99
|
-
router.post(joinPath(normalizedBase, "/threads/:threadId/archive"), createRouteHandler(runtime, async ({ request, req }) => {
|
|
100
|
-
const threadId = req.params.threadId;
|
|
101
|
-
return handleArchiveThread({
|
|
102
|
-
runtime,
|
|
103
|
-
request,
|
|
104
|
-
threadId
|
|
105
|
-
});
|
|
106
|
-
}));
|
|
107
|
-
router.delete(joinPath(normalizedBase, "/threads/:threadId"), createRouteHandler(runtime, async ({ request, req }) => {
|
|
108
|
-
const threadId = req.params.threadId;
|
|
109
|
-
return handleDeleteThread({
|
|
110
|
-
runtime,
|
|
111
|
-
request,
|
|
112
|
-
threadId
|
|
113
|
-
});
|
|
114
|
-
}));
|
|
115
|
-
router.use(joinPath(normalizedBase, "*"), (req, res) => {
|
|
116
|
-
res.status(404).json({ error: "Not found" });
|
|
117
|
-
});
|
|
118
|
-
return router;
|
|
119
|
-
}
|
|
120
|
-
function createRouteHandler(runtime, factory) {
|
|
121
|
-
return async (req, res, next) => {
|
|
122
|
-
const path = req.originalUrl ?? req.path;
|
|
123
|
-
let request = createFetchRequestFromExpress(req);
|
|
124
|
-
const warning = getLicenseWarningHeader(runtime.licenseChecker);
|
|
125
|
-
if (warning) res.setHeader(warning.key, warning.value);
|
|
10
|
+
const nodeHandler = createExpressNodeHandler(createCopilotRuntimeHandler({
|
|
11
|
+
runtime,
|
|
12
|
+
basePath: normalizedBase,
|
|
13
|
+
mode,
|
|
14
|
+
cors: false,
|
|
15
|
+
hooks
|
|
16
|
+
}));
|
|
17
|
+
const expressHandler = async (req, res, next) => {
|
|
126
18
|
try {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
path
|
|
131
|
-
});
|
|
132
|
-
if (maybeModifiedRequest) request = maybeModifiedRequest;
|
|
133
|
-
} catch (error) {
|
|
134
|
-
logger.error({
|
|
135
|
-
err: error,
|
|
136
|
-
url: request.url,
|
|
137
|
-
path
|
|
138
|
-
}, "Error running before request middleware");
|
|
139
|
-
if (error instanceof Response) {
|
|
140
|
-
try {
|
|
141
|
-
await sendFetchResponse(res, error);
|
|
142
|
-
} catch (streamError) {
|
|
143
|
-
next(streamError);
|
|
144
|
-
}
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
next(error);
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
try {
|
|
151
|
-
const response = await factory({
|
|
152
|
-
request,
|
|
153
|
-
req
|
|
154
|
-
});
|
|
155
|
-
const responseForMiddleware = response.clone();
|
|
156
|
-
await sendFetchResponse(res, response);
|
|
157
|
-
callAfterRequestMiddleware({
|
|
158
|
-
runtime,
|
|
159
|
-
response: responseForMiddleware,
|
|
160
|
-
path
|
|
161
|
-
}).catch((error) => {
|
|
162
|
-
logger.error({
|
|
163
|
-
err: error,
|
|
164
|
-
url: req.originalUrl ?? req.url,
|
|
165
|
-
path
|
|
166
|
-
}, "Error running after request middleware");
|
|
167
|
-
});
|
|
168
|
-
} catch (error) {
|
|
169
|
-
if (error instanceof Response) {
|
|
170
|
-
const errorResponseForMiddleware = error.clone();
|
|
171
|
-
try {
|
|
172
|
-
await sendFetchResponse(res, error);
|
|
173
|
-
} catch (streamError) {
|
|
174
|
-
next(streamError);
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
callAfterRequestMiddleware({
|
|
178
|
-
runtime,
|
|
179
|
-
response: errorResponseForMiddleware,
|
|
180
|
-
path
|
|
181
|
-
}).catch((mwError) => {
|
|
182
|
-
logger.error({
|
|
183
|
-
err: mwError,
|
|
184
|
-
url: req.originalUrl ?? req.url,
|
|
185
|
-
path
|
|
186
|
-
}, "Error running after request middleware");
|
|
187
|
-
});
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
logger.error({
|
|
191
|
-
err: error,
|
|
192
|
-
url: request.url,
|
|
193
|
-
path
|
|
194
|
-
}, "Error running request handler");
|
|
195
|
-
next(error);
|
|
19
|
+
await nodeHandler(req, res);
|
|
20
|
+
} catch (err) {
|
|
21
|
+
next(err);
|
|
196
22
|
}
|
|
197
23
|
};
|
|
24
|
+
const router = express.Router();
|
|
25
|
+
if (corsOption) {
|
|
26
|
+
const corsConfig = corsOption === true ? {
|
|
27
|
+
origin: "*",
|
|
28
|
+
methods: [
|
|
29
|
+
"GET",
|
|
30
|
+
"HEAD",
|
|
31
|
+
"PUT",
|
|
32
|
+
"POST",
|
|
33
|
+
"DELETE",
|
|
34
|
+
"PATCH",
|
|
35
|
+
"OPTIONS"
|
|
36
|
+
],
|
|
37
|
+
allowedHeaders: ["*"]
|
|
38
|
+
} : corsOption;
|
|
39
|
+
router.use(cors(corsConfig));
|
|
40
|
+
}
|
|
41
|
+
if (mode === "single-route") {
|
|
42
|
+
router.post(normalizedBase, expressHandler);
|
|
43
|
+
router.options(normalizedBase, expressHandler);
|
|
44
|
+
} else if (normalizedBase === "/") router.all("*", expressHandler);
|
|
45
|
+
else {
|
|
46
|
+
router.all(`${normalizedBase}/*`, expressHandler);
|
|
47
|
+
router.all(normalizedBase, expressHandler);
|
|
48
|
+
}
|
|
49
|
+
return router;
|
|
198
50
|
}
|
|
199
51
|
function normalizeBasePath(path) {
|
|
200
52
|
if (!path) throw new Error("basePath must be provided for Express endpoint");
|
|
@@ -202,13 +54,7 @@ function normalizeBasePath(path) {
|
|
|
202
54
|
if (path.length > 1 && path.endsWith("/")) return path.slice(0, -1);
|
|
203
55
|
return path;
|
|
204
56
|
}
|
|
205
|
-
function joinPath(basePath, suffix) {
|
|
206
|
-
if (basePath === "/") return suffix.startsWith("/") ? suffix : `/${suffix}`;
|
|
207
|
-
if (!suffix) return basePath;
|
|
208
|
-
if (suffix === "*") return `${basePath}/*`;
|
|
209
|
-
return `${basePath}${suffix.startsWith("/") ? suffix : `/${suffix}`}`;
|
|
210
|
-
}
|
|
211
57
|
|
|
212
58
|
//#endregion
|
|
213
|
-
export {
|
|
59
|
+
export { createCopilotExpressHandler };
|
|
214
60
|
//# sourceMappingURL=express.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.mjs","names":[],"sources":["../../../../src/v2/runtime/endpoints/express.ts"],"sourcesContent":["import express from \"express\";\nimport type {\n Request as ExpressRequest,\n Response as ExpressResponse,\n NextFunction,\n Router,\n} from \"express\";\nimport cors from \"cors\";\n\nimport { CopilotRuntimeLike } from \"../runtime\";\nimport { telemetry } from \"../telemetry\";\nimport { handleRunAgent } from \"../handlers/handle-run\";\nimport { handleConnectAgent } from \"../handlers/handle-connect\";\nimport { handleStopAgent } from \"../handlers/handle-stop\";\nimport { handleGetRuntimeInfo } from \"../handlers/get-runtime-info\";\nimport { handleTranscribe } from \"../handlers/handle-transcribe\";\nimport {\n handleListThreads,\n handleSubscribeToThreads,\n handleUpdateThread,\n handleArchiveThread,\n handleDeleteThread,\n} from \"../handlers/handle-threads\";\nimport { logger, getLicenseWarningHeader } from \"@copilotkit/shared\";\nimport {\n callBeforeRequestMiddleware,\n callAfterRequestMiddleware,\n} from \"../middleware\";\nimport {\n createFetchRequestFromExpress,\n sendFetchResponse,\n} from \"./express-utils\";\n\ninterface CopilotExpressEndpointParams {\n runtime: CopilotRuntimeLike;\n basePath: string;\n}\n\nexport function createCopilotEndpointExpress({\n runtime,\n basePath,\n}: CopilotExpressEndpointParams): Router {\n const router = express.Router();\n const normalizedBase = normalizeBasePath(basePath);\n\n // Fire instance_created telemetry - resolve agents if needed\n Promise.resolve(runtime.agents)\n .then((agents) => {\n telemetry.capture(\"oss.runtime.instance_created\", {\n actionsAmount: 0,\n endpointTypes: [],\n endpointsAmount: 0,\n agentsAmount: Object.keys(agents).length,\n \"cloud.api_key_provided\": false,\n });\n })\n .catch(() => {\n // Silently fail - telemetry should not break the application\n });\n\n router.use(\n cors({\n origin: \"*\",\n methods: [\"GET\", \"HEAD\", \"PUT\", \"POST\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\"*\"],\n }),\n );\n\n router.post(\n joinPath(normalizedBase, \"/agent/:agentId/run\"),\n createRouteHandler(runtime, async ({ request, req }) => {\n const agentId = req.params.agentId as string;\n return handleRunAgent({ runtime, request, agentId });\n }),\n );\n\n router.post(\n joinPath(normalizedBase, \"/agent/:agentId/connect\"),\n createRouteHandler(runtime, async ({ request, req }) => {\n const agentId = req.params.agentId as string;\n return handleConnectAgent({ runtime, request, agentId });\n }),\n );\n\n router.post(\n joinPath(normalizedBase, \"/agent/:agentId/stop/:threadId\"),\n createRouteHandler(runtime, async ({ request, req }) => {\n const agentId = req.params.agentId as string;\n const threadId = req.params.threadId as string;\n return handleStopAgent({ runtime, request, agentId, threadId });\n }),\n );\n\n router.get(\n joinPath(normalizedBase, \"/info\"),\n createRouteHandler(runtime, async ({ request }) => {\n return handleGetRuntimeInfo({ runtime, request });\n }),\n );\n\n router.post(\n joinPath(normalizedBase, \"/transcribe\"),\n createRouteHandler(runtime, async ({ request }) => {\n return handleTranscribe({ runtime, request });\n }),\n );\n\n router.get(\n joinPath(normalizedBase, \"/threads\"),\n createRouteHandler(runtime, async ({ request }) => {\n return handleListThreads({ runtime, request });\n }),\n );\n\n router.post(\n joinPath(normalizedBase, \"/threads/subscribe\"),\n createRouteHandler(runtime, async ({ request }) => {\n return handleSubscribeToThreads({ runtime, request });\n }),\n );\n\n router.patch(\n joinPath(normalizedBase, \"/threads/:threadId\"),\n createRouteHandler(runtime, async ({ request, req }) => {\n const threadId = req.params.threadId as string;\n return handleUpdateThread({ runtime, request, threadId });\n }),\n );\n\n router.post(\n joinPath(normalizedBase, \"/threads/:threadId/archive\"),\n createRouteHandler(runtime, async ({ request, req }) => {\n const threadId = req.params.threadId as string;\n return handleArchiveThread({ runtime, request, threadId });\n }),\n );\n\n router.delete(\n joinPath(normalizedBase, \"/threads/:threadId\"),\n createRouteHandler(runtime, async ({ request, req }) => {\n const threadId = req.params.threadId as string;\n return handleDeleteThread({ runtime, request, threadId });\n }),\n );\n\n router.use(joinPath(normalizedBase, \"*\"), (req, res) => {\n res.status(404).json({ error: \"Not found\" });\n });\n\n return router;\n}\n\ntype RouteHandlerContext = {\n request: Request;\n req: ExpressRequest;\n};\n\ntype RouteHandlerFactory = (ctx: RouteHandlerContext) => Promise<Response>;\n\nfunction createRouteHandler(\n runtime: CopilotRuntimeLike,\n factory: RouteHandlerFactory,\n) {\n return async (\n req: ExpressRequest,\n res: ExpressResponse,\n next: NextFunction,\n ) => {\n const path = req.originalUrl ?? req.path;\n let request = createFetchRequestFromExpress(req);\n\n const warning = getLicenseWarningHeader(runtime.licenseChecker);\n if (warning) res.setHeader(warning.key, warning.value);\n\n try {\n const maybeModifiedRequest = await callBeforeRequestMiddleware({\n runtime,\n request,\n path,\n });\n if (maybeModifiedRequest) {\n request = maybeModifiedRequest;\n }\n } catch (error) {\n logger.error(\n { err: error, url: request.url, path },\n \"Error running before request middleware\",\n );\n if (error instanceof Response) {\n try {\n await sendFetchResponse(res, error);\n } catch (streamError) {\n next(streamError);\n }\n return;\n }\n next(error);\n return;\n }\n\n try {\n const response = await factory({ request, req });\n const responseForMiddleware = response.clone();\n await sendFetchResponse(res, response);\n callAfterRequestMiddleware({\n runtime,\n response: responseForMiddleware,\n path,\n }).catch((error) => {\n logger.error(\n { err: error, url: req.originalUrl ?? req.url, path },\n \"Error running after request middleware\",\n );\n });\n } catch (error) {\n if (error instanceof Response) {\n const errorResponseForMiddleware = error.clone();\n try {\n await sendFetchResponse(res, error);\n } catch (streamError) {\n next(streamError);\n return;\n }\n callAfterRequestMiddleware({\n runtime,\n response: errorResponseForMiddleware,\n path,\n }).catch((mwError) => {\n logger.error(\n { err: mwError, url: req.originalUrl ?? req.url, path },\n \"Error running after request middleware\",\n );\n });\n return;\n }\n logger.error(\n { err: error, url: request.url, path },\n \"Error running request handler\",\n );\n next(error);\n }\n };\n}\n\nfunction normalizeBasePath(path: string): string {\n if (!path) {\n throw new Error(\"basePath must be provided for Express endpoint\");\n }\n\n if (!path.startsWith(\"/\")) {\n return `/${path}`;\n }\n\n if (path.length > 1 && path.endsWith(\"/\")) {\n return path.slice(0, -1);\n }\n\n return path;\n}\n\nfunction joinPath(basePath: string, suffix: string): string {\n if (basePath === \"/\") {\n return suffix.startsWith(\"/\") ? suffix : `/${suffix}`;\n }\n\n if (!suffix) {\n return basePath;\n }\n\n if (suffix === \"*\") {\n return `${basePath}/*`;\n }\n\n return `${basePath}${suffix.startsWith(\"/\") ? suffix : `/${suffix}`}`;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"express.mjs","names":[],"sources":["../../../../src/v2/runtime/endpoints/express.ts"],"sourcesContent":["import express from \"express\";\nimport type {\n Request as ExpressRequest,\n Response as ExpressResponse,\n NextFunction,\n Router,\n} from \"express\";\nimport cors from \"cors\";\nimport type { CorsOptions } from \"cors\";\nimport type { CopilotRuntimeLike } from \"../core/runtime\";\nimport { createCopilotRuntimeHandler } from \"../core/fetch-handler\";\nimport { createExpressNodeHandler } from \"./express-fetch-bridge\";\nimport type { CopilotRuntimeHooks } from \"../core/hooks\";\n\nexport interface CopilotExpressEndpointParams {\n runtime: CopilotRuntimeLike;\n basePath: string;\n\n /**\n * Endpoint mode.\n * - `\"multi-route\"` (default): separate routes for each operation\n * - `\"single-route\"`: single POST endpoint with JSON envelope dispatch\n */\n mode?: \"multi-route\" | \"single-route\";\n\n /**\n * CORS configuration for the Express router.\n * - `true` (default): permissive CORS (`origin: \"*\"`, all methods, all headers).\n * - `false`: no CORS middleware is applied — handle it yourself.\n * - object: passed directly to the Express `cors()` middleware.\n */\n cors?: boolean | CorsOptions;\n\n /**\n * Lifecycle hooks for request processing.\n */\n hooks?: CopilotRuntimeHooks;\n}\n\n/**\n * Creates an Express router that serves the CopilotKit runtime.\n *\n * In **multi-route** mode (default) the router exposes:\n * - `GET {basePath}/info` — runtime info\n * - `POST {basePath}/agent/:agentId/run` — start an agent run\n * - `POST {basePath}/agent/:agentId/connect` — connect to an agent run\n * - `POST {basePath}/agent/:agentId/stop/:threadId` — stop an agent run\n * - `POST {basePath}/transcribe` — transcribe audio\n *\n * In **single-route** mode a single `POST {basePath}` endpoint accepts a JSON\n * envelope `{ method, params, body }` and dispatches to the appropriate handler.\n *\n * @example\n * ```typescript\n * import express from \"express\";\n * import { CopilotRuntime } from \"@copilotkit/runtime/v2\";\n * import { createCopilotExpressHandler } from \"@copilotkit/runtime/v2/express\";\n *\n * const runtime = new CopilotRuntime({\n * agents: { default: new BuiltInAgent({ model: \"openai/gpt-4o-mini\" }) },\n * });\n *\n * const app = express();\n * app.use(createCopilotExpressHandler({\n * runtime,\n * basePath: \"/api/copilotkit\",\n * cors: true,\n * }));\n * app.listen(4000);\n * ```\n *\n * @example Single-route mode with lifecycle hooks\n * ```typescript\n * app.use(createCopilotExpressHandler({\n * runtime,\n * basePath: \"/api/copilotkit\",\n * mode: \"single-route\",\n * hooks: {\n * onRequest: ({ request }) => {\n * if (!request.headers.get(\"authorization\")) {\n * throw new Response(\"Unauthorized\", { status: 401 });\n * }\n * },\n * },\n * }));\n * ```\n */\n/** @deprecated Use `createCopilotExpressHandler` instead. */\nexport { createCopilotExpressHandler as createCopilotEndpointExpress };\n\nexport function createCopilotExpressHandler({\n runtime,\n basePath,\n mode = \"multi-route\",\n cors: corsOption = true,\n hooks,\n}: CopilotExpressEndpointParams): Router {\n const normalizedBase = normalizeBasePath(basePath);\n\n const handler = createCopilotRuntimeHandler({\n runtime,\n basePath: normalizedBase,\n mode,\n cors: false, // CORS is handled at the Express middleware layer\n hooks,\n });\n\n const nodeHandler = createExpressNodeHandler(handler);\n\n const expressHandler = async (\n req: ExpressRequest,\n res: ExpressResponse,\n next: NextFunction,\n ) => {\n try {\n await nodeHandler(req, res);\n } catch (err) {\n next(err);\n }\n };\n\n const router = express.Router();\n\n // CORS middleware\n if (corsOption) {\n const corsConfig: CorsOptions =\n corsOption === true\n ? {\n origin: \"*\",\n methods: [\n \"GET\",\n \"HEAD\",\n \"PUT\",\n \"POST\",\n \"DELETE\",\n \"PATCH\",\n \"OPTIONS\",\n ],\n allowedHeaders: [\"*\"],\n }\n : corsOption;\n router.use(cors(corsConfig));\n }\n\n // Route mounting\n if (mode === \"single-route\") {\n router.post(normalizedBase, expressHandler);\n router.options(normalizedBase, expressHandler);\n } else if (normalizedBase === \"/\") {\n router.all(\"*\", expressHandler);\n } else {\n router.all(`${normalizedBase}/*`, expressHandler);\n router.all(normalizedBase, expressHandler);\n }\n\n return router;\n}\n\nfunction normalizeBasePath(path: string): string {\n if (!path) {\n throw new Error(\"basePath must be provided for Express endpoint\");\n }\n\n if (!path.startsWith(\"/\")) {\n return `/${path}`;\n }\n\n if (path.length > 1 && path.endsWith(\"/\")) {\n return path.slice(0, -1);\n }\n\n return path;\n}\n"],"mappings":";;;;;;;AA0FA,SAAgB,4BAA4B,EAC1C,SACA,UACA,OAAO,eACP,MAAM,aAAa,MACnB,SACuC;CACvC,MAAM,iBAAiB,kBAAkB,SAAS;CAUlD,MAAM,cAAc,yBARJ,4BAA4B;EAC1C;EACA,UAAU;EACV;EACA,MAAM;EACN;EACD,CAAC,CAEmD;CAErD,MAAM,iBAAiB,OACrB,KACA,KACA,SACG;AACH,MAAI;AACF,SAAM,YAAY,KAAK,IAAI;WACpB,KAAK;AACZ,QAAK,IAAI;;;CAIb,MAAM,SAAS,QAAQ,QAAQ;AAG/B,KAAI,YAAY;EACd,MAAM,aACJ,eAAe,OACX;GACE,QAAQ;GACR,SAAS;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACD;GACD,gBAAgB,CAAC,IAAI;GACtB,GACD;AACN,SAAO,IAAI,KAAK,WAAW,CAAC;;AAI9B,KAAI,SAAS,gBAAgB;AAC3B,SAAO,KAAK,gBAAgB,eAAe;AAC3C,SAAO,QAAQ,gBAAgB,eAAe;YACrC,mBAAmB,IAC5B,QAAO,IAAI,KAAK,eAAe;MAC1B;AACL,SAAO,IAAI,GAAG,eAAe,KAAK,eAAe;AACjD,SAAO,IAAI,gBAAgB,eAAe;;AAG5C,QAAO;;AAGT,SAAS,kBAAkB,MAAsB;AAC/C,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,iDAAiD;AAGnE,KAAI,CAAC,KAAK,WAAW,IAAI,CACvB,QAAO,IAAI;AAGb,KAAI,KAAK,SAAS,KAAK,KAAK,SAAS,IAAI,CACvC,QAAO,KAAK,MAAM,GAAG,GAAG;AAG1B,QAAO"}
|
|
@@ -1,133 +1,21 @@
|
|
|
1
1
|
require("reflect-metadata");
|
|
2
2
|
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const require_handle_transcribe = require('../handlers/handle-transcribe.cjs');
|
|
6
|
-
const require_middleware = require('../middleware.cjs');
|
|
7
|
-
const require_handle_connect = require('../handlers/handle-connect.cjs');
|
|
8
|
-
const require_handle_stop = require('../handlers/handle-stop.cjs');
|
|
9
|
-
const require_single_route_helpers = require('./single-route-helpers.cjs');
|
|
10
|
-
let _copilotkit_shared = require("@copilotkit/shared");
|
|
3
|
+
const require_fetch_handler = require('../core/fetch-handler.cjs');
|
|
4
|
+
const require_hono = require('./hono.cjs');
|
|
11
5
|
let hono = require("hono");
|
|
12
|
-
let hono_cors = require("hono/cors");
|
|
13
6
|
|
|
14
7
|
//#region src/v2/runtime/endpoints/hono-single.ts
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
/** @deprecated Use `createCopilotHonoHandler` with `mode: "single-route"` instead. */
|
|
9
|
+
function createCopilotEndpointSingleRoute({ runtime, basePath, cors: corsConfig, hooks }) {
|
|
17
10
|
const routePath = normalizePath(basePath);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"POST",
|
|
25
|
-
"DELETE",
|
|
26
|
-
"PATCH",
|
|
27
|
-
"OPTIONS"
|
|
28
|
-
],
|
|
29
|
-
allowHeaders: ["*"],
|
|
30
|
-
credentials: corsConfig?.credentials ?? false
|
|
31
|
-
})).use("*", async (c, next) => {
|
|
32
|
-
const request = c.req.raw;
|
|
33
|
-
const path = c.req.path;
|
|
34
|
-
try {
|
|
35
|
-
const maybeModifiedRequest = await require_middleware.callBeforeRequestMiddleware({
|
|
36
|
-
runtime,
|
|
37
|
-
request,
|
|
38
|
-
path
|
|
39
|
-
});
|
|
40
|
-
if (maybeModifiedRequest) c.set("modifiedRequest", maybeModifiedRequest);
|
|
41
|
-
} catch (error) {
|
|
42
|
-
_copilotkit_shared.logger.error({
|
|
43
|
-
err: error,
|
|
44
|
-
url: request.url,
|
|
45
|
-
path
|
|
46
|
-
}, "Error running before request middleware");
|
|
47
|
-
if (error instanceof Response) return error;
|
|
48
|
-
throw error;
|
|
49
|
-
}
|
|
50
|
-
await next();
|
|
51
|
-
}).use("*", async (c, next) => {
|
|
52
|
-
await next();
|
|
53
|
-
const response = c.res.clone();
|
|
54
|
-
const path = c.req.path;
|
|
55
|
-
require_middleware.callAfterRequestMiddleware({
|
|
56
|
-
runtime,
|
|
57
|
-
response,
|
|
58
|
-
path
|
|
59
|
-
}).catch((error) => {
|
|
60
|
-
_copilotkit_shared.logger.error({
|
|
61
|
-
err: error,
|
|
62
|
-
url: c.req.url,
|
|
63
|
-
path
|
|
64
|
-
}, "Error running after request middleware");
|
|
65
|
-
});
|
|
66
|
-
}).post("/", async (c) => {
|
|
67
|
-
const request = c.get("modifiedRequest") || c.req.raw;
|
|
68
|
-
let methodCall;
|
|
69
|
-
try {
|
|
70
|
-
methodCall = await require_single_route_helpers.parseMethodCall(request);
|
|
71
|
-
} catch (error) {
|
|
72
|
-
if (error instanceof Response) {
|
|
73
|
-
_copilotkit_shared.logger.warn({ url: request.url }, "Invalid single-route payload");
|
|
74
|
-
return error;
|
|
75
|
-
}
|
|
76
|
-
_copilotkit_shared.logger.warn({
|
|
77
|
-
err: error,
|
|
78
|
-
url: request.url
|
|
79
|
-
}, "Invalid single-route payload");
|
|
80
|
-
return c.json({
|
|
81
|
-
error: "invalid_request",
|
|
82
|
-
message: error instanceof Error ? error.message : "Invalid request payload"
|
|
83
|
-
}, 400);
|
|
84
|
-
}
|
|
85
|
-
try {
|
|
86
|
-
switch (methodCall.method) {
|
|
87
|
-
case "agent/run": {
|
|
88
|
-
const agentId = require_single_route_helpers.expectString(methodCall.params, "agentId");
|
|
89
|
-
return await require_handle_run.handleRunAgent({
|
|
90
|
-
runtime,
|
|
91
|
-
request: require_single_route_helpers.createJsonRequest(request, methodCall.body),
|
|
92
|
-
agentId
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
case "agent/connect": {
|
|
96
|
-
const agentId = require_single_route_helpers.expectString(methodCall.params, "agentId");
|
|
97
|
-
return await require_handle_connect.handleConnectAgent({
|
|
98
|
-
runtime,
|
|
99
|
-
request: require_single_route_helpers.createJsonRequest(request, methodCall.body),
|
|
100
|
-
agentId
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
case "agent/stop": return await require_handle_stop.handleStopAgent({
|
|
104
|
-
runtime,
|
|
105
|
-
request,
|
|
106
|
-
agentId: require_single_route_helpers.expectString(methodCall.params, "agentId"),
|
|
107
|
-
threadId: require_single_route_helpers.expectString(methodCall.params, "threadId")
|
|
108
|
-
});
|
|
109
|
-
case "info": return await require_get_runtime_info.handleGetRuntimeInfo({
|
|
110
|
-
runtime,
|
|
111
|
-
request
|
|
112
|
-
});
|
|
113
|
-
case "transcribe": return await require_handle_transcribe.handleTranscribe({
|
|
114
|
-
runtime,
|
|
115
|
-
request: require_single_route_helpers.createJsonRequest(request, methodCall.body)
|
|
116
|
-
});
|
|
117
|
-
default: return methodCall.method;
|
|
118
|
-
}
|
|
119
|
-
} catch (error) {
|
|
120
|
-
if (error instanceof Response) return error;
|
|
121
|
-
_copilotkit_shared.logger.error({
|
|
122
|
-
err: error,
|
|
123
|
-
url: request.url,
|
|
124
|
-
method: methodCall.method
|
|
125
|
-
}, "Error running single-route handler");
|
|
126
|
-
throw error;
|
|
127
|
-
}
|
|
128
|
-
}).notFound((c) => {
|
|
129
|
-
return c.json({ error: "Not found" }, 404);
|
|
11
|
+
const handler = require_fetch_handler.createCopilotRuntimeHandler({
|
|
12
|
+
runtime,
|
|
13
|
+
basePath: routePath,
|
|
14
|
+
mode: "single-route",
|
|
15
|
+
cors: corsConfig ? require_hono.toFetchCorsConfig(corsConfig) : true,
|
|
16
|
+
hooks
|
|
130
17
|
});
|
|
18
|
+
return new hono.Hono().basePath(routePath).all("*", async (c) => handler(c.req.raw));
|
|
131
19
|
}
|
|
132
20
|
function normalizePath(path) {
|
|
133
21
|
if (!path) throw new Error("basePath must be provided for single-route endpoint");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono-single.cjs","names":["
|
|
1
|
+
{"version":3,"file":"hono-single.cjs","names":["createCopilotRuntimeHandler","toFetchCorsConfig","Hono"],"sources":["../../../../src/v2/runtime/endpoints/hono-single.ts"],"sourcesContent":["import { Hono } from \"hono\";\nimport type { CopilotRuntimeLike } from \"../core/runtime\";\nimport { createCopilotRuntimeHandler } from \"../core/fetch-handler\";\nimport type { CopilotRuntimeHooks } from \"../core/hooks\";\nimport { CopilotEndpointCorsConfig, toFetchCorsConfig } from \"./hono\";\n\ninterface CopilotSingleEndpointParams {\n runtime: CopilotRuntimeLike;\n /**\n * Absolute path at which to mount the single-route endpoint (e.g. \"/api/copilotkit\").\n */\n basePath: string;\n /**\n * Optional CORS configuration. When not provided, defaults to allowing all origins without credentials.\n * To support HTTP-only cookies, provide cors config with credentials: true and explicit origin.\n */\n cors?: CopilotEndpointCorsConfig;\n /**\n * Lifecycle hooks for request processing.\n */\n hooks?: CopilotRuntimeHooks;\n}\n\n/** @deprecated Use `createCopilotHonoHandler` with `mode: \"single-route\"` instead. */\nexport function createCopilotEndpointSingleRoute({\n runtime,\n basePath,\n cors: corsConfig,\n hooks,\n}: CopilotSingleEndpointParams) {\n const routePath = normalizePath(basePath);\n\n const handler = createCopilotRuntimeHandler({\n runtime,\n basePath: routePath,\n mode: \"single-route\",\n cors: corsConfig ? toFetchCorsConfig(corsConfig) : true,\n hooks,\n });\n\n const app = new Hono();\n\n return app.basePath(routePath).all(\"*\", async (c) => handler(c.req.raw));\n}\n\nfunction normalizePath(path: string): string {\n if (!path) {\n throw new Error(\"basePath must be provided for single-route endpoint\");\n }\n\n if (!path.startsWith(\"/\")) {\n return `/${path}`;\n }\n\n if (path.length > 1 && path.endsWith(\"/\")) {\n return path.slice(0, -1);\n }\n\n return path;\n}\n"],"mappings":";;;;;;;;AAwBA,SAAgB,iCAAiC,EAC/C,SACA,UACA,MAAM,YACN,SAC8B;CAC9B,MAAM,YAAY,cAAc,SAAS;CAEzC,MAAM,UAAUA,kDAA4B;EAC1C;EACA,UAAU;EACV,MAAM;EACN,MAAM,aAAaC,+BAAkB,WAAW,GAAG;EACnD;EACD,CAAC;AAIF,QAFY,IAAIC,WAAM,CAEX,SAAS,UAAU,CAAC,IAAI,KAAK,OAAO,MAAM,QAAQ,EAAE,IAAI,IAAI,CAAC;;AAG1E,SAAS,cAAc,MAAsB;AAC3C,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,sDAAsD;AAGxE,KAAI,CAAC,KAAK,WAAW,IAAI,CACvB,QAAO,IAAI;AAGb,KAAI,KAAK,SAAS,KAAK,KAAK,SAAS,IAAI,CACvC,QAAO,KAAK,MAAM,GAAG,GAAG;AAG1B,QAAO"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
import { CopilotRuntimeLike } from "../runtime.cjs";
|
|
2
|
+
import { CopilotRuntimeLike } from "../core/runtime.cjs";
|
|
3
|
+
import { CopilotRuntimeHooks } from "../core/hooks.cjs";
|
|
3
4
|
import { CopilotEndpointCorsConfig } from "./hono.cjs";
|
|
5
|
+
import * as hono_types0 from "hono/types";
|
|
4
6
|
import * as hono_utils_http_status0 from "hono/utils/http-status";
|
|
5
7
|
import * as hono_hono_base0 from "hono/hono-base";
|
|
6
8
|
|
|
@@ -16,26 +18,27 @@ interface CopilotSingleEndpointParams {
|
|
|
16
18
|
* To support HTTP-only cookies, provide cors config with credentials: true and explicit origin.
|
|
17
19
|
*/
|
|
18
20
|
cors?: CopilotEndpointCorsConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Lifecycle hooks for request processing.
|
|
23
|
+
*/
|
|
24
|
+
hooks?: CopilotRuntimeHooks;
|
|
19
25
|
}
|
|
20
|
-
|
|
21
|
-
Variables: {
|
|
22
|
-
modifiedRequest?: Request;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
26
|
+
/** @deprecated Use `createCopilotHonoHandler` with `mode: "single-route"` instead. */
|
|
25
27
|
declare function createCopilotEndpointSingleRoute({
|
|
26
28
|
runtime,
|
|
27
29
|
basePath,
|
|
28
|
-
cors: corsConfig
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
cors: corsConfig,
|
|
31
|
+
hooks
|
|
32
|
+
}: CopilotSingleEndpointParams): hono_hono_base0.HonoBase<hono_types0.BlankEnv, {
|
|
33
|
+
[x: `${string}/*`]: {
|
|
34
|
+
$all: {
|
|
32
35
|
input: {};
|
|
33
36
|
output: {};
|
|
34
37
|
outputFormat: string;
|
|
35
38
|
status: hono_utils_http_status0.StatusCode;
|
|
36
39
|
};
|
|
37
40
|
};
|
|
38
|
-
}, string, string
|
|
41
|
+
}, string, `${string}/*`>;
|
|
39
42
|
//#endregion
|
|
40
43
|
export { createCopilotEndpointSingleRoute };
|
|
41
44
|
//# sourceMappingURL=hono-single.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono-single.d.cts","names":[],"sources":["../../../../src/v2/runtime/endpoints/hono-single.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"hono-single.d.cts","names":[],"sources":["../../../../src/v2/runtime/endpoints/hono-single.ts"],"mappings":";;;;;;;;;UAMU,2BAAA;EACR,OAAA,EAAS,kBAAA;;;;EAIT,QAAA;EALmC;;;;EAUnC,IAAA,GAAO,yBAAA;EAIoB;;;EAA3B,KAAA,GAAQ,mBAAA;AAAA;;iBAIM,gCAAA,CAAA;EACd,OAAA;EACA,QAAA;EACA,IAAA,EAAM,UAAA;EACN;AAAA,GACC,2BAAA,mBAA2B,QAAA,CAAA,WAAA,CAAA,QAAA;EAAA;;;;;cAAA,uBAAA,CAAA,UAAA;IAAA;EAAA;AAAA"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import { CopilotRuntimeLike } from "../runtime.mjs";
|
|
2
|
+
import { CopilotRuntimeLike } from "../core/runtime.mjs";
|
|
3
|
+
import { CopilotRuntimeHooks } from "../core/hooks.mjs";
|
|
3
4
|
import { CopilotEndpointCorsConfig } from "./hono.mjs";
|
|
5
|
+
import * as hono_types0 from "hono/types";
|
|
4
6
|
import * as hono_utils_http_status0 from "hono/utils/http-status";
|
|
5
7
|
import * as hono_hono_base0 from "hono/hono-base";
|
|
6
8
|
|
|
@@ -16,26 +18,27 @@ interface CopilotSingleEndpointParams {
|
|
|
16
18
|
* To support HTTP-only cookies, provide cors config with credentials: true and explicit origin.
|
|
17
19
|
*/
|
|
18
20
|
cors?: CopilotEndpointCorsConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Lifecycle hooks for request processing.
|
|
23
|
+
*/
|
|
24
|
+
hooks?: CopilotRuntimeHooks;
|
|
19
25
|
}
|
|
20
|
-
|
|
21
|
-
Variables: {
|
|
22
|
-
modifiedRequest?: Request;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
26
|
+
/** @deprecated Use `createCopilotHonoHandler` with `mode: "single-route"` instead. */
|
|
25
27
|
declare function createCopilotEndpointSingleRoute({
|
|
26
28
|
runtime,
|
|
27
29
|
basePath,
|
|
28
|
-
cors: corsConfig
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
cors: corsConfig,
|
|
31
|
+
hooks
|
|
32
|
+
}: CopilotSingleEndpointParams): hono_hono_base0.HonoBase<hono_types0.BlankEnv, {
|
|
33
|
+
[x: `${string}/*`]: {
|
|
34
|
+
$all: {
|
|
32
35
|
input: {};
|
|
33
36
|
output: {};
|
|
34
37
|
outputFormat: string;
|
|
35
38
|
status: hono_utils_http_status0.StatusCode;
|
|
36
39
|
};
|
|
37
40
|
};
|
|
38
|
-
}, string, string
|
|
41
|
+
}, string, `${string}/*`>;
|
|
39
42
|
//#endregion
|
|
40
43
|
export { createCopilotEndpointSingleRoute };
|
|
41
44
|
//# sourceMappingURL=hono-single.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono-single.d.mts","names":[],"sources":["../../../../src/v2/runtime/endpoints/hono-single.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"hono-single.d.mts","names":[],"sources":["../../../../src/v2/runtime/endpoints/hono-single.ts"],"mappings":";;;;;;;;;UAMU,2BAAA;EACR,OAAA,EAAS,kBAAA;;;;EAIT,QAAA;EALmC;;;;EAUnC,IAAA,GAAO,yBAAA;EAIoB;;;EAA3B,KAAA,GAAQ,mBAAA;AAAA;;iBAIM,gCAAA,CAAA;EACd,OAAA;EACA,QAAA;EACA,IAAA,EAAM,UAAA;EACN;AAAA,GACC,2BAAA,mBAA2B,QAAA,CAAA,WAAA,CAAA,QAAA;EAAA;;;;;cAAA,uBAAA,CAAA,UAAA;IAAA;EAAA;AAAA"}
|