import { Type } from "typebox" ;
import { NonEmptyString } from "./primitives.js" ;
const WizardRunStatusSchema = Type.Union([
Type.Literal("running" ),
Type.Literal("done" ),
Type.Literal("cancelled" ),
Type.Literal("error" ),
]);
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 },
);
const WizardSessionIdParamsSchema = Type.Object(
{
sessionId: NonEmptyString,
},
{ additionalProperties: false },
);
export const WizardCancelParamsSchema = WizardSessionIdParamsSchema;
export const WizardStatusParamsSchema = WizardSessionIdParamsSchema;
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 },
);
const WizardResultFields = {
done: Type.Boolean (),
step: Type.Optional(WizardStepSchema),
status: Type.Optional(WizardRunStatusSchema),
error: Type.Optional(Type.String()),
};
export const WizardNextResultSchema = Type.Object(WizardResultFields, {
additionalProperties: false ,
});
export const WizardStartResultSchema = Type.Object(
{
sessionId: NonEmptyString,
...WizardResultFields,
},
{ additionalProperties: false },
);
export const WizardStatusResultSchema = Type.Object(
{
status: WizardRunStatusSchema,
error: Type.Optional(Type.String()),
},
{ additionalProperties: false },
);
Messung V0.5 in Prozent C=95 H=98 G=96
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland