49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
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>; |