@devcxl/opencode-cabbage 0.3.1 → 1.0.0

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 (177) hide show
  1. package/README.md +34 -19
  2. package/README.zh.md +34 -19
  3. package/assets/agents/dev-lifecycle.md +60 -41
  4. package/assets/agents/team/architect.md +36 -1
  5. package/assets/agents/team/developer.md +89 -0
  6. package/assets/agents/team/goal-verify.md +5 -1
  7. package/assets/agents/team/reviewer.md +42 -1
  8. package/assets/commands/code.md +3 -2
  9. package/assets/commands/design.md +3 -2
  10. package/assets/commands/release.md +3 -2
  11. package/assets/commands/requirements.md +3 -2
  12. package/assets/commands/review.md +3 -2
  13. package/assets/commands/setup.md +3 -2
  14. package/assets/commands/tasks.md +2 -1
  15. package/assets/prompts/bootstrap.md +9 -8
  16. package/assets/prompts/stage-contract.md +55 -0
  17. package/assets/skills/flow-code/SKILL.md +38 -140
  18. package/assets/skills/flow-design/SKILL.md +33 -74
  19. package/assets/skills/flow-release/SKILL.md +31 -51
  20. package/assets/skills/flow-requirements/SKILL.md +47 -45
  21. package/assets/skills/flow-review/SKILL.md +26 -112
  22. package/assets/skills/flow-setup/SKILL.md +40 -43
  23. package/assets/skills/flow-tasks/SKILL.md +30 -139
  24. package/assets/skills/flow-tdd/SKILL.md +30 -31
  25. package/dist/kernel/caller.d.ts +48 -0
  26. package/dist/kernel/caller.js +88 -0
  27. package/dist/kernel/caller.js.map +1 -0
  28. package/dist/kernel/context.d.ts +27 -0
  29. package/dist/kernel/context.js +73 -0
  30. package/dist/kernel/context.js.map +1 -0
  31. package/dist/kernel/flow.d.ts +166 -0
  32. package/dist/kernel/flow.js +387 -0
  33. package/dist/kernel/flow.js.map +1 -0
  34. package/dist/kernel/legacy.d.ts +19 -0
  35. package/dist/kernel/legacy.js +34 -0
  36. package/dist/kernel/legacy.js.map +1 -0
  37. package/dist/kernel/mutex.d.ts +8 -0
  38. package/dist/kernel/mutex.js +23 -0
  39. package/dist/kernel/mutex.js.map +1 -0
  40. package/dist/kernel/permission.d.ts +21 -0
  41. package/dist/kernel/permission.js +37 -0
  42. package/dist/kernel/permission.js.map +1 -0
  43. package/dist/kernel/profile.d.ts +35 -0
  44. package/dist/kernel/profile.js +144 -0
  45. package/dist/kernel/profile.js.map +1 -0
  46. package/dist/kernel/records.d.ts +87 -0
  47. package/dist/kernel/records.js +197 -0
  48. package/dist/kernel/records.js.map +1 -0
  49. package/dist/kernel/release.d.ts +104 -0
  50. package/dist/kernel/release.js +229 -0
  51. package/dist/kernel/release.js.map +1 -0
  52. package/dist/kernel/review.d.ts +34 -0
  53. package/dist/kernel/review.js +81 -0
  54. package/dist/kernel/review.js.map +1 -0
  55. package/dist/kernel/session-index.d.ts +43 -0
  56. package/dist/kernel/session-index.js +120 -0
  57. package/dist/kernel/session-index.js.map +1 -0
  58. package/dist/kernel/setup.d.ts +70 -0
  59. package/dist/kernel/setup.js +324 -0
  60. package/dist/kernel/setup.js.map +1 -0
  61. package/dist/kernel/slug.d.ts +23 -0
  62. package/dist/kernel/slug.js +67 -0
  63. package/dist/kernel/slug.js.map +1 -0
  64. package/dist/kernel/task.d.ts +208 -0
  65. package/dist/kernel/task.js +788 -0
  66. package/dist/kernel/task.js.map +1 -0
  67. package/dist/{flowrun → kernel/tdd}/adapter.d.ts +1 -1
  68. package/dist/kernel/tdd/adapter.js.map +1 -0
  69. package/dist/{flowrun → kernel/tdd}/digest.d.ts +1 -1
  70. package/dist/kernel/tdd/digest.js.map +1 -0
  71. package/dist/{flowrun → kernel/tdd}/evaluator.d.ts +1 -1
  72. package/dist/kernel/tdd/evaluator.js.map +1 -0
  73. package/dist/kernel/tdd/evidence.d.ts +42 -0
  74. package/dist/kernel/tdd/evidence.js +48 -0
  75. package/dist/kernel/tdd/evidence.js.map +1 -0
  76. package/dist/{flowrun → kernel/tdd}/state.d.ts +1 -1
  77. package/dist/kernel/tdd/state.js.map +1 -0
  78. package/dist/kernel/types.d.ts +180 -0
  79. package/dist/kernel/types.js +2 -0
  80. package/dist/kernel/types.js.map +1 -0
  81. package/dist/kernel/worktree.d.ts +45 -0
  82. package/dist/kernel/worktree.js +127 -0
  83. package/dist/kernel/worktree.js.map +1 -0
  84. package/dist/plugin/agents.d.ts +5 -17
  85. package/dist/plugin/agents.js +0 -23
  86. package/dist/plugin/agents.js.map +1 -1
  87. package/dist/plugin/flow-control.d.ts +80 -0
  88. package/dist/plugin/flow-control.js +254 -0
  89. package/dist/plugin/flow-control.js.map +1 -0
  90. package/dist/plugin/goal.d.ts +7 -46
  91. package/dist/plugin/goal.js +32 -116
  92. package/dist/plugin/goal.js.map +1 -1
  93. package/dist/plugin/prompt-lint.js +78 -5
  94. package/dist/plugin/prompt-lint.js.map +1 -1
  95. package/dist/plugin/release-control.d.ts +37 -0
  96. package/dist/plugin/release-control.js +304 -0
  97. package/dist/plugin/release-control.js.map +1 -0
  98. package/dist/plugin/server.d.ts +19 -0
  99. package/dist/plugin/server.js +147 -302
  100. package/dist/plugin/server.js.map +1 -1
  101. package/dist/plugin/setup-control.d.ts +45 -0
  102. package/dist/plugin/setup-control.js +80 -0
  103. package/dist/plugin/setup-control.js.map +1 -0
  104. package/dist/plugin/shell.d.ts +7 -34
  105. package/dist/plugin/shell.js +12 -137
  106. package/dist/plugin/shell.js.map +1 -1
  107. package/dist/plugin/skills.d.ts +1 -1
  108. package/dist/plugin/skills.js +16 -17
  109. package/dist/plugin/skills.js.map +1 -1
  110. package/dist/plugin/task-control.d.ts +90 -0
  111. package/dist/plugin/task-control.js +201 -0
  112. package/dist/plugin/task-control.js.map +1 -0
  113. package/dist/plugin/tdd-checkpoint.d.ts +118 -0
  114. package/dist/plugin/tdd-checkpoint.js +581 -0
  115. package/dist/plugin/tdd-checkpoint.js.map +1 -0
  116. package/dist/util/paths.d.ts +0 -2
  117. package/dist/util/paths.js +1 -7
  118. package/dist/util/paths.js.map +1 -1
  119. package/package.json +1 -1
  120. package/assets/agents/team/backend.md +0 -66
  121. package/assets/agents/team/frontend.md +0 -63
  122. package/assets/commands/handoff.md +0 -4
  123. package/assets/commands/test.md +0 -4
  124. package/assets/context/CONTEXT.md +0 -40
  125. package/assets/skills/flow-handoff/SKILL.md +0 -76
  126. package/assets/skills/flow-requirements/references/interview-guide.md +0 -35
  127. package/assets/skills/flow-test/SKILL.md +0 -75
  128. package/dist/flowrun/adapter.js.map +0 -1
  129. package/dist/flowrun/audit.d.ts +0 -5
  130. package/dist/flowrun/audit.js +0 -67
  131. package/dist/flowrun/audit.js.map +0 -1
  132. package/dist/flowrun/ci.d.ts +0 -64
  133. package/dist/flowrun/ci.js +0 -184
  134. package/dist/flowrun/ci.js.map +0 -1
  135. package/dist/flowrun/coverage.d.ts +0 -70
  136. package/dist/flowrun/coverage.js +0 -207
  137. package/dist/flowrun/coverage.js.map +0 -1
  138. package/dist/flowrun/digest.js.map +0 -1
  139. package/dist/flowrun/evaluator.js.map +0 -1
  140. package/dist/flowrun/gate.d.ts +0 -28
  141. package/dist/flowrun/gate.js +0 -139
  142. package/dist/flowrun/gate.js.map +0 -1
  143. package/dist/flowrun/github.d.ts +0 -24
  144. package/dist/flowrun/github.js +0 -154
  145. package/dist/flowrun/github.js.map +0 -1
  146. package/dist/flowrun/index.d.ts +0 -14
  147. package/dist/flowrun/index.js +0 -15
  148. package/dist/flowrun/index.js.map +0 -1
  149. package/dist/flowrun/merge.d.ts +0 -57
  150. package/dist/flowrun/merge.js +0 -180
  151. package/dist/flowrun/merge.js.map +0 -1
  152. package/dist/flowrun/migration.d.ts +0 -11
  153. package/dist/flowrun/migration.js +0 -276
  154. package/dist/flowrun/migration.js.map +0 -1
  155. package/dist/flowrun/resilience.d.ts +0 -18
  156. package/dist/flowrun/resilience.js +0 -80
  157. package/dist/flowrun/resilience.js.map +0 -1
  158. package/dist/flowrun/state.js.map +0 -1
  159. package/dist/flowrun/transitions.d.ts +0 -66
  160. package/dist/flowrun/transitions.js +0 -168
  161. package/dist/flowrun/transitions.js.map +0 -1
  162. package/dist/flowrun/types.d.ts +0 -356
  163. package/dist/flowrun/types.js +0 -21
  164. package/dist/flowrun/types.js.map +0 -1
  165. package/dist/flowrun/validator.d.ts +0 -19
  166. package/dist/flowrun/validator.js +0 -209
  167. package/dist/flowrun/validator.js.map +0 -1
  168. package/dist/plugin/broker.d.ts +0 -73
  169. package/dist/plugin/broker.js +0 -140
  170. package/dist/plugin/broker.js.map +0 -1
  171. package/dist/plugin/tdd-tool.d.ts +0 -62
  172. package/dist/plugin/tdd-tool.js +0 -336
  173. package/dist/plugin/tdd-tool.js.map +0 -1
  174. /package/dist/{flowrun → kernel/tdd}/adapter.js +0 -0
  175. /package/dist/{flowrun → kernel/tdd}/digest.js +0 -0
  176. /package/dist/{flowrun → kernel/tdd}/evaluator.js +0 -0
  177. /package/dist/{flowrun → kernel/tdd}/state.js +0 -0
@@ -1,276 +0,0 @@
1
- import { CURRENT_SCHEMA_VERSION } from "./types.js";
2
- /**
3
- * v1→v2 幂等迁移器
4
- *
5
- * 纯函数:输入 v1 FlowRun (unknown),输出 FlowRunReadResult。
6
- * - 如果输入已经是 v2 格式 → 直接返回(幂等)
7
- * - 如果 schemaVersion > 2 → 返回 UNSUPPORTED_SCHEMA
8
- * - 如果 schemaVersion 缺失/非整数/< 1 → 返回 VALIDATION_FAILED
9
- * - 如果 schemaVersion === 1 → 执行迁移
10
- */
11
- export function migrateV1ToV2(flowRun) {
12
- if (!flowRun || typeof flowRun !== "object") {
13
- return { ok: false, code: "INVALID_JSON", errors: [{ path: "", message: "FlowRun must be a non-null object" }] };
14
- }
15
- const obj = flowRun;
16
- const version = obj.schemaVersion;
17
- if (typeof version !== "number" || !Number.isInteger(version) || version < 1) {
18
- return {
19
- ok: false,
20
- code: "VALIDATION_FAILED",
21
- errors: [{ path: "schemaVersion", message: `Must be a positive integer, got: ${version}` }],
22
- };
23
- }
24
- if (version > CURRENT_SCHEMA_VERSION) {
25
- return {
26
- ok: false,
27
- code: "UNSUPPORTED_SCHEMA",
28
- errors: [{ path: "schemaVersion", message: `Schema version ${version} is not supported (current: ${CURRENT_SCHEMA_VERSION})` }],
29
- };
30
- }
31
- // 已经是 v2,直接返回
32
- if (version === CURRENT_SCHEMA_VERSION) {
33
- return { ok: true, data: obj, migrated: false };
34
- }
35
- // v1 → v2 迁移
36
- try {
37
- const migrated = doMigrateV1ToV2(obj);
38
- return { ok: true, data: migrated, migrated: true };
39
- }
40
- catch (err) {
41
- return {
42
- ok: false,
43
- code: "MIGRATION_FAILED",
44
- errors: [{ path: "", message: `Migration failed: ${String(err)}` }],
45
- };
46
- }
47
- }
48
- function doMigrateV1ToV2(v1) {
49
- const tasks = {};
50
- if (v1.tasks && typeof v1.tasks === "object") {
51
- const v1Tasks = v1.tasks;
52
- for (const [key, v1Task] of Object.entries(v1Tasks)) {
53
- tasks[key] = migrateTaskV1ToV2(v1Task, key);
54
- }
55
- }
56
- // v1 PR checkpoints 有旧的 PR 字段,需要补充 v2 的新字段
57
- // 这些在 migrateTaskV1ToV2 中处理
58
- return {
59
- flowRunId: String(v1.flowRunId ?? ""),
60
- repo: String(v1.repo ?? ""),
61
- parentIssueNumber: Number(v1.parentIssueNumber ?? 0),
62
- status: String(v1.status ?? "planned"),
63
- schemaVersion: CURRENT_SCHEMA_VERSION,
64
- revision: Number(v1.revision ?? 0),
65
- stages: migrateStages(v1.stages),
66
- tasks,
67
- startedAt: typeof v1.startedAt === "string" ? v1.startedAt : null,
68
- lastTickAt: typeof v1.lastTickAt === "string" ? v1.lastTickAt : null,
69
- nextTickAfter: typeof v1.nextTickAfter === "string" ? v1.nextTickAfter : null,
70
- maxRuntime: Number(v1.maxRuntime ?? 86_400_000),
71
- completedAt: typeof v1.completedAt === "string" ? v1.completedAt : null,
72
- repositoryQualityPolicy: { mode: "off", requiredChecks: [] },
73
- };
74
- }
75
- function migrateStages(stages) {
76
- function defaultStage() {
77
- return {
78
- status: "pending",
79
- requiredArtifacts: [],
80
- checks: [],
81
- completedAt: null,
82
- evidence: [],
83
- };
84
- }
85
- if (!stages || typeof stages !== "object") {
86
- return {
87
- requirements: defaultStage(),
88
- design: defaultStage(),
89
- tasks: defaultStage(),
90
- code: defaultStage(),
91
- test: defaultStage(),
92
- review: defaultStage(),
93
- merge: defaultStage(),
94
- };
95
- }
96
- const s = stages;
97
- const stageKeys = ["requirements", "design", "tasks", "code", "test", "review", "merge"];
98
- const result = {};
99
- for (const key of stageKeys) {
100
- const val = s[key];
101
- if (val && typeof val === "object") {
102
- const v = val;
103
- result[key] = {
104
- status: (typeof v.status === "string" && ["pending", "running", "pass", "failed", "blocked"].includes(v.status))
105
- ? v.status
106
- : "pending",
107
- requiredArtifacts: Array.isArray(v.requiredArtifacts) ? v.requiredArtifacts : [],
108
- checks: Array.isArray(v.checks) ? v.checks : [],
109
- completedAt: typeof v.completedAt === "string" ? v.completedAt : null,
110
- evidence: Array.isArray(v.evidence) ? v.evidence : [],
111
- };
112
- }
113
- else {
114
- result[key] = defaultStage();
115
- }
116
- }
117
- return result;
118
- }
119
- /**
120
- * 将单个 v1 Task 迁移为 v2 TaskState
121
- */
122
- function migrateTaskV1ToV2(v1Task, recordKey) {
123
- const hasTestCommands = Array.isArray(v1Task.testCommands) && v1Task.testCommands.length > 0;
124
- // 迁移 testCommands: string[] → TaskCommand[]
125
- const testCommands = hasTestCommands
126
- ? v1Task.testCommands.map(cmd => ({
127
- command: cmd,
128
- cwd: ".",
129
- timeoutMs: 120_000,
130
- env: {},
131
- }))
132
- : [];
133
- // 迁移 acceptance → acceptanceCriteria
134
- const v1Acceptance = typeof v1Task.acceptance === "string" ? v1Task.acceptance : "";
135
- const acceptanceCriteria = [
136
- {
137
- id: "legacy-1",
138
- description: v1Acceptance || "历史任务验收条件(v1 迁移)",
139
- verification: hasTestCommands ? "regression" : "manual",
140
- },
141
- ];
142
- // 构造 TDD policy(按 spec 10.2)
143
- const tddPolicy = {
144
- mode: hasTestCommands ? "relaxed" : "bypass",
145
- enforcement: "advisory",
146
- runner: null,
147
- testFilePatterns: [],
148
- implementationFilePatterns: [],
149
- generatedArtifactPatterns: [],
150
- exception: {
151
- reason: "legacy schema v1 migration",
152
- alternativeValidation: hasTestCommands
153
- ? testCommands.map((cmd, i) => ({
154
- validationId: `legacy-alt-${i + 1}`,
155
- kind: "command",
156
- command: cmd,
157
- }))
158
- : [{
159
- validationId: "legacy-alt-1",
160
- kind: "manual",
161
- description: "历史任务未记录自动验证",
162
- }],
163
- approval: {
164
- kind: "legacy-migration",
165
- fromSchemaVersion: 1,
166
- },
167
- },
168
- source: {
169
- manifestPath: "legacy:v1",
170
- revisionSha: "migration:v1",
171
- },
172
- };
173
- // 构造 TDD evidence(完整默认对象)
174
- const tddEvidence = {
175
- revision: 0,
176
- reworkRevision: 0,
177
- status: "not-recorded",
178
- taskStart: makeDefaultTaskStart(),
179
- cycles: [],
180
- regression: makeDefaultRegression(),
181
- verification: makeDefaultVerification(),
182
- alternativeValidation: [],
183
- reworks: [],
184
- warnings: ["legacy schema v1 migration: evidence not recorded"],
185
- updatedAt: null,
186
- };
187
- // 迁移 PR checkpoints(保留旧字段 + 新增 null)
188
- const v1PR = v1Task.prCheckpoints;
189
- const prCheckpoints = v1PR && typeof v1PR === "object"
190
- ? migratePRCheckpoints(v1PR)
191
- : null;
192
- return {
193
- id: String(v1Task.id ?? recordKey),
194
- name: String(v1Task.name ?? recordKey),
195
- status: (typeof v1Task.status === "string" ? v1Task.status : "pending"),
196
- dependsOn: Array.isArray(v1Task.dependsOn) ? v1Task.dependsOn : [],
197
- area: String(v1Task.area ?? ""),
198
- expectedFiles: Array.isArray(v1Task.expectedFiles) ? v1Task.expectedFiles : [],
199
- parallelSafe: Boolean(v1Task.parallelSafe ?? false),
200
- prNumber: typeof v1Task.prNumber === "number" ? v1Task.prNumber : null,
201
- prCheckpoints,
202
- blockedReason: typeof v1Task.blockedReason === "string" ? v1Task.blockedReason : null,
203
- startedAt: typeof v1Task.startedAt === "string" ? v1Task.startedAt : null,
204
- // v2 新字段
205
- acceptanceCriteria,
206
- testCommands,
207
- verifyCommands: [],
208
- executionBinding: null,
209
- tddPolicy,
210
- tddEvidence,
211
- coveragePolicy: null,
212
- };
213
- }
214
- function migratePRCheckpoints(v1PR) {
215
- function makeCheckpoint(name) {
216
- return {
217
- name,
218
- status: "pending",
219
- evidence: [],
220
- };
221
- }
222
- const getCheckpoint = (key) => {
223
- const cp = v1PR[key];
224
- if (cp && typeof cp === "object") {
225
- const c = cp;
226
- return {
227
- name: String(c.name ?? key),
228
- status: (typeof c.status === "string" && ["pending", "pass", "fail"].includes(c.status))
229
- ? c.status
230
- : "pending",
231
- evidence: Array.isArray(c.evidence) ? c.evidence : [],
232
- };
233
- }
234
- return makeCheckpoint(key);
235
- };
236
- return {
237
- prNumber: Number(v1PR.prNumber ?? 0),
238
- localChecks: getCheckpoint("localChecks"),
239
- ciChecks: getCheckpoint("ciChecks"),
240
- reviewerApproval: getCheckpoint("reviewerApproval"),
241
- goalVerification: getCheckpoint("goalVerification"),
242
- branchProtection: getCheckpoint("branchProtection"),
243
- mergeResult: getCheckpoint("mergeResult"),
244
- // v2 新增
245
- tddCompliance: null,
246
- verification: null,
247
- coverage: null,
248
- qualityContractDigest: null,
249
- };
250
- }
251
- function makeDefaultTaskStart() {
252
- return {
253
- status: "pending",
254
- headSha: null,
255
- treeSha: null,
256
- startedAt: null,
257
- };
258
- }
259
- function makeDefaultRegression() {
260
- return {
261
- status: "pending",
262
- headSha: null,
263
- treeSha: null,
264
- reworkRevision: 0,
265
- runs: [],
266
- };
267
- }
268
- function makeDefaultVerification() {
269
- return {
270
- status: "pending",
271
- headSha: null,
272
- treeSha: null,
273
- runs: [],
274
- };
275
- }
276
- //# sourceMappingURL=migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/flowrun/migration.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { type FlowRun } from "./types.js";
2
- export declare function getRuntimeMs(flowRun: FlowRun): number;
3
- export declare function hasRuntimeExpired(flowRun: FlowRun): boolean;
4
- export interface RuntimeCheckResult {
5
- expired: boolean;
6
- runtimeMs: number;
7
- maxRuntimeMs: number;
8
- remainingMs: number;
9
- }
10
- export declare function checkRuntime(flowRun: FlowRun): RuntimeCheckResult;
11
- export interface BackpressureStatus {
12
- canContinue: boolean;
13
- reason?: string;
14
- rateLimitRemaining: number | null;
15
- ciQueueLength: number | null;
16
- }
17
- export declare function checkBackpressure(owner: string, repo: string): Promise<BackpressureStatus>;
18
- export declare function buildContinuationContext(flowRun: FlowRun): string;
@@ -1,80 +0,0 @@
1
- import { DEFAULT_MAX_RUNTIME_MS, FLOW_RUN_STAGES } from "./types.js";
2
- import { gh } from "../util/gh.js";
3
- export function getRuntimeMs(flowRun) {
4
- if (!flowRun.startedAt)
5
- return 0;
6
- return Date.now() - new Date(flowRun.startedAt).getTime();
7
- }
8
- export function hasRuntimeExpired(flowRun) {
9
- const max = flowRun.maxRuntime || DEFAULT_MAX_RUNTIME_MS;
10
- return getRuntimeMs(flowRun) > max;
11
- }
12
- export function checkRuntime(flowRun) {
13
- const runtimeMs = getRuntimeMs(flowRun);
14
- const maxRuntimeMs = flowRun.maxRuntime || DEFAULT_MAX_RUNTIME_MS;
15
- return {
16
- expired: runtimeMs > maxRuntimeMs,
17
- runtimeMs,
18
- maxRuntimeMs,
19
- remainingMs: Math.max(0, maxRuntimeMs - runtimeMs),
20
- };
21
- }
22
- export async function checkBackpressure(owner, repo) {
23
- const status = {
24
- canContinue: true,
25
- rateLimitRemaining: null,
26
- ciQueueLength: null,
27
- };
28
- try {
29
- const { stdout } = await gh(`api rate_limit --jq .rate.remaining`);
30
- const remaining = parseInt(stdout.trim(), 10);
31
- status.rateLimitRemaining = remaining;
32
- if (remaining < 100) {
33
- status.canContinue = false;
34
- status.reason = `GitHub API rate limit low: ${remaining} remaining`;
35
- return status;
36
- }
37
- }
38
- catch {
39
- status.rateLimitRemaining = null;
40
- }
41
- try {
42
- const { stdout } = await gh(`run list --repo ${owner}/${repo} --json status --jq '[.[] | select(.status == "queued" or .status == "in_progress")] | length'`);
43
- const queueLen = parseInt(stdout.trim(), 10);
44
- status.ciQueueLength = queueLen;
45
- if (queueLen >= 10) {
46
- status.canContinue = false;
47
- status.reason = `CI queue too long: ${queueLen} queued/in_progress`;
48
- return status;
49
- }
50
- }
51
- catch {
52
- status.ciQueueLength = null;
53
- }
54
- return status;
55
- }
56
- export function buildContinuationContext(flowRun) {
57
- const parts = [
58
- `FlowRun: ${flowRun.flowRunId}`,
59
- `Status: ${flowRun.status}`,
60
- `Runtime: ${Math.round(getRuntimeMs(flowRun) / 60000)} minutes`,
61
- "",
62
- "## Stage Status",
63
- ];
64
- for (const stage of FLOW_RUN_STAGES) {
65
- const s = flowRun.stages[stage];
66
- const checkSummary = s.checks
67
- .map(c => `${c.name}=${c.status}`)
68
- .join(", ");
69
- parts.push(`- ${stage}: ${s.status}${checkSummary ? ` (${checkSummary})` : ""}`);
70
- }
71
- const taskEntries = Object.entries(flowRun.tasks);
72
- if (taskEntries.length > 0) {
73
- parts.push("", "## Tasks");
74
- for (const [id, task] of taskEntries) {
75
- parts.push(`- ${id}: ${task.status}${task.prNumber ? ` PR #${task.prNumber}` : ""}`);
76
- }
77
- }
78
- return parts.join("\n");
79
- }
80
- //# sourceMappingURL=resilience.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/flowrun/resilience.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/flowrun/state.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- import type { FlowRun, FlowStage, TaskState, TaskExecutionBinding, TddPolicy } from "./types.js";
2
- export interface TransitionError {
3
- code: string;
4
- message: string;
5
- }
6
- export type TransitionResult<T> = {
7
- ok: true;
8
- value: T;
9
- } | {
10
- ok: false;
11
- error: TransitionError;
12
- };
13
- /**
14
- * 启动 FlowRun:planned → running
15
- *
16
- * 幂等:已经是 running 则直接返回(不报错)。
17
- */
18
- export declare function flowRunStart(flowRun: FlowRun): TransitionResult<FlowRun>;
19
- /**
20
- * 启动 Stage:pending → running
21
- *
22
- * 约束:
23
- * - 仅允许 requirements/design/tasks/code
24
- * - 验证前置 stage 已 pass
25
- *
26
- * 幂等:已经是 running 则直接返回。
27
- */
28
- export declare function flowStageStart(flowRun: FlowRun, stage: FlowStage): TransitionResult<FlowRun>;
29
- /**
30
- * 完成 Stage:running → pass
31
- *
32
- * 约束:
33
- * - 仅允许 requirements/design/tasks
34
- * - code/test/review/merge 由 finalize 完成
35
- * - 验证 pending checks 均已 pass
36
- *
37
- * 幂等:已经是 pass 则直接返回。
38
- */
39
- export declare function flowStageComplete(flowRun: FlowRun, stage: FlowStage): TransitionResult<FlowRun>;
40
- /**
41
- * 启动 Task:pending/ready → running
42
- *
43
- * 步骤:
44
- * 1. gate check:canStartTask(依赖已 merged、code stage 活跃等)
45
- * 2. policy 冻结:如果传入 tddPolicy,则覆盖 TaskState.tddPolicy
46
- * 3. 写入 executionBinding
47
- * 4. status → running
48
- *
49
- * 幂等:已经是 running 则直接返回(相同 taskId)。
50
- */
51
- export declare function flowTaskStart(flowRun: FlowRun, taskId: string, executionBinding: TaskExecutionBinding, tddPolicy?: TddPolicy): TransitionResult<{
52
- flowRun: FlowRun;
53
- task: TaskState;
54
- }>;
55
- /**
56
- * FlowRun 终态绑定:所有 Task merged 后,顺序标记 code→test→review→merge 为 pass,
57
- * 并将 FlowRun 状态设为 completed。
58
- *
59
- * 规则:
60
- * - canMerge() 必须通过(所有 Task merged + FlowRun status 为 running/merging)
61
- * - 对 code/test/review/merge 四个 stage:若未 pass 则逐个标记 pass
62
- * - FlowRun status → completed,设置 completedAt
63
- *
64
- * 幂等:已经是 completed 则直接返回(不修改任何字段)。
65
- */
66
- export declare function flowRunFinalize(flowRun: FlowRun): TransitionResult<FlowRun>;
@@ -1,168 +0,0 @@
1
- import { canStartStage, canCompleteStage, canStartTask, canMerge, } from "./gate.js";
2
- // ─── 受控 stage 集合 ───
3
- /** flow_control 可启动的 stage */
4
- const STARTABLE_STAGES = ["requirements", "design", "tasks", "code"];
5
- /** flow_control 可完成的 stage(code/test/review/merge 由 finalize 完成) */
6
- const COMPLETABLE_STAGES = ["requirements", "design", "tasks"];
7
- function gateToError(gate) {
8
- return {
9
- code: "GATE_BLOCKED",
10
- message: gate.reason ?? "Gate check failed",
11
- };
12
- }
13
- // ─── FlowRun 状态迁移 ───
14
- /**
15
- * 启动 FlowRun:planned → running
16
- *
17
- * 幂等:已经是 running 则直接返回(不报错)。
18
- */
19
- export function flowRunStart(flowRun) {
20
- if (flowRun.status === "running") {
21
- return { ok: true, value: flowRun };
22
- }
23
- if (flowRun.status !== "planned") {
24
- return {
25
- ok: false,
26
- error: { code: "INVALID_TRANSITION", message: `FlowRun is ${flowRun.status}, not planned` },
27
- };
28
- }
29
- flowRun.status = "running";
30
- flowRun.startedAt = new Date().toISOString();
31
- return { ok: true, value: flowRun };
32
- }
33
- // ─── Stage 状态迁移 ───
34
- /**
35
- * 启动 Stage:pending → running
36
- *
37
- * 约束:
38
- * - 仅允许 requirements/design/tasks/code
39
- * - 验证前置 stage 已 pass
40
- *
41
- * 幂等:已经是 running 则直接返回。
42
- */
43
- export function flowStageStart(flowRun, stage) {
44
- if (!STARTABLE_STAGES.includes(stage)) {
45
- return {
46
- ok: false,
47
- error: { code: "STAGE_NOT_CONTROLLABLE", message: `Stage "${stage}" cannot be started via flow_control` },
48
- };
49
- }
50
- if (flowRun.stages[stage].status === "running") {
51
- return { ok: true, value: flowRun };
52
- }
53
- const gate = canStartStage(flowRun, stage);
54
- if (!gate.allowed) {
55
- return { ok: false, error: gateToError(gate) };
56
- }
57
- flowRun.stages[stage].status = "running";
58
- return { ok: true, value: flowRun };
59
- }
60
- /**
61
- * 完成 Stage:running → pass
62
- *
63
- * 约束:
64
- * - 仅允许 requirements/design/tasks
65
- * - code/test/review/merge 由 finalize 完成
66
- * - 验证 pending checks 均已 pass
67
- *
68
- * 幂等:已经是 pass 则直接返回。
69
- */
70
- export function flowStageComplete(flowRun, stage) {
71
- if (!COMPLETABLE_STAGES.includes(stage)) {
72
- return {
73
- ok: false,
74
- error: { code: "STAGE_NOT_CONTROLLABLE", message: `Stage "${stage}" completion is only via finalize` },
75
- };
76
- }
77
- if (flowRun.stages[stage].status === "pass") {
78
- return { ok: true, value: flowRun };
79
- }
80
- const gate = canCompleteStage(flowRun, stage);
81
- if (!gate.allowed) {
82
- return { ok: false, error: gateToError(gate) };
83
- }
84
- flowRun.stages[stage].status = "pass";
85
- flowRun.stages[stage].completedAt = new Date().toISOString();
86
- return { ok: true, value: flowRun };
87
- }
88
- // ─── Task 状态迁移 ───
89
- /**
90
- * 启动 Task:pending/ready → running
91
- *
92
- * 步骤:
93
- * 1. gate check:canStartTask(依赖已 merged、code stage 活跃等)
94
- * 2. policy 冻结:如果传入 tddPolicy,则覆盖 TaskState.tddPolicy
95
- * 3. 写入 executionBinding
96
- * 4. status → running
97
- *
98
- * 幂等:已经是 running 则直接返回(相同 taskId)。
99
- */
100
- export function flowTaskStart(flowRun, taskId, executionBinding, tddPolicy) {
101
- const task = flowRun.tasks[taskId];
102
- if (!task) {
103
- return {
104
- ok: false,
105
- error: { code: "TASK_NOT_FOUND", message: `Task "${taskId}" not found in FlowRun` },
106
- };
107
- }
108
- // 幂等:已经是 running
109
- if (task.status === "running") {
110
- // 更新 executionBinding(可能重连)
111
- task.executionBinding = executionBinding;
112
- return { ok: true, value: { flowRun, task } };
113
- }
114
- const gate = canStartTask(flowRun, taskId);
115
- if (!gate.allowed) {
116
- return { ok: false, error: gateToError(gate) };
117
- }
118
- // 冻结 policy
119
- if (tddPolicy) {
120
- task.tddPolicy = tddPolicy;
121
- }
122
- // 写入 execution binding
123
- task.executionBinding = executionBinding;
124
- task.status = "running";
125
- task.startedAt = new Date().toISOString();
126
- return { ok: true, value: { flowRun, task } };
127
- }
128
- // ─── FlowRun Finalize ───
129
- /**
130
- * FlowRun 终态绑定:所有 Task merged 后,顺序标记 code→test→review→merge 为 pass,
131
- * 并将 FlowRun 状态设为 completed。
132
- *
133
- * 规则:
134
- * - canMerge() 必须通过(所有 Task merged + FlowRun status 为 running/merging)
135
- * - 对 code/test/review/merge 四个 stage:若未 pass 则逐个标记 pass
136
- * - FlowRun status → completed,设置 completedAt
137
- *
138
- * 幂等:已经是 completed 则直接返回(不修改任何字段)。
139
- */
140
- export function flowRunFinalize(flowRun) {
141
- // 幂等:已 completed
142
- if (flowRun.status === "completed") {
143
- return { ok: true, value: flowRun };
144
- }
145
- // 前置检查:canMerge(所有 Task merged + FlowRun 状态正确)
146
- const mergeGate = canMerge(flowRun);
147
- if (!mergeGate.allowed) {
148
- return { ok: false, error: gateToError(mergeGate) };
149
- }
150
- // 顺序标记 finalize stages
151
- const finalizeStages = ["code", "test", "review", "merge"];
152
- for (const stage of finalizeStages) {
153
- const stageState = flowRun.stages[stage];
154
- if (!stageState)
155
- continue;
156
- // 已经是 pass → 跳过
157
- if (stageState.status === "pass")
158
- continue;
159
- // 标记 pass
160
- stageState.status = "pass";
161
- stageState.completedAt = new Date().toISOString();
162
- }
163
- // FlowRun → completed
164
- flowRun.status = "completed";
165
- flowRun.completedAt = new Date().toISOString();
166
- return { ok: true, value: flowRun };
167
- }
168
- //# sourceMappingURL=transitions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/flowrun/transitions.ts"],"names":[],"mappings":"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"}