@specpow/framework 0.5.31 → 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.
- package/builtin/schemas/spec-driven/schema.yaml +20 -1
- package/dist/commands/propose.d.ts.map +1 -1
- package/dist/commands/propose.js +17 -0
- package/dist/commands/propose.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +19 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/core/api-contract/brief-injector.d.ts +16 -0
- package/dist/core/api-contract/brief-injector.d.ts.map +1 -0
- package/dist/core/api-contract/brief-injector.js +153 -0
- package/dist/core/api-contract/brief-injector.js.map +1 -0
- package/dist/core/api-contract/extractor.d.ts +16 -0
- package/dist/core/api-contract/extractor.d.ts.map +1 -0
- package/dist/core/api-contract/extractor.js +604 -0
- package/dist/core/api-contract/extractor.js.map +1 -0
- package/dist/core/api-contract/index.d.ts +8 -0
- package/dist/core/api-contract/index.d.ts.map +1 -0
- package/dist/core/api-contract/index.js +8 -0
- package/dist/core/api-contract/index.js.map +1 -0
- package/dist/core/artifact-graph/graph.d.ts.map +1 -1
- package/dist/core/artifact-graph/graph.js +12 -4
- package/dist/core/artifact-graph/graph.js.map +1 -1
- package/dist/core/artifact-graph/state.d.ts.map +1 -1
- package/dist/core/artifact-graph/state.js +12 -4
- package/dist/core/artifact-graph/state.js.map +1 -1
- package/dist/core/artifact-graph/types.d.ts +8 -0
- package/dist/core/artifact-graph/types.d.ts.map +1 -1
- package/dist/core/artifact-graph/types.js +1 -0
- package/dist/core/artifact-graph/types.js.map +1 -1
- package/dist/core/sdd-engine/controller.d.ts.map +1 -1
- package/dist/core/sdd-engine/controller.js +15 -2
- package/dist/core/sdd-engine/controller.js.map +1 -1
- package/dist/core/sdd-engine/parallel-dispatcher.d.ts.map +1 -1
- package/dist/core/sdd-engine/parallel-dispatcher.js +18 -15
- package/dist/core/sdd-engine/parallel-dispatcher.js.map +1 -1
- package/dist/core/sdd-engine/types.d.ts +1 -0
- package/dist/core/sdd-engine/types.d.ts.map +1 -1
- package/package.json +1 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SpecPow 默认 Schema: spec-driven
|
|
2
|
-
#
|
|
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;
|
|
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"}
|
package/dist/commands/propose.js
CHANGED
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA2CD,wBAAsB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CtE"}
|
package/dist/commands/status.js
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import { existsSync, readFileSync, readdirSync } from 'fs';
|
|
6
|
-
import { join } from 'path';
|
|
6
|
+
import { join, basename, dirname } from 'path';
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
8
|
-
import { dirname } from 'path';
|
|
9
8
|
import { parse as parseYaml } from 'yaml';
|
|
10
9
|
import { successResponse, outputJson } from '../core/agent-contract.js';
|
|
11
10
|
import { parseTasksFile } from '../core/task-parser.js';
|
|
@@ -37,6 +36,21 @@ function resolveSchemaArtifacts(projectRoot, schemaName) {
|
|
|
37
36
|
];
|
|
38
37
|
}
|
|
39
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* 解析 output 路径中的模板变量(如 <capability>、{{entity}})为实际值
|
|
41
|
+
*
|
|
42
|
+
* propose.ts 创建工件时会将模板变量替换为实际值,
|
|
43
|
+
* status 检测时也需要做同样的替换,否则 existsSync 对含占位符的路径返回 false。
|
|
44
|
+
*/
|
|
45
|
+
function resolveOutputPath(output, changeDir) {
|
|
46
|
+
const changeName = basename(changeDir);
|
|
47
|
+
return output
|
|
48
|
+
.replace(/<capability>/g, changeName)
|
|
49
|
+
.replace(/\$\{capability\}/g, changeName)
|
|
50
|
+
.replace(/\$\{changeName\}/g, changeName)
|
|
51
|
+
.replace(/\$\{changeId\}/g, changeName)
|
|
52
|
+
.replace(/\{\{[^}]+\}\}/g, changeName); // {{entity}} 等用户自定义变量
|
|
53
|
+
}
|
|
40
54
|
export async function showStatus(options) {
|
|
41
55
|
const projectRoot = process.cwd();
|
|
42
56
|
const config = new GlobalConfigManager(projectRoot).load();
|
|
@@ -68,7 +82,7 @@ export async function showStatus(options) {
|
|
|
68
82
|
: 'spec-driven';
|
|
69
83
|
// 检查工件完成度(从 schema 动态获取工件列表)
|
|
70
84
|
const schemaArtifacts = resolveSchemaArtifacts(projectRoot, schema);
|
|
71
|
-
const done = schemaArtifacts.filter(a => existsSync(join(changeDir, a.output))).length;
|
|
85
|
+
const done = schemaArtifacts.filter(a => existsSync(join(changeDir, resolveOutputPath(a.output, changeDir)))).length;
|
|
72
86
|
const total = schemaArtifacts.length;
|
|
73
87
|
const statusIcon = done === total ? chalk.green('●') : chalk.yellow('◐');
|
|
74
88
|
console.log(` ${statusIcon} ${chalk.bold(change)} (schema: ${schema}) — ${done}/${total} 工件已创建`);
|
|
@@ -90,7 +104,7 @@ async function showChangeStatus(projectRoot, changeName, jsonOutput) {
|
|
|
90
104
|
const schemaArtifacts = resolveSchemaArtifacts(projectRoot, schema);
|
|
91
105
|
const artifactStates = {};
|
|
92
106
|
for (const a of schemaArtifacts) {
|
|
93
|
-
artifactStates[a.id] = existsSync(join(changeDir, a.output)) ? 'done' : 'ready';
|
|
107
|
+
artifactStates[a.id] = existsSync(join(changeDir, resolveOutputPath(a.output, changeDir))) ? 'done' : 'ready';
|
|
94
108
|
}
|
|
95
109
|
// 检查任务进度(支持 YAML frontmatter 和 Markdown checkbox 两种格式)
|
|
96
110
|
let taskProgress = { total: 0, complete: 0 };
|
|
@@ -126,7 +140,7 @@ async function showChangeStatus(projectRoot, changeName, jsonOutput) {
|
|
|
126
140
|
};
|
|
127
141
|
// 构建工件状态
|
|
128
142
|
const artifacts = schemaArtifacts.map(a => {
|
|
129
|
-
const fullPath = join(changeDir, a.output);
|
|
143
|
+
const fullPath = join(changeDir, resolveOutputPath(a.output, changeDir));
|
|
130
144
|
const status = existsSync(fullPath) ? 'complete' : 'missing';
|
|
131
145
|
return { name: a.id, status, path: fullPath };
|
|
132
146
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.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"}
|