@chenmk/superflow 0.2.5 → 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.
Files changed (116) hide show
  1. package/README.md +24 -2
  2. package/README.zh-CN.md +17 -1
  3. package/assets/manifest.json +7 -4
  4. package/assets/prompts/superflow-clarify.md +6 -0
  5. package/assets/prompts/superflow-design.md +3 -0
  6. package/assets/prompts/superflow-docs.md +4 -1
  7. package/assets/prompts/superflow-pipeline.md +8 -0
  8. package/assets/scripts/superflow-archive-command-hook.sh +80 -0
  9. package/assets/scripts/superflow-delivery-check.sh +23 -4
  10. package/assets/scripts/superflow-dependency-update-hook.sh +1 -1
  11. package/assets/scripts/superflow-managed-work-check.mjs +194 -0
  12. package/assets/scripts/superflow-managed-work-guard.sh +103 -0
  13. package/assets/skills/openspec-propose/SKILL.md +11 -0
  14. package/assets/skills/superflow-archive/SKILL.md +5 -0
  15. package/assets/skills/superflow-clarify/SKILL.md +26 -7
  16. package/assets/skills/superflow-design/SKILL.md +38 -7
  17. package/assets/skills/superflow-docs/SKILL.md +27 -0
  18. package/assets/skills/superflow-pipeline/SKILL.md +75 -0
  19. package/assets/skills/superflow-pipeline/references/api-design-template.md +11 -0
  20. package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +27 -0
  21. package/assets/skills/superflow-pipeline/references/document-templates.md +8 -0
  22. package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +29 -1
  23. package/assets/skills/superflow-pipeline/references/managed-work.md +58 -0
  24. package/assets/skills/superflow-pipeline/references/quality-gate.md +3 -0
  25. package/assets/skills/superflow-pipeline/references/superpower-technical-design-template.md +51 -0
  26. package/assets/skills/superflow-pipeline/references/test-execution-template.md +10 -0
  27. package/assets/skills/superflow-pipeline/scripts/superflow-archive.sh +1 -1
  28. package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +215 -2
  29. package/assets/skills/superflow-verify/SKILL.md +7 -0
  30. package/assets/skills-en/openspec-propose/SKILL.md +14 -0
  31. package/assets/skills-en/superflow-archive/SKILL.md +6 -0
  32. package/assets/skills-en/superflow-clarify/SKILL.md +26 -7
  33. package/assets/skills-en/superflow-design/SKILL.md +38 -6
  34. package/assets/skills-en/superflow-docs/SKILL.md +27 -0
  35. package/assets/skills-en/superflow-pipeline/SKILL.md +76 -0
  36. package/assets/skills-en/superflow-pipeline/references/api-design-template.md +13 -0
  37. package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +16 -0
  38. package/assets/skills-en/superflow-pipeline/references/document-templates.md +5 -0
  39. package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +17 -0
  40. package/assets/skills-en/superflow-pipeline/references/managed-work.md +34 -0
  41. package/assets/skills-en/superflow-pipeline/references/quality-gate.md +25 -0
  42. package/assets/skills-en/superflow-pipeline/references/superpower-technical-design-template.md +57 -0
  43. package/assets/skills-en/superflow-pipeline/references/test-execution-template.md +12 -0
  44. package/assets/skills-en/superflow-pipeline/scripts/superflow-archive.sh +1 -1
  45. package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +214 -2
  46. package/assets/skills-en/superflow-verify/SKILL.md +8 -0
  47. package/dist/app/cli.js +120 -102
  48. package/dist/app/cli.js.map +1 -1
  49. package/dist/app/commands/archive.js +7 -3
  50. package/dist/app/commands/archive.js.map +1 -1
  51. package/dist/app/commands/change-guard.js +27 -0
  52. package/dist/app/commands/change-guard.js.map +1 -0
  53. package/dist/app/commands/design.js +2 -20
  54. package/dist/app/commands/design.js.map +1 -1
  55. package/dist/app/commands/init.js +7 -7
  56. package/dist/app/commands/init.js.map +1 -1
  57. package/dist/app/commands/managed-service.js +5 -0
  58. package/dist/app/commands/managed-service.js.map +1 -0
  59. package/dist/app/commands/pipeline.js +123 -3
  60. package/dist/app/commands/pipeline.js.map +1 -1
  61. package/dist/app/commands/status.js +199 -77
  62. package/dist/app/commands/status.js.map +1 -1
  63. package/dist/app/commands/uninstall.js +5 -2
  64. package/dist/app/commands/uninstall.js.map +1 -1
  65. package/dist/app/commands/update.js +33 -11
  66. package/dist/app/commands/update.js.map +1 -1
  67. package/dist/app/commands/verify.js +7 -3
  68. package/dist/app/commands/verify.js.map +1 -1
  69. package/dist/domains/config/cli-help.js +103 -73
  70. package/dist/domains/config/cli-help.js.map +1 -1
  71. package/dist/domains/config/context.js +1 -5
  72. package/dist/domains/config/context.js.map +1 -1
  73. package/dist/domains/deps.js +3 -6
  74. package/dist/domains/deps.js.map +1 -1
  75. package/dist/domains/hook.js +71 -37
  76. package/dist/domains/hook.js.map +1 -1
  77. package/dist/domains/managed-work/contract.js +218 -0
  78. package/dist/domains/managed-work/contract.js.map +1 -0
  79. package/dist/domains/managed-work/i18n.js +12 -0
  80. package/dist/domains/managed-work/i18n.js.map +1 -0
  81. package/dist/domains/managed-work/input.js +111 -0
  82. package/dist/domains/managed-work/input.js.map +1 -0
  83. package/dist/domains/managed-work/journal.js +122 -0
  84. package/dist/domains/managed-work/journal.js.map +1 -0
  85. package/dist/domains/managed-work/lock.js +40 -0
  86. package/dist/domains/managed-work/lock.js.map +1 -0
  87. package/dist/domains/managed-work/notifications.js +53 -0
  88. package/dist/domains/managed-work/notifications.js.map +1 -0
  89. package/dist/domains/managed-work/paths.js +18 -0
  90. package/dist/domains/managed-work/paths.js.map +1 -0
  91. package/dist/domains/managed-work/prompts.js +218 -0
  92. package/dist/domains/managed-work/prompts.js.map +1 -0
  93. package/dist/domains/managed-work/runner.js +626 -0
  94. package/dist/domains/managed-work/runner.js.map +1 -0
  95. package/dist/domains/managed-work/schemas.js +85 -0
  96. package/dist/domains/managed-work/schemas.js.map +1 -0
  97. package/dist/domains/managed-work/service.js +121 -0
  98. package/dist/domains/managed-work/service.js.map +1 -0
  99. package/dist/domains/managed-work/state.js +90 -0
  100. package/dist/domains/managed-work/state.js.map +1 -0
  101. package/dist/domains/managed-work/storage.js +181 -0
  102. package/dist/domains/managed-work/storage.js.map +1 -0
  103. package/dist/domains/managed-work/types.js +16 -0
  104. package/dist/domains/managed-work/types.js.map +1 -0
  105. package/dist/domains/managed-work/wait.js +40 -0
  106. package/dist/domains/managed-work/wait.js.map +1 -0
  107. package/dist/platform/agent-process.js +308 -0
  108. package/dist/platform/agent-process.js.map +1 -0
  109. package/dist/platform/assets.js +9 -0
  110. package/dist/platform/assets.js.map +1 -0
  111. package/dist/platform/process-liveness.js +10 -0
  112. package/dist/platform/process-liveness.js.map +1 -0
  113. package/dist/platform/version-check.js +30 -9
  114. package/dist/platform/version-check.js.map +1 -1
  115. package/package.json +3 -2
  116. package/scripts/release-notes-check.js +102 -0
@@ -1,52 +1,64 @@
1
- import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
2
- import path from 'path';
3
- import { normalizeLanguage, t } from '../../domains/config/i18n.js';
4
- import { collectCheck } from './check.js';
5
- export async function statusCommand(targetPath = '.', options = {}) {
6
- const result = await collectStatus(targetPath);
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, resolveLanguage());
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, 'openspec', 'changes');
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, '.sdd', 'state.yaml');
35
+ const statePath = path.join(changeDir, ".sdd", "state.yaml");
24
36
  if (!existsSync(statePath))
25
37
  continue;
26
- const state = parseSimpleYaml(readFileSync(statePath, 'utf-8'));
27
- if (state.archived === 'true' || state.phase === 'done')
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, 'tasks.md'));
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 ?? 'full',
35
- phase: state.phase ?? 'unknown',
36
- buildMode: state.build_mode ?? 'null',
37
- reviewMode: state.review_mode ?? 'null',
38
- autoTransition: state.auto_transition ?? 'true',
39
- verifyMode: state.verify_mode ?? 'null',
40
- verifyResult: state.verify_result ?? 'pending',
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, resolveLanguage()),
45
- risks: buildRisks(changeDir, state, tasks, resolveLanguage()),
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, 'utf-8').split(/\r?\n/);
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 'docs':
90
+ case "docs":
79
91
  return `superflow docs ${change}`;
