122 lines
2.9 KiB
TypeScript
122 lines
2.9 KiB
TypeScript
import { Type } from "@sinclair/typebox";
|
|
|
|
import { NonEmptyString } from "./primitives.js";
|
|
|
|
export const WizardStartParamsSchema = Type.Object(
|
|
{
|
|
mode: Type.Optional(Type.Union([Type.Literal("local"), Type.Literal("remote")])),
|
|
workspace: Type.Optional(Type.String()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardAnswerSchema = Type.Object(
|
|
{
|
|
stepId: NonEmptyString,
|
|
value: Type.Optional(Type.Unknown()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardNextParamsSchema = Type.Object(
|
|
{
|
|
sessionId: NonEmptyString,
|
|
answer: Type.Optional(WizardAnswerSchema),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardCancelParamsSchema = Type.Object(
|
|
{
|
|
sessionId: NonEmptyString,
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardStatusParamsSchema = Type.Object(
|
|
{
|
|
sessionId: NonEmptyString,
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardStepOptionSchema = Type.Object(
|
|
{
|
|
value: Type.Unknown(),
|
|
label: NonEmptyString,
|
|
hint: Type.Optional(Type.String()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardStepSchema = Type.Object(
|
|
{
|
|
id: NonEmptyString,
|
|
type: Type.Union([
|
|
Type.Literal("note"),
|
|
Type.Literal("select"),
|
|
Type.Literal("text"),
|
|
Type.Literal("confirm"),
|
|
Type.Literal("multiselect"),
|
|
Type.Literal("progress"),
|
|
Type.Literal("action"),
|
|
]),
|
|
title: Type.Optional(Type.String()),
|
|
message: Type.Optional(Type.String()),
|
|
options: Type.Optional(Type.Array(WizardStepOptionSchema)),
|
|
initialValue: Type.Optional(Type.Unknown()),
|
|
placeholder: Type.Optional(Type.String()),
|
|
sensitive: Type.Optional(Type.Boolean()),
|
|
executor: Type.Optional(Type.Union([Type.Literal("gateway"), Type.Literal("client")])),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardNextResultSchema = Type.Object(
|
|
{
|
|
done: Type.Boolean(),
|
|
step: Type.Optional(WizardStepSchema),
|
|
status: Type.Optional(
|
|
Type.Union([
|
|
Type.Literal("running"),
|
|
Type.Literal("done"),
|
|
Type.Literal("cancelled"),
|
|
Type.Literal("error"),
|
|
]),
|
|
),
|
|
error: Type.Optional(Type.String()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardStartResultSchema = Type.Object(
|
|
{
|
|
sessionId: NonEmptyString,
|
|
done: Type.Boolean(),
|
|
step: Type.Optional(WizardStepSchema),
|
|
status: Type.Optional(
|
|
Type.Union([
|
|
Type.Literal("running"),
|
|
Type.Literal("done"),
|
|
Type.Literal("cancelled"),
|
|
Type.Literal("error"),
|
|
]),
|
|
),
|
|
error: Type.Optional(Type.String()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const WizardStatusResultSchema = Type.Object(
|
|
{
|
|
status: Type.Union([
|
|
Type.Literal("running"),
|
|
Type.Literal("done"),
|
|
Type.Literal("cancelled"),
|
|
Type.Literal("error"),
|
|
]),
|
|
error: Type.Optional(Type.String()),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|