f0b7be79fb
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
863 B
TypeScript
28 lines
863 B
TypeScript
import {
|
|
END,
|
|
type ModeratorCondition,
|
|
type ModeratorTable,
|
|
START,
|
|
} from "@uncaged/workflow-runtime";
|
|
import type { WriterMeta } from "./roles/writer.js";
|
|
import type { DocumentMeta } from "./roles.js";
|
|
|
|
const writerIsEditMode: ModeratorCondition<DocumentMeta> = {
|
|
name: "writerIsEditMode",
|
|
description: "Writer ran in edit mode and produced a modified document",
|
|
check: (ctx) => {
|
|
const writerStep = ctx.steps.find((s) => s.role === "writer");
|
|
if (writerStep === undefined) return false;
|
|
return (writerStep.meta as WriterMeta).mode === "edit";
|
|
},
|
|
};
|
|
|
|
export const documentTable: ModeratorTable<DocumentMeta> = {
|
|
[START]: [{ condition: "FALLBACK", role: "writer" }],
|
|
writer: [
|
|
{ condition: writerIsEditMode, role: "differ" },
|
|
{ condition: "FALLBACK", role: END },
|
|
],
|
|
differ: [{ condition: "FALLBACK", role: END }],
|
|
};
|