@flower-f/afk-core
v0.6.0
Published
Core workflow contracts, runners, reports, and schemas for afk-dev.
Maintainers
Readme
@flower-f/afk-core
Core workflow contracts, runners, reports, schemas, and shared utilities for afk-dev.
Most users should install @flower-f/afk-cli instead.
What's inside
WorkflowPipeline— the public extension seam for custom workflow executionWorkflowPipelineRegistry— pipeline registration and lookup- Runners, progress events, and artifact abstractions
- Shared schemas and runtime-agnostic types
Example
import {
WorkflowPipeline,
createWorkflowPipelineRegistry,
type WorkflowPipelineValidationInput,
type WorkflowRunInput,
type WorkflowRunResult,
type WorkflowRuntimeContext,
} from "@flower-f/afk-core";
class DocsGeneratorPipeline extends WorkflowPipeline {
readonly name = "docs-generator";
override validate({ workflow }: WorkflowPipelineValidationInput): void {
if (!workflow.steps.draft) {
throw new Error(`Workflow '${workflow.name}' must define a draft step.`);
}
}
override async run(
input: WorkflowRunInput,
_runtimes: WorkflowRuntimeContext,
): Promise<WorkflowRunResult> {
const startedAt = new Date().toISOString();
const completedAt = new Date().toISOString();
return {
pipeline: this.name,
task: input.task,
startedAt,
completedAt,
stopReason: "completed",
sessions: {},
metrics: [],
artifacts: [{ key: "report", kind: "report", filename: "report.json", format: "json" }],
buildArtifacts: () => [
{
key: "report",
kind: "report",
filename: "report.json",
format: "json",
content: { task: input.task },
},
],
};
}
}
const registry = createWorkflowPipelineRegistry([new DocsGeneratorPipeline()]);The generic flow pipeline is exported by this package. @flower-f/afk-node wires it to runtime adapters, plugin discovery, and the default route-selection tool.