80
- case 'design':
92
+ case "design":
81
93
  return `superflow design ${change}`;
82
- case 'implement':
94
+ case "implement":
83
95
  return `superflow implement ${change}`;
84
- case 'verify':
96
+ case "verify":
85
97
  return `superflow verify ${change}`;
86
- case 'archive':
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 === 'fail')
94
- return t(language, 'nextVerifyFailed');
105
+ if (verifyResult === "fail")
106
+ return t(language, "nextVerifyFailed");
95
107
  switch (phase) {
96
- case 'docs':
97
- return t(language, 'nextDocs');
98
- case 'design':
99
- return t(language, 'nextDesign');
100
- case 'implement': {
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 === 'en'
115
+ return language === "en"
104
116
  ? `Current phase is implement. ${remaining} task(s) remain.`
105
117
  : `当前处于 implement 阶段,还有 ${remaining} 个任务未完成。`;
106
118
  }
107
- return t(language, 'nextImplementDone');
119
+ return t(language, "nextImplementDone");
108
120
  }
109
- case 'verify':
110
- return t(language, 'nextVerify');
111
- case 'archive':
112
- return t(language, 'nextArchive');
121
+ case "verify":
122
+ return t(language, "nextVerify");
123
+ case "archive":
124
+ return t(language, "nextArchive");
113
125
  default:
114
- return t(language, 'nextUnknown');
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 ?? 'unknown';
120
- if (phase === 'unknown') {
121
- risks.push({ level: 'warning', code: 'UNKNOWN_PHASE', message: t(language, 'riskUnknownPhase') });
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, 'tasks.md')) {
124
- risks.push({ level: 'warning', code: 'TASKS_MISSING', message: t(language, 'riskTasksMissing') });
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 === 'implement' && tasks.done < tasks.total) {
146
+ else if (phase === "implement" && tasks.done < tasks.total) {
127
147
  const remaining = tasks.total - tasks.done;
128
148
  risks.push({
129
- level: 'warning',
130
- code: 'TASKS_INCOMPLETE',
131
- message: language === 'en' ? `${remaining} task(s) remain.` : `仍有 ${remaining} 个任务未完成。`,
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 ?? 'full') === 'full' && (state.review_mode ?? 'null') === 'null') {
135
- risks.push({ level: 'warning', code: 'REVIEW_MODE_MISSING', message: t(language, 'riskReviewMissing') });
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 ?? 'true') === 'false') {
138
- risks.push({ level: 'info', code: 'AUTO_TRANSITION_OFF', message: language === 'en' ? 'auto_transition is off; manual trigger required.' : 'auto_transition 已关闭,需手动推进阶段。' });
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: 'error',
145
- code: 'DOCS_INCOMPLETE',
146
- message: language === 'en'
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 === 'fail') {
152
- risks.push({ level: 'error', code: 'VERIFY_FAILED', message: t(language, 'riskVerifyFailed') });
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 === 'verify' && !fileExists(changeDir, 'test-report.md')) {
155
- risks.push({ level: 'warning', code: 'TEST_REPORT_MISSING', message: t(language, 'riskTestReportMissing') });
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 ['proposal.md', 'design.md', 'tests.md']) {
198
+ for (const artifact of ["proposal.md", "design.md", "tests.md"]) {
158
199
  if (!fileExists(changeDir, artifact)) {
159
200
  risks.push({
160
- level: 'info',
161
- code: 'ARTIFACT_MISSING',
162
- message: language === 'en' ? `Missing ${artifact}.` : `缺少 ${artifact}。`,
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, 'noActiveChanges'));
210
+ if (result.changes.length === 0 && result.managedTasks.length === 0) {
211
+ console.log(t(language, "noActiveChanges"));
171
212
  return;
172
213
  }
173
- console.log(`${t(language, 'statusHeader')} (${result.projectPath}):\n`);
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 ? ` 📋缺${change.docGaps}文档` : '';
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 resolveLanguage() {
190
- return normalizeLanguage(process.env.SUPERFLOW_LANGUAGE) ?? 'zh';
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":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,MAAM,IAAI,CAAC;AACZ,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,8BAA8B,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EACL,cAAc,EACd,YAAY,GACb,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAmDpE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAU,GAAG,GAAG,EAChB,UAAkD,EAAE;IAEpD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAU,GAAG,GAAG,EAChB,WAAqB,IAAI;IAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,OAAO;QAC5B,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC5D,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC1B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;IAEhE,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QAErC,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;YAAE,SAAS;QAClE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEhD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;YAC3C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,MAAM;YAClC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS;YAC/B,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,MAAM;YACrC,UAAU,EAAE,KAAK,CAAC,WAAW,IAAI,MAAM;YACvC,cAAc,EAAE,KAAK,CAAC,eAAe,IAAI,MAAM;YAC/C,UAAU,EAAE,KAAK,CAAC,WAAW,IAAI,MAAM;YACvC,YAAY,EAAE,KAAK,CAAC,aAAa,IAAI,SAAS;YAC9C,cAAc,EAAE,KAAK,CAAC,IAAI;YAC1B,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;YAC5C,UAAU,EAAE,UAAU,CACpB,KAAK,CAAC,KAAK,EACX,KAAK,EACL,KAAK,CAAC,aAAa,EACnB,QAAQ,CACT;YACD,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;YACpD,OAAO,EAAE,QAAQ,CAAC,MAAM;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB,EAAE,IAAY;IACjD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/D,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACvD,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACzD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAClE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,KAAyB;IAC5D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,kBAAkB,MAAM,EAAE,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,oBAAoB,MAAM,EAAE,CAAC;QACtC,KAAK,WAAW;YACd,OAAO,uBAAuB,MAAM,EAAE,CAAC;QACzC,KAAK,QAAQ;YACX,OAAO,oBAAoB,MAAM,EAAE,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,qBAAqB,MAAM,EAAE,CAAC;QACvC;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,KAAyB,EACzB,KAAsC,EACtC,YAAgC,EAChC,QAAkB;IAElB,IAAI,YAAY,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACpE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnC,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,QAAQ,KAAK,IAAI;oBACtB,CAAC,CAAC,+BAA+B,SAAS,kBAAkB;oBAC5D,CAAC,CAAC,wBAAwB,SAAS,UAAU,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnC,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACpC;YACE,OAAO,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,SAAiB,EACjB,KAA6B,EAC7B,KAAsC,EACtC,QAAkB;IAElB,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;IAEvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EACL,QAAQ,KAAK,IAAI;gBACf,CAAC,CAAC,GAAG,SAAS,kBAAkB;gBAChC,CAAC,CAAC,MAAM,SAAS,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;IACD,IACE,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,MAAM;QACrC,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,MAAM,EACxC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,mBAAmB,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EACL,QAAQ,KAAK,IAAI;gBACf,CAAC,CAAC,kDAAkD;gBACpD,CAAC,CAAC,8BAA8B;SACrC,CAAC,CAAC;IACL,CAAC;IACD,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,iBAAiB;YACvB,OAAO,EACL,QAAQ,KAAK,IAAI;gBACf,CAAC,CAAC,WAAW,QAAQ,CAAC,MAAM,0DAA0D;gBACtF,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,0CAA0C;SACtE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,CAAU,EAAE,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EACL,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,QAAQ,GAAG;aACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB,EAAE,QAAkB;IAC3D,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc;YACnC,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,CAAC,cAAc,CAAC,GAAG,GAAG;YACrK,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,WAAW,CACT,QAAQ,EACR,SAAS,MAAM,CAAC,WAAW,YAAY,OAAO,IAAI,EAClD,kBAAkB,MAAM,CAAC,WAAW,2BAA2B,OAAO,IAAI,CAC3E,CACF,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAC3E,CAAC;YACF,OAAO,CAAC,GAAG,CACT,WAAW,CACT,QAAQ,EACR,QAAQ,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,SAAS,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,sBAAsB,UAAU,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,wBAAwB,EAAE,EACvL,aAAa,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,eAAe,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,sBAAsB,kBAAkB,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAC3M,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CACT,WAAW,CACT,QAAQ,EACR,WAAW,IAAI,CAAC,iBAAiB,OAAO,IAAI,CAAC,eAAe,EAAE,EAC9D,0BAA0B,IAAI,CAAC,iBAAiB,cAAc,IAAI,CAAC,eAAe,EAAE,CACrF,CACF,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,UAAU,EAAE,EAAE,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC5G,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACpG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,MAAM,CAAC,WAAW,MAAM,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GACT,MAAM,CAAC,UAAU,GAAG,CAAC;YACnB,CAAC,CAAC,YAAY,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,UAAU,EAAE;YAC1D,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC;YAC/B,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,MAAM,CAAC,OAAO,IAAI,EAAE,MAAM,MAAM,CAAC,OAAO,eAAe,CAAC;YACvF,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,KAAK,cAAc,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,UAAU,UAAU,MAAM,CAAC,cAAc,GAAG,KAAK,GAAG,MAAM,EAAE,CACpJ,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAAmB,EACnB,QAAkB;IAElB,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,OAAO,QAAQ,CAAC,KAAK;SAClB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;SAClF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,cAAc,CAC1B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACrB,YAAY,CACV,IAAI,CAAC,IAAI,CACP,KAAK,CAAC,WAAW,EACjB,YAAY,EACZ,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,WAAW,CACZ,EACD,OAAO,CACR,CAQF,CAAC;YACF,MAAM,MAAM,GAAG,aAAa,CAC1B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;gBAC7C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB;gBAC3D,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;gBAClD,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,wBAAwB;gBAC/D,iBAAiB,EAAE,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBAClE,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC;gBAC9D,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,IAAI;gBACjD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;gBAC9C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAC/C,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE,CAAC;gBACd,eAAe,EAAE,CAAC;gBAClB,mBAAmB,EAAE,CAAC;gBACtB,sBAAsB,EAAE,CAAC;gBACzB,qBAAqB,EAAE,CAAC;gBACxB,wBAAwB,EAAE,CAAC;gBAC3B,iBAAiB,EAAE,IAAI;gBACvB,eAAe,EAAE,IAAI;gBACrB,OAAO,EAAE,WAAW,CAClB,QAAQ,EACR,iBAAiB,EACjB,mDAAmD,CACpD;gBACD,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,SAAwB;IAC5C,OAAO,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC"}
@@ -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') ? 'codex plugin remove superpowers@openai-curated' : null,
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', 'superpowers@openai-curated'], dryRun);
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;AAKvD,MAAM,aAAa,GAAG;IACpB,aAAa;IACb,aAAa;IACb,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,eAAe;IACf,mBAAmB;IACnB,2BAA2B;IAC3B,WAAW;IACX,YAAY;CACb,CAAC;AA0BF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAQnC,EAAE;IACJ,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnH,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,MAAM;QACN,KAAK;QACL,WAAW;QACX,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;QACxB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;QAC5B,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;QACrB,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,mBAAmB,WAAW,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAQlC;IACC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,uBAAuB,CACxD,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAiB,EACzB,OAAO,CAAC,KAAK,CACd,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAClF,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,mBAAmB,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC;YACtD,sBAAsB,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9F,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1F,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC5D,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,aAAa,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC;gBACjE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO;QACP,mBAAmB;QACnB,kBAAkB;QAClB,OAAO;QACP,OAAO,EAAE;YACP,gBAAgB,EAAE,OAAO,CAAC,MAAM;YAChC,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,mBAAmB;YAClD,wBAAwB,EAAE,mBAAmB;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAgB,EAChB,QAAiB,EACjB,QAAwB,QAAQ,EAChC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAC3B,aAAiC;IAUjC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,aAAa,IAAI,uBAAuB,CAC7D,WAAW,EACX,MAAiB,EACjB,KAAK,CACN,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC5D,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,aAAa,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,WAAmB,EACnB,MAAe;IAEf,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAmB,EAAE,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC7D,MAAM,QAAQ,GACZ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;gBAC3E,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACvD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CACnD,CAAC;YACF,MAAM,SAAS,GAAG,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,CAAC;gBAC3D,CAAC,GAAG,aAAa,EAAE,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CACnD,CAAC;YACJ,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,uBAAuB,CAC9B,WAAmB,EACnB,MAAe,EACf,KAAqB;IAErB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,+BAA+B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CACjB,MAAc,EACd,MAAe,EACf,OAAkB,EAClB,KAAK,GAAG,KAAK;IAEb,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAAiB,EACjB,KAAa,EACb,MAAe,EACf,OAAkB,EAClB,KAAK,GAAG,KAAK;IAEb,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC;YAAE,SAAS;QACzD,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAgB,EAAE,QAAiB;IACtE,OAAO,QAAQ;QACb,CAAC,CAAC;YACE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,IAAI;YAClF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI;YACjG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,IAAI;YAC7F,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,IAAI;YACjG,uCAAuC;SACxC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,MAAgB,EAAE,MAAe;IACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,CACZ,mBAAmB,EACnB,OAAO,EACP,CAAC,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,CAAC,EAClD,MAAM,CACP,CAAC;QACF,MAAM,QAAQ,CACZ,2BAA2B,EAC3B,MAAM,EACN,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAC5F,MAAM,CACP,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,CACZ,oBAAoB,EACpB,QAAQ,EACR,CAAC,QAAQ,EAAE,QAAQ,EAAE,qCAAqC,CAAC,EAC3D,MAAM,CACP,CAAC;QACF,MAAM,QAAQ,CACZ,4BAA4B,EAC5B,QAAQ,EACR,CAAC,QAAQ,EAAE,QAAQ,EAAE,yCAAyC,CAAC,EAC/D,MAAM,CACP,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,KAAa,EAAE,OAAe,EAAE,IAAc,EAAE,MAAe;IACrF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/app/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import path from 'path';
2
- import { fileURLToPath } from 'url';
3
2
  import { existsSync, readFileSync } from 'fs';
4
3
  import { ALL_RULES, ALL_SKILLS, CODEX_PROMPTS, hookScriptsForAgent, scriptsForAgent, } from '../../domains/skill/assets.js';
5
4
  import { getPlatformPaths } from '../../platform/paths.js';
@@ -10,14 +9,17 @@ import { deploySkill } from '../../domains/skill/deploy.js';
10
9
  import { deployPrompts } from '../../domains/skill/prompts.js';
11
10
  import { clearSddHooks, registerHook } from '../../domains/hook.js';
12
11
  import { runCommand } from '../../platform/process.js';
13
- import { installCodexSuperpowers, installSuperpowers } from '../../domains/deps.js';
14
- const __filename = fileURLToPath(import.meta.url);
15
- const __dirname = path.dirname(__filename);
16
- const ASSETS_DIR = path.resolve(__dirname, '..', '..', 'assets');
12
+ import { CODEX_SUPERPOWERS_PLUGIN, installCodexSuperpowers, installSuperpowers, } from '../../domains/deps.js';
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';
17
18
  const PACKAGE_NAME = '@chenmk/superflow';
18
19
  const OPENSPEC_PACKAGE_NAME = '@fission-ai/openspec';
19
20
  const OFFICIAL_REGISTRY = 'https://registry.npmjs.org';
20
21
  export async function updateCommand(options = {}) {
22
+ const language = resolveUpdateLanguage(options.language);
21
23
  const agents = resolveAgents(parseAgentSelection(options.agent));
22
24
  const projectPath = path.resolve(options.targetPath ?? process.cwd());
23
25
  const targets = resolveUpdateTargets(projectPath, agents, options.scope);
@@ -26,7 +28,7 @@ export async function updateCommand(options = {}) {
26
28
  ? parseInstallScope(options.scope)
27
29
  : detectPackageScope(projectPath);
28
30
  const planAgents = [...new Set(targets.map((target) => target.agent))];
29
- const plan = createUpdatePlan(planAgents, planScope, projectPath, !!options.withPackage, targets, packageScope);
31
+ const plan = createUpdatePlan(planAgents, planScope, projectPath, !!options.withPackage, targets, packageScope, language);
30
32
  if (options.dryRun) {
31
33
  printPlan(plan, !!options.json);
32
34
  return;
@@ -40,7 +42,8 @@ export async function updateCommand(options = {}) {
40
42
  const { agent, scope } = target;
41
43
  const platform = getPlatformPaths(agent, scope, target.projectPath);
42
44
  for (const skill of ALL_SKILLS) {
43
- await deploySkill(skill, path.join(ASSETS_DIR, 'skills'), platform.skillsDir, { agent });
45
+ const skillsRoot = skillsRootForLanguage(language);
46
+ await deploySkill(skill, skillsRoot, platform.skillsDir, { agent });
44
47
  }
45
48
  await deployRules(ALL_RULES, path.join(ASSETS_DIR, 'rules'), platform.rulesDir);
46
49
  const scripts = scriptsForAgent(agent);
@@ -61,6 +64,7 @@ export async function updateCommand(options = {}) {
61
64
  }
62
65
  }
63
66
  }
67
+ persistUpdateLanguage(language, planAgents);
64
68
  printPlan(plan, !!options.json, 'updated');
65
69
  }
66
70
  export function detectInstalledTargets(projectPath, agents) {
@@ -86,7 +90,7 @@ export function resolveUpdateTargets(projectPath, agents, scopeValue) {
86
90
  const scope = parseInstallScope(scopeValue);
87
91
  return agents.map((agent) => ({ agent, scope, projectPath }));
88
92
  }
89
- 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') {
90
94
  const scriptNames = [...new Set(agents.flatMap((agent) => scriptsForAgent(agent)))];
91
95
  const hookNames = [...new Set(agents.flatMap((agent) => hookScriptsForAgent(agent)))];
92
96
  return {
@@ -102,8 +106,15 @@ export function createUpdatePlan(agents, scope = 'global', projectPath = process
102
106
  rules: { total: ALL_RULES.length, names: [...ALL_RULES] },
103
107
  scripts: { total: scriptNames.length, names: scriptNames },
104
108
  hooks: { total: hookNames.length, names: hookNames },
109
+ language,
105
110
  };
106
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
+ }
107
118
  export function buildPackageUpdateArgs(scope) {
108
119
  return buildNpmUpdateArgs(PACKAGE_NAME, scope);
109
120
  }
@@ -127,11 +138,11 @@ export function formatDependencyUpdateCommands(agents, packageScope) {
127
138
  commands.push('claude plugin install superpowers@superpowers-marketplace');
128
139
  }
129
140
  if (agents.includes('codex')) {
130
- commands.push('codex plugin add superpowers@openai-curated');
141
+ commands.push(`codex plugin add ${CODEX_SUPERPOWERS_PLUGIN}`);
131
142
  }
132
143
  return commands;
133
144
  }
134
- export function detectPackageScope(projectPath, packageRoot = path.resolve(__dirname, '..', '..')) {
145
+ export function detectPackageScope(projectPath, packageRoot = PACKAGE_ROOT) {
135
146
  const localPackageRoot = path.join(projectPath, 'node_modules', '@chenmk', 'superflow');
136
147
  if (isSameOrInside(packageRoot, localPackageRoot))
137
148
  return 'project';
@@ -160,7 +171,8 @@ function printPlan(plan, json, status = 'planned') {
160
171
  console.log(JSON.stringify({ status, ...plan }, null, 2));
161
172
  return;
162
173
  }
163
- 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}`));
164
176
  if (plan.packageUpdate.enabled) {
165
177
  console.log('packages:');
166
178
  for (const command of plan.packageUpdate.commands) {
@@ -172,6 +184,16 @@ function printPlan(plan, json, status = 'planned') {
172
184
  console.log(`scripts: ${plan.scripts.total}`);
173
185
  console.log(`hooks: ${plan.hooks.total}`);
174
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
+ }
175
197
  async function updateNpmPackage(packageName, scope, label) {
176
198
  const npmResult = await runCommand('npm', buildNpmUpdateArgs(packageName, scope));
177
199
  if (npmResult.code !== 0) {