@chenmk/superflow 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/INSTALL.en.md +58 -12
  2. package/INSTALL.md +62 -33
  3. package/README.md +181 -54
  4. package/README.zh-CN.md +158 -51
  5. package/assets/brand/managed-review-loop.png +0 -0
  6. package/assets/manifest.json +10 -5
  7. package/assets/scripts/superflow-coding-ready.mjs +135 -0
  8. package/assets/scripts/superflow-dependency-update-hook.sh +81 -8
  9. package/assets/scripts/superflow-document-audit.mjs +240 -0
  10. package/assets/scripts/superflow-environment-preflight.mjs +398 -0
  11. package/assets/scripts/superflow-hook-guard.sh +40 -1
  12. package/assets/scripts/superflow-managed-command-guard.py +309 -0
  13. package/assets/scripts/superflow-managed-executor-preflight.mjs +421 -0
  14. package/assets/scripts/superflow-managed-owner-verification.sh +117 -0
  15. package/assets/scripts/superflow-managed-work-check.mjs +287 -26
  16. package/assets/scripts/superflow-managed-work-guard.sh +6 -92
  17. package/assets/skills/superflow-clarify/SKILL.md +14 -0
  18. package/assets/skills/superflow-design/SKILL.md +38 -13
  19. package/assets/skills/superflow-docs/SKILL.md +93 -2
  20. package/assets/skills/superflow-pipeline/SKILL.md +167 -10
  21. package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +17 -9
  22. package/assets/skills/superflow-pipeline/references/document-readiness.md +157 -0
  23. package/assets/skills/superflow-pipeline/references/document-templates.md +9 -5
  24. package/assets/skills/superflow-pipeline/references/feature-gated-workflow.md +14 -0
  25. package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +20 -11
  26. package/assets/skills/superflow-pipeline/references/managed-work.md +123 -15
  27. package/assets/skills/superflow-pipeline/references/orchestration.md +2 -2
  28. package/assets/skills/superflow-pipeline/references/p0-baseline-template.md +3 -2
  29. package/assets/skills/superflow-pipeline/references/quality-gate.md +7 -5
  30. package/assets/skills/superflow-pipeline/references/reviewer-checklist.md +7 -0
  31. package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  32. package/assets/skills/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  33. package/assets/skills/superflow-requirement-review/SKILL.md +178 -0
  34. package/assets/skills/superflow-requirement-review/agents/openai.yaml +4 -0
  35. package/assets/skills-en/superflow-clarify/SKILL.md +17 -0
  36. package/assets/skills-en/superflow-design/SKILL.md +31 -12
  37. package/assets/skills-en/superflow-docs/SKILL.md +99 -0
  38. package/assets/skills-en/superflow-pipeline/SKILL.md +163 -9
  39. package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +4 -0
  40. package/assets/skills-en/superflow-pipeline/references/document-readiness.md +125 -0
  41. package/assets/skills-en/superflow-pipeline/references/document-templates.md +10 -0
  42. package/assets/skills-en/superflow-pipeline/references/feature-gated-workflow.md +7 -0
  43. package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +7 -0
  44. package/assets/skills-en/superflow-pipeline/references/managed-work.md +160 -10
  45. package/assets/skills-en/superflow-pipeline/references/quality-gate.md +12 -0
  46. package/assets/skills-en/superflow-pipeline/references/reviewer-checklist.md +7 -0
  47. package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  48. package/assets/skills-en/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  49. package/assets/skills-en/superflow-requirement-review/SKILL.md +99 -0
  50. package/assets/skills-en/superflow-requirement-review/agents/openai.yaml +4 -0
  51. package/dist/app/cli.js +64 -9
  52. package/dist/app/cli.js.map +1 -1
  53. package/dist/app/commands/change-guard.js +19 -2
  54. package/dist/app/commands/change-guard.js.map +1 -1
  55. package/dist/app/commands/check.js +107 -45
  56. package/dist/app/commands/check.js.map +1 -1
  57. package/dist/app/commands/docs.js +7 -3
  58. package/dist/app/commands/docs.js.map +1 -1
  59. package/dist/app/commands/doctor.js +174 -198
  60. package/dist/app/commands/doctor.js.map +1 -1
  61. package/dist/app/commands/eval.js +64 -0
  62. package/dist/app/commands/eval.js.map +1 -0
  63. package/dist/app/commands/implement.js +7 -3
  64. package/dist/app/commands/implement.js.map +1 -1
  65. package/dist/app/commands/init.js +12 -24
  66. package/dist/app/commands/init.js.map +1 -1
  67. package/dist/app/commands/mcp.js +167 -0
  68. package/dist/app/commands/mcp.js.map +1 -0
  69. package/dist/app/commands/pipeline.js +652 -18
  70. package/dist/app/commands/pipeline.js.map +1 -1
  71. package/dist/app/commands/requirement-review.js +6 -0
  72. package/dist/app/commands/requirement-review.js.map +1 -0
  73. package/dist/app/commands/status.js +66 -3
  74. package/dist/app/commands/status.js.map +1 -1
  75. package/dist/app/commands/uninstall.js +3 -3
  76. package/dist/app/commands/uninstall.js.map +1 -1
  77. package/dist/app/commands/update.js +83 -9
  78. package/dist/app/commands/update.js.map +1 -1
  79. package/dist/domains/agent.js +3 -11
  80. package/dist/domains/agent.js.map +1 -1
  81. package/dist/domains/config/cli-help.js +54 -12
  82. package/dist/domains/config/cli-help.js.map +1 -1
  83. package/dist/domains/config/i18n.js +6 -8
  84. package/dist/domains/config/i18n.js.map +1 -1
  85. package/dist/domains/config/manifest.js +0 -3
  86. package/dist/domains/config/manifest.js.map +1 -1
  87. package/dist/domains/deps.js +68 -7
  88. package/dist/domains/deps.js.map +1 -1
  89. package/dist/domains/managed-work/completion-policy.js +174 -0
  90. package/dist/domains/managed-work/completion-policy.js.map +1 -0
  91. package/dist/domains/managed-work/context-manifest.js +208 -0
  92. package/dist/domains/managed-work/context-manifest.js.map +1 -0
  93. package/dist/domains/managed-work/contract.js +135 -4
  94. package/dist/domains/managed-work/contract.js.map +1 -1
  95. package/dist/domains/managed-work/control-signals.js +34 -0
  96. package/dist/domains/managed-work/control-signals.js.map +1 -0
  97. package/dist/domains/managed-work/control.js +628 -0
  98. package/dist/domains/managed-work/control.js.map +1 -0
  99. package/dist/domains/managed-work/evaluation.js +497 -0
  100. package/dist/domains/managed-work/evaluation.js.map +1 -0
  101. package/dist/domains/managed-work/evidence-path.js +14 -0
  102. package/dist/domains/managed-work/evidence-path.js.map +1 -0
  103. package/dist/domains/managed-work/execution-contract.js +167 -0
  104. package/dist/domains/managed-work/execution-contract.js.map +1 -0
  105. package/dist/domains/managed-work/executor-policy.js +65 -0
  106. package/dist/domains/managed-work/executor-policy.js.map +1 -0
  107. package/dist/domains/managed-work/failure.js +65 -0
  108. package/dist/domains/managed-work/failure.js.map +1 -0
  109. package/dist/domains/managed-work/host-review.js +77 -0
  110. package/dist/domains/managed-work/host-review.js.map +1 -0
  111. package/dist/domains/managed-work/human-messages.js +31 -0
  112. package/dist/domains/managed-work/human-messages.js.map +1 -0
  113. package/dist/domains/managed-work/input.js +29 -3
  114. package/dist/domains/managed-work/input.js.map +1 -1
  115. package/dist/domains/managed-work/journal.js +77 -3
  116. package/dist/domains/managed-work/journal.js.map +1 -1
  117. package/dist/domains/managed-work/lock.js +67 -1
  118. package/dist/domains/managed-work/lock.js.map +1 -1
  119. package/dist/domains/managed-work/notifications.js +0 -15
  120. package/dist/domains/managed-work/notifications.js.map +1 -1
  121. package/dist/domains/managed-work/pair-admission.js +108 -0
  122. package/dist/domains/managed-work/pair-admission.js.map +1 -0
  123. package/dist/domains/managed-work/prompts.js +257 -22
  124. package/dist/domains/managed-work/prompts.js.map +1 -1
  125. package/dist/domains/managed-work/redaction.js +90 -0
  126. package/dist/domains/managed-work/redaction.js.map +1 -0
  127. package/dist/domains/managed-work/review-convergence.js +41 -0
  128. package/dist/domains/managed-work/review-convergence.js.map +1 -0
  129. package/dist/domains/managed-work/review-facts.js +181 -0
  130. package/dist/domains/managed-work/review-facts.js.map +1 -0
  131. package/dist/domains/managed-work/rule-selection.js +84 -0
  132. package/dist/domains/managed-work/rule-selection.js.map +1 -0
  133. package/dist/domains/managed-work/runner.js +1967 -175
  134. package/dist/domains/managed-work/runner.js.map +1 -1
  135. package/dist/domains/managed-work/schemas.js +72 -2
  136. package/dist/domains/managed-work/schemas.js.map +1 -1
  137. package/dist/domains/managed-work/service.js +82 -13
  138. package/dist/domains/managed-work/service.js.map +1 -1
  139. package/dist/domains/managed-work/state.js +195 -5
  140. package/dist/domains/managed-work/state.js.map +1 -1
  141. package/dist/domains/managed-work/storage.js +66 -24
  142. package/dist/domains/managed-work/storage.js.map +1 -1
  143. package/dist/domains/managed-work/types.js +12 -9
  144. package/dist/domains/managed-work/types.js.map +1 -1
  145. package/dist/domains/managed-work/verification-categories.js +39 -0
  146. package/dist/domains/managed-work/verification-categories.js.map +1 -0
  147. package/dist/domains/managed-work/verification-policy.js +116 -0
  148. package/dist/domains/managed-work/verification-policy.js.map +1 -0
  149. package/dist/domains/managed-work/wait.js +21 -3
  150. package/dist/domains/managed-work/wait.js.map +1 -1
  151. package/dist/domains/managed-work/workspace-binding.js +133 -0
  152. package/dist/domains/managed-work/workspace-binding.js.map +1 -0
  153. package/dist/domains/sdd-readiness.js +44 -0
  154. package/dist/domains/sdd-readiness.js.map +1 -0
  155. package/dist/domains/skill/deploy.js +0 -6
  156. package/dist/domains/skill/deploy.js.map +1 -1
  157. package/dist/domains/skill/scripts.js +0 -8
  158. package/dist/domains/skill/scripts.js.map +1 -1
  159. package/dist/domains/state.js +1 -2
  160. package/dist/domains/state.js.map +1 -1
  161. package/dist/mcp/runtime-identity.js +21 -0
  162. package/dist/mcp/runtime-identity.js.map +1 -0
  163. package/dist/mcp/server.js +369 -0
  164. package/dist/mcp/server.js.map +1 -0
  165. package/dist/platform/agent-process.js +499 -38
  166. package/dist/platform/agent-process.js.map +1 -1
  167. package/dist/platform/executable.js +28 -0
  168. package/dist/platform/executable.js.map +1 -0
  169. package/dist/platform/paths.js +1 -17
  170. package/dist/platform/paths.js.map +1 -1
  171. package/dist/platform/process-tree.js +44 -0
  172. package/dist/platform/process-tree.js.map +1 -0
  173. package/dist/platform/process.js +1 -1
  174. package/dist/platform/process.js.map +1 -1
  175. package/package.json +17 -7
  176. package/scripts/check-design-principles.mjs +107 -0
  177. package/scripts/check-managed-work-design.mjs +507 -0
  178. package/scripts/clean-dist.js +9 -0
  179. package/scripts/ensure-bin-modes.js +11 -0
  180. package/scripts/preinstall.js +57 -0
  181. package/dist/cli/index.js +0 -193
  182. package/dist/cli/index.js.map +0 -1
  183. package/dist/commands/archive.js +0 -6
  184. package/dist/commands/archive.js.map +0 -1
  185. package/dist/commands/clarify.js +0 -6
  186. package/dist/commands/clarify.js.map +0 -1
  187. package/dist/commands/design.js +0 -28
  188. package/dist/commands/design.js.map +0 -1
  189. package/dist/commands/docs.js +0 -6
  190. package/dist/commands/docs.js.map +0 -1
  191. package/dist/commands/doctor.js +0 -494
  192. package/dist/commands/doctor.js.map +0 -1
  193. package/dist/commands/implement.js +0 -6
  194. package/dist/commands/implement.js.map +0 -1
  195. package/dist/commands/init.js +0 -520
  196. package/dist/commands/init.js.map +0 -1
  197. package/dist/commands/pipeline.js +0 -6
  198. package/dist/commands/pipeline.js.map +0 -1
  199. package/dist/commands/scan.js +0 -63
  200. package/dist/commands/scan.js.map +0 -1
  201. package/dist/commands/status.js +0 -173
  202. package/dist/commands/status.js.map +0 -1
  203. package/dist/commands/uninstall.js +0 -214
  204. package/dist/commands/uninstall.js.map +0 -1
  205. package/dist/commands/update.js +0 -193
  206. package/dist/commands/update.js.map +0 -1
  207. package/dist/commands/verify.js +0 -6
  208. package/dist/commands/verify.js.map +0 -1
  209. package/dist/core/assets.js +0 -27
  210. package/dist/core/assets.js.map +0 -1
  211. package/dist/core/cli-help.js +0 -98
  212. package/dist/core/cli-help.js.map +0 -1
  213. package/dist/core/context.js +0 -123
  214. package/dist/core/context.js.map +0 -1
  215. package/dist/core/dependencies.js +0 -146
  216. package/dist/core/dependencies.js.map +0 -1
  217. package/dist/core/detect.js +0 -64
  218. package/dist/core/detect.js.map +0 -1
  219. package/dist/core/i18n.js +0 -105
  220. package/dist/core/i18n.js.map +0 -1
  221. package/dist/core/integrity.js +0 -46
  222. package/dist/core/integrity.js.map +0 -1
  223. package/dist/core/manifest.js +0 -21
  224. package/dist/core/manifest.js.map +0 -1
  225. package/dist/core/prompts.js +0 -20
  226. package/dist/core/prompts.js.map +0 -1
  227. package/dist/core/registry.js +0 -134
  228. package/dist/core/registry.js.map +0 -1
  229. package/dist/core/rules.js +0 -17
  230. package/dist/core/rules.js.map +0 -1
  231. package/dist/core/scripts.js +0 -48
  232. package/dist/core/scripts.js.map +0 -1
  233. package/dist/core/skill-check.js +0 -32
  234. package/dist/core/skill-check.js.map +0 -1
  235. package/dist/core/skills.js +0 -62
  236. package/dist/core/skills.js.map +0 -1
  237. package/dist/core/state.js +0 -54
  238. package/dist/core/state.js.map +0 -1
  239. package/dist/utils/path.js +0 -11
  240. package/dist/utils/path.js.map +0 -1
  241. package/dist/utils/shell.js +0 -29
  242. package/dist/utils/shell.js.map +0 -1
