@opencode-ai/protocol 0.0.0-dev-17856 → 0.0.0-dev-17880

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.
@@ -755,6 +755,58 @@ export declare const EventGroup: HttpApiGroup.HttpApiGroup<"server.event", HttpA
755
755
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
756
756
  };
757
757
  }>;
758
+ }, Schema.Struct<{
759
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
760
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
761
+ };
762
+ readonly created: Schema.Finite;
763
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
764
+ readonly type: Schema.Literal<"session.viewed">;
765
+ readonly durable: Schema.Struct<{
766
+ readonly aggregateID: Schema.String;
767
+ readonly seq: Schema.brand<Schema.Int, "Event.Seq">;
768
+ readonly version: Schema.decodeTo<Schema.toType<Schema.brand<Schema.Int, "Event.Version">>, Schema.Literal<number>, never, never>;
769
+ }>;
770
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
771
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
772
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
773
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
774
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
775
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
776
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
777
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
778
+ }>, never, never>;
779
+ }>>>, Schema.optionalKey<Schema.Struct<{
780
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
781
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
782
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
783
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
784
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
785
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
786
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
787
+ }>, never, never>;
788
+ }>>, never, never>;
789
+ readonly data: Schema.Struct<{
790
+ readonly idle: Schema.Finite;
791
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
792
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
793
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
794
+ };
795
+ }>;
796
+ }> & {
797
+ type: "session.viewed";
798
+ durability: "durable";
799
+ durable: {
800
+ readonly version: number;
801
+ readonly aggregate: string;
802
+ };
803
+ data: Schema.Struct<{
804
+ readonly idle: Schema.Finite;
805
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
806
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
807
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
808
+ };
809
+ }>;
758
810
  }, Schema.Struct<{
759
811
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
760
812
  create: () => string & import("effect/Brand").Brand<"Event.ID">;
@@ -921,6 +973,15 @@ export declare const EventGroup: HttpApiGroup.HttpApiGroup<"server.event", HttpA
921
973
  };
922
974
  }>]>;
923
975
  readonly instructions: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>>, Schema.optionalKey<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>, never, never>;
976
+ readonly instructionEntries: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
977
+ readonly removed: Schema.Boolean;
978
+ readonly key: Schema.String;
979
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
980
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
981
+ readonly removed: Schema.Boolean;
982
+ readonly key: Schema.String;
983
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
984
+ }>>>, never, never>;
924
985
  readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
925
986
  create: () => string & import("effect/Brand").Brand<"SessionID">;
926
987
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
@@ -952,6 +1013,15 @@ export declare const EventGroup: HttpApiGroup.HttpApiGroup<"server.event", HttpA
952
1013
  };
953
1014
  }>]>;
954
1015
  readonly instructions: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>>, Schema.optionalKey<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>, never, never>;
1016
+ readonly instructionEntries: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
1017
+ readonly removed: Schema.Boolean;
1018
+ readonly key: Schema.String;
1019
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
1020
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
1021
+ readonly removed: Schema.Boolean;
1022
+ readonly key: Schema.String;
1023
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
1024
+ }>>>, never, never>;
955
1025
  readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
956
1026
  create: () => string & import("effect/Brand").Brand<"SessionID">;
957
1027
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
@@ -5979,6 +6049,26 @@ export declare const EventGroup: HttpApiGroup.HttpApiGroup<"server.event", HttpA
5979
6049
  readonly metadata?: {
5980
6050
  readonly [x: string]: unknown;
5981
6051
  } | undefined;
