speccore 8.3.158 → 8.3.160
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +88 -96
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +0 -13
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +67 -6
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +71 -216
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +73 -9
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +1 -2
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +1 -4
- package/dist/commands/update.js.map +1 -1
- package/dist/core/agent-adapter.d.ts +81 -0
- package/dist/core/agent-adapter.d.ts.map +1 -0
- package/dist/core/agent-adapter.js +425 -0
- package/dist/core/agent-adapter.js.map +1 -0
- package/dist/core/agents/defaults/_INDEX.md +15 -15
- package/dist/core/agents/defaults/code-reviewer.md +9 -0
- package/dist/core/agents/defaults/compiler.md +12 -3
- package/dist/core/agents/defaults/dependency-analyst.md +7 -0
- package/dist/core/agents/defaults/doc-sync-agent.md +7 -0
- package/dist/core/agents/defaults/impact-analyst.md +7 -0
- package/dist/core/agents/defaults/interaction-designer.md +17 -0
- package/dist/core/agents/defaults/performance-expert.md +9 -0
- package/dist/core/agents/defaults/regression-tester.md +7 -0
- package/dist/core/agents/defaults/security-reviewer.md +9 -0
- package/dist/core/agents/defaults/test-engineer.md +10 -0
- package/dist/core/agents/defaults/test-reviewer.md +10 -0
- package/dist/core/lock-manager.d.ts.map +1 -1
- package/dist/core/lock-manager.js +2 -0
- package/dist/core/lock-manager.js.map +1 -1
- package/dist/core/pipeline-engine.d.ts +49 -8
- package/dist/core/pipeline-engine.d.ts.map +1 -1
- package/dist/core/pipeline-engine.js +221 -34
- package/dist/core/pipeline-engine.js.map +1 -1
- package/dist/core/prompt-builder.d.ts +4 -0
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +83 -10
- package/dist/core/prompt-builder.js.map +1 -1
- package/dist/core/rules/defaults/ANALYSIS_QUALITY.md +73 -0
- package/dist/core/rules/defaults/EXECUTION.md +20 -0
- package/dist/core/rules/defaults/ITERATION_QUALITY.md +49 -0
- package/dist/core/rules/defaults/TASK_SPLIT.md +16 -0
- package/dist/core/spec-paths.d.ts.map +1 -1
- package/dist/core/spec-paths.js +2 -1
- package/dist/core/spec-paths.js.map +1 -1
- package/package.json +4 -6
- package/templates/api-design-example.md +0 -338
- package/templates/ci/github-actions.yml +0 -44
- package/templates/dashboard.html +0 -425
- package/templates/database-example.md +0 -223
- package/templates/deploy-docker/README.md +0 -284
- package/templates/deploy-docker/deploy-remote.sh +0 -79
- package/templates/deploy-docker/docker-compose.yml +0 -113
- package/templates/deploy-docker/frontend.Dockerfile +0 -43
- package/templates/deploy-docker/nginx.conf +0 -30
- package/templates/deploy-examples.yaml +0 -436
- package/templates/deploy-java/Dockerfile +0 -50
- package/templates/deploy-java/README.md +0 -212
- package/templates/deploy-java/deploy.sh +0 -120
- package/templates/deploy-java/spring-boot.service +0 -35
- package/templates/html/speccore-ask-explain.html +0 -10
- package/templates/html/speccore-ask-guide.html +0 -10
- package/templates/html/speccore-ask-match.html +0 -10
- package/templates/html/speccore-ask-pipeline.html +0 -1
- package/templates/html/speccore-ask-result.html +0 -10
- package/templates/html/speccore-demo.html +0 -449
- package/templates/html/speccore-dev.html +0 -202
- package/templates/html/speccore-help.html +0 -1
- package/templates/html/speccore-knowledge-graph.html +0 -656
- package/templates/html/speccore-retro-T-001.html +0 -1
- package/templates/html/speccore-setup-guide.html +0 -289
- package/templates/html/speccore-welcome.html +0 -1
- package/templates/security-example.md +0 -226
- package/templates/verify-spec-example.yaml +0 -982
|
@@ -10,6 +10,12 @@ activations:
|
|
|
10
10
|
|
|
11
11
|
# 角色:性能专家 (Performance Expert)
|
|
12
12
|
|
|
13
|
+
## 执行前准备
|
|
14
|
+
|
|
15
|
+
1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
|
|
16
|
+
2. **识别技术栈性能特征**:不同技术栈的瓶颈点不同(如 React 的重渲染、Java 的 GC、数据库的 N+1 等)。
|
|
17
|
+
3. **叠加检查项**:将 RULES 中的技术栈专属性能要求合并到下方检查清单。
|
|
18
|
+
|
|
13
19
|
## 职责
|
|
14
20
|
|
|
15
21
|
- 检查代码性能瓶颈
|
|
@@ -30,6 +36,9 @@ activations:
|
|
|
30
36
|
- [ ] 是否避免大对象内联
|
|
31
37
|
- [ ] 是否使用虚拟滚动(长列表)
|
|
32
38
|
|
|
39
|
+
### 技术栈专属检查(根据 RULES/ 叠加)
|
|
40
|
+
- [ ] 在此处补充从 RULES/ 中读取的匹配技术栈的性能检查项(如框架特有的优化策略、缓存机制等)
|
|
41
|
+
|
|
33
42
|
## 输出
|
|
34
43
|
|
|
35
44
|
| 位置 | 问题 | 影响 | 建议优化 |
|
|
@@ -7,6 +7,12 @@ activations:
|
|
|
7
7
|
|
|
8
8
|
# 角色:回归测试专家 (Regression Tester)
|
|
9
9
|
|
|
10
|
+
## 执行前准备
|
|
11
|
+
|
|
12
|
+
1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
|
|
13
|
+
2. **确定测试能力边界**:不同技术栈的自动化测试能力和工具链不同(如 E2E 测试框架、性能测试工具等)。
|
|
14
|
+
3. **叠加测试策略**:将 RULES 中的技术栈专属测试要求合并到下方回归测试策略。
|
|
15
|
+
|
|
10
16
|
## 职责
|
|
11
17
|
|
|
12
18
|
- 评估变更对现有功能的影响
|
|
@@ -19,6 +25,7 @@ activations:
|
|
|
19
25
|
2. **间接回归**:调用该模块的其他功能验证
|
|
20
26
|
3. **集成回归**:端到端流程验证
|
|
21
27
|
4. **数据回归**:历史数据兼容性验证
|
|
28
|
+
5. **技术栈特有回归**:框架升级、依赖变更、构建流程等是否需要专项验证
|
|
22
29
|
|
|
23
30
|
## 输出格式
|
|
24
31
|
|
|
@@ -13,6 +13,12 @@ activations:
|
|
|
13
13
|
|
|
14
14
|
# 角色:安全审查员 (Security Reviewer)
|
|
15
15
|
|
|
16
|
+
## 执行前准备
|
|
17
|
+
|
|
18
|
+
1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
|
|
19
|
+
2. **识别技术栈攻击面**:不同技术栈的安全风险不同(如 React 的 XSS、Java 的反序列化、移动端的本地存储安全等)。
|
|
20
|
+
3. **叠加检查项**:将 RULES 中的技术栈专属安全要求合并到下方检查清单。
|
|
21
|
+
|
|
16
22
|
## 职责
|
|
17
23
|
|
|
18
24
|
- 识别需求/代码中的安全风险
|
|
@@ -37,6 +43,9 @@ activations:
|
|
|
37
43
|
- [ ] 日志中是否泄露敏感信息
|
|
38
44
|
- [ ] 接口响应是否包含不必要的敏感字段
|
|
39
45
|
|
|
46
|
+
### 技术栈专属检查(根据 RULES/ 叠加)
|
|
47
|
+
- [ ] 在此处补充从 RULES/ 中读取的匹配技术栈的安全检查项(如框架特有的安全配置、依赖漏洞等)
|
|
48
|
+
|
|
40
49
|
## 输出
|
|
41
50
|
|
|
42
51
|
对每个发现的安全问题,输出:
|
|
@@ -13,13 +13,23 @@ activations:
|
|
|
13
13
|
- 检查测试覆盖率
|
|
14
14
|
- 确保新增代码有配套测试
|
|
15
15
|
|
|
16
|
+
## 执行前准备
|
|
17
|
+
|
|
18
|
+
1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
|
|
19
|
+
2. **确定测试框架**:根据技术栈确定测试命令和工具(如 Jest、JUnit、pytest、XCTest 等)。
|
|
20
|
+
3. **叠加检查项**:将 RULES 中的技术栈专属测试要求合并到下方检查清单。
|
|
21
|
+
|
|
16
22
|
## 检查项
|
|
17
23
|
|
|
24
|
+
### 通用检查
|
|
18
25
|
1. **测试执行**:所有测试通过
|
|
19
26
|
2. **覆盖率**:行覆盖 ≥ 80%,分支覆盖 ≥ 70%
|
|
20
27
|
3. **新代码覆盖**:新增代码必须有测试覆盖
|
|
21
28
|
4. **测试质量**:测试用例有效、独立、可维护
|
|
22
29
|
|
|
30
|
+
### 技术栈专属检查(根据 RULES/ 叠加)
|
|
31
|
+
- 在此处补充从 RULES/ 中读取的匹配规则中的测试要求(如 Mock 策略、测试结构、并发测试等)
|
|
32
|
+
|
|
23
33
|
## 输出
|
|
24
34
|
|
|
25
35
|
| 模块 | 测试数 | 通过 | 失败 | 覆盖率 |
|
|
@@ -13,6 +13,12 @@ activations:
|
|
|
13
13
|
- 检查测试覆盖率
|
|
14
14
|
- 识别未覆盖的边界条件
|
|
15
15
|
|
|
16
|
+
## 执行前准备
|
|
17
|
+
|
|
18
|
+
1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
|
|
19
|
+
2. **确定测试规范**:根据技术栈确定测试框架的审查重点(如 Jest 的 Mock 策略、JUnit 的断言风格等)。
|
|
20
|
+
3. **叠加检查项**:将 RULES 中的技术栈专属测试要求合并到下方审查清单。
|
|
21
|
+
|
|
16
22
|
## 审查清单
|
|
17
23
|
|
|
18
24
|
### 测试完整性
|
|
@@ -32,6 +38,10 @@ activations:
|
|
|
32
38
|
- [ ] 分支覆盖率 ≥ 70%
|
|
33
39
|
- [ ] 关键路径是否覆盖
|
|
34
40
|
|
|
41
|
+
### 技术栈专属检查(根据 RULES/ 叠加)
|
|
42
|
+
- [ ] 测试框架专属最佳实践(如 React Testing Library 的查询方式、Mockito 的验证模式等)
|
|
43
|
+
- [ ] 技术栈特有的测试边界(如前端组件测试 vs 后端集成测试的差异)
|
|
44
|
+
|
|
35
45
|
## 输出格式
|
|
36
46
|
|
|
37
47
|
```markdown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,UAAU,CAAC,CAkDrB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASvF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAchE"}
|
|
@@ -96,6 +96,8 @@ async function acquireLock(cwd, lockName, options = {}) {
|
|
|
96
96
|
iteration: options.iteration,
|
|
97
97
|
pid: process.pid,
|
|
98
98
|
};
|
|
99
|
+
// 确保锁目录存在(execute 路径未经过 init/update 的 ensureDir,否则 writeFile 会 ENOENT)
|
|
100
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(cwd, LOCKS_DIR));
|
|
99
101
|
await (0, fs_extra_1.writeFile)(lockPath, JSON.stringify(info, null, 2));
|
|
100
102
|
return { success: true, message: '锁获取成功' };
|
|
101
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-manager.js","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,
|
|
1
|
+
{"version":3,"file":"lock-manager.js","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,14 +10,32 @@
|
|
|
10
10
|
* init → phase1-prompt → (AI --apply) → phase1-done
|
|
11
11
|
* → 检测多端 → phase2-prompt → (AI --apply) → done
|
|
12
12
|
*
|
|
13
|
-
* AI
|
|
13
|
+
* AI 侧流程 (v8.3.160+ 步骤隔离模式):
|
|
14
14
|
* 1. 收到 Phase 1 prompt → 生成全局文档 → --apply
|
|
15
|
-
* 2. CLI 写入文件 → 自动推进 → 输出 [
|
|
16
|
-
* 3. AI
|
|
15
|
+
* 2. CLI 写入文件 → 自动推进 → 输出 [SPECCORE_STEP_DONE] + [SPECCORE_NEXT_STEP] + Phase 2 prompt
|
|
16
|
+
* 3. AI 在新会话中执行提示的命令 → 生成各端文档 → --apply
|
|
17
17
|
* 4. CLI 写入文件 → 标记完成 → Pipeline 结束
|
|
18
18
|
*
|
|
19
19
|
* @since v6.68.0
|
|
20
20
|
*/
|
|
21
|
+
export interface ContextSnapshot {
|
|
22
|
+
/** 核心约束摘要(从 CONSTITUTION.md 提取) */
|
|
23
|
+
keyConstraints: string[];
|
|
24
|
+
/** 已完成步骤的产出文件路径 */
|
|
25
|
+
completedOutputs: string[];
|
|
26
|
+
/** 技术栈摘要 */
|
|
27
|
+
techStackSummary?: string;
|
|
28
|
+
/** 当前任务/迭代 */
|
|
29
|
+
currentTask?: string;
|
|
30
|
+
/** 当前迭代 */
|
|
31
|
+
iteration: string;
|
|
32
|
+
/** 已完成的步骤 ID 列表 */
|
|
33
|
+
completedSteps: string[];
|
|
34
|
+
/** 下一步骤 ID */
|
|
35
|
+
nextStep?: string;
|
|
36
|
+
/** 生成时间 */
|
|
37
|
+
generatedAt: string;
|
|
38
|
+
}
|
|
21
39
|
export interface PipelineState {
|
|
22
40
|
/** 当前步骤 */
|
|
23
41
|
currentStep: string;
|
|
@@ -31,11 +49,28 @@ export interface PipelineState {
|
|
|
31
49
|
name: string;
|
|
32
50
|
/** 端列表(analyze 专用) */
|
|
33
51
|
platforms?: string[];
|
|
52
|
+
/** v8.3.160+: 上下文快照(步骤隔离模式) */
|
|
53
|
+
contextSnapshot?: ContextSnapshot;
|
|
34
54
|
/** 创建时间 */
|
|
35
55
|
createdAt: string;
|
|
36
56
|
/** 最后更新时间 */
|
|
37
57
|
updatedAt: string;
|
|
38
58
|
}
|
|
59
|
+
export interface StepResult {
|
|
60
|
+
nextStepId: string | null;
|
|
61
|
+
nextStepName: string | null;
|
|
62
|
+
isComplete: boolean;
|
|
63
|
+
/** v8.3.160+: 是否需要新会话(步骤隔离模式) */
|
|
64
|
+
requiresNewSession: boolean;
|
|
65
|
+
/** v8.3.160+: 上下文快照(供新会话恢复) */
|
|
66
|
+
contextSnapshot?: ContextSnapshot;
|
|
67
|
+
/** v8.3.160+: 推荐的 Subagent */
|
|
68
|
+
subagent?: string;
|
|
69
|
+
/** v8.3.160+: 上下文 Token 预算 */
|
|
70
|
+
contextBudget?: number;
|
|
71
|
+
/** v8.3.160+: 上下文加载类型 */
|
|
72
|
+
contextType?: 'full' | 'incremental' | 'platform-only' | 'contract-only';
|
|
73
|
+
}
|
|
39
74
|
export interface PipelineStepDef {
|
|
40
75
|
/** 步骤 ID */
|
|
41
76
|
id: string;
|
|
@@ -45,6 +80,12 @@ export interface PipelineStepDef {
|
|
|
45
80
|
next: string | null;
|
|
46
81
|
/** 条件判断:返回 true 才执行此步骤,否则跳到 next */
|
|
47
82
|
condition?: () => Promise<boolean> | boolean;
|
|
83
|
+
/** v8.3.160+: 该步骤使用的 Subagent 名称 */
|
|
84
|
+
subagent?: string;
|
|
85
|
+
/** v8.3.160+: 该步骤的上下文 Token 预算(默认 12000) */
|
|
86
|
+
contextBudget?: number;
|
|
87
|
+
/** v8.3.160+: 该步骤需要加载的上下文类型 */
|
|
88
|
+
contextType?: 'full' | 'incremental' | 'platform-only' | 'contract-only';
|
|
48
89
|
}
|
|
49
90
|
export interface PipelineEngineOptions {
|
|
50
91
|
/** 迭代名称 */
|
|
@@ -64,11 +105,11 @@ export declare class PipelineEngine {
|
|
|
64
105
|
constructor(options: PipelineEngineOptions);
|
|
65
106
|
defineSteps(stepDefs: PipelineStepDef[]): void;
|
|
66
107
|
init(firstStepId: string, extra?: Record<string, any>): Promise<void>;
|
|
67
|
-
advance(): Promise<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
108
|
+
advance(): Promise<StepResult>;
|
|
109
|
+
private buildSnapshot;
|
|
110
|
+
private saveSnapshot;
|
|
111
|
+
static loadSnapshot(cwd: string, iteration: string): Promise<ContextSnapshot | null>;
|
|
112
|
+
updateSnapshotConstraints(constraints: string[]): Promise<void>;
|
|
72
113
|
getCurrentStep(): string | null;
|
|
73
114
|
getCurrentStepDef(): PipelineStepDef | null;
|
|
74
115
|
isActive(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY;IACZ,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,eAAe;IAC9B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-engine.ts"],"names":[],"mappings":"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"}
|