@opencode-ai/schema 0.0.0-next-15270 → 0.0.0-next-15271

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.
@@ -6543,9 +6543,8 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
6543
6543
  }>, never, never>;
6544
6544
  }>>, never, never>;
6545
6545
  readonly data: Schema.Struct<{
6546
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
6547
- readonly mode: Schema.Literal<"form">;
6548
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
6546
+ readonly form: Schema.Struct<{
6547
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
6549
6548
  readonly type: Schema.Literal<"string">;
6550
6549
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
6551
6550
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -6652,6 +6651,12 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
6652
6651
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
6653
6652
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
6654
6653
  }>>>, never, never>;
6654
+ }>, Schema.Struct<{
6655
+ readonly key: Schema.String;
6656
+ readonly type: Schema.Literal<"external">;
6657
+ readonly url: Schema.String;
6658
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
6659
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
6655
6660
  }>]>>;
6656
6661
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
6657
6662
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -6659,25 +6664,15 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
6659
6664
  readonly sessionID: Schema.String;
6660
6665
  readonly title: Schema.String;
6661
6666
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
6662
- }>, Schema.Struct<{
6663
- readonly mode: Schema.Literal<"url">;
6664
- readonly url: Schema.String;
6665
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
6666
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
6667
- };
6668
- readonly sessionID: Schema.String;
6669
- readonly title: Schema.String;
6670
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
6671
- }>]>;
6667
+ }>;
6672
6668
  }>;
6673
6669
  }> & {
6674
6670
  type: "form.created";
6675
6671
  durability: "ephemeral";
6676
6672
  durable: undefined;
6677
6673
  data: Schema.Struct<{
6678
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
6679
- readonly mode: Schema.Literal<"form">;
6680
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
6674
+ readonly form: Schema.Struct<{
6675
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
6681
6676
  readonly type: Schema.Literal<"string">;
6682
6677
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
6683
6678
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -6784,6 +6779,12 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
6784
6779
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
6785
6780
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
6786
6781
  }>>>, never, never>;
6782
+ }>, Schema.Struct<{
6783
+ readonly key: Schema.String;
6784
+ readonly type: Schema.Literal<"external">;
6785
+ readonly url: Schema.String;
6786
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
6787
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
6787
6788
  }>]>>;
6788
6789
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
6789
6790
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -6791,16 +6792,7 @@ export declare const ServerDefinitions: readonly [Schema.Struct<{
6791
6792
  readonly sessionID: Schema.String;
6792
6793
  readonly title: Schema.String;
6793
6794
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
6794
- }>, Schema.Struct<{
6795
- readonly mode: Schema.Literal<"url">;
6796
- readonly url: Schema.String;
6797
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
6798
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
6799
- };
6800
- readonly sessionID: Schema.String;
6801
- readonly title: Schema.String;
6802
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
6803
- }>]>;
6795
+ }>;
6804
6796
  }>;
6805
6797
  }, Schema.Struct<{
6806
6798
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
@@ -14651,9 +14643,8 @@ export declare const Definitions: readonly [Schema.Struct<{
14651
14643
  }>, never, never>;
14652
14644
  }>>, never, never>;
14653
14645
  readonly data: Schema.Struct<{
14654
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
14655
- readonly mode: Schema.Literal<"form">;
14656
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
14646
+ readonly form: Schema.Struct<{
14647
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
14657
14648
  readonly type: Schema.Literal<"string">;
14658
14649
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
14659
14650
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -14760,6 +14751,12 @@ export declare const Definitions: readonly [Schema.Struct<{
14760
14751
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
14761
14752
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
14762
14753
  }>>>, never, never>;
14754
+ }>, Schema.Struct<{
14755
+ readonly key: Schema.String;
14756
+ readonly type: Schema.Literal<"external">;
14757
+ readonly url: Schema.String;
14758
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
14759
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
14763
14760
  }>]>>;
14764
14761
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
14765
14762
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -14767,25 +14764,15 @@ export declare const Definitions: readonly [Schema.Struct<{
14767
14764
  readonly sessionID: Schema.String;
14768
14765
  readonly title: Schema.String;
14769
14766
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
14770
- }>, Schema.Struct<{
14771
- readonly mode: Schema.Literal<"url">;
14772
- readonly url: Schema.String;
14773
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
14774
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
14775
- };
14776
- readonly sessionID: Schema.String;
14777
- readonly title: Schema.String;
14778
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
14779
- }>]>;
14767
+ }>;
14780
14768
  }>;
14781
14769
  }> & {
14782
14770
  type: "form.created";
14783
14771
  durability: "ephemeral";
14784
14772
  durable: undefined;
14785
14773
  data: Schema.Struct<{
14786
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
14787
- readonly mode: Schema.Literal<"form">;
14788
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
14774
+ readonly form: Schema.Struct<{
14775
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
14789
14776
  readonly type: Schema.Literal<"string">;
14790
14777
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
14791
14778
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -14892,6 +14879,12 @@ export declare const Definitions: readonly [Schema.Struct<{
14892
14879
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
14893
14880
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
14894
14881
  }>>>, never, never>;
14882
+ }>, Schema.Struct<{
14883
+ readonly key: Schema.String;
14884
+ readonly type: Schema.Literal<"external">;
14885
+ readonly url: Schema.String;
14886
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
14887
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
14895
14888
  }>]>>;
14896
14889
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
14897
14890
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -14899,16 +14892,7 @@ export declare const Definitions: readonly [Schema.Struct<{
14899
14892
  readonly sessionID: Schema.String;
14900
14893
  readonly title: Schema.String;
14901
14894
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
14902
- }>, Schema.Struct<{
14903
- readonly mode: Schema.Literal<"url">;
14904
- readonly url: Schema.String;
14905
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
14906
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
14907
- };
14908
- readonly sessionID: Schema.String;
14909
- readonly title: Schema.String;
14910
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
14911
- }>]>;
14895
+ }>;
14912
14896
  }>;
14913
14897
  }, Schema.Struct<{
14914
14898
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
package/dist/form.d.ts CHANGED
@@ -142,7 +142,16 @@ export declare const MultiselectField: Schema.Struct<{
142
142
  }>;
143
143
  export interface MultiselectField extends Schema.Schema.Type<typeof MultiselectField> {
144
144
  }
145
- export declare const Field: Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
145
+ export declare const ExternalField: Schema.Struct<{
146
+ readonly key: Schema.String;
147
+ readonly type: Schema.Literal<"external">;
148
+ readonly url: Schema.String;
149
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
150
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
151
+ }>;
152
+ export interface ExternalField extends Schema.Schema.Type<typeof ExternalField> {
153
+ }
154
+ export declare const Field: Schema.Union<readonly [Schema.Struct<{
146
155
  readonly type: Schema.Literal<"string">;
147
156
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
148
157
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -249,142 +258,131 @@ export declare const Field: Schema.toTaggedUnion<"type", readonly [Schema.Struct
249
258
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
250
259
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
251
260
  }>>>, never, never>;
261
+ }>, Schema.Struct<{
262
+ readonly key: Schema.String;
263
+ readonly type: Schema.Literal<"external">;
264
+ readonly url: Schema.String;
265
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
266
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
252
267
  }>]>;
253
- export type Field = StringField | NumberField | IntegerField | BooleanField | MultiselectField;
254
- export declare const FormInfo: Schema.Struct<{
255
- readonly mode: Schema.Literal<"form">;
256
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
257
- readonly type: Schema.Literal<"string">;
258
- readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
259
- readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
260
- readonly maxLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
261
- readonly pattern: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
262
- readonly placeholder: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
263
- readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
264
- readonly options: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
265
- readonly value: Schema.String;
266
- readonly label: Schema.String;
267
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
268
- }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
269
- readonly value: Schema.String;
270
- readonly label: Schema.String;
271
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
272
- }>>>, never, never>;
273
- readonly custom: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
274
- readonly key: Schema.String;
275
- readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
268
+ export type Field = StringField | NumberField | IntegerField | BooleanField | MultiselectField | ExternalField;
269
+ export declare const Fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
270
+ readonly type: Schema.Literal<"string">;
271
+ readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
272
+ readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
273
+ readonly maxLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
274
+ readonly pattern: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
275
+ readonly placeholder: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
276
+ readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
277
+ readonly options: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
278
+ readonly value: Schema.String;
279
+ readonly label: Schema.String;
276
280
  readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
277
- readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
278
- readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
279
- readonly key: Schema.String;
280
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
281
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
282
- }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
283
- readonly key: Schema.String;
284
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
285
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
286
- }>>>, never, never>;
287
- }>, Schema.Struct<{
288
- readonly type: Schema.Literal<"number">;
289
- readonly minimum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
290
- readonly maximum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
291
- readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
292
- readonly key: Schema.String;
293
- readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
281
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
282
+ readonly value: Schema.String;
283
+ readonly label: Schema.String;
294
284
  readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
295
- readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
296
- readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
297
- readonly key: Schema.String;
298
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
299
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
300
- }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
301
- readonly key: Schema.String;
302
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
303
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
304
- }>>>, never, never>;
305
- }>, Schema.Struct<{
306
- readonly type: Schema.Literal<"integer">;
307
- readonly minimum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
308
- readonly maximum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
309
- readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
285
+ }>>>, never, never>;
286
+ readonly custom: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
287
+ readonly key: Schema.String;
288
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
289
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
290
+ readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
291
+ readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
310
292
  readonly key: Schema.String;
311
- readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
312
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
313
- readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
314
- readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
315
- readonly key: Schema.String;
316
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
317
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
318
- }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
319
- readonly key: Schema.String;
320
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
321
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
322
- }>>>, never, never>;
323
- }>, Schema.Struct<{
324
- readonly type: Schema.Literal<"boolean">;
325
- readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
293
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
294
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
295
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
326
296
  readonly key: Schema.String;
327
- readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
328
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
329
- readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
330
- readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
331
- readonly key: Schema.String;
332
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
333
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
334
- }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
335
- readonly key: Schema.String;
336
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
337
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
338
- }>>>, never, never>;
339
- }>, Schema.Struct<{
340
- readonly type: Schema.Literal<"multiselect">;
341
- readonly options: Schema.$Array<Schema.Struct<{
342
- readonly value: Schema.String;
343
- readonly label: Schema.String;
344
- readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
345
- }>>;
346
- readonly minItems: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
347
- readonly maxItems: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
348
- readonly custom: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
349
- readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
297
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
298
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
299
+ }>>>, never, never>;
300
+ }>, Schema.Struct<{
301
+ readonly type: Schema.Literal<"number">;
302
+ readonly minimum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
303
+ readonly maximum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
304
+ readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
305
+ readonly key: Schema.String;
306
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
307
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
308
+ readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
309
+ readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
350
310
  readonly key: Schema.String;
351
- readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
311
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
312
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
313
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
314
+ readonly key: Schema.String;
315
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
316
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
317
+ }>>>, never, never>;
318
+ }>, Schema.Struct<{
319
+ readonly type: Schema.Literal<"integer">;
320
+ readonly minimum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
321
+ readonly maximum: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
322
+ readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Number>>, Schema.optionalKey<Schema.Number>, never, never>;
323
+ readonly key: Schema.String;
324
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
325
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
326
+ readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
327
+ readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
328
+ readonly key: Schema.String;
329
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
330
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
331
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
332
+ readonly key: Schema.String;
333
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
334
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
335
+ }>>>, never, never>;
336
+ }>, Schema.Struct<{
337
+ readonly type: Schema.Literal<"boolean">;
338
+ readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
339
+ readonly key: Schema.String;
340
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
341
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
342
+ readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
343
+ readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
344
+ readonly key: Schema.String;
345
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
346
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
347
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
348
+ readonly key: Schema.String;
349
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
350
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
351
+ }>>>, never, never>;
352
+ }>, Schema.Struct<{
353
+ readonly type: Schema.Literal<"multiselect">;
354
+ readonly options: Schema.$Array<Schema.Struct<{
355
+ readonly value: Schema.String;
356
+ readonly label: Schema.String;
352
357
  readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
353
- readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
354
- readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
355
- readonly key: Schema.String;
356
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
357
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
358
- }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
359
- readonly key: Schema.String;
360
- readonly op: Schema.Literals<readonly ["eq", "neq"]>;
361
- readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
362
- }>>>, never, never>;
363
- }>]>>;
364
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
365
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
366
- };
367
- readonly sessionID: Schema.String;
368
- readonly title: Schema.String;
369
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
370
- }>;
371
- export interface FormInfo extends Schema.Schema.Type<typeof FormInfo> {
372
- }
373
- export declare const UrlInfo: Schema.Struct<{
374
- readonly mode: Schema.Literal<"url">;
358
+ }>>;
359
+ readonly minItems: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
360
+ readonly maxItems: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
361
+ readonly custom: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
362
+ readonly default: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
363
+ readonly key: Schema.String;
364
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
365
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
366
+ readonly required: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
367
+ readonly when: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.Struct<{
368
+ readonly key: Schema.String;
369
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
370
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
371
+ }>>>>, Schema.optionalKey<Schema.$Array<Schema.Struct<{
372
+ readonly key: Schema.String;
373
+ readonly op: Schema.Literals<readonly ["eq", "neq"]>;
374
+ readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
375
+ }>>>, never, never>;
376
+ }>, Schema.Struct<{
377
+ readonly key: Schema.String;
378
+ readonly type: Schema.Literal<"external">;
375
379
  readonly url: Schema.String;
376
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
377
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
378
- };
379
- readonly sessionID: Schema.String;
380
- readonly title: Schema.String;
381
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
382
- }>;
383
- export interface UrlInfo extends Schema.Schema.Type<typeof UrlInfo> {
384
- }
385
- export declare const Info: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
386
- readonly mode: Schema.Literal<"form">;
387
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
380
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
381
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
382
+ }>]>>;
383
+ export type Fields = typeof Fields.Type;
384
+ export declare const Info: Schema.Struct<{
385
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
388
386
  readonly type: Schema.Literal<"string">;
389
387
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
390
388
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -491,6 +489,12 @@ export declare const Info: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<
491
489
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
492
490
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
493
491
  }>>>, never, never>;
