feat: add four-phase role description (identity/prepare/execute/report)

- Extend RoleDefinition with identity, prepare, execute, report fields
- Make systemPrompt optional (nullable) for four-phase workflows
- Update ROLE_DEFINITION JSON Schema (all new fields optional)
- Update validate.ts to accept new fields
- Update workflow.ts to strip null fields before CAS storage
- Update thread read to prefer identity over systemPrompt
- Add --version flag to uwf CLI
- Bump all packages to 0.5.0

Refs #359
This commit is contained in:
2026-05-21 01:41:20 +00:00
parent f9979c3c89
commit fc7d482b4f
12 changed files with 45 additions and 15 deletions
+13 -2
View File
@@ -67,11 +67,22 @@ async function materializeWorkflowPayload(
`${raw.name}.${roleName}`,
role.outputSchema,
);
roles[roleName] = {
const roleDef: RoleDefinition = {
description: role.description,
systemPrompt: role.systemPrompt,
systemPrompt: role.systemPrompt ?? null,
identity: role.identity ?? null,
prepare: role.prepare ?? null,
execute: role.execute ?? null,
report: role.report ?? null,
outputSchema,
};
// Strip null fields so CAS payload stays lean and schema-valid
for (const key of ["systemPrompt", "identity", "prepare", "execute", "report"] as const) {
if (roleDef[key] === null) {
delete (roleDef as Record<string, unknown>)[key];
}
}
roles[roleName] = roleDef;
}
return {
name: raw.name,