Initial TrueGrowth source import

This commit is contained in:
2026-07-07 09:36:36 +08:00
commit 3b6781d695
2283 changed files with 691996 additions and 0 deletions

View File

@@ -0,0 +1,173 @@
## ADDED Requirements
### Requirement: Visual Orchestration Workbench
The system SHALL provide a first-class workbench module for visual business workflow orchestration on the existing `/workflow` entry.
#### Scenario: User opens orchestration from navigation
- **GIVEN** the user is in the TrueGrowth workbench
- **WHEN** the user opens the "流程编排" navigation item
- **THEN** the workbench navigates to `/workflow`
- **AND** shows the visual orchestration editor
- **AND** the page follows the TrueGrowth desktop visual system.
#### Scenario: User opens orchestration from App Center
- **GIVEN** the user is viewing the App Center
- **WHEN** the user opens the "流程编排" app card
- **THEN** the workbench navigates to the same orchestration module.
#### Scenario: Legacy workflow page is replaced
- **GIVEN** the current `/workflow` route uses a simple stage-list workflow page
- **WHEN** this change is implemented
- **THEN** the route is rebuilt as a visual DAG editor
- **AND** any useful old presets are available as graph templates rather than static linear cards.
### Requirement: Drag-and-Drop DAG Editor
The system SHALL let users build directed acyclic workflows by dragging nodes onto a canvas and connecting them with edges.
#### Scenario: User creates a workflow graph
- **GIVEN** the orchestration editor is open
- **WHEN** the user drags supported nodes onto the canvas and connects compatible ports
- **THEN** the editor creates a workflow graph with persisted node positions, node configuration, and edges
- **AND** the graph can be saved and reopened without losing layout or configuration.
#### Scenario: User connects incompatible nodes
- **GIVEN** a source node output is incompatible with a target node input
- **WHEN** the user connects the nodes or validates the workflow
- **THEN** the editor reports the incompatibility
- **AND** the workflow cannot be executed until the issue is resolved or explicitly skipped by a supported rule.
#### Scenario: User creates a cycle
- **GIVEN** a workflow graph already contains a dependency path
- **WHEN** the user adds an edge that creates a cycle
- **THEN** the editor rejects the edge or marks the workflow invalid
- **AND** explains which nodes are involved in the cycle.
### Requirement: Business Node Catalog
The system SHALL provide configurable nodes for TrueGrowth creation, editing, intelligence, and publishing capabilities.
#### Scenario: User configures creation and publishing nodes
- **GIVEN** the user adds image generation, video generation, digital-human, intelligent editing, and publish-center nodes
- **WHEN** the user selects each node
- **THEN** the inspector shows detailed settings for provider, model, prompt, media inputs, output mapping, timeout, retry, and capability-specific options.
#### Scenario: User configures an intelligence/news node
- **GIVEN** the user adds an intelligence or news summary node
- **WHEN** the user configures topic, source range, language, output format, and model
- **THEN** the node can produce structured summaries, scripts, prompts, or downstream variables for later nodes.
#### Scenario: User configures intelligent editing
- **GIVEN** the user adds an intelligent editing node
- **WHEN** the user selects ASR, FunClip, FFmpeg, subtitle, clip, merge, or format options
- **THEN** the node records a normalized edit configuration
- **AND** the runtime executes it through the appropriate local sidecar or provider adapter.
### Requirement: Workflow Validation
The system SHALL validate workflows before execution.
#### Scenario: Workflow has missing required configuration
- **GIVEN** a workflow contains a node with required fields missing
- **WHEN** the user validates or runs the workflow
- **THEN** the system reports the missing fields on the node and in the validation summary
- **AND** the run is not started.
#### Scenario: Publish target is unsupported
- **GIVEN** a publish node targets a platform account that does not support the selected media type or schedule option
- **WHEN** the workflow is validated
- **THEN** the system marks the publish node invalid
- **AND** shows the unsupported capability before execution.
### Requirement: DAG Runtime Execution
The system SHALL execute valid workflow graphs according to node dependencies and configured concurrency limits.
#### Scenario: Runtime executes dependent nodes
- **GIVEN** a valid workflow has upstream and downstream dependencies
- **WHEN** the user starts a run
- **THEN** the runtime executes nodes only after their dependencies have succeeded or produced required outputs
- **AND** records each node status, progress, logs, outputs, and artifacts.
#### Scenario: Runtime executes parallel branches
- **GIVEN** a valid workflow has independent branches
- **WHEN** the workflow run starts
- **THEN** the runtime may execute branches in parallel according to configured global, provider, and platform concurrency limits.
#### Scenario: Runtime handles node failure
- **GIVEN** a node fails during execution
- **WHEN** retry policy allows another attempt
- **THEN** the runtime retries the node according to policy
- **AND** records every attempt in the run history.
#### Scenario: Runtime cancels a run
- **GIVEN** a workflow run is queued, running, or waiting
- **WHEN** the user cancels the run
- **THEN** the runtime stops scheduling new nodes where possible
- **AND** marks pending or active nodes as cancelled with a clear final run state.
### Requirement: Progress Feedback
The system SHALL provide live progress feedback for workflow runs and node executions.
#### Scenario: User watches a running workflow
- **GIVEN** a workflow run is active
- **WHEN** a node changes state, emits progress, writes a log, or produces an artifact
- **THEN** the canvas, run panel, and run details update with the latest status.
#### Scenario: User opens a historical run
- **GIVEN** a previous run exists
- **WHEN** the user opens its details
- **THEN** the system shows trigger source, start/end time, duration, final status, node timeline, logs, errors, and generated artifacts.
### Requirement: Scheduled Task Center
The system SHALL provide a scheduled task center for recurring and one-off workflow automation.
#### Scenario: User schedules a daily automation
- **GIVEN** the user has a saved workflow that summarizes news, generates a digital-human video, edits it, and publishes it
- **WHEN** the user creates a schedule for every day at 09:00 in a selected timezone
- **THEN** the system stores the schedule
- **AND** shows the next run time and enabled status.
#### Scenario: Scheduler fires a workflow
- **GIVEN** an enabled schedule reaches its next run time
- **WHEN** the local scheduler fires
- **THEN** the system creates an immutable workflow run with trigger metadata
- **AND** execution appears in the scheduled task center history.
#### Scenario: User disables a schedule
- **GIVEN** a schedule is enabled
- **WHEN** the user disables it
- **THEN** no future runs are created for that schedule until it is enabled again
- **AND** existing historical runs remain visible.
#### Scenario: Scheduled run overlaps existing run
- **GIVEN** a schedule fires while a previous run for the same schedule is still active
- **WHEN** the schedule has an overlap policy
- **THEN** the runtime follows the policy to skip, queue, or allow the new run
- **AND** records the decision in schedule history.
### Requirement: Durable Persistence and Recovery
The system SHALL persist workflow definitions, schedules, runs, node events, logs, and artifacts so work can recover after refresh or runtime restart.
#### Scenario: User refreshes during an active run
- **GIVEN** a workflow run is active
- **WHEN** the workbench refreshes
- **THEN** the UI reloads the latest run state from the local runtime
- **AND** resumes progress updates where supported.
#### Scenario: Local runtime restarts
- **GIVEN** the local runtime restarts after previous runs or schedules existed
- **WHEN** orchestration storage is loaded
- **THEN** saved workflow definitions, schedules, completed runs, and recoverable active runs are restored
- **AND** unrecoverable active nodes are marked with a clear recovery status.
### Requirement: Adapter Isolation
The system SHALL execute provider, sidecar, and publishing work through normalized adapters.
#### Scenario: Adapter emits normalized events
- **GIVEN** a node calls image generation, video generation, digital-human, intelligent editing, intelligence, or publishing
- **WHEN** the underlying provider emits progress, logs, artifacts, success, or failure
- **THEN** the adapter converts the result into orchestration events
- **AND** no provider-specific secret values are exposed to the frontend.
#### Scenario: Heavy sidecar crashes
- **GIVEN** a heavy sidecar runs in an isolated desktop process
- **WHEN** the sidecar crashes or exits unexpectedly
- **THEN** the runtime records the node failure
- **AND** the workbench shows a recoverable error without crashing the renderer.