@@ -0,0 +1,369 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync } from "fs";
3
+ import { fileURLToPath } from "url";
4
+ import path from "path";
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
+ import { z } from "zod";
8
+ import { addManagedHumanGuidance, authorizeManagedExecutor, getManagedTaskSnapshot, listManagedTaskSnapshots, pauseManagedTask, resumeManagedTaskFromHost, recordManagedValidation, startManagedTaskFromHost, submitManagedHostReview, waitForManagedTaskChange, } from "../domains/managed-work/control.js";
9
+ import { assertMcpRuntimeCurrent, createMcpRuntimeIdentity, } from "./runtime-identity.js";
10
+ export const DEFAULT_MCP_WAIT_TIMEOUT_SECONDS = 240;
11
+ const moduleFile = fileURLToPath(import.meta.url);
12
+ const packageRoot = path.resolve(path.dirname(moduleFile), "..", "..");
13
+ const packageJson = JSON.parse(readFileSync(path.join(packageRoot, "package.json"), "utf-8"));
14
+ const reviewFindingSchema = z.object({
15
+ id: z.string().min(1),
16
+ severity: z.enum(["critical", "high", "medium", "low"]),
17
+ blocking: z.boolean(),
18
+ category: z.string().min(1),
19
+ target: z.string().min(1),
20
+ evidence: z.string().min(1),
21
+ risk: z.string().min(1),
22
+ requiredFix: z.string().min(1),
23
+ acceptanceChecks: z.array(z.string().min(1)),
24
+ });
25
+ const reviewResultSchema = z.object({
26
+ result: z.enum(["pass", "needs_fix", "blocked"]),
27
+ summary: z.string().min(1),
28
+ findings: z.array(reviewFindingSchema),
29
+ verificationCommands: z
30
+ .array(z.object({
31
+ command: z.string().min(1),
32
+ exitCode: z.number().int(),
33
+ result: z.string().min(1),
34
+ }))
35
+ .optional()
36
+ .default([]),
37
+ });
38
+ const usageSchema = z.object({
39
+ inputTokens: z.number().int().nonnegative().nullable(),
40
+ outputTokens: z.number().int().nonnegative().nullable(),
41
+ cacheReadTokens: z.number().int().nonnegative().nullable(),
42
+ cacheWriteTokens: z.number().int().nonnegative().nullable(),
43
+ costUsd: z.number().nonnegative().nullable(),
44
+ });
45
+ export function createSuperflowMcpServer(runtime = defaultRuntime(), runtimeDependencies = {}) {
46
+ const runtimeIdentity = runtimeDependencies.createIdentity?.() ??
47
+ createMcpRuntimeIdentity(packageRoot, packageJson.version);
48
+ const assertCurrent = () => {
49
+ if (runtimeDependencies.assertCurrent) {
50
+ return runtimeDependencies.assertCurrent(runtimeIdentity);
51
+ }
52
+ return assertMcpRuntimeCurrent(runtimeIdentity);
53
+ };
54
+ const server = new McpServer({
55
+ name: "superflow-managed",
56
+ version: packageJson.version,
57
+ });
58
+ server.registerTool("superflow_managed_start", {
59
+ title: "启动 Superflow 托管任务 / Start managed delivery",
60
+ description: "由当前 MCP Host 作为唯一主 Agent 创建托管任务,后台只启动对端研发 Agent。固定使用 external_host,禁止嵌套 Supervisor CLI,以避免重复上下文、Token 和评审时间。The current MCP host remains the only supervisor while Superflow starts only the peer executor; nested supervisor CLIs are forbidden.",
61
+ inputSchema: {
62
+ request: z
63
+ .string()
64
+ .min(1)
65
+ .describe("任务描述、implementation prompt 路径或 OpenSpec change 目录"),
66
+ projectRoot: z.string().min(1).describe("主项目绝对路径"),
67
+ relatedProjectRoots: z
68
+ .array(z.string().min(1))
69
+ .optional()
70
+ .describe("允许研发 Agent 读写的关联仓库绝对路径"),
71
+ profile: z
72
+ .enum(["auto", "quick", "engineering", "sdd", "monitor"])
73
+ .optional()
74
+ .default("auto"),
75
+ supervisorAgent: z
76
+ .enum(["codex", "claude"])
77
+ .describe("当前主 Agent 类型,必须由 Host 明确传入"),
78
+ executorAgent: z
79
+ .enum(["codex", "claude"])
80
+ .optional()
81
+ .describe("研发 Agent 类型;默认使用主 Agent 的对端"),
82
+ language: z.enum(["zh", "en"]).optional().default("zh"),
83
+ mandatoryEngineeringRules: z
84
+ .array(z.string().min(1))
85
+ .optional()
86
+ .describe("Host 会话中存在但未落盘到项目规则文件的强制工程规则;启动时冻结进任务合同"),
87
+ externalModelDataDisclosureApproved: z
88
+ .boolean()
89
+ .optional()
90
+ .default(false)
91
+ .describe("用户是否明确授权对端研发 Agent 在所列本地仓库内读取、修改和验证源码;这不会绕过宿主租户 DLP"),
92
+ externalModelDataDisclosureApprovedBy: z
93
+ .string()
94
+ .min(1)
95
+ .optional()
96
+ .default("user"),
97
+ },
98
+ annotations: {
99
+ readOnlyHint: false,
100
+ destructiveHint: false,
101
+ idempotentHint: true,
102
+ openWorldHint: false,
103
+ },
104
+ }, async (input) => runTool(() => {
105
+ assertCurrent();
106
+ return startManagedTaskFromHost({
107
+ request: input.request,
108
+ projectRoot: input.projectRoot,
109
+ relatedProjectRoots: input.relatedProjectRoots,
110
+ profile: input.profile,
111
+ supervisorAgent: input.supervisorAgent,
112
+ executorAgent: input.executorAgent,
113
+ language: input.language,
114
+ mandatoryEngineeringRules: input.mandatoryEngineeringRules,
115
+ externalModelDataDisclosureApproved: input.externalModelDataDisclosureApproved,
116
+ externalModelDataDisclosureApprovedBy: input.externalModelDataDisclosureApprovedBy,
117
+ }, runtime);
118
+ }));
119
+ server.registerTool("superflow_managed_runtime", {
120
+ title: "读取 Superflow MCP 运行时 / Read MCP runtime",
121
+ description: "返回当前 MCP 进程的版本、启动时间和运行时指纹,并判断本地安装是否已变化。Returns the MCP process version, start time, runtime fingerprint, and whether the installed runtime changed after startup.",
122
+ annotations: {
123
+ readOnlyHint: true,
124
+ destructiveHint: false,
125
+ idempotentHint: true,
126
+ openWorldHint: false,
127
+ },
128
+ }, async () => runTool(() => {
129
+ assertCurrent();
130
+ return runtimeIdentity;
131
+ }));
132
+ server.registerTool("superflow_managed_authorize_executor", {
133
+ title: "授权研发 Agent 源码处理 / Authorize executor source access",
134
+ description: "记录用户对冻结仓库范围的任务级知情授权并恢复任务;仅解决 Superflow 授权,不绕过宿主租户 DLP。Records task-scoped consent for the frozen repositories and resumes the task without bypassing host tenant DLP.",
135
+ inputSchema: {
136
+ taskId: z.string().min(1),
137
+ approvedBy: z.string().min(1).default("user"),
138
+ },
139
+ annotations: {
140
+ readOnlyHint: false,
141
+ destructiveHint: false,
142
+ idempotentHint: true,
143
+ openWorldHint: false,
144
+ },
145
+ }, async ({ taskId, approvedBy }) => runTool(() => authorizeManagedExecutor(taskId, approvedBy, runtime)));
146
+ server.registerTool("superflow_managed_list", {
147
+ title: "列出 Superflow 托管任务 / List managed tasks",
148
+ description: "列出本机托管任务及需要当前主 Agent 处理的状态。Lists local managed tasks and whether the current host must act.",
149
+ annotations: {
150
+ readOnlyHint: true,
151
+ destructiveHint: false,
152
+ idempotentHint: true,
153
+ openWorldHint: false,
154
+ },
155
+ }, async () => runTool(() => listManagedTaskSnapshots(runtime.env)));
156
+ server.registerTool("superflow_managed_status", {
157
+ title: "读取托管任务状态 / Read managed task status",
158
+ description: "返回任务状态、调用计数、最近事件、执行结果和待主 Agent 评审 Prompt。Returns status, invocation counts, recent events, executor result, and pending host review prompt.",
159
+ inputSchema: {
160
+ taskId: z.string().min(1),
161
+ },
162
+ annotations: {
163
+ readOnlyHint: true,
164
+ destructiveHint: false,
165
+ idempotentHint: true,
166
+ openWorldHint: false,
167
+ },
168
+ }, async ({ taskId }) => runTool(() => getManagedTaskSnapshot(taskId, runtime.env)));
169
+ server.registerTool("superflow_managed_wait", {
170
+ title: "等待托管状态变化 / Wait for managed task change",
171
+ description: "在本地阻塞到需要主 Agent 处理的状态;默认使用 240 秒 Host 兼容传输窗口,窗口超时后按 latestSequence 紧凑续接。健康阶段和监督点通过 MCP progress notification 展示但不唤醒模型;连续两个监督点没有有效里程碑才返回 Host。Blocks locally until host attention with a 240-second Host-compatible transport window by default; continue compactly from latestSequence after window expiry. Healthy stages and checkpoints use MCP progress notifications without waking the model; the Host returns only after two checkpoints without an effective milestone.",
172
+ inputSchema: {
173
+ taskId: z.string().min(1),
174
+ afterSequence: z.number().int().min(0).default(0),
175
+ timeoutSeconds: z
176
+ .number()
177
+ .int()
178
+ .min(1)
179
+ .max(43_200)
180
+ .default(DEFAULT_MCP_WAIT_TIMEOUT_SECONDS),
181
+ wakeOnProgress: z.boolean().optional().default(false),
182
+ },
183
+ annotations: {
184
+ readOnlyHint: true,
185
+ destructiveHint: false,
186
+ idempotentHint: true,
187
+ openWorldHint: false,
188
+ },
189
+ }, async ({ taskId, afterSequence, timeoutSeconds, wakeOnProgress }, extra) => runTool(() => {
190
+ const progressToken = extra._meta?.progressToken;
191
+ return waitForManagedTaskChange(taskId, afterSequence, timeoutSeconds, runtime, wakeOnProgress, progressToken === undefined
192
+ ? undefined
193
+ : async (progress) => {
194
+ try {
195
+ await extra.sendNotification({
196
+ method: "notifications/progress",
197
+ params: {
198
+ progressToken,
199
+ progress: progress.sequence,
200
+ message: progress.message,
201
+ },
202
+ });
203
+ }
204
+ catch {
205
+ // MCP progress is advisory. Durable state remains authoritative,
206
+ // so a client that ignores or drops progress must not fail wait.
207
+ }
208
+ });
209
+ }));
210
+ server.registerTool("superflow_managed_message", {
211
+ title: "补充托管要求 / Add managed task guidance",
212
+ description: "记录用户补充、环境授权或澄清;安全等待状态下自动恢复,运行中则进入下一轮短会话交接。Records user guidance; resumes safe waiting states or injects it into the next short executor handoff.",
213
+ inputSchema: {
214
+ taskId: z.string().min(1),
215
+ content: z.string().min(1),
216
+ actor: z.string().min(1).optional().default("user"),
217
+ },
218
+ annotations: {
219
+ readOnlyHint: false,
220
+ destructiveHint: false,
221
+ idempotentHint: false,
222
+ openWorldHint: false,
223
+ },
224
+ }, async ({ taskId, content, actor }) => runTool(() => addManagedHumanGuidance(taskId, content, runtime, actor)));
225
+ server.registerTool("superflow_managed_pause", {
226
+ title: "暂停托管任务 / Pause managed task",
227
+ description: "请求任务在安全边界暂停;不会由主 Agent 代为终止或清理研发 Agent 的应用、构建和测试进程。Requests a pause at a safe boundary without making the host manage executor-owned processes.",
228
+ inputSchema: {
229
+ taskId: z.string().min(1),
230
+ reason: z.string().min(1),
231
+ actor: z.string().min(1).optional().default("user"),
232
+ },
233
+ annotations: {
234
+ readOnlyHint: false,
235
+ destructiveHint: false,
236
+ idempotentHint: true,
237
+ openWorldHint: false,
238
+ },
239
+ }, async ({ taskId, reason, actor }) => runTool(() => pauseManagedTask(taskId, reason, runtime, actor)));
240
+ server.registerTool("superflow_managed_resume", {
241
+ title: "恢复托管任务 / Resume managed task",
242
+ description: "从落盘合同、当前工作区和短会话交接恢复已暂停任务。Resumes a paused task from persisted contracts, workspace state, and fresh short-session handoff.",
243
+ inputSchema: {
244
+ taskId: z.string().min(1),
245
+ },
246
+ annotations: {
247
+ readOnlyHint: false,
248
+ destructiveHint: false,
249
+ idempotentHint: false,
250
+ openWorldHint: false,
251
+ },
252
+ }, async ({ taskId }) => runTool(() => resumeManagedTaskFromHost(taskId, runtime)));
253
+ server.registerTool("superflow_managed_record_validation", {
254
+ title: "记录环境/发布验收 / Record delivery validation",
255
+ description: "在外部 owner 更新结构化 OpenSpec 任务后,记录环境或发布证据并重新计算三段交付状态;不会执行 SQL、部署或 Git。Records external validation evidence and recomputes delivery state without performing SQL, deployment, or Git actions.",
256
+ inputSchema: {
257
+ taskId: z.string().min(1),
258
+ category: z.enum(["environment", "release"]),
259
+ summary: z.string().min(1),
260
+ evidencePaths: z.array(z.string().min(1)).default([]),
261
+ actor: z.string().min(1).optional().default("user"),
262
+ },
263
+ annotations: {
264
+ readOnlyHint: false,
265
+ destructiveHint: false,
266
+ idempotentHint: false,
267
+ openWorldHint: false,
268
+ },
269
+ }, async ({ taskId, category, summary, evidencePaths, actor }) => runTool(() => recordManagedValidation(taskId, category, summary, evidencePaths, runtime, actor)));
270
+ server.registerTool("superflow_managed_submit_review", {
271
+ title: "提交主 Agent 评审 / Submit host review",
272
+ description: "仅在 waiting_for_host_review 时由当前主 Agent提交一次全量结构化评审;后台据此交给研发 Agent 整改或进入 Git 批准。The current host submits one complete structured review, after which the executor repairs or delivery awaits Git approval.",
273
+ inputSchema: {
274
+ taskId: z.string().min(1),
275
+ review: reviewResultSchema,
276
+ hostUsage: usageSchema.optional(),
277
+ hostUsageUnavailableReason: z
278
+ .string()
279
+ .min(1)
280
+ .optional()
281
+ .default("host_api_did_not_expose_usage"),
282
+ },
283
+ annotations: {
284
+ readOnlyHint: false,
285
+ destructiveHint: false,
286
+ idempotentHint: false,
287
+ openWorldHint: false,
288
+ },
289
+ }, async ({ taskId, review, hostUsage, hostUsageUnavailableReason }) => runTool(() => submitManagedHostReview(taskId, review, runtime, hostUsage, hostUsage ? undefined : hostUsageUnavailableReason)));
290
+ server.registerPrompt("superflow_managed_supervisor", {
291
+ title: "Superflow 托管主 Agent",
292
+ description: "让当前 Agent 直接监督 Superflow 托管任务,禁止嵌套 Supervisor CLI。",
293
+ }, async () => ({
294
+ messages: [
295
+ {
296
+ role: "user",
297
+ content: {
298
+ type: "text",
299
+ text: [
300
+ "你是 Superflow 托管任务的当前主 Agent。",
301
+ "启动前先调用 superflow_managed_runtime;若提示运行时已过期,停止创建任务并要求用户重启 Host,禁止使用旧 MCP 继续验证新版本。",
302
+ "使用 superflow_managed_start 创建 external_host 任务;不要启动嵌套 Codex/Claude Supervisor CLI。",
303
+ "用户要求按某份任务 Prompt 文档或 OpenSpec change 执行时,request 必须传用户指定的绝对路径,禁止重新概括后替代原文;启动结果必须确认 source-prompt.md 与 SHA-256 已冻结。",
304
+ "启动前必须向用户确认对端研发 Agent 的本地仓库范围,并把任务级源码披露授权传给 externalModelDataDisclosureApproved;该授权不能绕过宿主租户 DLP,宿主拒绝时必须停止并报告。",
305
+ "每次 start、resume、message 或 submit_review 后,只要任务仍在 queued/running/recovering,就必须立即调用 superflow_managed_wait,并使用最新 latestSequence 继续等待。",
306
+ "Runner 在本地高频采样,不调用模型;活动 MCP wait 通过标准 progress notification 展示阶段和健康监督点,不唤醒 Host 模型。只检查阶段、权威命令、真实 diff、重复失败和距上次有效里程碑时间,不读取完整日志、不重写任务 Prompt。",
307
+ "普通 heartbeat、workspace.changed 和单个健康监督点不返回 Host。连续两个监督点没有阶段推进或权威命令完成时才返回 attentionRequired,由 Host 判断是否偏航并记录指导或请求安全暂停;不得把日志数量当有效进展。",
308
+ "wait 因传输超时返回但任务仍无需人工处理时,立即使用最新 latestSequence 再次调用 wait。",
309
+ "wait 返回 attentionRequired=true 时,根据 attentionReason 和 recommendedAction 立即处理;budget_exhausted、provider_change、human_required 或失败必须在当前会话及时通知用户。",
310
+ "进入 waiting_for_host_review 后,读取冻结 Prompt、工作区和真实证据,完成一次全量评审,再调用 superflow_managed_submit_review。",
311
+ "提交评审时若宿主可提供本轮 usage,填写 hostUsage;否则保留明确的 hostUsageUnavailableReason,禁止把 null 误报为零消耗。",
312
+ "用户补充要求时调用 superflow_managed_message。",
313
+ "用户要求暂停或继续时调用 superflow_managed_pause/resume。",
314
+ "达到 local_delivery_ready、environment_validation_blocked 或 release_ready 后停止,不自动 commit、push、部署或生产写入,并分别报告源码、环境、发布三套进度。",
315
+ ].join("\n"),
316
+ },
317
+ },
318
+ ],
319
+ }));
320
+ return server;
321
+ }
322
+ function defaultRuntime() {
323
+ return {
324
+ cliPath: path.join(packageRoot, "dist", "app", "cli.js"),
325
+ };
326
+ }
327
+ async function runTool(operation) {
328
+ try {
329
+ const result = await operation();
330
+ const structured = toStructured(result);
331
+ return {
332
+ content: [
333
+ {
334
+ type: "text",
335
+ text: JSON.stringify(structured, null, 2),
336
+ },
337
+ ],
338
+ structuredContent: structured,
339
+ };
340
+ }
341
+ catch (error) {
342
+ const message = error instanceof Error ? error.message : String(error);
343
+ return {
344
+ isError: true,
345
+ content: [{ type: "text", text: message }],
346
+ };
347
+ }
348
+ }
349
+ function toStructured(value) {
350
+ if (Array.isArray(value))
351
+ return { tasks: value };
352
+ if (value && typeof value === "object") {
353
+ return value;
354
+ }
355
+ return { value };
356
+ }
357
+ async function main() {
358
+ const server = createSuperflowMcpServer();
359
+ const transport = new StdioServerTransport();
360
+ await server.connect(transport);
361
+ console.error("Superflow managed MCP server running on stdio");
362
+ }
363
+ if (process.argv[1] && path.resolve(process.argv[1]) === moduleFile) {
364
+ main().catch((error) => {
365
+ console.error("Superflow managed MCP server failed:", error);
366
+ process.exitCode = 1;
367
+ });
368
+ }
369
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}