Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

TypeSafeSchema unstable

Codecs for the TypeSafe System One API.

14 exports Since v4.0.0 Source

Schemas

Answer

unstable
Since v4.0.0

A System One answer.

Signature

declare const Answer: Union<readonly [Struct<{
readonly choice: String;
readonly confidence: Number;
readonly probabilities: $Record<String, Number>;
readonly type: Literal<"choice">;
}>, Struct<{
readonly confidence: Number;
readonly legend: optional<$Record<String, Codec<Json, Json, never, never>>>;
readonly probabilities: $Record<String, Number>;
readonly score: Number;
readonly type: Literal<"score">;
}>, Struct<{
readonly noul: Number;
readonly type: Literal<"noul">;
}>, Struct<{
readonly box: Struct<{
readonly bottom: Number;
readonly left: Number;
readonly right: Number;
readonly top: Number;
}>;
readonly confidence: Number;
readonly type: Literal<"box">;
}>]>

BoxAnswer

unstable
Since v4.1.0

A bounding box whose edges are fractions of the image's width and height.

Signature

declare const BoxAnswer: Struct<{
readonly box: Struct<{
readonly bottom: Number;
readonly left: Number;
readonly right: Number;
readonly top: Number;
}>;
readonly confidence: Number;
readonly type: Literal<"box">;
}>

BoxQuestion

unstable
Since v4.1.0

A question that finds where something is in an image. Needs Jev 1.14 and the TypeSafe-Danger-Zone-Images: true header.

Signature

declare const BoxQuestion: Struct<{
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"box">;
}>
Since v4.0.0

A classification distribution.

Signature

declare const ChoiceAnswer: Struct<{
readonly choice: String;
readonly confidence: Number;
readonly probabilities: $Record<String, Number>;
readonly type: Literal<"choice">;
}>
Since v4.0.0

A classification question.

Signature

declare const ChoiceQuestion: Struct<{
readonly criteria: $Record<String, NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>>;
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"choice">;
}>

ImageAsset

unstable
Since v4.1.0

A base64-encoded PNG or JPEG image. Standard alphabet with = padding, no whitespace, and no data: prefix.

Signature

declare const ImageAsset: Struct<{
readonly data_base64: String;
readonly format: Literals<readonly ["png", "jpg", "jpeg"]>;
readonly type: optional<Literal<"image">>;
}>
Since v4.0.0

Available TypeSafe models.

Signature

declare const ListModelsResponse: Struct<{
readonly models: $Array<Struct<{
readonly description: optional<String>;
readonly name: String;
readonly release_date: optional<String>;
}>>;
}>

NoulAnswer

unstable
Since v4.0.0

A Bernoulli probability.

Signature

declare const NoulAnswer: Struct<{
readonly noul: Number;
readonly type: Literal<"noul">;
}>
Since v4.0.0

A probability question.

Signature

declare const NoulQuestion: Struct<{
readonly criteria: optional<Struct<{
readonly false: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly true: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
}>>;
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"noul">;
}>

Question

unstable
Since v4.0.0

A System One question with string, JSON object, JSON array, or null instructions and descriptions.

Signature

declare const Question: Union<readonly [Struct<{
readonly criteria: $Record<String, NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>>;
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"choice">;
}>, Struct<{
readonly criteria: $Array<NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>>;
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"score">;
}>, Struct<{
readonly criteria: optional<Struct<{
readonly false: NullOr<Union<readonly [String, $Record<..., ...>, $Array<...>]>>;
readonly true: NullOr<Union<readonly [String, $Record<..., ...>, $Array<...>]>>;
}>>;
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"noul">;
}>, Struct<{
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"box">;
}>]>

ScoreAnswer

unstable
Since v4.0.0

A zero-based rating and index-keyed distribution. legend maps indices to descriptions.

Signature

declare const ScoreAnswer: Struct<{
readonly confidence: Number;
readonly legend: optional<$Record<String, Codec<Json, Json, never, never>>>;
readonly probabilities: $Record<String, Number>;
readonly score: Number;
readonly type: Literal<"score">;
}>
Since v4.0.0

An ordered rating question.

Signature

declare const ScoreQuestion: Struct<{
readonly criteria: $Array<NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>>;
readonly instructions: NullOr<Union<readonly [String, $Record<String, Codec<Json, Json, never, never>>, $Array<Codec<Json, Json, never, never>>]>>;
readonly type: Literal<"score">;
}>
Since v4.0.0

A batch of questions against encoded state. assets maps placeholder strings to images; the model sees each image wherever its placeholder appears in state, instructions, or criteria.

Signature

declare const SystemOneRequest: Struct<{
readonly assets: optional<$Record<String, Struct<{
readonly data_base64: String;
readonly format: Literals<readonly ["png", "jpg", "jpeg"]>;
readonly type: optional<Literal<"image">>;
}>>>;
readonly model: String;
readonly questions: $Record<String, Union<readonly [Struct<{
readonly criteria: $Record<String, NullOr<Union<readonly [..., ..., ...]>>>;
readonly instructions: NullOr<Union<readonly [String, $Record<..., ...>, $Array<...>]>>;
readonly type: Literal<"choice">;
}>, Struct<{
readonly criteria: $Array<NullOr<Union<readonly [..., ..., ...]>>>;
readonly instructions: NullOr<Union<readonly [String, $Record<..., ...>, $Array<...>]>>;
readonly type: Literal<"score">;
}>, Struct<{
readonly criteria: optional<Struct<{
readonly false: NullOr<...>;
readonly true: NullOr<...>;
}>>;
readonly instructions: NullOr<Union<readonly [String, $Record<..., ...>, $Array<...>]>>;
readonly type: Literal<"noul">;
}>, Struct<{
readonly instructions: NullOr<Union<readonly [String, $Record<..., ...>, $Array<...>]>>;
readonly type: Literal<"box">;
}>]>>;
readonly state: Codec<Json, Json, never, never>;
}>
Since v4.0.0

Answers and token usage for a batch.

Signature

declare const SystemOneResponse: Struct<{
readonly answers: $Record<String, Union<readonly [Struct<{
readonly choice: String;
readonly confidence: Number;
readonly probabilities: $Record<String, Number>;
readonly type: Literal<"choice">;
}>, Struct<{
readonly confidence: Number;
readonly legend: optional<$Record<String, Codec<Json, Json, never, never>>>;
readonly probabilities: $Record<String, Number>;
readonly score: Number;
readonly type: Literal<"score">;
}>, Struct<{
readonly noul: Number;
readonly type: Literal<"noul">;
}>, Struct<{
readonly box: Struct<{
readonly bottom: Number;
readonly left: Number;
readonly right: Number;
readonly top: Number;
}>;
readonly confidence: Number;
readonly type: Literal<"box">;
}>]>>;
readonly model: String;
readonly usage: optional<Struct<{
readonly input_tokens: optional<Number>;
readonly output_tokens: optional<Number>;
}>>;
}>