7b9cb6a9c8
Reclaim the workflow-* package names now that legacy packages are archived.
Package renames:
- @uncaged/uwf-protocol → @uncaged/workflow-protocol
- @uncaged/uwf-moderator → @uncaged/workflow-moderator
- @uncaged/uwf-agent-kit → @uncaged/workflow-agent-kit
- @uncaged/uwf-agent-hermes → @uncaged/workflow-agent-hermes
- @uncaged/cli-uwf → @uncaged/cli-workflow
All internal imports, tsconfig references, and docs updated.
CLI binary name 'uwf' unchanged.
小橘 🍊(NEKO Team)
87 lines
2.1 KiB
TypeScript
87 lines
2.1 KiB
TypeScript
import type { JSONSchema } from "@uncaged/json-cas";
|
|
|
|
const ROLE_DEFINITION: JSONSchema = {
|
|
type: "object",
|
|
required: ["description", "systemPrompt", "outputSchema"],
|
|
properties: {
|
|
description: { type: "string" },
|
|
systemPrompt: { type: "string" },
|
|
outputSchema: { type: "string", format: "cas_ref" },
|
|
},
|
|
additionalProperties: false,
|
|
};
|
|
|
|
const CONDITION_DEFINITION: JSONSchema = {
|
|
type: "object",
|
|
required: ["description", "expression"],
|
|
properties: {
|
|
description: { type: "string" },
|
|
expression: { type: "string" },
|
|
},
|
|
additionalProperties: false,
|
|
};
|
|
|
|
const TRANSITION: JSONSchema = {
|
|
type: "object",
|
|
required: ["role", "condition"],
|
|
properties: {
|
|
role: { type: "string" },
|
|
condition: { anyOf: [{ type: "string" }, { type: "null" }] },
|
|
},
|
|
additionalProperties: false,
|
|
};
|
|
|
|
export const WORKFLOW_SCHEMA: JSONSchema = {
|
|
title: "Workflow",
|
|
type: "object",
|
|
required: ["name", "description", "roles", "conditions", "graph"],
|
|
properties: {
|
|
name: { type: "string" },
|
|
description: { type: "string" },
|
|
roles: {
|
|
type: "object",
|
|
additionalProperties: ROLE_DEFINITION,
|
|
},
|
|
conditions: {
|
|
type: "object",
|
|
additionalProperties: CONDITION_DEFINITION,
|
|
},
|
|
graph: {
|
|
type: "object",
|
|
additionalProperties: {
|
|
type: "array",
|
|
items: TRANSITION,
|
|
},
|
|
},
|
|
},
|
|
additionalProperties: false,
|
|
};
|
|
|
|
export const START_NODE_SCHEMA: JSONSchema = {
|
|
title: "StartNode",
|
|
type: "object",
|
|
required: ["workflow", "prompt"],
|
|
properties: {
|
|
workflow: { type: "string", format: "cas_ref" },
|
|
prompt: { type: "string" },
|
|
},
|
|
additionalProperties: false,
|
|
};
|
|
|
|
export const STEP_NODE_SCHEMA: JSONSchema = {
|
|
title: "StepNode",
|
|
type: "object",
|
|
required: ["start", "prev", "role", "output", "detail", "agent"],
|
|
properties: {
|
|
start: { type: "string", format: "cas_ref" },
|
|
prev: {
|
|
anyOf: [{ type: "string", format: "cas_ref" }, { type: "null" }],
|
|
},
|
|
role: { type: "string" },
|
|
output: { type: "string", format: "cas_ref" },
|
|
detail: { type: "string", format: "cas_ref" },
|
|
agent: { type: "string" },
|
|
},
|
|
additionalProperties: false,
|
|
};
|