feat(studio): 新增 Studio 工作流编辑/运行页,优化顶部三栏对齐

- 后端:项目/运行 API、上下文服务与数据模型
- 前端:Studio 列表、编辑页(R1/R2 布局)、运行页与节点图
- 编辑页顶部:CSS Grid 统一标签行与控件行对齐,项目按钮独立第三行
- Docker 开发配置与文档脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-31 21:24:57 +08:00
parent bc130d98f4
commit fa6907fb8d
48 changed files with 8795 additions and 20 deletions

15
scripts/docker-logs.ps1 Normal file
View File

@@ -0,0 +1,15 @@
# 跟踪 Docker Compose 日志
param(
[ValidateSet("backend", "frontend", "")]
[string]$Service = ""
)
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
Set-Location $Root
if ($Service) {
docker compose logs -f $Service
} else {
docker compose logs -f
}

View File

@@ -0,0 +1,17 @@
# 重新构建并启动指定服务(依赖或 Dockerfile 变更时使用)
param(
[Parameter(Mandatory = $true)]
[ValidateSet("backend", "frontend")]
[string]$Service
)
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
Set-Location $Root
Write-Host "Rebuilding and starting $Service..." -ForegroundColor Cyan
docker compose up -d --build $Service
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Write-Host "Done. $Service rebuilt and running." -ForegroundColor Green

View File

@@ -0,0 +1,21 @@
# 重启容器backend / frontend / all无需重启 Docker Desktop
param(
[ValidateSet("backend", "frontend", "all")]
[string]$Service = "all"
)
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
Set-Location $Root
if ($Service -eq "all") {
Write-Host "Restarting backend and frontend..." -ForegroundColor Cyan
docker compose restart backend frontend
} else {
Write-Host "Restarting $Service..." -ForegroundColor Cyan
docker compose restart $Service
}
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Write-Host "Done. Docker Desktop was NOT restarted." -ForegroundColor Green

16
scripts/docker-up.ps1 Normal file
View File

@@ -0,0 +1,16 @@
# 后台启动 Docker Compose 栈(不重启 Docker Desktop
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
Set-Location $Root
Write-Host "Starting services..." -ForegroundColor Cyan
docker compose up -d
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Write-Host ""
Write-Host "Services running:" -ForegroundColor Green
Write-Host " Backend: http://localhost:23337"
Write-Host " Frontend: http://localhost:23338"
Write-Host ""
Write-Host "Logs: .\scripts\docker-logs.ps1"