Pular para o conteúdo principal
Y

dsh-knj-workflow

yangdongzhen590/dsh-knj-workflow

Orquestração de tarefas de desenvolvimento dirigida por configuração para DSH: workflows em grafo (nós de tarefa/porta de entrada/humano) com persistência por estágio, além de um assistente de IA no editor que configura workflows por meio de conversa com validação ao vivo. Passe documentos aos nós como anexos genéricos (sem necessidade de declaração): os arquivos vão para o espaço de trabalho da tarefa e ${inputs.附件} fornece os caminhos absolutos unidos por quebras de linha, para que um nó os analise com seu próprio prompt.

Instalar

dsh plugin --profile web add github:yangdongzhen590/dsh-knj-workflow

README

dsh-knj-workflow

开发任务编排插件(DeepSeek Harness):配置驱动的工作流 + 开发任务管理 + 可视化阶段进度。

📖 详细设计文档见 DESIGN.md(架构、数据模型、Host/Client 设计、编排器、踩坑记录、验证记录)。

功能

  • 工作流管理:可新增 N 个工作流,每个工作流由多个阶段组成;阶段行为由 prompt(提示词)+ 可选 skill 定义
  • 模板导入/导出:工作流列表与图编辑器均支持把模板导出为 .workflow.json 文件、从文件导入(跨机器移植);导入后先进入编辑器检查再保存,同 ID 冲突会提示
  • 开发任务:创建任务并绑定工作流,自动启动执行
  • 可视化进度:右侧栏「开发任务」tab 横向步骤条展示每个阶段状态(待执行/运行中/完成/失败),实时刷新
  • 阶段重跑 / 继续:失败的阶段可点击「重跑」,暂停/失败的任务可点击「继续」——基于断点持久化(每阶段结果落盘)
  • 斜杠命令/dev-task new <标题>/dev-task list/dev-task status <id>/dev-task wf
  • 定时调度集成(可选):为 dsh-scheduler 提供进程内 knjWorkflowScheduler 服务;定时触发时按最新保存的流程定义创建并启动任务,历史可直达该任务详情
  • UI 融入原生:左侧栏底部「新建任务」入口 + 右侧栏两个 tab(better-sidebar 扩展点),全部使用 DSH 原生设计令牌(--dsw-*

架构

┌─ Client 端(lib/client.js)───────────────────────────────┐
│  左侧栏 sidebar.footer.action →「➕ 新建任务」              │
│  右侧栏 better-sidebar →「开发任务」「工作流」两个 tab        │
└──────────────┬──────────────────────────────────────────┘
               │ fetch('/devtask/...') 同源 HTTP
┌──────────────▼──────────────────────────────────────────┐
│  Host 端(lib/index.js)                                  │
│  DevTaskStore(JSON 持久化) + HTTP API + /dev-task 命令   │
│  WorkflowBridge:从 parent agent 作用域取 workflowEngine    │
│  (rc.8 起引擎位于 agent preset realm,非 host realm)      │
└──────────────┬──────────────────────────────────────────┘
               │ ctx.workflowEngine(script = lib/orchestrator.js)
┌──────────────▼──────────────────────────────────────────┐
│  编排器(lib/orchestrator.js)支持 resumeFrom / rerunStage │
│  每阶段子 agent 结果落盘 <taskDir>/stages/<stageId>.json   │
└─────────────────────────────────────────────────────────┘

数据目录(默认):~/.dsh/dev-orchestrator/
  workflows.json                    # N 个工作流定义
  tasks/<taskId>/task.json          # 任务元数据 + 阶段状态
  tasks/<taskId>/stages/<stageId>.json  # 阶段断点产物

安装

dsh plugin --profile web add dsh-knj-workflow

npm 包 dsh-knj-workflow;安装后重启 dsh web 生效。dsh-scheduler 可独立安装;同时安装本插件后,调度器才会显示「KNJ 工作流」任务类型。

配置(可选,在 profile 的 cordis.patch.yml 中按 id knj-workflow 覆盖):

默认说明
dataRoot~/.dsh/dev-orchestrator数据存储目录
httpPrefix/devtaskHTTP API 前缀

HTTP API

方法路径说明
GET/devtask/health健康检查
GET/POST/PUT/devtask/workflows工作流列表 / 保存
DELETE/devtask/workflows/:id删除工作流
GET/POST/devtask/tasks任务列表 / 创建(绑定工作流并启动)
GET/devtask/tasks/:id任务详情(含阶段状态)
POST/devtask/tasks/:id/start /cancel /resume启动 / 取消 / 继续
POST/devtask/tasks/:id/rerun-stage重跑指定阶段
GET/devtask/tasks/:id/stages/:stageId阶段断点产物

编排器参数

  • args.config:工作流定义({ name, description, stages: [...] }
  • args.task:任务元数据({ id, title, taskDir }
  • args.resumeFrom:从某阶段继续(之前阶段读缓存)
  • args.rerunStage:只重跑某阶段(其余读缓存)

Plugins relacionados