6052
+ } | {
6053
+ readonly id: string & import("effect/Brand").Brand<"Event.ID">;
6054
+ readonly data: {
6055
+ readonly idle: number;
6056
+ readonly sessionID: string & import("effect/Brand").Brand<"SessionID">;
6057
+ };
6058
+ readonly durable: {
6059
+ readonly aggregateID: string;
6060
+ readonly seq: number & import("effect/Brand").Brand<"Event.Seq">;
6061
+ readonly version: number & import("effect/Brand").Brand<"Event.Version">;
6062
+ };
6063
+ readonly type: "session.viewed";
6064
+ readonly created: number;
6065
+ readonly location?: {
6066
+ readonly directory: string & import("effect/Brand").Brand<"AbsolutePath">;
6067
+ readonly workspaceID?: (string & import("effect/Brand").Brand<"Workspace.ID">) | undefined;
6068
+ } | undefined;
6069
+ readonly metadata?: {
6070
+ readonly [x: string]: unknown;
6071
+ } | undefined;
5982
6072
  } | {
5983
6073
  readonly id: string & import("effect/Brand").Brand<"Event.ID">;
5984
6074
  readonly data: {
@@ -6037,6 +6127,11 @@ export declare const EventGroup: HttpApiGroup.HttpApiGroup<"server.event", HttpA
6037
6127
  readonly instructions?: {
6038
6128
  readonly [x: string & import("effect/Brand").Brand<"Instruction.Key">]: string & import("effect/Brand").Brand<"Instruction.Hash">;
6039
6129
  } | undefined;
6130
+ readonly instructionEntries?: readonly {
6131
+ readonly removed: boolean;
6132
+ readonly key: string;
6133
+ readonly value: Schema.Json;
6134
+ }[] | undefined;
6040
6135
  };
6041
6136
  readonly durable: {
6042
6137
  readonly aggregateID: string;
@@ -8185,6 +8280,58 @@ export declare const OpenCodeEvent: Schema.Union<readonly [Schema.Struct<{
8185
8280
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
8186
8281
  };
8187
8282
  }>;
8283
+ }, Schema.Struct<{
8284
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
8285
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
8286
+ };
8287
+ readonly created: Schema.Finite;
8288
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
8289
+ readonly type: Schema.Literal<"session.viewed">;
8290
+ readonly durable: Schema.Struct<{
8291
+ readonly aggregateID: Schema.String;
8292
+ readonly seq: Schema.brand<Schema.Int, "Event.Seq">;
8293
+ readonly version: Schema.decodeTo<Schema.toType<Schema.brand<Schema.Int, "Event.Version">>, Schema.Literal<number>, never, never>;
8294
+ }>;
8295
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
8296
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
8297
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
8298
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
8299
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
8300
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
8301
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
8302
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
8303
+ }>, never, never>;
8304
+ }>>>, Schema.optionalKey<Schema.Struct<{
8305
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
8306
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
8307
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
8308
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
8309
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
8310
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
8311
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
8312
+ }>, never, never>;
8313
+ }>>, never, never>;
8314
+ readonly data: Schema.Struct<{
8315
+ readonly idle: Schema.Finite;
8316
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
8317
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
8318
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
8319
+ };
8320
+ }>;
8321
+ }> & {
8322
+ type: "session.viewed";
8323
+ durability: "durable";
8324
+ durable: {
8325
+ readonly version: number;
8326
+ readonly aggregate: string;
8327
+ };
8328
+ data: Schema.Struct<{
8329
+ readonly idle: Schema.Finite;
8330
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
8331
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
8332
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
8333
+ };
8334
+ }>;
8188
8335
  }, Schema.Struct<{
8189
8336
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
8190
8337
  create: () => string & import("effect/Brand").Brand<"Event.ID">;
@@ -8351,6 +8498,15 @@ export declare const OpenCodeEvent: Schema.Union<readonly [Schema.Struct<{
8351
8498
  };
8352
8499
  }>]>;
8353
8500
  readonly instructions: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>>, Schema.optionalKey<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>, never, never>;
8501
+ readonly instructionEntries: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
8502
+ readonly removed: Schema.Boolean;
8503
+ readonly key: Schema.String;
8504
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
8505
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
8506
+ readonly removed: Schema.Boolean;
8507
+ readonly key: Schema.String;
8508
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
8509
+ }>>>, never, never>;
8354
8510
  readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
8355
8511
  create: () => string & import("effect/Brand").Brand<"SessionID">;
8356
8512
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
@@ -8382,6 +8538,15 @@ export declare const OpenCodeEvent: Schema.Union<readonly [Schema.Struct<{
8382
8538
  };
8383
8539
  }>]>;
8384
8540
  readonly instructions: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>>, Schema.optionalKey<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>, never, never>;
