feat(schema): add edge attribute schemas and CallResult schema
This commit is contained in:
@@ -1 +1,49 @@
|
||||
export {};
|
||||
import { Type, type Static } from "@alkdev/typebox";
|
||||
import { NodeStatusEnum } from "./enums.js";
|
||||
import { OperationNodeAttrs } from "./node.js";
|
||||
|
||||
export const OperationEdgeAttrs = Type.Object({
|
||||
compatible: Type.Boolean(),
|
||||
detail: Type.Optional(Type.String()),
|
||||
mismatches: Type.Optional(
|
||||
Type.Array(
|
||||
Type.Object({
|
||||
path: Type.String(),
|
||||
expected: Type.String(),
|
||||
actual: Type.String(),
|
||||
}),
|
||||
),
|
||||
),
|
||||
});
|
||||
export type OperationEdgeAttrs = Static<typeof OperationEdgeAttrs>;
|
||||
|
||||
export const TriggeredEdgeAttrs = Type.Object({});
|
||||
export type TriggeredEdgeAttrs = Static<typeof TriggeredEdgeAttrs>;
|
||||
|
||||
export const DependencyEdgeAttrs = Type.Object({});
|
||||
export type DependencyEdgeAttrs = Static<typeof DependencyEdgeAttrs>;
|
||||
|
||||
export type CallEdgeAttrs = TriggeredEdgeAttrs | DependencyEdgeAttrs;
|
||||
|
||||
export const TemplateEdgeAttrs = Type.Object({
|
||||
edgeType: Type.Union([Type.Literal("sequential"), Type.Literal("conditional")]),
|
||||
condition: Type.Optional(Type.Unknown()),
|
||||
negated: Type.Optional(Type.Boolean()),
|
||||
dataFlow: Type.Optional(Type.Boolean({ default: false })),
|
||||
});
|
||||
export type TemplateEdgeAttrs = Static<typeof TemplateEdgeAttrs>;
|
||||
|
||||
export type TemplateNodeAttrs = OperationNodeAttrs;
|
||||
|
||||
export const CallResultSchema = Type.Object({
|
||||
status: NodeStatusEnum,
|
||||
output: Type.Unknown(),
|
||||
error: Type.Optional(
|
||||
Type.Object({
|
||||
code: Type.String(),
|
||||
message: Type.String(),
|
||||
details: Type.Optional(Type.Unknown()),
|
||||
}),
|
||||
),
|
||||
});
|
||||
export type CallResult = Static<typeof CallResultSchema>;
|
||||
Reference in New Issue
Block a user