@opencode/protocol 2.0.2 → 2.0.4

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.
Files changed (69) hide show
  1. package/dist/api.d.ts +4 -6
  2. package/dist/api.js +4 -8
  3. package/dist/client.d.ts +0 -2
  4. package/dist/client.js +0 -2
  5. package/dist/errors.d.ts +20 -0
  6. package/dist/errors.js +17 -0
  7. package/dist/groups/agent.d.ts +6 -5
  8. package/dist/groups/agent.js +2 -2
  9. package/dist/groups/command.d.ts +3 -3
  10. package/dist/groups/command.js +1 -1
  11. package/dist/groups/config.d.ts +5 -13
  12. package/dist/groups/config.js +11 -18
  13. package/dist/groups/credential.d.ts +3 -18
  14. package/dist/groups/credential.js +3 -10
  15. package/dist/groups/debug.d.ts +0 -8
  16. package/dist/groups/debug.js +3 -3
  17. package/dist/groups/event.d.ts +99 -74
  18. package/dist/groups/event.js +3 -3
  19. package/dist/groups/form.d.ts +6 -654
  20. package/dist/groups/form.js +6 -83
  21. package/dist/groups/fs.d.ts +6 -6
  22. package/dist/groups/fs.js +3 -3
  23. package/dist/groups/generate.d.ts +1 -1
  24. package/dist/groups/generate.js +2 -2
  25. package/dist/groups/integration.d.ts +27 -27
  26. package/dist/groups/integration.js +19 -16
  27. package/dist/groups/location.d.ts +10 -4
  28. package/dist/groups/location.js +2 -3
  29. package/dist/groups/mcp.d.ts +11 -13
  30. package/dist/groups/mcp.js +10 -10
  31. package/dist/groups/message.d.ts +710 -41
  32. package/dist/groups/message.js +26 -3
  33. package/dist/groups/migration.js +1 -1
  34. package/dist/groups/model.d.ts +12 -9
  35. package/dist/groups/model.js +2 -2
  36. package/dist/groups/permission.d.ts +9 -16
  37. package/dist/groups/permission.js +8 -20
  38. package/dist/groups/persistent-pty.js +1 -1
  39. package/dist/groups/plugin.d.ts +7 -12
  40. package/dist/groups/plugin.js +3 -13
  41. package/dist/groups/project.d.ts +1 -14
  42. package/dist/groups/project.js +2 -13
  43. package/dist/groups/provider.d.ts +8 -7
  44. package/dist/groups/provider.js +2 -2
  45. package/dist/groups/pty.d.ts +15 -12
  46. package/dist/groups/pty.js +8 -8
  47. package/dist/groups/reference.d.ts +8 -12
  48. package/dist/groups/reference.js +16 -3
  49. package/dist/groups/rpc.d.ts +0 -1
  50. package/dist/groups/rpc.js +1 -1
  51. package/dist/groups/server.d.ts +9 -1
  52. package/dist/groups/server.js +11 -5
  53. package/dist/groups/session.d.ts +1146 -787
  54. package/dist/groups/session.js +192 -93
  55. package/dist/groups/shell.d.ts +13 -43
  56. package/dist/groups/shell.js +6 -24
  57. package/dist/groups/skill.d.ts +4 -5
  58. package/dist/groups/skill.js +1 -1
  59. package/dist/groups/vcs.d.ts +17 -12
  60. package/dist/groups/vcs.js +6 -6
  61. package/dist/groups/websearch.d.ts +6 -5
  62. package/dist/groups/websearch.js +2 -2
  63. package/dist/groups/worktree.d.ts +17 -23
  64. package/dist/groups/worktree.js +21 -30
  65. package/package.json +2 -2
  66. package/dist/groups/health.d.ts +0 -15
  67. package/dist/groups/health.js +0 -20
  68. package/dist/groups/workspace.d.ts +0 -22
  69. package/dist/groups/workspace.js +0 -27
@@ -7,6 +7,695 @@ export declare const SessionMessagesQuery: Schema.Struct<{
7
7
  readonly cursor: Schema.optional<Schema.String>;
8
8
  readonly type: Schema.optional<Schema.Literals<("skill" | "compaction" | "system" | "shell" | "agent-switched" | "model-switched" | "location-switched" | "user" | "synthetic" | "assistant")[]>>;
9
9
  }>;
