@opencode-ai/protocol 0.0.0-next-14984 → 0.0.0-next-14986
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/groups/event.d.ts
CHANGED
|
@@ -2,19 +2,7 @@ import { Event } from "@opencode-ai/schema/event";
|
|
|
2
2
|
import type { Definition } from "@opencode-ai/schema/event";
|
|
3
3
|
import { Schema } from "effect";
|
|
4
4
|
import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
|
|
5
|
-
export declare const makeEventGroup: <const Definitions extends ReadonlyArray<Definition>>(definitions: Definitions) => HttpApiGroup.HttpApiGroup<"server.event", HttpApiEndpoint.HttpApiEndpoint<"event.
|
|
6
|
-
readonly type: Schema.Literal<"log.hint">;
|
|
7
|
-
readonly aggregateID: Schema.String;
|
|
8
|
-
readonly seq: Schema.brand<Schema.Int, "Event.Seq">;
|
|
9
|
-
}>, Schema.Struct<{
|
|
10
|
-
readonly type: Schema.Literal<"log.sweep_required">;
|
|
11
|
-
}>]>>, Schema.Never, {
|
|
12
|
-
readonly type: "log.hint";
|
|
13
|
-
readonly aggregateID: string;
|
|
14
|
-
readonly seq: number & import("effect/Brand").Brand<"Event.Seq">;
|
|
15
|
-
} | {
|
|
16
|
-
readonly type: "log.sweep_required";
|
|
17
|
-
}>, HttpApiEndpoint.Json<never>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"event.subscribe", "GET", "/api/event", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiSchema.StreamSse<HttpApiSchema.SseEventFromData<Schema.Union<readonly [...Definitions, ...Schema.Struct<{
|
|
5
|
+
export declare const makeEventGroup: <const Definitions extends ReadonlyArray<Definition>>(definitions: Definitions) => HttpApiGroup.HttpApiGroup<"server.event", HttpApiEndpoint.HttpApiEndpoint<"event.subscribe", "GET", "/api/event", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiSchema.StreamSse<HttpApiSchema.SseEventFromData<Schema.Union<readonly [...Definitions, ...Schema.Struct<{
|
|
18
6
|
readonly type: Schema.Literal<"server.connected">;
|
|
19
7
|
readonly data: Schema.Struct<{}>;
|
|
20
8
|
readonly id: Schema.brand<Schema.String, "Event.ID"> & {
|
|
@@ -43,19 +31,7 @@ export declare const makeEventGroup: <const Definitions extends ReadonlyArray<De
|
|
|
43
31
|
readonly workspaceID?: (string & import("effect/Brand").Brand<"WorkspaceV2.ID">) | undefined;
|
|
44
32
|
} | undefined;
|
|
45
33
|
}[]])[number]>, HttpApiEndpoint.Json<never>, never, never>, false>;
|
|
46
|
-
export declare const EventGroup: HttpApiGroup.HttpApiGroup<"server.event", HttpApiEndpoint.HttpApiEndpoint<"event.
|
|
47
|
-
readonly type: Schema.Literal<"log.hint">;
|
|
48
|
-
readonly aggregateID: Schema.String;
|
|
49
|
-
readonly seq: Schema.brand<Schema.Int, "Event.Seq">;
|
|
50
|
-
}>, Schema.Struct<{
|
|
51
|
-
readonly type: Schema.Literal<"log.sweep_required">;
|
|
52
|
-
}>]>>, Schema.Never, {
|
|
53
|
-
readonly type: "log.hint";
|
|
54
|
-
readonly aggregateID: string;
|
|
55
|
-
readonly seq: number & import("effect/Brand").Brand<"Event.Seq">;
|
|
56
|
-
} | {
|
|
57
|
-
readonly type: "log.sweep_required";
|
|
58
|
-
}>, HttpApiEndpoint.Json<never>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"event.subscribe", "GET", "/api/event", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiSchema.StreamSse<HttpApiSchema.SseEventFromData<Schema.Union<readonly [Schema.Struct<{
|
|
34
|
+
export declare const EventGroup: HttpApiGroup.HttpApiGroup<"server.event", HttpApiEndpoint.HttpApiEndpoint<"event.subscribe", "GET", "/api/event", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiSchema.StreamSse<HttpApiSchema.SseEventFromData<Schema.Union<readonly [Schema.Struct<{
|
|
59
35
|
readonly id: Schema.brand<Schema.String, "Event.ID"> & {
|
|
60
36
|
create: () => string & import("effect/Brand").Brand<"Event.ID">;
|
|
61
37
|
};
|
package/dist/groups/event.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Event } from "@opencode-ai/schema/event";
|
|
2
|
-
import { EventLog } from "@opencode-ai/schema/event-log";
|
|
3
2
|
import { EventManifest } from "@opencode-ai/schema/event-manifest";
|
|
4
3
|
import { Location } from "@opencode-ai/schema/location";
|
|
5
4
|
import { Schema } from "effect";
|
|
@@ -31,14 +30,7 @@ const make = (definitions) => {
|
|
|
31
30
|
}).annotateMerge(OpenApi.annotations({
|
|
32
31
|
identifier: "v2.event.subscribe",
|
|
33
32
|
summary: "Subscribe to events",
|
|
34
|
-
description: "Subscribe to native event payloads for the server. Volatile by contract: a slow consumer overflows and fails the stream, and events during disconnection are missed.
|
|
35
|
-
})))
|
|
36
|
-
.add(HttpApiEndpoint.get("event.changes", "/api/event/changes", {
|
|
37
|
-
success: HttpApiSchema.StreamSse({ data: EventLog.Change }),
|
|
38
|
-
}).annotateMerge(OpenApi.annotations({
|
|
39
|
-
identifier: "v2.event.changes",
|
|
40
|
-
summary: "Subscribe to change hints",
|
|
41
|
-
description: "Payload-free hint channel: after an event commits, a subscriber eventually receives a hint for that aggregate with seq at or beyond the event, or a sweep-required marker. Hints coalesce to the latest seq per aggregate under backpressure and the stream never fails from overflow. No consumer may derive correctness from receiving a hint; correctness always comes from durable log reads plus the consumer's own checkpoint. A sweep-required marker is emitted first on every (re)subscribe and whenever hint retention is exceeded: treat every aggregate as potentially dirty and recover via bounded sweep plus log reads.",
|
|
33
|
+
description: "Subscribe to native event payloads for the server. Volatile by contract: a slow consumer overflows and fails the stream, and events during disconnection are missed.",
|
|
42
34
|
})))
|
|
43
35
|
.annotateMerge(OpenApi.annotations({ title: "event", description: "Experimental event stream routes." })),
|
|
44
36
|
};
|
package/dist/groups/message.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Event } from "@opencode-ai/schema/event";
|
|
2
1
|
import { Schema } from "effect";
|
|
3
2
|
import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
|
|
4
3
|
import { InvalidCursorError, SessionNotFoundError, UnknownError } from "../errors.js";
|
|
@@ -22,7 +21,7 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
22
21
|
readonly agent: Schema.String;
|
|
23
22
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
24
23
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
25
|
-
fromEvent: (eventID:
|
|
24
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
26
25
|
};
|
|
27
26
|
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
27
|
readonly time: Schema.Struct<{
|
|
@@ -82,7 +81,7 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
82
81
|
}>>, never, never>;
|
|
83
82
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
84
83
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
85
|
-
fromEvent: (eventID:
|
|
84
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
86
85
|
};
|
|
87
86
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
88
87
|
readonly time: Schema.Struct<{
|
|
@@ -169,7 +168,7 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
169
168
|
readonly type: Schema.Literal<"user">;
|
|
170
169
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
171
170
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
172
|
-
fromEvent: (eventID:
|
|
171
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
173
172
|
};
|
|
174
173
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
175
174
|
readonly time: Schema.Struct<{
|
|
@@ -185,7 +184,7 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
185
184
|
readonly type: Schema.Literal<"synthetic">;
|
|
186
185
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
187
186
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
188
|
-
fromEvent: (eventID:
|
|
187
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
189
188
|
};
|
|
190
189
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
191
190
|
readonly time: Schema.Struct<{
|
|
@@ -196,7 +195,7 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
196
195
|
readonly text: Schema.String;
|
|
197
196
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
198
197
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
199
|
-
fromEvent: (eventID:
|
|
198
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
200
199
|
};
|
|
201
200
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
202
201
|
readonly time: Schema.Struct<{
|
|
@@ -208,7 +207,7 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
208
207
|
readonly text: Schema.String;
|
|
209
208
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
210
209
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
211
|
-
fromEvent: (eventID:
|
|
210
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
212
211
|
};
|
|
213
212
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
214
213
|
readonly time: Schema.Struct<{
|
|
@@ -251,7 +250,7 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
251
250
|
}>;
|
|
252
251
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
253
252
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
254
|
-
fromEvent: (eventID:
|
|
253
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
255
254
|
};
|
|
256
255
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
257
256
|
}>, Schema.Struct<{
|
|
@@ -454,13 +453,13 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
454
453
|
}>;
|
|
455
454
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
456
455
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
457
|
-
fromEvent: (eventID:
|
|
456
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
458
457
|
};
|
|
459
458
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
460
459
|
}>, Schema.Struct<{
|
|
461
460
|
readonly id: Schema.brand<Schema.String, "Session.Message.ID"> & {
|
|
462
461
|
create: () => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
463
|
-
fromEvent: (eventID:
|
|
462
|
+
fromEvent: (eventID: import("@opencode-ai/schema/event").ID) => string & import("effect/Brand").Brand<"Session.Message.ID">;
|
|
464
463
|
};
|
|
465
464
|
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
466
465
|
readonly time: Schema.Struct<{
|
|
@@ -471,7 +470,6 @@ export declare const MessageGroup: HttpApiGroup.HttpApiGroup<"server.message", H
|
|
|
471
470
|
readonly summary: Schema.String;
|
|
472
471
|
readonly recent: Schema.String;
|
|
473
472
|
}>]>>;
|
|
474
|
-
readonly watermark: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.Int, "Event.Seq">>>, Schema.optionalKey<Schema.brand<Schema.Int, "Event.Seq">>, never, never>;
|
|
475
473
|
readonly cursor: Schema.Struct<{
|
|
476
474
|
readonly previous: Schema.optional<Schema.String>;
|
|
477
475
|
readonly next: Schema.optional<Schema.String>;
|
package/dist/groups/message.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Session } from "@opencode-ai/schema/session";
|
|
2
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
3
|
import { Schema } from "effect";
|
|
6
4
|
import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
|
|
7
5
|
import { InvalidCursorError, SessionNotFoundError, UnknownError } from "../errors.js";
|
|
@@ -22,9 +20,6 @@ export const MessageGroup = HttpApiGroup.make("server.message")
|
|
|
22
20
|
query: SessionMessagesQuery,
|
|
23
21
|
success: Schema.Struct({
|
|
24
22
|
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
23
|
cursor: Schema.Struct({
|
|
29
24
|
previous: Schema.String.pipe(Schema.optional),
|
|
30
25
|
next: Schema.String.pipe(Schema.optional),
|
package/dist/groups/session.d.ts
CHANGED
|
@@ -263,10 +263,6 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
|
|
|
263
263
|
}>>>, never, never>;
|
|
264
264
|
}>>, never, never>;
|
|
265
265
|
}>>;
|
|
266
|
-
readonly watermarks: Schema.$Record<Schema.brand<Schema.String, "SessionID"> & {
|
|
267
|
-
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
268
|
-
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
269
|
-
}, Schema.brand<Schema.Int, "Event.Seq">>;
|
|
270
266
|
readonly cursor: Schema.Struct<{
|
|
271
267
|
readonly previous: Schema.optional<Schema.brand<Schema.String, "SessionsCursor"> & {
|
|
272
268
|
make: (input: typeof SessionsCursorInput.Type) => string & import("effect/Brand").Brand<"SessionsCursor">;
|
|
@@ -504,10 +500,6 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
|
|
|
504
500
|
}, Schema.Struct<{
|
|
505
501
|
readonly type: Schema.Literal<"running">;
|
|
506
502
|
}>>;
|
|
507
|
-
readonly watermarks: Schema.$Record<Schema.brand<Schema.String, "SessionID"> & {
|
|
508
|
-
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
509
|
-
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
510
|
-
}, Schema.brand<Schema.Int, "Event.Seq">>;
|
|
511
503
|
}>>, HttpApiEndpoint.Json<never>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"session.get", "GET", "/api/session/:sessionID", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
512
504
|
sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
513
505
|
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
@@ -1840,7 +1832,7 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
|
|
|
1840
1832
|
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
1841
1833
|
};
|
|
1842
1834
|
key: Schema.String;
|
|
1843
|
-
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<typeof SessionNotFoundError>, I, HttpApiMiddleware.Requires<I>> | HttpApiEndpoint.HttpApiEndpoint<"session.log", "GET", "/api/session/:sessionID/log", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
1835
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<typeof SessionNotFoundError>, I, HttpApiMiddleware.Requires<I>> | HttpApiEndpoint.HttpApiEndpoint<"session.log", "GET", "/api/experimental/session/:sessionID/log", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
1844
1836
|
sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
1845
1837
|
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
1846
1838
|
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
package/dist/groups/session.js
CHANGED
|
@@ -74,10 +74,6 @@ export const SessionsCursor = Schema.String.pipe(Schema.brand("SessionsCursor"),
|
|
|
74
74
|
const SessionActive = Schema.Struct({
|
|
75
75
|
type: Schema.Literal("running"),
|
|
76
76
|
}).annotate({ identifier: "SessionActive" });
|
|
77
|
-
const SessionWatermarks = Schema.Record(Session.ID, Event.Seq).annotate({
|
|
78
|
-
identifier: "SessionWatermarks",
|
|
79
|
-
description: "Durable log seq each session's snapshot was computed at. Attach a live log read after the watermark to compose fetch and stream gap-free; apply a snapshot only where its watermark is at or beyond already-applied events. Sessions without durable events are absent.",
|
|
80
|
-
});
|
|
81
77
|
const BooleanFromString = Schema.Literals(["true", "false"]).pipe(Schema.decodeTo(Schema.Boolean, {
|
|
82
78
|
decode: SchemaGetter.transform((value) => value === "true"),
|
|
83
79
|
encode: SchemaGetter.transform((value) => (value ? "true" : "false")),
|
|
@@ -97,7 +93,6 @@ export const makeSessionGroup = (sessionLocationMiddleware) => HttpApiGroup.make
|
|
|
97
93
|
query: SessionsQuery,
|
|
98
94
|
success: Schema.Struct({
|
|
99
95
|
data: Schema.Array(Session.Info),
|
|
100
|
-
watermarks: SessionWatermarks,
|
|
101
96
|
cursor: Schema.Struct({
|
|
102
97
|
previous: SessionsCursor.pipe(Schema.optional),
|
|
103
98
|
next: SessionsCursor.pipe(Schema.optional),
|
|
@@ -123,11 +118,11 @@ export const makeSessionGroup = (sessionLocationMiddleware) => HttpApiGroup.make
|
|
|
123
118
|
description: "Create a session at the requested location.",
|
|
124
119
|
})))
|
|
125
120
|
.add(HttpApiEndpoint.get("session.active", "/api/session/active", {
|
|
126
|
-
success: Schema.Struct({ data: Schema.Record(Session.ID, SessionActive)
|
|
121
|
+
success: Schema.Struct({ data: Schema.Record(Session.ID, SessionActive) }),
|
|
127
122
|
}).annotateMerge(OpenApi.annotations({
|
|
128
123
|
identifier: "v2.session.active",
|
|
129
124
|
summary: "List active sessions",
|
|
130
|
-
description: "Retrieve foreground Session drains currently owned by this OpenCode process. Sessions absent from the result are inactive.
|
|
125
|
+
description: "Retrieve foreground Session drains currently owned by this OpenCode process. Sessions absent from the result are inactive.",
|
|
131
126
|
})))
|
|
132
127
|
.add(HttpApiEndpoint.get("session.get", "/api/session/:sessionID", {
|
|
133
128
|
params: { sessionID: Session.ID },
|
|
@@ -367,7 +362,7 @@ export const makeSessionGroup = (sessionLocationMiddleware) => HttpApiGroup.make
|
|
|
367
362
|
summary: "Remove context entry",
|
|
368
363
|
description: "Remove one context entry; the removal is announced to the model at the next turn boundary.",
|
|
369
364
|
})))
|
|
370
|
-
.add(HttpApiEndpoint.get("session.log", "/api/session/:sessionID/log", {
|
|
365
|
+
.add(HttpApiEndpoint.get("session.log", "/api/experimental/session/:sessionID/log", {
|
|
371
366
|
params: { sessionID: Session.ID },
|
|
372
367
|
query: {
|
|
373
368
|
after: Schema.NumberFromString.pipe(Schema.decodeTo(Event.Seq), Schema.optional),
|
|
@@ -382,7 +377,7 @@ export const makeSessionGroup = (sessionLocationMiddleware) => HttpApiGroup.make
|
|
|
382
377
|
.annotateMerge(OpenApi.annotations({
|
|
383
378
|
identifier: "v2.session.log",
|
|
384
379
|
summary: "Read the session log",
|
|
385
|
-
description: "
|
|
380
|
+
description: "Experimental durable session event log. Reads events after an exclusive aggregate sequence and continues with live events when follow=true.",
|
|
386
381
|
})))
|
|
387
382
|
.add(HttpApiEndpoint.post("session.interrupt", "/api/session/:sessionID/interrupt", {
|
|
388
383
|
params: { sessionID: Session.ID },
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@opencode-ai/protocol",
|
|
4
|
-
"version": "0.0.0-next-
|
|
4
|
+
"version": "0.0.0-next-14986",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"typecheck": "tsgo --noEmit"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@opencode-ai/schema": "0.0.0-next-
|
|
29
|
+
"@opencode-ai/schema": "0.0.0-next-14986",
|
|
30
30
|
"effect": "4.0.0-beta.83"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|