8541
+ readonly instructionEntries: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
8542
+ readonly removed: Schema.Boolean;
8543
+ readonly key: Schema.String;
8544
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
8545
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
8546
+ readonly removed: Schema.Boolean;
8547
+ readonly key: Schema.String;
8548
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
8549
+ }>>>, never, never>;
8385
8550
  readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
8386
8551
  create: () => string & import("effect/Brand").Brand<"SessionID">;
8387
8552
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
@@ -254,9 +254,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
254
254
  readonly write: Schema.Finite;
255
255
  }>;
256
256
  }>;
257
+ readonly outcome: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>>, Schema.optionalKey<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>, never, never>;
257
258
  readonly time: Schema.Struct<{
258
259
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
259
260
  readonly updated: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
261
+ readonly idle: 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>;
262
+ readonly viewed: 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>;
260
263
  readonly archived: 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>;
261
264
  }>;
262
265
  readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
@@ -540,9 +543,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
540
543
  readonly write: Schema.Finite;
541
544
  }>;
542
545
  }>;
546
+ readonly outcome: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>>, Schema.optionalKey<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>, never, never>;
543
547
  readonly time: Schema.Struct<{
544
548
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
545
549
  readonly updated: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
550
+ readonly idle: 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>;
551
+ readonly viewed: 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>;
546
552
  readonly archived: 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>;
547
553
  }>;
548
554
  readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
@@ -720,9 +726,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
720
726
  readonly write: Schema.Finite;
721
727
  }>;
722
728
  }>;
729
+ readonly outcome: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>>, Schema.optionalKey<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>, never, never>;
723
730
  readonly time: Schema.Struct<{
724
731
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
725
732
  readonly updated: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
733
+ readonly idle: 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>;
734
+ readonly viewed: 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>;
726
735
  readonly archived: 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>;
727
736
  }>;
728
737
  readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
@@ -1459,9 +1468,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
1459
1468
  readonly write: Schema.Finite;
1460
1469
  }>;
1461
1470
  }>;
1471
+ readonly outcome: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>>, Schema.optionalKey<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>, never, never>;
1462
1472
  readonly time: Schema.Struct<{
1463
1473
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
1464
1474
  readonly updated: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
1475
+ readonly idle: 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>;
1476
+ readonly viewed: 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>;
1465
1477
  readonly archived: 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>;
1466
1478
  }>;
1467
1479
  readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
@@ -1637,9 +1649,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
1637
1649
  readonly write: Schema.Finite;
1638
1650
  }>;
1639
1651
  }>;
1652
+ readonly outcome: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>>, Schema.optionalKey<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>, never, never>;
1640
1653
  readonly time: Schema.Struct<{
1641
1654
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
1642
1655
  readonly updated: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
1656
+ readonly idle: 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>;
1657
+ readonly viewed: 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>;
1643
1658
  readonly archived: 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>;
1644
1659
  }>;
1645
1660
  readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
@@ -2389,9 +2404,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
2389
2404
  readonly write: Schema.Finite;
2390
2405
  }>;
2391
2406
  }>;
2407
+ readonly outcome: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>>, Schema.optionalKey<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>, never, never>;
2392
2408
  readonly time: Schema.Struct<{
2393
2409
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
2394
2410
  readonly updated: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
2411
+ readonly idle: 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>;
2412
+ readonly viewed: 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>;
2395
2413
  readonly archived: 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>;
2396
2414
  }>;
2397
2415
  readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
@@ -2579,9 +2597,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
2579
2597
  readonly write: Schema.Finite;
2580
2598
  }>;
2581
2599
  }>;
2600
+ readonly outcome: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>>, Schema.optionalKey<Schema.Literals<readonly ["succeeded", "failed", "interrupted"]>>, never, never>;
2582
2601
  readonly time: Schema.Struct<{
2583
2602
  readonly created: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
2584
2603
  readonly updated: Schema.decodeTo<Schema.DateTimeUtc, Schema.Finite, never, never>;
2604
+ readonly idle: 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>;
2605
+ readonly viewed: 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>;
2585
2606
  readonly archived: 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>;
2586
2607
  }>;
2587
2608
  readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
@@ -4765,6 +4786,58 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
4765
4786
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4766
4787
  };
4767
4788
  }>;
4789
+ }) | (Schema.Struct<{
4790
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
4791
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
4792
+ };
4793
+ readonly created: Schema.Finite;
4794
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
4795
+ readonly type: Schema.Literal<"session.viewed">;
4796
+ readonly durable: Schema.Struct<{
4797
+ readonly aggregateID: Schema.String;
4798
+ readonly seq: Schema.brand<Schema.Int, "Event.Seq">;
4799
+ readonly version: Schema.decodeTo<Schema.toType<Schema.brand<Schema.Int, "Event.Version">>, Schema.Literal<number>, never, never>;
4800
+ }>;
4801
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
4802
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
4803
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
4804
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4805
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4806
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
4807
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4808
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4809
+ }>, never, never>;
4810
+ }>>>, Schema.optionalKey<Schema.Struct<{
4811
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
4812
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
4813
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4814
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4815
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
4816
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4817
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4818
+ }>, never, never>;
4819
+ }>>, never, never>;
4820
+ readonly data: Schema.Struct<{
4821
+ readonly idle: Schema.Finite;
4822
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4823
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4824
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4825
+ };
4826
+ }>;
4827
+ }> & {
4828
+ type: "session.viewed";
4829
+ durability: "durable";
4830
+ durable: {
4831
+ readonly version: number;
4832
+ readonly aggregate: string;
4833
+ };
4834
+ data: Schema.Struct<{
4835
+ readonly idle: Schema.Finite;
4836
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4837
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4838
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4839
+ };
4840
+ }>;
4768
4841
  }) | (Schema.Struct<{
4769
4842
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
4770
4843
  create: () => string & import("effect/Brand").Brand<"Event.ID">;
@@ -4865,6 +4938,15 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
4865
4938
  };
4866
4939
  }>]>;
4867
4940
  readonly instructions: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>>, Schema.optionalKey<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>, never, never>;
4941
+ readonly instructionEntries: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
4942
+ readonly removed: Schema.Boolean;
4943
+ readonly key: Schema.String;
4944
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
4945
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
4946
+ readonly removed: Schema.Boolean;
4947
+ readonly key: Schema.String;
4948
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
4949
+ }>>>, never, never>;
4868
4950
  readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4869
4951
  create: () => string & import("effect/Brand").Brand<"SessionID">;
4870
4952
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
@@ -4896,6 +4978,15 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
4896
4978
  };
4897
4979
  }>]>;
4898
4980
  readonly instructions: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>>, Schema.optionalKey<Schema.$Record<Schema.brand<Schema.String, "Instruction.Key">, Schema.brand<Schema.String, "Instruction.Hash">>>, never, never>;
4981
+ readonly instructionEntries: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
4982
+ readonly removed: Schema.Boolean;
4983
+ readonly key: Schema.String;
4984
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
4985
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
4986
+ readonly removed: Schema.Boolean;
4987
+ readonly key: Schema.String;
4988
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
4989
+ }>>>, never, never>;
4899
4990
  readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4900
4991
  create: () => string & import("effect/Brand").Brand<"SessionID">;
4901
4992
  descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
@@ -7663,6 +7754,26 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
7663
7754
  readonly metadata?: {
7664
7755
  readonly [x: string]: unknown;
7665
7756
  } | undefined;
7757
+ } | {
7758
+ readonly id: string & import("effect/Brand").Brand<"Event.ID">;
7759
+ readonly data: {
7760
+ readonly idle: number;
7761
+ readonly sessionID: string & import("effect/Brand").Brand<"SessionID">;
7762
+ };
7763
+ readonly durable: {
7764
+ readonly aggregateID: string;
7765
+ readonly seq: number & import("effect/Brand").Brand<"Event.Seq">;
7766
+ readonly version: number & import("effect/Brand").Brand<"Event.Version">;
7767
+ };
7768
+ readonly type: "session.viewed";
7769
+ readonly created: number;
7770
+ readonly location?: {
7771
+ readonly directory: string & import("effect/Brand").Brand<"AbsolutePath">;
7772
+ readonly workspaceID?: (string & import("effect/Brand").Brand<"Workspace.ID">) | undefined;
7773
+ } | undefined;
7774
+ readonly metadata?: {
7775
+ readonly [x: string]: unknown;
7776
+ } | undefined;
7666
7777
  } | {
7667
7778
  readonly id: string & import("effect/Brand").Brand<"Event.ID">;
7668
7779
  readonly data: {
@@ -7727,6 +7838,11 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
7727
7838
  readonly instructions?: {
7728
7839
  readonly [x: string & import("effect/Brand").Brand<"Instruction.Key">]: string & import("effect/Brand").Brand<"Instruction.Hash">;
7729
7840
  } | undefined;
7841
+ readonly instructionEntries?: readonly {
7842
+ readonly removed: boolean;
7843
+ readonly key: string;
7844
+ readonly value: Schema.Json;
7845
+ }[] | undefined;
7730
7846
  };
7731
7847
  readonly durable: {
7732
7848
  readonly aggregateID: string;
@@ -9258,5 +9374,12 @@ export declare const makeSessionGroup: <I extends HttpApiMiddleware.AnyId, S>(se
9258
9374
  };
9259
9375
  }>>, never, Schema.toCodecJson<Schema.Struct<{
9260
9376
  readonly variables: Schema.$Record<Schema.String, Schema.String>;
9377
+ }>>, never, Schema.toCodecJson<HttpApiSchema.NoContent>, Schema.toCodecJson<typeof SessionNotFoundError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"session.view", "POST", "/api/session/:sessionID/view", Schema.toCodecStringTree<Schema.Struct<{
9378
+ sessionID: Schema.brand<Schema.String, "SessionID"> & {
9379
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
9380
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
9381
+ };
9382
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
9383
+ readonly idle: Schema.Int;
9261
9384
  }>>, never, Schema.toCodecJson<HttpApiSchema.NoContent>, Schema.toCodecJson<typeof SessionNotFoundError>, never, never>, false>;
9262
9385
  export {};
@@ -5,7 +5,7 @@ import { PromptInput } from "@opencode-ai/schema/prompt-input";
5
5
  import { Session } from "@opencode-ai/schema/session";
6
6
  import { InstructionEntry } from "@opencode-ai/schema/instruction-entry";
7
7
  import { Project } from "@opencode-ai/schema/project";
8
- import { AbsolutePath, PositiveInt, RelativePath, statics } from "@opencode-ai/schema/schema";
8
+ import { AbsolutePath, NonNegativeInt, PositiveInt, RelativePath, statics } from "@opencode-ai/schema/schema";
9
9
  import { Event } from "@opencode-ai/schema/event";
10
10
  import { Workspace } from "@opencode-ai/schema/workspace";
11
11
  import { Context, Effect, Encoding, Result, Schema, SchemaGetter, Struct } from "effect";
@@ -518,6 +518,16 @@ export const makeSessionGroup = (sessionLocationMiddleware) => HttpApiGroup.make
518
518
  identifier: "v2.session.environment",
519
519
  summary: "Set session environment",
520
520
  description: "Replace the process environment used by local shell commands for this session.",
521
+ })))
522
+ .add(HttpApiEndpoint.post("session.view", "/api/session/:sessionID/view", {
523
+ params: { sessionID: Session.ID },
524
+ payload: Schema.Struct({ idle: NonNegativeInt }),
525
+ success: HttpApiSchema.NoContent,
526
+ error: SessionNotFoundError,
527
+ }).annotateMerge(OpenApi.annotations({
528
+ identifier: "v2.session.view",
529
+ summary: "View session",
530
+ description: "Mark the idle transition observed by the viewer as viewed.",
521
531
  })))
522
532
  .annotateMerge(OpenApi.annotations({
523
533
  title: "session",
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-dev-17856",
4
+ "version": "0.0.0-dev-17880",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -32,13 +32,14 @@
32
32
  "typecheck": "tsgo --noEmit"
33
33
  },
34
34
  "dependencies": {
35
- "@opencode-ai/schema": "0.0.0-dev-17856",
35
+ "@opencode-ai/schema": "0.0.0-dev-17880",
36
36
  "effect": "4.0.0-rc.110"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@tsconfig/bun": "1.0.9",
40
40
  "@types/bun": "1.3.13",
41
41
  "@typescript/native-preview": "7.0.0-dev.20251207.1",
42
+ "prettier": "3.6.2",
42
43
  "typescript": "5.8.2"
43
44
  }
44
45
  }