@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
@@ -1,5 +1,7 @@
1
1
  import { createHash, randomUUID } from "crypto";
2
2
  import { execFileSync } from "child_process";
3
+ import { existsSync, readdirSync, readFileSync, statSync } from "fs";
4
+ import path from "path";
3
5
  export function initManagedRunState(contract) {
4
6
  const now = new Date().toISOString();
5
7
  return {
@@ -9,12 +11,20 @@ export function initManagedRunState(contract) {
9
11
  projectRoot: contract.projectRoot,
10
12
  profile: contract.profile,
11
13
  language: contract.language,
12
- status: "queued",
13
- currentStep: "queued",
14
+ status: contract.status,
15
+ currentStep: contract.executionMode === "human_directed"
16
+ ? "waiting_for_manual_delivery"
17
+ : "queued",
18
+ executorStage: null,
19
+ executorActiveStage: null,
14
20
  reviewRound: 0,
15
21
  executorInvocations: 0,
22
+ executorInvocationCredits: 0,
23
+ consecutiveTransientProviderFailures: 0,
24
+ connectivityRetryCount: 0,
16
25
  reviewInvocations: 0,
17
26
  totalAgentInvocations: 0,
27
+ totalAgentInvocationCredits: 0,
18
28
  activeRunMilliseconds: 0,
19
29
  activeSince: null,
20
30
  supervisorSession: pendingSession(contract.supervisorAgent),
@@ -24,6 +34,11 @@ export function initManagedRunState(contract) {
24
34
  contract.projectRoot,
25
35
  ...contract.relatedProjectRoots,
26
36
  ]),
37
+ baselineWorkspaceFiles: snapshotChangedWorkspaceFiles([
38
+ contract.projectRoot,
39
+ ...contract.relatedProjectRoots,
40
+ ]),
41
+ baselineCapturedAt: null,
27
42
  contractHash: contract.contractHash,
28
43
  lastExecutorResult: null,
29
44
  lastReviewResult: null,
@@ -33,8 +48,39 @@ export function initManagedRunState(contract) {
33
48
  updatedAt: now,
34
49
  completedAt: null,
35
50
  blocker: null,
51
+ failure: null,
52
+ pendingExternalReview: null,
53
+ deliveryProgress: {
54
+ source: { completed: 0, total: 0 },
55
+ environment: { completed: 0, total: 0 },
56
+ release: { completed: 0, total: 0 },
57
+ },
58
+ runtimeTelemetry: null,
59
+ executorUsage: {
60
+ inputTokens: null,
61
+ outputTokens: null,
62
+ cacheReadTokens: null,
63
+ cacheWriteTokens: null,
64
+ costUsd: null,
65
+ },
66
+ hostUsage: {
67
+ inputTokens: null,
68
+ outputTokens: null,
69
+ cacheReadTokens: null,
70
+ cacheWriteTokens: null,
71
+ costUsd: null,
72
+ },
73
+ runningAgentPid: null,
74
+ executorSelfRepairCount: 0,
75
+ executorRejectionCounts: {},
36
76
  };
37
77
  }
78
+ export function effectiveExecutorInvocations(state) {
79
+ return Math.max(0, state.executorInvocations - (state.executorInvocationCredits ?? 0));
80
+ }
81
+ export function effectiveTotalAgentInvocations(state) {
82
+ return Math.max(0, state.totalAgentInvocations - (state.totalAgentInvocationCredits ?? 0));
83
+ }
38
84
  export function computeWorkspaceFingerprint(projectRoot) {
39
85
  const head = gitOutput(projectRoot, ["rev-parse", "HEAD"]) ?? "no-head";
40
86
  const rawStatus = gitOutput(projectRoot, [
@@ -44,9 +90,52 @@ export function computeWorkspaceFingerprint(projectRoot) {
44
90
  ]) ?? "";
45
91
  const status = rawStatus
46
92
  .split(/\r?\n/)
47
- .filter((line) => !isManagedRuntimePath(line.slice(3)))
93
+ .filter((line) => !shouldIgnoreStatusLine(line))
94
+ .join("\n");
95
+ const diffPathspec = [
96
+ "--",
97
+ ".",
98
+ ":(exclude).superflow/tasks/**",
99
+ ":(exclude).superflow/managed-project.lock",
100
+ ];
101
+ const workingDiff = gitOutput(projectRoot, [
102
+ "diff",
103
+ "--binary",
104
+ "--no-ext-diff",
105
+ ...diffPathspec,
106
+ ]) ?? "";
107
+ const stagedDiff = gitOutput(projectRoot, [
108
+ "diff",
109
+ "--cached",
110
+ "--binary",
111
+ "--no-ext-diff",
112
+ ...diffPathspec,
113
+ ]) ?? "";
114
+ const untracked = untrackedContentFingerprint(projectRoot);
115
+ return createHash("sha256")
116
+ .update(`${head}\n${status}\n${workingDiff}\n${stagedDiff}\n${untracked}`)
117
+ .digest("hex");
118
+ }
119
+ function untrackedContentFingerprint(projectRoot) {
120
+ const files = (gitOutput(projectRoot, ["ls-files", "--others", "--exclude-standard"]) ?? "")
121
+ .split(/\r?\n/)
122
+ .filter(Boolean)
123
+ .filter((file) => !isManagedRuntimePath(file))
124
+ .filter((file) => !isGeneratedWorkspacePath(file))
125
+ .sort();
126
+ return files
127
+ .map((file) => {
128
+ try {
129
+ const hash = createHash("sha256")
130
+ .update(readFileSync(path.join(projectRoot, file)))
131
+ .digest("hex");
132
+ return `${file}:${hash}`;
133
+ }
134
+ catch {
135
+ return `${file}:unreadable`;
136
+ }
137
+ })
48
138
  .join("\n");
49
- return createHash("sha256").update(`${head}\n${status}`).digest("hex");
50
139
  }
51
140
  export function computeWorkspaceFingerprintForRoots(roots) {
52
141
  const normalized = [...new Set(roots)].sort();
@@ -55,6 +144,95 @@ export function computeWorkspaceFingerprintForRoots(roots) {
55
144
  .join("\n");
56
145
  return createHash("sha256").update(value).digest("hex");
57
146
  }
147
+ export function computeScopedWorkspaceFingerprint(roots, files) {
148
+ const normalizedRoots = [...new Set(roots.map((root) => path.resolve(root)))];
149
+ const entries = [...new Set(files)]
150
+ .sort()
151
+ .flatMap((file) => scopedCandidates(normalizedRoots, file))
152
+ .map((file) => {
153
+ try {
154
+ return `${file}:${createHash("sha256").update(readFileSync(file)).digest("hex")}`;
155
+ }
156
+ catch {
157
+ return `${file}:missing`;
158
+ }
159
+ });
160
+ return createHash("sha256").update(entries.join("\n")).digest("hex");
161
+ }
162
+ export function snapshotChangedWorkspaceFiles(roots) {
163
+ const snapshot = {};
164
+ for (const root of [...new Set(roots.map((item) => path.resolve(item)))]) {
165
+ const status = gitOutput(root, [
166
+ "status",
167
+ "--porcelain=v1",
168
+ "--untracked-files=all",
169
+ ]);
170
+ if (status === null) {
171
+ for (const file of walkWorkspaceFiles(root)) {
172
+ snapshot[`${root}::${path.relative(root, file)}`] = createHash("sha256")
173
+ .update(readFileSync(file))
174
+ .digest("hex");
175
+ }
176
+ continue;
177
+ }
178
+ for (const line of status?.split(/\r?\n/).filter(Boolean) ?? []) {
179
+ const relative = line.slice(3).replace(/^.* -> /, "");
180
+ if (shouldIgnoreStatusLine(line))
181
+ continue;
182
+ const key = `${root}::${relative}`;
183
+ try {
184
+ snapshot[key] = createHash("sha256")
185
+ .update(readFileSync(path.join(root, relative)))
186
+ .digest("hex");
187
+ }
188
+ catch {
189
+ snapshot[key] = "missing";
190
+ }
191
+ }
192
+ }
193
+ return snapshot;
194
+ }
195
+ function walkWorkspaceFiles(root) {
196
+ const files = [];
197
+ const visit = (directory) => {
198
+ for (const entry of readdirSync(directory)) {
199
+ const relative = path.relative(root, path.join(directory, entry));
200
+ if ([".git", ".superflow"].includes(entry) ||
201
+ isGeneratedWorkspacePath(relative)) {
202
+ continue;
203
+ }
204
+ const file = path.join(directory, entry);
205
+ if (existsSync(path.join(file, "managed", "registry.json")))
206
+ continue;
207
+ const stat = statSync(file);
208
+ if (stat.isDirectory())
209
+ visit(file);
210
+ else if (stat.isFile())
211
+ files.push(file);
212
+ }
213
+ };
214
+ visit(root);
215
+ return files;
216
+ }
217
+ function scopedCandidates(roots, file) {
218
+ if (path.isAbsolute(file)) {
219
+ const resolved = path.resolve(file);
220
+ return roots.some((root) => resolved === root || resolved.startsWith(`${root}${path.sep}`))
221
+ ? [resolved]
222
+ : [];
223
+ }
224
+ const candidates = roots.map((root) => path.resolve(root, file));
225
+ const existing = candidates.filter((candidate) => {
226
+ try {
227
+ readFileSync(candidate);
228
+ return true;
229
+ }
230
+ catch {
231
+ return false;
232
+ }
233
+ });
234
+ return existing.length > 0 ? existing : [candidates[0]];
235
+ }
58
236
  export function activeRunMilliseconds(state, now = Date.now()) {
59
237
  if (!state.activeSince)
60
238
  return state.activeRunMilliseconds;
@@ -68,6 +246,9 @@ function pendingSession(agent) {
68
246
  createdAt: null,
69
247
  lastResumedRound: 0,
70
248
  status: "pending",
249
+ previousSessionIds: [],
250
+ resumingSessionId: null,
251
+ retiredSessions: [],
71
252
  };
72
253
  }
73
254
  function gitOutput(projectRoot, args) {
@@ -76,7 +257,7 @@ function gitOutput(projectRoot, args) {
76
257
  cwd: projectRoot,
77
258
  encoding: "utf-8",
78
259
  stdio: ["ignore", "pipe", "ignore"],
79
- }).trim();
260
+ }).trimEnd();
80
261
  }
81
262
  catch {
82
263
  return null;
@@ -87,4 +268,13 @@ function isManagedRuntimePath(value) {
87
268
  return (normalized.startsWith(".superflow/tasks/") ||
88
269
  normalized === ".superflow/managed-project.lock");
89
270
  }
271
+ function shouldIgnoreStatusLine(line) {
272
+ const relative = line.slice(3).replace(/^.* -> /, "");
273
+ return (isManagedRuntimePath(relative) ||
274
+ (line.startsWith("?? ") && isGeneratedWorkspacePath(relative)));
275
+ }
276
+ function isGeneratedWorkspacePath(value) {
277
+ const normalized = value.trim().replaceAll("\\", "/");
278
+ return /(^|\/)(?:target|node_modules|dist|test-results|coverage)(?:\/|$)/.test(normalized);
279
+ }
90
280
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domains/managed-work/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domains/managed-work/state.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
- import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from "fs";
1
+ import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync, } from "fs";
2
2
  import path from "path";
3
3
  import { createHash } from "crypto";
4
4
  import { managedRegistryPath, managedRunDir, managedTaskDir } from "./paths.js";
5
5
  import { managedList, managedText } from "./i18n.js";
6
+ import { writeManagedContextManifest } from "./context-manifest.js";
7
+ import { artifactLevelFor, writeManagedExecutionContract, } from "./execution-contract.js";
8
+ import { generatedStandardPromptContent } from "./contract.js";
9
+ import { writeManagedWorkspaceBinding } from "./workspace-binding.js";
6
10
  export function writeJsonAtomic(file, value) {
7
11
  mkdirSync(path.dirname(file), { recursive: true });
8
12
  const temp = `${file}.tmp-${process.pid}-${Date.now()}`;
@@ -15,26 +19,35 @@ export function readJson(file) {
15
19
  export function createManagedTaskFiles(contract, runState, env = process.env) {
16
20
  const taskDir = managedTaskDir(contract.projectRoot, contract.taskId);
17
21
  const runDir = managedRunDir(contract.projectRoot, contract.taskId, runState.runId);
18
- mkdirSync(runDir, { recursive: true });
19
- writeTaskPromptSnapshot(contract);
20
- writeFileSync(path.join(taskDir, "request.md"), buildRequestMarkdown(contract), "utf-8");
21
- writeFileSync(path.join(taskDir, "task-brief.md"), buildTaskBrief(contract), "utf-8");
22
- writeJsonAtomic(path.join(taskDir, "task.json"), contract);
23
- writeJsonAtomic(path.join(runDir, "run-state.json"), runState);
24
- writeFileSync(path.join(runDir, "progress.jsonl"), "", "utf-8");
25
- writeFileSync(path.join(runDir, "progress.md"), managedText(contract.language, "# 托管任务进度\n\n状态:已创建\n", "# Managed Task Progress\n\nStatus: created\n"), "utf-8");
26
- writeFileSync(path.join(runDir, "task-report.md"), managedText(contract.language, "# 托管任务报告\n\n状态:执行中\n", "# Managed Task Report\n\nStatus: running\n"), "utf-8");
27
- upsertRegistryEntry({
28
- taskId: contract.taskId,
29
- projectRoot: contract.projectRoot,
30
- status: contract.status,
31
- profile: contract.profile,
32
- language: contract.language,
33
- activeRunId: runState.runId,
34
- createdAt: contract.createdAt,
35
- updatedAt: contract.updatedAt,
36
- servicePid: null,
37
- }, env);
22
+ try {
23
+ mkdirSync(runDir, { recursive: true });
24
+ writeTaskPromptSnapshot(contract);
25
+ writeFileSync(path.join(taskDir, "request.md"), buildRequestMarkdown(contract), "utf-8");
26
+ writeFileSync(path.join(taskDir, "task-brief.md"), buildTaskBrief(contract), "utf-8");
27
+ writeJsonAtomic(path.join(taskDir, "task.json"), contract);
28
+ writeManagedWorkspaceBinding(contract);
29
+ writeManagedExecutionContract(contract);
30
+ writeManagedContextManifest(contract);
31
+ writeJsonAtomic(path.join(runDir, "run-state.json"), runState);
32
+ writeFileSync(path.join(runDir, "progress.jsonl"), "", "utf-8");
33
+ writeFileSync(path.join(runDir, "progress.md"), managedText(contract.language, "# 托管任务进度\n\n状态:已创建\n", "# Managed Task Progress\n\nStatus: created\n"), "utf-8");
34
+ writeFileSync(path.join(runDir, "task-report.md"), managedText(contract.language, "# 托管任务报告\n\n状态:执行中\n", "# Managed Task Report\n\nStatus: running\n"), "utf-8");
35
+ upsertRegistryEntry({
36
+ taskId: contract.taskId,
37
+ projectRoot: contract.projectRoot,
38
+ status: contract.status,
39
+ profile: contract.profile,
40
+ language: contract.language,
41
+ activeRunId: runState.runId,
42
+ createdAt: contract.createdAt,
43
+ updatedAt: contract.updatedAt,
44
+ servicePid: null,
45
+ }, env);
46
+ }
47
+ catch (error) {
48
+ rmSync(taskDir, { recursive: true, force: true });
49
+ throw error;
50
+ }
38
51
  }
39
52
  export function loadManagedTask(projectRoot, taskId) {
40
53
  return readJson(path.join(managedTaskDir(projectRoot, taskId), "task.json"));
@@ -75,6 +88,15 @@ export function updateTaskReportStatus(state, status) {
75
88
  const content = readFileSync(file, "utf-8");
76
89
  writeFileSync(file, content.replace(/^(?:状态:|Status: ).*$/m, managedText(state.language, `状态:${status}`, `Status: ${status}`)), "utf-8");
77
90
  }
91
+ export function resolveTaskReportBlockers(state) {
92
+ const file = path.join(managedRunDir(state.projectRoot, state.taskId, state.runId), "task-report.md");
93
+ const content = readFileSync(file, "utf-8");
94
+ const resolved = state.language === "en"
95
+ ? content.replaceAll("## Current blocker", "## Historical blocker (resolved)")
96
+ : content.replaceAll("## 当前阻塞", "## 历史阻塞(已解除)");
97
+ if (resolved !== content)
98
+ writeFileSync(file, resolved, "utf-8");
99
+ }
78
100
  function buildRequestMarkdown(contract) {
79
101
  if (contract.language === "en") {
80
102
  return [
@@ -107,13 +129,14 @@ function buildTaskBrief(contract) {
107
129
  "",
108
130
  `Task ID: ${contract.taskId}`,
109
131
  `Task profile: ${contract.profile}`,
132
+ `Artifact level: ${artifactLevelFor(contract)}`,
110
133
  `Related repositories: ${managedList(contract.language, contract.relatedProjectRoots)}`,
111
134
  `Supervisor Agent: ${contract.supervisorAgent}`,
112
135
  `Executor Agent: ${contract.executorAgent}`,
113
136
  `Contract hash: ${contract.contractHash}`,
114
137
  ...(contract.taskPrompt
115
138
  ? [
116
- `Original task prompt: ${contract.taskPrompt.originalPath}`,
139
+ `${contract.taskPrompt.origin === "generated_standard" ? "Generated standard execution contract" : "Original task prompt"}: ${contract.taskPrompt.originalPath}`,
117
140
  `Frozen prompt snapshot: ${contract.taskPrompt.snapshotPath}`,
118
141
  `Prompt SHA-256: ${contract.taskPrompt.sha256}`,
119
142
  ]
@@ -129,6 +152,14 @@ function buildTaskBrief(contract) {
129
152
  "",
130
153
  "## Permission boundaries",
131
154
  "",
155
+ ...(contract.mandatoryEngineeringRules?.length
156
+ ? [
157
+ "## Mandatory engineering rules frozen by the host",
158
+ "",
159
+ ...contract.mandatoryEngineeringRules.map((rule) => `- ${rule}`),
160
+ "",
161
+ ]
162
+ : []),
132
163
  "- Maximum autonomy within safety boundaries.",
133
164
  "- Never commit or push Git, publish, or write to production automatically.",
134
165
  "- Never bypass sandbox or permission checks.",
@@ -140,13 +171,14 @@ function buildTaskBrief(contract) {
140
171
  "",
141
172
  `任务编号:${contract.taskId}`,
142
173
  `任务档位:${contract.profile}`,
174
+ `文档等级:${artifactLevelFor(contract)}`,
143
175
  `关联仓库:${contract.relatedProjectRoots.join("、") || "无"}`,
144
176
  `监督 Agent:${contract.supervisorAgent}`,
145
177
  `执行 Agent:${contract.executorAgent}`,
146
178
  `合同哈希:${contract.contractHash}`,
147
179
  ...(contract.taskPrompt
148
180
  ? [
149
- `原始任务 Prompt:${contract.taskPrompt.originalPath}`,
181
+ `${contract.taskPrompt.origin === "generated_standard" ? "自动生成的标准执行合同" : "原始任务 Prompt"}:${contract.taskPrompt.originalPath}`,
150
182
  `冻结 Prompt 快照:${contract.taskPrompt.snapshotPath}`,
151
183
  `Prompt SHA-256:${contract.taskPrompt.sha256}`,
152
184
  ]
@@ -162,6 +194,14 @@ function buildTaskBrief(contract) {
162
194
  "",
163
195
  "## 权限边界",
164
196
  "",
197
+ ...(contract.mandatoryEngineeringRules?.length
198
+ ? [
199
+ "## Host 冻结的强制工程规则",
200
+ "",
201
+ ...contract.mandatoryEngineeringRules.map((rule) => `- ${rule}`),
202
+ "",
203
+ ]
204
+ : []),
165
205
  "- 安全边界内最大自治。",
166
206
  "- 禁止自动 Git 提交、推送、发布和生产写入。",
167
207
  "- 禁止跳过沙箱或权限检查。",
@@ -171,7 +211,9 @@ function buildTaskBrief(contract) {
171
211
  function writeTaskPromptSnapshot(contract) {
172
212
  if (!contract.taskPrompt)
173
213
  return;
174
- const content = readFileSync(contract.taskPrompt.originalPath, "utf-8");
214
+ const content = contract.taskPrompt.origin === "generated_standard"
215
+ ? generatedStandardPromptContent(contract.request, contract.profile, contract.language)
216
+ : readFileSync(contract.taskPrompt.originalPath, "utf-8");
175
217
  const actual = createHash("sha256").update(content).digest("hex");
176
218
  if (actual !== contract.taskPrompt.sha256) {
177
219
  throw new Error(managedText(contract.language, "任务 Prompt 在创建合同后发生变化,拒绝生成快照", "Task prompt changed after contract creation; refusing to create snapshot"));
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/domains/managed-work/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/domains/managed-work/storage.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,19 @@
1
- export const HARD_MAX_REVIEW_ROUNDS = 5;
2
- export const HARD_MAX_EXECUTOR_INVOCATIONS = 7;
3
- export const HARD_MAX_TOTAL_AGENT_INVOCATIONS = 12;
1
+ export const HARD_MAX_REVIEW_ROUNDS = 10;
2
+ export const HARD_MAX_EXECUTOR_INVOCATIONS = 20;
3
+ export const HARD_MAX_TOTAL_AGENT_INVOCATIONS = 30;
4
4
  export const HARD_MAX_ACTIVE_RUN_HOURS = 24;
5
- export const HARD_MAX_SINGLE_INVOCATION_HOURS = 3;
5
+ export const HARD_MAX_SINGLE_INVOCATION_HOURS = 2;
6
+ export const HARD_MAX_EXECUTOR_TOKEN_UNITS = 50_000_000;
7
+ export const HARD_MAX_EXECUTOR_COST_USD = 100;
6
8
  export const DEFAULT_MANAGED_BUDGETS = {
7
- maxReviewRounds: HARD_MAX_REVIEW_ROUNDS,
8
- maxExecutorInvocations: HARD_MAX_EXECUTOR_INVOCATIONS,
9
- maxTotalAgentInvocations: HARD_MAX_TOTAL_AGENT_INVOCATIONS,
9
+ maxReviewRounds: 5,
10
+ maxExecutorInvocations: 7,
11
+ maxTotalAgentInvocations: 12,
12
+ maxExecutorTokenUnits: 2_000_000,
10
13
  activeRunWarningHours: 12,
11
14
  maxActiveRunHours: HARD_MAX_ACTIVE_RUN_HOURS,
12
- noProgressWarningMinutes: 20,
13
- stalledTimeoutMinutes: 40,
15
+ noProgressWarningMinutes: 1,
16
+ stalledTimeoutMinutes: 60,
14
17
  maxSingleInvocationHours: HARD_MAX_SINGLE_INVOCATION_HOURS,
15
18
  };
16
19
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/domains/managed-work/types.ts"],"names":[],"mappings":"AAwMA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,eAAe,EAAE,sBAAsB;IACvC,sBAAsB,EAAE,6BAA6B;IACrD,wBAAwB,EAAE,gCAAgC;IAC1D,qBAAqB,EAAE,EAAE;IACzB,iBAAiB,EAAE,yBAAyB;IAC5C,wBAAwB,EAAE,EAAE;IAC5B,qBAAqB,EAAE,EAAE;IACzB,wBAAwB,EAAE,gCAAgC;CAC3D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/domains/managed-work/types.ts"],"names":[],"mappings":"AA6WA,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,eAAe,EAAE,CAAC;IAClB,sBAAsB,EAAE,CAAC;IACzB,wBAAwB,EAAE,EAAE;IAC5B,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,EAAE;IACzB,iBAAiB,EAAE,yBAAyB;IAC5C,wBAAwB,EAAE,CAAC;IAC3B,qBAAqB,EAAE,EAAE;IACzB,wBAAwB,EAAE,gCAAgC;CAC3D,CAAC"}
@@ -0,0 +1,39 @@
1
+ export function verificationCategories(command, result = "") {
2
+ const normalized = command.toLowerCase();
3
+ const evidence = result.toLowerCase();
4
+ const categories = [];
5
+ if (/(^|\s)(test|vitest|jest|pytest|phpunit|go\s+test|cargo\s+test)(\s|$)/.test(normalized) ||
6
+ /(?:npm|pnpm|yarn)\s+(?:run\s+)?test/.test(normalized) ||
7
+ /mvn(?:\s+[^\s]+)*\s+test/.test(normalized) ||
8
+ /gradle\w*\s+test/.test(normalized)) {
9
+ categories.push("test");
10
+ }
11
+ if (/(?:npm|pnpm|yarn)\s+(?:run\s+)?build/.test(normalized) ||
12
+ /(?:^|[\s/])(?:vite|vue-cli-service)\s+build(?:\s|$)/.test(normalized) ||
13
+ /(^|\s)(tsc|make|cmake|compile)(\s|$)/.test(normalized) ||
14
+ /mvn(?:\s+[^\s]+)*\s+(?:compile|package|verify)/.test(normalized) ||
15
+ /gradle\w*\s+(?:build|assemble)/.test(normalized) ||
16
+ /cargo\s+build|go\s+build/.test(normalized)) {
17
+ categories.push("build");
18
+ }
19
+ if (/(?:npm|pnpm|yarn)\s+(?:run\s+)?(?:start|dev|serve)/.test(normalized) ||
20
+ /spring-boot:run|docker\s+compose\s+up|java\s+-jar/.test(normalized) ||
21
+ /(?:spawn(?:ed|ing)?|start(?:ed|ing)?)\b.{0,80}\b(?:real|actual)\b.{0,40}\b(?:application|app|process|server)\b/.test(evidence) ||
22
+ /真实.{0,20}(?:应用|进程|服务).{0,20}(?:启动|运行)/.test(result) ||
23
+ /(?:child_process\.)?spawn(?:sync)?\b.{0,120}\b(?:node|server|application|app)\b/.test(evidence) ||
24
+ /(?:动态端口|dynamic port).{0,120}(?:node|server|进程|服务)/i.test(result)) {
25
+ categories.push("startup", "runtime");
26
+ }
27
+ if (/(^|\s)(curl|wget)(\s|$)|health(?:check)?|integration|e2e/.test(normalized) ||
28
+ /\b(?:real|actual)\b.{0,30}\b(?:tcp|http)\b|\b(?:tcp|http)\b.{0,30}\b(?:request|response|status|200|400)\b/.test(evidence) ||
29
+ /真实.{0,20}(?:tcp|http).{0,30}(?:请求|响应|状态码)/i.test(result) ||
30
+ /(?:真实|real).{0,30}curl|curl.{0,80}(?:http|200|400|响应|状态)/i.test(result)) {
31
+ categories.push("invocation", "runtime");
32
+ }
33
+ return categories;
34
+ }
35
+ export function categoriesForCommand(command) {
36
+ return command.categories ??
37
+ verificationCategories(command.command, command.result);
38
+ }
39
+ //# sourceMappingURL=verification-categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-categories.js","sourceRoot":"","sources":["../../../src/domains/managed-work/verification-categories.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,MAAM,GAAG,EAAE;IAEX,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,IACE,sEAAsE,CAAC,IAAI,CACzE,UAAU,CACX;QACD,qCAAqC,CAAC,IAAI,CAAC,UAAU,CAAC;QACtD,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3C,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,IACE,sCAAsC,CAAC,IAAI,CAAC,UAAU,CAAC;QACvD,qDAAqD,CAAC,IAAI,CAAC,UAAU,CAAC;QACtE,sCAAsC,CAAC,IAAI,CAAC,UAAU,CAAC;QACvD,gDAAgD,CAAC,IAAI,CAAC,UAAU,CAAC;QACjE,gCAAgC,CAAC,IAAI,CAAC,UAAU,CAAC;QACjD,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,EAC3C,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,IACE,oDAAoD,CAAC,IAAI,CAAC,UAAU,CAAC;QACrE,mDAAmD,CAAC,IAAI,CAAC,UAAU,CAAC;QACpE,gHAAgH,CAAC,IAAI,CACnH,QAAQ,CACT;QACD,uCAAuC,CAAC,IAAI,CAAC,MAAM,CAAC;QACpD,iFAAiF,CAAC,IAAI,CACpF,QAAQ,CACT;QACD,qDAAqD,CAAC,IAAI,CAAC,MAAM,CAAC,EAClE,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,IACE,0DAA0D,CAAC,IAAI,CAC7D,UAAU,CACX;QACD,2GAA2G,CAAC,IAAI,CAC9G,QAAQ,CACT;QACD,4CAA4C,CAAC,IAAI,CAAC,MAAM,CAAC;QACzD,2DAA2D,CAAC,IAAI,CAC9D,MAAM,CACP,EACD,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAA+B;IAE/B,OAAO,OAAO,CAAC,UAAU;QACvB,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC"}