@specpow/framework 0.5.32 → 0.6.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 (29) hide show
  1. package/builtin/schemas/spec-driven/schema.yaml +20 -1
  2. package/dist/commands/propose.d.ts.map +1 -1
  3. package/dist/commands/propose.js +17 -0
  4. package/dist/commands/propose.js.map +1 -1
  5. package/dist/core/api-contract/brief-injector.d.ts +16 -0
  6. package/dist/core/api-contract/brief-injector.d.ts.map +1 -0
  7. package/dist/core/api-contract/brief-injector.js +153 -0
  8. package/dist/core/api-contract/brief-injector.js.map +1 -0
  9. package/dist/core/api-contract/extractor.d.ts +16 -0
  10. package/dist/core/api-contract/extractor.d.ts.map +1 -0
  11. package/dist/core/api-contract/extractor.js +604 -0
  12. package/dist/core/api-contract/extractor.js.map +1 -0
  13. package/dist/core/api-contract/index.d.ts +8 -0
  14. package/dist/core/api-contract/index.d.ts.map +1 -0
  15. package/dist/core/api-contract/index.js +8 -0
  16. package/dist/core/api-contract/index.js.map +1 -0
  17. package/dist/core/artifact-graph/types.d.ts +8 -0
  18. package/dist/core/artifact-graph/types.d.ts.map +1 -1
  19. package/dist/core/artifact-graph/types.js +1 -0
  20. package/dist/core/artifact-graph/types.js.map +1 -1
  21. package/dist/core/sdd-engine/controller.d.ts.map +1 -1
  22. package/dist/core/sdd-engine/controller.js +15 -2
  23. package/dist/core/sdd-engine/controller.js.map +1 -1
  24. package/dist/core/sdd-engine/parallel-dispatcher.d.ts.map +1 -1
  25. package/dist/core/sdd-engine/parallel-dispatcher.js +18 -15
  26. package/dist/core/sdd-engine/parallel-dispatcher.js.map +1 -1
  27. package/dist/core/sdd-engine/types.d.ts +1 -0
  28. package/dist/core/sdd-engine/types.d.ts.map +1 -1
  29. package/package.json +1 -2
@@ -1,5 +1,5 @@
1
1
  # SpecPow 默认 Schema: spec-driven
2
- # 四阶段工件流: proposal → specs → design → tasks → apply
2
+ # 五阶段工件流: proposal → specs → design → api-contract → tasks → apply
3
3
  # 融合 OpenSpec 的规范驱动 + Superpowers 的执行方法论
4
4
 
5
5
  name: spec-driven
@@ -45,6 +45,25 @@ artifacts:
45
45
  每个需求必须可验证。
46
46
  output: specs/<capability>/spec.md
47
47
 
48
+ - id: api-contract
49
+ name: API 契约
50
+ description: REST API 接口契约(OpenAPI 3.0 YAML 可读子集)
51
+ requires:
52
+ - design
53
+ template: api-contract.md
54
+ instruction: |
55
+ 从 design.md 中提取 REST API 接口定义,转换为 OpenAPI 3.0 YAML 可读子集。
56
+
57
+ 规则:
58
+ 1. 仅当 design.md 包含 REST API 接口定义时生成
59
+ 2. 格式为 OpenAPI 3.0 YAML,包含 openapi、info、paths 三部分
60
+ 3. paths 中每个 endpoint 必须包含:method、summary、parameters(含类型/必填/enum)、requestBody(含 schema)、responses(含 schema)
61
+ 4. 支持嵌套对象、数组、enum、optional 字段
62
+ 5. 如果 design.md 中没有 REST API 定义,不生成此文件
63
+ output: api-contract.md
64
+ conditional: true
65
+ autoGenerate: true
66
+
48
67
  - id: design
49
68
  name: 设计
50
69
  description: 怎么做?技术方案和架构决策
@@ -1 +1 @@
1
- {"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAmED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0QxF"}
1
+ {"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAmED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0RxF"}
@@ -12,6 +12,7 @@ import { createTemplateEngine } from '../core/templates/index.js';
12
12
  import { GlobalConfigManager } from '../core/config/global-config.js';
13
13
  import { SchemaResolver } from '../core/artifact-graph/resolver.js';
14
14
  import { successResponse, errorResponse, outputJson } from '../core/agent-contract.js';
