@effect/ai-openrouter 4.0.0-beta.7 → 4.0.0-beta.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Generated.d.ts +171 -92
- package/dist/Generated.d.ts.map +1 -1
- package/dist/Generated.js +60 -31
- package/dist/Generated.js.map +1 -1
- package/dist/OpenRouterClient.d.ts +46 -13
- package/dist/OpenRouterClient.d.ts.map +1 -1
- package/dist/OpenRouterClient.js +8 -8
- package/dist/OpenRouterClient.js.map +1 -1
- package/dist/OpenRouterConfig.d.ts +47 -10
- package/dist/OpenRouterConfig.d.ts.map +1 -1
- package/dist/OpenRouterConfig.js +33 -7
- package/dist/OpenRouterConfig.js.map +1 -1
- package/dist/OpenRouterError.d.ts +166 -35
- package/dist/OpenRouterError.d.ts.map +1 -1
- package/dist/OpenRouterError.js +1 -1
- package/dist/OpenRouterLanguageModel.d.ts +272 -19
- package/dist/OpenRouterLanguageModel.d.ts.map +1 -1
- package/dist/OpenRouterLanguageModel.js +257 -240
- package/dist/OpenRouterLanguageModel.js.map +1 -1
- package/dist/index.d.ts +66 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +66 -6
- package/dist/index.js.map +1 -1
- package/dist/internal/errors.js +4 -4
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/utilities.js +0 -1
- package/dist/internal/utilities.js.map +1 -1
- package/package.json +3 -3
- package/src/Generated.ts +123 -53
- package/src/OpenRouterClient.ts +47 -14
- package/src/OpenRouterConfig.ts +56 -13
- package/src/OpenRouterError.ts +168 -35
- package/src/OpenRouterLanguageModel.ts +501 -245
- package/src/index.ts +66 -6
- package/src/internal/errors.ts +6 -4
- package/src/internal/utilities.ts +0 -1
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The `OpenRouterClient` module provides an Effect service for calling
|
|
3
|
+
* OpenRouter's chat completions API. It wraps the generated OpenRouter HTTP
|
|
4
|
+
* client with Effect-native constructors, layers, typed errors, and streaming
|
|
5
|
+
* support.
|
|
6
|
+
*
|
|
7
|
+
* **Common tasks**
|
|
8
|
+
*
|
|
9
|
+
* - Build a client from explicit options with {@link make}
|
|
10
|
+
* - Provide the client to an application with {@link layer} or {@link layerConfig}
|
|
11
|
+
* - Create non-streaming chat completions with {@link Service.createChatCompletion}
|
|
12
|
+
* - Create server-sent event chat completion streams with
|
|
13
|
+
* {@link Service.createChatCompletionStream}
|
|
14
|
+
* - Customize authentication, base URL, OpenRouter ranking headers, or the
|
|
15
|
+
* underlying HTTP client through {@link Options}
|
|
16
|
+
*
|
|
17
|
+
* **Gotchas**
|
|
18
|
+
*
|
|
19
|
+
* - Streaming requests are sent directly to `/chat/completions` with `stream`
|
|
20
|
+
* and `stream_options.include_usage` enabled by this module.
|
|
21
|
+
* - OpenRouter API failures, HTTP client failures, and schema decoding failures
|
|
22
|
+
* are mapped into `AiError` values for the exported service methods.
|
|
23
|
+
*
|
|
24
|
+
* @since 4.0.0
|
|
3
25
|
*/
|
|
4
26
|
import type * as Config from "effect/Config";
|
|
27
|
+
import * as Context from "effect/Context";
|
|
5
28
|
import * as Effect from "effect/Effect";
|
|
6
29
|
import * as Layer from "effect/Layer";
|
|
7
30
|
import type * as Redacted from "effect/Redacted";
|
|
8
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
9
31
|
import * as Stream from "effect/Stream";
|
|
10
32
|
import type * as AiError from "effect/unstable/ai/AiError";
|
|
11
33
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
@@ -14,11 +36,13 @@ import * as Generated from "./Generated.ts";
|
|
|
14
36
|
/**
|
|
15
37
|
* The OpenRouter client service interface.
|
|
16
38
|
*
|
|
39
|
+
* **Details**
|
|
40
|
+
*
|
|
17
41
|
* Provides methods for interacting with OpenRouter's Chat Completions API,
|
|
18
42
|
* including both synchronous and streaming message creation.
|
|
19
43
|
*
|
|
20
|
-
* @since 1.0.0
|
|
21
44
|
* @category models
|
|
45
|
+
* @since 4.0.0
|
|
22
46
|
*/
|
|
23
47
|
export interface Service {
|
|
24
48
|
readonly client: Generated.OpenRouterClient;
|
|
@@ -32,24 +56,31 @@ export interface Service {
|
|
|
32
56
|
], AiError.AiError>;
|
|
33
57
|
}
|
|
34
58
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
59
|
+
* Decoded `data` payload from an OpenRouter chat completion streaming chunk.
|
|
60
|
+
*
|
|
61
|
+
* **Details**
|
|
62
|
+
*
|
|
63
|
+
* The payload contains streamed choices, model metadata, optional usage, and may
|
|
64
|
+
* include an OpenRouter error object for a streamed response.
|
|
65
|
+
*
|
|
66
|
+
* @category models
|
|
67
|
+
* @since 4.0.0
|
|
37
68
|
*/
|
|
38
69
|
export type ChatStreamingResponseChunkData = typeof Generated.ChatStreamingResponseChunk.fields.data.Type;
|
|
39
|
-
declare const OpenRouterClient_base:
|
|
70
|
+
declare const OpenRouterClient_base: Context.ServiceClass<OpenRouterClient, "@effect/ai-openrouter/OpenRouterClient", Service>;
|
|
40
71
|
/**
|
|
41
72
|
* Service identifier for the OpenRouter client.
|
|
42
73
|
*
|
|
43
|
-
* @
|
|
44
|
-
* @
|
|
74
|
+
* @category services
|
|
75
|
+
* @since 4.0.0
|
|
45
76
|
*/
|
|
46
77
|
export declare class OpenRouterClient extends OpenRouterClient_base {
|
|
47
78
|
}
|
|
48
79
|
/**
|
|
49
80
|
* Configuration options for creating an OpenRouter client.
|
|
50
81
|
*
|
|
51
|
-
* @since 1.0.0
|
|
52
82
|
* @category models
|
|
83
|
+
* @since 4.0.0
|
|
53
84
|
*/
|
|
54
85
|
export type Options = {
|
|
55
86
|
readonly apiKey?: Redacted.Redacted<string> | undefined;
|
|
@@ -65,6 +96,8 @@ export type Options = {
|
|
|
65
96
|
/**
|
|
66
97
|
* Optional transformer for the underlying HTTP client.
|
|
67
98
|
*
|
|
99
|
+
* **When to use**
|
|
100
|
+
*
|
|
68
101
|
* Use this to add middleware, logging, or custom request/response handling.
|
|
69
102
|
*/
|
|
70
103
|
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
@@ -72,29 +105,29 @@ export type Options = {
|
|
|
72
105
|
/**
|
|
73
106
|
* Creates an OpenRouter client service with the given options.
|
|
74
107
|
*
|
|
75
|
-
* @since 1.0.0
|
|
76
108
|
* @category constructors
|
|
109
|
+
* @since 4.0.0
|
|
77
110
|
*/
|
|
78
111
|
export declare const make: (options: Options) => Effect.Effect<Service, never, HttpClient.HttpClient>;
|
|
79
112
|
/**
|
|
80
113
|
* Creates a layer for the OpenRouter client with the given options.
|
|
81
114
|
*
|
|
82
|
-
* @since 1.0.0
|
|
83
115
|
* @category layers
|
|
116
|
+
* @since 4.0.0
|
|
84
117
|
*/
|
|
85
118
|
export declare const layer: (options: Options) => Layer.Layer<OpenRouterClient, never, HttpClient.HttpClient>;
|
|
86
119
|
/**
|
|
87
120
|
* Creates a layer for the OpenRouter client, loading the requisite
|
|
88
121
|
* configuration via Effect's `Config` module.
|
|
89
122
|
*
|
|
90
|
-
* @since 1.0.0
|
|
91
123
|
* @category layers
|
|
124
|
+
* @since 4.0.0
|
|
92
125
|
*/
|
|
93
126
|
export declare const layerConfig: (options?: {
|
|
94
127
|
/**
|
|
95
128
|
* The config value to load for the API key.
|
|
96
129
|
*/
|
|
97
|
-
readonly apiKey?: Config.Config<Redacted.Redacted<string
|
|
130
|
+
readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
98
131
|
/**
|
|
99
132
|
* The config value to load for the API URL.
|
|
100
133
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterClient.d.ts","sourceRoot":"","sources":["../src/OpenRouterClient.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OpenRouterClient.d.ts","sourceRoot":"","sources":["../src/OpenRouterClient.ts"],"names":[],"mappings":"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"}
|
package/dist/OpenRouterClient.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
1
2
|
import * as Effect from "effect/Effect";
|
|
2
3
|
import { identity } from "effect/Function";
|
|
3
4
|
import * as Layer from "effect/Layer";
|
|
4
5
|
import * as Predicate from "effect/Predicate";
|
|
5
6
|
import * as Schema from "effect/Schema";
|
|
6
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
7
7
|
import * as Stream from "effect/Stream";
|
|
8
8
|
import * as Sse from "effect/unstable/encoding/Sse";
|
|
9
9
|
import * as HttpBody from "effect/unstable/http/HttpBody";
|
|
@@ -18,22 +18,22 @@ import { OpenRouterConfig } from "./OpenRouterConfig.js";
|
|
|
18
18
|
/**
|
|
19
19
|
* Service identifier for the OpenRouter client.
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
22
|
-
* @
|
|
21
|
+
* @category services
|
|
22
|
+
* @since 4.0.0
|
|
23
23
|
*/
|
|
24
|
-
export class OpenRouterClient extends /*#__PURE__*/
|
|
24
|
+
export class OpenRouterClient extends /*#__PURE__*/Context.Service()("@effect/ai-openrouter/OpenRouterClient") {}
|
|
25
25
|
// =============================================================================
|
|
26
26
|
// Constructor
|
|
27
27
|
// =============================================================================
|
|
28
28
|
/**
|
|
29
29
|
* Creates an OpenRouter client service with the given options.
|
|
30
30
|
*
|
|
31
|
-
* @since 1.0.0
|
|
32
31
|
* @category constructors
|
|
32
|
+
* @since 4.0.0
|
|
33
33
|
*/
|
|
34
34
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
35
35
|
const baseClient = yield* HttpClient.HttpClient;
|
|
36
|
-
const httpClient = baseClient.pipe(HttpClient.mapRequest(request => request.pipe(HttpClientRequest.prependUrl(options.apiUrl ?? "https://openrouter.ai/api/v1"), options.apiKey ? HttpClientRequest.bearerToken(options.apiKey) : identity, options.siteReferrer ? HttpClientRequest.setHeader("HTTP-
|
|
36
|
+
const httpClient = baseClient.pipe(HttpClient.mapRequest(request => request.pipe(HttpClientRequest.prependUrl(options.apiUrl ?? "https://openrouter.ai/api/v1"), options.apiKey ? HttpClientRequest.bearerToken(options.apiKey) : identity, options.siteReferrer ? HttpClientRequest.setHeader("HTTP-Referer", options.siteReferrer) : identity, options.siteTitle ? HttpClientRequest.setHeader("X-Title", options.siteTitle) : identity, HttpClientRequest.acceptJson)), options.transformClient ?? identity);
|
|
37
37
|
const httpClientOk = HttpClient.filterStatusOk(httpClient);
|
|
38
38
|
const client = Generated.make(httpClient, {
|
|
39
39
|
transformClient: Effect.fnUntraced(function* (client) {
|
|
@@ -87,16 +87,16 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
87
87
|
/**
|
|
88
88
|
* Creates a layer for the OpenRouter client with the given options.
|
|
89
89
|
*
|
|
90
|
-
* @since 1.0.0
|
|
91
90
|
* @category layers
|
|
91
|
+
* @since 4.0.0
|
|
92
92
|
*/
|
|
93
93
|
export const layer = options => Layer.effect(OpenRouterClient, make(options));
|
|
94
94
|
/**
|
|
95
95
|
* Creates a layer for the OpenRouter client, loading the requisite
|
|
96
96
|
* configuration via Effect's `Config` module.
|
|
97
97
|
*
|
|
98
|
-
* @since 1.0.0
|
|
99
98
|
* @category layers
|
|
99
|
+
* @since 4.0.0
|
|
100
100
|
*/
|
|
101
101
|
export const layerConfig = options => Layer.effect(OpenRouterClient, Effect.gen(function* () {
|
|
102
102
|
const apiKey = Predicate.isNotUndefined(options?.apiKey) ? yield* options.apiKey : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterClient.js","names":["Effect","identity","Layer","Predicate","Schema","
|
|
1
|
+
{"version":3,"file":"OpenRouterClient.js","names":["Context","Effect","identity","Layer","Predicate","Schema","Stream","Sse","HttpBody","HttpClient","HttpClientRequest","Generated","Errors","OpenRouterConfig","OpenRouterClient","Service","make","fnUntraced","options","baseClient","httpClient","pipe","mapRequest","request","prependUrl","apiUrl","apiKey","bearerToken","siteReferrer","setHeader","siteTitle","acceptJson","transformClient","httpClientOk","filterStatusOk","client","config","getOrUndefined","isNotUndefined","createChatCompletion","payload","sendChatCompletionRequest","includeResponse","catchTags","SendChatCompletionRequest400","error","fail","mapClientError","SendChatCompletionRequest401","SendChatCompletionRequest429","SendChatCompletionRequest500","HttpClientError","mapHttpClientError","SchemaError","mapSchemaError","buildChatCompletionStream","response","stream","decodeText","pipeThroughChannel","decode","mapEffect","event","decodeChatCompletionSseData","data","takeWhile","Retry","die","fromEffect","createChatCompletionStream","execute","post","body","jsonUnsafe","stream_options","include_usage","map","catchTag","of","layer","effect","layerConfig","gen","undefined","ChatStreamingResponseChunkDataFromString","fromJsonString","ChatStreamingResponseChunk","fields","decodeChatStreamingResponseChunkData","decodeUnknownEffect","succeed"],"sources":["../src/OpenRouterClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,45 +1,82 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The `OpenRouterConfig` module provides contextual configuration for the
|
|
3
|
+
* OpenRouter provider integration. It is used to customize the HTTP client that
|
|
4
|
+
* backs OpenRouter requests without rebuilding the provider layer itself.
|
|
5
|
+
*
|
|
6
|
+
* Use {@link withClientTransform} when a single effect, workflow, or scoped
|
|
7
|
+
* portion of an application needs to add cross-cutting HTTP client behavior
|
|
8
|
+
* such as request logging, retries, proxy routing, additional headers, or test
|
|
9
|
+
* doubles. The configuration is read from the current Effect context, so the
|
|
10
|
+
* transform only applies where the returned effect is run with that context.
|
|
11
|
+
*
|
|
12
|
+
* **Gotchas**
|
|
13
|
+
*
|
|
14
|
+
* - Each call to {@link withClientTransform} replaces the current client
|
|
15
|
+
* transform for the provided effect; compose transforms manually when both
|
|
16
|
+
* behaviors should apply.
|
|
17
|
+
* - The transform receives and returns an `HttpClient`, so it should preserve
|
|
18
|
+
* the OpenRouter client contract while adding behavior around it.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
3
21
|
*/
|
|
22
|
+
import * as Context from "effect/Context";
|
|
4
23
|
import * as Effect from "effect/Effect";
|
|
5
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
6
24
|
import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
7
|
-
declare const OpenRouterConfig_base:
|
|
25
|
+
declare const OpenRouterConfig_base: Context.ServiceClass<OpenRouterConfig, "@effect/ai-openrouter/OpenRouterConfig", OpenRouterConfig.Service>;
|
|
8
26
|
/**
|
|
9
|
-
*
|
|
27
|
+
* Context service carrying scoped OpenRouter provider configuration for client
|
|
28
|
+
* operations.
|
|
29
|
+
*
|
|
10
30
|
* @category services
|
|
31
|
+
* @since 4.0.0
|
|
11
32
|
*/
|
|
12
33
|
export declare class OpenRouterConfig extends OpenRouterConfig_base {
|
|
13
34
|
/**
|
|
14
|
-
*
|
|
35
|
+
* Gets the configured OpenRouter service from the current context when present.
|
|
36
|
+
*
|
|
37
|
+
* @since 4.0.0
|
|
15
38
|
*/
|
|
16
39
|
static readonly getOrUndefined: Effect.Effect<typeof OpenRouterConfig.Service | undefined>;
|
|
17
40
|
}
|
|
18
41
|
/**
|
|
19
|
-
*
|
|
42
|
+
* Types associated with the `OpenRouterConfig` context service.
|
|
43
|
+
*
|
|
44
|
+
* @since 4.0.0
|
|
20
45
|
*/
|
|
21
46
|
export declare namespace OpenRouterConfig {
|
|
22
47
|
/**
|
|
23
|
-
*
|
|
48
|
+
* Configuration values read by OpenRouter provider operations when resolving
|
|
49
|
+
* the generated HTTP client.
|
|
50
|
+
*
|
|
24
51
|
* @category models
|
|
52
|
+
* @since 4.0.0
|
|
25
53
|
*/
|
|
26
54
|
interface Service {
|
|
27
55
|
readonly transformClient?: ((client: HttpClient) => HttpClient) | undefined;
|
|
28
56
|
}
|
|
29
57
|
}
|
|
30
58
|
/**
|
|
31
|
-
*
|
|
59
|
+
* Provides a scoped transform for the OpenRouter HTTP client used by provider
|
|
60
|
+
* operations.
|
|
61
|
+
*
|
|
32
62
|
* @category configuration
|
|
63
|
+
* @since 4.0.0
|
|
33
64
|
*/
|
|
34
65
|
export declare const withClientTransform: {
|
|
35
66
|
/**
|
|
36
|
-
*
|
|
67
|
+
* Provides a scoped transform for the OpenRouter HTTP client used by provider
|
|
68
|
+
* operations.
|
|
69
|
+
*
|
|
37
70
|
* @category configuration
|
|
71
|
+
* @since 4.0.0
|
|
38
72
|
*/
|
|
39
73
|
(transform: (client: HttpClient) => HttpClient): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
40
74
|
/**
|
|
41
|
-
*
|
|
75
|
+
* Provides a scoped transform for the OpenRouter HTTP client used by provider
|
|
76
|
+
* operations.
|
|
77
|
+
*
|
|
42
78
|
* @category configuration
|
|
79
|
+
* @since 4.0.0
|
|
43
80
|
*/
|
|
44
81
|
<A, E, R>(self: Effect.Effect<A, E, R>, transform: (client: HttpClient) => HttpClient): Effect.Effect<A, E, R>;
|
|
45
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterConfig.d.ts","sourceRoot":"","sources":["../src/OpenRouterConfig.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OpenRouterConfig.d.ts","sourceRoot":"","sources":["../src/OpenRouterConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;;AAEjE;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,qBAGO;IAC3C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC,CAGzF;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC;;;;;;OAMG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,GAAG,SAAS,CAAA;KAC5E;CACF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAChC;;;;;;OAMG;IACH,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAClH;;;;;;OAMG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CA4B1B,CAAA"}
|
package/dist/OpenRouterConfig.js
CHANGED
|
@@ -1,22 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The `OpenRouterConfig` module provides contextual configuration for the
|
|
3
|
+
* OpenRouter provider integration. It is used to customize the HTTP client that
|
|
4
|
+
* backs OpenRouter requests without rebuilding the provider layer itself.
|
|
5
|
+
*
|
|
6
|
+
* Use {@link withClientTransform} when a single effect, workflow, or scoped
|
|
7
|
+
* portion of an application needs to add cross-cutting HTTP client behavior
|
|
8
|
+
* such as request logging, retries, proxy routing, additional headers, or test
|
|
9
|
+
* doubles. The configuration is read from the current Effect context, so the
|
|
10
|
+
* transform only applies where the returned effect is run with that context.
|
|
11
|
+
*
|
|
12
|
+
* **Gotchas**
|
|
13
|
+
*
|
|
14
|
+
* - Each call to {@link withClientTransform} replaces the current client
|
|
15
|
+
* transform for the provided effect; compose transforms manually when both
|
|
16
|
+
* behaviors should apply.
|
|
17
|
+
* - The transform receives and returns an `HttpClient`, so it should preserve
|
|
18
|
+
* the OpenRouter client contract while adding behavior around it.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
3
21
|
*/
|
|
22
|
+
import * as Context from "effect/Context";
|
|
4
23
|
import * as Effect from "effect/Effect";
|
|
5
24
|
import { dual } from "effect/Function";
|
|
6
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
7
25
|
/**
|
|
8
|
-
*
|
|
26
|
+
* Context service carrying scoped OpenRouter provider configuration for client
|
|
27
|
+
* operations.
|
|
28
|
+
*
|
|
9
29
|
* @category services
|
|
30
|
+
* @since 4.0.0
|
|
10
31
|
*/
|
|
11
|
-
export class OpenRouterConfig extends /*#__PURE__*/
|
|
32
|
+
export class OpenRouterConfig extends /*#__PURE__*/Context.Service()("@effect/ai-openrouter/OpenRouterConfig") {
|
|
12
33
|
/**
|
|
13
|
-
*
|
|
34
|
+
* Gets the configured OpenRouter service from the current context when present.
|
|
35
|
+
*
|
|
36
|
+
* @since 4.0.0
|
|
14
37
|
*/
|
|
15
|
-
static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.
|
|
38
|
+
static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.context(), services => services.mapUnsafe.get(OpenRouterConfig.key));
|
|
16
39
|
}
|
|
17
40
|
/**
|
|
18
|
-
*
|
|
41
|
+
* Provides a scoped transform for the OpenRouter HTTP client used by provider
|
|
42
|
+
* operations.
|
|
43
|
+
*
|
|
19
44
|
* @category configuration
|
|
45
|
+
* @since 4.0.0
|
|
20
46
|
*/
|
|
21
47
|
export const withClientTransform = /*#__PURE__*/dual(2, (self, transformClient) => Effect.flatMap(OpenRouterConfig.getOrUndefined, config => Effect.provideService(self, OpenRouterConfig, {
|
|
22
48
|
...config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterConfig.js","names":["
|
|
1
|
+
{"version":3,"file":"OpenRouterConfig.js","names":["Context","Effect","dual","OpenRouterConfig","Service","getOrUndefined","map","context","services","mapUnsafe","get","key","withClientTransform","self","transformClient","flatMap","config","provideService"],"sources":["../src/OpenRouterConfig.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AAGtC;;;;;;;AAOA,OAAM,MAAOC,gBAAiB,sBAAQH,OAAO,CAACI,OAAO,EAGlD,CAAC,wCAAwC,CAAC;EAC3C;;;;;EAKA,OAAgBC,cAAc,gBAA+DJ,MAAM,CAACK,GAAG,cACrGL,MAAM,CAACM,OAAO,EAAS,EACtBC,QAAQ,IAAKA,QAAQ,CAACC,SAAS,CAACC,GAAG,CAACP,gBAAgB,CAACQ,GAAG,CAAC,CAC3D;;AAqBH;;;;;;;AAOA,OAAO,MAAMC,mBAAmB,gBAoB5BV,IAAI,CAqBN,CAAC,EACD,CAACW,IAAI,EAAEC,eAAe,KACpBb,MAAM,CAACc,OAAO,CACZZ,gBAAgB,CAACE,cAAc,EAC9BW,MAAM,IAAKf,MAAM,CAACgB,cAAc,CAACJ,IAAI,EAAEV,gBAAgB,EAAE;EAAE,GAAGa,MAAM;EAAEF;AAAe,CAAE,CAAC,CAC1F,CACJ","ignoreList":[]}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* Provides OpenRouter-specific metadata fields for AI error types through
|
|
5
5
|
* module augmentation, enabling typed access to OpenRouter error details.
|
|
6
6
|
*
|
|
7
|
-
* @since
|
|
7
|
+
* @since 4.0.0
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
10
10
|
* OpenRouter-specific error metadata fields.
|
|
11
11
|
*
|
|
12
|
-
* @since 1.0.0
|
|
13
12
|
* @category models
|
|
13
|
+
* @since 4.0.0
|
|
14
14
|
*/
|
|
15
15
|
export type OpenRouterErrorMetadata = {
|
|
16
16
|
/**
|
|
@@ -29,8 +29,8 @@ export type OpenRouterErrorMetadata = {
|
|
|
29
29
|
/**
|
|
30
30
|
* OpenRouter-specific rate limit metadata fields.
|
|
31
31
|
*
|
|
32
|
-
* @since 1.0.0
|
|
33
32
|
* @category models
|
|
33
|
+
* @since 4.0.0
|
|
34
34
|
*/
|
|
35
35
|
export type OpenRouterRateLimitMetadata = OpenRouterErrorMetadata & {
|
|
36
36
|
readonly limit: string | null;
|
|
@@ -39,45 +39,176 @@ export type OpenRouterRateLimitMetadata = OpenRouterErrorMetadata & {
|
|
|
39
39
|
readonly resetTokens: string | null;
|
|
40
40
|
};
|
|
41
41
|
declare module "effect/unstable/ai/AiError" {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
/**
|
|
43
|
+
* OpenRouter metadata attached to `RateLimitError` values.
|
|
44
|
+
*
|
|
45
|
+
* **Details**
|
|
46
|
+
*
|
|
47
|
+
* Captures OpenRouter error details together with rate limit header
|
|
48
|
+
* information from responses where the provider rejected the request because
|
|
49
|
+
* a limit was reached.
|
|
50
|
+
*
|
|
51
|
+
* @category configuration
|
|
52
|
+
* @since 4.0.0
|
|
53
|
+
*/
|
|
54
|
+
interface RateLimitErrorMetadata {
|
|
55
|
+
/**
|
|
56
|
+
* OpenRouter-specific details for the rate limit response.
|
|
57
|
+
*/
|
|
58
|
+
readonly openrouter?: OpenRouterRateLimitMetadata | null;
|
|
46
59
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
60
|
+
/**
|
|
61
|
+
* OpenRouter metadata attached to `QuotaExhaustedError` values.
|
|
62
|
+
*
|
|
63
|
+
* **Details**
|
|
64
|
+
*
|
|
65
|
+
* Preserves provider error details for failures caused by exhausted account,
|
|
66
|
+
* billing, or usage quota.
|
|
67
|
+
*
|
|
68
|
+
* @category configuration
|
|
69
|
+
* @since 4.0.0
|
|
70
|
+
*/
|
|
71
|
+
interface QuotaExhaustedErrorMetadata {
|
|
72
|
+
/**
|
|
73
|
+
* OpenRouter-specific details for the quota exhaustion response.
|
|
74
|
+
*/
|
|
75
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
51
76
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
77
|
+
/**
|
|
78
|
+
* OpenRouter metadata attached to `AuthenticationError` values.
|
|
79
|
+
*
|
|
80
|
+
* **Details**
|
|
81
|
+
*
|
|
82
|
+
* Preserves provider error details for failed API key, authorization, or
|
|
83
|
+
* permission checks.
|
|
84
|
+
*
|
|
85
|
+
* @category configuration
|
|
86
|
+
* @since 4.0.0
|
|
87
|
+
*/
|
|
88
|
+
interface AuthenticationErrorMetadata {
|
|
89
|
+
/**
|
|
90
|
+
* OpenRouter-specific details for the authentication failure.
|
|
91
|
+
*/
|
|
92
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* OpenRouter metadata attached to `ContentPolicyError` values.
|
|
96
|
+
*
|
|
97
|
+
* **Details**
|
|
98
|
+
*
|
|
99
|
+
* Preserves provider error details when OpenRouter rejects input or output
|
|
100
|
+
* because it violates a content policy.
|
|
101
|
+
*
|
|
102
|
+
* @category configuration
|
|
103
|
+
* @since 4.0.0
|
|
104
|
+
*/
|
|
105
|
+
interface ContentPolicyErrorMetadata {
|
|
106
|
+
/**
|
|
107
|
+
* OpenRouter-specific details for the content policy response.
|
|
108
|
+
*/
|
|
109
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* OpenRouter metadata attached to `InvalidRequestError` values.
|
|
113
|
+
*
|
|
114
|
+
* **Details**
|
|
115
|
+
*
|
|
116
|
+
* Preserves provider error details for malformed requests, unsupported
|
|
117
|
+
* parameters, or other request validation failures reported by OpenRouter.
|
|
118
|
+
*
|
|
119
|
+
* @category configuration
|
|
120
|
+
* @since 4.0.0
|
|
121
|
+
*/
|
|
122
|
+
interface InvalidRequestErrorMetadata {
|
|
123
|
+
/**
|
|
124
|
+
* OpenRouter-specific details for the invalid request response.
|
|
125
|
+
*/
|
|
126
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
56
127
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
128
|
+
/**
|
|
129
|
+
* OpenRouter metadata attached to `InternalProviderError` values.
|
|
130
|
+
*
|
|
131
|
+
* **Details**
|
|
132
|
+
*
|
|
133
|
+
* Preserves provider error details for OpenRouter-side failures such as
|
|
134
|
+
* transient server errors or overload responses.
|
|
135
|
+
*
|
|
136
|
+
* @category configuration
|
|
137
|
+
* @since 4.0.0
|
|
138
|
+
*/
|
|
139
|
+
interface InternalProviderErrorMetadata {
|
|
140
|
+
/**
|
|
141
|
+
* OpenRouter-specific details for the internal provider response.
|
|
142
|
+
*/
|
|
143
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
61
144
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
145
|
+
/**
|
|
146
|
+
* OpenRouter metadata attached to `InvalidOutputError` values.
|
|
147
|
+
*
|
|
148
|
+
* **Details**
|
|
149
|
+
*
|
|
150
|
+
* Preserves provider error details when an OpenRouter response cannot be
|
|
151
|
+
* parsed or validated as the expected output.
|
|
152
|
+
*
|
|
153
|
+
* @category configuration
|
|
154
|
+
* @since 4.0.0
|
|
155
|
+
*/
|
|
156
|
+
interface InvalidOutputErrorMetadata {
|
|
157
|
+
/**
|
|
158
|
+
* OpenRouter-specific details for the invalid output response.
|
|
159
|
+
*/
|
|
160
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
66
161
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
162
|
+
/**
|
|
163
|
+
* OpenRouter metadata attached to `StructuredOutputError` values.
|
|
164
|
+
*
|
|
165
|
+
* **Details**
|
|
166
|
+
*
|
|
167
|
+
* Preserves provider error details when OpenRouter returns content that does
|
|
168
|
+
* not satisfy the requested structured output schema.
|
|
169
|
+
*
|
|
170
|
+
* @category configuration
|
|
171
|
+
* @since 4.0.0
|
|
172
|
+
*/
|
|
173
|
+
interface StructuredOutputErrorMetadata {
|
|
174
|
+
/**
|
|
175
|
+
* OpenRouter-specific details for the structured output failure.
|
|
176
|
+
*/
|
|
177
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
71
178
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
179
|
+
/**
|
|
180
|
+
* OpenRouter metadata attached to `UnsupportedSchemaError` values.
|
|
181
|
+
*
|
|
182
|
+
* **Details**
|
|
183
|
+
*
|
|
184
|
+
* Preserves provider error details when an unsupported schema failure is
|
|
185
|
+
* associated with an OpenRouter response.
|
|
186
|
+
*
|
|
187
|
+
* @category configuration
|
|
188
|
+
* @since 4.0.0
|
|
189
|
+
*/
|
|
190
|
+
interface UnsupportedSchemaErrorMetadata {
|
|
191
|
+
/**
|
|
192
|
+
* OpenRouter-specific details for the unsupported schema failure.
|
|
193
|
+
*/
|
|
194
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
76
195
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
196
|
+
/**
|
|
197
|
+
* OpenRouter metadata attached to `UnknownError` values.
|
|
198
|
+
*
|
|
199
|
+
* **Details**
|
|
200
|
+
*
|
|
201
|
+
* Preserves provider error details for OpenRouter failures that do not map
|
|
202
|
+
* cleanly to a more specific AI error category.
|
|
203
|
+
*
|
|
204
|
+
* @category configuration
|
|
205
|
+
* @since 4.0.0
|
|
206
|
+
*/
|
|
207
|
+
interface UnknownErrorMetadata {
|
|
208
|
+
/**
|
|
209
|
+
* OpenRouter-specific details for the unclassified provider failure.
|
|
210
|
+
*/
|
|
211
|
+
readonly openrouter?: OpenRouterErrorMetadata | null;
|
|
81
212
|
}
|
|
82
213
|
}
|
|
83
214
|
//# sourceMappingURL=OpenRouterError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterError.d.ts","sourceRoot":"","sources":["../src/OpenRouterError.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC1C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GAAG,uBAAuB,GAAG;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,OAAO,QAAQ,4BAA4B,CAAC;IAC1C,UAAiB,
|
|
1
|
+
{"version":3,"file":"OpenRouterError.d.ts","sourceRoot":"","sources":["../src/OpenRouterError.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC1C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GAAG,uBAAuB,GAAG;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,OAAO,QAAQ,4BAA4B,CAAC;IAC1C;;;;;;;;;;;OAWG;IACH,UAAiB,sBAAsB;QACrC;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAA;KACzD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,0BAA0B;QACzC;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,6BAA6B;QAC5C;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,0BAA0B;QACzC;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,6BAA6B;QAC5C;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,8BAA8B;QAC7C;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,oBAAoB;QACnC;;WAEG;QACH,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACrD;CACF"}
|