61 lines
2.5 KiB
Markdown
61 lines
2.5 KiB
Markdown
---
|
|
name: pipeline-task
|
|
description: "Pipeline task interaction module — task submission, monitoring, human task approval, and artifact viewing."
|
|
---
|
|
|
|
# pipeline_task
|
|
|
|
Pure interaction-layer module with no data tables. All operations delegate to `pipeline_service` and `pipeline_sdlc` via ServerEnv.
|
|
|
|
## Architecture
|
|
|
|
```
|
|
pipeline_task/
|
|
├── pipeline_task/
|
|
│ ├── __init__.py
|
|
│ └── init.py # load_pipeline_task() — registers UI-facing functions
|
|
├── wwwroot/
|
|
│ ├── index.ui # Task center dashboard
|
|
│ ├── task_submit.ui # Natural language task submission form
|
|
│ ├── task_detail.ui # Task detail with step tree + artifacts
|
|
│ ├── task_tree_popup.ui # Popup step tree view
|
|
│ ├── step_panel.ui # Single step input/output viewer
|
|
│ └── api/
|
|
│ ├── task_submit.dspy # Submit task (NLP → intent → dispatch)
|
|
│ ├── task_list.dspy # Task list with filters
|
|
│ ├── task_detail.dspy # Task + steps detail
|
|
│ ├── task_node.dspy # Single step I/O
|
|
│ ├── task_tree.dspy # Step DAG as tree
|
|
│ ├── task_control.dspy # Pause/resume/cancel
|
|
│ ├── task_restart.dspy # Restart task
|
|
│ ├── human_list.dspy # Human task list
|
|
│ ├── human_complete.dspy # Complete human task
|
|
│ ├── approval_approve.dspy / reject.dspy
|
|
│ └── my_bugs.dspy # User's bug list
|
|
├── i18n/ # zh/en/jp/ko translations
|
|
└── scripts/load_path.py # RBAC registration
|
|
```
|
|
|
|
## Key DSPY Endpoints
|
|
|
|
### Task Lifecycle
|
|
- `task_submit.dspy` — NLP input → intent classification → pipeline dispatch
|
|
- `task_list.dspy` — Paginated task list with status filters
|
|
- `task_detail.dspy` — Full task info + step tree
|
|
|
|
### Step Interaction
|
|
- `task_node.dspy` — Read/write step input/output artifacts
|
|
- `task_tree.dspy` — DAG steps as nested tree for frontend Tree widget
|
|
|
|
### Human Tasks
|
|
- `human_list.dspy` — Pending human tasks
|
|
- `human_complete.dspy` — Submit human task result
|
|
- `approval_approve.dspy` / `approval_reject.dspy`
|
|
|
|
## Pitfalls
|
|
|
|
- **No data tables**: All data ops delegate to pipeline_service. Never write SQL here.
|
|
- **Tree widget format**: `task_tree.dspy` must return `[{"id","label","children":[...]}]` format for bricks Tree.
|
|
- **i18n**: After editing msg.txt, run `merge_i18n.py` in umbrella's build.sh.
|
|
- **Auto-refresh**: Task list uses browser-side polling. No server push.
|