492
+ }>, Schema.Struct<{
493
+ readonly key: Schema.String;
494
+ readonly type: Schema.Literal<"external">;
495
+ readonly url: Schema.String;
496
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
497
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
494
498
  }>]>>;
495
499
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
496
500
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -498,17 +502,9 @@ export declare const Info: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<
498
502
  readonly sessionID: Schema.String;
499
503
  readonly title: Schema.String;
500
504
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
501
- }>, Schema.Struct<{
502
- readonly mode: Schema.Literal<"url">;
503
- readonly url: Schema.String;
504
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
505
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
506
- };
507
- readonly sessionID: Schema.String;
508
- readonly title: Schema.String;
509
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
510
- }>]>;
511
- export type Info = FormInfo | UrlInfo;
505
+ }>;
506
+ export interface Info extends Schema.Schema.Type<typeof Info> {
507
+ }
512
508
  export declare const Value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean, Schema.$Array<Schema.String>]>;
513
509
  export type Value = typeof Value.Type;
514
510
  export declare const Answer: Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean, Schema.$Array<Schema.String>]>>;
@@ -555,9 +551,8 @@ export declare const Event: {
555
551
  }>, never, never>;
556
552
  }>>, never, never>;
557
553
  readonly data: Schema.Struct<{
558
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
559
- readonly mode: Schema.Literal<"form">;
560
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
554
+ readonly form: Schema.Struct<{
555
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
561
556
  readonly type: Schema.Literal<"string">;
562
557
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
563
558
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -664,6 +659,12 @@ export declare const Event: {
664
659
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
665
660
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
666
661
  }>>>, never, never>;
662
+ }>, Schema.Struct<{
663
+ readonly key: Schema.String;
664
+ readonly type: Schema.Literal<"external">;
665
+ readonly url: Schema.String;
666
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
667
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
667
668
  }>]>>;
