@opencode/schema 2.0.29 → 2.0.31

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.
@@ -110,15 +110,86 @@ declare const Limit_base: Schema.Class<Limit, Schema.Struct<{
110
110
  }>, {}>;
111
111
  declare class Limit extends Limit_base {
112
112
  }
113
+ export declare const Reasoning: Schema.Union<readonly [Schema.Struct<{
114
+ readonly supported: Schema.Literal<false>;
115
+ }>, Schema.Struct<{
116
+ readonly supported: Schema.Literal<true>;
117
+ readonly toggle: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
118
+ readonly effort: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
119
+ readonly budget: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
120
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
121
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
122
+ }>>>, Schema.optionalKey<Schema.Struct<{
123
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
124
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
125
+ }>>, never, never>;
126
+ }>]>;
127
+ export type Reasoning = typeof Reasoning.Type;
113
128
  declare const Model_base: Schema.Class<Model, Schema.Struct<{
114
129
  readonly capabilities: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
115
130
  readonly tools: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
116
131
  readonly input: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
117
132
  readonly output: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
133
+ readonly temperature: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
134
+ readonly reasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Union<readonly [Schema.Struct<{
135
+ readonly supported: Schema.Literal<false>;
136
+ }>, Schema.Struct<{
137
+ readonly supported: Schema.Literal<true>;
138
+ readonly toggle: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
139
+ readonly effort: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
140
+ readonly budget: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
141
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
142
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
143
+ }>>>, Schema.optionalKey<Schema.Struct<{
144
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
145
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
146
+ }>>, never, never>;
147
+ }>]>>>, Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
148
+ readonly supported: Schema.Literal<false>;
149
+ }>, Schema.Struct<{
150
+ readonly supported: Schema.Literal<true>;
151
+ readonly toggle: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
152
+ readonly effort: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
153
+ readonly budget: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
154
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
155
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
156
+ }>>>, Schema.optionalKey<Schema.Struct<{
157
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
158
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
159
+ }>>, never, never>;
160
+ }>]>>, never, never>;
118
161
  }>>>, Schema.optionalKey<Schema.Struct<{
119
162
  readonly tools: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
120
163
  readonly input: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
121
164
  readonly output: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
165
+ readonly temperature: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
166
+ readonly reasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Union<readonly [Schema.Struct<{
167
+ readonly supported: Schema.Literal<false>;
168
+ }>, Schema.Struct<{
169
+ readonly supported: Schema.Literal<true>;
170
+ readonly toggle: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
171
+ readonly effort: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
172
+ readonly budget: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
173
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
174
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
175
+ }>>>, Schema.optionalKey<Schema.Struct<{
176
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
177
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
178
+ }>>, never, never>;
179
+ }>]>>>, Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
180
+ readonly supported: Schema.Literal<false>;
181
+ }>, Schema.Struct<{
182
+ readonly supported: Schema.Literal<true>;
183
+ readonly toggle: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
184
+ readonly effort: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
185
+ readonly budget: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
186
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
187
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
188
+ }>>>, Schema.optionalKey<Schema.Struct<{
189
+ readonly min: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
190
+ readonly max: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
191
+ }>>, never, never>;
192
+ }>]>>, never, never>;
122
193
  }>>, never, never>;
123
194
  readonly variants: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
