refactor(FN-7039): delete WORKFLOW_STEP_TEMPLATES + legacy workflow-step management surface
U6: delete the built-in WORKFLOW_STEP_TEMPLATES catalog + its materializer (getBuiltInWorkflowTemplate/ensureWorkflowStepForTemplate/toBuiltInWorkflowStep); inline the browser-verification + code-review name/prompt/toolMode/gateMode into their optional-group IR builders (node bytes unchanged); simplify resolveEnabledWorkflowSteps to an identity-stable pass-through (no materialization, so the optionalGroupIdSet collision guard is no longer needed). Plugin-contributed step templates are kept as the editor palette. U5: remove the legacy /api/workflow-steps REST surface (GET/POST/PATCH/DELETE + /refine + /workflow-step-templates/:id/create), the dead client fns, and the Settings management UI; GET /api/workflow-step-templates now serves plugin templates only. The create-time optional-step toggles remain. Scope: the workflow_steps store CRUD + table are intentionally KEPT — still consumed by the engine (merger/recovery) and needed by U7's migration; their removal + the table drop land in U7. Plan U5 + U6. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5215,38 +5215,22 @@ export function clearActivityLog(projectId?: string): Promise<{ success: boolean
|
||||
|
||||
// ── Workflow Steps ─────────────────────────────────────────────────────
|
||||
|
||||
/** Fetch all workflow step definitions */
|
||||
export function fetchWorkflowSteps(projectId?: string): Promise<WorkflowStep[]> {
|
||||
const path = withProjectId("/workflow-steps", projectId);
|
||||
return dedupe(path, () => api<WorkflowStep[]>(path));
|
||||
}
|
||||
|
||||
/** Create a new workflow step */
|
||||
export function createWorkflowStep(input: WorkflowStepInput, projectId?: string): Promise<WorkflowStep> {
|
||||
return api<WorkflowStep>(withProjectId("/workflow-steps", projectId), {
|
||||
method: "POST",
|
||||
body: JSON.stringify(input),
|
||||
});
|
||||
}
|
||||
|
||||
/** Update a workflow step */
|
||||
export function updateWorkflowStep(id: string, updates: Partial<WorkflowStepInput>, projectId?: string): Promise<WorkflowStep> {
|
||||
return api<WorkflowStep>(withProjectId(`/workflow-steps/${id}`, projectId), {
|
||||
method: "PATCH",
|
||||
body: JSON.stringify(updates),
|
||||
});
|
||||
}
|
||||
|
||||
/** Delete a workflow step */
|
||||
export function deleteWorkflowStep(id: string, projectId?: string): Promise<void> {
|
||||
return api<void>(withProjectId(`/workflow-steps/${id}`, projectId), { method: "DELETE" });
|
||||
}
|
||||
|
||||
/** Refine a workflow step's prompt using AI */
|
||||
export function refineWorkflowStepPrompt(id: string, projectId?: string): Promise<{ prompt: string; workflowStep: WorkflowStep }> {
|
||||
return api<{ prompt: string; workflowStep: WorkflowStep }>(withProjectId(`/workflow-steps/${id}/refine`, projectId), {
|
||||
method: "POST",
|
||||
});
|
||||
/*
|
||||
FNXC:WorkflowStepCRUD 2026-06-25-00:00:
|
||||
U5 removed the legacy `/workflow-steps` CRUD/REST surface (GET list, POST create,
|
||||
PATCH update, DELETE, refine) along with its Settings management UI. The client
|
||||
mutation helpers (`createWorkflowStep`/`updateWorkflowStep`/`deleteWorkflowStep`/
|
||||
`refineWorkflowStepPrompt`/`createWorkflowStepFromTemplate`) had no remaining callers
|
||||
and were deleted. `fetchWorkflowSteps` is retained as a stable, no-network shim
|
||||
returning `[]`: its only remaining consumers are the plugin dashboard context's
|
||||
`workflowSteps` field and the WorkflowResultsTab option list, both of which now source
|
||||
step state from the graph (optional-group nodes) — the legacy definition list no longer
|
||||
exists. Removing the field outright is graph-native U3 plumbing work, out of scope here.
|
||||
*/
|
||||
/** Legacy workflow-step definition list (removed in U5). Resolves to an empty list:
|
||||
* built-in/custom step definitions are now graph optional-group nodes, not DB rows. */
|
||||
export function fetchWorkflowSteps(_projectId?: string): Promise<WorkflowStep[]> {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
|
||||
/** Fetch workflow step results for a task */
|
||||
@@ -5594,7 +5578,9 @@ export function setProjectDefaultWorkflow(
|
||||
/** Re-export WorkflowStepTemplate type from core */
|
||||
export type { WorkflowStepTemplate } from "@fusion/core";
|
||||
|
||||
/** Fetch all built-in workflow step templates */
|
||||
/** Fetch the workflow step templates that feed the editor palette. The built-in
|
||||
* built-in step-template catalog was deleted in U6, so this now returns only
|
||||
* plugin-contributed templates. */
|
||||
export function fetchWorkflowStepTemplates(): Promise<{ templates: import("@fusion/core").WorkflowStepTemplate[] }> {
|
||||
return api<{ templates: import("@fusion/core").WorkflowStepTemplate[] }>("/workflow-step-templates");
|
||||
}
|
||||
@@ -5608,13 +5594,6 @@ export function fetchPluginWorkflowStepTemplates(): Promise<{
|
||||
}>("/plugin-workflow-step-templates");
|
||||
}
|
||||
|
||||
/** Create a workflow step from a built-in or plugin template */
|
||||
export function createWorkflowStepFromTemplate(templateId: string, projectId?: string): Promise<WorkflowStep> {
|
||||
return api<WorkflowStep>(withProjectId(`/workflow-step-templates/${encodeURIComponent(templateId)}/create`, projectId), {
|
||||
method: "POST",
|
||||
});
|
||||
}
|
||||
|
||||
// ── Scripts API ────────────────────────────────────────────────────────
|
||||
|
||||
/** Script entry returned from the API */
|
||||
|
||||
Reference in New Issue
Block a user