668
669
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
669
670
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -671,25 +672,15 @@ export declare const Event: {
671
672
  readonly sessionID: Schema.String;
672
673
  readonly title: Schema.String;
673
674
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
674
- }>, Schema.Struct<{
675
- readonly mode: Schema.Literal<"url">;
676
- readonly url: Schema.String;
677
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
678
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
679
- };
680
- readonly sessionID: Schema.String;
681
- readonly title: Schema.String;
682
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
683
- }>]>;
675
+ }>;
684
676
  }>;
685
677
  }> & {
686
678
  type: "form.created";
687
679
  durability: "ephemeral";
688
680
  durable: undefined;
689
681
  data: Schema.Struct<{
690
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
691
- readonly mode: Schema.Literal<"form">;
692
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
682
+ readonly form: Schema.Struct<{
683
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
693
684
  readonly type: Schema.Literal<"string">;
694
685
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
695
686
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -796,6 +787,12 @@ export declare const Event: {
796
787
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
797
788
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
798
789
  }>>>, never, never>;
790
+ }>, Schema.Struct<{
791
+ readonly key: Schema.String;
792
+ readonly type: Schema.Literal<"external">;
793
+ readonly url: Schema.String;
794
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
795
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
799
796
  }>]>>;
800
797
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
801
798
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -803,16 +800,7 @@ export declare const Event: {
803
800
  readonly sessionID: Schema.String;
804
801
  readonly title: Schema.String;
805
802
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
806
- }>, Schema.Struct<{
807
- readonly mode: Schema.Literal<"url">;
808
- readonly url: Schema.String;
809
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
810
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
811
- };
812
- readonly sessionID: Schema.String;
813
- readonly title: Schema.String;
814
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
815
- }>]>;
803
+ }>;
816
804
  }>;
817
805
  };
818
806
  Replied: Schema.Struct<{
@@ -930,9 +918,8 @@ export declare const Event: {
930
918
  }>, never, never>;
931
919
  }>>, never, never>;
932
920
  readonly data: Schema.Struct<{
933
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
934
- readonly mode: Schema.Literal<"form">;
935
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
921
+ readonly form: Schema.Struct<{
922
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
936
923
  readonly type: Schema.Literal<"string">;
937
924
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
938
925
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -1039,6 +1026,12 @@ export declare const Event: {
1039
1026
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
1040
1027
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
1041
1028
  }>>>, never, never>;
1029
+ }>, Schema.Struct<{
1030
+ readonly key: Schema.String;
1031
+ readonly type: Schema.Literal<"external">;
1032
+ readonly url: Schema.String;
1033
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
1034
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
1042
1035
  }>]>>;
1043
1036
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
1044
1037
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -1046,25 +1039,15 @@ export declare const Event: {
1046
1039
  readonly sessionID: Schema.String;
1047
1040
  readonly title: Schema.String;
1048
1041
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
1049
- }>, Schema.Struct<{
1050
- readonly mode: Schema.Literal<"url">;
1051
- readonly url: Schema.String;
1052
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
1053
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
1054
- };
1055
- readonly sessionID: Schema.String;
1056
- readonly title: Schema.String;
1057
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
1058
- }>]>;
1042
+ }>;
1059
1043
  }>;