10
+ export declare const PublicSessionMessage: Schema.Union<readonly [Schema.Struct<{
11
+ readonly type: Schema.tag<"agent-switched">;
12
+ readonly agent: Schema.brand<Schema.String, "Agent.ID">;
13
+ readonly previous: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Agent.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Agent.ID">>, never, never>;
14
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
15
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
16
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
17
+ };
18
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
19
+ readonly time: Schema.Struct<{
20
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
21
+ }>;
22
+ }>, Schema.Struct<{
23
+ readonly type: Schema.tag<"model-switched">;
24
+ readonly model: Schema.Struct<{
25
+ readonly id: Schema.brand<Schema.String, "Model.ID">;
26
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
27
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
28
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
29
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
30
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
31
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
32
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
33
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
34
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
35
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
36
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
37
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
38
+ };
39
+ readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.VariantID">>, never, never>;
40
+ }> & {
41
+ parse: (input: string) => {
42
+ readonly id: string & import("effect/Brand").Brand<"Model.ID">;
43
+ readonly providerID: string & import("effect/Brand").Brand<"Provider.ID">;
44
+ readonly variant?: (string & import("effect/Brand").Brand<"Model.VariantID">) | undefined;
45
+ };
46
+ };
47
+ readonly previous: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
48
+ readonly id: Schema.brand<Schema.String, "Model.ID">;
49
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
50
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
51
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
52
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
53
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
54
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
55
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
56
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
57
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
58
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
59
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
60
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
61
+ };
62
+ readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.VariantID">>, never, never>;
63
+ }> & {
64
+ parse: (input: string) => {
65
+ readonly id: string & import("effect/Brand").Brand<"Model.ID">;
66
+ readonly providerID: string & import("effect/Brand").Brand<"Provider.ID">;
67
+ readonly variant?: (string & import("effect/Brand").Brand<"Model.VariantID">) | undefined;
68
+ };
69
+ }>>, Schema.optionalKey<Schema.Struct<{
70
+ readonly id: Schema.brand<Schema.String, "Model.ID">;
71
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
72
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
73
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
74
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
75
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
76
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
77
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
78
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
79
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
80
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
81
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
82
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
83
+ };
84
+ readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.VariantID">>, never, never>;
85
+ }> & {
86
+ parse: (input: string) => {
87
+ readonly id: string & import("effect/Brand").Brand<"Model.ID">;
88
+ readonly providerID: string & import("effect/Brand").Brand<"Provider.ID">;
89
+ readonly variant?: (string & import("effect/Brand").Brand<"Model.VariantID">) | undefined;
90
+ };
91
+ }>, never, never>;
92
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
93
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
94
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
95
+ };
96
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
97
+ readonly time: Schema.Struct<{
98
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
99
+ }>;
100
+ }>, Schema.Struct<{
101
+ readonly location: Schema.Struct<{
102
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
103
+ }>;
104
+ readonly previous: Schema.optional<Schema.Struct<{
105
+ readonly location: Schema.Struct<{
106
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
107
+ }>;
108
+ readonly projectID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Project.ID"> & {
109
+ global: string & import("effect/Brand").Brand<"Project.ID">;
110
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Project.ID"> & {
111
+ global: string & import("effect/Brand").Brand<"Project.ID">;
112
+ }>, never, never>;
113
+ readonly subpath: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "RelativePath">>>, Schema.optionalKey<Schema.brand<Schema.String, "RelativePath">>, never, never>;
114
+ }>>;
115
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
116
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
117
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
118
+ };
119
+ readonly type: Schema.tag<"location-switched">;
120
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
121
+ readonly projectID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Project.ID"> & {
122
+ global: string & import("effect/Brand").Brand<"Project.ID">;
123
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Project.ID"> & {
124
+ global: string & import("effect/Brand").Brand<"Project.ID">;
125
+ }>, never, never>;
126
+ readonly time: Schema.Struct<{
127
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
128
+ }>;
129
+ readonly subpath: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "RelativePath">>>, Schema.optionalKey<Schema.brand<Schema.String, "RelativePath">>, never, never>;
130
+ }>, Schema.Struct<{
131
+ readonly text: Schema.String;
132
+ readonly files: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
133
+ readonly data: Schema.String;
134
+ readonly mime: Schema.String;
135
+ readonly source: Schema.Union<readonly [Schema.Struct<{
136
+ readonly type: Schema.Literal<"inline">;
137
+ }>, Schema.Struct<{
138
+ readonly type: Schema.Literal<"uri">;
139
+ readonly uri: Schema.String;
140
+ }>]>;
141
+ readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
142
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
143
+ readonly mention: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
144
+ readonly start: Schema.Finite;
145
+ readonly end: Schema.Finite;
146
+ readonly text: Schema.String;
147
+ }>>>, Schema.optionalKey<Schema.Struct<{
148
+ readonly start: Schema.Finite;
149
+ readonly end: Schema.Finite;
150
+ readonly text: Schema.String;
151
+ }>>, never, never>;
152
+ }> & {
153
+ create: (input: import("@opencode/schema/prompt").FileAttachment) => {
154
+ readonly data: string;
155
+ readonly source: {
156
+ readonly type: "inline";
157
+ } | {
158
+ readonly type: "uri";
159
+ readonly uri: string;
160
+ };
161
+ readonly mime: string;
162
+ readonly description?: string | undefined;
163
+ readonly name?: string | undefined;
164
+ readonly mention?: {
165
+ readonly start: number;
166
+ readonly end: number;
167
+ readonly text: string;
168
+ } | undefined;
169
+ };
170
+ }>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
171
+ readonly data: Schema.String;
172
+ readonly mime: Schema.String;
173
+ readonly source: Schema.Union<readonly [Schema.Struct<{
174
+ readonly type: Schema.Literal<"inline">;
175
+ }>, Schema.Struct<{
176
+ readonly type: Schema.Literal<"uri">;
177
+ readonly uri: Schema.String;
178
+ }>]>;
179
+ readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
180
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
181
+ readonly mention: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
182
+ readonly start: Schema.Finite;
183
+ readonly end: Schema.Finite;
184
+ readonly text: Schema.String;
185
+ }>>>, Schema.optionalKey<Schema.Struct<{
186
+ readonly start: Schema.Finite;
187
+ readonly end: Schema.Finite;
188
+ readonly text: Schema.String;
189
+ }>>, never, never>;
190
+ }> & {
191
+ create: (input: import("@opencode/schema/prompt").FileAttachment) => {
192
+ readonly data: string;
193
+ readonly source: {
194
+ readonly type: "inline";
195
+ } | {
196
+ readonly type: "uri";
197
+ readonly uri: string;
198
+ };
199
+ readonly mime: string;
200
+ readonly description?: string | undefined;
201
+ readonly name?: string | undefined;
202
+ readonly mention?: {
203
+ readonly start: number;
204
+ readonly end: number;
205
+ readonly text: string;
206
+ } | undefined;
207
+ };
208
+ }>>, never, never>;
209
+ readonly agents: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
210
+ readonly name: Schema.String;
211
+ readonly mention: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
212
+ readonly start: Schema.Finite;
213
+ readonly end: Schema.Finite;
214
+ readonly text: Schema.String;
215
+ }>>>, Schema.optionalKey<Schema.Struct<{
216
+ readonly start: Schema.Finite;
217
+ readonly end: Schema.Finite;
218
+ readonly text: Schema.String;
219
+ }>>, never, never>;
220
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
221
+ readonly name: Schema.String;
222
+ readonly mention: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
223
+ readonly start: Schema.Finite;
224
+ readonly end: Schema.Finite;
225
+ readonly text: Schema.String;
226
+ }>>>, Schema.optionalKey<Schema.Struct<{
227
+ readonly start: Schema.Finite;
228
+ readonly end: Schema.Finite;
229
+ readonly text: Schema.String;
230
+ }>>, never, never>;
231
+ }>>>, never, never>;
232
+ readonly skills: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
233
+ readonly id: Schema.brand<Schema.String, "Skill.ID">;
234
+ readonly name: Schema.brand<Schema.String, "Skill.Name">;
235
+ readonly text: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
236
+ readonly mention: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
237
+ readonly start: Schema.Finite;
238
+ readonly end: Schema.Finite;
239
+ readonly text: Schema.String;
240
+ }>>>, Schema.optionalKey<Schema.Struct<{
241
+ readonly start: Schema.Finite;
242
+ readonly end: Schema.Finite;
243
+ readonly text: Schema.String;
244
+ }>>, never, never>;
245
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
246
+ readonly id: Schema.brand<Schema.String, "Skill.ID">;
247
+ readonly name: Schema.brand<Schema.String, "Skill.Name">;
248
+ readonly text: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
249
+ readonly mention: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
250
+ readonly start: Schema.Finite;
251
+ readonly end: Schema.Finite;
252
+ readonly text: Schema.String;
253
+ }>>>, Schema.optionalKey<Schema.Struct<{
254
+ readonly start: Schema.Finite;
255
+ readonly end: Schema.Finite;
256
+ readonly text: Schema.String;
257
+ }>>, never, never>;
258
+ }>>>, never, never>;
259
+ readonly type: Schema.tag<"user">;
260
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
261
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
262
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
263
+ };
264
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
265
+ readonly time: Schema.Struct<{
266
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
267
+ }>;
268
+ }>, Schema.Struct<{
269
+ readonly text: Schema.String;
270
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
271
+ readonly type: Schema.tag<"synthetic">;
272
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
273
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
274
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
275
+ };
276
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
277
+ readonly time: Schema.Struct<{
278
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
279
+ }>;
280
+ }>, Schema.Struct<{
281
+ readonly type: Schema.tag<"system">;
282
+ readonly text: Schema.String;
283
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
284
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
285
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
286
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
287
+ };
288
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
289
+ readonly time: Schema.Struct<{
290
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
291
+ }>;
292
+ }>, Schema.Struct<{
293
+ readonly type: Schema.tag<"skill">;
294
+ readonly skill: Schema.brand<Schema.String, "Skill.ID">;
295
+ readonly name: Schema.brand<Schema.String, "Skill.Name">;
296
+ readonly text: Schema.String;
297
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
298
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
299
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
300
+ };
301
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
302
+ readonly time: Schema.Struct<{
303
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
304
+ }>;
305
+ }>, Schema.Struct<{
306
+ readonly type: Schema.tag<"shell">;
307
+ readonly shellID: Schema.brand<Schema.String, "Shell.ID"> & {
308
+ create: () => string & import("effect/Brand").Brand<"Shell.ID">;
309
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Shell.ID">;
310
+ };
311
+ readonly command: Schema.String;
312
+ readonly status: Schema.Literals<readonly ["running", "exited", "timeout", "killed"]>;
313
+ readonly exit: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
314
+ readonly output: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
315
+ readonly output: Schema.String;
316
+ readonly cursor: Schema.Int;
317
+ readonly size: Schema.Int;
318
+ readonly truncated: Schema.Boolean;
319
+ }>>>, Schema.optionalKey<Schema.Struct<{
320
+ readonly output: Schema.String;
321
+ readonly cursor: Schema.Int;
322
+ readonly size: Schema.Int;
323
+ readonly truncated: Schema.Boolean;
324
+ }>>, never, never>;
325
+ readonly time: Schema.Struct<{
326
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
327
+ readonly completed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>>, Schema.optionalKey<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>, never, never>;
328
+ }>;
329
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
330
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
331
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
332
+ };
333
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
334
+ }>, Schema.Struct<{
335
+ readonly type: Schema.tag<"assistant">;
336
+ readonly agent: Schema.brand<Schema.String, "Agent.ID">;
337
+ readonly model: Schema.Struct<{
338
+ readonly id: Schema.brand<Schema.String, "Model.ID">;
339
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
340
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
341
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
342
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
343
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
344
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
345
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
346
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
347
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
348
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
349
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
350
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
351
+ };
352
+ readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.VariantID">>, never, never>;
353
+ }> & {
354
+ parse: (input: string) => {
355
+ readonly id: string & import("effect/Brand").Brand<"Model.ID">;
356
+ readonly providerID: string & import("effect/Brand").Brand<"Provider.ID">;
357
+ readonly variant?: (string & import("effect/Brand").Brand<"Model.VariantID">) | undefined;
358
+ };
359
+ };
360
+ readonly content: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
361
+ readonly type: Schema.tag<"text">;
362
+ readonly text: Schema.String;
363
+ readonly state: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
364
+ }>, Schema.Struct<{
365
+ readonly type: Schema.tag<"reasoning">;
366
+ readonly text: Schema.String;
367
+ readonly state: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
368
+ readonly time: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
369
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
370
+ readonly completed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>>, Schema.optionalKey<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>, never, never>;
371
+ }>>>, Schema.optionalKey<Schema.Struct<{
372
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
373
+ readonly completed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>>, Schema.optionalKey<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>, never, never>;
374
+ }>>, never, never>;
375
+ }>, Schema.Struct<{
376
+ readonly type: Schema.tag<"tool">;
377
+ readonly id: Schema.String;
378
+ readonly name: Schema.String;
379
+ readonly executed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
380
+ readonly providerState: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
381
+ readonly providerResultState: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
382
+ readonly state: Schema.toTaggedUnion<"status", readonly [Schema.Struct<{
383
+ readonly status: Schema.tag<"streaming">;
384
+ readonly input: Schema.String;
385
+ }>, Schema.Struct<{
386
+ readonly status: Schema.tag<"running">;
387
+ readonly input: Schema.$Record<Schema.String, Schema.Unknown>;
388
+ readonly metadata: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
389
+ }>, Schema.Struct<{
390
+ readonly status: Schema.tag<"completed">;
391
+ readonly input: Schema.$Record<Schema.String, Schema.Unknown>;
392
+ readonly content: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
393
+ readonly type: Schema.Literal<"text">;
394
+ readonly text: Schema.String;
395
+ }>, Schema.Struct<{
396
+ readonly type: Schema.Literal<"file">;
397
+ readonly uri: Schema.String;
398
+ readonly mime: Schema.String;
399
+ readonly name: Schema.optional<Schema.String>;
400
+ }>]>>;
401
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>, never, never>;
402
+ }>, Schema.Struct<{
403
+ readonly status: Schema.tag<"error">;
404
+ readonly input: Schema.$Record<Schema.String, Schema.Unknown>;
405
+ readonly error: Schema.Struct<{
406
+ readonly type: Schema.String;
407
+ readonly message: Schema.String;
408
+ readonly status: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
409
+ }>;
410
+ readonly content: Schema.decodeTo<Schema.optional<Schema.toType<Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
411
+ readonly type: Schema.Literal<"text">;
412
+ readonly text: Schema.String;
413
+ }>, Schema.Struct<{
414
+ readonly type: Schema.Literal<"file">;
415
+ readonly uri: Schema.String;
416
+ readonly mime: Schema.String;
417
+ readonly name: Schema.optional<Schema.String>;
418
+ }>]>>>>, Schema.optionalKey<Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
419
+ readonly type: Schema.Literal<"text">;
420
+ readonly text: Schema.String;
421
+ }>, Schema.Struct<{
422
+ readonly type: Schema.Literal<"file">;
423
+ readonly uri: Schema.String;
424
+ readonly mime: Schema.String;
425
+ readonly name: Schema.optional<Schema.String>;
426
+ }>]>>>, never, never>;
427
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>, never, never>;
428
+ }>]>;
429
+ readonly time: Schema.Struct<{
430
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
431
+ readonly ran: Schema.decodeTo<Schema.optional<Schema.toType<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>>, Schema.optionalKey<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>, never, never>;
432
+ readonly completed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>>, Schema.optionalKey<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>, never, never>;
433
+ }>;
434
+ }>]>>;
435
+ readonly snapshot: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
436
+ readonly start: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Snapshot.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Snapshot.ID">>, never, never>;
437
+ readonly end: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Snapshot.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Snapshot.ID">>, never, never>;
438
+ readonly files: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.brand<Schema.String, "RelativePath">>>>, Schema.optionalKey<Schema.$Array<Schema.brand<Schema.String, "RelativePath">>>, never, never>;
439
+ }>>>, Schema.optionalKey<Schema.Struct<{
440
+ readonly start: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Snapshot.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Snapshot.ID">>, never, never>;
441
+ readonly end: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Snapshot.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Snapshot.ID">>, never, never>;
442
+ readonly files: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.brand<Schema.String, "RelativePath">>>>, Schema.optionalKey<Schema.$Array<Schema.brand<Schema.String, "RelativePath">>>, never, never>;
443
+ }>>, never, never>;
444
+ readonly finish: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["stop", "length", "tool-calls", "content-filter", "error", "unknown"]>>>, Schema.optionalKey<Schema.Literals<readonly ["stop", "length", "tool-calls", "content-filter", "error", "unknown"]>>, never, never>;
445
+ readonly rawFinish: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
446
+ readonly providerState: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
447
+ readonly cost: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.Finite, "Money.USD"> & {
448
+ zero: number & import("effect/Brand").Brand<"Money.USD">;
449
+ }>>, Schema.optionalKey<Schema.brand<Schema.Finite, "Money.USD"> & {
450
+ zero: number & import("effect/Brand").Brand<"Money.USD">;
451
+ }>, never, never>;
452
+ readonly tokens: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
453
+ readonly input: Schema.Finite;
454
+ readonly output: Schema.Finite;
455
+ readonly reasoning: Schema.Finite;
456
+ readonly cache: Schema.Struct<{
457
+ readonly read: Schema.Finite;
458
+ readonly write: Schema.Finite;
459
+ }>;
460
+ }>>>, Schema.optionalKey<Schema.Struct<{
461
+ readonly input: Schema.Finite;
462
+ readonly output: Schema.Finite;
463
+ readonly reasoning: Schema.Finite;
464
+ readonly cache: Schema.Struct<{
465
+ readonly read: Schema.Finite;
466
+ readonly write: Schema.Finite;
467
+ }>;
468
+ }>>, never, never>;
469
+ readonly error: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
470
+ readonly type: Schema.String;
471
+ readonly message: Schema.String;
472
+ readonly status: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
473
+ }>>>, Schema.optionalKey<Schema.Struct<{
474
+ readonly type: Schema.String;
475
+ readonly message: Schema.String;
476
+ readonly status: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
477
+ }>>, never, never>;
478
+ readonly retry: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
479
+ readonly attempt: Schema.Int;
480
+ readonly at: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
481
+ readonly error: Schema.Struct<{
482
+ readonly type: Schema.String;
483
+ readonly message: Schema.String;
484
+ readonly status: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
485
+ }>;
486
+ }>>>, Schema.optionalKey<Schema.Struct<{
487
+ readonly attempt: Schema.Int;
488
+ readonly at: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
489
+ readonly error: Schema.Struct<{
490
+ readonly type: Schema.String;
491
+ readonly message: Schema.String;
492
+ readonly status: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
493
+ }>;
494
+ }>>, never, never>;
495
+ readonly time: Schema.Struct<{
496
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
497
+ readonly streamed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>>, Schema.optionalKey<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>, never, never>;
498
+ readonly completed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>>, Schema.optionalKey<Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>>, never, never>;
499
+ }>;
500
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
501
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
502
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
503
+ };
504
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
505
+ }>, Schema.Union<readonly [Schema.Struct<{
506
+ readonly status: Schema.tag<"running">;
507
+ readonly reason: Schema.Literals<readonly ["auto", "manual"]>;
508
+ readonly summary: Schema.String;
509
+ readonly recent: Schema.String;
510
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
511
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
512
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
513
+ };
514
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
515
+ readonly time: Schema.Struct<{
516
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
517
+ }>;
518
+ readonly type: Schema.tag<"compaction">;
519
+ }>, Schema.Struct<{
520
+ readonly cost: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.Finite, "Money.USD"> & {
521
+ zero: number & import("effect/Brand").Brand<"Money.USD">;
522
+ }>>, Schema.optionalKey<Schema.brand<Schema.Finite, "Money.USD"> & {
523
+ zero: number & import("effect/Brand").Brand<"Money.USD">;
524
+ }>, never, never>;
525
+ readonly tokens: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
526
+ readonly input: Schema.Finite;
527
+ readonly output: Schema.Finite;
528
+ readonly reasoning: Schema.Finite;
529
+ readonly cache: Schema.Struct<{
530
+ readonly read: Schema.Finite;
531
+ readonly write: Schema.Finite;
532
+ }>;
533
+ }>>>, Schema.optionalKey<Schema.Struct<{
534
+ readonly input: Schema.Finite;
535
+ readonly output: Schema.Finite;
536
+ readonly reasoning: Schema.Finite;
537
+ readonly cache: Schema.Struct<{
538
+ readonly read: Schema.Finite;
539
+ readonly write: Schema.Finite;
540
+ }>;
541
+ }>>, never, never>;
542
+ readonly status: Schema.tag<"completed">;
543
+ readonly reason: Schema.Literals<readonly ["auto", "manual"]>;
544
+ readonly model: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
545
+ readonly id: Schema.brand<Schema.String, "Model.ID">;
546
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
547
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
548
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
549
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
550
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
551
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
552
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
553
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
554
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
555
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
556
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
557
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
558
+ };
559
+ readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.VariantID">>, never, never>;
560
+ }> & {
561
+ parse: (input: string) => {
562
+ readonly id: string & import("effect/Brand").Brand<"Model.ID">;
563
+ readonly providerID: string & import("effect/Brand").Brand<"Provider.ID">;
564
+ readonly variant?: (string & import("effect/Brand").Brand<"Model.VariantID">) | undefined;
565
+ };
566
+ }>>, Schema.optionalKey<Schema.Struct<{
567
+ readonly id: Schema.brand<Schema.String, "Model.ID">;
568
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
569
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
570
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
571
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
572
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
573
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
574
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
575
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
576
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
577
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
578
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
579
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
580
+ };
581
+ readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Model.VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Model.VariantID">>, never, never>;
582
+ }> & {
583
+ parse: (input: string) => {
584
+ readonly id: string & import("effect/Brand").Brand<"Model.ID">;
585
+ readonly providerID: string & import("effect/Brand").Brand<"Provider.ID">;
586
+ readonly variant?: (string & import("effect/Brand").Brand<"Model.VariantID">) | undefined;
587
+ };
588
+ }>, never, never>;
589
+ readonly providerState: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
590
+ readonly summary: Schema.String;
591
+ readonly recent: Schema.String;
592
+ readonly providerContext: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
593
+ readonly version: Schema.Literal<1>;
594
+ readonly provenance: Schema.Struct<{
595
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
596
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
597
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
598
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
599
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
600
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
601
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
602
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
603
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
604
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
605
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
606
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
607
+ };
608
+ readonly provider: Schema.String;
609
+ readonly modelID: Schema.String;
610
+ readonly route: Schema.String;
611
+ readonly protocol: Schema.String;
612
+ readonly endpoint: Schema.String;
613
+ }>;
614
+ readonly messages: Schema.Codec<Schema.Json, Schema.Json, never, never>;
615
+ }>>>, Schema.optionalKey<Schema.Struct<{
616
+ readonly version: Schema.Literal<1>;
617
+ readonly provenance: Schema.Struct<{
618
+ readonly providerID: Schema.brand<Schema.String, "Provider.ID"> & {
619
+ opencode: string & import("effect/Brand").Brand<"Provider.ID">;
620
+ anthropic: string & import("effect/Brand").Brand<"Provider.ID">;
621
+ openai: string & import("effect/Brand").Brand<"Provider.ID">;
622
+ google: string & import("effect/Brand").Brand<"Provider.ID">;
623
+ googleVertex: string & import("effect/Brand").Brand<"Provider.ID">;
624
+ githubCopilot: string & import("effect/Brand").Brand<"Provider.ID">;
625
+ amazonBedrock: string & import("effect/Brand").Brand<"Provider.ID">;
626
+ azure: string & import("effect/Brand").Brand<"Provider.ID">;
627
+ openrouter: string & import("effect/Brand").Brand<"Provider.ID">;
628
+ mistral: string & import("effect/Brand").Brand<"Provider.ID">;
629
+ gitlab: string & import("effect/Brand").Brand<"Provider.ID">;
630
+ };
631
+ readonly provider: Schema.String;
632
+ readonly modelID: Schema.String;
633
+ readonly route: Schema.String;
634
+ readonly protocol: Schema.String;
635
+ readonly endpoint: Schema.String;
636
+ }>;
637
+ readonly messages: Schema.Codec<Schema.Json, Schema.Json, never, never>;
638
+ }>>, never, never>;
639
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
640
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
641
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
642
+ };
643
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
644
+ readonly time: Schema.Struct<{
645
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
646
+ }>;
647
+ readonly type: Schema.tag<"compaction">;
648
+ }>, Schema.Struct<{
649
+ readonly cost: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.Finite, "Money.USD"> & {
650
+ zero: number & import("effect/Brand").Brand<"Money.USD">;
651
+ }>>, Schema.optionalKey<Schema.brand<Schema.Finite, "Money.USD"> & {
652
+ zero: number & import("effect/Brand").Brand<"Money.USD">;
653
+ }>, never, never>;
654
+ readonly tokens: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
655
+ readonly input: Schema.Finite;
656
+ readonly output: Schema.Finite;
657
+ readonly reasoning: Schema.Finite;
658
+ readonly cache: Schema.Struct<{
659
+ readonly read: Schema.Finite;
660
+ readonly write: Schema.Finite;
661
+ }>;
662
+ }>>>, Schema.optionalKey<Schema.Struct<{
663
+ readonly input: Schema.Finite;
664
+ readonly output: Schema.Finite;
665
+ readonly reasoning: Schema.Finite;
666
+ readonly cache: Schema.Struct<{
667
+ readonly read: Schema.Finite;
668
+ readonly write: Schema.Finite;
669
+ }>;
670
+ }>>, never, never>;
671
+ readonly status: Schema.tag<"failed">;
672
+ readonly reason: Schema.Literals<readonly ["auto", "manual"]>;
673
+ readonly error: Schema.Struct<{
674
+ readonly type: Schema.String;
675
+ readonly message: Schema.String;
676
+ readonly status: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
677
+ }>;
678
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
679
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
680
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
681
+ };
682
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
683
+ readonly time: Schema.Struct<{
684
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
685
+ }>;
686
+ readonly type: Schema.tag<"compaction">;
687
+ }>]>, Schema.Struct<{
688
+ readonly type: Schema.tag<"idle">;
689
+ readonly outcome: Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>;
690
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
691
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
692
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
693
+ };
694
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
695
+ readonly time: Schema.Struct<{
696
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
697
+ }>;
698
+ }>]>;
10
699
  export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", HttpApiEndpoint.HttpApiEndpoint<"session.messages", "GET", "/api/session/:sessionID/message", Schema.toCodecStringTree<Schema.Struct<{
