@zyraxon-ai/llm 19.0.5
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/README.md +131 -0
- package/dist/cache-policy.d.ts +3 -0
- package/dist/cache-policy.d.ts.map +1 -0
- package/dist/cache-policy.js +109 -0
- package/dist/cache-policy.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/llm.d.ts +205 -0
- package/dist/llm.d.ts.map +1 -0
- package/dist/llm.js +82 -0
- package/dist/llm.js.map +1 -0
- package/dist/protocols/anthropic-messages.d.ts +340 -0
- package/dist/protocols/anthropic-messages.d.ts.map +1 -0
- package/dist/protocols/anthropic-messages.js +719 -0
- package/dist/protocols/anthropic-messages.js.map +1 -0
- package/dist/protocols/bedrock-converse.d.ts +472 -0
- package/dist/protocols/bedrock-converse.d.ts.map +1 -0
- package/dist/protocols/bedrock-converse.js +529 -0
- package/dist/protocols/bedrock-converse.js.map +1 -0
- package/dist/protocols/bedrock-event-stream.d.ts +10 -0
- package/dist/protocols/bedrock-event-stream.d.ts.map +1 -0
- package/dist/protocols/bedrock-event-stream.js +64 -0
- package/dist/protocols/bedrock-event-stream.js.map +1 -0
- package/dist/protocols/gemini.d.ts +165 -0
- package/dist/protocols/gemini.d.ts.map +1 -0
- package/dist/protocols/gemini.js +420 -0
- package/dist/protocols/gemini.js.map +1 -0
- package/dist/protocols/index.d.ts +7 -0
- package/dist/protocols/index.d.ts.map +1 -0
- package/dist/protocols/index.js +7 -0
- package/dist/protocols/index.js.map +1 -0
- package/dist/protocols/openai-chat.d.ts +297 -0
- package/dist/protocols/openai-chat.d.ts.map +1 -0
- package/dist/protocols/openai-chat.js +426 -0
- package/dist/protocols/openai-chat.js.map +1 -0
- package/dist/protocols/openai-compatible-chat.d.ts +12 -0
- package/dist/protocols/openai-compatible-chat.d.ts.map +1 -0
- package/dist/protocols/openai-compatible-chat.js +20 -0
- package/dist/protocols/openai-compatible-chat.js.map +1 -0
- package/dist/protocols/openai-responses.d.ts +615 -0
- package/dist/protocols/openai-responses.d.ts.map +1 -0
- package/dist/protocols/openai-responses.js +828 -0
- package/dist/protocols/openai-responses.js.map +1 -0
- package/dist/protocols/shared.d.ts +193 -0
- package/dist/protocols/shared.d.ts.map +1 -0
- package/dist/protocols/shared.js +237 -0
- package/dist/protocols/shared.js.map +1 -0
- package/dist/protocols/utils/bedrock-auth.d.ts +19 -0
- package/dist/protocols/utils/bedrock-auth.d.ts.map +1 -0
- package/dist/protocols/utils/bedrock-auth.js +42 -0
- package/dist/protocols/utils/bedrock-auth.js.map +1 -0
- package/dist/protocols/utils/bedrock-cache.d.ts +16 -0
- package/dist/protocols/utils/bedrock-cache.d.ts.map +1 -0
- package/dist/protocols/utils/bedrock-cache.js +30 -0
- package/dist/protocols/utils/bedrock-cache.js.map +1 -0
- package/dist/protocols/utils/bedrock-media.d.ts +50 -0
- package/dist/protocols/utils/bedrock-media.d.ts.map +1 -0
- package/dist/protocols/utils/bedrock-media.js +69 -0
- package/dist/protocols/utils/bedrock-media.js.map +1 -0
- package/dist/protocols/utils/cache.d.ts +7 -0
- package/dist/protocols/utils/cache.d.ts.map +1 -0
- package/dist/protocols/utils/cache.js +9 -0
- package/dist/protocols/utils/cache.js.map +1 -0
- package/dist/protocols/utils/gemini-tool-schema.d.ts +3 -0
- package/dist/protocols/utils/gemini-tool-schema.d.ts.map +1 -0
- package/dist/protocols/utils/gemini-tool-schema.js +84 -0
- package/dist/protocols/utils/gemini-tool-schema.js.map +1 -0
- package/dist/protocols/utils/lifecycle.d.ts +20 -0
- package/dist/protocols/utils/lifecycle.d.ts.map +1 -0
- package/dist/protocols/utils/lifecycle.js +66 -0
- package/dist/protocols/utils/lifecycle.js.map +1 -0
- package/dist/protocols/utils/openai-options.d.ts +23 -0
- package/dist/protocols/utils/openai-options.d.ts.map +1 -0
- package/dist/protocols/utils/openai-options.js +68 -0
- package/dist/protocols/utils/openai-options.js.map +1 -0
- package/dist/protocols/utils/tool-schema.d.ts +8 -0
- package/dist/protocols/utils/tool-schema.d.ts.map +1 -0
- package/dist/protocols/utils/tool-schema.js +80 -0
- package/dist/protocols/utils/tool-schema.js.map +1 -0
- package/dist/protocols/utils/tool-stream.d.ts +156 -0
- package/dist/protocols/utils/tool-stream.d.ts.map +1 -0
- package/dist/protocols/utils/tool-stream.js +137 -0
- package/dist/protocols/utils/tool-stream.js.map +1 -0
- package/dist/provider-error.d.ts +3 -0
- package/dist/provider-error.d.ts.map +1 -0
- package/dist/provider-error.js +29 -0
- package/dist/provider-error.js.map +1 -0
- package/dist/provider.d.ts +24 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +3 -0
- package/dist/provider.js.map +1 -0
- package/dist/providers/amazon-bedrock.d.ts +142 -0
- package/dist/providers/amazon-bedrock.d.ts.map +1 -0
- package/dist/providers/amazon-bedrock.js +27 -0
- package/dist/providers/amazon-bedrock.js.map +1 -0
- package/dist/providers/anthropic.d.ts +24 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +27 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/azure.d.ts +36 -0
- package/dist/providers/azure.d.ts.map +1 -0
- package/dist/providers/azure.js +70 -0
- package/dist/providers/azure.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +47 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +88 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/github-copilot.d.ts +30 -0
- package/dist/providers/github-copilot.d.ts.map +1 -0
- package/dist/providers/github-copilot.js +48 -0
- package/dist/providers/github-copilot.js.map +1 -0
- package/dist/providers/google.d.ts +24 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +27 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +12 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +12 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai-compatible-profile.d.ts +44 -0
- package/dist/providers/openai-compatible-profile.d.ts.map +1 -0
- package/dist/providers/openai-compatible-profile.js +13 -0
- package/dist/providers/openai-compatible-profile.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +62 -0
- package/dist/providers/openai-compatible.d.ts.map +1 -0
- package/dist/providers/openai-compatible.js +48 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/providers/openai-options.d.ts +31 -0
- package/dist/providers/openai-options.d.ts.map +1 -0
- package/dist/providers/openai-options.js +43 -0
- package/dist/providers/openai-options.js.map +1 -0
- package/dist/providers/openai.d.ts +116 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +39 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openrouter.d.ts +199 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +66 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/xai.d.ts +32 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +44 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/route/auth-options.d.ts +35 -0
- package/dist/route/auth-options.d.ts.map +1 -0
- package/dist/route/auth-options.js +15 -0
- package/dist/route/auth-options.js.map +1 -0
- package/dist/route/auth.js +90 -0
- package/dist/route/auth.js.map +1 -0
- package/dist/route/client.d.ts +306 -0
- package/dist/route/client.d.ts.map +1 -0
- package/dist/route/client.js +197 -0
- package/dist/route/client.js.map +1 -0
- package/dist/route/endpoint.js +22 -0
- package/dist/route/endpoint.js.map +1 -0
- package/dist/route/executor.d.ts +13 -0
- package/dist/route/executor.d.ts.map +1 -0
- package/dist/route/executor.js +287 -0
- package/dist/route/executor.js.map +1 -0
- package/dist/route/framing.js +5 -0
- package/dist/route/framing.js.map +1 -0
- package/dist/route/index.d.ts +17 -0
- package/dist/route/index.d.ts.map +1 -0
- package/dist/route/index.js +10 -0
- package/dist/route/index.js.map +1 -0
- package/dist/route/protocol.d.ts +77 -0
- package/dist/route/protocol.d.ts.map +1 -0
- package/dist/route/protocol.js +18 -0
- package/dist/route/protocol.js.map +1 -0
- package/dist/route/transport/http.d.ts +34 -0
- package/dist/route/transport/http.d.ts.map +1 -0
- package/dist/route/transport/http.js +98 -0
- package/dist/route/transport/http.js.map +1 -0
- package/dist/route/transport/index.d.ts +28 -0
- package/dist/route/transport/index.d.ts.map +1 -0
- package/dist/route/transport/index.js +3 -0
- package/dist/route/transport/index.js.map +1 -0
- package/dist/route/transport/websocket.d.ts +57 -0
- package/dist/route/transport/websocket.d.ts.map +1 -0
- package/dist/route/transport/websocket.js +181 -0
- package/dist/route/transport/websocket.js.map +1 -0
- package/dist/schema/errors.d.ts +166 -0
- package/dist/schema/errors.d.ts.map +1 -0
- package/dist/schema/errors.js +187 -0
- package/dist/schema/errors.js.map +1 -0
- package/dist/schema/events.d.ts +3821 -0
- package/dist/schema/events.d.ts.map +1 -0
- package/dist/schema/events.js +484 -0
- package/dist/schema/events.js.map +1 -0
- package/dist/schema/ids.d.ts +31 -0
- package/dist/schema/ids.d.ts.map +1 -0
- package/dist/schema/ids.js +19 -0
- package/dist/schema/ids.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/messages.d.ts +294 -0
- package/dist/schema/messages.d.ts.map +1 -0
- package/dist/schema/messages.js +247 -0
- package/dist/schema/messages.js.map +1 -0
- package/dist/schema/options.d.ts +144 -0
- package/dist/schema/options.d.ts.map +1 -0
- package/dist/schema/options.js +196 -0
- package/dist/schema/options.js.map +1 -0
- package/dist/tool-runtime.d.ts +16 -0
- package/dist/tool-runtime.d.ts.map +1 -0
- package/dist/tool-runtime.js +35 -0
- package/dist/tool-runtime.js.map +1 -0
- package/dist/tool.js +67 -0
- package/dist/tool.js.map +1 -0
- package/dist/utils/record.d.ts +3 -0
- package/dist/utils/record.d.ts.map +1 -0
- package/dist/utils/record.js +3 -0
- package/dist/utils/record.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type AtLeastOne, type ProviderAuthOption } from "../route/auth-options";
|
|
2
|
+
import type { Route as RouteDef, RouteDefaultsInput } from "../route/client";
|
|
3
|
+
import { type ModelID } from "../schema";
|
|
4
|
+
import { type OpenAIProviderOptionsInput } from "./openai-options";
|
|
5
|
+
export declare const id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
6
|
+
type AzureURL = AtLeastOne<{
|
|
7
|
+
readonly resourceName: string;
|
|
8
|
+
readonly baseURL: string;
|
|
9
|
+
}>;
|
|
10
|
+
export type ModelOptions = AzureURL & RouteDefaultsInput & ProviderAuthOption<"optional"> & {
|
|
11
|
+
readonly apiVersion?: string;
|
|
12
|
+
readonly queryParams?: Record<string, string>;
|
|
13
|
+
readonly useCompletionUrls?: boolean;
|
|
14
|
+
readonly providerOptions?: OpenAIProviderOptionsInput;
|
|
15
|
+
};
|
|
16
|
+
export type Config = ModelOptions;
|
|
17
|
+
export declare const routes: RouteDef<unknown, import("../route/transport/http").HttpPrepared<string>>[];
|
|
18
|
+
export declare const configure: (input: Config) => {
|
|
19
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
20
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
21
|
+
responses: (modelID: string | ModelID) => import("..").Model;
|
|
22
|
+
chat: (modelID: string | ModelID) => import("..").Model;
|
|
23
|
+
configure: (input: Config) => /*elided*/ any;
|
|
24
|
+
};
|
|
25
|
+
export declare const provider: {
|
|
26
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
27
|
+
configure: (input: Config) => {
|
|
28
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
29
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
30
|
+
responses: (modelID: string | ModelID) => import("..").Model;
|
|
31
|
+
chat: (modelID: string | ModelID) => import("..").Model;
|
|
32
|
+
configure: /*elided*/ any;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=azure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["../../src/providers/azure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,IAAI,QAAQ,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAGpD,OAAO,EAAqB,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAErF,eAAO,MAAM,EAAE,yDAA2B,CAAA;AAK1C,KAAK,QAAQ,GAAG,UAAU,CAAC;IAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEvF,MAAM,MAAM,YAAY,GAAG,QAAQ,GACjC,kBAAkB,GAClB,kBAAkB,CAAC,UAAU,CAAC,GAAG;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,0BAA0B,CAAA;CACtD,CAAA;AACH,MAAM,MAAM,MAAM,GAAG,YAAY,CAAA;AAsBjC,eAAO,MAAM,MAAM,6EAA8B,CAAA;AAyCjD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM;;qBAalB,MAAM,GAAG,OAAO;yBARP,MAAM,GAAG,OAAO;oBAGrB,MAAM,GAAG,OAAO;uBARR,MAAM;CAkBtC,CAAA;AAED,eAAO,MAAM,QAAQ;;uBApBY,MAAM;;yBAalB,MAAM,GAAG,OAAO;6BARP,MAAM,GAAG,OAAO;wBAGrB,MAAM,GAAG,OAAO;;;CAexC,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Auth } from "../route/auth";
|
|
2
|
+
import { ProviderID } from "../schema";
|
|
3
|
+
import * as OpenAIChat from "../protocols/openai-chat";
|
|
4
|
+
import * as OpenAIResponses from "../protocols/openai-responses";
|
|
5
|
+
import { withOpenAIOptions } from "./openai-options";
|
|
6
|
+
export const id = ProviderID.make("azure");
|
|
7
|
+
const routeAuth = Auth.remove("authorization");
|
|
8
|
+
const resourceBaseURL = (resourceName) => `https://${resourceName.trim()}.openai.azure.com/openai/v1`;
|
|
9
|
+
const responsesRoute = OpenAIResponses.route.with({
|
|
10
|
+
id: "azure-openai-responses",
|
|
11
|
+
provider: id,
|
|
12
|
+
auth: routeAuth,
|
|
13
|
+
endpoint: {
|
|
14
|
+
query: { "api-version": "v1" },
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
const chatRoute = OpenAIChat.route.with({
|
|
18
|
+
id: "azure-openai-chat",
|
|
19
|
+
provider: id,
|
|
20
|
+
auth: routeAuth,
|
|
21
|
+
endpoint: {
|
|
22
|
+
query: { "api-version": "v1" },
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
export const routes = [responsesRoute, chatRoute];
|
|
26
|
+
const defaults = (input) => {
|
|
27
|
+
const { apiKey: _, apiVersion: _apiVersion, resourceName: _resourceName, useCompletionUrls: _useCompletionUrls, baseURL: _baseURL, queryParams: _queryParams, ...rest } = input;
|
|
28
|
+
if ("auth" in rest) {
|
|
29
|
+
const { auth: _, ...withoutAuth } = rest;
|
|
30
|
+
return withoutAuth;
|
|
31
|
+
}
|
|
32
|
+
return rest;
|
|
33
|
+
};
|
|
34
|
+
const auth = (input) => {
|
|
35
|
+
if ("auth" in input && input.auth)
|
|
36
|
+
return input.auth;
|
|
37
|
+
return Auth.remove("authorization").andThen(Auth.optional("apiKey" in input ? input.apiKey : undefined, "apiKey")
|
|
38
|
+
.orElse(Auth.config("AZURE_OPENAI_API_KEY"))
|
|
39
|
+
.pipe(Auth.header("api-key")));
|
|
40
|
+
};
|
|
41
|
+
const configuredRoute = (route, input) => route.with({
|
|
42
|
+
auth: auth(input),
|
|
43
|
+
endpoint: {
|
|
44
|
+
// AtLeastOne guarantees at least one is set; baseURL wins if both are.
|
|
45
|
+
baseURL: input.baseURL ?? resourceBaseURL(input.resourceName),
|
|
46
|
+
query: {
|
|
47
|
+
...(input.apiVersion ? { "api-version": input.apiVersion } : {}),
|
|
48
|
+
...input.queryParams,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
export const configure = (input) => {
|
|
53
|
+
const configuredResponsesRoute = configuredRoute(responsesRoute, input);
|
|
54
|
+
const configuredChatRoute = configuredRoute(chatRoute, input);
|
|
55
|
+
const modelDefaults = defaults(input);
|
|
56
|
+
const responses = (modelID) => configuredResponsesRoute.with(withOpenAIOptions(modelID, modelDefaults)).model({ id: modelID });
|
|
57
|
+
const chat = (modelID) => configuredChatRoute.with(withOpenAIOptions(modelID, modelDefaults)).model({ id: modelID });
|
|
58
|
+
return {
|
|
59
|
+
id,
|
|
60
|
+
model: (modelID) => (input.useCompletionUrls === true ? chat(modelID) : responses(modelID)),
|
|
61
|
+
responses,
|
|
62
|
+
chat,
|
|
63
|
+
configure,
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export const provider = {
|
|
67
|
+
id,
|
|
68
|
+
configure,
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=azure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure.js","sourceRoot":"","sources":["../../src/providers/azure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Config, Redacted } from "effect";
|
|
2
|
+
import { type AtLeastOne, type ProviderAuthOption } from "../route/auth-options";
|
|
3
|
+
import type { RouteDefaultsInput } from "../route/client";
|
|
4
|
+
import { type ModelID } from "../schema";
|
|
5
|
+
export declare const aiGatewayID: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
6
|
+
export declare const workersAIID: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
7
|
+
export declare const aiGatewayAuthEnvVars: readonly ["CLOUDFLARE_API_TOKEN", "CF_AIG_TOKEN"];
|
|
8
|
+
export declare const workersAIAuthEnvVars: readonly ["CLOUDFLARE_API_KEY", "CLOUDFLARE_WORKERS_AI_TOKEN"];
|
|
9
|
+
type CloudflareSecret = string | Redacted.Redacted | Config.Config<string | Redacted.Redacted>;
|
|
10
|
+
type GatewayURL = AtLeastOne<{
|
|
11
|
+
readonly accountId: string;
|
|
12
|
+
readonly baseURL: string;
|
|
13
|
+
}> & {
|
|
14
|
+
readonly gatewayId?: string;
|
|
15
|
+
};
|
|
16
|
+
export type AIGatewayOptions = GatewayURL & RouteDefaultsInput & ProviderAuthOption<"optional"> & {
|
|
17
|
+
/** Cloudflare AI Gateway authentication token. Sent as `cf-aig-authorization`. */
|
|
18
|
+
readonly gatewayApiKey?: CloudflareSecret;
|
|
19
|
+
};
|
|
20
|
+
type WorkersAIURL = AtLeastOne<{
|
|
21
|
+
readonly accountId: string;
|
|
22
|
+
readonly baseURL: string;
|
|
23
|
+
}>;
|
|
24
|
+
export type WorkersAIOptions = WorkersAIURL & RouteDefaultsInput & ProviderAuthOption<"optional">;
|
|
25
|
+
export declare const aiGatewayBaseURL: (input: GatewayURL) => string;
|
|
26
|
+
export declare const workersAIBaseURL: (input: WorkersAIURL) => string;
|
|
27
|
+
export declare const aiGatewayRoute: import("../route").Route<unknown, import("../route/transport/http").HttpPrepared<string>>;
|
|
28
|
+
export declare const workersAIRoute: import("../route").Route<unknown, import("../route/transport/http").HttpPrepared<string>>;
|
|
29
|
+
export declare const routes: import("../route").Route<unknown, import("../route/transport/http").HttpPrepared<string>>[];
|
|
30
|
+
export declare const CloudflareAIGateway: {
|
|
31
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
32
|
+
configure: (options: AIGatewayOptions) => {
|
|
33
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
34
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
35
|
+
configure: /*elided*/ any;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export declare const CloudflareWorkersAI: {
|
|
39
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
40
|
+
configure: (options: WorkersAIOptions) => {
|
|
41
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
42
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
43
|
+
configure: /*elided*/ any;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=cloudflare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG9C,OAAO,EAAe,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAEpD,eAAO,MAAM,WAAW,yDAA2C,CAAA;AACnE,eAAO,MAAM,WAAW,yDAA2C,CAAA;AACnE,eAAO,MAAM,oBAAoB,mDAAoD,CAAA;AACrF,eAAO,MAAM,oBAAoB,gEAAiE,CAAA;AAElG,KAAK,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAE9F,KAAK,UAAU,GAAG,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAC,GAAG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GACvC,kBAAkB,GAClB,kBAAkB,CAAC,UAAU,CAAC,GAAG;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAA;CAC1C,CAAA;AAEH,KAAK,YAAY,GAAG,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;AAEjG,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,WAIjD,CAAA;AAaD,eAAO,MAAM,gBAAgB,GAAI,OAAO,YAAY,WAInD,CAAA;AAMD,eAAO,MAAM,cAAc,2FAGzB,CAAA;AAEF,eAAO,MAAM,cAAc,2FAGzB,CAAA;AAEF,eAAO,MAAM,MAAM,6FAAmC,CAAA;AA8CtD,eAAO,MAAM,mBAAmB;;yBA1BK,gBAAgB;;yBAQhC,MAAM,GAAG,OAAO;;;CAqBpC,CAAA;AAED,eAAO,MAAM,mBAAmB;;yBAlBK,gBAAgB;;yBAQhC,MAAM,GAAG,OAAO;;;CAapC,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as OpenAICompatibleChat from "../protocols/openai-compatible-chat";
|
|
2
|
+
import { Auth } from "../route/auth";
|
|
3
|
+
import { AuthOptions } from "../route/auth-options";
|
|
4
|
+
import { ProviderID } from "../schema";
|
|
5
|
+
export const aiGatewayID = ProviderID.make("cloudflare-ai-gateway");
|
|
6
|
+
export const workersAIID = ProviderID.make("cloudflare-workers-ai");
|
|
7
|
+
export const aiGatewayAuthEnvVars = ["CLOUDFLARE_API_TOKEN", "CF_AIG_TOKEN"];
|
|
8
|
+
export const workersAIAuthEnvVars = ["CLOUDFLARE_API_KEY", "CLOUDFLARE_WORKERS_AI_TOKEN"];
|
|
9
|
+
export const aiGatewayBaseURL = (input) => {
|
|
10
|
+
if (input.baseURL)
|
|
11
|
+
return input.baseURL;
|
|
12
|
+
if (!input.accountId)
|
|
13
|
+
throw new Error("CloudflareAIGateway.configure requires accountId unless baseURL is supplied");
|
|
14
|
+
return `https://gateway.ai.cloudflare.com/v1/${encodeURIComponent(input.accountId)}/${encodeURIComponent(input.gatewayId?.trim() || "default")}/compat`;
|
|
15
|
+
};
|
|
16
|
+
const aiGatewayAuth = (input) => {
|
|
17
|
+
if ("auth" in input && input.auth)
|
|
18
|
+
return input.auth;
|
|
19
|
+
const gateway = Auth.optional(input.gatewayApiKey, "gatewayApiKey")
|
|
20
|
+
.orElse(Auth.config("CLOUDFLARE_API_TOKEN"))
|
|
21
|
+
.orElse(Auth.config("CF_AIG_TOKEN"))
|
|
22
|
+
.pipe(Auth.bearerHeader("cf-aig-authorization"));
|
|
23
|
+
if (!("apiKey" in input) || input.apiKey === undefined)
|
|
24
|
+
return gateway;
|
|
25
|
+
if (input.gatewayApiKey === undefined)
|
|
26
|
+
return Auth.bearer(input.apiKey);
|
|
27
|
+
return Auth.bearerHeader("cf-aig-authorization", input.gatewayApiKey).andThen(Auth.bearer(input.apiKey));
|
|
28
|
+
};
|
|
29
|
+
export const workersAIBaseURL = (input) => {
|
|
30
|
+
if (input.baseURL)
|
|
31
|
+
return input.baseURL;
|
|
32
|
+
if (!input.accountId)
|
|
33
|
+
throw new Error("CloudflareWorkersAI.configure requires accountId unless baseURL is supplied");
|
|
34
|
+
return `https://api.cloudflare.com/client/v4/accounts/${encodeURIComponent(input.accountId)}/ai/v1`;
|
|
35
|
+
};
|
|
36
|
+
const workersAIAuth = (input) => {
|
|
37
|
+
return AuthOptions.bearer(input, workersAIAuthEnvVars);
|
|
38
|
+
};
|
|
39
|
+
export const aiGatewayRoute = OpenAICompatibleChat.route.with({
|
|
40
|
+
id: "cloudflare-ai-gateway",
|
|
41
|
+
provider: aiGatewayID,
|
|
42
|
+
});
|
|
43
|
+
export const workersAIRoute = OpenAICompatibleChat.route.with({
|
|
44
|
+
id: "cloudflare-workers-ai",
|
|
45
|
+
provider: workersAIID,
|
|
46
|
+
});
|
|
47
|
+
export const routes = [aiGatewayRoute, workersAIRoute];
|
|
48
|
+
const aiGatewayDefaults = (options) => {
|
|
49
|
+
const { accountId: _accountId, gatewayId: _gatewayId, apiKey: _apiKey, gatewayApiKey: _gatewayApiKey, baseURL: _baseURL, auth: _auth, ...rest } = options;
|
|
50
|
+
return rest;
|
|
51
|
+
};
|
|
52
|
+
const workersAIDefaults = (options) => {
|
|
53
|
+
const { accountId: _accountId, apiKey: _apiKey, auth: _auth, baseURL: _baseURL, ...rest } = options;
|
|
54
|
+
return rest;
|
|
55
|
+
};
|
|
56
|
+
const configureAIGateway = (options) => {
|
|
57
|
+
const route = aiGatewayRoute.with({
|
|
58
|
+
...aiGatewayDefaults(options),
|
|
59
|
+
endpoint: { baseURL: aiGatewayBaseURL(options) },
|
|
60
|
+
auth: aiGatewayAuth(options),
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
id: aiGatewayID,
|
|
64
|
+
model: (modelID) => route.model({ id: modelID }),
|
|
65
|
+
configure: configureAIGateway,
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const configureWorkersAI = (options) => {
|
|
69
|
+
const route = workersAIRoute.with({
|
|
70
|
+
...workersAIDefaults(options),
|
|
71
|
+
endpoint: { baseURL: workersAIBaseURL(options) },
|
|
72
|
+
auth: workersAIAuth(options),
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
id: workersAIID,
|
|
76
|
+
model: (modelID) => route.model({ id: modelID }),
|
|
77
|
+
configure: configureWorkersAI,
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
export const CloudflareAIGateway = {
|
|
81
|
+
id: aiGatewayID,
|
|
82
|
+
configure: configureAIGateway,
|
|
83
|
+
};
|
|
84
|
+
export const CloudflareWorkersAI = {
|
|
85
|
+
id: workersAIID,
|
|
86
|
+
configure: configureWorkersAI,
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=cloudflare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type ProviderAuthOption } from "../route/auth-options";
|
|
2
|
+
import type { RouteDefaultsInput } from "../route/client";
|
|
3
|
+
import { type ModelID } from "../schema";
|
|
4
|
+
import { type OpenAIProviderOptionsInput } from "./openai-options";
|
|
5
|
+
export declare const id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
6
|
+
export type ModelOptions = Omit<RouteDefaultsInput, "providerOptions"> & ProviderAuthOption<"optional"> & {
|
|
7
|
+
readonly baseURL: string;
|
|
8
|
+
readonly endpoint?: "chat" | "responses";
|
|
9
|
+
readonly providerOptions?: OpenAIProviderOptionsInput;
|
|
10
|
+
};
|
|
11
|
+
export declare const shouldUseResponsesApi: (modelID: string | ModelID, endpoint?: ModelOptions["endpoint"]) => boolean;
|
|
12
|
+
export declare const routes: import("../route").Route<unknown, import("../route/transport/http").HttpPrepared<string>>[];
|
|
13
|
+
export declare const configure: (options: ModelOptions) => {
|
|
14
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
15
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
16
|
+
responses: (modelID: string | ModelID) => import("..").Model;
|
|
17
|
+
chat: (modelID: string | ModelID) => import("..").Model;
|
|
18
|
+
configure: (options: ModelOptions) => /*elided*/ any;
|
|
19
|
+
};
|
|
20
|
+
export declare const provider: {
|
|
21
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
22
|
+
configure: (options: ModelOptions) => {
|
|
23
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
24
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
25
|
+
responses: (modelID: string | ModelID) => import("..").Model;
|
|
26
|
+
chat: (modelID: string | ModelID) => import("..").Model;
|
|
27
|
+
configure: /*elided*/ any;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=github-copilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-copilot.d.ts","sourceRoot":"","sources":["../../src/providers/github-copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAGpD,OAAO,EAAqB,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAErF,eAAO,MAAM,EAAE,yDAAoC,CAAA;AAInD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,GACpE,kBAAkB,CAAC,UAAU,CAAC,GAAG;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,0BAA0B,CAAA;CACtD,CAAA;AAEH,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,GAAG,OAAO,EAAE,WAAW,YAAY,CAAC,UAAU,CAAC,YAMnG,CAAA;AAED,eAAO,MAAM,MAAM,6FAA4C,CAAA;AAsB/D,eAAO,MAAM,SAAS,GAAI,SAAS,YAAY;;qBAS1B,MAAM,GAAG,OAAO;yBANP,MAAM,GAAG,OAAO;oBAErB,MAAM,GAAG,OAAO;yBALN,YAAY;CAe9C,CAAA;AAED,eAAO,MAAM,QAAQ;;yBAjBc,YAAY;;yBAS1B,MAAM,GAAG,OAAO;6BANP,MAAM,GAAG,OAAO;wBAErB,MAAM,GAAG,OAAO;;;CAexC,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AuthOptions } from "../route/auth-options";
|
|
2
|
+
import { ProviderID } from "../schema";
|
|
3
|
+
import * as OpenAIChat from "../protocols/openai-chat";
|
|
4
|
+
import * as OpenAIResponses from "../protocols/openai-responses";
|
|
5
|
+
import { withOpenAIOptions } from "./openai-options";
|
|
6
|
+
export const id = ProviderID.make("github-copilot");
|
|
7
|
+
export const shouldUseResponsesApi = (modelID, endpoint) => {
|
|
8
|
+
if (endpoint)
|
|
9
|
+
return endpoint === "responses";
|
|
10
|
+
const model = String(modelID);
|
|
11
|
+
const match = /^gpt-(\d+)/.exec(model);
|
|
12
|
+
if (!match)
|
|
13
|
+
return false;
|
|
14
|
+
return Number(match[1]) >= 5 && !model.startsWith("gpt-5-mini");
|
|
15
|
+
};
|
|
16
|
+
export const routes = [OpenAIResponses.route, OpenAIChat.route];
|
|
17
|
+
const chatRoute = OpenAIChat.route.with({ provider: id });
|
|
18
|
+
const responsesRoute = OpenAIResponses.route.with({ provider: id });
|
|
19
|
+
const defaults = (options) => {
|
|
20
|
+
const { apiKey: _, auth: _auth, baseURL: _baseURL, endpoint: _endpoint, ...rest } = options;
|
|
21
|
+
return rest;
|
|
22
|
+
};
|
|
23
|
+
const configuredResponsesRoute = (options) => responsesRoute.with({
|
|
24
|
+
endpoint: { baseURL: options.baseURL },
|
|
25
|
+
auth: AuthOptions.bearer(options, []),
|
|
26
|
+
});
|
|
27
|
+
const configuredChatRoute = (options) => chatRoute.with({
|
|
28
|
+
endpoint: { baseURL: options.baseURL },
|
|
29
|
+
auth: AuthOptions.bearer(options, []),
|
|
30
|
+
});
|
|
31
|
+
export const configure = (options) => {
|
|
32
|
+
const responsesRoute = configuredResponsesRoute(options);
|
|
33
|
+
const chatRoute = configuredChatRoute(options);
|
|
34
|
+
const responses = (modelID) => responsesRoute.with(withOpenAIOptions(modelID, defaults(options))).model({ id: modelID });
|
|
35
|
+
const chat = (modelID) => chatRoute.with(withOpenAIOptions(modelID, defaults(options))).model({ id: modelID });
|
|
36
|
+
return {
|
|
37
|
+
id,
|
|
38
|
+
model: (modelID) => shouldUseResponsesApi(modelID, options.endpoint) ? responses(modelID) : chat(modelID),
|
|
39
|
+
responses,
|
|
40
|
+
chat,
|
|
41
|
+
configure,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export const provider = {
|
|
45
|
+
id,
|
|
46
|
+
configure,
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=github-copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../src/providers/github-copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { RouteDefaultsInput } from "../route/client";
|
|
2
|
+
import type { ProviderAuthOption } from "../route/auth-options";
|
|
3
|
+
import { type ModelID } from "../schema";
|
|
4
|
+
export declare const id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
5
|
+
export declare const routes: import("../route").Route<unknown, import("../route/transport/http").HttpPrepared<string>>[];
|
|
6
|
+
export type Config = RouteDefaultsInput & ProviderAuthOption<"optional"> & {
|
|
7
|
+
readonly baseURL?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const configure: (input?: Config) => {
|
|
10
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
11
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
12
|
+
configure: (input?: Config) => /*elided*/ any;
|
|
13
|
+
};
|
|
14
|
+
export declare const provider: {
|
|
15
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
16
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
17
|
+
configure: (input?: Config) => {
|
|
18
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
19
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
20
|
+
configure: /*elided*/ any;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare const model: (modelID: string | ModelID) => import("..").Model;
|
|
24
|
+
//# sourceMappingURL=google.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAGpD,eAAO,MAAM,EAAE,yDAA4B,CAAA;AAE3C,eAAO,MAAM,MAAM,6FAAiB,CAAA;AAEpC,MAAM,MAAM,MAAM,GAAG,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAcxG,eAAO,MAAM,SAAS,GAAI,QAAO,MAAW;;qBAIvB,MAAM,GAAG,OAAO;wBAJJ,MAAM;CAOtC,CAAA;AAED,eAAO,MAAM,QAAQ;;qBALA,MAAM,GAAG,OAAO;wBAJJ,MAAM;;yBAIlB,MAAM,GAAG,OAAO;;;CAKF,CAAA;AACnC,eAAO,MAAM,KAAK,YANG,MAAM,GAAG,OAAO,uBAMF,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Auth } from "../route/auth";
|
|
2
|
+
import { ProviderID } from "../schema";
|
|
3
|
+
import * as Gemini from "../protocols/gemini";
|
|
4
|
+
export const id = ProviderID.make("google");
|
|
5
|
+
export const routes = [Gemini.route];
|
|
6
|
+
const auth = (options) => {
|
|
7
|
+
if ("auth" in options && options.auth)
|
|
8
|
+
return options.auth;
|
|
9
|
+
return Auth.optional("apiKey" in options ? options.apiKey : undefined, "apiKey")
|
|
10
|
+
.orElse(Auth.config("GOOGLE_GENERATIVE_AI_API_KEY"))
|
|
11
|
+
.pipe(Auth.header("x-goog-api-key"));
|
|
12
|
+
};
|
|
13
|
+
const configuredRoute = (input) => {
|
|
14
|
+
const { apiKey: _, auth: _auth, baseURL, ...rest } = input;
|
|
15
|
+
return Gemini.route.with({ ...rest, endpoint: { baseURL }, auth: auth(input) });
|
|
16
|
+
};
|
|
17
|
+
export const configure = (input = {}) => {
|
|
18
|
+
const route = configuredRoute(input);
|
|
19
|
+
return {
|
|
20
|
+
id,
|
|
21
|
+
model: (modelID) => route.model({ id: modelID }),
|
|
22
|
+
configure,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export const provider = configure();
|
|
26
|
+
export const model = provider.model;
|
|
27
|
+
//# sourceMappingURL=google.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAgB,MAAM,WAAW,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAE7C,MAAM,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAIpC,MAAM,IAAI,GAAG,CAAC,OAAuC,EAAE,EAAE;IACvD,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,IAAI,CAAA;IAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC7E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;SACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACjF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACpC,OAAO;QACL,EAAE;QACF,KAAK,EAAE,CAAC,OAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QAClE,SAAS;KACV,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAA;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * as Anthropic from "./anthropic";
|
|
2
|
+
export * as AmazonBedrock from "./amazon-bedrock";
|
|
3
|
+
export * as Azure from "./azure";
|
|
4
|
+
export * as Cloudflare from "./cloudflare";
|
|
5
|
+
export { CloudflareAIGateway, CloudflareWorkersAI } from "./cloudflare";
|
|
6
|
+
export * as GitHubCopilot from "./github-copilot";
|
|
7
|
+
export * as Google from "./google";
|
|
8
|
+
export * as OpenAI from "./openai";
|
|
9
|
+
export * as OpenAICompatible from "./openai-compatible";
|
|
10
|
+
export * as OpenRouter from "./openrouter";
|
|
11
|
+
export * as XAI from "./xai";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * as Anthropic from "./anthropic";
|
|
2
|
+
export * as AmazonBedrock from "./amazon-bedrock";
|
|
3
|
+
export * as Azure from "./azure";
|
|
4
|
+
export * as Cloudflare from "./cloudflare";
|
|
5
|
+
export { CloudflareAIGateway, CloudflareWorkersAI } from "./cloudflare";
|
|
6
|
+
export * as GitHubCopilot from "./github-copilot";
|
|
7
|
+
export * as Google from "./google";
|
|
8
|
+
export * as OpenAI from "./openai";
|
|
9
|
+
export * as OpenAICompatible from "./openai-compatible";
|
|
10
|
+
export * as OpenRouter from "./openrouter";
|
|
11
|
+
export * as XAI from "./xai";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface OpenAICompatibleProfile {
|
|
2
|
+
readonly provider: string;
|
|
3
|
+
readonly baseURL: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const profiles: {
|
|
6
|
+
readonly baseten: {
|
|
7
|
+
readonly provider: "baseten";
|
|
8
|
+
readonly baseURL: "https://inference.baseten.co/v1";
|
|
9
|
+
};
|
|
10
|
+
readonly cerebras: {
|
|
11
|
+
readonly provider: "cerebras";
|
|
12
|
+
readonly baseURL: "https://api.cerebras.ai/v1";
|
|
13
|
+
};
|
|
14
|
+
readonly deepinfra: {
|
|
15
|
+
readonly provider: "deepinfra";
|
|
16
|
+
readonly baseURL: "https://api.deepinfra.com/v1/openai";
|
|
17
|
+
};
|
|
18
|
+
readonly deepseek: {
|
|
19
|
+
readonly provider: "deepseek";
|
|
20
|
+
readonly baseURL: "https://api.deepseek.com/v1";
|
|
21
|
+
};
|
|
22
|
+
readonly fireworks: {
|
|
23
|
+
readonly provider: "fireworks";
|
|
24
|
+
readonly baseURL: "https://api.fireworks.ai/inference/v1";
|
|
25
|
+
};
|
|
26
|
+
readonly groq: {
|
|
27
|
+
readonly provider: "groq";
|
|
28
|
+
readonly baseURL: "https://api.groq.com/openai/v1";
|
|
29
|
+
};
|
|
30
|
+
readonly openrouter: {
|
|
31
|
+
readonly provider: "openrouter";
|
|
32
|
+
readonly baseURL: "https://openrouter.ai/api/v1";
|
|
33
|
+
};
|
|
34
|
+
readonly togetherai: {
|
|
35
|
+
readonly provider: "togetherai";
|
|
36
|
+
readonly baseURL: "https://api.together.xyz/v1";
|
|
37
|
+
};
|
|
38
|
+
readonly xai: {
|
|
39
|
+
readonly provider: "xai";
|
|
40
|
+
readonly baseURL: "https://api.x.ai/v1";
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export declare const byProvider: Record<string, OpenAICompatibleProfile>;
|
|
44
|
+
//# sourceMappingURL=openai-compatible-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible-profile.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compatible-profile.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUuC,CAAA;AAE5D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAE9D,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const profiles = {
|
|
2
|
+
baseten: { provider: "baseten", baseURL: "https://inference.baseten.co/v1" },
|
|
3
|
+
cerebras: { provider: "cerebras", baseURL: "https://api.cerebras.ai/v1" },
|
|
4
|
+
deepinfra: { provider: "deepinfra", baseURL: "https://api.deepinfra.com/v1/openai" },
|
|
5
|
+
deepseek: { provider: "deepseek", baseURL: "https://api.deepseek.com/v1" },
|
|
6
|
+
fireworks: { provider: "fireworks", baseURL: "https://api.fireworks.ai/inference/v1" },
|
|
7
|
+
groq: { provider: "groq", baseURL: "https://api.groq.com/openai/v1" },
|
|
8
|
+
openrouter: { provider: "openrouter", baseURL: "https://openrouter.ai/api/v1" },
|
|
9
|
+
togetherai: { provider: "togetherai", baseURL: "https://api.together.xyz/v1" },
|
|
10
|
+
xai: { provider: "xai", baseURL: "https://api.x.ai/v1" },
|
|
11
|
+
};
|
|
12
|
+
export const byProvider = Object.fromEntries(Object.values(profiles).map((profile) => [profile.provider, profile]));
|
|
13
|
+
//# sourceMappingURL=openai-compatible-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible-profile.js","sourceRoot":"","sources":["../../src/providers/openai-compatible-profile.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,iCAAiC,EAAE;IAC5E,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,EAAE;IACzE,SAAS,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,qCAAqC,EAAE;IACpF,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,6BAA6B,EAAE;IAC1E,SAAS,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,uCAAuC,EAAE;IACtF,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gCAAgC,EAAE;IACrE,UAAU,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8BAA8B,EAAE;IAC/E,UAAU,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,6BAA6B,EAAE;IAC9E,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE;CACE,CAAA;AAE5D,MAAM,CAAC,MAAM,UAAU,GAA4C,MAAM,CAAC,WAAW,CACnF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CACtE,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type ModelID } from "../schema";
|
|
2
|
+
import type { RouteDefaultsInput } from "../route/client";
|
|
3
|
+
import { type ProviderAuthOption } from "../route/auth-options";
|
|
4
|
+
export declare const id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
5
|
+
type GenericModelOptions = RouteDefaultsInput & ProviderAuthOption<"optional"> & {
|
|
6
|
+
readonly provider?: string;
|
|
7
|
+
readonly baseURL: string;
|
|
8
|
+
};
|
|
9
|
+
export type FamilyModelOptions = RouteDefaultsInput & ProviderAuthOption<"optional"> & {
|
|
10
|
+
readonly baseURL?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const routes: import("../route").Route<unknown, import("../route/transport/http").HttpPrepared<string>>[];
|
|
13
|
+
export declare const configure: (input: GenericModelOptions) => {
|
|
14
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
15
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
16
|
+
configure: (input: GenericModelOptions) => /*elided*/ any;
|
|
17
|
+
};
|
|
18
|
+
export declare const provider: {
|
|
19
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
20
|
+
configure: (input: GenericModelOptions) => {
|
|
21
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
22
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
23
|
+
configure: /*elided*/ any;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare const baseten: {
|
|
27
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
28
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
29
|
+
configure: (input?: FamilyModelOptions) => /*elided*/ any;
|
|
30
|
+
};
|
|
31
|
+
export declare const cerebras: {
|
|
32
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
33
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
34
|
+
configure: (input?: FamilyModelOptions) => /*elided*/ any;
|
|
35
|
+
};
|
|
36
|
+
export declare const deepinfra: {
|
|
37
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
38
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
39
|
+
configure: (input?: FamilyModelOptions) => /*elided*/ any;
|
|
40
|
+
};
|
|
41
|
+
export declare const deepseek: {
|
|
42
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
43
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
44
|
+
configure: (input?: FamilyModelOptions) => /*elided*/ any;
|
|
45
|
+
};
|
|
46
|
+
export declare const fireworks: {
|
|
47
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
48
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
49
|
+
configure: (input?: FamilyModelOptions) => /*elided*/ any;
|
|
50
|
+
};
|
|
51
|
+
export declare const groq: {
|
|
52
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
53
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
54
|
+
configure: (input?: FamilyModelOptions) => /*elided*/ any;
|
|
55
|
+
};
|
|
56
|
+
export declare const togetherai: {
|
|
57
|
+
id: string & import("effect/Brand").Brand<"LLM.ProviderID">;
|
|
58
|
+
model: (modelID: string | ModelID) => import("..").Model;
|
|
59
|
+
configure: (input?: FamilyModelOptions) => /*elided*/ any;
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=openai-compatible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG5E,eAAO,MAAM,EAAE,yDAAuC,CAAA;AAEtD,KAAK,mBAAmB,GAAG,kBAAkB,GAC3C,kBAAkB,CAAC,UAAU,CAAC,GAAG;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAEH,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GACjD,kBAAkB,CAAC,UAAU,CAAC,GAAG;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAEH,eAAO,MAAM,MAAM,6FAA+B,CAAA;AAElD,eAAO,MAAM,SAAS,GAAI,OAAO,mBAAmB;;qBAW/B,MAAM,GAAG,OAAO;uBAXJ,mBAAmB;CAcnD,CAAA;AAkBD,eAAO,MAAM,QAAQ;;uBAhCY,mBAAmB;;yBAW/B,MAAM,GAAG,OAAO;;;CAwBpC,CAAA;AAED,eAAO,MAAM,OAAO;;qBA1BC,MAAM,GAAG,OAAO;wBAMF,kBAAkB;CAoBN,CAAA;AAC/C,eAAO,MAAM,QAAQ;;qBA3BA,MAAM,GAAG,OAAO;wBAMF,kBAAkB;CAqBJ,CAAA;AACjD,eAAO,MAAM,SAAS;;qBA5BD,MAAM,GAAG,OAAO;wBAMF,kBAAkB;CAsBF,CAAA;AACnD,eAAO,MAAM,QAAQ;;qBA7BA,MAAM,GAAG,OAAO;wBAMF,kBAAkB;CAuBJ,CAAA;AACjD,eAAO,MAAM,SAAS;;qBA9BD,MAAM,GAAG,OAAO;wBAMF,kBAAkB;CAwBF,CAAA;AACnD,eAAO,MAAM,IAAI;;qBA/BI,MAAM,GAAG,OAAO;wBAMF,kBAAkB;CAyBZ,CAAA;AACzC,eAAO,MAAM,UAAU;;qBAhCF,MAAM,GAAG,OAAO;wBAMF,kBAAkB;CA0BA,CAAA"}
|