@chenmk/superflow 0.4.0 → 0.5.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 (241) hide show
  1. package/INSTALL.en.md +54 -12
  2. package/INSTALL.md +59 -33
  3. package/README.md +178 -54
  4. package/README.zh-CN.md +156 -51
  5. package/assets/brand/managed-review-loop.png +0 -0
  6. package/assets/manifest.json +10 -5
  7. package/assets/scripts/superflow-coding-ready.mjs +135 -0
  8. package/assets/scripts/superflow-dependency-update-hook.sh +81 -8
  9. package/assets/scripts/superflow-document-audit.mjs +240 -0
  10. package/assets/scripts/superflow-environment-preflight.mjs +398 -0
  11. package/assets/scripts/superflow-hook-guard.sh +40 -1
  12. package/assets/scripts/superflow-managed-command-guard.py +309 -0
  13. package/assets/scripts/superflow-managed-executor-preflight.mjs +421 -0
  14. package/assets/scripts/superflow-managed-owner-verification.sh +117 -0
  15. package/assets/scripts/superflow-managed-work-check.mjs +287 -26
  16. package/assets/scripts/superflow-managed-work-guard.sh +6 -92
  17. package/assets/skills/superflow-clarify/SKILL.md +14 -0
  18. package/assets/skills/superflow-design/SKILL.md +38 -13
  19. package/assets/skills/superflow-docs/SKILL.md +93 -2
  20. package/assets/skills/superflow-pipeline/SKILL.md +167 -10
  21. package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +17 -9
  22. package/assets/skills/superflow-pipeline/references/document-readiness.md +157 -0
  23. package/assets/skills/superflow-pipeline/references/document-templates.md +9 -5
  24. package/assets/skills/superflow-pipeline/references/feature-gated-workflow.md +14 -0
  25. package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +20 -11
  26. package/assets/skills/superflow-pipeline/references/managed-work.md +123 -15
  27. package/assets/skills/superflow-pipeline/references/orchestration.md +2 -2
  28. package/assets/skills/superflow-pipeline/references/p0-baseline-template.md +3 -2
  29. package/assets/skills/superflow-pipeline/references/quality-gate.md +7 -5
  30. package/assets/skills/superflow-pipeline/references/reviewer-checklist.md +7 -0
  31. package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  32. package/assets/skills/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  33. package/assets/skills/superflow-requirement-review/SKILL.md +178 -0
  34. package/assets/skills/superflow-requirement-review/agents/openai.yaml +4 -0
  35. package/assets/skills-en/superflow-clarify/SKILL.md +17 -0
  36. package/assets/skills-en/superflow-design/SKILL.md +31 -12
  37. package/assets/skills-en/superflow-docs/SKILL.md +99 -0
  38. package/assets/skills-en/superflow-pipeline/SKILL.md +163 -9
  39. package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +4 -0
  40. package/assets/skills-en/superflow-pipeline/references/document-readiness.md +125 -0
  41. package/assets/skills-en/superflow-pipeline/references/document-templates.md +10 -0
  42. package/assets/skills-en/superflow-pipeline/references/feature-gated-workflow.md +7 -0
  43. package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +7 -0
  44. package/assets/skills-en/superflow-pipeline/references/managed-work.md +160 -10
  45. package/assets/skills-en/superflow-pipeline/references/quality-gate.md +12 -0
  46. package/assets/skills-en/superflow-pipeline/references/reviewer-checklist.md +7 -0
  47. package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  48. package/assets/skills-en/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  49. package/assets/skills-en/superflow-requirement-review/SKILL.md +99 -0
  50. package/assets/skills-en/superflow-requirement-review/agents/openai.yaml +4 -0
  51. package/dist/app/cli.js +64 -9
  52. package/dist/app/cli.js.map +1 -1
  53. package/dist/app/commands/change-guard.js +19 -2
  54. package/dist/app/commands/change-guard.js.map +1 -1
  55. package/dist/app/commands/check.js +107 -45
  56. package/dist/app/commands/check.js.map +1 -1
  57. package/dist/app/commands/docs.js +7 -3
  58. package/dist/app/commands/docs.js.map +1 -1
  59. package/dist/app/commands/doctor.js +174 -198
  60. package/dist/app/commands/doctor.js.map +1 -1
  61. package/dist/app/commands/eval.js +64 -0
  62. package/dist/app/commands/eval.js.map +1 -0
  63. package/dist/app/commands/implement.js +7 -3
  64. package/dist/app/commands/implement.js.map +1 -1
  65. package/dist/app/commands/init.js +12 -24
  66. package/dist/app/commands/init.js.map +1 -1
  67. package/dist/app/commands/mcp.js +167 -0
  68. package/dist/app/commands/mcp.js.map +1 -0
  69. package/dist/app/commands/pipeline.js +652 -18
  70. package/dist/app/commands/pipeline.js.map +1 -1
  71. package/dist/app/commands/requirement-review.js +6 -0
  72. package/dist/app/commands/requirement-review.js.map +1 -0
  73. package/dist/app/commands/status.js +66 -3
  74. package/dist/app/commands/status.js.map +1 -1
  75. package/dist/app/commands/uninstall.js +3 -3
  76. package/dist/app/commands/uninstall.js.map +1 -1
  77. package/dist/app/commands/update.js +83 -9
  78. package/dist/app/commands/update.js.map +1 -1
  79. package/dist/domains/agent.js +3 -11
  80. package/dist/domains/agent.js.map +1 -1
  81. package/dist/domains/config/cli-help.js +54 -12
  82. package/dist/domains/config/cli-help.js.map +1 -1
  83. package/dist/domains/config/i18n.js +6 -8
  84. package/dist/domains/config/i18n.js.map +1 -1
  85. package/dist/domains/config/manifest.js +0 -3
  86. package/dist/domains/config/manifest.js.map +1 -1
  87. package/dist/domains/deps.js +68 -7
  88. package/dist/domains/deps.js.map +1 -1
  89. package/dist/domains/managed-work/completion-policy.js +174 -0
  90. package/dist/domains/managed-work/completion-policy.js.map +1 -0
  91. package/dist/domains/managed-work/context-manifest.js +208 -0
  92. package/dist/domains/managed-work/context-manifest.js.map +1 -0
  93. package/dist/domains/managed-work/contract.js +135 -4
  94. package/dist/domains/managed-work/contract.js.map +1 -1
  95. package/dist/domains/managed-work/control-signals.js +34 -0
  96. package/dist/domains/managed-work/control-signals.js.map +1 -0
  97. package/dist/domains/managed-work/control.js +628 -0
  98. package/dist/domains/managed-work/control.js.map +1 -0
  99. package/dist/domains/managed-work/evaluation.js +497 -0
  100. package/dist/domains/managed-work/evaluation.js.map +1 -0
  101. package/dist/domains/managed-work/evidence-path.js +14 -0
  102. package/dist/domains/managed-work/evidence-path.js.map +1 -0
  103. package/dist/domains/managed-work/execution-contract.js +167 -0
  104. package/dist/domains/managed-work/execution-contract.js.map +1 -0
  105. package/dist/domains/managed-work/executor-policy.js +65 -0
  106. package/dist/domains/managed-work/executor-policy.js.map +1 -0
  107. package/dist/domains/managed-work/failure.js +65 -0
  108. package/dist/domains/managed-work/failure.js.map +1 -0
  109. package/dist/domains/managed-work/host-review.js +77 -0
  110. package/dist/domains/managed-work/host-review.js.map +1 -0
  111. package/dist/domains/managed-work/human-messages.js +31 -0
  112. package/dist/domains/managed-work/human-messages.js.map +1 -0
  113. package/dist/domains/managed-work/input.js +29 -3
  114. package/dist/domains/managed-work/input.js.map +1 -1
  115. package/dist/domains/managed-work/journal.js +77 -3
  116. package/dist/domains/managed-work/journal.js.map +1 -1
  117. package/dist/domains/managed-work/lock.js +67 -1
  118. package/dist/domains/managed-work/lock.js.map +1 -1
  119. package/dist/domains/managed-work/notifications.js +0 -15
  120. package/dist/domains/managed-work/notifications.js.map +1 -1
  121. package/dist/domains/managed-work/pair-admission.js +108 -0
  122. package/dist/domains/managed-work/pair-admission.js.map +1 -0
  123. package/dist/domains/managed-work/prompts.js +257 -22
  124. package/dist/domains/managed-work/prompts.js.map +1 -1
  125. package/dist/domains/managed-work/redaction.js +90 -0
  126. package/dist/domains/managed-work/redaction.js.map +1 -0
  127. package/dist/domains/managed-work/review-convergence.js +41 -0
  128. package/dist/domains/managed-work/review-convergence.js.map +1 -0
  129. package/dist/domains/managed-work/review-facts.js +181 -0
  130. package/dist/domains/managed-work/review-facts.js.map +1 -0
  131. package/dist/domains/managed-work/rule-selection.js +84 -0
  132. package/dist/domains/managed-work/rule-selection.js.map +1 -0
  133. package/dist/domains/managed-work/runner.js +1967 -175
  134. package/dist/domains/managed-work/runner.js.map +1 -1
  135. package/dist/domains/managed-work/schemas.js +72 -2
  136. package/dist/domains/managed-work/schemas.js.map +1 -1
  137. package/dist/domains/managed-work/service.js +82 -13
  138. package/dist/domains/managed-work/service.js.map +1 -1
  139. package/dist/domains/managed-work/state.js +195 -5
  140. package/dist/domains/managed-work/state.js.map +1 -1
  141. package/dist/domains/managed-work/storage.js +66 -24
  142. package/dist/domains/managed-work/storage.js.map +1 -1
  143. package/dist/domains/managed-work/types.js +12 -9
  144. package/dist/domains/managed-work/types.js.map +1 -1
  145. package/dist/domains/managed-work/verification-categories.js +39 -0
  146. package/dist/domains/managed-work/verification-categories.js.map +1 -0
  147. package/dist/domains/managed-work/verification-policy.js +116 -0
  148. package/dist/domains/managed-work/verification-policy.js.map +1 -0
  149. package/dist/domains/managed-work/wait.js +21 -3
  150. package/dist/domains/managed-work/wait.js.map +1 -1
  151. package/dist/domains/managed-work/workspace-binding.js +133 -0
  152. package/dist/domains/managed-work/workspace-binding.js.map +1 -0
  153. package/dist/domains/sdd-readiness.js +44 -0
  154. package/dist/domains/sdd-readiness.js.map +1 -0
  155. package/dist/domains/skill/deploy.js +0 -6
  156. package/dist/domains/skill/deploy.js.map +1 -1
  157. package/dist/domains/skill/scripts.js +0 -8
  158. package/dist/domains/skill/scripts.js.map +1 -1
  159. package/dist/domains/state.js +1 -2
  160. package/dist/domains/state.js.map +1 -1
  161. package/dist/mcp/runtime-identity.js +21 -0
  162. package/dist/mcp/runtime-identity.js.map +1 -0
  163. package/dist/mcp/server.js +369 -0
  164. package/dist/mcp/server.js.map +1 -0
  165. package/dist/platform/agent-process.js +499 -38
  166. package/dist/platform/agent-process.js.map +1 -1
  167. package/dist/platform/executable.js +28 -0
  168. package/dist/platform/executable.js.map +1 -0
  169. package/dist/platform/paths.js +1 -17
  170. package/dist/platform/paths.js.map +1 -1
  171. package/dist/platform/process-tree.js +44 -0
  172. package/dist/platform/process-tree.js.map +1 -0
  173. package/dist/platform/process.js +1 -1
  174. package/dist/platform/process.js.map +1 -1
  175. package/package.json +16 -7
  176. package/scripts/check-design-principles.mjs +107 -0
  177. package/scripts/check-managed-work-design.mjs +507 -0
  178. package/scripts/clean-dist.js +9 -0
  179. package/scripts/ensure-bin-modes.js +11 -0
  180. package/dist/cli/index.js +0 -193
  181. package/dist/cli/index.js.map +0 -1
  182. package/dist/commands/archive.js +0 -6
  183. package/dist/commands/archive.js.map +0 -1
  184. package/dist/commands/clarify.js +0 -6
  185. package/dist/commands/clarify.js.map +0 -1
  186. package/dist/commands/design.js +0 -28
  187. package/dist/commands/design.js.map +0 -1
  188. package/dist/commands/docs.js +0 -6
  189. package/dist/commands/docs.js.map +0 -1
  190. package/dist/commands/doctor.js +0 -494
  191. package/dist/commands/doctor.js.map +0 -1
  192. package/dist/commands/implement.js +0 -6
  193. package/dist/commands/implement.js.map +0 -1
  194. package/dist/commands/init.js +0 -520
  195. package/dist/commands/init.js.map +0 -1
  196. package/dist/commands/pipeline.js +0 -6
  197. package/dist/commands/pipeline.js.map +0 -1
  198. package/dist/commands/scan.js +0 -63
  199. package/dist/commands/scan.js.map +0 -1
  200. package/dist/commands/status.js +0 -173
  201. package/dist/commands/status.js.map +0 -1
  202. package/dist/commands/uninstall.js +0 -214
  203. package/dist/commands/uninstall.js.map +0 -1
  204. package/dist/commands/update.js +0 -193
  205. package/dist/commands/update.js.map +0 -1
  206. package/dist/commands/verify.js +0 -6
  207. package/dist/commands/verify.js.map +0 -1
  208. package/dist/core/assets.js +0 -27
  209. package/dist/core/assets.js.map +0 -1
  210. package/dist/core/cli-help.js +0 -98
  211. package/dist/core/cli-help.js.map +0 -1
  212. package/dist/core/context.js +0 -123
  213. package/dist/core/context.js.map +0 -1
  214. package/dist/core/dependencies.js +0 -146
  215. package/dist/core/dependencies.js.map +0 -1
  216. package/dist/core/detect.js +0 -64
  217. package/dist/core/detect.js.map +0 -1
  218. package/dist/core/i18n.js +0 -105
  219. package/dist/core/i18n.js.map +0 -1
  220. package/dist/core/integrity.js +0 -46
  221. package/dist/core/integrity.js.map +0 -1
  222. package/dist/core/manifest.js +0 -21
  223. package/dist/core/manifest.js.map +0 -1
  224. package/dist/core/prompts.js +0 -20
  225. package/dist/core/prompts.js.map +0 -1
  226. package/dist/core/registry.js +0 -134
  227. package/dist/core/registry.js.map +0 -1
  228. package/dist/core/rules.js +0 -17
  229. package/dist/core/rules.js.map +0 -1
  230. package/dist/core/scripts.js +0 -48
  231. package/dist/core/scripts.js.map +0 -1
  232. package/dist/core/skill-check.js +0 -32
  233. package/dist/core/skill-check.js.map +0 -1
  234. package/dist/core/skills.js +0 -62
  235. package/dist/core/skills.js.map +0 -1
  236. package/dist/core/state.js +0 -54
  237. package/dist/core/state.js.map +0 -1
  238. package/dist/utils/path.js +0 -11
  239. package/dist/utils/path.js.map +0 -1
  240. package/dist/utils/shell.js +0 -29
  241. package/dist/utils/shell.js.map +0 -1
