@chenmk/superflow 0.3.0 → 0.4.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.
- package/README.md +20 -1
- package/README.zh-CN.md +16 -1
- package/assets/manifest.json +5 -4
- package/assets/prompts/superflow-design.md +3 -0
- package/assets/prompts/superflow-docs.md +4 -1
- package/assets/scripts/superflow-dependency-update-hook.sh +1 -1
- package/assets/scripts/superflow-managed-work-check.mjs +194 -0
- package/assets/scripts/superflow-managed-work-guard.sh +103 -0
- package/assets/skills/openspec-propose/SKILL.md +11 -0
- package/assets/skills/superflow-design/SKILL.md +18 -9
- package/assets/skills/superflow-docs/SKILL.md +16 -0
- package/assets/skills/superflow-pipeline/SKILL.md +46 -0
- package/assets/skills/superflow-pipeline/references/document-templates.md +8 -0
- package/assets/skills/superflow-pipeline/references/managed-work.md +58 -0
- package/assets/skills/superflow-pipeline/references/quality-gate.md +1 -0
- package/assets/skills/superflow-pipeline/references/superpower-technical-design-template.md +10 -0
- package/assets/skills/superflow-pipeline/scripts/superflow-archive.sh +1 -1
- package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +79 -9
- package/assets/skills-en/openspec-propose/SKILL.md +14 -0
- package/assets/skills-en/superflow-design/SKILL.md +18 -8
- package/assets/skills-en/superflow-docs/SKILL.md +16 -0
- package/assets/skills-en/superflow-pipeline/SKILL.md +48 -0
- package/assets/skills-en/superflow-pipeline/references/document-templates.md +5 -0
- package/assets/skills-en/superflow-pipeline/references/managed-work.md +34 -0
- package/assets/skills-en/superflow-pipeline/references/quality-gate.md +8 -0
- package/assets/skills-en/superflow-pipeline/references/superpower-technical-design-template.md +11 -0
- package/assets/skills-en/superflow-pipeline/scripts/superflow-archive.sh +1 -1
- package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +78 -9
- package/dist/app/cli.js +120 -102
- package/dist/app/cli.js.map +1 -1
- package/dist/app/commands/init.js +6 -2
- package/dist/app/commands/init.js.map +1 -1
- package/dist/app/commands/managed-service.js +5 -0
- package/dist/app/commands/managed-service.js.map +1 -0
- package/dist/app/commands/pipeline.js +123 -3
- package/dist/app/commands/pipeline.js.map +1 -1
- package/dist/app/commands/status.js +199 -77
- package/dist/app/commands/status.js.map +1 -1
- package/dist/app/commands/uninstall.js +5 -2
- package/dist/app/commands/uninstall.js.map +1 -1
- package/dist/app/commands/update.js +31 -6
- package/dist/app/commands/update.js.map +1 -1
- package/dist/domains/config/cli-help.js +103 -73
- package/dist/domains/config/cli-help.js.map +1 -1
- package/dist/domains/deps.js +2 -1
- package/dist/domains/deps.js.map +1 -1
- package/dist/domains/hook.js +71 -38
- package/dist/domains/hook.js.map +1 -1
- package/dist/domains/managed-work/contract.js +218 -0
- package/dist/domains/managed-work/contract.js.map +1 -0
- package/dist/domains/managed-work/i18n.js +12 -0
- package/dist/domains/managed-work/i18n.js.map +1 -0
- package/dist/domains/managed-work/input.js +111 -0
- package/dist/domains/managed-work/input.js.map +1 -0
- package/dist/domains/managed-work/journal.js +122 -0
- package/dist/domains/managed-work/journal.js.map +1 -0
- package/dist/domains/managed-work/lock.js +40 -0
- package/dist/domains/managed-work/lock.js.map +1 -0
- package/dist/domains/managed-work/notifications.js +53 -0
- package/dist/domains/managed-work/notifications.js.map +1 -0
- package/dist/domains/managed-work/paths.js +18 -0
- package/dist/domains/managed-work/paths.js.map +1 -0
- package/dist/domains/managed-work/prompts.js +218 -0
- package/dist/domains/managed-work/prompts.js.map +1 -0
- package/dist/domains/managed-work/runner.js +626 -0
- package/dist/domains/managed-work/runner.js.map +1 -0
- package/dist/domains/managed-work/schemas.js +85 -0
- package/dist/domains/managed-work/schemas.js.map +1 -0
- package/dist/domains/managed-work/service.js +121 -0
- package/dist/domains/managed-work/service.js.map +1 -0
- package/dist/domains/managed-work/state.js +90 -0
- package/dist/domains/managed-work/state.js.map +1 -0
- package/dist/domains/managed-work/storage.js +181 -0
- package/dist/domains/managed-work/storage.js.map +1 -0
- package/dist/domains/managed-work/types.js +16 -0
- package/dist/domains/managed-work/types.js.map +1 -0
- package/dist/domains/managed-work/wait.js +40 -0
- package/dist/domains/managed-work/wait.js.map +1 -0
- package/dist/platform/agent-process.js +308 -0
- package/dist/platform/agent-process.js.map +1 -0
- package/dist/platform/process-liveness.js +10 -0
- package/dist/platform/process-liveness.js.map +1 -0
- package/dist/platform/version-check.js +30 -9
- package/dist/platform/version-check.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,52 +1,64 @@
|
|
|
1
|
-
import { existsSync, readdirSync, readFileSync, statSync } from
|
|
2
|
-
import path from
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { existsSync, readdirSync, readFileSync, realpathSync, statSync, } from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { t } from "../../domains/config/i18n.js";
|
|
4
|
+
import { resolveRuntimeLanguage } from "../../domains/config/cli-help.js";
|
|
5
|
+
import { managedText } from "../../domains/managed-work/i18n.js";
|
|
6
|
+
import { readServiceState } from "../../domains/managed-work/service.js";
|
|
7
|
+
import { managedRunDir } from "../../domains/managed-work/paths.js";
|
|
8
|
+
import { loadManagedRun, loadRegistry, } from "../../domains/managed-work/storage.js";
|
|
9
|
+
import { collectCheck } from "./check.js";
|
|
10
|
+
import { isProcessAlive } from "../../platform/process-liveness.js";
|
|
11
|
+
export async function statusCommand(targetPath = ".", options = {}) {
|
|
12
|
+
const language = resolveRuntimeLanguage(options.language);
|
|
13
|
+
const result = await collectStatus(targetPath, language);
|
|
7
14
|
if (options.json) {
|
|
8
15
|
console.log(JSON.stringify(result, null, 2));
|
|
9
16
|
return;
|
|
10
17
|
}
|
|
11
|
-
printStatus(result,
|
|
18
|
+
printStatus(result, language);
|
|
12
19
|
}
|
|
13
|
-
export async function collectStatus(targetPath =
|
|
20
|
+
export async function collectStatus(targetPath = ".", language = "zh") {
|
|
14
21
|
const projectPath = path.resolve(targetPath);
|
|
15
|
-
const changesRoot = path.join(projectPath,
|
|
22
|
+
const changesRoot = path.join(projectPath, "openspec", "changes");
|
|
16
23
|
const changes = [];
|
|
24
|
+
const managedTasks = collectManagedTasks(projectPath, language);
|
|
25
|
+
const service = readServiceState();
|
|
26
|
+
const managedService = service
|
|
27
|
+
? { pid: service.pid, running: isProcessAlive(service.pid) }
|
|
28
|
+
: null;
|
|
17
29
|
if (!existsSync(changesRoot))
|
|
18
|
-
return { projectPath, changes };
|
|
30
|
+
return { projectPath, changes, managedTasks, managedService };
|
|
19
31
|
for (const entry of readdirSync(changesRoot).sort()) {
|
|
20
32
|
const changeDir = path.join(changesRoot, entry);
|
|
21
33
|
if (!statSync(changeDir).isDirectory())
|
|
22
34
|
continue;
|
|
23
|
-
const statePath = path.join(changeDir,
|
|
35
|
+
const statePath = path.join(changeDir, ".sdd", "state.yaml");
|
|
24
36
|
if (!existsSync(statePath))
|
|
25
37
|
continue;
|
|
26
|
-
const state = parseSimpleYaml(readFileSync(statePath,
|
|
27
|
-
if (state.archived ===
|
|
38
|
+
const state = parseSimpleYaml(readFileSync(statePath, "utf-8"));
|
|
39
|
+
if (state.archived === "true" || state.phase === "done")
|
|
28
40
|
continue;
|
|
29
|
-
const tasks = countTasks(path.join(changeDir,
|
|
41
|
+
const tasks = countTasks(path.join(changeDir, "tasks.md"));
|
|
30
42
|
const docCheck = collectCheck(changeDir, entry);
|
|
31
43
|
changes.push({
|
|
32
44
|
name: entry,
|
|
33
45
|
path: path.relative(projectPath, changeDir),
|
|
34
|
-
workflow: state.workflow ??
|
|
35
|
-
phase: state.phase ??
|
|
36
|
-
buildMode: state.build_mode ??
|
|
37
|
-
reviewMode: state.review_mode ??
|
|
38
|
-
autoTransition: state.auto_transition ??
|
|
39
|
-
verifyMode: state.verify_mode ??
|
|
40
|
-
verifyResult: state.verify_result ??
|
|
46
|
+
workflow: state.workflow ?? "full",
|
|
47
|
+
phase: state.phase ?? "unknown",
|
|
48
|
+
buildMode: state.build_mode ?? "null",
|
|
49
|
+
reviewMode: state.review_mode ?? "null",
|
|
50
|
+
autoTransition: state.auto_transition ?? "true",
|
|
51
|
+
verifyMode: state.verify_mode ?? "null",
|
|
52
|
+
verifyResult: state.verify_result ?? "pending",
|
|
41
53
|
tasksCompleted: tasks.done,
|
|
42
54
|
tasksTotal: tasks.total,
|
|
43
55
|
nextCommand: nextCommand(entry, state.phase),
|
|
44
|
-
nextReason: nextReason(state.phase, tasks, state.verify_result,
|
|
45
|
-
risks: buildRisks(changeDir, state, tasks,
|
|
56
|
+
nextReason: nextReason(state.phase, tasks, state.verify_result, language),
|
|
57
|
+
risks: buildRisks(changeDir, state, tasks, language),
|
|
46
58
|
docGaps: docCheck.failed,
|
|
47
59
|
});
|
|
48
60
|
}
|
|
49
|
-
return { projectPath, changes };
|
|
61
|
+
return { projectPath, changes, managedTasks, managedService };
|
|
50
62
|
}
|
|
51
63
|
function fileExists(changeDir, file) {
|
|
52
64
|
return existsSync(path.join(changeDir, file));
|
|
@@ -54,7 +66,7 @@ function fileExists(changeDir, file) {
|
|
|
54
66
|
function parseSimpleYaml(content) {
|
|
55
67
|
const result = {};
|
|
56
68
|
for (const line of content.split(/\r?\n/)) {
|
|
57
|
-
if (!line.trim() || line.trimStart().startsWith(
|
|
69
|
+
if (!line.trim() || line.trimStart().startsWith("#"))
|
|
58
70
|
continue;
|
|
59
71
|
if (/^\s/.test(line))
|
|
60
72
|
continue;
|
|
@@ -67,7 +79,7 @@ function parseSimpleYaml(content) {
|
|
|
67
79
|
function countTasks(tasksPath) {
|
|
68
80
|
if (!existsSync(tasksPath))
|
|
69
81
|
return { done: 0, total: 0 };
|
|
70
|
-
const lines = readFileSync(tasksPath,
|
|
82
|
+
const lines = readFileSync(tasksPath, "utf-8").split(/\r?\n/);
|
|
71
83
|
return {
|
|
72
84
|
done: lines.filter((line) => /^\s*-\s*\[[xX]\]/.test(line)).length,
|
|
73
85
|
total: lines.filter((line) => /^\s*-\s*\[[ xX]\]/.test(line)).length,
|
|
@@ -75,107 +87,161 @@ function countTasks(tasksPath) {
|
|
|
75
87
|
}
|
|
76
88
|
function nextCommand(change, phase) {
|
|
77
89
|
switch (phase) {
|
|
78
|
-
case
|
|
90
|
+
case "docs":
|
|
79
91
|
return `superflow docs ${change}`;
|
|
80
|
-
case
|
|
92
|
+
case "design":
|
|
81
93
|
return `superflow design ${change}`;
|
|
82
|
-
case
|
|
94
|
+
case "implement":
|
|
83
95
|
return `superflow implement ${change}`;
|
|
84
|
-
case
|
|
96
|
+
case "verify":
|
|
85
97
|
return `superflow verify ${change}`;
|
|
86
|
-
case
|
|
98
|
+
case "archive":
|
|
87
99
|
return `superflow archive ${change}`;
|
|
88
100
|
default:
|
|
89
101
|
return null;
|
|
90
102
|
}
|
|
91
103
|
}
|
|
92
104
|
function nextReason(phase, tasks, verifyResult, language) {
|
|
93
|
-
if (verifyResult ===
|
|
94
|
-
return t(language,
|
|
105
|
+
if (verifyResult === "fail")
|
|
106
|
+
return t(language, "nextVerifyFailed");
|
|
95
107
|
switch (phase) {
|
|
96
|
-
case
|
|
97
|
-
return t(language,
|
|
98
|
-
case
|
|
99
|
-
return t(language,
|
|
100
|
-
case
|
|
108
|
+
case "docs":
|
|
109
|
+
return t(language, "nextDocs");
|
|
110
|
+
case "design":
|
|
111
|
+
return t(language, "nextDesign");
|
|
112
|
+
case "implement": {
|
|
101
113
|
const remaining = tasks.total - tasks.done;
|
|
102
114
|
if (remaining > 0) {
|
|
103
|
-
return language ===
|
|
115
|
+
return language === "en"
|
|
104
116
|
? `Current phase is implement. ${remaining} task(s) remain.`
|
|
105
117
|
: `当前处于 implement 阶段,还有 ${remaining} 个任务未完成。`;
|
|
106
118
|
}
|
|
107
|
-
return t(language,
|
|
119
|
+
return t(language, "nextImplementDone");
|
|
108
120
|
}
|
|
109
|
-
case
|
|
110
|
-
return t(language,
|
|
111
|
-
case
|
|
112
|
-
return t(language,
|
|
121
|
+
case "verify":
|
|
122
|
+
return t(language, "nextVerify");
|
|
123
|
+
case "archive":
|
|
124
|
+
return t(language, "nextArchive");
|
|
113
125
|
default:
|
|
114
|
-
return t(language,
|
|
126
|
+
return t(language, "nextUnknown");
|
|
115
127
|
}
|
|
116
128
|
}
|
|
117
129
|
function buildRisks(changeDir, state, tasks, language) {
|
|
118
130
|
const risks = [];
|
|
119
|
-
const phase = state.phase ??
|
|
120
|
-
if (phase ===
|
|
121
|
-
risks.push({
|
|
131
|
+
const phase = state.phase ?? "unknown";
|
|
132
|
+
if (phase === "unknown") {
|
|
133
|
+
risks.push({
|
|
134
|
+
level: "warning",
|
|
135
|
+
code: "UNKNOWN_PHASE",
|
|
136
|
+
message: t(language, "riskUnknownPhase"),
|
|
137
|
+
});
|
|
122
138
|
}
|
|
123
|
-
if (tasks.total === 0 || !fileExists(changeDir,
|
|
124
|
-
risks.push({
|
|
139
|
+
if (tasks.total === 0 || !fileExists(changeDir, "tasks.md")) {
|
|
140
|
+
risks.push({
|
|
141
|
+
level: "warning",
|
|
142
|
+
code: "TASKS_MISSING",
|
|
143
|
+
message: t(language, "riskTasksMissing"),
|
|
144
|
+
});
|
|
125
145
|
}
|
|
126
|
-
else if (phase ===
|
|
146
|
+
else if (phase === "implement" && tasks.done < tasks.total) {
|
|
127
147
|
const remaining = tasks.total - tasks.done;
|
|
128
148
|
risks.push({
|
|
129
|
-
level:
|
|
130
|
-
code:
|
|
131
|
-
message: language ===
|
|
149
|
+
level: "warning",
|
|
150
|
+
code: "TASKS_INCOMPLETE",
|
|
151
|
+
message: language === "en"
|
|
152
|
+
? `${remaining} task(s) remain.`
|
|
153
|
+
: `仍有 ${remaining} 个任务未完成。`,
|
|
132
154
|
});
|
|
133
155
|
}
|
|
134
|
-
if ((state.workflow ??
|
|
135
|
-
|
|
156
|
+
if ((state.workflow ?? "full") === "full" &&
|
|
157
|
+
(state.review_mode ?? "null") === "null") {
|
|
158
|
+
risks.push({
|
|
159
|
+
level: "warning",
|
|
160
|
+
code: "REVIEW_MODE_MISSING",
|
|
161
|
+
message: t(language, "riskReviewMissing"),
|
|
162
|
+
});
|
|
136
163
|
}
|
|
137
|
-
if ((state.auto_transition ??
|
|
138
|
-
risks.push({
|
|
164
|
+
if ((state.auto_transition ?? "true") === "false") {
|
|
165
|
+
risks.push({
|
|
166
|
+
level: "info",
|
|
167
|
+
code: "AUTO_TRANSITION_OFF",
|
|
168
|
+
message: language === "en"
|
|
169
|
+
? "auto_transition is off; manual trigger required."
|
|
170
|
+
: "auto_transition 已关闭,需手动推进阶段。",
|
|
171
|
+
});
|
|
139
172
|
}
|
|
140
173
|
// 文档缺口检测(复用已导入的 collectCheck)
|
|
141
|
-
const docCheck = collectCheck(changeDir,
|
|
174
|
+
const docCheck = collectCheck(changeDir, "");
|
|
142
175
|
if (docCheck.failed > 0) {
|
|
143
176
|
risks.push({
|
|
144
|
-
level:
|
|
145
|
-
code:
|
|
146
|
-
message: language ===
|
|
177
|
+
level: "error",
|
|
178
|
+
code: "DOCS_INCOMPLETE",
|
|
179
|
+
message: language === "en"
|
|
147
180
|
? `Missing ${docCheck.failed} required SDD document(s). Run: superflow check <change>`
|
|
148
181
|
: `缺失 ${docCheck.failed} 个必备 SDD 文档。执行: superflow check <change>`,
|
|
149
182
|
});
|
|
150
183
|
}
|
|
151
|
-
if (state.verify_result ===
|
|
152
|
-
risks.push({
|
|
184
|
+
if (state.verify_result === "fail") {
|
|
185
|
+
risks.push({
|
|
186
|
+
level: "error",
|
|
187
|
+
code: "VERIFY_FAILED",
|
|
188
|
+
message: t(language, "riskVerifyFailed"),
|
|
189
|
+
});
|
|
153
190
|
}
|
|
154
|
-
else if (phase ===
|
|
155
|
-
risks.push({
|
|
191
|
+
else if (phase === "verify" && !fileExists(changeDir, "test-report.md")) {
|
|
192
|
+
risks.push({
|
|
193
|
+
level: "warning",
|
|
194
|
+
code: "TEST_REPORT_MISSING",
|
|
195
|
+
message: t(language, "riskTestReportMissing"),
|
|
196
|
+
});
|
|
156
197
|
}
|
|
157
|
-
for (const artifact of [
|
|
198
|
+
for (const artifact of ["proposal.md", "design.md", "tests.md"]) {
|
|
158
199
|
if (!fileExists(changeDir, artifact)) {
|
|
159
200
|
risks.push({
|
|
160
|
-
level:
|
|
161
|
-
code:
|
|
162
|
-
message: language ===
|
|
201
|
+
level: "info",
|
|
202
|
+
code: "ARTIFACT_MISSING",
|
|
203
|
+
message: language === "en" ? `Missing ${artifact}.` : `缺少 ${artifact}。`,
|
|
163
204
|
});
|
|
164
205
|
}
|
|
165
206
|
}
|
|
166
207
|
return risks;
|
|
167
208
|
}
|
|
168
209
|
function printStatus(result, language) {
|
|
169
|
-
if (result.changes.length === 0) {
|
|
170
|
-
console.log(t(language,
|
|
210
|
+
if (result.changes.length === 0 && result.managedTasks.length === 0) {
|
|
211
|
+
console.log(t(language, "noActiveChanges"));
|
|
171
212
|
return;
|
|
172
213
|
}
|
|
173
|
-
|
|
214
|
+
if (result.managedTasks.length > 0) {
|
|
215
|
+
const service = result.managedService
|
|
216
|
+
? `${managedText(language, result.managedService.running ? "运行中" : "未运行", result.managedService.running ? "running" : "stopped")} (PID ${result.managedService.pid})`
|
|
217
|
+
: managedText(language, "未启动", "not started");
|
|
218
|
+
console.log(managedText(language, `托管任务 (${result.projectPath}) | 后台服务:${service}\n`, `Managed tasks (${result.projectPath}) | background service: ${service}\n`));
|
|
219
|
+
for (const task of result.managedTasks) {
|
|
220
|
+
console.log(`- ${task.taskId}: ${task.status} | ${task.profile} | ${task.currentStep}`);
|
|
221
|
+
console.log(managedText(language, ` 轮次 ${task.reviewRound}/${task.maxReviewRounds} | 执行 ${task.executorInvocations}/${task.maxExecutorInvocations} | 总调用 ${task.totalAgentInvocations}/${task.maxTotalAgentInvocations}`, ` reviews ${task.reviewRound}/${task.maxReviewRounds} | executor ${task.executorInvocations}/${task.maxExecutorInvocations} | total calls ${task.totalAgentInvocations}/${task.maxTotalAgentInvocations}`));
|
|
222
|
+
console.log(managedText(language, ` 会话:监督=${task.supervisorSession},执行=${task.executorSession}`, ` sessions: supervisor=${task.supervisorSession}, executor=${task.executorSession}`));
|
|
223
|
+
if (task.blocker) {
|
|
224
|
+
console.log(managedText(language, ` 阻塞:${task.blocker}`, ` blocker: ${task.blocker}`));
|
|
225
|
+
}
|
|
226
|
+
if (task.taskPrompt) {
|
|
227
|
+
console.log(managedText(language, ` 任务 Prompt:${task.taskPrompt}`, ` task prompt: ${task.taskPrompt}`));
|
|
228
|
+
}
|
|
229
|
+
console.log(managedText(language, ` 进度:${task.progressPath}`, ` progress: ${task.progressPath}`));
|
|
230
|
+
console.log(managedText(language, ` 报告:${task.reportPath}`, ` report: ${task.reportPath}`));
|
|
231
|
+
}
|
|
232
|
+
if (result.changes.length > 0)
|
|
233
|
+
console.log("");
|
|
234
|
+
}
|
|
235
|
+
if (result.changes.length > 0) {
|
|
236
|
+
console.log(`${t(language, "statusHeader")} (${result.projectPath}):\n`);
|
|
237
|
+
}
|
|
174
238
|
for (const change of result.changes) {
|
|
175
239
|
const tasks = change.tasksTotal > 0
|
|
176
240
|
? ` | tasks ${change.tasksCompleted}/${change.tasksTotal}`
|
|
177
|
-
:
|
|
178
|
-
const docGap = change.docGaps > 0
|
|
241
|
+
: "";
|
|
242
|
+
const docGap = change.docGaps > 0
|
|
243
|
+
? managedText(language, ` 📋缺${change.docGaps}文档`, ` 📋${change.docGaps} docs missing`)
|
|
244
|
+
: "";
|
|
179
245
|
console.log(`- ${change.name}: phase=${change.phase}, workflow=${change.workflow}, review=${change.reviewMode}, auto=${change.autoTransition}${tasks}${docGap}`);
|
|
180
246
|
console.log(` path: ${change.path}`);
|
|
181
247
|
if (change.nextCommand)
|
|
@@ -186,7 +252,63 @@ function printStatus(result, language) {
|
|
|
186
252
|
}
|
|
187
253
|
}
|
|
188
254
|
}
|
|
189
|
-
function
|
|
190
|
-
|
|
255
|
+
function collectManagedTasks(projectPath, language) {
|
|
256
|
+
const registry = loadRegistry();
|
|
257
|
+
return registry.tasks
|
|
258
|
+
.filter((entry) => canonicalPath(entry.projectRoot) === canonicalPath(projectPath))
|
|
259
|
+
.map((entry) => {
|
|
260
|
+
try {
|
|
261
|
+
const state = loadManagedRun(entry.projectRoot, entry.taskId, entry.activeRunId);
|
|
262
|
+
const task = JSON.parse(readFileSync(path.join(entry.projectRoot, ".superflow", "tasks", entry.taskId, "task.json"), "utf-8"));
|
|
263
|
+
const runDir = managedRunDir(entry.projectRoot, entry.taskId, entry.activeRunId);
|
|
264
|
+
return {
|
|
265
|
+
taskId: entry.taskId,
|
|
266
|
+
profile: entry.profile,
|
|
267
|
+
status: state.status,
|
|
268
|
+
currentStep: state.currentStep,
|
|
269
|
+
reviewRound: state.reviewRound,
|
|
270
|
+
maxReviewRounds: task.budgets.maxReviewRounds,
|
|
271
|
+
executorInvocations: state.executorInvocations,
|
|
272
|
+
maxExecutorInvocations: task.budgets.maxExecutorInvocations,
|
|
273
|
+
totalAgentInvocations: state.totalAgentInvocations,
|
|
274
|
+
maxTotalAgentInvocations: task.budgets.maxTotalAgentInvocations,
|
|
275
|
+
supervisorSession: shortSession(state.supervisorSession.sessionId),
|
|
276
|
+
executorSession: shortSession(state.executorSession.sessionId),
|
|
277
|
+
blocker: state.blocker,
|
|
278
|
+
taskPrompt: task.taskPrompt?.originalPath ?? null,
|
|
279
|
+
progressPath: path.join(runDir, "progress.md"),
|
|
280
|
+
reportPath: path.join(runDir, "task-report.md"),
|
|
281
|
+
updatedAt: state.updatedAt,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return {
|
|
286
|
+
taskId: entry.taskId,
|
|
287
|
+
profile: entry.profile,
|
|
288
|
+
status: "state_missing",
|
|
289
|
+
currentStep: "recover_required",
|
|
290
|
+
reviewRound: 0,
|
|
291
|
+
maxReviewRounds: 0,
|
|
292
|
+
executorInvocations: 0,
|
|
293
|
+
maxExecutorInvocations: 0,
|
|
294
|
+
totalAgentInvocations: 0,
|
|
295
|
+
maxTotalAgentInvocations: 0,
|
|
296
|
+
supervisorSession: "--",
|
|
297
|
+
executorSession: "--",
|
|
298
|
+
blocker: managedText(language, "本地任务状态缺失,需要恢复检查", "Local task state is missing; recovery is required"),
|
|
299
|
+
taskPrompt: null,
|
|
300
|
+
progressPath: "",
|
|
301
|
+
reportPath: "",
|
|
302
|
+
updatedAt: entry.updatedAt,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
function shortSession(sessionId) {
|
|
308
|
+
return sessionId?.slice(0, 8) ?? "--";
|
|
309
|
+
}
|
|
310
|
+
function canonicalPath(value) {
|
|
311
|
+
const resolved = path.resolve(value);
|
|
312
|
+
return existsSync(resolved) ? realpathSync(resolved) : resolved;
|
|
191
313
|
}
|
|
192
314
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/app/commands/status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/app/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { parseAgentSelection, parseInstallScope, resolveAgents, } from '../../do
|
|
|
7
7
|
import { rulePath } from '../../domains/skill/rules.js';
|
|
8
8
|
import { clearSddHooks } from '../../domains/hook.js';
|
|
9
9
|
import { runCommand } from '../../platform/process.js';
|
|
10
|
+
import { CODEX_SUPERPOWERS_PLUGIN } from '../../domains/deps.js';
|
|
10
11
|
const LEGACY_SKILLS = [
|
|
11
12
|
'sdd-archive',
|
|
12
13
|
'sdd-clarify',
|
|
@@ -179,7 +180,9 @@ function removeSkillWithBackups(skillsDir, skill, dryRun, removed, quiet = false
|
|
|
179
180
|
function dependencyUninstallCommands(agents, withDeps) {
|
|
180
181
|
return withDeps
|
|
181
182
|
? [
|
|
182
|
-
agents.includes('codex')
|
|
183
|
+
agents.includes('codex')
|
|
184
|
+
? `codex plugin remove ${CODEX_SUPERPOWERS_PLUGIN}`
|
|
185
|
+
: null,
|
|
183
186
|
agents.includes('codex') ? 'bash ~/.understand-anything/repo/install.sh --uninstall codex' : null,
|
|
184
187
|
agents.includes('claude') ? 'claude plugin remove superpowers@superpowers-marketplace' : null,
|
|
185
188
|
agents.includes('claude') ? 'claude plugin remove understand-anything@understand-anything' : null,
|
|
@@ -189,7 +192,7 @@ function dependencyUninstallCommands(agents, withDeps) {
|
|
|
189
192
|
}
|
|
190
193
|
async function uninstallDependencies(agents, dryRun) {
|
|
191
194
|
if (agents.includes('codex')) {
|
|
192
|
-
await maybeRun('codex superpowers', 'codex', ['plugin', 'remove',
|
|
195
|
+
await maybeRun('codex superpowers', 'codex', ['plugin', 'remove', CODEX_SUPERPOWERS_PLUGIN], dryRun);
|
|
193
196
|
await maybeRun('codex understand-anything', 'bash', [path.join(homedir(), '.understand-anything', 'repo', 'install.sh'), '--uninstall', 'codex'], dryRun);
|
|
194
197
|
}
|
|
195
198
|
if (agents.includes('claude')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/app/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/app/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,17 @@ import { deploySkill } from '../../domains/skill/deploy.js';
|
|
|
9
9
|
import { deployPrompts } from '../../domains/skill/prompts.js';
|
|
10
10
|
import { clearSddHooks, registerHook } from '../../domains/hook.js';
|
|
11
11
|
import { runCommand } from '../../platform/process.js';
|
|
12
|
-
import { installCodexSuperpowers, installSuperpowers } from '../../domains/deps.js';
|
|
12
|
+
import { CODEX_SUPERPOWERS_PLUGIN, installCodexSuperpowers, installSuperpowers, } from '../../domains/deps.js';
|
|
13
13
|
import { ASSETS_DIR, PACKAGE_ROOT } from '../../platform/assets.js';
|
|
14
|
+
import { stateFile } from '../../platform/paths.js';
|
|
15
|
+
import { initState, loadState, saveState } from '../../domains/state.js';
|
|
16
|
+
import { resolveRuntimeLanguage } from '../../domains/config/cli-help.js';
|
|
17
|
+
import { managedText } from '../../domains/managed-work/i18n.js';
|
|
14
18
|
const PACKAGE_NAME = '@chenmk/superflow';
|
|
15
19
|
const OPENSPEC_PACKAGE_NAME = '@fission-ai/openspec';
|
|
16
20
|
const OFFICIAL_REGISTRY = 'https://registry.npmjs.org';
|
|
17
21
|
export async function updateCommand(options = {}) {
|
|
22
|
+
const language = resolveUpdateLanguage(options.language);
|
|
18
23
|
const agents = resolveAgents(parseAgentSelection(options.agent));
|
|
19
24
|
const projectPath = path.resolve(options.targetPath ?? process.cwd());
|
|
20
25
|
const targets = resolveUpdateTargets(projectPath, agents, options.scope);
|
|
@@ -23,7 +28,7 @@ export async function updateCommand(options = {}) {
|
|
|
23
28
|
? parseInstallScope(options.scope)
|
|
24
29
|
: detectPackageScope(projectPath);
|
|
25
30
|
const planAgents = [...new Set(targets.map((target) => target.agent))];
|
|
26
|
-
const plan = createUpdatePlan(planAgents, planScope, projectPath, !!options.withPackage, targets, packageScope);
|
|
31
|
+
const plan = createUpdatePlan(planAgents, planScope, projectPath, !!options.withPackage, targets, packageScope, language);
|
|
27
32
|
if (options.dryRun) {
|
|
28
33
|
printPlan(plan, !!options.json);
|
|
29
34
|
return;
|
|
@@ -37,7 +42,8 @@ export async function updateCommand(options = {}) {
|
|
|
37
42
|
const { agent, scope } = target;
|
|
38
43
|
const platform = getPlatformPaths(agent, scope, target.projectPath);
|
|
39
44
|
for (const skill of ALL_SKILLS) {
|
|
40
|
-
|
|
45
|
+
const skillsRoot = skillsRootForLanguage(language);
|
|
46
|
+
await deploySkill(skill, skillsRoot, platform.skillsDir, { agent });
|
|
41
47
|
}
|
|
42
48
|
await deployRules(ALL_RULES, path.join(ASSETS_DIR, 'rules'), platform.rulesDir);
|
|
43
49
|
const scripts = scriptsForAgent(agent);
|
|
@@ -58,6 +64,7 @@ export async function updateCommand(options = {}) {
|
|
|
58
64
|
}
|
|
59
65
|
}
|
|
60
66
|
}
|
|
67
|
+
persistUpdateLanguage(language, planAgents);
|
|
61
68
|
printPlan(plan, !!options.json, 'updated');
|
|
62
69
|
}
|
|
63
70
|
export function detectInstalledTargets(projectPath, agents) {
|
|
@@ -83,7 +90,7 @@ export function resolveUpdateTargets(projectPath, agents, scopeValue) {
|
|
|
83
90
|
const scope = parseInstallScope(scopeValue);
|
|
84
91
|
return agents.map((agent) => ({ agent, scope, projectPath }));
|
|
85
92
|
}
|
|
86
|
-
export function createUpdatePlan(agents, scope = 'global', projectPath = process.cwd(), withPackage = false, targets = agents.map((agent) => ({ agent, scope, projectPath })), packageScope = scope) {
|
|
93
|
+
export function createUpdatePlan(agents, scope = 'global', projectPath = process.cwd(), withPackage = false, targets = agents.map((agent) => ({ agent, scope, projectPath })), packageScope = scope, language = 'zh') {
|
|
87
94
|
const scriptNames = [...new Set(agents.flatMap((agent) => scriptsForAgent(agent)))];
|
|
88
95
|
const hookNames = [...new Set(agents.flatMap((agent) => hookScriptsForAgent(agent)))];
|
|
89
96
|
return {
|
|
@@ -99,8 +106,15 @@ export function createUpdatePlan(agents, scope = 'global', projectPath = process
|
|
|
99
106
|
rules: { total: ALL_RULES.length, names: [...ALL_RULES] },
|
|
100
107
|
scripts: { total: scriptNames.length, names: scriptNames },
|
|
101
108
|
hooks: { total: hookNames.length, names: hookNames },
|
|
109
|
+
language,
|
|
102
110
|
};
|
|
103
111
|
}
|
|
112
|
+
export function resolveUpdateLanguage(value, env = process.env, installedStateFile = stateFile) {
|
|
113
|
+
return resolveRuntimeLanguage(value, env, installedStateFile);
|
|
114
|
+
}
|
|
115
|
+
export function skillsRootForLanguage(language) {
|
|
116
|
+
return path.join(ASSETS_DIR, language === 'en' ? 'skills-en' : 'skills');
|
|
117
|
+
}
|
|
104
118
|
export function buildPackageUpdateArgs(scope) {
|
|
105
119
|
return buildNpmUpdateArgs(PACKAGE_NAME, scope);
|
|
106
120
|
}
|
|
@@ -124,7 +138,7 @@ export function formatDependencyUpdateCommands(agents, packageScope) {
|
|
|
124
138
|
commands.push('claude plugin install superpowers@superpowers-marketplace');
|
|
125
139
|
}
|
|
126
140
|
if (agents.includes('codex')) {
|
|
127
|
-
commands.push(
|
|
141
|
+
commands.push(`codex plugin add ${CODEX_SUPERPOWERS_PLUGIN}`);
|
|
128
142
|
}
|
|
129
143
|
return commands;
|
|
130
144
|
}
|
|
@@ -157,7 +171,8 @@ function printPlan(plan, json, status = 'planned') {
|
|
|
157
171
|
console.log(JSON.stringify({ status, ...plan }, null, 2));
|
|
158
172
|
return;
|
|
159
173
|
}
|
|
160
|
-
console.log(`SuperBridge Flow update ${status}: ${plan.agents.join(', ')}`);
|
|
174
|
+
console.log(managedText(plan.language, `SuperBridge Flow 更新 ${status}: ${plan.agents.join(', ')}`, `SuperBridge Flow update ${status}: ${plan.agents.join(', ')}`));
|
|
175
|
+
console.log(managedText(plan.language, `语言: ${plan.language}`, `language: ${plan.language}`));
|
|
161
176
|
if (plan.packageUpdate.enabled) {
|
|
162
177
|
console.log('packages:');
|
|
163
178
|
for (const command of plan.packageUpdate.commands) {
|
|
@@ -169,6 +184,16 @@ function printPlan(plan, json, status = 'planned') {
|
|
|
169
184
|
console.log(`scripts: ${plan.scripts.total}`);
|
|
170
185
|
console.log(`hooks: ${plan.hooks.total}`);
|
|
171
186
|
}
|
|
187
|
+
function persistUpdateLanguage(language, agents) {
|
|
188
|
+
let state = loadState(stateFile);
|
|
189
|
+
if (!state) {
|
|
190
|
+
const packageJson = JSON.parse(readFileSync(path.join(PACKAGE_ROOT, 'package.json'), 'utf-8'));
|
|
191
|
+
state = initState(packageJson.version ?? 'unknown', agents[0] ?? 'claude', language);
|
|
192
|
+
}
|
|
193
|
+
state.language = language;
|
|
194
|
+
state.lastInit = new Date().toISOString();
|
|
195
|
+
saveState(stateFile, state);
|
|
196
|
+
}
|
|
172
197
|
async function updateNpmPackage(packageName, scope, label) {
|
|
173
198
|
const npmResult = await runCommand('npm', buildNpmUpdateArgs(packageName, scope));
|
|
174
199
|
if (npmResult.code !== 0) {
|