124
195
  readonly settings: Schema.decodeTo<Schema.optional<Schema.toType<Schema.StructWithRest<Schema.Struct<{
@@ -206,6 +277,7 @@ declare const Model_base: Schema.Class<Model, Schema.Struct<{
206
277
  readonly modelID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.ID">>, never, never>;
207
278
  readonly family: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.Family">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.Family">>, never, never>;
208
279
  readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
280
+ readonly releaseDate: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
209
281
  readonly compatibility: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
210
282
  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>;
211
283
  readonly requireReasoning: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
@@ -54,10 +54,26 @@ class Limit extends Schema.Class("Config.Model.Limit")({
54
54
  output: Schema.Int.pipe(optional),
55
55
  }) {
56
56
  }
57
+ // models.dev v2's `capabilities.reasoning`. OpenCode builds the model's variants from it; no control means none.
58
+ export const Reasoning = Schema.Union([
59
+ Schema.Struct({ supported: Schema.Literal(false) }),
60
+ Schema.Struct({
61
+ supported: Schema.Literal(true),
62
+ toggle: Schema.Boolean.pipe(optional),
63
+ effort: Schema.String.pipe(Schema.Array, optional),
64
+ budget: Schema.Struct({
65
+ min: Schema.Int.pipe(optional),
66
+ max: Schema.Int.pipe(optional),
67
+ }).pipe(optional),
68
+ }),
69
+ ]).annotate({ identifier: "Config.Model.Reasoning" });
57
70
  class Model extends Schema.Class("Config.Model")({
58
71
  modelID: ID.pipe(optional),
59
72
  family: Family.pipe(optional),
60
73
  name: Schema.String.pipe(optional),
74
+ releaseDate: Schema.String.check(Schema.isPattern(/^\d{4}-\d{2}(-\d{2})?$/u))
75
+ .annotate({ description: "Release date as YYYY-MM-DD or YYYY-MM" })
76
+ .pipe(optional),
61
77
  compatibility: Compatibility.pipe(optional),
62
78
  package: Schema.String.pipe(optional),
63
79
  ...ModelOverlays,
@@ -66,6 +82,8 @@ class Model extends Schema.Class("Config.Model")({
66
82
  tools: optional(fields.tools),
67
83
  input: optional(fields.input),
68
84
  output: optional(fields.output),
85
+ temperature: fields.temperature,
86
+ reasoning: Reasoning.pipe(optional),
69
87
  }))
70
88
  .annotate({ identifier: "Config.Model.Capabilities" })
71
89
  .pipe(optional),
@@ -6067,14 +6067,14 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
6067
6067
  }>, never, never>;
6068
6068
  }>>, never, never>;
6069
6069
  readonly data: Schema.Struct<{
6070
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
6070
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
6071
6071
  }>;
6072
6072
  }> & {
6073
6073
  type: "tui.command.execute";
6074
6074
  durability: "ephemeral";
6075
6075
  durable: undefined;
6076
6076
  data: Schema.Struct<{
6077
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
6077
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
6078
6078
  }>;
6079
6079
  }, Schema.Struct<{
6080
6080
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
@@ -12375,14 +12375,14 @@ export declare const Definitions: readonly [Schema.Struct<{
12375
12375
  }>, never, never>;
12376
12376
  }>>, never, never>;
12377
12377
  readonly data: Schema.Struct<{
12378
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
12378
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
12379
12379
  }>;
12380
12380
  }> & {
12381
12381
  type: "tui.command.execute";
12382
12382
  durability: "ephemeral";
12383
12383
  durable: undefined;
12384
12384
  data: Schema.Struct<{
12385
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
12385
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
12386
12386
  }>;
12387
12387
  }, Schema.Struct<{
12388
12388
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
package/dist/model.d.ts CHANGED
@@ -148,6 +148,8 @@ export declare const Capabilities: Schema.Struct<{
148
148
  readonly tools: Schema.Boolean;
149
149
  readonly input: Schema.$Array<Schema.String>;
150
150
  readonly output: Schema.$Array<Schema.String>;
151
+ /** Whether the model accepts a sampling temperature. Unknown when unset. */
152
+ readonly temperature: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
151
153
  }> & {
152
154
  default: () => {
153
155
  tools: true;
@@ -217,6 +219,8 @@ export declare const Info: Schema.Struct<{
217
219
  readonly tools: Schema.Boolean;
218
220
  readonly input: Schema.$Array<Schema.String>;
219
221
  readonly output: Schema.$Array<Schema.String>;
222
+ /** Whether the model accepts a sampling temperature. Unknown when unset. */
223
+ readonly temperature: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
220
224
  }> & {
221
225
  default: () => {
222
226
  tools: true;
package/dist/model.js CHANGED
@@ -50,6 +50,8 @@ export const Capabilities = Schema.Struct({
50
50
  tools: Schema.Boolean,
51
51
  input: Schema.Array(Schema.String),
52
52
  output: Schema.Array(Schema.String),
53
+ /** Whether the model accepts a sampling temperature. Unknown when unset. */
54
+ temperature: Schema.Boolean.pipe(optional),
53
55
  })
54
56
  .annotate({ identifier: "Model.Capabilities" })
55
57
  .pipe(statics(() => ({
@@ -64,14 +64,14 @@ export declare const CommandExecute: Schema.Struct<{
64
64
  }>, never, never>;
65
65
  }>>, never, never>;
66
66
  readonly data: Schema.Struct<{
67
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
67
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
68
68
  }>;
69
69
  }> & {
70
70
  type: "tui.command.execute";
71
71
  durability: "ephemeral";
72
72
  durable: undefined;
73
73
  data: Schema.Struct<{
74
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
74
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
75
75
  }>;
76
76
  };
77
77
  export declare const ToastShow: Schema.Struct<{
@@ -217,14 +217,14 @@ export declare const Definitions: readonly [Schema.Struct<{
217
217
  }>, never, never>;
218
218
  }>>, never, never>;
219
219
  readonly data: Schema.Struct<{
220
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
220
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
221
221
  }>;
222
222
  }> & {
223
223
  type: "tui.command.execute";
224
224
  durability: "ephemeral";
225
225
  durable: undefined;
226
226
  data: Schema.Struct<{
227
- readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
227
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
228
228
  }>;
229
229
  }, Schema.Struct<{
230
230
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
package/dist/tui-event.js CHANGED
@@ -13,7 +13,6 @@ export const CommandExecute = Event.ephemeral({
13
13
  Schema.Literals([
14
14
  "session.list",
15
15
  "session.new",
16
- "session.share",
17
16
  "session.interrupt",
18
17
  "session.background",
19
18
  "session.compact",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@opencode/schema",
4
- "version": "2.0.29",
4
+ "version": "2.0.31",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {