@opencode-ai/schema 0.0.0-beta-18155 → 0.0.0-beta-18219

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.
@@ -86,10 +86,12 @@ declare const Model_base: Schema.Class<Model, Schema.Struct<{
86
86
  readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>, never, never>;
87
87
  readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
88
88
  readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
89
+ readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
89
90
  }>>>, Schema.optionalKey<Schema.Struct<{
90
91
  readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<import("../model.js").ReasoningField, import("../model.js").ReasoningField, never, never>>, never, never>;
91
92
  readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
92
93
  readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
94
+ readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
93
95
  }>>, never, never>;
94
96
  readonly package: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
95
97
  }>, {}>;
@@ -3925,6 +3925,7 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
3925
3925
  readonly messageID: Schema.String;
3926
3926
  readonly id: Schema.String;
3927
3927
  }>]>>, never, never>;
3928
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
3928
3929
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
3929
3930
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
3930
3931
  };
@@ -3951,6 +3952,7 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
3951
3952
  readonly messageID: Schema.String;
3952
3953
  readonly id: Schema.String;
3953
3954
  }>]>>, never, never>;
3955
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
3954
3956
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
3955
3957
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
3956
3958
  };
@@ -4471,6 +4473,150 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
4471
4473
  ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
4472
4474
  };
4473
4475
  }>;
4476
+ }, Schema.Struct<{
4477
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
4478
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
4479
+ };
4480
+ readonly created: Schema.Finite;
4481
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
4482
+ readonly type: Schema.Literal<"persistent-pty.added">;
4483
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
4484
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
4485
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
4486
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4487
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4488
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
4489
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4490
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4491
+ }>, never, never>;
4492
+ }>>>, Schema.optionalKey<Schema.Struct<{
4493
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
4494
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
4495
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4496
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4497
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
4498
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4499
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4500
+ }>, never, never>;
4501
+ }>>, never, never>;
4502
+ readonly data: Schema.Struct<{
4503
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4504
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4505
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4506
+ };
4507
+ readonly terminal: Schema.Struct<{
4508
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4509
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4510
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4511
+ };
4512
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
4513
+ readonly size: Schema.Struct<{
4514
+ readonly cols: Schema.Int;
4515
+ readonly rows: Schema.Int;
4516
+ }>;
4517
+ readonly output: Schema.Struct<{
4518
+ readonly head: Schema.Int;
4519
+ readonly tail: Schema.Int;
4520
+ }>;
4521
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
4522
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
4523
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
4524
+ };
4525
+ readonly title: Schema.String;
4526
+ readonly command: Schema.String;
4527
+ readonly args: Schema.$Array<Schema.String>;
4528
+ readonly cwd: Schema.String;
4529
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
4530
+ readonly pid: Schema.Int;
4531
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
4532
+ }>;
4533
+ }>;
4534
+ }> & {
4535
+ type: "persistent-pty.added";
4536
+ durability: "ephemeral";
4537
+ durable: undefined;
4538
+ data: Schema.Struct<{
4539
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4540
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4541
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4542
+ };
4543
+ readonly terminal: Schema.Struct<{
4544
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4545
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4546
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4547
+ };
4548
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
4549
+ readonly size: Schema.Struct<{
4550
+ readonly cols: Schema.Int;
4551
+ readonly rows: Schema.Int;
4552
+ }>;
4553
+ readonly output: Schema.Struct<{
4554
+ readonly head: Schema.Int;
4555
+ readonly tail: Schema.Int;
4556
+ }>;
4557
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
4558
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
4559
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
4560
+ };
4561
+ readonly title: Schema.String;
4562
+ readonly command: Schema.String;
4563
+ readonly args: Schema.$Array<Schema.String>;
4564
+ readonly cwd: Schema.String;
4565
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
4566
+ readonly pid: Schema.Int;
4567
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
4568
+ }>;
4569
+ }>;
4570
+ }, Schema.Struct<{
4571
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
4572
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
4573
+ };
4574
+ readonly created: Schema.Finite;
4575
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
4576
+ readonly type: Schema.Literal<"persistent-pty.removed">;
4577
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
4578
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
4579
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
4580
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4581
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4582
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
4583
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4584
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4585
+ }>, never, never>;
4586
+ }>>>, Schema.optionalKey<Schema.Struct<{
4587
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
4588
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
4589
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4590
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4591
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
4592
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
4593
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
4594
+ }>, never, never>;
4595
+ }>>, never, never>;
4596
+ readonly data: Schema.Struct<{
4597
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4598
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4599
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4600
+ };
4601
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
4602
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
4603
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
4604
+ };
4605
+ }>;
4606
+ }> & {
4607
+ type: "persistent-pty.removed";
4608
+ durability: "ephemeral";
4609
+ durable: undefined;
4610
+ data: Schema.Struct<{
4611
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
4612
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
4613
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
4614
+ };
4615
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
4616
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
4617
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
4618
+ };
4619
+ }>;
4474
4620
  }, Schema.Struct<{
4475
4621
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
4476
4622
  create: () => string & import("effect/Brand").Brand<"Event.ID">;
@@ -9489,6 +9635,7 @@ export declare const Definitions: readonly [Schema.Struct<{
9489
9635
  readonly messageID: Schema.String;
9490
9636
  readonly id: Schema.String;
9491
9637
  }>]>>, never, never>;
9638
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
9492
9639
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
9493
9640
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
9494
9641
  };
@@ -9515,6 +9662,7 @@ export declare const Definitions: readonly [Schema.Struct<{
9515
9662
  readonly messageID: Schema.String;
9516
9663
  readonly id: Schema.String;
9517
9664
  }>]>>, never, never>;
9665
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
9518
9666
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
9519
9667
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
9520
9668
  };
@@ -10035,6 +10183,150 @@ export declare const Definitions: readonly [Schema.Struct<{
10035
10183
  ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
10036
10184
  };
10037
10185
  }>;
10186
+ }, Schema.Struct<{
10187
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
10188
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
10189
+ };
10190
+ readonly created: Schema.Finite;
10191
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
10192
+ readonly type: Schema.Literal<"persistent-pty.added">;
10193
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
10194
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
10195
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
10196
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10197
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10198
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
10199
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10200
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10201
+ }>, never, never>;
10202
+ }>>>, Schema.optionalKey<Schema.Struct<{
10203
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
10204
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
10205
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10206
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10207
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
10208
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10209
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10210
+ }>, never, never>;
10211
+ }>>, never, never>;
10212
+ readonly data: Schema.Struct<{
10213
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
10214
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
10215
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
10216
+ };
10217
+ readonly terminal: Schema.Struct<{
10218
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
10219
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
10220
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
10221
+ };
10222
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
10223
+ readonly size: Schema.Struct<{
10224
+ readonly cols: Schema.Int;
10225
+ readonly rows: Schema.Int;
10226
+ }>;
10227
+ readonly output: Schema.Struct<{
10228
+ readonly head: Schema.Int;
10229
+ readonly tail: Schema.Int;
10230
+ }>;
10231
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
10232
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
10233
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
10234
+ };
10235
+ readonly title: Schema.String;
10236
+ readonly command: Schema.String;
10237
+ readonly args: Schema.$Array<Schema.String>;
10238
+ readonly cwd: Schema.String;
10239
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
10240
+ readonly pid: Schema.Int;
10241
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
10242
+ }>;
10243
+ }>;
10244
+ }> & {
10245
+ type: "persistent-pty.added";
10246
+ durability: "ephemeral";
10247
+ durable: undefined;
10248
+ data: Schema.Struct<{
10249
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
10250
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
10251
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
10252
+ };
10253
+ readonly terminal: Schema.Struct<{
10254
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
10255
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
10256
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
10257
+ };
10258
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
10259
+ readonly size: Schema.Struct<{
10260
+ readonly cols: Schema.Int;
10261
+ readonly rows: Schema.Int;
10262
+ }>;
10263
+ readonly output: Schema.Struct<{
10264
+ readonly head: Schema.Int;
10265
+ readonly tail: Schema.Int;
10266
+ }>;
10267
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
10268
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
10269
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
10270
+ };
10271
+ readonly title: Schema.String;
10272
+ readonly command: Schema.String;
10273
+ readonly args: Schema.$Array<Schema.String>;
10274
+ readonly cwd: Schema.String;
10275
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
10276
+ readonly pid: Schema.Int;
10277
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
10278
+ }>;
10279
+ }>;
10280
+ }, Schema.Struct<{
10281
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
10282
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
10283
+ };
10284
+ readonly created: Schema.Finite;
10285
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
10286
+ readonly type: Schema.Literal<"persistent-pty.removed">;
10287
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
10288
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
10289
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
10290
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10291
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10292
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
10293
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10294
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10295
+ }>, never, never>;
10296
+ }>>>, Schema.optionalKey<Schema.Struct<{
10297
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
10298
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
10299
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10300
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10301
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
10302
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
10303
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
10304
+ }>, never, never>;
10305
+ }>>, never, never>;
10306
+ readonly data: Schema.Struct<{
10307
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
10308
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
10309
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
10310
+ };
10311
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
10312
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
10313
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
10314
+ };
10315
+ }>;
10316
+ }> & {
10317
+ type: "persistent-pty.removed";
10318
+ durability: "ephemeral";
10319
+ durable: undefined;
10320
+ data: Schema.Struct<{
10321
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
10322
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
10323
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
10324
+ };
10325
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
10326
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
10327
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
10328
+ };
10329
+ }>;
10038
10330
  }, Schema.Struct<{
10039
10331
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
10040
10332
  create: () => string & import("effect/Brand").Brand<"Event.ID">;
@@ -16,6 +16,7 @@ import { LspEvent } from "./lsp-event.js";
16
16
  import { McpEvent } from "./mcp-event.js";
17
17
  import { ModelsDev } from "./models-dev.js";
18
18
  import { Permission } from "./permission.js";
19
+ import { PersistentPty } from "./persistent-pty.js";
19
20
  import { Plugin } from "./plugin.js";
20
21
  import { Project } from "./project.js";
21
22
  import { Worktree } from "./worktree.js";
@@ -34,7 +35,7 @@ import { WorktreeEvent } from "./worktree-event.js";
34
35
  import { WebSearch } from "./websearch.js";
35
36
  const coreDefinitions = Event.inventory(...SessionEvent.Definitions);
36
37
  const foundationDefinitions = Event.inventory(...ModelsDev.Event.Definitions, ...Integration.Event.Definitions, ...Catalog.Event.Definitions, ...Agent.Event.Definitions, ...coreDefinitions);
37
- const featureDefinitions = Event.inventory(...FileSystem.Event.Definitions, ...Reference.Event.Definitions, ...Permission.Event.Definitions, ...Plugin.Event.Definitions, ...Worktree.Event.Definitions, ...Command.Event.Definitions, ...Config.Event.Definitions, ...Skill.Event.Definitions, ...Pty.Event.Definitions, ...Shell.Event.Definitions, ...Form.Event.Definitions, ...WebSearch.Event.Definitions);
38
+ const featureDefinitions = Event.inventory(...FileSystem.Event.Definitions, ...Reference.Event.Definitions, ...Permission.Event.Definitions, ...Plugin.Event.Definitions, ...Worktree.Event.Definitions, ...Command.Event.Definitions, ...Config.Event.Definitions, ...Skill.Event.Definitions, ...Pty.Event.Definitions, ...PersistentPty.Event.Definitions, ...Shell.Event.Definitions, ...Form.Event.Definitions, ...WebSearch.Event.Definitions);
38
39
  export const ServerDefinitions = Event.inventory(...foundationDefinitions, ...featureDefinitions,
39
40
  // Current events the TUI consumes from the public stream.
40
41
  ...SessionStatusEvent.Definitions, ...TuiEvent.Definitions, ...InstallationEvent.Definitions, ...VcsEvent.Definitions, McpEvent.StatusChanged, McpEvent.ResourcesChanged);
package/dist/index.d.ts CHANGED
@@ -31,6 +31,7 @@ export { Shell } from "./shell.js";
31
31
  export { Skill } from "./skill.js";
32
32
  export { TokenUsage } from "./token-usage.js";
33
33
  export { Pty } from "./pty.js";
34
+ export { PersistentPty } from "./persistent-pty.js";
34
35
  export { PtyTicket } from "./pty-ticket.js";
35
36
  export { Question } from "./question.js";
36
37
  export { Workspace } from "./workspace.js";
package/dist/index.js CHANGED
@@ -31,6 +31,7 @@ export { Shell } from "./shell.js";
31
31
  export { Skill } from "./skill.js";
32
32
  export { TokenUsage } from "./token-usage.js";
33
33
  export { Pty } from "./pty.js";
34
+ export { PersistentPty } from "./persistent-pty.js";
34
35
  export { PtyTicket } from "./pty-ticket.js";
35
36
  export { Question } from "./question.js";
36
37
  export { Workspace } from "./workspace.js";
package/dist/model.d.ts CHANGED
@@ -42,6 +42,7 @@ export declare const Compatibility: Schema.Struct<{
42
42
  readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
43
43
  readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
44
44
  readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
45
+ readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
45
46
  }>;
46
47
  export interface Capabilities extends Schema.Schema.Type<typeof Capabilities> {
47
48
  }
@@ -156,10 +157,12 @@ export declare const Info: Schema.Struct<{
156
157
  readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
157
158
  readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
158
159
  readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
160
+ readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
159
161
  }>>>, Schema.optionalKey<Schema.Struct<{
160
162
  readonly reasoningField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Codec<ReasoningField, ReasoningField, never, never>>>, Schema.optionalKey<Schema.Codec<ReasoningField, ReasoningField, never, never>>, never, never>;
161
163
  readonly maxTokensField: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>>, Schema.optionalKey<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>, never, never>;
162
164
  readonly requireFinishReason: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
165
+ readonly requireAssistantAfterTool: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
163
166
  }>>, never, never>;
164
167
  readonly package: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
165
168
  }> & {
package/dist/model.js CHANGED
@@ -41,6 +41,7 @@ export const Compatibility = Schema.Struct({
41
41
  reasoningField: ReasoningField.pipe(optional),
42
42
  maxTokensField: MaxTokensField.pipe(optional),
43
43
  requireFinishReason: Schema.Boolean.pipe(optional),
44
+ requireAssistantAfterTool: Schema.Boolean.pipe(optional),
44
45
  }).annotate({ identifier: "Model.Compatibility" });
45
46
  export const Capabilities = Schema.Struct({
46
47
  tools: Schema.Boolean,
@@ -28,6 +28,7 @@ export declare const Request: Schema.Struct<{
28
28
  readonly messageID: Schema.String;
29
29
  readonly id: Schema.String;
30
30
  }>]>>, never, never>;
31
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
31
32
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
32
33
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
33
34
  };
@@ -81,6 +82,7 @@ export declare const Event: {
81
82
  readonly messageID: Schema.String;
82
83
  readonly id: Schema.String;
83
84
  }>]>>, never, never>;
85
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
84
86
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
85
87
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
86
88
  };
@@ -107,6 +109,7 @@ export declare const Event: {
107
109
  readonly messageID: Schema.String;
108
110
  readonly id: Schema.String;
109
111
  }>]>>, never, never>;
112
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
110
113
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
111
114
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
112
115
  };
@@ -207,6 +210,7 @@ export declare const Event: {
207
210
  readonly messageID: Schema.String;
208
211
  readonly id: Schema.String;
209
212
  }>]>>, never, never>;
213
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
210
214
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
211
215
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
212
216
  };
@@ -233,6 +237,7 @@ export declare const Event: {
233
237
  readonly messageID: Schema.String;
234
238
  readonly id: Schema.String;
235
239
  }>]>>, never, never>;
240
+ readonly message: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
236
241
  readonly id: Schema.brand<Schema.String, "Permission.ID"> & {
237
242
  create: (id?: string) => string & import("effect/Brand").Brand<"Permission.ID">;
238
243
  };
@@ -20,6 +20,7 @@ const RequestFields = {
20
20
  save: Schema.Array(Schema.String).pipe(optional),
21
21
  metadata: Schema.Record(Schema.String, Schema.Unknown).pipe(optional),
22
22
  source: Source.pipe(optional),
23
+ message: Schema.String.pipe(optional),
23
24
  };
24
25
  export const Request = Schema.Struct({
25
26
  id: ID,
@@ -0,0 +1,530 @@
1
+ export * as PersistentPty from "./persistent-pty.js";
2
+ import { Schema } from "effect";
3
+ export declare const Info: Schema.Struct<{
4
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
5
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
6
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
7
+ };
8
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
9
+ readonly size: Schema.Struct<{
10
+ readonly cols: Schema.Int;
11
+ readonly rows: Schema.Int;
12
+ }>;
13
+ readonly output: Schema.Struct<{
14
+ readonly head: Schema.Int;
15
+ readonly tail: Schema.Int;
16
+ }>;
17
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
18
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
19
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
20
+ };
21
+ readonly title: Schema.String;
22
+ readonly command: Schema.String;
23
+ readonly args: Schema.$Array<Schema.String>;
24
+ readonly cwd: Schema.String;
25
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
26
+ readonly pid: Schema.Int;
27
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
28
+ }>;
29
+ export interface Info extends Schema.Schema.Type<typeof Info> {
30
+ }
31
+ export declare const CreateInput: Schema.Struct<{
32
+ readonly command: Schema.String;
33
+ readonly args: Schema.$Array<Schema.String>;
34
+ readonly cwd: Schema.String;
35
+ readonly title: Schema.String;
36
+ readonly env: Schema.$Record<Schema.String, Schema.String>;
37
+ readonly size: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
38
+ readonly cols: Schema.Int;
39
+ readonly rows: Schema.Int;
40
+ }>>>, Schema.optionalKey<Schema.Struct<{
41
+ readonly cols: Schema.Int;
42
+ readonly rows: Schema.Int;
43
+ }>>, never, never>;
44
+ }>;
45
+ export interface CreateInput extends Schema.Schema.Type<typeof CreateInput> {
46
+ }
47
+ export declare const UpdateInput: Schema.Struct<{
48
+ readonly attachmentID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
49
+ readonly size: Schema.Struct<{
50
+ readonly cols: Schema.Int;
51
+ readonly rows: Schema.Int;
52
+ }>;
53
+ }>;
54
+ export interface UpdateInput extends Schema.Schema.Type<typeof UpdateInput> {
55
+ }
56
+ export declare const Snapshot: Schema.Struct<{
57
+ readonly info: Schema.Struct<{
58
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
59
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
60
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
61
+ };
62
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
63
+ readonly size: Schema.Struct<{
64
+ readonly cols: Schema.Int;
65
+ readonly rows: Schema.Int;
66
+ }>;
67
+ readonly output: Schema.Struct<{
68
+ readonly head: Schema.Int;
69
+ readonly tail: Schema.Int;
70
+ }>;
71
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
72
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
73
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
74
+ };
75
+ readonly title: Schema.String;
76
+ readonly command: Schema.String;
77
+ readonly args: Schema.$Array<Schema.String>;
78
+ readonly cwd: Schema.String;
79
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
80
+ readonly pid: Schema.Int;
81
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
82
+ }>;
83
+ readonly text: Schema.String;
84
+ readonly checkpoint: Schema.Uint8Array;
85
+ readonly cursor: Schema.Struct<{
86
+ readonly x: Schema.Int;
87
+ readonly y: Schema.Int;
88
+ }>;
89
+ }>;
90
+ export interface Snapshot extends Schema.Schema.Type<typeof Snapshot> {
91
+ }
92
+ export declare const Added: Schema.Struct<{
93
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
94
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
95
+ };
96
+ readonly created: Schema.Finite;
97
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
98
+ readonly type: Schema.Literal<"persistent-pty.added">;
99
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
100
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
101
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
102
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
103
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
104
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
105
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
106
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
107
+ }>, never, never>;
108
+ }>>>, Schema.optionalKey<Schema.Struct<{
109
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
110
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
111
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
112
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
113
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
114
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
115
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
116
+ }>, never, never>;
117
+ }>>, never, never>;
118
+ readonly data: Schema.Struct<{
119
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
120
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
121
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
122
+ };
123
+ readonly terminal: Schema.Struct<{
124
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
125
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
126
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
127
+ };
128
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
129
+ readonly size: Schema.Struct<{
130
+ readonly cols: Schema.Int;
131
+ readonly rows: Schema.Int;
132
+ }>;
133
+ readonly output: Schema.Struct<{
134
+ readonly head: Schema.Int;
135
+ readonly tail: Schema.Int;
136
+ }>;
137
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
138
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
139
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
140
+ };
141
+ readonly title: Schema.String;
142
+ readonly command: Schema.String;
143
+ readonly args: Schema.$Array<Schema.String>;
144
+ readonly cwd: Schema.String;
145
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
146
+ readonly pid: Schema.Int;
147
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
148
+ }>;
149
+ }>;
150
+ }> & {
151
+ type: "persistent-pty.added";
152
+ durability: "ephemeral";
153
+ durable: undefined;
154
+ data: Schema.Struct<{
155
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
156
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
157
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
158
+ };
159
+ readonly terminal: Schema.Struct<{
160
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
161
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
162
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
163
+ };
164
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
165
+ readonly size: Schema.Struct<{
166
+ readonly cols: Schema.Int;
167
+ readonly rows: Schema.Int;
168
+ }>;
169
+ readonly output: Schema.Struct<{
170
+ readonly head: Schema.Int;
171
+ readonly tail: Schema.Int;
172
+ }>;
173
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
174
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
175
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
176
+ };
177
+ readonly title: Schema.String;
178
+ readonly command: Schema.String;
179
+ readonly args: Schema.$Array<Schema.String>;
180
+ readonly cwd: Schema.String;
181
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
182
+ readonly pid: Schema.Int;
183
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
184
+ }>;
185
+ }>;
186
+ };
187
+ export declare const Removed: Schema.Struct<{
188
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
189
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
190
+ };
191
+ readonly created: Schema.Finite;
192
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
193
+ readonly type: Schema.Literal<"persistent-pty.removed">;
194
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
195
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
196
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
197
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
198
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
199
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
200
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
201
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
202
+ }>, never, never>;
203
+ }>>>, Schema.optionalKey<Schema.Struct<{
204
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
205
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
206
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
207
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
208
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
209
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
210
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
211
+ }>, never, never>;
212
+ }>>, never, never>;
213
+ readonly data: Schema.Struct<{
214
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
215
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
216
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
217
+ };
218
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
219
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
220
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
221
+ };
222
+ }>;
223
+ }> & {
224
+ type: "persistent-pty.removed";
225
+ durability: "ephemeral";
226
+ durable: undefined;
227
+ data: Schema.Struct<{
228
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
229
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
230
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
231
+ };
232
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
233
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
234
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
235
+ };
236
+ }>;
237
+ };
238
+ export declare const Event: {
239
+ Added: Schema.Struct<{
240
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
241
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
242
+ };
243
+ readonly created: Schema.Finite;
244
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
245
+ readonly type: Schema.Literal<"persistent-pty.added">;
246
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
247
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
248
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
249
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
250
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
251
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
252
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
253
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
254
+ }>, never, never>;
255
+ }>>>, Schema.optionalKey<Schema.Struct<{
256
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
257
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
258
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
259
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
260
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
261
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
262
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
263
+ }>, never, never>;
264
+ }>>, never, never>;
265
+ readonly data: Schema.Struct<{
266
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
267
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
268
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
269
+ };
270
+ readonly terminal: Schema.Struct<{
271
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
272
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
273
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
274
+ };
275
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
276
+ readonly size: Schema.Struct<{
277
+ readonly cols: Schema.Int;
278
+ readonly rows: Schema.Int;
279
+ }>;
280
+ readonly output: Schema.Struct<{
281
+ readonly head: Schema.Int;
282
+ readonly tail: Schema.Int;
283
+ }>;
284
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
285
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
286
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
287
+ };
288
+ readonly title: Schema.String;
289
+ readonly command: Schema.String;
290
+ readonly args: Schema.$Array<Schema.String>;
291
+ readonly cwd: Schema.String;
292
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
293
+ readonly pid: Schema.Int;
294
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
295
+ }>;
296
+ }>;
297
+ }> & {
298
+ type: "persistent-pty.added";
299
+ durability: "ephemeral";
300
+ durable: undefined;
301
+ data: Schema.Struct<{
302
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
303
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
304
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
305
+ };
306
+ readonly terminal: Schema.Struct<{
307
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
308
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
309
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
310
+ };
311
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
312
+ readonly size: Schema.Struct<{
313
+ readonly cols: Schema.Int;
314
+ readonly rows: Schema.Int;
315
+ }>;
316
+ readonly output: Schema.Struct<{
317
+ readonly head: Schema.Int;
318
+ readonly tail: Schema.Int;
319
+ }>;
320
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
321
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
322
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
323
+ };
324
+ readonly title: Schema.String;
325
+ readonly command: Schema.String;
326
+ readonly args: Schema.$Array<Schema.String>;
327
+ readonly cwd: Schema.String;
328
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
329
+ readonly pid: Schema.Int;
330
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
331
+ }>;
332
+ }>;
333
+ };
334
+ Removed: Schema.Struct<{
335
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
336
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
337
+ };
338
+ readonly created: Schema.Finite;
339
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
340
+ readonly type: Schema.Literal<"persistent-pty.removed">;
341
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
342
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
343
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
344
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
345
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
346
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
347
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
348
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
349
+ }>, never, never>;
350
+ }>>>, Schema.optionalKey<Schema.Struct<{
351
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
352
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
353
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
354
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
355
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
356
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
357
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
358
+ }>, never, never>;
359
+ }>>, never, never>;
360
+ readonly data: Schema.Struct<{
361
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
362
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
363
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
364
+ };
365
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
366
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
367
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
368
+ };
369
+ }>;
370
+ }> & {
371
+ type: "persistent-pty.removed";
372
+ durability: "ephemeral";
373
+ durable: undefined;
374
+ data: Schema.Struct<{
375
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
376
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
377
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
378
+ };
379
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
380
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
381
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
382
+ };
383
+ }>;
384
+ };
385
+ Definitions: readonly [Schema.Struct<{
386
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
387
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
388
+ };
389
+ readonly created: Schema.Finite;
390
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
391
+ readonly type: Schema.Literal<"persistent-pty.added">;
392
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
393
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
394
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
395
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
396
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
397
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
398
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
399
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
400
+ }>, never, never>;
401
+ }>>>, Schema.optionalKey<Schema.Struct<{
402
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
403
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
404
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
405
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
406
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
407
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
408
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
409
+ }>, never, never>;
410
+ }>>, never, never>;
411
+ readonly data: Schema.Struct<{
412
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
413
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
414
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
415
+ };
416
+ readonly terminal: Schema.Struct<{
417
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
418
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
419
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
420
+ };
421
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
422
+ readonly size: Schema.Struct<{
423
+ readonly cols: Schema.Int;
424
+ readonly rows: Schema.Int;
425
+ }>;
426
+ readonly output: Schema.Struct<{
427
+ readonly head: Schema.Int;
428
+ readonly tail: Schema.Int;
429
+ }>;
430
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
431
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
432
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
433
+ };
434
+ readonly title: Schema.String;
435
+ readonly command: Schema.String;
436
+ readonly args: Schema.$Array<Schema.String>;
437
+ readonly cwd: Schema.String;
438
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
439
+ readonly pid: Schema.Int;
440
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
441
+ }>;
442
+ }>;
443
+ }> & {
444
+ type: "persistent-pty.added";
445
+ durability: "ephemeral";
446
+ durable: undefined;
447
+ data: Schema.Struct<{
448
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
449
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
450
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
451
+ };
452
+ readonly terminal: Schema.Struct<{
453
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
454
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
455
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
456
+ };
457
+ readonly foregroundProcess: Schema.NullOr<Schema.String>;
458
+ readonly size: Schema.Struct<{
459
+ readonly cols: Schema.Int;
460
+ readonly rows: Schema.Int;
461
+ }>;
462
+ readonly output: Schema.Struct<{
463
+ readonly head: Schema.Int;
464
+ readonly tail: Schema.Int;
465
+ }>;
466
+ readonly id: Schema.brand<Schema.String, "PtyID"> & {
467
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
468
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
469
+ };
470
+ readonly title: Schema.String;
471
+ readonly command: Schema.String;
472
+ readonly args: Schema.$Array<Schema.String>;
473
+ readonly cwd: Schema.String;
474
+ readonly status: Schema.Literals<readonly ["running", "exited"]>;
475
+ readonly pid: Schema.Int;
476
+ readonly exitCode: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
477
+ }>;
478
+ }>;
479
+ }, Schema.Struct<{
480
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
481
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
482
+ };
483
+ readonly created: Schema.Finite;
484
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
485
+ readonly type: Schema.Literal<"persistent-pty.removed">;
486
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
487
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
488
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
489
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
490
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
491
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
492
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
493
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
494
+ }>, never, never>;
495
+ }>>>, Schema.optionalKey<Schema.Struct<{
496
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
497
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
498
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
499
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
500
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
501
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
502
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
503
+ }>, never, never>;
504
+ }>>, never, never>;
505
+ readonly data: Schema.Struct<{
506
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
507
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
508
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
509
+ };
510
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
511
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
512
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
513
+ };
514
+ }>;
515
+ }> & {
516
+ type: "persistent-pty.removed";
517
+ durability: "ephemeral";
518
+ durable: undefined;
519
+ data: Schema.Struct<{
520
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
521
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
522
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
523
+ };
524
+ readonly ptyID: Schema.brand<Schema.String, "PtyID"> & {
525
+ create: () => string & import("effect/Brand").Brand<"PtyID">;
526
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"PtyID">;
527
+ };
528
+ }>;
529
+ }];
530
+ };
@@ -0,0 +1,34 @@
1
+ export * as PersistentPty from "./persistent-pty.js";
2
+ import { Schema } from "effect";
3
+ import { ephemeral, inventory } from "./event.js";
4
+ import { Pty } from "./pty.js";
5
+ import { NonNegativeInt, PositiveInt, optional } from "./schema.js";
6
+ import { Session } from "./session.js";
7
+ export const Info = Schema.Struct({
8
+ ...Pty.Info.fields,
9
+ sessionID: Session.ID,
10
+ foregroundProcess: Schema.NullOr(Schema.String),
11
+ size: Schema.Struct({ cols: PositiveInt, rows: PositiveInt }),
12
+ output: Schema.Struct({ head: NonNegativeInt, tail: NonNegativeInt }),
13
+ }).annotate({ identifier: "PersistentPty.Info" });
14
+ export const CreateInput = Schema.Struct({
15
+ command: Schema.String,
16
+ args: Schema.Array(Schema.String),
17
+ cwd: Schema.String,
18
+ title: Schema.String,
19
+ env: Schema.Record(Schema.String, Schema.String),
20
+ size: optional(Schema.Struct({ cols: PositiveInt, rows: PositiveInt })),
21
+ }).annotate({ identifier: "PersistentPty.CreateInput" });
22
+ export const UpdateInput = Schema.Struct({
23
+ attachmentID: optional(Schema.String),
24
+ size: Schema.Struct({ cols: PositiveInt, rows: PositiveInt }),
25
+ }).annotate({ identifier: "PersistentPty.UpdateInput" });
26
+ export const Snapshot = Schema.Struct({
27
+ info: Info,
28
+ text: Schema.String,
29
+ checkpoint: Schema.Uint8Array,
30
+ cursor: Schema.Struct({ x: NonNegativeInt, y: NonNegativeInt }),
31
+ }).annotate({ identifier: "PersistentPty.Snapshot" });
32
+ export const Added = ephemeral({ type: "persistent-pty.added", schema: { sessionID: Session.ID, terminal: Info } });
33
+ export const Removed = ephemeral({ type: "persistent-pty.removed", schema: { sessionID: Session.ID, ptyID: Pty.ID } });
34
+ export const Event = { Added, Removed, Definitions: inventory(Added, Removed) };
package/dist/project.d.ts CHANGED
@@ -63,6 +63,28 @@ export declare const Info: Schema.Struct<{
63
63
  }>;
64
64
  export interface Info extends Schema.Schema.Type<typeof Info> {
65
65
  }
66
+ export declare const UpdateInput: Schema.Struct<{
67
+ readonly projectID: Schema.brand<Schema.String, "Project.ID"> & {
68
+ global: string & import("effect/Brand").Brand<"Project.ID">;
69
+ };
70
+ readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
71
+ readonly icon: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
72
+ readonly url: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
73
+ readonly override: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
74
+ readonly color: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
75
+ }>>>, Schema.optionalKey<Schema.Struct<{
76
+ readonly url: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
77
+ readonly override: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
78
+ readonly color: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
79
+ }>>, never, never>;
80
+ readonly commands: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
81
+ readonly start: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
82
+ }>>>, Schema.optionalKey<Schema.Struct<{
83
+ readonly start: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
84
+ }>>, never, never>;
85
+ }>;
86
+ export interface UpdateInput extends Schema.Schema.Type<typeof UpdateInput> {
87
+ }
66
88
  export declare const Event: {
67
89
  Updated: Schema.Struct<{
68
90
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
package/dist/project.js CHANGED
@@ -33,5 +33,11 @@ export const Info = Schema.Struct({
33
33
  time: Time,
34
34
  sandboxes: Schema.Array(Schema.String),
35
35
  }).annotate({ identifier: "Project" });
36
+ export const UpdateInput = Schema.Struct({
37
+ projectID: ID,
38
+ name: optional(Schema.String),
39
+ icon: optional(Icon),
40
+ commands: optional(Commands),
41
+ }).annotate({ identifier: "Project.UpdateInput" });
36
42
  const Updated = ephemeral({ type: "project.updated", schema: Info.fields });
37
43
  export const Event = { Updated, Definitions: inventory(Updated) };
package/dist/tool.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export * as Tool from "./tool.js";
2
2
  import { Effect, JsonSchema, Schema } from "effect";
3
- import type { StandardJSONSchemaV1, StandardSchemaV1 } from "@standard-schema/spec";
3
+ import type { StandardSchemaV1 } from "@standard-schema/spec";
4
4
  import type { Agent } from "./agent.js";
5
5
  import type { Session } from "./session.js";
6
6
  import type { SessionMessage } from "./session-message.js";
@@ -25,7 +25,7 @@ export type Options = BaseOptions & ({
25
25
  readonly codemode: boolean;
26
26
  readonly pinned?: never;
27
27
  });
28
- export type ValueSchema<A = unknown> = Schema.Codec<A, any> | (StandardSchemaV1<any, A> & StandardJSONSchemaV1<any, A>) | JsonSchema.JsonSchema;
28
+ export type ValueSchema<A = unknown> = Schema.Codec<A, any> | StandardSchemaV1<any, A> | JsonSchema.JsonSchema;
29
29
  type InputValue<S> = 0 extends 1 & S ? any : S extends Schema.Codec<infer A, any> ? A : S extends StandardSchemaV1<any, infer A> ? A : unknown;
30
30
  type OutputValue<S> = S extends undefined ? never : S extends Schema.Codec<infer A, any> ? A : S extends StandardSchemaV1<infer A, any> ? A : any;
31
31
  declare const Error_base: Schema.Class<Error, Schema.TaggedStruct<"Tool.Error", {
package/dist/vcs.d.ts CHANGED
@@ -14,6 +14,8 @@ export declare const Info: Schema.Struct<{
14
14
  }>;
15
15
  export interface Info extends Schema.Schema.Type<typeof Info> {
16
16
  }
17
+ export declare const BranchList: Schema.$Array<Schema.String>;
18
+ export type BranchList = typeof BranchList.Type;
17
19
  export declare const Mode: Schema.Literals<readonly ["working", "branch"]>;
18
20
  export type Mode = typeof Mode.Type;
19
21
  export declare const FileStatus: Schema.Struct<{
package/dist/vcs.js CHANGED
@@ -8,6 +8,7 @@ export const Branch = Schema.Struct({
8
8
  export const Info = Schema.Struct({
9
9
  branch: Branch,
10
10
  }).annotate({ identifier: "Vcs.Info" });
11
+ export const BranchList = Schema.Array(Schema.String).annotate({ identifier: "Vcs.BranchList" });
11
12
  export const Mode = Schema.Literals(["working", "branch"]).annotate({ identifier: "Vcs.Mode" });
12
13
  export const FileStatus = Schema.Struct({
13
14
  file: Schema.String,
@@ -8,6 +8,7 @@ export declare const CreateInput: Schema.Struct<{
8
8
  };
9
9
  readonly strategy: Schema.brand<Schema.Trim, "Worktree.StrategyID">;
10
10
  readonly from: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "AbsolutePath">>>, Schema.optionalKey<Schema.brand<Schema.String, "AbsolutePath">>, never, never>;
11
+ readonly branch: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Trim>>, Schema.optionalKey<Schema.Trim>, never, never>;
11
12
  readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
12
13
  readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
13
14
  }>;
package/dist/worktree.js CHANGED
@@ -9,6 +9,7 @@ export const CreateInput = Schema.Struct({
9
9
  projectID: ProjectID,
10
10
  strategy: StrategyID,
11
11
  from: optional(AbsolutePath),
12
+ branch: optional(Schema.Trim.pipe(Schema.check(Schema.isNonEmpty()))),
12
13
  directory: AbsolutePath,
13
14
  name: optional(Schema.String),
14
15
  }).annotate({ identifier: "Worktree.CreateInput" });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@opencode-ai/schema",
4
- "version": "0.0.0-beta-18155",
4
+ "version": "0.0.0-beta-18219",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {