@p-dsh-market/graph-job-orchestrator
v0.1.3
Published
DSH Graph Job 多 Subagent 任务图编排器
Maintainers
Readme
Graph Job 多 Subagent 任务图
@p-dsh-market/graph-job-orchestrator 实现评审稿中的阶段 0~4 基础闭环:
- Graph Draft/Revision、Agent Profile snapshot、DAG validator、静态并行预览、受限 Planner patch;
%LOCALAPPDATA%/dsh-desktop/plugin-data/graph-job-orchestrator/下的原子 JSON 与 append-only JSONL 存储;- DSH in-process Subagent executor、merge barrier、read 并行/write 串行、失败暂停、有限 transport/rate-limit retry、取消和终止;
artifactRefsworkspace-relative 校验、插件 Skill/Graph Job 递归保护、/graphjob命令、Web API、SSE 和任务图编辑面板;- Codex provider 的能力发现、model/reasoningEffort 快照与 capability mismatch 错误;官方
subagent-codex按 one-shot 运行,不会误走 DSH continuable 路径。
运行时必须先安装并注册 Codex Subagent provider,阶段 4 才会显示 Codex executor 可用;没有 provider 时不会伪装成可运行,而是在能力快照和运行错误中明确说明。当前仓库的本地 runtime 只有 DSH spawn/fork provider,因此不会在安装插件时自动修改 profile。
需要 Codex 时,在目标 DSH profile 安装官方 provider Bundle 后重启该 profile:
dsh plugin --profile <name> add @deepseek-ai/dsh-subagent-codex插件只负责发现和校验 provider,不会代替用户安装 Bundle、登录 Codex 或修改 Codex 原生权限配置。
官方 Codex Bundle 的 model 是 provider 实例级静态配置,不是一次调用时的动态参数。若希望在 Graph Job 设置中选择多个 Codex 模型,可在目标 Profile 的 cordis.patch.yml 挂载多个命名实例,例如:
- insert:
- id: graph-job-codex-luna
name: '@deepseek-ai/dsh-subagent-codex'
config:
providerName: codex-luna
model: gpt-5.6-luna
permissionMode: never
- id: graph-job-codex-sol
name: '@deepseek-ai/dsh-subagent-codex'
config:
providerName: codex-sol
model: gpt-5.6-sol
permissionMode: neverGraph Job 会从 runtime capability snapshot 读取这些 provider/model;reasoningEffort 只有 Codex provider 明确公布可选值时才显示和发送。
主要端点:
GET /graph-job-orchestrator/capabilitiesGET/PUT /graph-job-orchestrator/profilesGET/POST/PATCH /graph-job-orchestrator/graphsPOST /graph-job-orchestrator/graphs/:id/preview|confirm|runGET /graph-job-orchestrator/graphs/:id/preview/:previewIdGET /graph-job-orchestrator/templatesGET /graph-job-orchestrator/templates/previews/:previewIdPOST /graph-job-orchestrator/templates/preview|confirm|bindGET/POST /graph-job-orchestrator/subagentsPOST /graph-job-orchestrator/planner/decisionGET /graph-job-orchestrator/runs/:runId/eventsPOST /graph-job-orchestrator/runs/:runId/retry|cancel|terminate
带目标的 /graphjob <目标> 会向当前主对话排入一次 Planner follow-up;空 /graphjob 只打开或创建空图。首次打开时生成的空手工占位图不会阻挡第一份模型草案;真正编辑过的手工锁定图会在任务图面板要求选择 saveAs 或 overwrite,选择通过 /planner/decision 提交,不会隐式改写当前模板。Planner 只接受当前会话的 roster、Graph JSON Schema 和受限 patch;候选图必须先 preview,再由用户确认。运行时输出严格投影为 text 和 artifactRefs,子会话 ID 只保存在运行状态和事件中。
POST /graph-job-orchestrator/subagents 按所选 Agent Profile 创建 Subagent。DSH provider 创建可继续对话的子会话;官方 Codex provider 使用 one-shot start,等待单轮结果后直接显示最终正文和脱敏诊断,不创建可继续的 Codex 会话。官方 provider 的 model、权限、MCP 和 Skills 由 Profile Bundle/原生 Codex 配置决定;只有 provider 明确公布动态能力时才允许按 Profile 传入对应字段。该入口默认过滤 skill 和 Graph Job 管理工具。Host 和客户端会输出 [graph-job-orchestrator] 前缀的脱敏诊断日志,只记录会话短标识、长度、状态、耗时和错误代码,不记录用户任务正文或 token。
模板 manifest 支持 scope: "workspace" | "global",默认是当前 workspace;workspace 模板不会出现在其他工作区的模板列表中。切换模板会创建新的 Graph Instance,不会把可变模板文件直接绑定为活动 Graph。
验证命令:
npm run check:graph-job
npm test
npm run catalog:validate
Push-Location market/graph-job-orchestrator
npm pack --dry-run --json
Pop-Location