@copilotkit/aimock 1.43.0 → 1.45.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +46 -0
- package/README.md +14 -2
- package/dist/agui-handler.d.ts.map +1 -1
- package/dist/aimock-cli.cjs +31 -5
- package/dist/aimock-cli.cjs.map +1 -1
- package/dist/aimock-cli.d.cts.map +1 -1
- package/dist/aimock-cli.d.ts.map +1 -1
- package/dist/aimock-cli.js +31 -5
- package/dist/aimock-cli.js.map +1 -1
- package/dist/bedrock-converse.cjs +344 -43
- package/dist/bedrock-converse.cjs.map +1 -1
- package/dist/bedrock-converse.d.cts.map +1 -1
- package/dist/bedrock-converse.d.ts.map +1 -1
- package/dist/bedrock-converse.js +345 -44
- package/dist/bedrock-converse.js.map +1 -1
- package/dist/bedrock.cjs +195 -42
- package/dist/bedrock.cjs.map +1 -1
- package/dist/bedrock.d.cts.map +1 -1
- package/dist/bedrock.d.ts.map +1 -1
- package/dist/bedrock.js +196 -43
- package/dist/bedrock.js.map +1 -1
- package/dist/chaos.cjs +9 -5
- package/dist/chaos.cjs.map +1 -1
- package/dist/chaos.d.cts.map +1 -1
- package/dist/chaos.d.ts.map +1 -1
- package/dist/chaos.js +10 -7
- package/dist/chaos.js.map +1 -1
- package/dist/cli.cjs +238 -9
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +242 -13
- package/dist/cli.js.map +1 -1
- package/dist/cohere.cjs +159 -72
- package/dist/cohere.cjs.map +1 -1
- package/dist/cohere.d.cts.map +1 -1
- package/dist/cohere.d.ts.map +1 -1
- package/dist/cohere.js +160 -73
- package/dist/cohere.js.map +1 -1
- package/dist/config-loader.cjs +63 -5
- package/dist/config-loader.cjs.map +1 -1
- package/dist/config-loader.d.cts +37 -4
- package/dist/config-loader.d.cts.map +1 -1
- package/dist/config-loader.d.ts +37 -4
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/config-loader.js +63 -5
- package/dist/config-loader.js.map +1 -1
- package/dist/constants.cjs +8 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +6 -2
- package/dist/constants.d.ts +6 -2
- package/dist/constants.js +8 -1
- package/dist/constants.js.map +1 -1
- package/dist/echo-text.cjs +65 -0
- package/dist/echo-text.cjs.map +1 -0
- package/dist/echo-text.d.cts +22 -0
- package/dist/echo-text.d.cts.map +1 -0
- package/dist/echo-text.d.ts +22 -0
- package/dist/echo-text.d.ts.map +1 -0
- package/dist/echo-text.js +65 -0
- package/dist/echo-text.js.map +1 -0
- package/dist/embeddings.cjs +18 -1
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts +1 -1
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts +1 -1
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +18 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/fakes-plugin.cjs +131 -0
- package/dist/fakes-plugin.cjs.map +1 -0
- package/dist/fakes-plugin.d.cts +23 -0
- package/dist/fakes-plugin.d.cts.map +1 -0
- package/dist/fakes-plugin.d.ts +23 -0
- package/dist/fakes-plugin.d.ts.map +1 -0
- package/dist/fakes-plugin.js +127 -0
- package/dist/fakes-plugin.js.map +1 -0
- package/dist/files.cjs +9 -11
- package/dist/files.cjs.map +1 -1
- package/dist/files.d.cts.map +1 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +10 -13
- package/dist/files.js.map +1 -1
- package/dist/fine-tuning.cjs +1 -19
- package/dist/fine-tuning.cjs.map +1 -1
- package/dist/fine-tuning.d.cts.map +1 -1
- package/dist/fine-tuning.d.ts.map +1 -1
- package/dist/fine-tuning.js +2 -20
- package/dist/fine-tuning.js.map +1 -1
- package/dist/fixture-loader-services.cjs +116 -0
- package/dist/fixture-loader-services.cjs.map +1 -0
- package/dist/fixture-loader-services.d.cts +48 -0
- package/dist/fixture-loader-services.d.cts.map +1 -0
- package/dist/fixture-loader-services.d.ts +48 -0
- package/dist/fixture-loader-services.d.ts.map +1 -0
- package/dist/fixture-loader-services.js +114 -0
- package/dist/fixture-loader-services.js.map +1 -0
- package/dist/fixture-loader.cjs +552 -29
- package/dist/fixture-loader.cjs.map +1 -1
- package/dist/fixture-loader.d.cts +140 -2
- package/dist/fixture-loader.d.cts.map +1 -1
- package/dist/fixture-loader.d.ts +140 -2
- package/dist/fixture-loader.d.ts.map +1 -1
- package/dist/fixture-loader.js +542 -31
- package/dist/fixture-loader.js.map +1 -1
- package/dist/gemini-embeddings.cjs +42 -2
- package/dist/gemini-embeddings.cjs.map +1 -1
- package/dist/gemini-embeddings.js +43 -3
- package/dist/gemini-embeddings.js.map +1 -1
- package/dist/gemini-interactions.cjs +288 -52
- package/dist/gemini-interactions.cjs.map +1 -1
- package/dist/gemini-interactions.d.cts.map +1 -1
- package/dist/gemini-interactions.d.ts.map +1 -1
- package/dist/gemini-interactions.js +289 -53
- package/dist/gemini-interactions.js.map +1 -1
- package/dist/gemini.cjs +234 -38
- package/dist/gemini.cjs.map +1 -1
- package/dist/gemini.d.cts.map +1 -1
- package/dist/gemini.d.ts.map +1 -1
- package/dist/gemini.js +235 -39
- package/dist/gemini.js.map +1 -1
- package/dist/helpers.cjs +1157 -12
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.cts +85 -4
- package/dist/helpers.d.cts.map +1 -1
- package/dist/helpers.d.ts +85 -4
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +1113 -14
- package/dist/helpers.js.map +1 -1
- package/dist/images.cjs +3 -2
- package/dist/images.cjs.map +1 -1
- package/dist/images.js +3 -2
- package/dist/images.js.map +1 -1
- package/dist/index.cjs +39 -1
- package/dist/index.d.cts +11 -4
- package/dist/index.d.ts +11 -4
- package/dist/index.js +11 -4
- package/dist/jest.cjs +43 -14
- package/dist/jest.cjs.map +1 -1
- package/dist/jest.d.cts +47 -5
- package/dist/jest.d.cts.map +1 -1
- package/dist/jest.d.ts +47 -5
- package/dist/jest.d.ts.map +1 -1
- package/dist/jest.js +45 -16
- package/dist/jest.js.map +1 -1
- package/dist/journal.cjs +155 -13
- package/dist/journal.cjs.map +1 -1
- package/dist/journal.d.cts +54 -4
- package/dist/journal.d.cts.map +1 -1
- package/dist/journal.d.ts +54 -4
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +155 -13
- package/dist/journal.js.map +1 -1
- package/dist/live-sanitize.cjs +4 -32
- package/dist/live-sanitize.cjs.map +1 -1
- package/dist/live-sanitize.js +4 -32
- package/dist/live-sanitize.js.map +1 -1
- package/dist/llmock.cjs +204 -39
- package/dist/llmock.cjs.map +1 -1
- package/dist/llmock.d.cts +51 -1
- package/dist/llmock.d.cts.map +1 -1
- package/dist/llmock.d.ts +51 -1
- package/dist/llmock.d.ts.map +1 -1
- package/dist/llmock.js +206 -41
- package/dist/llmock.js.map +1 -1
- package/dist/mcp-fakes-mount.cjs +217 -0
- package/dist/mcp-fakes-mount.cjs.map +1 -0
- package/dist/mcp-fakes-mount.js +211 -0
- package/dist/mcp-fakes-mount.js.map +1 -0
- package/dist/mcp-fakes-report.cjs +111 -0
- package/dist/mcp-fakes-report.cjs.map +1 -0
- package/dist/mcp-fakes-report.d.cts +40 -0
- package/dist/mcp-fakes-report.d.cts.map +1 -0
- package/dist/mcp-fakes-report.d.ts +40 -0
- package/dist/mcp-fakes-report.d.ts.map +1 -0
- package/dist/mcp-fakes-report.js +107 -0
- package/dist/mcp-fakes-report.js.map +1 -0
- package/dist/mcp-fakes.cjs +1942 -0
- package/dist/mcp-fakes.cjs.map +1 -0
- package/dist/mcp-fakes.d.cts +504 -0
- package/dist/mcp-fakes.d.cts.map +1 -0
- package/dist/mcp-fakes.d.ts +504 -0
- package/dist/mcp-fakes.d.ts.map +1 -0
- package/dist/mcp-fakes.js +1937 -0
- package/dist/mcp-fakes.js.map +1 -0
- package/dist/mcp-handler.cjs +534 -27
- package/dist/mcp-handler.cjs.map +1 -1
- package/dist/mcp-handler.d.cts +49 -0
- package/dist/mcp-handler.d.cts.map +1 -0
- package/dist/mcp-handler.d.ts +49 -0
- package/dist/mcp-handler.d.ts.map +1 -0
- package/dist/mcp-handler.js +530 -28
- package/dist/mcp-handler.js.map +1 -1
- package/dist/mcp-mock.cjs +326 -47
- package/dist/mcp-mock.cjs.map +1 -1
- package/dist/mcp-mock.d.cts +97 -1
- package/dist/mcp-mock.d.cts.map +1 -1
- package/dist/mcp-mock.d.ts +97 -1
- package/dist/mcp-mock.d.ts.map +1 -1
- package/dist/mcp-mock.js +327 -48
- package/dist/mcp-mock.js.map +1 -1
- package/dist/mcp-recorder.cjs +1224 -0
- package/dist/mcp-recorder.cjs.map +1 -0
- package/dist/mcp-recorder.d.cts +108 -0
- package/dist/mcp-recorder.d.cts.map +1 -0
- package/dist/mcp-recorder.d.ts +108 -0
- package/dist/mcp-recorder.d.ts.map +1 -0
- package/dist/mcp-recorder.js +1215 -0
- package/dist/mcp-recorder.js.map +1 -0
- package/dist/mcp-stub.cjs +5 -1
- package/dist/mcp-stub.d.cts +3 -1
- package/dist/mcp-stub.d.ts +3 -1
- package/dist/mcp-stub.js +3 -1
- package/dist/mcp-types.d.cts +6 -0
- package/dist/mcp-types.d.ts +6 -0
- package/dist/message-text.cjs +192 -0
- package/dist/message-text.cjs.map +1 -0
- package/dist/message-text.d.cts +31 -0
- package/dist/message-text.d.cts.map +1 -0
- package/dist/message-text.d.ts +31 -0
- package/dist/message-text.d.ts.map +1 -0
- package/dist/message-text.js +184 -0
- package/dist/message-text.js.map +1 -0
- package/dist/messages.cjs +400 -56
- package/dist/messages.cjs.map +1 -1
- package/dist/messages.d.cts.map +1 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +401 -58
- package/dist/messages.js.map +1 -1
- package/dist/metrics.cjs +46 -66
- package/dist/metrics.cjs.map +1 -1
- package/dist/metrics.d.cts +14 -6
- package/dist/metrics.d.cts.map +1 -1
- package/dist/metrics.d.ts +14 -6
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +32 -40
- package/dist/metrics.js.map +1 -1
- package/dist/misbehavior.cjs +1523 -0
- package/dist/misbehavior.cjs.map +1 -0
- package/dist/misbehavior.d.cts +43 -0
- package/dist/misbehavior.d.cts.map +1 -0
- package/dist/misbehavior.d.ts +43 -0
- package/dist/misbehavior.d.ts.map +1 -0
- package/dist/misbehavior.js +1511 -0
- package/dist/misbehavior.js.map +1 -0
- package/dist/ollama.cjs +315 -113
- package/dist/ollama.cjs.map +1 -1
- package/dist/ollama.d.cts.map +1 -1
- package/dist/ollama.d.ts.map +1 -1
- package/dist/ollama.js +316 -114
- package/dist/ollama.js.map +1 -1
- package/dist/openapi.cjs +3405 -0
- package/dist/openapi.cjs.map +1 -0
- package/dist/openapi.d.cts +30 -0
- package/dist/openapi.d.cts.map +1 -0
- package/dist/openapi.d.ts +30 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +3404 -0
- package/dist/openapi.js.map +1 -0
- package/dist/openrouter-video.cjs +4 -4
- package/dist/openrouter-video.cjs.map +1 -1
- package/dist/openrouter-video.d.cts.map +1 -1
- package/dist/openrouter-video.d.ts.map +1 -1
- package/dist/openrouter-video.js +4 -4
- package/dist/openrouter-video.js.map +1 -1
- package/dist/record-sanitize.cjs +231 -0
- package/dist/record-sanitize.cjs.map +1 -0
- package/dist/record-sanitize.js +224 -0
- package/dist/record-sanitize.js.map +1 -0
- package/dist/recorder.cjs +115 -6
- package/dist/recorder.cjs.map +1 -1
- package/dist/recorder.d.cts +2 -1
- package/dist/recorder.d.cts.map +1 -1
- package/dist/recorder.d.ts +2 -1
- package/dist/recorder.d.ts.map +1 -1
- package/dist/recorder.js +116 -8
- package/dist/recorder.js.map +1 -1
- package/dist/responses.cjs +701 -166
- package/dist/responses.cjs.map +1 -1
- package/dist/responses.d.cts +5 -13
- package/dist/responses.d.cts.map +1 -1
- package/dist/responses.d.ts +5 -13
- package/dist/responses.d.ts.map +1 -1
- package/dist/responses.js +699 -169
- package/dist/responses.js.map +1 -1
- package/dist/route-registry.cjs +951 -0
- package/dist/route-registry.cjs.map +1 -0
- package/dist/route-registry.d.cts +33 -0
- package/dist/route-registry.d.cts.map +1 -0
- package/dist/route-registry.d.ts +33 -0
- package/dist/route-registry.d.ts.map +1 -0
- package/dist/route-registry.js +866 -0
- package/dist/route-registry.js.map +1 -0
- package/dist/router.cjs +24 -2
- package/dist/router.cjs.map +1 -1
- package/dist/router.d.cts.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +25 -4
- package/dist/router.js.map +1 -1
- package/dist/server.cjs +1159 -264
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +4 -1
- package/dist/server.d.cts.map +1 -1
- package/dist/server.d.ts +4 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1067 -172
- package/dist/server.js.map +1 -1
- package/dist/speech.cjs +4 -2
- package/dist/speech.cjs.map +1 -1
- package/dist/speech.js +4 -2
- package/dist/speech.js.map +1 -1
- package/dist/stream-collapse.cjs +236 -34
- package/dist/stream-collapse.cjs.map +1 -1
- package/dist/stream-collapse.d.cts +39 -4
- package/dist/stream-collapse.d.cts.map +1 -1
- package/dist/stream-collapse.d.ts +39 -4
- package/dist/stream-collapse.d.ts.map +1 -1
- package/dist/stream-collapse.js +235 -35
- package/dist/stream-collapse.js.map +1 -1
- package/dist/suite.cjs +1 -1
- package/dist/suite.js +1 -1
- package/dist/transcription.cjs +2 -2
- package/dist/transcription.cjs.map +1 -1
- package/dist/transcription.d.cts.map +1 -1
- package/dist/transcription.d.ts.map +1 -1
- package/dist/transcription.js +2 -2
- package/dist/transcription.js.map +1 -1
- package/dist/types.cjs +18 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +516 -5
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +516 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -0
- package/dist/validate-cli.cjs +123 -33
- package/dist/validate-cli.cjs.map +1 -1
- package/dist/validate-cli.js +125 -35
- package/dist/validate-cli.js.map +1 -1
- package/dist/vector-stores.cjs +1180 -0
- package/dist/vector-stores.cjs.map +1 -0
- package/dist/vector-stores.d.cts +106 -0
- package/dist/vector-stores.d.cts.map +1 -0
- package/dist/vector-stores.d.ts +106 -0
- package/dist/vector-stores.d.ts.map +1 -0
- package/dist/vector-stores.js +1164 -0
- package/dist/vector-stores.js.map +1 -0
- package/dist/vector-types.d.cts.map +1 -1
- package/dist/version.cjs +45 -0
- package/dist/version.cjs.map +1 -0
- package/dist/version.js +44 -0
- package/dist/version.js.map +1 -0
- package/dist/video.cjs +19 -0
- package/dist/video.cjs.map +1 -1
- package/dist/video.d.cts.map +1 -1
- package/dist/video.d.ts.map +1 -1
- package/dist/video.js +19 -0
- package/dist/video.js.map +1 -1
- package/dist/vitest.cjs +77 -16
- package/dist/vitest.cjs.map +1 -1
- package/dist/vitest.d.cts +38 -5
- package/dist/vitest.d.cts.map +1 -1
- package/dist/vitest.d.ts +38 -5
- package/dist/vitest.d.ts.map +1 -1
- package/dist/vitest.js +78 -17
- package/dist/vitest.js.map +1 -1
- package/dist/watcher.cjs +6 -2
- package/dist/watcher.cjs.map +1 -1
- package/dist/watcher.js +6 -2
- package/dist/watcher.js.map +1 -1
- package/dist/ws-gemini-live.cjs +210 -101
- package/dist/ws-gemini-live.cjs.map +1 -1
- package/dist/ws-gemini-live.d.cts +9 -3
- package/dist/ws-gemini-live.d.cts.map +1 -1
- package/dist/ws-gemini-live.d.ts +9 -3
- package/dist/ws-gemini-live.d.ts.map +1 -1
- package/dist/ws-gemini-live.js +211 -102
- package/dist/ws-gemini-live.js.map +1 -1
- package/dist/ws-realtime.cjs +175 -62
- package/dist/ws-realtime.cjs.map +1 -1
- package/dist/ws-realtime.d.cts +8 -3
- package/dist/ws-realtime.d.cts.map +1 -1
- package/dist/ws-realtime.d.ts +8 -3
- package/dist/ws-realtime.d.ts.map +1 -1
- package/dist/ws-realtime.js +176 -63
- package/dist/ws-realtime.js.map +1 -1
- package/dist/ws-responses.cjs +121 -16
- package/dist/ws-responses.cjs.map +1 -1
- package/dist/ws-responses.d.cts +8 -12
- package/dist/ws-responses.d.cts.map +1 -1
- package/dist/ws-responses.d.ts +8 -12
- package/dist/ws-responses.d.ts.map +1 -1
- package/dist/ws-responses.js +123 -18
- package/dist/ws-responses.js.map +1 -1
- package/package.json +13 -2
- package/skills/write-fixtures/SKILL.md +179 -21
|
@@ -0,0 +1,951 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/route-registry.ts
|
|
3
|
+
/**
|
|
4
|
+
* Single source of truth for every first-class HTTP route aimock serves.
|
|
5
|
+
*
|
|
6
|
+
* Both the HTTP dispatcher (`server.ts`) and the machine-readable catalog
|
|
7
|
+
* (`openapi.ts` → `GET /__aimock/openapi.json` + `GET /__aimock/routes`) import
|
|
8
|
+
* from this module. Drift is prevented three ways, not one:
|
|
9
|
+
*
|
|
10
|
+
* 1. Shared bindings — the dispatcher matches against the exact `*_PATH`
|
|
11
|
+
* constants and `*_RE` patterns defined here (never inline literals), and
|
|
12
|
+
* `metrics.ts` path-label normalization imports the same patterns, so the
|
|
13
|
+
* three consumers cannot disagree on what a route looks like.
|
|
14
|
+
* 2. Bidirectional tests (`openapi-catalog.test.ts`) — every catalog entry is
|
|
15
|
+
* probed against the live router (catalog → router) AND every dispatch
|
|
16
|
+
* literal/pattern imported from this module must have a catalog entry
|
|
17
|
+
* whose example path it matches (router → catalog).
|
|
18
|
+
* 3. Runtime drift guard — the dispatcher's terminal 404 consults
|
|
19
|
+
* `matchRouteDefinition` and warns when the registry claims a route the
|
|
20
|
+
* dispatcher just missed.
|
|
21
|
+
*
|
|
22
|
+
* `path` is the OpenAPI path template (`{param}` for dynamic segments).
|
|
23
|
+
* `examplePath` is a concrete path the drift test probes against the live
|
|
24
|
+
* server (a templated path can never be fetched verbatim).
|
|
25
|
+
*
|
|
26
|
+
* Plugin mounts (`Mountable`: A2A/MCP/AG-UI/vector) are dynamic per-server and
|
|
27
|
+
* intentionally excluded — this registry covers the built-in first-class
|
|
28
|
+
* surfaces only. Likewise excluded from `ROUTE_DEFINITIONS` (their bindings
|
|
29
|
+
* above are still shared so dispatch cannot typo them): the WebSocket upgrades
|
|
30
|
+
* (`REALTIME_PATH`, `GEMINI_LIVE_PATH`, `LIVE_PATH` — same URL as an HTTP
|
|
31
|
+
* route or no HTTP method at all, so they cannot appear in an HTTP catalog)
|
|
32
|
+
* and the header-gated fal.ai proxy branch (`FAL_ROUTE_RE` +
|
|
33
|
+
* `x-fal-target-host`, a dynamic upstream mirror rather than a fixed route).
|
|
34
|
+
*/
|
|
35
|
+
const COMPLETIONS_PATH = "/v1/chat/completions";
|
|
36
|
+
const RESPONSES_PATH = "/v1/responses";
|
|
37
|
+
const REALTIME_PATH = "/v1/realtime";
|
|
38
|
+
const LIVE_PATH = "/v1/live/sessions";
|
|
39
|
+
const GEMINI_LIVE_PATH = "/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent";
|
|
40
|
+
const MESSAGES_PATH = "/v1/messages";
|
|
41
|
+
const EMBEDDINGS_PATH = "/v1/embeddings";
|
|
42
|
+
const COHERE_CHAT_PATH = "/v2/chat";
|
|
43
|
+
const COHERE_EMBED_PATH = "/v2/embed";
|
|
44
|
+
const SEARCH_PATH = "/search";
|
|
45
|
+
const RERANK_PATH = "/v2/rerank";
|
|
46
|
+
const MODERATIONS_PATH = "/v1/moderations";
|
|
47
|
+
const IMAGES_PATH = "/v1/images/generations";
|
|
48
|
+
const IMAGES_EDIT_PATH = "/v1/images/edits";
|
|
49
|
+
const IMAGES_VARIATIONS_PATH = "/v1/images/variations";
|
|
50
|
+
const SPEECH_PATH = "/v1/audio/speech";
|
|
51
|
+
const TRANSCRIPTIONS_PATH = "/v1/audio/transcriptions";
|
|
52
|
+
const TRANSLATIONS_PATH = "/v1/audio/translations";
|
|
53
|
+
const VIDEOS_PATH = "/v1/videos";
|
|
54
|
+
const GROK_VIDEO_SUBMIT_PATH = "/v1/videos/generations";
|
|
55
|
+
const GROK_VIDEO_STATUS_RE = /^\/v1\/videos\/([^/]+)$/;
|
|
56
|
+
const OPENAI_VIDEO_STATUS_RE = /^\/v1\/videos\/([^/]+)$/;
|
|
57
|
+
const GEMINI_PREDICT_RE = /^\/v1beta\/models\/([^:]+):predict$/;
|
|
58
|
+
const VEO_PREDICT_LRO_RE = /^\/v1beta\/models\/([^:]+):predictLongRunning$/;
|
|
59
|
+
const VEO_OPERATION_RE = /^\/v1beta\/(operations\/.+)$/;
|
|
60
|
+
const BYTEPLUS_VIDEO_SUBMIT_RE = /^(?:\/api\/v3)?\/contents\/generations\/tasks$/;
|
|
61
|
+
const BYTEPLUS_VIDEO_STATUS_RE = /^(?:\/api\/v3)?\/contents\/generations\/tasks\/([^/]+)$/;
|
|
62
|
+
const ELEVENLABS_SOUND_GENERATION_PATH = "/v1/sound-generation";
|
|
63
|
+
const ELEVENLABS_TTS_RE = /^\/v1\/text-to-speech\/([^/]+)$/;
|
|
64
|
+
const ELEVENLABS_MUSIC_RE = /^\/v1\/music(?:\/(.+))?$/;
|
|
65
|
+
const ELEVENLABS_VOICE_DESIGN_PATH = "/v1/text-to-voice/design";
|
|
66
|
+
const ELEVENLABS_VOICE_CREATE_PATH = "/v1/text-to-voice";
|
|
67
|
+
const ELEVENLABS_VOICE_RE = /^\/v1\/voices\/([^/]+)$/;
|
|
68
|
+
const FAL_QUEUE_SUBMIT_RE = /^\/fal\/queue\/submit\/(.+)$/;
|
|
69
|
+
const FAL_QUEUE_REQUESTS_RE = /^\/fal\/queue\/requests\/(.+)$/;
|
|
70
|
+
const FAL_RUN_RE = /^\/fal\/run\/(.+)$/;
|
|
71
|
+
const FAL_ROUTE_RE = /^\/fal(?:\/.*)?$/;
|
|
72
|
+
const GEMINI_INTERACTIONS_PATH = "/v1beta/interactions";
|
|
73
|
+
const GEMINI_PATH_RE = /^\/v1beta\/models\/([^:]+):(generateContent|streamGenerateContent)$/;
|
|
74
|
+
const GEMINI_EMBED_RE = /^\/v1beta\/models\/([^:]+):embedContent$/;
|
|
75
|
+
const AZURE_DEPLOYMENT_RE = /^\/openai\/deployments\/([^/]+)\/(chat\/completions|embeddings)$/;
|
|
76
|
+
const BEDROCK_INVOKE_RE = /^\/model\/([^/]+)\/invoke$/;
|
|
77
|
+
const BEDROCK_STREAM_RE = /^\/model\/([^/]+)\/invoke-with-response-stream$/;
|
|
78
|
+
const BEDROCK_CONVERSE_RE = /^\/model\/([^/]+)\/converse$/;
|
|
79
|
+
const BEDROCK_CONVERSE_STREAM_RE = /^\/model\/([^/]+)\/converse-stream$/;
|
|
80
|
+
const VERTEX_AI_RE = /^\/v1\/projects\/[^/]+\/locations\/[^/]+\/publishers\/google\/models\/([^/:]+):(generateContent|streamGenerateContent)$/;
|
|
81
|
+
const OLLAMA_CHAT_PATH = "/api/chat";
|
|
82
|
+
const OLLAMA_GENERATE_PATH = "/api/generate";
|
|
83
|
+
const OLLAMA_EMBEDDINGS_PATH = "/api/embeddings";
|
|
84
|
+
const OLLAMA_EMBED_PATH = "/api/embed";
|
|
85
|
+
const OLLAMA_TAGS_PATH = "/api/tags";
|
|
86
|
+
const OPENROUTER_VIDEOS_PATH = "/api/v1/videos";
|
|
87
|
+
const OPENROUTER_VIDEO_MODELS_PATH = "/api/v1/videos/models";
|
|
88
|
+
const OPENROUTER_MODELS_PATH = "/api/v1/models";
|
|
89
|
+
const OPENROUTER_KEY_PATH = "/api/v1/key";
|
|
90
|
+
const OPENROUTER_CREDITS_PATH = "/api/v1/credits";
|
|
91
|
+
const OPENROUTER_VIDEO_CONTENT_RE = /^\/api\/v1\/videos\/([^/]+)\/content$/;
|
|
92
|
+
const OPENROUTER_VIDEO_STATUS_RE = /^\/api\/v1\/videos\/([^/]+)$/;
|
|
93
|
+
const HEALTH_PATH = "/health";
|
|
94
|
+
const READY_PATH = "/ready";
|
|
95
|
+
const METRICS_PATH = "/metrics";
|
|
96
|
+
const MODELS_PATH = "/v1/models";
|
|
97
|
+
const REQUESTS_PATH = "/v1/_requests";
|
|
98
|
+
const FILES_PATH = "/v1/files";
|
|
99
|
+
const FILES_CONTENT_RE = /^\/v1\/files\/([^/]+)\/content$/;
|
|
100
|
+
const FILES_ID_RE = /^\/v1\/files\/([^/]+)$/;
|
|
101
|
+
const BATCHES_PATH = "/v1/batches";
|
|
102
|
+
const BATCHES_CANCEL_RE = /^\/v1\/batches\/([^/]+)\/cancel$/;
|
|
103
|
+
const BATCHES_ID_RE = /^\/v1\/batches\/([^/]+)$/;
|
|
104
|
+
const FINE_TUNING_JOBS_PATH = "/v1/fine_tuning/jobs";
|
|
105
|
+
const FINE_TUNING_ID_RE = /^\/v1\/fine_tuning\/jobs\/([^/]+)$/;
|
|
106
|
+
const FINE_TUNING_CANCEL_RE = /^\/v1\/fine_tuning\/jobs\/([^/]+)\/cancel$/;
|
|
107
|
+
const FINE_TUNING_EVENTS_RE = /^\/v1\/fine_tuning\/jobs\/([^/]+)\/events$/;
|
|
108
|
+
const VECTOR_STORES_PATH = "/v1/vector_stores";
|
|
109
|
+
const VECTOR_STORES_SEARCH_RE = /^\/v1\/vector_stores\/([^/]+)\/search$/;
|
|
110
|
+
const VECTOR_STORES_BATCH_FILES_RE = /^\/v1\/vector_stores\/([^/]+)\/file_batches\/([^/]+)\/files$/;
|
|
111
|
+
const VECTOR_STORES_BATCH_CANCEL_RE = /^\/v1\/vector_stores\/([^/]+)\/file_batches\/([^/]+)\/cancel$/;
|
|
112
|
+
const VECTOR_STORES_BATCH_RE = /^\/v1\/vector_stores\/([^/]+)\/file_batches\/([^/]+)$/;
|
|
113
|
+
const VECTOR_STORES_FILE_RE = /^\/v1\/vector_stores\/([^/]+)\/files\/([^/]+)$/;
|
|
114
|
+
const VECTOR_STORES_ID_RE = /^\/v1\/vector_stores\/([^/]+)$/;
|
|
115
|
+
const VECTOR_STORES_FILES_RE = /^\/v1\/vector_stores\/([^/]+)\/files$/;
|
|
116
|
+
const VECTOR_STORES_FILE_BATCHES_RE = /^\/v1\/vector_stores\/([^/]+)\/file_batches$/;
|
|
117
|
+
const CONTROL_PREFIX = "/__aimock";
|
|
118
|
+
/**
|
|
119
|
+
* Every built-in route, in the same order the dispatcher checks them
|
|
120
|
+
* (mounts → ollama → openrouter-video → byteplus → openrouter discovery →
|
|
121
|
+
* azure/compat → ops → models/requests → provider handlers → fal → chat).
|
|
122
|
+
* Regex branches are represented by their canonical OpenAPI template.
|
|
123
|
+
*/
|
|
124
|
+
const ROUTE_DEFINITIONS = [
|
|
125
|
+
{
|
|
126
|
+
method: "POST",
|
|
127
|
+
path: OLLAMA_CHAT_PATH,
|
|
128
|
+
service: "ollama",
|
|
129
|
+
description: "Ollama chat"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
method: "POST",
|
|
133
|
+
path: OLLAMA_GENERATE_PATH,
|
|
134
|
+
service: "ollama",
|
|
135
|
+
description: "Ollama generate"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
method: "POST",
|
|
139
|
+
path: OLLAMA_EMBEDDINGS_PATH,
|
|
140
|
+
service: "ollama",
|
|
141
|
+
description: "Ollama embeddings (legacy path)"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
method: "POST",
|
|
145
|
+
path: OLLAMA_EMBED_PATH,
|
|
146
|
+
service: "ollama",
|
|
147
|
+
description: "Ollama embed (current path)"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
method: "GET",
|
|
151
|
+
path: OLLAMA_TAGS_PATH,
|
|
152
|
+
service: "ollama",
|
|
153
|
+
description: "Ollama tags"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
method: "GET",
|
|
157
|
+
path: "/api/v1/videos/{jobId}/content",
|
|
158
|
+
examplePath: "/api/v1/videos/test-job/content",
|
|
159
|
+
service: "video",
|
|
160
|
+
description: "OpenRouter video content download"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
method: "GET",
|
|
164
|
+
path: OPENROUTER_VIDEO_MODELS_PATH,
|
|
165
|
+
service: "video",
|
|
166
|
+
description: "OpenRouter video model listing"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
method: "GET",
|
|
170
|
+
path: "/api/v1/videos/{jobId}",
|
|
171
|
+
examplePath: "/api/v1/videos/test-job",
|
|
172
|
+
service: "video",
|
|
173
|
+
description: "OpenRouter video job status"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
method: "POST",
|
|
177
|
+
path: OPENROUTER_VIDEOS_PATH,
|
|
178
|
+
service: "video",
|
|
179
|
+
description: "OpenRouter video job submit"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
method: "GET",
|
|
183
|
+
path: "/contents/generations/tasks/{id}",
|
|
184
|
+
examplePath: "/contents/generations/tasks/test-id",
|
|
185
|
+
service: "video",
|
|
186
|
+
description: "BytePlus video task status"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
method: "GET",
|
|
190
|
+
path: "/api/v3/contents/generations/tasks/{id}",
|
|
191
|
+
examplePath: "/api/v3/contents/generations/tasks/test-id",
|
|
192
|
+
service: "video",
|
|
193
|
+
description: "BytePlus video task status (api/v3 prefix)"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
method: "POST",
|
|
197
|
+
path: "/contents/generations/tasks",
|
|
198
|
+
service: "video",
|
|
199
|
+
description: "BytePlus video task submit"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
method: "POST",
|
|
203
|
+
path: "/api/v3/contents/generations/tasks",
|
|
204
|
+
service: "video",
|
|
205
|
+
description: "BytePlus video task submit (api/v3 prefix)"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
method: "GET",
|
|
209
|
+
path: OPENROUTER_MODELS_PATH,
|
|
210
|
+
service: "openrouter",
|
|
211
|
+
description: "OpenRouter models"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
method: "GET",
|
|
215
|
+
path: OPENROUTER_KEY_PATH,
|
|
216
|
+
service: "openrouter",
|
|
217
|
+
description: "OpenRouter key info"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
method: "GET",
|
|
221
|
+
path: OPENROUTER_CREDITS_PATH,
|
|
222
|
+
service: "openrouter",
|
|
223
|
+
description: "OpenRouter credits"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
method: "POST",
|
|
227
|
+
path: "/openai/deployments/{deploymentId}/chat/completions",
|
|
228
|
+
examplePath: "/openai/deployments/test-deployment/chat/completions",
|
|
229
|
+
service: "azure",
|
|
230
|
+
description: "Azure OpenAI chat completions"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
method: "POST",
|
|
234
|
+
path: "/openai/deployments/{deploymentId}/embeddings",
|
|
235
|
+
examplePath: "/openai/deployments/test-deployment/embeddings",
|
|
236
|
+
service: "azure",
|
|
237
|
+
description: "Azure OpenAI embeddings"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
method: "GET",
|
|
241
|
+
path: HEALTH_PATH,
|
|
242
|
+
service: "ops",
|
|
243
|
+
description: "Health probe (public)"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
method: "GET",
|
|
247
|
+
path: READY_PATH,
|
|
248
|
+
service: "ops",
|
|
249
|
+
description: "Readiness probe (public)"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
method: "GET",
|
|
253
|
+
path: METRICS_PATH,
|
|
254
|
+
service: "ops",
|
|
255
|
+
description: "Prometheus metrics (public)"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
method: "GET",
|
|
259
|
+
path: MODELS_PATH,
|
|
260
|
+
service: "openai",
|
|
261
|
+
description: "Models listing"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
method: "GET",
|
|
265
|
+
path: REQUESTS_PATH,
|
|
266
|
+
service: "control",
|
|
267
|
+
description: "Legacy journal listing"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
method: "DELETE",
|
|
271
|
+
path: REQUESTS_PATH,
|
|
272
|
+
service: "control",
|
|
273
|
+
description: "Legacy journal clear"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
method: "POST",
|
|
277
|
+
path: RESPONSES_PATH,
|
|
278
|
+
service: "openai",
|
|
279
|
+
description: "OpenAI Responses API"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
method: "POST",
|
|
283
|
+
path: MESSAGES_PATH,
|
|
284
|
+
service: "anthropic",
|
|
285
|
+
description: "Anthropic messages"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
method: "POST",
|
|
289
|
+
path: COHERE_CHAT_PATH,
|
|
290
|
+
service: "cohere",
|
|
291
|
+
description: "Cohere chat"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
method: "POST",
|
|
295
|
+
path: COHERE_EMBED_PATH,
|
|
296
|
+
service: "cohere",
|
|
297
|
+
description: "Cohere embed"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
method: "POST",
|
|
301
|
+
path: EMBEDDINGS_PATH,
|
|
302
|
+
service: "openai",
|
|
303
|
+
description: "OpenAI embeddings"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
method: "POST",
|
|
307
|
+
path: IMAGES_PATH,
|
|
308
|
+
service: "images",
|
|
309
|
+
description: "Image generation"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
method: "POST",
|
|
313
|
+
path: IMAGES_EDIT_PATH,
|
|
314
|
+
service: "images",
|
|
315
|
+
description: "Image edits (multipart)"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
method: "POST",
|
|
319
|
+
path: "/v1/images/variations",
|
|
320
|
+
service: "images",
|
|
321
|
+
description: "Image variations (removed upstream 2026-05-12 — replays the real 404)"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
method: "POST",
|
|
325
|
+
path: SPEECH_PATH,
|
|
326
|
+
service: "speech",
|
|
327
|
+
description: "Text-to-speech"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
method: "POST",
|
|
331
|
+
path: TRANSCRIPTIONS_PATH,
|
|
332
|
+
service: "transcription",
|
|
333
|
+
description: "Audio transcription (multipart)"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
method: "POST",
|
|
337
|
+
path: TRANSLATIONS_PATH,
|
|
338
|
+
service: "transcription",
|
|
339
|
+
description: "Audio translation (multipart)"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
method: "POST",
|
|
343
|
+
path: VIDEOS_PATH,
|
|
344
|
+
service: "video",
|
|
345
|
+
description: "Video generation submit (Sora)"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
method: "POST",
|
|
349
|
+
path: "/v1/videos/generations",
|
|
350
|
+
service: "video",
|
|
351
|
+
description: "Grok video generation submit"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
method: "GET",
|
|
355
|
+
path: "/v1/videos/{id}",
|
|
356
|
+
examplePath: "/v1/videos/test-id",
|
|
357
|
+
service: "video",
|
|
358
|
+
description: "Video job status (Sora/Grok)"
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
method: "POST",
|
|
362
|
+
path: "/v1beta/models/{model}:predictLongRunning",
|
|
363
|
+
examplePath: "/v1beta/models/veo-3:predictLongRunning",
|
|
364
|
+
service: "video",
|
|
365
|
+
description: "Veo video submit"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
method: "GET",
|
|
369
|
+
path: "/v1beta/operations/{name}",
|
|
370
|
+
examplePath: "/v1beta/operations/test-op",
|
|
371
|
+
service: "video",
|
|
372
|
+
description: "Veo operation status"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
method: "POST",
|
|
376
|
+
path: "/v1beta/models/{model}:predict",
|
|
377
|
+
examplePath: "/v1beta/models/imagen-3:predict",
|
|
378
|
+
service: "gemini",
|
|
379
|
+
description: "Gemini Imagen predict"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
method: "POST",
|
|
383
|
+
path: GEMINI_INTERACTIONS_PATH,
|
|
384
|
+
service: "gemini",
|
|
385
|
+
description: "Gemini interactions"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
method: "POST",
|
|
389
|
+
path: "/v1beta/models/{model}:embedContent",
|
|
390
|
+
examplePath: "/v1beta/models/text-embedding-004:embedContent",
|
|
391
|
+
service: "gemini",
|
|
392
|
+
description: "Gemini embedContent"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
method: "POST",
|
|
396
|
+
path: "/v1beta/models/{model}:generateContent",
|
|
397
|
+
examplePath: "/v1beta/models/gemini-2.0-flash:generateContent",
|
|
398
|
+
service: "gemini",
|
|
399
|
+
description: "Gemini generateContent"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
method: "POST",
|
|
403
|
+
path: "/v1beta/models/{model}:streamGenerateContent",
|
|
404
|
+
examplePath: "/v1beta/models/gemini-2.0-flash:streamGenerateContent",
|
|
405
|
+
service: "gemini",
|
|
406
|
+
description: "Gemini streaming"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
method: "POST",
|
|
410
|
+
path: "/v1/projects/{project}/locations/{location}/publishers/google/models/{model}:generateContent",
|
|
411
|
+
examplePath: "/v1/projects/test-proj/locations/us-central1/publishers/google/models/gemini-2.0-flash:generateContent",
|
|
412
|
+
service: "vertex",
|
|
413
|
+
description: "Vertex AI generateContent"
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
method: "POST",
|
|
417
|
+
path: "/v1/projects/{project}/locations/{location}/publishers/google/models/{model}:streamGenerateContent",
|
|
418
|
+
examplePath: "/v1/projects/test-proj/locations/us-central1/publishers/google/models/gemini-2.0-flash:streamGenerateContent",
|
|
419
|
+
service: "vertex",
|
|
420
|
+
description: "Vertex AI streaming"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
method: "POST",
|
|
424
|
+
path: "/model/{modelId}/invoke",
|
|
425
|
+
examplePath: "/model/anthropic.claude-3/invoke",
|
|
426
|
+
service: "bedrock",
|
|
427
|
+
description: "Bedrock invoke"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
method: "POST",
|
|
431
|
+
path: "/model/{modelId}/invoke-with-response-stream",
|
|
432
|
+
examplePath: "/model/anthropic.claude-3/invoke-with-response-stream",
|
|
433
|
+
service: "bedrock",
|
|
434
|
+
description: "Bedrock streaming invoke"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
method: "POST",
|
|
438
|
+
path: "/model/{modelId}/converse",
|
|
439
|
+
examplePath: "/model/anthropic.claude-3/converse",
|
|
440
|
+
service: "bedrock",
|
|
441
|
+
description: "Bedrock converse"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
method: "POST",
|
|
445
|
+
path: "/model/{modelId}/converse-stream",
|
|
446
|
+
examplePath: "/model/anthropic.claude-3/converse-stream",
|
|
447
|
+
service: "bedrock",
|
|
448
|
+
description: "Bedrock converse streaming"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
method: "POST",
|
|
452
|
+
path: SEARCH_PATH,
|
|
453
|
+
service: "search",
|
|
454
|
+
description: "Tavily search"
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
method: "POST",
|
|
458
|
+
path: RERANK_PATH,
|
|
459
|
+
service: "rerank",
|
|
460
|
+
description: "Cohere rerank"
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
method: "POST",
|
|
464
|
+
path: MODERATIONS_PATH,
|
|
465
|
+
service: "moderation",
|
|
466
|
+
description: "Moderation"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
method: "POST",
|
|
470
|
+
path: ELEVENLABS_SOUND_GENERATION_PATH,
|
|
471
|
+
service: "elevenlabs",
|
|
472
|
+
description: "ElevenLabs sound generation"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
method: "POST",
|
|
476
|
+
path: "/v1/text-to-voice/design",
|
|
477
|
+
service: "elevenlabs",
|
|
478
|
+
description: "ElevenLabs voice design preview"
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
method: "POST",
|
|
482
|
+
path: "/v1/text-to-voice",
|
|
483
|
+
service: "elevenlabs",
|
|
484
|
+
description: "ElevenLabs save designed voice"
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
method: "GET",
|
|
488
|
+
path: "/v1/voices/{voice_id}",
|
|
489
|
+
examplePath: "/v1/voices/test-voice",
|
|
490
|
+
service: "elevenlabs",
|
|
491
|
+
description: "ElevenLabs voice slot get"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
method: "DELETE",
|
|
495
|
+
path: "/v1/voices/{voice_id}",
|
|
496
|
+
examplePath: "/v1/voices/test-voice",
|
|
497
|
+
service: "elevenlabs",
|
|
498
|
+
description: "ElevenLabs voice slot delete"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
method: "POST",
|
|
502
|
+
path: "/v1/text-to-speech/{voice_id}",
|
|
503
|
+
examplePath: "/v1/text-to-speech/test-voice",
|
|
504
|
+
service: "elevenlabs",
|
|
505
|
+
description: "ElevenLabs text-to-speech"
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
method: "POST",
|
|
509
|
+
path: "/v1/music",
|
|
510
|
+
service: "elevenlabs",
|
|
511
|
+
description: "ElevenLabs music"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
method: "POST",
|
|
515
|
+
path: "/v1/music/{subtype}",
|
|
516
|
+
examplePath: "/v1/music/generation",
|
|
517
|
+
service: "elevenlabs",
|
|
518
|
+
description: "ElevenLabs music sub-operation"
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
method: "POST",
|
|
522
|
+
path: "/fal/queue/submit/{model}",
|
|
523
|
+
examplePath: "/fal/queue/submit/fal-ai-test",
|
|
524
|
+
service: "fal",
|
|
525
|
+
description: "fal.ai queue submit"
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
method: "GET",
|
|
529
|
+
path: "/fal/queue/requests/{requestId}",
|
|
530
|
+
examplePath: "/fal/queue/requests/test-id",
|
|
531
|
+
service: "fal",
|
|
532
|
+
description: "fal.ai queue status/result"
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
method: "POST",
|
|
536
|
+
path: "/fal/queue/requests/{requestId}",
|
|
537
|
+
examplePath: "/fal/queue/requests/test-id",
|
|
538
|
+
service: "fal",
|
|
539
|
+
description: "fal.ai queue status/result (POST)"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
method: "PUT",
|
|
543
|
+
path: "/fal/queue/requests/{requestId}",
|
|
544
|
+
examplePath: "/fal/queue/requests/test-id",
|
|
545
|
+
service: "fal",
|
|
546
|
+
description: "fal.ai queue status/result (PUT)"
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
method: "POST",
|
|
550
|
+
path: "/fal/run/{model}",
|
|
551
|
+
examplePath: "/fal/run/fal-ai-test",
|
|
552
|
+
service: "fal",
|
|
553
|
+
description: "fal.ai synchronous run"
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
method: "POST",
|
|
557
|
+
path: "/v1/batches/{batch_id}/cancel",
|
|
558
|
+
examplePath: "/v1/batches/batch-test123/cancel",
|
|
559
|
+
service: "batches",
|
|
560
|
+
description: "Batch cancel"
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
method: "GET",
|
|
564
|
+
path: "/v1/batches/{batch_id}",
|
|
565
|
+
examplePath: "/v1/batches/batch-test123",
|
|
566
|
+
service: "batches",
|
|
567
|
+
description: "Batch retrieve"
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
method: "GET",
|
|
571
|
+
path: BATCHES_PATH,
|
|
572
|
+
service: "batches",
|
|
573
|
+
description: "Batch list"
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
method: "POST",
|
|
577
|
+
path: BATCHES_PATH,
|
|
578
|
+
service: "batches",
|
|
579
|
+
description: "Batch create"
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
method: "GET",
|
|
583
|
+
path: "/v1/files/{file_id}/content",
|
|
584
|
+
examplePath: "/v1/files/file-test123/content",
|
|
585
|
+
service: "files",
|
|
586
|
+
description: "File content download"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
method: "GET",
|
|
590
|
+
path: "/v1/files/{file_id}",
|
|
591
|
+
examplePath: "/v1/files/file-test123",
|
|
592
|
+
service: "files",
|
|
593
|
+
description: "File retrieve"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
method: "DELETE",
|
|
597
|
+
path: "/v1/files/{file_id}",
|
|
598
|
+
examplePath: "/v1/files/file-test123",
|
|
599
|
+
service: "files",
|
|
600
|
+
description: "File delete"
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
method: "GET",
|
|
604
|
+
path: "/v1/files",
|
|
605
|
+
service: "files",
|
|
606
|
+
description: "File list"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
method: "POST",
|
|
610
|
+
path: "/v1/files",
|
|
611
|
+
service: "files",
|
|
612
|
+
description: "File upload (JSON or multipart)"
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
method: "POST",
|
|
616
|
+
path: "/v1/fine_tuning/jobs/{job_id}/cancel",
|
|
617
|
+
examplePath: "/v1/fine_tuning/jobs/ftjob-test123/cancel",
|
|
618
|
+
service: "fine-tuning",
|
|
619
|
+
description: "Fine-tuning job cancel"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
method: "GET",
|
|
623
|
+
path: "/v1/fine_tuning/jobs/{job_id}/events",
|
|
624
|
+
examplePath: "/v1/fine_tuning/jobs/ftjob-test123/events",
|
|
625
|
+
service: "fine-tuning",
|
|
626
|
+
description: "Fine-tuning job events"
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
method: "GET",
|
|
630
|
+
path: "/v1/fine_tuning/jobs/{job_id}",
|
|
631
|
+
examplePath: "/v1/fine_tuning/jobs/ftjob-test123",
|
|
632
|
+
service: "fine-tuning",
|
|
633
|
+
description: "Fine-tuning job retrieve"
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
method: "GET",
|
|
637
|
+
path: "/v1/fine_tuning/jobs",
|
|
638
|
+
service: "fine-tuning",
|
|
639
|
+
description: "Fine-tuning job list"
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
method: "POST",
|
|
643
|
+
path: "/v1/fine_tuning/jobs",
|
|
644
|
+
service: "fine-tuning",
|
|
645
|
+
description: "Fine-tuning job create"
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
method: "POST",
|
|
649
|
+
path: "/v1/vector_stores/{vector_store_id}/search",
|
|
650
|
+
examplePath: "/v1/vector_stores/vs-test123/search",
|
|
651
|
+
service: "vector-stores",
|
|
652
|
+
description: "Vector store search"
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
method: "GET",
|
|
656
|
+
path: "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files",
|
|
657
|
+
examplePath: "/v1/vector_stores/vs-test123/file_batches/vsbf-test123/files",
|
|
658
|
+
service: "vector-stores",
|
|
659
|
+
description: "Vector file batch files list"
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
method: "POST",
|
|
663
|
+
path: "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel",
|
|
664
|
+
examplePath: "/v1/vector_stores/vs-test123/file_batches/vsbf-test123/cancel",
|
|
665
|
+
service: "vector-stores",
|
|
666
|
+
description: "Vector file batch cancel"
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
method: "GET",
|
|
670
|
+
path: "/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}",
|
|
671
|
+
examplePath: "/v1/vector_stores/vs-test123/file_batches/vsbf-test123",
|
|
672
|
+
service: "vector-stores",
|
|
673
|
+
description: "Vector file batch retrieve"
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
method: "POST",
|
|
677
|
+
path: "/v1/vector_stores/{vector_store_id}/file_batches",
|
|
678
|
+
examplePath: "/v1/vector_stores/vs-test123/file_batches",
|
|
679
|
+
service: "vector-stores",
|
|
680
|
+
description: "Vector file batch create"
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
method: "GET",
|
|
684
|
+
path: "/v1/vector_stores/{vector_store_id}/files/{file_id}",
|
|
685
|
+
examplePath: "/v1/vector_stores/vs-test123/files/file-test123",
|
|
686
|
+
service: "vector-stores",
|
|
687
|
+
description: "Vector store file retrieve"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
method: "DELETE",
|
|
691
|
+
path: "/v1/vector_stores/{vector_store_id}/files/{file_id}",
|
|
692
|
+
examplePath: "/v1/vector_stores/vs-test123/files/file-test123",
|
|
693
|
+
service: "vector-stores",
|
|
694
|
+
description: "Vector store file delete"
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
method: "POST",
|
|
698
|
+
path: "/v1/vector_stores/{vector_store_id}/files",
|
|
699
|
+
examplePath: "/v1/vector_stores/vs-test123/files",
|
|
700
|
+
service: "vector-stores",
|
|
701
|
+
description: "Vector store file attach"
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
method: "GET",
|
|
705
|
+
path: "/v1/vector_stores/{vector_store_id}/files",
|
|
706
|
+
examplePath: "/v1/vector_stores/vs-test123/files",
|
|
707
|
+
service: "vector-stores",
|
|
708
|
+
description: "Vector store files list"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
method: "GET",
|
|
712
|
+
path: "/v1/vector_stores/{vector_store_id}",
|
|
713
|
+
examplePath: "/v1/vector_stores/vs-test123",
|
|
714
|
+
service: "vector-stores",
|
|
715
|
+
description: "Vector store retrieve"
|
|
716
|
+
},
|
|
717
|
+
{
|
|
718
|
+
method: "POST",
|
|
719
|
+
path: "/v1/vector_stores/{vector_store_id}",
|
|
720
|
+
examplePath: "/v1/vector_stores/vs-test123",
|
|
721
|
+
service: "vector-stores",
|
|
722
|
+
description: "Vector store modify"
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
method: "DELETE",
|
|
726
|
+
path: "/v1/vector_stores/{vector_store_id}",
|
|
727
|
+
examplePath: "/v1/vector_stores/vs-test123",
|
|
728
|
+
service: "vector-stores",
|
|
729
|
+
description: "Vector store delete"
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
method: "GET",
|
|
733
|
+
path: "/v1/vector_stores",
|
|
734
|
+
service: "vector-stores",
|
|
735
|
+
description: "Vector store list"
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
method: "POST",
|
|
739
|
+
path: "/v1/vector_stores",
|
|
740
|
+
service: "vector-stores",
|
|
741
|
+
description: "Vector store create"
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
method: "POST",
|
|
745
|
+
path: COMPLETIONS_PATH,
|
|
746
|
+
service: "openai",
|
|
747
|
+
description: "OpenAI chat completions"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
method: "GET",
|
|
751
|
+
path: "/__aimock/health",
|
|
752
|
+
service: "control",
|
|
753
|
+
description: "Control health"
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
method: "GET",
|
|
757
|
+
path: "/__aimock/journal",
|
|
758
|
+
service: "control",
|
|
759
|
+
description: "Request journal"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
method: "GET",
|
|
763
|
+
path: "/__aimock/fixtures",
|
|
764
|
+
service: "control",
|
|
765
|
+
description: "Fixture count"
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
method: "POST",
|
|
769
|
+
path: "/__aimock/fixtures",
|
|
770
|
+
service: "control",
|
|
771
|
+
description: "Add fixtures"
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
method: "DELETE",
|
|
775
|
+
path: "/__aimock/fixtures",
|
|
776
|
+
service: "control",
|
|
777
|
+
description: "Clear fixtures"
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
method: "GET",
|
|
781
|
+
path: "/__aimock/chaos",
|
|
782
|
+
service: "control",
|
|
783
|
+
description: "Read chaos config"
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
method: "POST",
|
|
787
|
+
path: "/__aimock/chaos",
|
|
788
|
+
service: "control",
|
|
789
|
+
description: "Set chaos config"
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
method: "DELETE",
|
|
793
|
+
path: "/__aimock/chaos",
|
|
794
|
+
service: "control",
|
|
795
|
+
description: "Clear chaos override"
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
method: "POST",
|
|
799
|
+
path: "/__aimock/reset",
|
|
800
|
+
service: "control",
|
|
801
|
+
description: "Full reset"
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
method: "POST",
|
|
805
|
+
path: "/__aimock/reset/journal",
|
|
806
|
+
service: "control",
|
|
807
|
+
description: "Journal-only reset"
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
method: "POST",
|
|
811
|
+
path: "/__aimock/reset/fixtures",
|
|
812
|
+
service: "control",
|
|
813
|
+
description: "Full reset (deprecated alias)"
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
method: "POST",
|
|
817
|
+
path: "/__aimock/error",
|
|
818
|
+
service: "control",
|
|
819
|
+
description: "One-shot error"
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
method: "GET",
|
|
823
|
+
path: "/__aimock/openapi.json",
|
|
824
|
+
service: "control",
|
|
825
|
+
description: "OpenAPI catalog"
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
method: "GET",
|
|
829
|
+
path: "/__aimock/routes",
|
|
830
|
+
service: "control",
|
|
831
|
+
description: "Flat route list"
|
|
832
|
+
}
|
|
833
|
+
];
|
|
834
|
+
/**
|
|
835
|
+
* Compile an OpenAPI path template (`{param}` segments) to the equivalent
|
|
836
|
+
* single-segment matcher. Every `{param}` becomes `[^/]+`; everything else
|
|
837
|
+
* matches literally (including `:action` suffixes like `:predict`).
|
|
838
|
+
*
|
|
839
|
+
* This is intentionally the CANONICAL matcher, not a copy of each
|
|
840
|
+
* dispatcher's regex: a couple of dispatch regexes are deliberately wider
|
|
841
|
+
* (e.g. `VEO_OPERATION_RE` allows multi-segment operation names), so the
|
|
842
|
+
* registry matcher may miss exotic paths the dispatcher serves — but it must
|
|
843
|
+
* never CLAIM a path the dispatcher does not serve, which is the direction
|
|
844
|
+
* the runtime drift guard relies on.
|
|
845
|
+
*/
|
|
846
|
+
function templateToRegExp(template) {
|
|
847
|
+
const pattern = template.split(/(\{[^}]+\})/g).map((part) => /^\{[^}]+\}$/.test(part) ? "[^/]+" : part.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("");
|
|
848
|
+
return new RegExp(`^${pattern}$`);
|
|
849
|
+
}
|
|
850
|
+
/**
|
|
851
|
+
* Find the registry entry serving `METHOD pathname`, in dispatcher order
|
|
852
|
+
* (first match wins — `ROUTE_DEFINITIONS` is kept in dispatch order for
|
|
853
|
+
* exactly this reason). Returns `undefined` when no catalog entry covers the
|
|
854
|
+
* request. Method comparison is case-insensitive, like the dispatcher.
|
|
855
|
+
*/
|
|
856
|
+
function matchRouteDefinition(method, pathname) {
|
|
857
|
+
const want = method.toUpperCase();
|
|
858
|
+
for (const def of ROUTE_DEFINITIONS) {
|
|
859
|
+
if (def.method.toUpperCase() !== want) continue;
|
|
860
|
+
if (def.path === pathname) return def;
|
|
861
|
+
if (def.path.includes("{") && templateToRegExp(def.path).test(pathname)) return def;
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
//#endregion
|
|
866
|
+
exports.AZURE_DEPLOYMENT_RE = AZURE_DEPLOYMENT_RE;
|
|
867
|
+
exports.BATCHES_CANCEL_RE = BATCHES_CANCEL_RE;
|
|
868
|
+
exports.BATCHES_ID_RE = BATCHES_ID_RE;
|
|
869
|
+
exports.BATCHES_PATH = BATCHES_PATH;
|
|
870
|
+
exports.BEDROCK_CONVERSE_RE = BEDROCK_CONVERSE_RE;
|
|
871
|
+
exports.BEDROCK_CONVERSE_STREAM_RE = BEDROCK_CONVERSE_STREAM_RE;
|
|
872
|
+
exports.BEDROCK_INVOKE_RE = BEDROCK_INVOKE_RE;
|
|
873
|
+
exports.BEDROCK_STREAM_RE = BEDROCK_STREAM_RE;
|
|
874
|
+
exports.BYTEPLUS_VIDEO_STATUS_RE = BYTEPLUS_VIDEO_STATUS_RE;
|
|
875
|
+
exports.BYTEPLUS_VIDEO_SUBMIT_RE = BYTEPLUS_VIDEO_SUBMIT_RE;
|
|
876
|
+
exports.COHERE_CHAT_PATH = COHERE_CHAT_PATH;
|
|
877
|
+
exports.COHERE_EMBED_PATH = COHERE_EMBED_PATH;
|
|
878
|
+
exports.COMPLETIONS_PATH = COMPLETIONS_PATH;
|
|
879
|
+
exports.CONTROL_PREFIX = CONTROL_PREFIX;
|
|
880
|
+
exports.ELEVENLABS_MUSIC_RE = ELEVENLABS_MUSIC_RE;
|
|
881
|
+
exports.ELEVENLABS_SOUND_GENERATION_PATH = ELEVENLABS_SOUND_GENERATION_PATH;
|
|
882
|
+
exports.ELEVENLABS_TTS_RE = ELEVENLABS_TTS_RE;
|
|
883
|
+
exports.ELEVENLABS_VOICE_CREATE_PATH = ELEVENLABS_VOICE_CREATE_PATH;
|
|
884
|
+
exports.ELEVENLABS_VOICE_DESIGN_PATH = ELEVENLABS_VOICE_DESIGN_PATH;
|
|
885
|
+
exports.ELEVENLABS_VOICE_RE = ELEVENLABS_VOICE_RE;
|
|
886
|
+
exports.EMBEDDINGS_PATH = EMBEDDINGS_PATH;
|
|
887
|
+
exports.FAL_QUEUE_REQUESTS_RE = FAL_QUEUE_REQUESTS_RE;
|
|
888
|
+
exports.FAL_QUEUE_SUBMIT_RE = FAL_QUEUE_SUBMIT_RE;
|
|
889
|
+
exports.FAL_ROUTE_RE = FAL_ROUTE_RE;
|
|
890
|
+
exports.FAL_RUN_RE = FAL_RUN_RE;
|
|
891
|
+
exports.FILES_CONTENT_RE = FILES_CONTENT_RE;
|
|
892
|
+
exports.FILES_ID_RE = FILES_ID_RE;
|
|
893
|
+
exports.FILES_PATH = FILES_PATH;
|
|
894
|
+
exports.FINE_TUNING_CANCEL_RE = FINE_TUNING_CANCEL_RE;
|
|
895
|
+
exports.FINE_TUNING_EVENTS_RE = FINE_TUNING_EVENTS_RE;
|
|
896
|
+
exports.FINE_TUNING_ID_RE = FINE_TUNING_ID_RE;
|
|
897
|
+
exports.FINE_TUNING_JOBS_PATH = FINE_TUNING_JOBS_PATH;
|
|
898
|
+
exports.GEMINI_EMBED_RE = GEMINI_EMBED_RE;
|
|
899
|
+
exports.GEMINI_INTERACTIONS_PATH = GEMINI_INTERACTIONS_PATH;
|
|
900
|
+
exports.GEMINI_LIVE_PATH = GEMINI_LIVE_PATH;
|
|
901
|
+
exports.GEMINI_PATH_RE = GEMINI_PATH_RE;
|
|
902
|
+
exports.GEMINI_PREDICT_RE = GEMINI_PREDICT_RE;
|
|
903
|
+
exports.GROK_VIDEO_STATUS_RE = GROK_VIDEO_STATUS_RE;
|
|
904
|
+
exports.GROK_VIDEO_SUBMIT_PATH = GROK_VIDEO_SUBMIT_PATH;
|
|
905
|
+
exports.HEALTH_PATH = HEALTH_PATH;
|
|
906
|
+
exports.IMAGES_EDIT_PATH = IMAGES_EDIT_PATH;
|
|
907
|
+
exports.IMAGES_PATH = IMAGES_PATH;
|
|
908
|
+
exports.IMAGES_VARIATIONS_PATH = IMAGES_VARIATIONS_PATH;
|
|
909
|
+
exports.LIVE_PATH = LIVE_PATH;
|
|
910
|
+
exports.MESSAGES_PATH = MESSAGES_PATH;
|
|
911
|
+
exports.METRICS_PATH = METRICS_PATH;
|
|
912
|
+
exports.MODELS_PATH = MODELS_PATH;
|
|
913
|
+
exports.MODERATIONS_PATH = MODERATIONS_PATH;
|
|
914
|
+
exports.OLLAMA_CHAT_PATH = OLLAMA_CHAT_PATH;
|
|
915
|
+
exports.OLLAMA_EMBEDDINGS_PATH = OLLAMA_EMBEDDINGS_PATH;
|
|
916
|
+
exports.OLLAMA_EMBED_PATH = OLLAMA_EMBED_PATH;
|
|
917
|
+
exports.OLLAMA_GENERATE_PATH = OLLAMA_GENERATE_PATH;
|
|
918
|
+
exports.OLLAMA_TAGS_PATH = OLLAMA_TAGS_PATH;
|
|
919
|
+
exports.OPENAI_VIDEO_STATUS_RE = OPENAI_VIDEO_STATUS_RE;
|
|
920
|
+
exports.OPENROUTER_CREDITS_PATH = OPENROUTER_CREDITS_PATH;
|
|
921
|
+
exports.OPENROUTER_KEY_PATH = OPENROUTER_KEY_PATH;
|
|
922
|
+
exports.OPENROUTER_MODELS_PATH = OPENROUTER_MODELS_PATH;
|
|
923
|
+
exports.OPENROUTER_VIDEOS_PATH = OPENROUTER_VIDEOS_PATH;
|
|
924
|
+
exports.OPENROUTER_VIDEO_CONTENT_RE = OPENROUTER_VIDEO_CONTENT_RE;
|
|
925
|
+
exports.OPENROUTER_VIDEO_MODELS_PATH = OPENROUTER_VIDEO_MODELS_PATH;
|
|
926
|
+
exports.OPENROUTER_VIDEO_STATUS_RE = OPENROUTER_VIDEO_STATUS_RE;
|
|
927
|
+
exports.READY_PATH = READY_PATH;
|
|
928
|
+
exports.REALTIME_PATH = REALTIME_PATH;
|
|
929
|
+
exports.REQUESTS_PATH = REQUESTS_PATH;
|
|
930
|
+
exports.RERANK_PATH = RERANK_PATH;
|
|
931
|
+
exports.RESPONSES_PATH = RESPONSES_PATH;
|
|
932
|
+
exports.ROUTE_DEFINITIONS = ROUTE_DEFINITIONS;
|
|
933
|
+
exports.SEARCH_PATH = SEARCH_PATH;
|
|
934
|
+
exports.SPEECH_PATH = SPEECH_PATH;
|
|
935
|
+
exports.TRANSCRIPTIONS_PATH = TRANSCRIPTIONS_PATH;
|
|
936
|
+
exports.TRANSLATIONS_PATH = TRANSLATIONS_PATH;
|
|
937
|
+
exports.VECTOR_STORES_BATCH_CANCEL_RE = VECTOR_STORES_BATCH_CANCEL_RE;
|
|
938
|
+
exports.VECTOR_STORES_BATCH_FILES_RE = VECTOR_STORES_BATCH_FILES_RE;
|
|
939
|
+
exports.VECTOR_STORES_BATCH_RE = VECTOR_STORES_BATCH_RE;
|
|
940
|
+
exports.VECTOR_STORES_FILES_RE = VECTOR_STORES_FILES_RE;
|
|
941
|
+
exports.VECTOR_STORES_FILE_BATCHES_RE = VECTOR_STORES_FILE_BATCHES_RE;
|
|
942
|
+
exports.VECTOR_STORES_FILE_RE = VECTOR_STORES_FILE_RE;
|
|
943
|
+
exports.VECTOR_STORES_ID_RE = VECTOR_STORES_ID_RE;
|
|
944
|
+
exports.VECTOR_STORES_PATH = VECTOR_STORES_PATH;
|
|
945
|
+
exports.VECTOR_STORES_SEARCH_RE = VECTOR_STORES_SEARCH_RE;
|
|
946
|
+
exports.VEO_OPERATION_RE = VEO_OPERATION_RE;
|
|
947
|
+
exports.VEO_PREDICT_LRO_RE = VEO_PREDICT_LRO_RE;
|
|
948
|
+
exports.VERTEX_AI_RE = VERTEX_AI_RE;
|
|
949
|
+
exports.VIDEOS_PATH = VIDEOS_PATH;
|
|
950
|
+
exports.matchRouteDefinition = matchRouteDefinition;
|
|
951
|
+
//# sourceMappingURL=route-registry.cjs.map
|