15
+ import { extractApiContract } from '../core/api-contract/extractor.js';
15
16
  /**
16
17
  * 将 slug 格式的名称转换为可读标题
17
18
  * 例如: 'add-user-auth' → 'Add User Auth'
@@ -141,6 +142,22 @@ export async function proposeChange(name, options) {
141
142
  console.log(chalk.dim(` ○ ${artifact.id} — 等待依赖: ${artifact.requires.join(', ')}`));
142
143
  continue;
143
144
  }
145
+ // 自动生成工件(如 api-contract 从 design.md 提取)
146
+ if (artifact.autoGenerate && artifact.id === 'api-contract') {
147
+ const designPath = join(changeDir, 'design.md');
148
+ const apiContract = extractApiContract(designPath);
149
+ if (apiContract) {
150
+ const outputPath = join(changeDir, artifact.output || 'api-contract.md');
151
+ writeFileSync(outputPath, apiContract, 'utf-8');
152
+ created.push(artifact.id);
153
+ console.log(chalk.green(` ✓ 自动生成: ${artifact.id} → ${relative(changeDir, outputPath)}`));
154
+ continue;
155
+ }
156
+ else {
157
+ console.log(chalk.dim(` ○ ${artifact.id} — design.md 中无 REST API 定义,跳过`));
158
+ continue;
159
+ }
160
+ }
144
161
  // 使用模板引擎加载并渲染模板
145
162
  let resolvedTemplate = '';
146
163
  const templateName = artifact.template || '';
@@ -1 +1 @@
1
- {"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * API 契约注入器
3
+ *
4
+ * 分析 task 的 description 和 files,从 api-contract.md 中提取相关 API 定义,
5
+ * 生成注入到 task brief 的约束文本。
6
+ */
7
+ /**
8
+ * 从变更目录中加载 api-contract.md 并注入到 task brief
9
+ *
10
+ * @param changeDir 变更目录路径(包含 api-contract.md)
11
+ * @param taskDescription 任务描述
12
+ * @param taskFiles 任务涉及的文件列表
13
+ * @returns API 约束文本,或 undefined(无相关 API 时)
14
+ */
15
+ export declare function injectApiContract(changeDir: string, taskDescription: string, taskFiles: string[]): string | undefined;
16
+ //# sourceMappingURL=brief-injector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-injector.d.ts","sourceRoot":"","sources":["../../../src/core/api-contract/brief-injector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,GAAG,SAAS,CAUpB"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * API 契约注入器
3
+ *
4
+ * 分析 task 的 description 和 files,从 api-contract.md 中提取相关 API 定义,
5
+ * 生成注入到 task brief 的约束文本。
6
+ */
7
+ import { readFileSync, existsSync } from 'fs';
8
+ import { join } from 'path';
9
+ /**
10
+ * 从变更目录中加载 api-contract.md 并注入到 task brief
11
+ *
12
+ * @param changeDir 变更目录路径(包含 api-contract.md)
13
+ * @param taskDescription 任务描述
14
+ * @param taskFiles 任务涉及的文件列表
15
+ * @returns API 约束文本,或 undefined(无相关 API 时)
16
+ */
17
+ export function injectApiContract(changeDir, taskDescription, taskFiles) {
18
+ const contractPath = join(changeDir, 'api-contract.md');
19
+ if (!existsSync(contractPath))
20
+ return undefined;
21
+ const contractContent = readFileSync(contractPath, 'utf-8');
22
+ const relevantPaths = findRelevantPaths(contractContent, taskDescription, taskFiles);
23
+ if (relevantPaths.length === 0)
24
+ return undefined;
25
+ return formatApiContractConstraint(relevantPaths);
26
+ }
27
+ /**
28
+ * 从 api-contract.md 中查找与 task 相关的 API paths
29
+ */
30
+ function findRelevantPaths(contractContent, taskDescription, taskFiles) {
31
+ const relevantPaths = [];
32
+ // 从 contract 中提取所有 path 定义块
33
+ const pathBlocks = extractPathBlocks(contractContent);
34
+ for (const block of pathBlocks) {
35
+ if (isPathRelevant(block, taskDescription, taskFiles)) {
36
+ relevantPaths.push(block.fullText);
37
+ }
38
+ }
39
+ return relevantPaths;
40
+ }
41
+ /**
42
+ * 从 OpenAPI YAML 中提取每个 path 的定义块
43
+ */
44
+ function extractPathBlocks(content) {
45
+ const blocks = [];
46
+ const lines = content.split('\n');
47
+ let currentPath = '';
48
+ let currentBlock = [];
49
+ let inPaths = false;
50
+ for (let i = 0; i < lines.length; i++) {
51
+ const line = lines[i];
52
+ // 检测 paths: 开始
53
+ if (/^paths:\s*$/.test(line.trim())) {
54
+ inPaths = true;
55
+ continue;
56
+ }
57
+ if (!inPaths)
58
+ continue;
59
+ // 检测顶层 path 定义(如 ` /api/xxx:`,缩进 2 空格)
60
+ const pathMatch = line.match(/^ (\/[^:]+):\s*$/);
61
+ if (pathMatch) {
62
+ // 保存前一个 block
63
+ if (currentPath && currentBlock.length > 0) {
64
+ blocks.push({ path: currentPath, fullText: currentBlock.join('\n') });
65
+ }
66
+ currentPath = pathMatch[1];
67
+ currentBlock = [line];
68
+ continue;
69
+ }
70
+ // 检测是否超出了 paths section(新的顶层 key)
71
+ if (/^\w/.test(line) && line.trim().length > 0) {
72
+ inPaths = false;
73
+ if (currentPath && currentBlock.length > 0) {
74
+ blocks.push({ path: currentPath, fullText: currentBlock.join('\n') });
75
+ currentPath = '';
76
+ currentBlock = [];
77
+ }
78
+ continue;
79
+ }
80
+ // 属于当前 path 的行
81
+ if (currentPath) {
82
+ currentBlock.push(line);
83
+ }
84
+ }
85
+ // 保存最后一个 block
86
+ if (currentPath && currentBlock.length > 0) {
87
+ blocks.push({ path: currentPath, fullText: currentBlock.join('\n') });
88
+ }
89
+ return blocks;
90
+ }
91
+ /**
92
+ * 判断一个 API path 是否与 task 相关
93
+ */
94
+ function isPathRelevant(block, taskDescription, taskFiles) {
95
+ const path = block.path;
96
+ // 提取 path 中的关键词(去掉 /api/ 前缀和参数占位符)
97
+ const pathKeywords = path
98
+ .replace(/^\/api\//, '')
99
+ .replace(/\{[^}]+\}/g, '')
100
+ .split('/')
101
+ .filter(s => s.length > 0);
102
+ // 策略 1: task description 中直接提到 API path
103
+ if (taskDescription.includes(path))
104
+ return true;
105
+ // 策略 2: task description 中提到 path 的关键词
106
+ for (const keyword of pathKeywords) {
107
+ // 检查 description 中是否包含这个资源名
108
+ const patterns = [
109
+ new RegExp(`\\b${keyword}s?\\b`, 'i'), // 单复数形式
110
+ new RegExp(`\\/api\\/.*${keyword}`, 'i'), // 在 URL 中出现
111
+ ];
112
+ if (patterns.some(p => p.test(taskDescription)))
113
+ return true;
114
+ }
115
+ // 策略 3: task files 中包含相关的路由/服务文件名
116
+ const routeFilePatterns = pathKeywords.map(k => [
117
+ new RegExp(`routes?\\/.*${k}`, 'i'), // routes/horoscope.ts
118
+ new RegExp(`services?\\/.*${k}`, 'i'), // services/auth.ts
119
+ new RegExp(`controllers?\\/.*${k}`, 'i'), // controllers/reading.ts
120
+ new RegExp(`${k}\\.(service|controller|route)`, 'i'), // horoscope.service.ts
121
+ new RegExp(`api[_-]?${k}`, 'i'), // api-horoscope
122
+ new RegExp(`${k}[_-]?api`, 'i'), // horoscope-api
123
+ ]).flat();
124
+ for (const file of taskFiles) {
125
+ for (const pattern of routeFilePatterns) {
126
+ if (pattern.test(file))
127
+ return true;
128
+ }
129
+ // 也检查前端 API service 文件
130
+ if (/service|api|client/.test(file)) {
131
+ for (const keyword of pathKeywords) {
132
+ if (new RegExp(keyword, 'i').test(file))
133
+ return true;
134
+ }
135
+ }
136
+ }
137
+ return false;
138
+ }
139
+ /**
140
+ * 格式化 API 约束文本,用于注入 task brief
141
+ */
142
+ function formatApiContractConstraint(pathBlocks) {
143
+ return [
144
+ '## API Contract Constraints',
145
+ '',
146
+ '**严格遵守以下 API 契约,不得修改路径、参数名、响应结构。**',
147
+ '',
148
+ '```yaml',
149
+ ...pathBlocks,
150
+ '```',
151
+ ].join('\n');
152
+ }
153
+ //# sourceMappingURL=brief-injector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-injector.js","sourceRoot":"","sources":["../../../src/core/api-contract/brief-injector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * API 契约提取器
3
+ *
4
+ * 从 design.md 中提取 REST API 接口定义,转换为 OpenAPI 3.0 YAML 可读子集。
5
+ * 使用正则+模式匹配,不依赖外部 AI 调用。
6
+ */
7
+ /**
8
+ * 从 design.md 文件提取 API 契约
9
+ * @returns OpenAPI 3.0 YAML 字符串,或 null(无 API 定义时)
10
+ */
11
+ export declare function extractApiContract(designMdPath: string): string | null;
12
+ /**
13
+ * 从 design.md 文本内容提取 API 契约
14
+ */
15
+ export declare function extractApiContractFromText(content: string): string | null;
16
+ //# sourceMappingURL=extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/core/api-contract/extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8CH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKtE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzE"}