11
700
  sessionID: Schema.brand<Schema.String, "SessionID"> & {
12
701
  create: () => string & import("effect/Brand").Brand<"SessionID">;
@@ -109,33 +798,12 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
109
798
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
110
799
  }>;
111
800
  }>, Schema.Struct<{
112
- readonly type: Schema.tag<"location-switched">;
113
801
  readonly location: Schema.Struct<{
114
802
  readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
115
- readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
116
- ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
117
- create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
118
- }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
119
- ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
120
- create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
121
- }>, never, never>;
122
803
  }>;
123
- readonly projectID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Project.ID"> & {
124
- global: string & import("effect/Brand").Brand<"Project.ID">;
125
- }>>, Schema.optionalKey<Schema.brand<Schema.String, "Project.ID"> & {
126
- global: string & import("effect/Brand").Brand<"Project.ID">;
127
- }>, never, never>;
128
- readonly subpath: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "RelativePath">>>, Schema.optionalKey<Schema.brand<Schema.String, "RelativePath">>, never, never>;
129
- readonly previous: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
804
+ readonly previous: Schema.optional<Schema.Struct<{
130
805
  readonly location: Schema.Struct<{
131
806
  readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
132
- readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
133
- ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
134
- create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
135
- }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
136
- ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
137
- create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
138
- }>, never, never>;
139
807
  }>;
140
808
  readonly projectID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Project.ID"> & {
141
809
  global: string & import("effect/Brand").Brand<"Project.ID">;
@@ -143,32 +811,22 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
143
811
  global: string & import("effect/Brand").Brand<"Project.ID">;
144
812
  }>, never, never>;
145
813
  readonly subpath: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "RelativePath">>>, Schema.optionalKey<Schema.brand<Schema.String, "RelativePath">>, never, never>;
146
- }>>>, Schema.optionalKey<Schema.Struct<{
147
- readonly location: Schema.Struct<{
148
- readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
149
- readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
150
- ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
151
- create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
152
- }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
153
- ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
154
- create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
155
- }>, never, never>;
156
- }>;
157
- readonly projectID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Project.ID"> & {
158
- global: string & import("effect/Brand").Brand<"Project.ID">;
159
- }>>, Schema.optionalKey<Schema.brand<Schema.String, "Project.ID"> & {
160
- global: string & import("effect/Brand").Brand<"Project.ID">;
161
- }>, never, never>;
162
- readonly subpath: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "RelativePath">>>, Schema.optionalKey<Schema.brand<Schema.String, "RelativePath">>, never, never>;
163
- }>>, never, never>;
814
+ }>>;
164
815
  readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
165
816
  create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
166
817
  fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