1060
1044
  }> & {
1061
1045
  type: "form.created";
1062
1046
  durability: "ephemeral";
1063
1047
  durable: undefined;
1064
1048
  data: Schema.Struct<{
1065
- readonly form: Schema.toTaggedUnion<"mode", readonly [Schema.Struct<{
1066
- readonly mode: Schema.Literal<"form">;
1067
- readonly fields: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
1049
+ readonly form: Schema.Struct<{
1050
+ readonly fields: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
1068
1051
  readonly type: Schema.Literal<"string">;
1069
1052
  readonly format: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>>, Schema.optionalKey<Schema.Literals<readonly ["email", "uri", "date", "date-time"]>>, never, never>;
1070
1053
  readonly minLength: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Int>>, Schema.optionalKey<Schema.Int>, never, never>;
@@ -1171,6 +1154,12 @@ export declare const Event: {
1171
1154
  readonly op: Schema.Literals<readonly ["eq", "neq"]>;
1172
1155
  readonly value: Schema.Union<readonly [Schema.String, Schema.Number, Schema.Boolean]>;
1173
1156
  }>>>, never, never>;
1157
+ }>, Schema.Struct<{
1158
+ readonly key: Schema.String;
1159
+ readonly type: Schema.Literal<"external">;
1160
+ readonly url: Schema.String;
1161
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
1162
+ readonly description: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
1174
1163
  }>]>>;
1175
1164
  readonly id: Schema.brand<Schema.String, "Form.ID"> & {
1176
1165
  create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
@@ -1178,16 +1167,7 @@ export declare const Event: {
1178
1167
  readonly sessionID: Schema.String;
1179
1168
  readonly title: Schema.String;
1180
1169
  readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
1181
- }>, Schema.Struct<{
1182
- readonly mode: Schema.Literal<"url">;
1183
- readonly url: Schema.String;
1184
- readonly id: Schema.brand<Schema.String, "Form.ID"> & {
1185
- create: (id?: string) => string & import("effect/Brand").Brand<"Form.ID">;
1186
- };
1187
- readonly sessionID: Schema.String;
1188
- readonly title: Schema.String;
1189
- readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
1190
- }>]>;
1170
+ }>;
1191
1171
  }>;
1192
1172
  }, Schema.Struct<{
1193
1173
  readonly id: Schema.brand<Schema.String, "Event.ID"> & {
package/dist/form.js CHANGED
@@ -70,7 +70,22 @@ export const MultiselectField = Schema.Struct({
70
70
  custom: Schema.Boolean.pipe(optional),
71
71
  default: Schema.Array(Schema.String).pipe(optional),
72
72
  }).annotate({ identifier: "Form.MultiselectField" });
73
- export const Field = Schema.Union([StringField, NumberField, IntegerField, BooleanField, MultiselectField]).pipe(Schema.toTaggedUnion("type"));
73
+ export const ExternalField = Schema.Struct({
74
+ key: Schema.String,
75
+ type: Schema.Literal("external"),
76
+ url: Schema.String,
77
+ title: Schema.String.pipe(optional),
78
+ description: Schema.String.pipe(optional),
79
+ }).annotate({ identifier: "Form.ExternalField" });
80
+ export const Field = Schema.Union([
81
+ StringField,
82
+ NumberField,
83
+ IntegerField,
84
+ BooleanField,
85
+ MultiselectField,
86
+ ExternalField,
87
+ ]).pipe(Schema.toTaggedUnion("type"), Schema.annotate({ identifier: "Form.Field" }));
88
+ export const Fields = Schema.NonEmptyArray(Field).annotate({ identifier: "Form.Fields" });
74
89
  const InfoBase = {
75
90
  id: ID,
76
91
  // This should be typed as SessionID. It is a plain string only because MCP elicitation
@@ -81,17 +96,10 @@ const InfoBase = {
81
96
  title: Schema.String,
82
97
  metadata: Metadata.pipe(optional),
83
98
  };
84
- export const FormInfo = Schema.Struct({
85
- ...InfoBase,
86
- mode: Schema.Literal("form"),
87
- fields: Schema.Array(Field),
88
- }).annotate({ identifier: "Form.FormInfo" });
89
- export const UrlInfo = Schema.Struct({
99
+ export const Info = Schema.Struct({
90
100
  ...InfoBase,
91
- mode: Schema.Literal("url"),
92
- url: Schema.String,
93
- }).annotate({ identifier: "Form.UrlInfo" });
94
- export const Info = Schema.Union([FormInfo, UrlInfo]).pipe(Schema.toTaggedUnion("mode"));
101
+ fields: Fields,
102
+ }).annotate({ identifier: "Form.Info" });
95
103
  export const Value = Schema.Union([Schema.String, Schema.Number, Schema.Boolean, Schema.Array(Schema.String)]).annotate({
96
104
  identifier: "Form.Value",
97
105
  });
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-next-15270",
4
+ "version": "0.0.0-next-15271",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {