3467b772e6
- Bundle contract: export const run + export const descriptor (no default export) - add only accepts .esm.js, extracts descriptor via dynamic import → .yaml - Removed: build-pipeline, generate-types, json-schema-to-ts - Worker loads mod.run instead of mod.default - Biome: no more noDefaultExport overrides for bundles - 62 tests pass, biome clean Closes #8 小橘 <xiaoju@shazhou.work>
32 lines
710 B
TypeScript
32 lines
710 B
TypeScript
import { createRoleModerator, END, type Role } from "@uncaged/workflow";
|
|
|
|
type Roles = {
|
|
greeter: { greeting: string };
|
|
};
|
|
|
|
export const descriptor = {
|
|
description: "A simple hello world workflow",
|
|
roles: {
|
|
greeter: {
|
|
description: "Generates a greeting",
|
|
schema: {
|
|
type: "object",
|
|
properties: { greeting: { type: "string" } },
|
|
required: ["greeting"],
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
const greeter: Role<Roles["greeter"]> = async (ctx) => ({
|
|
content: `Hello, ${ctx.start.content}`,
|
|
meta: { greeting: "Hello!" },
|
|
});
|
|
|
|
export const run = createRoleModerator<Roles>({
|
|
roles: { greeter },
|
|
moderator(ctx) {
|
|
return ctx.steps.length === 0 ? "greeter" : END;
|
|
},
|
|
});
|