@@ -1,173 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
2
- import path from 'path';
3
- import { normalizeLanguage, t } from '../domains/config/i18n.js';
4
- export async function statusCommand(targetPath = '.', options = {}) {
5
- const result = await collectStatus(targetPath);
6
- if (options.json) {
7
- console.log(JSON.stringify(result, null, 2));
8
- return;
9
- }
10
- printStatus(result, resolveLanguage());
11
- }
12
- export async function collectStatus(targetPath = '.') {
13
- const projectPath = path.resolve(targetPath);
14
- const changesRoot = path.join(projectPath, 'openspec', 'changes');
15
- const changes = [];
16
- if (!existsSync(changesRoot))
17
- return { projectPath, changes };
18
- for (const entry of readdirSync(changesRoot).sort()) {
19
- const changeDir = path.join(changesRoot, entry);
20
- if (!statSync(changeDir).isDirectory())
21
- continue;
22
- const statePath = path.join(changeDir, '.sdd', 'state.yaml');
23
- if (!existsSync(statePath))
24
- continue;
25
- const state = parseSimpleYaml(readFileSync(statePath, 'utf-8'));
26
- if (state.archived === 'true' || state.phase === 'done')
27
- continue;
28
- const tasks = countTasks(path.join(changeDir, 'tasks.md'));
29
- changes.push({
30
- name: entry,
31
- path: path.relative(projectPath, changeDir),
32
- workflow: state.workflow ?? 'full',
33
- phase: state.phase ?? 'unknown',
34
- buildMode: state.build_mode ?? 'null',
35
- reviewMode: state.review_mode ?? 'null',
36
- verifyMode: state.verify_mode ?? 'null',
37
- verifyResult: state.verify_result ?? 'pending',
38
- tasksCompleted: tasks.done,
39
- tasksTotal: tasks.total,
40
- nextCommand: nextCommand(entry, state.phase),
41
- nextReason: nextReason(state.phase, tasks, state.verify_result, resolveLanguage()),
42
- risks: buildRisks(changeDir, state, tasks, resolveLanguage()),
43
- });
44
- }
45
- return { projectPath, changes };
46
- }
47
- function fileExists(changeDir, file) {
48
- return existsSync(path.join(changeDir, file));
49
- }
50
- function parseSimpleYaml(content) {
51
- const result = {};
52
- for (const line of content.split(/\r?\n/)) {
53
- if (!line.trim() || line.trimStart().startsWith('#'))
54
- continue;
55
- if (/^\s/.test(line))
56
- continue;
57
- const match = line.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);
58
- if (match)
59
- result[match[1]] = match[2].trim();
60
- }
61
- return result;
62
- }
63
- function countTasks(tasksPath) {
64
- if (!existsSync(tasksPath))
65
- return { done: 0, total: 0 };
66
- const lines = readFileSync(tasksPath, 'utf-8').split(/\r?\n/);
67
- return {
68
- done: lines.filter((line) => /^\s*-\s*\[[xX]\]/.test(line)).length,
69
- total: lines.filter((line) => /^\s*-\s*\[[ xX]\]/.test(line)).length,
70
- };
71
- }
72
- function nextCommand(change, phase) {
73
- switch (phase) {
74
- case 'docs':
75
- return `superflow docs ${change}`;
76
- case 'design':
77
- return `superflow design ${change}`;
78
- case 'implement':
79
- return `superflow implement ${change}`;
80
- case 'verify':
81
- return `superflow verify ${change}`;
82
- case 'archive':
83
- return `superflow archive ${change}`;
84
- default:
85
- return null;
86
- }
87
- }
88
- function nextReason(phase, tasks, verifyResult, language) {
89
- if (verifyResult === 'fail')
90
- return t(language, 'nextVerifyFailed');
91
- switch (phase) {
92
- case 'docs':
93
- return t(language, 'nextDocs');
94
- case 'design':
95
- return t(language, 'nextDesign');
96
- case 'implement': {
97
- const remaining = tasks.total - tasks.done;
98
- if (remaining > 0) {
99
- return language === 'en'
100
- ? `Current phase is implement. ${remaining} task(s) remain.`
101
- : `当前处于 implement 阶段,还有 ${remaining} 个任务未完成。`;
102
- }
103
- return t(language, 'nextImplementDone');
104
- }
105
- case 'verify':
106
- return t(language, 'nextVerify');
107
- case 'archive':
108
- return t(language, 'nextArchive');
109
- default:
110
- return t(language, 'nextUnknown');
111
- }
112
- }
113
- function buildRisks(changeDir, state, tasks, language) {
114
- const risks = [];
115
- const phase = state.phase ?? 'unknown';
116
- if (phase === 'unknown') {
117
- risks.push({ level: 'warning', code: 'UNKNOWN_PHASE', message: t(language, 'riskUnknownPhase') });
118
- }
119
- if (tasks.total === 0 || !fileExists(changeDir, 'tasks.md')) {
120
- risks.push({ level: 'warning', code: 'TASKS_MISSING', message: t(language, 'riskTasksMissing') });
121
- }
122
- else if (phase === 'implement' && tasks.done < tasks.total) {
123
- const remaining = tasks.total - tasks.done;
124
- risks.push({
125
- level: 'warning',
126
- code: 'TASKS_INCOMPLETE',
127
- message: language === 'en' ? `${remaining} task(s) remain.` : `仍有 ${remaining} 个任务未完成。`,
128
- });
129
- }
130
- if ((state.workflow ?? 'full') === 'full' && (state.review_mode ?? 'null') === 'null') {
131
- risks.push({ level: 'warning', code: 'REVIEW_MODE_MISSING', message: t(language, 'riskReviewMissing') });
132
- }
133
- if (state.verify_result === 'fail') {
134
- risks.push({ level: 'error', code: 'VERIFY_FAILED', message: t(language, 'riskVerifyFailed') });
135
- }
136
- else if (phase === 'verify' && !fileExists(changeDir, 'test-report.md')) {
137
- risks.push({ level: 'warning', code: 'TEST_REPORT_MISSING', message: t(language, 'riskTestReportMissing') });
138
- }
139
- for (const artifact of ['proposal.md', 'design.md', 'tests.md']) {
140
- if (!fileExists(changeDir, artifact)) {
141
- risks.push({
142
- level: 'info',
143
- code: 'ARTIFACT_MISSING',
144
- message: language === 'en' ? `Missing ${artifact}.` : `缺少 ${artifact}。`,
145
- });
146
- }
147
- }
148
- return risks;
149
- }
150
- function printStatus(result, language) {
151
- if (result.changes.length === 0) {
152
- console.log(t(language, 'noActiveChanges'));
153
- return;
154
- }
155
- console.log(`${t(language, 'statusHeader')} (${result.projectPath}):\n`);
156
- for (const change of result.changes) {
157
- const tasks = change.tasksTotal > 0
158
- ? ` | tasks ${change.tasksCompleted}/${change.tasksTotal}`
159
- : '';
160
- console.log(`- ${change.name}: phase=${change.phase}, workflow=${change.workflow}, review_mode=${change.reviewMode}${tasks}`);
161
- console.log(` path: ${change.path}`);
162
- if (change.nextCommand)
163
- console.log(` next: ${change.nextCommand}`);
164
- console.log(` reason: ${change.nextReason}`);
165
- for (const risk of change.risks) {
166
- console.log(` ${risk.level.toUpperCase()} ${risk.code}: ${risk.message}`);
167
- }
168
- }
169
- }
170
- function resolveLanguage() {
171
- return normalizeLanguage(process.env.SUPERFLOW_LANGUAGE) ?? 'zh';
172
- }
173
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,214 +0,0 @@
1
- import { existsSync, readdirSync, rmSync } from 'fs';
2
- import { homedir } from 'os';
3
- import path from 'path';
4
- import { ALL_RULES, ALL_SKILLS, CODEX_PROMPTS, LEGACY_CODEX_PROMPTS, scriptsForAgent, } from '../domains/skill/assets.js';
5
- import { getPlatformPaths } from '../platform/paths.js';
6
- import { parseAgentSelection, parseInstallScope, resolveAgents, } from '../domains/agent.js';
7
- import { rulePath } from '../domains/skill/rules.js';
8
- import { clearSddHooks } from '../domains/hook.js';
9
- import { runCommand } from '../platform/process.js';
10
- const LEGACY_SKILLS = [
11
- 'sdd-archive',
12
- 'sdd-clarify',
13
- 'sdd-design',
14
- 'sdd-docs',
15
- 'sdd-hotfix',
16
- 'sdd-implement',
17
- 'sdd-spec-pipeline',
18
- 'sdd-table-impact-analysis',
19
- 'sdd-tweak',
20
- 'sdd-verify',
21
- ];
22
- export async function uninstallCommand(options = {}) {
23
- const agents = resolveAgents(parseAgentSelection(options.agent));
24
- const scope = parseUninstallScope(options.scope);
25
- const projectPath = path.resolve(options.targetPath ?? process.cwd());
26
- const targets = resolveUninstallTargets(projectPath, agents, scope);
27
- if (options.json && options.dryRun) {
28
- console.log(JSON.stringify(createUninstallPlan(agents, !!options.withDeps, scope, projectPath, targets), null, 2));
29
- return;
30
- }
31
- const result = await runUninstall({
32
- agents,
33
- scope,
34
- projectPath,
35
- dryRun: !!options.dryRun,
36
- withDeps: !!options.withDeps,
37
- quiet: !!options.json,
38
- targets,
39
- });
40
- if (options.json) {
41
- console.log(JSON.stringify(result, null, 2));
42
- return;
43
- }
44
- console.log(`\nUninstall complete. Removed ${result.removed.length + result.hookCommandsRemoved} item(s).`);
45
- }
46
- export async function runUninstall(options) {
47
- const removed = [];
48
- let hookCommandsRemoved = 0;
49
- const targets = options.targets ?? resolveUninstallTargets(options.projectPath, options.agents, options.scope);
50
- for (const target of targets) {
51
- const platform = getPlatformPaths(target.agent, target.scope, target.projectPath);
52
- if (existsSync(platform.settingsFile)) {
53
- if (options.dryRun) {
54
- removed.push(platform.settingsFile);
55
- }
56
- else {
57
- hookCommandsRemoved += clearSddHooks(platform.settingsFile);
58
- }
59
- }
60
- for (const skill of [...ALL_SKILLS, ...LEGACY_SKILLS]) {
61
- removeSkillWithBackups(platform.skillsDir, skill, options.dryRun, removed, !!options.quiet);
62
- }
63
- for (const rule of ALL_RULES) {
64
- removePath(rulePath(platform.rulesDir, rule), options.dryRun, removed, !!options.quiet);
65
- }
66
- for (const script of scriptsForAgent(target.agent)) {
67
- removePath(path.join(platform.scriptsDir, script), options.dryRun, removed, !!options.quiet);
68
- }
69
- if (target.agent === 'codex' || target.agent === 'opencode') {
70
- for (const prompt of [...CODEX_PROMPTS, ...LEGACY_CODEX_PROMPTS]) {
71
- removePath(path.join(platform.promptsDir, prompt), options.dryRun, removed, !!options.quiet);
72
- }
73
- }
74
- }
75
- const dependencyCommands = dependencyUninstallCommands(options.agents, options.withDeps);
76
- if (options.withDeps) {
77
- await uninstallDependencies(options.agents, options.dryRun);
78
- }
79
- return {
80
- ok: true,
81
- agents: options.agents,
82
- scope: options.scope,
83
- projectPath: options.projectPath,
84
- dryRun: options.dryRun,
85
- withDeps: options.withDeps,
86
- removed,
87
- hookCommandsRemoved,
88
- dependencyCommands,
89
- targets,
90
- summary: {
91
- targetsProcessed: targets.length,
92
- totalRemoved: removed.length + hookCommandsRemoved,
93
- totalHookCommandsRemoved: hookCommandsRemoved,
94
- },
95
- };
96
- }
97
- export function createUninstallPlan(agents, withDeps, scope = 'global', projectPath = process.cwd(), targetsToPlan) {
98
- const targets = [];
99
- const installTargets = targetsToPlan ?? resolveUninstallTargets(projectPath, agents, scope);
100
- for (const target of installTargets) {
101
- const platform = getPlatformPaths(target.agent, target.scope, target.projectPath);
102
- targets.push(platform.settingsFile);
103
- for (const skill of [...ALL_SKILLS, ...LEGACY_SKILLS]) {
104
- targets.push(path.join(platform.skillsDir, skill));
105
- targets.push(path.join(platform.skillsDir, `${skill}.backup-*`));
106
- }
107
- for (const rule of ALL_RULES) {
108
- targets.push(rulePath(platform.rulesDir, rule));
109
- }
110
- for (const script of scriptsForAgent(target.agent)) {
111
- targets.push(path.join(platform.scriptsDir, script));
112
- }
113
- if (target.agent === 'codex' || target.agent === 'opencode') {
114
- for (const prompt of [...CODEX_PROMPTS, ...LEGACY_CODEX_PROMPTS]) {
115
- targets.push(path.join(platform.promptsDir, prompt));
116
- }
117
- }
118
- }
119
- const dependencyCommands = dependencyUninstallCommands(agents, withDeps);
120
- return { agents, scope, projectPath, withDeps, targets, installTargets, dependencyCommands };
121
- }
122
- export function detectInstalledUninstallTargets(projectPath, agents) {
123
- const targets = [];
124
- for (const scope of ['project', 'global']) {
125
- for (const agent of agents) {
126
- const platform = getPlatformPaths(agent, scope, projectPath);
127
- const hasSkill = existsSync(path.join(platform.skillsDir, 'superflow-pipeline', 'SKILL.md')) ||
128
- existsSync(path.join(platform.skillsDir, 'sdd-spec-pipeline', 'SKILL.md'));
129
- const hasRule = ALL_RULES.some((rule) => existsSync(rulePath(platform.rulesDir, rule)));
130
- const hasScript = scriptsForAgent(agent).some((script) => existsSync(path.join(platform.scriptsDir, script)));
131
- const hasPrompt = (agent === 'codex' || agent === 'opencode') &&
132
- [...CODEX_PROMPTS, ...LEGACY_CODEX_PROMPTS].some((prompt) => existsSync(path.join(platform.promptsDir, prompt)));
133
- if (hasSkill || hasRule || hasScript || hasPrompt) {
134
- targets.push({ agent, scope, projectPath });
135
- }
136
- }
137
- }
138
- return targets;
139
- }
140
- function resolveUninstallTargets(projectPath, agents, scope) {
141
- if (scope === 'auto') {
142
- return detectInstalledUninstallTargets(projectPath, agents);
143
- }
144
- return agents.map((agent) => ({ agent, scope, projectPath }));
145
- }
146
- function parseUninstallScope(value) {
147
- if (value === 'auto')
148
- return 'auto';
149
- return parseInstallScope(value);
150
- }
151
- function removePath(target, dryRun, removed, quiet = false) {
152
- if (!existsSync(target))
153
- return 0;
154
- if (dryRun) {
155
- if (!quiet)
156
- console.log(`[dry-run] rm -rf ${target}`);
157
- removed?.push(target);
158
- return 1;
159
- }
160
- rmSync(target, { recursive: true, force: true });
161
- if (!quiet)
162
- console.log(` ✓ removed ${target}`);
163
- removed?.push(target);
164
- return 1;
165
- }
166
- function removeSkillWithBackups(skillsDir, skill, dryRun, removed, quiet = false) {
167
- let count = removePath(path.join(skillsDir, skill), dryRun, removed, quiet);
168
- if (!existsSync(skillsDir))
169
- return count;
170
- for (const entry of readdirSync(skillsDir, { withFileTypes: true })) {
171
- if (!entry.isDirectory())
172
- continue;
173
- if (!entry.name.startsWith(`${skill}.backup-`))
174
- continue;
175
- count += removePath(path.join(skillsDir, entry.name), dryRun, removed, quiet);
176
- }
177
- return count;
178
- }
179
- function dependencyUninstallCommands(agents, withDeps) {
180
- return withDeps
181
- ? [
182
- agents.includes('codex') ? 'codex plugin remove superpowers@openai-curated' : null,
183
- agents.includes('codex') ? 'bash ~/.understand-anything/repo/install.sh --uninstall codex' : null,
184
- agents.includes('claude') ? 'claude plugin remove superpowers@superpowers-marketplace' : null,
185
- agents.includes('claude') ? 'claude plugin remove understand-anything@understand-anything' : null,
186
- 'npm uninstall -g @fission-ai/openspec',
187
- ].filter((cmd) => Boolean(cmd))
188
- : [];
189
- }
190
- async function uninstallDependencies(agents, dryRun) {
191
- if (agents.includes('codex')) {
192
- await maybeRun('codex superpowers', 'codex', ['plugin', 'remove', 'superpowers@openai-curated'], dryRun);
193
- await maybeRun('codex understand-anything', 'bash', [path.join(homedir(), '.understand-anything', 'repo', 'install.sh'), '--uninstall', 'codex'], dryRun);
194
- }
195
- if (agents.includes('claude')) {
196
- await maybeRun('claude superpowers', 'claude', ['plugin', 'remove', 'superpowers@superpowers-marketplace'], dryRun);
197
- await maybeRun('claude understand-anything', 'claude', ['plugin', 'remove', 'understand-anything@understand-anything'], dryRun);
198
- }
199
- await maybeRun('openspec CLI', 'npm', ['uninstall', '-g', '@fission-ai/openspec'], dryRun);
200
- }
201
- async function maybeRun(label, command, args, dryRun) {
202
- if (dryRun) {
203
- console.log(`[dry-run] ${command} ${args.join(' ')}`);
204
- return;
205
- }
206
- const result = await runCommand(command, args);
207
- if (result.code === 0) {
208
- console.log(` ✓ uninstalled ${label}`);
209
- }
210
- else {
211
- console.warn(` [WARN] ${label}: ${result.stderr || result.stdout}`);
212
- }
213
- }
214
- //# sourceMappingURL=uninstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -1,193 +0,0 @@
1
- import path from 'path';
2
- import { fileURLToPath } from 'url';
3
- import { existsSync, readFileSync } from 'fs';
4
- import { ALL_RULES, ALL_SKILLS, CODEX_PROMPTS, hookScriptsForAgent, scriptsForAgent, } from '../domains/skill/assets.js';
5
- import { getPlatformPaths } from '../platform/paths.js';
6
- import { parseAgentSelection, parseInstallScope, resolveAgents, } from '../domains/agent.js';
7
- import { deployRules } from '../domains/skill/rules.js';
8
- import { deployScripts } from '../domains/skill/scripts.js';
9
- import { deploySkill } from '../domains/skill/deploy.js';
10
- import { deployPrompts } from '../domains/skill/prompts.js';
11
- import { clearSddHooks, registerHook } from '../domains/hook.js';
12
- 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');
17
- const PACKAGE_NAME = '@chenmk/superflow';
18
- const OPENSPEC_PACKAGE_NAME = '@fission-ai/openspec';
19
- const OFFICIAL_REGISTRY = 'https://registry.npmjs.org';
20
- export async function updateCommand(options = {}) {
21
- const agents = resolveAgents(parseAgentSelection(options.agent));
22
- const projectPath = path.resolve(options.targetPath ?? process.cwd());
23
- const targets = resolveUpdateTargets(projectPath, agents, options.scope);
24
- const planScope = targets[0]?.scope ?? 'global';
25
- const packageScope = options.scope && options.scope !== 'auto'
26
- ? parseInstallScope(options.scope)
27
- : detectPackageScope(projectPath);
28
- const planAgents = [...new Set(targets.map((target) => target.agent))];
29
- const plan = createUpdatePlan(planAgents, planScope, projectPath, !!options.withPackage, targets, packageScope);
30
- if (options.dryRun) {
31
- printPlan(plan, !!options.json);
32
- return;
33
- }
34
- if (options.withPackage) {
35
- await updateNpmPackage(PACKAGE_NAME, packageScope, 'superflow package');
36
- await updateNpmPackage(OPENSPEC_PACKAGE_NAME, 'global', 'openspec package');
37
- await updateSuperpowers(planAgents);
38
- }
39
- for (const target of targets) {
40
- const { agent, scope } = target;
41
- const platform = getPlatformPaths(agent, scope, target.projectPath);
42
- for (const skill of ALL_SKILLS) {
43
- await deploySkill(skill, path.join(ASSETS_DIR, 'skills'), platform.skillsDir, { agent });
44
- }
45
- await deployRules(ALL_RULES, path.join(ASSETS_DIR, 'rules'), platform.rulesDir);
46
- const scripts = scriptsForAgent(agent);
47
- await deployScripts(scripts, path.join(ASSETS_DIR, 'scripts'), platform.scriptsDir, { agent });
48
- if (agent === 'codex' || agent === 'opencode') {
49
- await deployPrompts(CODEX_PROMPTS, path.join(ASSETS_DIR, 'prompts'), platform.promptsDir);
50
- }
51
- const hooks = hookScriptsForAgent(agent);
52
- if (!options.noHooks && hooks.length > 0) {
53
- clearSddHooks(platform.settingsFile);
54
- for (const hook of hooks) {
55
- const command = path.join(platform.scriptsDir, hook);
56
- const timeout = hook === 'superflow-dependency-update-hook.sh' ? 300 : undefined;
57
- registerHook(platform.settingsFile, hook, command, { timeout });
58
- if (hook === 'superflow-sql-sync-hook.py') {
59
- registerHook(platform.settingsFile, hook, command, { matcherOverride: 'Bash' });
60
- }
61
- }
62
- }
63
- }
64
- printPlan(plan, !!options.json, 'updated');
65
- }
66
- export function detectInstalledTargets(projectPath, agents) {
67
- const targets = [];
68
- for (const scope of ['project', 'global']) {
69
- for (const agent of agents) {
70
- const platform = getPlatformPaths(agent, scope, projectPath);
71
- if (existsSync(path.join(platform.skillsDir, 'superflow-pipeline', 'SKILL.md')) ||
72
- existsSync(path.join(platform.skillsDir, 'sdd-spec-pipeline', 'SKILL.md'))) {
73
- targets.push({ agent, scope, projectPath });
74
- }
75
- }
76
- }
77
- return targets;
78
- }
79
- export function resolveUpdateTargets(projectPath, agents, scopeValue) {
80
- if (!scopeValue || scopeValue === 'auto') {
81
- const detected = detectInstalledTargets(projectPath, agents);
82
- return detected.length > 0
83
- ? detected
84
- : agents.map((agent) => ({ agent, scope: 'global', projectPath }));
85
- }
86
- const scope = parseInstallScope(scopeValue);
87
- return agents.map((agent) => ({ agent, scope, projectPath }));
88
- }
89
- export function createUpdatePlan(agents, scope = 'global', projectPath = process.cwd(), withPackage = false, targets = agents.map((agent) => ({ agent, scope, projectPath })), packageScope = scope) {
90
- const scriptNames = [...new Set(agents.flatMap((agent) => scriptsForAgent(agent)))];
91
- const hookNames = [...new Set(agents.flatMap((agent) => hookScriptsForAgent(agent)))];
92
- return {
93
- agents,
94
- scope,
95
- projectPath,
96
- targets,
97
- packageUpdate: {
98
- enabled: withPackage,
99
- commands: withPackage ? formatDependencyUpdateCommands(agents, packageScope) : [],
100
- },
101
- skills: { total: ALL_SKILLS.length, names: [...ALL_SKILLS] },
102
- rules: { total: ALL_RULES.length, names: [...ALL_RULES] },
103
- scripts: { total: scriptNames.length, names: scriptNames },
104
- hooks: { total: hookNames.length, names: hookNames },
105
- };
106
- }
107
- export function buildPackageUpdateArgs(scope) {
108
- return buildNpmUpdateArgs(PACKAGE_NAME, scope);
109
- }
110
- export function buildOpenSpecUpdateArgs() {
111
- return buildNpmUpdateArgs(OPENSPEC_PACKAGE_NAME, 'global');
112
- }
113
- export function buildNpmUpdateArgs(packageName, scope) {
114
- return scope === 'global'
115
- ? ['install', '-g', `${packageName}@latest`, '--registry', OFFICIAL_REGISTRY]
116
- : ['install', `${packageName}@latest`, '--registry', OFFICIAL_REGISTRY];
117
- }
118
- export function formatPackageUpdateCommand(scope) {
119
- return ['npm', ...buildPackageUpdateArgs(scope)].join(' ');
120
- }
121
- export function formatDependencyUpdateCommands(agents, packageScope) {
122
- const commands = [
123
- formatPackageUpdateCommand(packageScope),
124
- ['npm', ...buildOpenSpecUpdateArgs()].join(' '),
125
- ];
126
- if (agents.includes('claude')) {
127
- commands.push('claude plugin install superpowers@superpowers-marketplace');
128
- }
129
- if (agents.includes('codex')) {
130
- commands.push('codex plugin add superpowers@openai-curated');
131
- }
132
- return commands;
133
- }
134
- export function detectPackageScope(projectPath, packageRoot = path.resolve(__dirname, '..', '..')) {
135
- const localPackageRoot = path.join(projectPath, 'node_modules', '@chenmk', 'superflow');
136
- if (isSameOrInside(packageRoot, localPackageRoot))
137
- return 'project';
138
- const packageJsonPath = path.join(projectPath, 'package.json');
139
- if (existsSync(packageJsonPath)) {
140
- try {
141
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
142
- if (pkg.dependencies?.[PACKAGE_NAME] ||
143
- pkg.devDependencies?.[PACKAGE_NAME] ||
144
- pkg.optionalDependencies?.[PACKAGE_NAME]) {
145
- return 'project';
146
- }
147
- }
148
- catch {
149
- return 'global';
150
- }
151
- }
152
- return 'global';
153
- }
154
- function isSameOrInside(childPath, parentPath) {
155
- const relative = path.relative(path.resolve(parentPath), path.resolve(childPath));
156
- return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
157
- }
158
- function printPlan(plan, json, status = 'planned') {
159
- if (json) {
160
- console.log(JSON.stringify({ status, ...plan }, null, 2));
161
- return;
162
- }
163
- console.log(`SuperBridge Flow update ${status}: ${plan.agents.join(', ')}`);
164
- if (plan.packageUpdate.enabled) {
165
- console.log('packages:');
166
- for (const command of plan.packageUpdate.commands) {
167
- console.log(` ${command}`);
168
- }
169
- }
170
- console.log(`skills: ${plan.skills.total}`);
171
- console.log(`rules: ${plan.rules.total}`);
172
- console.log(`scripts: ${plan.scripts.total}`);
173
- console.log(`hooks: ${plan.hooks.total}`);
174
- }
175
- async function updateNpmPackage(packageName, scope, label) {
176
- const npmResult = await runCommand('npm', buildNpmUpdateArgs(packageName, scope));
177
- if (npmResult.code !== 0) {
178
- throw new Error(`${label} update failed: ${npmResult.stderr || npmResult.stdout}`);
179
- }
180
- }
181
- async function updateSuperpowers(agents) {
182
- if (agents.includes('claude')) {
183
- const result = await installSuperpowers();
184
- if (!result.ok)
185
- throw new Error(`superpowers update failed: ${result.error}`);
186
- }
187
- if (agents.includes('codex')) {
188
- const result = await installCodexSuperpowers();
189
- if (!result.ok)
190
- throw new Error(`codex superpowers update failed: ${result.error}`);
191
- }
192
- }
193
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { checkSkillDeployment } from '../domains/skill/check.js';
2
- const SKILL_NAME = 'superflow-verify';
3
- export async function verifyCommand(_change, options = {}) {
4
- checkSkillDeployment(SKILL_NAME, options);
5
- }
6
- //# sourceMappingURL=verify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA0B,MAAM,2BAA2B,CAAC;AAEzF,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgB,EAChB,UAA6B,EAAE;IAE/B,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}