@opencode-ai/protocol 0.0.0-next-14854 → 0.0.0-reserved.0

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 (63) hide show
  1. package/README.md +3 -0
  2. package/index.js +1 -0
  3. package/package.json +3 -23
  4. package/dist/api.d.ts +0 -49
  5. package/dist/api.js +0 -65
  6. package/dist/client.d.ts +0 -75
  7. package/dist/client.js +0 -61
  8. package/dist/errors.d.ts +0 -127
  9. package/dist/errors.js +0 -99
  10. package/dist/groups/agent.d.ts +0 -95
  11. package/dist/groups/agent.js +0 -15
  12. package/dist/groups/command.d.ts +0 -51
  13. package/dist/groups/command.js +0 -20
  14. package/dist/groups/credential.d.ts +0 -23
  15. package/dist/groups/credential.js +0 -28
  16. package/dist/groups/event.d.ts +0 -17224
  17. package/dist/groups/event.js +0 -49
  18. package/dist/groups/form.d.ts +0 -789
  19. package/dist/groups/form.js +0 -99
  20. package/dist/groups/fs.d.ts +0 -35
  21. package/dist/groups/fs.js +0 -51
  22. package/dist/groups/generate.d.ts +0 -32
  23. package/dist/groups/generate.js +0 -27
  24. package/dist/groups/health.d.ts +0 -5
  25. package/dist/groups/health.js +0 -9
  26. package/dist/groups/integration.d.ts +0 -105
  27. package/dist/groups/integration.js +0 -98
  28. package/dist/groups/location.d.ts +0 -16
  29. package/dist/groups/location.js +0 -32
  30. package/dist/groups/mcp.d.ts +0 -30
  31. package/dist/groups/mcp.js +0 -17
  32. package/dist/groups/message.d.ts +0 -446
  33. package/dist/groups/message.js +0 -42
  34. package/dist/groups/model.d.ts +0 -312
  35. package/dist/groups/model.js +0 -33
  36. package/dist/groups/permission.d.ts +0 -153
  37. package/dist/groups/permission.js +0 -99
  38. package/dist/groups/plugin.d.ts +0 -14
  39. package/dist/groups/plugin.js +0 -20
  40. package/dist/groups/project-copy.d.ts +0 -49
  41. package/dist/groups/project-copy.js +0 -44
  42. package/dist/groups/project.d.ts +0 -24
  43. package/dist/groups/project.js +0 -30
  44. package/dist/groups/provider.d.ts +0 -164
  45. package/dist/groups/provider.js +0 -34
  46. package/dist/groups/pty.d.ts +0 -145
  47. package/dist/groups/pty.js +0 -111
  48. package/dist/groups/question.d.ts +0 -92
  49. package/dist/groups/question.js +0 -56
  50. package/dist/groups/reference.d.ts +0 -13
  51. package/dist/groups/reference.js +0 -20
  52. package/dist/groups/session.d.ts +0 -5457
  53. package/dist/groups/session.js +0 -423
  54. package/dist/groups/shell.d.ts +0 -120
  55. package/dist/groups/shell.js +0 -65
  56. package/dist/groups/skill.d.ts +0 -19
  57. package/dist/groups/skill.js +0 -20
  58. package/dist/groups/vcs.d.ts +0 -33
  59. package/dist/groups/vcs.js +0 -37
  60. package/dist/middleware/authorization.d.ts +0 -13
  61. package/dist/middleware/authorization.js +0 -6
  62. package/dist/middleware/schema-error.d.ts +0 -13
  63. package/dist/middleware/schema-error.js +0 -4
@@ -1,446 +0,0 @@
1
- import { Event } from "@opencode-ai/schema/event";
2
- import { Schema } from "effect";
3
- import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
4
- import { InvalidCursorError, SessionNotFoundError, UnknownError } from "../errors.js";
5
- export declare const SessionMessagesQuery: Schema.Struct<{
6
- readonly limit: Schema.optional<Schema.NumberFromString>;
7
- readonly order: Schema.optional<Schema.Union<readonly [Schema.Literal<"asc">, Schema.Literal<"desc">]>>;
8
- readonly cursor: Schema.optional<Schema.String>;
9
- }>;
10
- export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", HttpApiEndpoint.HttpApiEndpoint<"session.messages", "GET", "/api/session/:sessionID/message", HttpApiEndpoint.StringTree<Schema.Struct<{
11
- sessionID: Schema.brand<Schema.String, "SessionID"> & {
12
- create: () => string & import("effect/Brand").Brand<"SessionID">;
13
- descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
14
- };
15
- }>>, HttpApiEndpoint.StringTree<Schema.Struct<{
16
- readonly limit: Schema.optional<Schema.NumberFromString>;
17
- readonly order: Schema.optional<Schema.Union<readonly [Schema.Literal<"asc">, Schema.Literal<"desc">]>>;
18
- readonly cursor: Schema.optional<Schema.String>;
19
- }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
20
- readonly data: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
21
- readonly type: Schema.Literal<"agent-switched">;
22
- readonly agent: Schema.String;
23
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
24
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
25
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
26
- };
27
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
28
- readonly time: Schema.Struct<{
29
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
30
- }>;
31
- }>, Schema.Struct<{
32
- readonly type: Schema.Literal<"model-switched">;
33
- readonly model: Schema.Struct<{
34
- readonly id: Schema.brand<Schema.String, "ModelV2.ID">;
35
- readonly providerID: Schema.brand<Schema.String, "ProviderV2.ID"> & {
36
- opencode: string & import("effect/Brand").Brand<"ProviderV2.ID">;
37
- anthropic: string & import("effect/Brand").Brand<"ProviderV2.ID">;
38
- openai: string & import("effect/Brand").Brand<"ProviderV2.ID">;
39
- google: string & import("effect/Brand").Brand<"ProviderV2.ID">;
40
- googleVertex: string & import("effect/Brand").Brand<"ProviderV2.ID">;
41
- githubCopilot: string & import("effect/Brand").Brand<"ProviderV2.ID">;
42
- amazonBedrock: string & import("effect/Brand").Brand<"ProviderV2.ID">;
43
- azure: string & import("effect/Brand").Brand<"ProviderV2.ID">;
44
- openrouter: string & import("effect/Brand").Brand<"ProviderV2.ID">;
45
- mistral: string & import("effect/Brand").Brand<"ProviderV2.ID">;
46
- gitlab: string & import("effect/Brand").Brand<"ProviderV2.ID">;
47
- };
48
- readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "VariantID">>, never, never>;
49
- }>;
50
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
51
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
52
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
53
- };
54
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
55
- readonly time: Schema.Struct<{
56
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
57
- }>;
58
- }>, Schema.Struct<{
59
- readonly text: Schema.String;
60
- readonly files: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
61
- readonly uri: Schema.String;
62
- readonly mime: Schema.String;
63
- readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
64
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
65
- readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
66
- readonly start: Schema.Finite;
67
- readonly end: Schema.Finite;
68
- readonly text: Schema.String;
69
- }>>>, Schema.optionalKey<Schema.Struct<{
70
- readonly start: Schema.Finite;
71
- readonly end: Schema.Finite;
72
- readonly text: Schema.String;
73
- }>>, never, never>;
74
- }> & {
75
- create: (input: import("@opencode-ai/schema/prompt").FileAttachment) => {
76
- readonly uri: string;
77
- readonly mime: string;
78
- readonly name?: string | undefined;
79
- readonly description?: string | undefined;
80
- readonly source?: {
81
- readonly start: number;
82
- readonly end: number;
83
- readonly text: string;
84
- } | undefined;
85
- };
86
- }>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
87
- readonly uri: Schema.String;
88
- readonly mime: Schema.String;
89
- readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
90
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
91
- readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
92
- readonly start: Schema.Finite;
93
- readonly end: Schema.Finite;
94
- readonly text: Schema.String;
95
- }>>>, Schema.optionalKey<Schema.Struct<{
96
- readonly start: Schema.Finite;
97
- readonly end: Schema.Finite;
98
- readonly text: Schema.String;
99
- }>>, never, never>;
100
- }> & {
101
- create: (input: import("@opencode-ai/schema/prompt").FileAttachment) => {
102
- readonly uri: string;
103
- readonly mime: string;
104
- readonly name?: string | undefined;
105
- readonly description?: string | undefined;
106
- readonly source?: {
107
- readonly start: number;
108
- readonly end: number;
109
- readonly text: string;
110
- } | undefined;
111
- };
112
- }>>, never, never>;
113
- readonly agents: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
114
- readonly name: Schema.String;
115
- readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
116
- readonly start: Schema.Finite;
117
- readonly end: Schema.Finite;
118
- readonly text: Schema.String;
119
- }>>>, Schema.optionalKey<Schema.Struct<{
120
- readonly start: Schema.Finite;
121
- readonly end: Schema.Finite;
122
- readonly text: Schema.String;
123
- }>>, never, never>;
124
- }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
125
- readonly name: Schema.String;
126
- readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
127
- readonly start: Schema.Finite;
128
- readonly end: Schema.Finite;
129
- readonly text: Schema.String;
130
- }>>>, Schema.optionalKey<Schema.Struct<{
131
- readonly start: Schema.Finite;
132
- readonly end: Schema.Finite;
133
- readonly text: Schema.String;
134
- }>>, never, never>;
135
- }>>>, never, never>;
136
- readonly type: Schema.Literal<"user">;
137
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
138
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
139
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
140
- };
141
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
142
- readonly time: Schema.Struct<{
143
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
144
- }>;
145
- }>, Schema.Struct<{
146
- readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
147
- create: () => string & import("effect/Brand").Brand<"SessionID">;
148
- descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
149
- };
150
- readonly text: Schema.String;
151
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
152
- readonly type: Schema.Literal<"synthetic">;
153
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
154
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
155
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
156
- };
157
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
158
- readonly time: Schema.Struct<{
159
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
160
- }>;
161
- }>, Schema.Struct<{
162
- readonly type: Schema.Literal<"system">;
163
- readonly text: Schema.String;
164
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
165
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
166
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
167
- };
168
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
169
- readonly time: Schema.Struct<{
170
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
171
- }>;
172
- }>, Schema.Struct<{
173
- readonly type: Schema.Literal<"skill">;
174
- readonly name: Schema.String;
175
- readonly text: Schema.String;
176
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
177
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
178
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
179
- };
180
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
181
- readonly time: Schema.Struct<{
182
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
183
- }>;
184
- }>, Schema.Struct<{
185
- readonly type: Schema.Literal<"shell">;
186
- readonly shell: Schema.Struct<{
187
- readonly id: Schema.brand<Schema.String, "ShellID"> & {
188
- create: () => string & import("effect/Brand").Brand<"ShellID">;
189
- ascending: (id?: string) => string & import("effect/Brand").Brand<"ShellID">;
190
- };
191
- readonly status: Schema.Literals<readonly ["running", "exited", "timeout", "killed"]>;
192
- readonly command: Schema.String;
193
- readonly cwd: Schema.String;
194
- readonly shell: Schema.String;
195
- readonly file: Schema.String;
196
- readonly pid: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
197
- readonly exit: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
198
- readonly metadata: Schema.$Record<Schema.String, Schema.Unknown>;
199
- readonly time: Schema.Struct<{
200
- readonly started: Schema.Number;
201
- readonly completed: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
202
- }>;
203
- }>;
204
- readonly output: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
205
- readonly output: Schema.String;
206
- readonly cursor: Schema.Int;
207
- readonly size: Schema.Int;
208
- readonly truncated: Schema.Boolean;
209
- }>>>, Schema.optionalKey<Schema.Struct<{
210
- readonly output: Schema.String;
211
- readonly cursor: Schema.Int;
212
- readonly size: Schema.Int;
213
- readonly truncated: Schema.Boolean;
214
- }>>, never, never>;
215
- readonly time: Schema.Struct<{
216
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
217
- 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>;
218
- }>;
219
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
220
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
221
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
222
- };
223
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
224
- }>, Schema.Struct<{
225
- readonly type: Schema.Literal<"assistant">;
226
- readonly agent: Schema.String;
227
- readonly model: Schema.Struct<{
228
- readonly id: Schema.brand<Schema.String, "ModelV2.ID">;
229
- readonly providerID: Schema.brand<Schema.String, "ProviderV2.ID"> & {
230
- opencode: string & import("effect/Brand").Brand<"ProviderV2.ID">;
231
- anthropic: string & import("effect/Brand").Brand<"ProviderV2.ID">;
232
- openai: string & import("effect/Brand").Brand<"ProviderV2.ID">;
233
- google: string & import("effect/Brand").Brand<"ProviderV2.ID">;
234
- googleVertex: string & import("effect/Brand").Brand<"ProviderV2.ID">;
235
- githubCopilot: string & import("effect/Brand").Brand<"ProviderV2.ID">;
236
- amazonBedrock: string & import("effect/Brand").Brand<"ProviderV2.ID">;
237
- azure: string & import("effect/Brand").Brand<"ProviderV2.ID">;
238
- openrouter: string & import("effect/Brand").Brand<"ProviderV2.ID">;
239
- mistral: string & import("effect/Brand").Brand<"ProviderV2.ID">;
240
- gitlab: string & import("effect/Brand").Brand<"ProviderV2.ID">;
241
- };
242
- readonly variant: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "VariantID">>>, Schema.optionalKey<Schema.brand<Schema.String, "VariantID">>, never, never>;
243
- }>;
244
- readonly content: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
245
- readonly type: Schema.Literal<"text">;
246
- readonly id: Schema.String;
247
- readonly text: Schema.String;
248
- }>, Schema.Struct<{
249
- readonly type: Schema.Literal<"reasoning">;
250
- readonly id: Schema.String;
251
- readonly text: Schema.String;
252
- readonly providerMetadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>, never, never>;
253
- readonly time: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
254
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
255
- 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>;
256
- }>>>, Schema.optionalKey<Schema.Struct<{
257
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
258
- 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>;
259
- }>>, never, never>;
260
- }>, Schema.Struct<{
261
- readonly type: Schema.Literal<"tool">;
262
- readonly id: Schema.String;
263
- readonly name: Schema.String;
264
- readonly provider: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
265
- readonly executed: Schema.Boolean;
266
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>, never, never>;
267
- readonly resultMetadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>, never, never>;
268
- }>>>, Schema.optionalKey<Schema.Struct<{
269
- readonly executed: Schema.Boolean;
270
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>, never, never>;
271
- readonly resultMetadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.$Record<Schema.String, Schema.Unknown>>>, never, never>;
272
- }>>, never, never>;
273
- readonly state: Schema.toTaggedUnion<"status", readonly [Schema.Struct<{
274
- readonly status: Schema.Literal<"pending">;
275
- readonly input: Schema.String;
276
- }>, Schema.Struct<{
277
- readonly status: Schema.Literal<"running">;
278
- readonly input: Schema.$Record<Schema.String, Schema.Unknown>;
279
- readonly structured: Schema.$Record<Schema.String, Schema.Unknown>;
280
- readonly content: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
281
- readonly type: Schema.Literal<"text">;
282
- readonly text: Schema.String;
283
- }>, Schema.Struct<{
284
- readonly type: Schema.Literal<"file">;
285
- readonly uri: Schema.String;
286
- readonly mime: Schema.String;
287
- readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
288
- }>]>>;
289
- }>, Schema.Struct<{
290
- readonly status: Schema.Literal<"completed">;
291
- readonly input: Schema.$Record<Schema.String, Schema.Unknown>;
292
- readonly attachments: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
293
- readonly uri: Schema.String;
294
- readonly mime: Schema.String;
295
- readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
296
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
297
- readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
298
- readonly start: Schema.Finite;
299
- readonly end: Schema.Finite;
300
- readonly text: Schema.String;
301
- }>>>, Schema.optionalKey<Schema.Struct<{
302
- readonly start: Schema.Finite;
303
- readonly end: Schema.Finite;
304
- readonly text: Schema.String;
305
- }>>, never, never>;
306
- }> & {
307
- create: (input: import("@opencode-ai/schema/prompt").FileAttachment) => {
308
- readonly uri: string;
309
- readonly mime: string;
310
- readonly name?: string | undefined;
311
- readonly description?: string | undefined;
312
- readonly source?: {
313
- readonly start: number;
314
- readonly end: number;
315
- readonly text: string;
316
- } | undefined;
317
- };
318
- }>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
319
- readonly uri: Schema.String;
320
- readonly mime: Schema.String;
321
- readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
322
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
323
- readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
324
- readonly start: Schema.Finite;
325
- readonly end: Schema.Finite;
326
- readonly text: Schema.String;
327
- }>>>, Schema.optionalKey<Schema.Struct<{
328
- readonly start: Schema.Finite;
329
- readonly end: Schema.Finite;
330
- readonly text: Schema.String;
331
- }>>, never, never>;
332
- }> & {
333
- create: (input: import("@opencode-ai/schema/prompt").FileAttachment) => {
334
- readonly uri: string;
335
- readonly mime: string;
336
- readonly name?: string | undefined;
337
- readonly description?: string | undefined;
338
- readonly source?: {
339
- readonly start: number;
340
- readonly end: number;
341
- readonly text: string;
342
- } | undefined;
343
- };
344
- }>>, never, never>;
345
- readonly content: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
346
- readonly type: Schema.Literal<"text">;
347
- readonly text: Schema.String;
348
- }>, Schema.Struct<{
349
- readonly type: Schema.Literal<"file">;
350
- readonly uri: Schema.String;
351
- readonly mime: Schema.String;
352
- readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
353
- }>]>>;
354
- readonly outputPaths: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
355
- readonly structured: Schema.$Record<Schema.String, Schema.Unknown>;
356
- readonly result: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Unknown>>, Schema.optionalKey<Schema.Unknown>, never, never>;
357
- }>, Schema.Struct<{
358
- readonly status: Schema.Literal<"error">;
359
- readonly input: Schema.$Record<Schema.String, Schema.Unknown>;
360
- readonly content: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
361
- readonly type: Schema.Literal<"text">;
362
- readonly text: Schema.String;
363
- }>, Schema.Struct<{
364
- readonly type: Schema.Literal<"file">;
365
- readonly uri: Schema.String;
366
- readonly mime: Schema.String;
367
- readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
368
- }>]>>;
369
- readonly structured: Schema.$Record<Schema.String, Schema.Unknown>;
370
- readonly error: Schema.Struct<{
371
- readonly type: Schema.Literal<"unknown">;
372
- readonly message: Schema.String;
373
- }>;
374
- readonly result: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Unknown>>, Schema.optionalKey<Schema.Unknown>, never, never>;
375
- }>]>;
376
- readonly time: Schema.Struct<{
377
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
378
- 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>;
379
- 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>;
380
- readonly pruned: 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>;
381
- }>;
382
- }>]>>;
383
- readonly snapshot: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
384
- readonly start: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
385
- readonly end: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
386
- 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>;
387
- }>>>, Schema.optionalKey<Schema.Struct<{
388
- readonly start: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
389
- readonly end: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
390
- 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>;
391
- }>>, never, never>;
392
- readonly finish: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
393
- readonly cost: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Finite>>, Schema.optionalKey<Schema.Finite>, never, never>;
394
- readonly tokens: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
395
- readonly input: Schema.Finite;
396
- readonly output: Schema.Finite;
397
- readonly reasoning: Schema.Finite;
398
- readonly cache: Schema.Struct<{
399
- readonly read: Schema.Finite;
400
- readonly write: Schema.Finite;
401
- }>;
402
- }>>>, Schema.optionalKey<Schema.Struct<{
403
- readonly input: Schema.Finite;
404
- readonly output: Schema.Finite;
405
- readonly reasoning: Schema.Finite;
406
- readonly cache: Schema.Struct<{
407
- readonly read: Schema.Finite;
408
- readonly write: Schema.Finite;
409
- }>;
410
- }>>, never, never>;
411
- readonly error: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
412
- readonly type: Schema.Literal<"unknown">;
413
- readonly message: Schema.String;
414
- }>>>, Schema.optionalKey<Schema.Struct<{
415
- readonly type: Schema.Literal<"unknown">;
416
- readonly message: Schema.String;
417
- }>>, never, never>;
418
- readonly time: Schema.Struct<{
419
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
420
- 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>;
421
- }>;
422
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
423
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
424
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
425
- };
426
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
427
- }>, Schema.Struct<{
428
- readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
429
- create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
430
- fromEvent: (eventID: Event.ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
431
- };
432
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
433
- readonly time: Schema.Struct<{
434
- readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
435
- }>;
436
- readonly type: Schema.Literal<"compaction">;
437
- readonly reason: Schema.Literals<readonly ["auto", "manual"]>;
438
- readonly summary: Schema.String;
439
- readonly recent: Schema.String;
440
- }>]>>;
441
- readonly watermark: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.Int, "Event.Seq">>>, Schema.optionalKey<Schema.brand<Schema.Int, "Event.Seq">>, never, never>;
442
- readonly cursor: Schema.Struct<{
443
- readonly previous: Schema.optional<Schema.String>;
444
- readonly next: Schema.optional<Schema.String>;
445
- }>;
446
- }>>, HttpApiEndpoint.Json<typeof UnknownError | typeof SessionNotFoundError | typeof InvalidCursorError>, never, never>, false>;
@@ -1,42 +0,0 @@
1
- import { Session } from "@opencode-ai/schema/session";
2
- import { SessionMessage } from "@opencode-ai/schema/session-message";
3
- import { optional } from "@opencode-ai/schema/schema";
4
- import { Event } from "@opencode-ai/schema/event";
5
- import { Schema } from "effect";
6
- import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
7
- import { InvalidCursorError, SessionNotFoundError, UnknownError } from "../errors.js";
8
- export const SessionMessagesQuery = Schema.Struct({
9
- limit: Schema.optional(Schema.NumberFromString.check(Schema.isInt(), Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(200))).annotate({
10
- description: "Maximum number of messages to return. When omitted, the endpoint returns its default page size.",
11
- }),
12
- order: Schema.optional(Schema.Union([Schema.Literal("asc"), Schema.Literal("desc")])).annotate({
13
- description: "Message order for the first page. Use desc for newest first or asc for oldest first.",
14
- }),
15
- cursor: Schema.optional(Schema.String.annotate({
16
- description: "Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response. Do not combine with order.",
17
- })),
18
- }).annotate({ identifier: "SessionMessagesQuery" });
19
- export const MessageGroup = HttpApiGroup.make("server.message")
20
- .add(HttpApiEndpoint.get("session.messages", "/api/session/:sessionID/message", {
21
- params: { sessionID: Session.ID },
22
- query: SessionMessagesQuery,
23
- success: Schema.Struct({
24
- data: Schema.Array(SessionMessage.Message),
25
- watermark: optional(Event.Seq).annotate({
26
- description: "Durable log seq this snapshot was computed at, read before the snapshot. Attach a live log read after the watermark to compose fetch and stream gap-free; events between the watermark and the snapshot read may be redelivered by the tail and are safe to re-apply. Absent when the session has no durable events.",
27
- }),
28
- cursor: Schema.Struct({
29
- previous: Schema.String.pipe(Schema.optional),
30
- next: Schema.String.pipe(Schema.optional),
31
- }),
32
- }).annotate({ identifier: "SessionMessagesResponse" }),
33
- error: [InvalidCursorError, SessionNotFoundError, UnknownError],
34
- }).annotateMerge(OpenApi.annotations({
35
- identifier: "v2.session.messages",
36
- summary: "Get session messages",
37
- description: "Retrieve projected messages for a session. Items keep the requested order across pages; use cursor.next or cursor.previous to move through the ordered timeline.",
38
- })))
39
- .annotateMerge(OpenApi.annotations({
40
- title: "messages",
41
- description: "Experimental message routes.",
42
- }));