@opencode/schema 0.0.0-dev-20855 → 0.0.0-dev-20856
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/config/provider.d.ts +17 -2
- package/dist/config/provider.js +3 -0
- package/dist/model-compatibility.d.ts +30 -0
- package/dist/model-compatibility.js +23 -0
- package/dist/model.d.ts +2 -25
- package/dist/model.js +2 -20
- package/dist/provider.d.ts +16 -0
- package/dist/provider.js +3 -0
- package/package.json +1 -1
|
@@ -197,7 +197,7 @@ declare const Model_base: Schema.Class<Model, Schema.Struct<{
|
|
|
197
197
|
readonly family: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.Family">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.Family">>, never, never>;
|
|
198
198
|
readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
|
|
199
199
|
readonly compatibility: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
200
|
-
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>, never, never>;
|
|
200
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>, never, never>;
|
|
201
201
|
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
202
202
|
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
203
203
|
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
@@ -206,7 +206,7 @@ declare const Model_base: Schema.Class<Model, Schema.Struct<{
|
|
|
206
206
|
readonly supportsThinkingBlockBinding: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
207
207
|
readonly supportsEffortUpdates: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
208
208
|
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
209
|
-
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>, never, never>;
|
|
209
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>, never, never>;
|
|
210
210
|
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
211
211
|
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
212
212
|
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
@@ -280,6 +280,21 @@ declare const Info_base: Schema.Class<Info, Schema.Struct<{
|
|
|
280
280
|
readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
|
|
281
281
|
readonly env: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
|
|
282
282
|
readonly package: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
|
|
283
|
+
readonly compatibility: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
284
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>, never, never>;
|
|
285
|
+
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
286
|
+
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
287
|
+
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
288
|
+
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
289
|
+
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
290
|
+
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
291
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model-compatibility.js").ReasoningField, import("../model-compatibility.js").ReasoningField, never, never>>, never, never>;
|
|
292
|
+
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
293
|
+
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
294
|
+
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
295
|
+
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
296
|
+
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
297
|
+
}>>, never, never>;
|
|
283
298
|
}>, {}>;
|
|
284
299
|
export declare class Info extends Info_base {
|
|
285
300
|
}
|
package/dist/config/provider.js
CHANGED
|
@@ -2,6 +2,7 @@ export * as ConfigProvider from "./provider.js";
|
|
|
2
2
|
import { Schema } from "effect";
|
|
3
3
|
import { Money } from "../money.js";
|
|
4
4
|
import { Capabilities, Compatibility, Family, ID, VariantID } from "../model.js";
|
|
5
|
+
import { ProviderCompatibility } from "../model-compatibility.js";
|
|
5
6
|
import { Provider } from "../provider.js";
|
|
6
7
|
import { optional } from "../schema.js";
|
|
7
8
|
export const Settings = Schema.StructWithRest(Schema.Struct({
|
|
@@ -80,6 +81,8 @@ export class Info extends Schema.Class("Config.Provider")({
|
|
|
80
81
|
name: Schema.String.pipe(optional),
|
|
81
82
|
env: Schema.String.pipe(Schema.Array, optional),
|
|
82
83
|
package: Schema.String.pipe(optional),
|
|
84
|
+
// Defaults for every model of this provider; model compatibility overrides individual fields.
|
|
85
|
+
compatibility: ProviderCompatibility.pipe(optional),
|
|
83
86
|
...Overlays,
|
|
84
87
|
models: Schema.Record(Schema.String, Model).pipe(optional),
|
|
85
88
|
}) {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
export type ReasoningField = "reasoning" | "reasoning_content" | "reasoning_text" | (string & {});
|
|
3
|
+
export declare const ReasoningField: Schema.Codec<ReasoningField>;
|
|
4
|
+
export declare const MaxTokensField: Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>;
|
|
5
|
+
export type MaxTokensField = typeof MaxTokensField.Type;
|
|
6
|
+
export interface Compatibility extends Schema.Schema.Type<typeof Compatibility> {
|
|
7
|
+
}
|
|
8
|
+
export declare const Compatibility: Schema.Struct<{
|
|
9
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
|
|
10
|
+
/** Require every assistant message to include its reasoning field, even when empty. */
|
|
11
|
+
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
12
|
+
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
13
|
+
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
14
|
+
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
15
|
+
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
16
|
+
/** Supports Anthropic's thinking-prefix mismatch controls. Overrides model-ID detection. */
|
|
17
|
+
readonly supportsThinkingBlockBinding: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
18
|
+
/** Supports per-message effort updates. Overrides model-ID detection. */
|
|
19
|
+
readonly supportsEffortUpdates: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
20
|
+
}>;
|
|
21
|
+
export interface ProviderCompatibility extends Schema.Schema.Type<typeof ProviderCompatibility> {
|
|
22
|
+
}
|
|
23
|
+
export declare const ProviderCompatibility: Schema.Struct<{
|
|
24
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
|
|
25
|
+
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
26
|
+
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
27
|
+
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
28
|
+
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
29
|
+
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
30
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Schema, Struct } from "effect";
|
|
2
|
+
import { optional } from "./schema.js";
|
|
3
|
+
export const ReasoningField = Schema.Union([
|
|
4
|
+
Schema.Literals(["reasoning", "reasoning_content", "reasoning_text"]),
|
|
5
|
+
Schema.String,
|
|
6
|
+
]).annotate({ identifier: "Model.ReasoningField" });
|
|
7
|
+
export const MaxTokensField = Schema.Literals(["max_completion_tokens", "max_tokens"]).annotate({
|
|
8
|
+
identifier: "Model.MaxTokensField",
|
|
9
|
+
});
|
|
10
|
+
export const Compatibility = Schema.Struct({
|
|
11
|
+
reasoningField: ReasoningField.pipe(optional),
|
|
12
|
+
/** Require every assistant message to include its reasoning field, even when empty. */
|
|
13
|
+
requireReasoning: Schema.Boolean.pipe(optional),
|
|
14
|
+
maxTokensField: MaxTokensField.pipe(optional),
|
|
15
|
+
requireFinishReason: Schema.Boolean.pipe(optional),
|
|
16
|
+
requireAssistantAfterTool: Schema.Boolean.pipe(optional),
|
|
17
|
+
supportsPromptCacheKey: Schema.Boolean.pipe(optional),
|
|
18
|
+
/** Supports Anthropic's thinking-prefix mismatch controls. Overrides model-ID detection. */
|
|
19
|
+
supportsThinkingBlockBinding: Schema.Boolean.pipe(optional),
|
|
20
|
+
/** Supports per-message effort updates. Overrides model-ID detection. */
|
|
21
|
+
supportsEffortUpdates: Schema.Boolean.pipe(optional),
|
|
22
|
+
}).annotate({ identifier: "Model.Compatibility" });
|
|
23
|
+
export const ProviderCompatibility = Schema.Struct(Struct.omit(Compatibility.fields, ["supportsThinkingBlockBinding", "supportsEffortUpdates"])).annotate({ identifier: "Provider.Compatibility" });
|
package/dist/model.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * as Model from "./model.js";
|
|
2
2
|
import { Schema } from "effect";
|
|
3
3
|
import { Provider } from "./provider.js";
|
|
4
|
+
import { Compatibility, MaxTokensField, ReasoningField } from "./model-compatibility.js";
|
|
4
5
|
export declare const ID: Schema.brand<Schema.String, "Model.ID">;
|
|
5
6
|
export type ID = typeof ID.Type;
|
|
6
7
|
export declare const Event: {
|
|
@@ -98,12 +99,9 @@ export declare const Ref: Schema.Struct<{
|
|
|
98
99
|
};
|
|
99
100
|
export interface Ref extends Schema.Schema.Type<typeof Ref> {
|
|
100
101
|
}
|
|
102
|
+
export { Compatibility, MaxTokensField, ReasoningField };
|
|
101
103
|
export declare const Family: Schema.brand<Schema.String, "Model.Family">;
|
|
102
104
|
export type Family = typeof Family.Type;
|
|
103
|
-
export type ReasoningField = "reasoning" | "reasoning_content" | "reasoning_text" | (string & {});
|
|
104
|
-
export declare const ReasoningField: Schema.Codec<ReasoningField>;
|
|
105
|
-
export declare const MaxTokensField: Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>;
|
|
106
|
-
export type MaxTokensField = typeof MaxTokensField.Type;
|
|
107
105
|
export declare const Settings: Schema.StructWithRest<Schema.Struct<{
|
|
108
106
|
readonly compaction: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Union<readonly [Schema.Struct<{
|
|
109
107
|
readonly type: Schema.Literal<"summary">;
|
|
@@ -141,21 +139,6 @@ export declare const Overlays: {
|
|
|
141
139
|
headers: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.String>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>, never, never>;
|
|
142
140
|
body: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Any>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Any>>, never, never>;
|
|
143
141
|
};
|
|
144
|
-
export interface Compatibility extends Schema.Schema.Type<typeof Compatibility> {
|
|
145
|
-
}
|
|
146
|
-
export declare const Compatibility: Schema.Struct<{
|
|
147
|
-
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
|
|
148
|
-
/** Require every assistant message to include its reasoning field, even when empty. */
|
|
149
|
-
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
150
|
-
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
151
|
-
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
152
|
-
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
153
|
-
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
154
|
-
/** Supports Anthropic's thinking-prefix mismatch controls. Overrides model-ID detection. */
|
|
155
|
-
readonly supportsThinkingBlockBinding: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
156
|
-
/** Supports per-message effort updates. Overrides model-ID detection. */
|
|
157
|
-
readonly supportsEffortUpdates: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
158
|
-
}>;
|
|
159
142
|
export interface Capabilities extends Schema.Schema.Type<typeof Capabilities> {
|
|
160
143
|
}
|
|
161
144
|
export declare const Capabilities: Schema.Struct<{
|
|
@@ -362,27 +345,21 @@ export declare const Info: Schema.Struct<{
|
|
|
362
345
|
readonly name: Schema.String;
|
|
363
346
|
readonly compatibility: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
364
347
|
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
|
|
365
|
-
/** Require every assistant message to include its reasoning field, even when empty. */
|
|
366
348
|
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
367
349
|
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
368
350
|
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
369
351
|
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
370
352
|
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
371
|
-
/** Supports Anthropic's thinking-prefix mismatch controls. Overrides model-ID detection. */
|
|
372
353
|
readonly supportsThinkingBlockBinding: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
373
|
-
/** Supports per-message effort updates. Overrides model-ID detection. */
|
|
374
354
|
readonly supportsEffortUpdates: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
375
355
|
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
376
356
|
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
|
|
377
|
-
/** Require every assistant message to include its reasoning field, even when empty. */
|
|
378
357
|
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
379
358
|
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
380
359
|
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
381
360
|
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
382
361
|
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
383
|
-
/** Supports Anthropic's thinking-prefix mismatch controls. Overrides model-ID detection. */
|
|
384
362
|
readonly supportsThinkingBlockBinding: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
385
|
-
/** Supports per-message effort updates. Overrides model-ID detection. */
|
|
386
363
|
readonly supportsEffortUpdates: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
387
364
|
}>>, never, never>;
|
|
388
365
|
readonly package: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
|
package/dist/model.js
CHANGED
|
@@ -2,6 +2,7 @@ export * as Model from "./model.js";
|
|
|
2
2
|
import { Schema } from "effect";
|
|
3
3
|
import { optional, statics } from "./schema.js";
|
|
4
4
|
import { Provider } from "./provider.js";
|
|
5
|
+
import { Compatibility, MaxTokensField, ReasoningField } from "./model-compatibility.js";
|
|
5
6
|
import { Money } from "./money.js";
|
|
6
7
|
import { ephemeral, inventory } from "./event.js";
|
|
7
8
|
export const ID = Schema.String.pipe(Schema.brand("Model.ID"));
|
|
@@ -32,14 +33,8 @@ export const Ref = Schema.Struct({
|
|
|
32
33
|
});
|
|
33
34
|
},
|
|
34
35
|
})));
|
|
36
|
+
export { Compatibility, MaxTokensField, ReasoningField };
|
|
35
37
|
export const Family = Schema.String.pipe(Schema.brand("Model.Family"));
|
|
36
|
-
export const ReasoningField = Schema.Union([
|
|
37
|
-
Schema.Literals(["reasoning", "reasoning_content", "reasoning_text"]),
|
|
38
|
-
Schema.String,
|
|
39
|
-
]).annotate({ identifier: "Model.ReasoningField" });
|
|
40
|
-
export const MaxTokensField = Schema.Literals(["max_completion_tokens", "max_tokens"]).annotate({
|
|
41
|
-
identifier: "Model.MaxTokensField",
|
|
42
|
-
});
|
|
43
38
|
export const Settings = Schema.StructWithRest(Schema.Struct({
|
|
44
39
|
compaction: Provider.Compaction.pipe(optional),
|
|
45
40
|
}),
|
|
@@ -50,19 +45,6 @@ export const Overlays = {
|
|
|
50
45
|
headers: Schema.Record(Schema.String, Schema.String).pipe(optional),
|
|
51
46
|
body: Schema.Record(Schema.String, Schema.Any).pipe(optional),
|
|
52
47
|
};
|
|
53
|
-
export const Compatibility = Schema.Struct({
|
|
54
|
-
reasoningField: ReasoningField.pipe(optional),
|
|
55
|
-
/** Require every assistant message to include its reasoning field, even when empty. */
|
|
56
|
-
requireReasoning: Schema.Boolean.pipe(optional),
|
|
57
|
-
maxTokensField: MaxTokensField.pipe(optional),
|
|
58
|
-
requireFinishReason: Schema.Boolean.pipe(optional),
|
|
59
|
-
requireAssistantAfterTool: Schema.Boolean.pipe(optional),
|
|
60
|
-
supportsPromptCacheKey: Schema.Boolean.pipe(optional),
|
|
61
|
-
/** Supports Anthropic's thinking-prefix mismatch controls. Overrides model-ID detection. */
|
|
62
|
-
supportsThinkingBlockBinding: Schema.Boolean.pipe(optional),
|
|
63
|
-
/** Supports per-message effort updates. Overrides model-ID detection. */
|
|
64
|
-
supportsEffortUpdates: Schema.Boolean.pipe(optional),
|
|
65
|
-
}).annotate({ identifier: "Model.Compatibility" });
|
|
66
48
|
export const Capabilities = Schema.Struct({
|
|
67
49
|
tools: Schema.Boolean,
|
|
68
50
|
input: Schema.Array(Schema.String),
|
package/dist/provider.d.ts
CHANGED
|
@@ -241,6 +241,22 @@ export declare const Info: Schema.Struct<{
|
|
|
241
241
|
readonly name: Schema.String;
|
|
242
242
|
readonly activation: Schema.Literals<readonly ["auto", "enabled", "disabled"]>;
|
|
243
243
|
readonly package: Schema.String;
|
|
244
|
+
/** Inherited by every model of this provider; model compatibility overrides individual fields. */
|
|
245
|
+
readonly compatibility: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
246
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("./model-compatibility.js").ReasoningField, import("./model-compatibility.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("./model-compatibility.js").ReasoningField, import("./model-compatibility.js").ReasoningField, never, never>>, never, never>;
|
|
247
|
+
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
248
|
+
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
249
|
+
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
250
|
+
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
251
|
+
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
252
|
+
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
253
|
+
readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("./model-compatibility.js").ReasoningField, import("./model-compatibility.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("./model-compatibility.js").ReasoningField, import("./model-compatibility.js").ReasoningField, never, never>>, never, never>;
|
|
254
|
+
readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
255
|
+
readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
|
|
256
|
+
readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
257
|
+
readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
258
|
+
readonly supportsPromptCacheKey: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
|
|
259
|
+
}>>, never, never>;
|
|
244
260
|
}> & {
|
|
245
261
|
empty: (id: ID) => Info;
|
|
246
262
|
};
|
package/dist/provider.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * as Provider from "./provider.js";
|
|
2
2
|
import { Effect, Schema } from "effect";
|
|
3
3
|
import { Integration } from "./integration.js";
|
|
4
|
+
import { ProviderCompatibility } from "./model-compatibility.js";
|
|
4
5
|
import { optional, statics } from "./schema.js";
|
|
5
6
|
import { ephemeral, inventory } from "./event.js";
|
|
6
7
|
export const ID = Schema.String.pipe(Schema.brand("Provider.ID"), Schema.annotate({ identifier: "Provider.ID" }), statics((schema) => ({
|
|
@@ -52,6 +53,8 @@ export const Info = Schema.Struct({
|
|
|
52
53
|
name: Schema.String,
|
|
53
54
|
activation: Activation,
|
|
54
55
|
package: Package,
|
|
56
|
+
/** Inherited by every model of this provider; model compatibility overrides individual fields. */
|
|
57
|
+
compatibility: ProviderCompatibility.pipe(optional),
|
|
55
58
|
...Overlays,
|
|
56
59
|
})
|
|
57
60
|
.annotate({ identifier: "Provider.Info" })
|