167
818
  };
819
+ readonly type: Schema.tag<"location-switched">;
168
820
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
821
+ readonly projectID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Project.ID"> & {
822
+ global: string & import("effect/Brand").Brand<"Project.ID">;
823
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Project.ID"> & {
824
+ global: string & import("effect/Brand").Brand<"Project.ID">;
825
+ }>, never, never>;
169
826
  readonly time: Schema.Struct<{
170
827
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
171
828
  }>;
829
+ readonly subpath: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "RelativePath">>>, Schema.optionalKey<Schema.brand<Schema.String, "RelativePath">>, never, never>;
172
830
  }>, Schema.Struct<{
173
831
  readonly text: Schema.String;
174
832
  readonly files: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
@@ -726,7 +1384,18 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
726
1384
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
727
1385
  }>;
728
1386
  readonly type: Schema.tag<"compaction">;
729
- }>]>]>>;
1387
+ }>]>, Schema.Struct<{
1388
+ readonly type: Schema.tag<"idle">;
1389
+ readonly outcome: Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>;
1390
+ readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
1391
+ create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
1392
+ fromEvent: (eventID: import("@opencode/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
1393
+ };
1394
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
1395
+ readonly time: Schema.Struct<{
1396
+ readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
1397
+ }>;
1398
+ }>]>>;
730
1399
  readonly cursor: Schema.Struct<{
731
1400
  readonly previous: Schema.optional<Schema.String>;
732
1401
  readonly next: Schema.optional<Schema.String>;