@hongmaple0820/scale-engine 0.10.1 → 0.11.1
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/dist/artifact/types.d.ts +1 -1
- package/dist/artifact/types.js.map +1 -1
- package/dist/capabilities/BrowserQACapability.d.ts +151 -0
- package/dist/capabilities/BrowserQACapability.js +344 -0
- package/dist/capabilities/BrowserQACapability.js.map +1 -0
- package/dist/cli/evolutionCommands.d.ts +112 -0
- package/dist/cli/evolutionCommands.js +246 -0
- package/dist/cli/evolutionCommands.js.map +1 -0
- package/dist/cli/phaseCommands.js +74 -40
- package/dist/cli/phaseCommands.js.map +1 -1
- package/dist/guardrails/OWASPDetector.d.ts +58 -0
- package/dist/guardrails/OWASPDetector.js +508 -0
- package/dist/guardrails/OWASPDetector.js.map +1 -0
- package/dist/workflow/evolution/LessonExtractor.d.ts +90 -0
- package/dist/workflow/evolution/LessonExtractor.js +317 -0
- package/dist/workflow/evolution/LessonExtractor.js.map +1 -0
- package/dist/workflow/evolution/SelfImproveEngine.d.ts +156 -0
- package/dist/workflow/evolution/SelfImproveEngine.js +361 -0
- package/dist/workflow/evolution/SelfImproveEngine.js.map +1 -0
- package/dist/workflow/qa/E2ETestRunner.d.ts +102 -0
- package/dist/workflow/qa/E2ETestRunner.js +227 -0
- package/dist/workflow/qa/E2ETestRunner.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// SCALE Engine — E2E Test Runner
|
|
2
|
+
// 集成 BrowserQACapability 到 WorkflowEngine 的 G8 门控
|
|
3
|
+
// 设计参考:docs/03-CORE-MODULES.md §3.5 + WorkflowEngine
|
|
4
|
+
import { BrowserQACapability } from '../../capabilities/BrowserQACapability.js';
|
|
5
|
+
/**
|
|
6
|
+
* E2E Test Runner
|
|
7
|
+
*
|
|
8
|
+
* 运行 E2E 测试并生成验证结果:
|
|
9
|
+
* 1. 执行用户流程测试
|
|
10
|
+
* 2. 检查 Console 错误
|
|
11
|
+
* 3. Accessibility 检查(可选)
|
|
12
|
+
* 4. 性能检查(可选)
|
|
13
|
+
* 5. 生成 Honest Delivery 报告
|
|
14
|
+
*/
|
|
15
|
+
export class E2ETestRunner {
|
|
16
|
+
constructor(eventBus, config) {
|
|
17
|
+
this.eventBus = eventBus;
|
|
18
|
+
this.config = config;
|
|
19
|
+
this.browserQA = new BrowserQACapability(eventBus, config.baseUrl, config.screenshotDir);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 运行完整 E2E 测试
|
|
23
|
+
*/
|
|
24
|
+
async run() {
|
|
25
|
+
this.eventBus.emit('e2e.start', {
|
|
26
|
+
baseUrl: this.config.baseUrl,
|
|
27
|
+
flowsCount: this.config.flows.length
|
|
28
|
+
});
|
|
29
|
+
const startTime = Date.now();
|
|
30
|
+
let results = [];
|
|
31
|
+
let accessibilityIssues = 0;
|
|
32
|
+
let performanceMetrics;
|
|
33
|
+
// 执行流程测试(带重试)
|
|
34
|
+
for (const flow of this.config.flows) {
|
|
35
|
+
let flowResult = null;
|
|
36
|
+
let attempts = 0;
|
|
37
|
+
while (attempts < this.config.retryCount && (flowResult === null || !flowResult.passed)) {
|
|
38
|
+
attempts++;
|
|
39
|
+
this.eventBus.emit('e2e.flow.attempt', {
|
|
40
|
+
flowName: flow.name,
|
|
41
|
+
attempt: attempts
|
|
42
|
+
});
|
|
43
|
+
flowResult = await this.browserQA.runE2ETest(this.config.baseUrl, flow);
|
|
44
|
+
if (!flowResult.passed && attempts < this.config.retryCount) {
|
|
45
|
+
this.eventBus.emit('e2e.flow.retry', {
|
|
46
|
+
flowName: flow.name,
|
|
47
|
+
reason: flowResult.error ?? 'Console errors detected'
|
|
48
|
+
});
|
|
49
|
+
// 等待后重试
|
|
50
|
+
await this.sleep(1000);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (flowResult) {
|
|
54
|
+
results.push(flowResult);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Accessibility 检查
|
|
58
|
+
if (this.config.accessibilityCheck) {
|
|
59
|
+
this.eventBus.emit('e2e.accessibility.check', {});
|
|
60
|
+
const issues = await this.browserQA.runAccessibilityCheck(this.config.baseUrl);
|
|
61
|
+
accessibilityIssues = issues.length;
|
|
62
|
+
}
|
|
63
|
+
// 性能检查
|
|
64
|
+
if (this.config.performanceCheck) {
|
|
65
|
+
this.eventBus.emit('e2e.performance.check', {});
|
|
66
|
+
const perfResult = await this.browserQA.runPerformanceCheck(this.config.baseUrl);
|
|
67
|
+
performanceMetrics = {
|
|
68
|
+
avgLoadTimeMs: perfResult.loadTimeMs,
|
|
69
|
+
maxLoadTimeMs: perfResult.domContentLoadedMs
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// 生成报告
|
|
73
|
+
const report = this.browserQA.generateQAReport(results);
|
|
74
|
+
const passedCount = results.filter(r => r.passed).length;
|
|
75
|
+
const passed = passedCount === results.length && accessibilityIssues === 0;
|
|
76
|
+
const testResult = {
|
|
77
|
+
passed,
|
|
78
|
+
totalFlows: results.length,
|
|
79
|
+
passedFlows: passedCount,
|
|
80
|
+
failedFlows: results.length - passedCount,
|
|
81
|
+
results,
|
|
82
|
+
accessibilityIssues,
|
|
83
|
+
performanceMetrics,
|
|
84
|
+
report
|
|
85
|
+
};
|
|
86
|
+
this.eventBus.emit('e2e.end', {
|
|
87
|
+
passed: testResult.passed,
|
|
88
|
+
durationMs: Date.now() - startTime,
|
|
89
|
+
passedFlows: testResult.passedFlows,
|
|
90
|
+
failedFlows: testResult.failedFlows
|
|
91
|
+
});
|
|
92
|
+
return testResult;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 转换为 VerificationResult(用于 WorkflowEngine G8 门控)
|
|
96
|
+
*/
|
|
97
|
+
toVerificationResult(result) {
|
|
98
|
+
const verifications = [];
|
|
99
|
+
// 流程验证
|
|
100
|
+
for (const qaResult of result.results) {
|
|
101
|
+
verifications.push({
|
|
102
|
+
criterion: `E2E Flow: ${qaResult.flowName}`,
|
|
103
|
+
passed: qaResult.passed,
|
|
104
|
+
evidence: qaResult.passed
|
|
105
|
+
? `Flow completed in ${qaResult.durationMs}ms without errors`
|
|
106
|
+
: `Flow failed: ${qaResult.error ?? qaResult.consoleErrors.map(e => e.text).join(', ')}`
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
// Accessibility 验证
|
|
110
|
+
if (this.config.accessibilityCheck) {
|
|
111
|
+
verifications.push({
|
|
112
|
+
criterion: 'Accessibility Check',
|
|
113
|
+
passed: result.accessibilityIssues === 0,
|
|
114
|
+
evidence: result.accessibilityIssues === 0
|
|
115
|
+
? 'No accessibility issues detected'
|
|
116
|
+
: `${result.accessibilityIssues} accessibility issues found`
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
// 性能验证
|
|
120
|
+
if (this.config.performanceCheck && result.performanceMetrics) {
|
|
121
|
+
const loadTimeOk = result.performanceMetrics.avgLoadTimeMs < 3000; // 3秒阈值
|
|
122
|
+
verifications.push({
|
|
123
|
+
criterion: 'Performance Check (Load Time < 3s)',
|
|
124
|
+
passed: loadTimeOk,
|
|
125
|
+
evidence: loadTimeOk
|
|
126
|
+
? `Average load time: ${result.performanceMetrics.avgLoadTimeMs}ms`
|
|
127
|
+
: `Load time exceeds threshold: ${result.performanceMetrics.avgLoadTimeMs}ms`
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
return verifications;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* 运行并生成 VerificationResult(用于 G8 门控)
|
|
134
|
+
*/
|
|
135
|
+
async runForVerification() {
|
|
136
|
+
const result = await this.run();
|
|
137
|
+
return this.toVerificationResult(result);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* 添加自定义流程
|
|
141
|
+
*/
|
|
142
|
+
addFlow(flow) {
|
|
143
|
+
this.config.flows.push(flow);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* 获取 MCP 工具调用序列(用于 Claude Code 实际执行)
|
|
147
|
+
*/
|
|
148
|
+
getMCPExecutionPlan() {
|
|
149
|
+
return this.config.flows.map(flow => ({
|
|
150
|
+
flow,
|
|
151
|
+
calls: this.browserQA.getMCPCallSequence(this.config.baseUrl, flow)
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 快速验证(仅检查关键流程)
|
|
156
|
+
*/
|
|
157
|
+
async quickVerify() {
|
|
158
|
+
// 只运行第一个流程,快速检查
|
|
159
|
+
if (this.config.flows.length === 0) {
|
|
160
|
+
this.eventBus.emit('e2e.quick.empty', {});
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
const criticalFlow = this.config.flows[0];
|
|
164
|
+
const result = await this.browserQA.runE2ETest(this.config.baseUrl, criticalFlow);
|
|
165
|
+
return result.passed && result.consoleErrors.length === 0;
|
|
166
|
+
}
|
|
167
|
+
sleep(ms) {
|
|
168
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* E2E 测试配置预设
|
|
173
|
+
*/
|
|
174
|
+
export const E2EPresets = {
|
|
175
|
+
/**
|
|
176
|
+
* 快速测试(仅关键流程,无重试)
|
|
177
|
+
*/
|
|
178
|
+
quick: (baseUrl, flows) => ({
|
|
179
|
+
baseUrl,
|
|
180
|
+
flows,
|
|
181
|
+
timeoutMs: 5000,
|
|
182
|
+
retryCount: 1,
|
|
183
|
+
screenshotDir: './qa-screenshots',
|
|
184
|
+
accessibilityCheck: false,
|
|
185
|
+
performanceCheck: false
|
|
186
|
+
}),
|
|
187
|
+
/**
|
|
188
|
+
* 标准测试(完整流程,2次重试)
|
|
189
|
+
*/
|
|
190
|
+
standard: (baseUrl, flows) => ({
|
|
191
|
+
baseUrl,
|
|
192
|
+
flows,
|
|
193
|
+
timeoutMs: 10000,
|
|
194
|
+
retryCount: 2,
|
|
195
|
+
screenshotDir: './qa-screenshots',
|
|
196
|
+
accessibilityCheck: true,
|
|
197
|
+
performanceCheck: false
|
|
198
|
+
}),
|
|
199
|
+
/**
|
|
200
|
+
* 完整测试(所有检查,3次重试)
|
|
201
|
+
*/
|
|
202
|
+
full: (baseUrl, flows) => ({
|
|
203
|
+
baseUrl,
|
|
204
|
+
flows,
|
|
205
|
+
timeoutMs: 15000,
|
|
206
|
+
retryCount: 3,
|
|
207
|
+
screenshotDir: './qa-screenshots',
|
|
208
|
+
accessibilityCheck: true,
|
|
209
|
+
performanceCheck: true
|
|
210
|
+
})
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* G8 浏览器门控检查
|
|
214
|
+
*
|
|
215
|
+
* 用于 WorkflowEngine 的第 8 个门控(浏览器 QA)
|
|
216
|
+
*/
|
|
217
|
+
export async function browserGateCheck(eventBus, baseUrl, flows) {
|
|
218
|
+
const config = E2EPresets.standard(baseUrl, flows);
|
|
219
|
+
const runner = new E2ETestRunner(eventBus, config);
|
|
220
|
+
const verifications = await runner.runForVerification();
|
|
221
|
+
const passed = verifications.every(v => v.passed);
|
|
222
|
+
const report = passed
|
|
223
|
+
? 'All browser QA checks passed'
|
|
224
|
+
: `Browser QA failed: ${verifications.filter(v => !v.passed).map(v => v.criterion).join(', ')}`;
|
|
225
|
+
return { passed, verifications, report };
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=E2ETestRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"E2ETestRunner.js","sourceRoot":"","sources":["../../../src/workflow/qa/E2ETestRunner.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,kDAAkD;AAClD,qDAAqD;AAIrD,OAAO,EAAE,mBAAmB,EAAgC,MAAM,2CAA2C,CAAA;AAgC7G;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAa;IAKxB,YAAY,QAAmB,EAAE,MAAqB;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;YAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;SACrC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,OAAO,GAAe,EAAE,CAAA;QAC5B,IAAI,mBAAmB,GAAG,CAAC,CAAA;QAC3B,IAAI,kBAAgF,CAAA;QAEpF,cAAc;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,UAAU,GAAoB,IAAI,CAAA;YACtC,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxF,QAAQ,EAAE,CAAA;gBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBACrC,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,QAAQ;iBAClB,CAAC,CAAA;gBAEF,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBAEvE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBACnC,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,MAAM,EAAE,UAAU,CAAC,KAAK,IAAI,yBAAyB;qBACtD,CAAC,CAAA;oBACF,QAAQ;oBACR,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAA;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC9E,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAA;QACrC,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;YAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAChF,kBAAkB,GAAG;gBACnB,aAAa,EAAE,UAAU,CAAC,UAAU;gBACpC,aAAa,EAAE,UAAU,CAAC,kBAAkB;aAC7C,CAAA;QACH,CAAC;QAED,OAAO;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACvD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;QACxD,MAAM,MAAM,GAAG,WAAW,KAAK,OAAO,CAAC,MAAM,IAAI,mBAAmB,KAAK,CAAC,CAAA;QAE1E,MAAM,UAAU,GAAkB;YAChC,MAAM;YACN,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,OAAO,CAAC,MAAM,GAAG,WAAW;YACzC,OAAO;YACP,mBAAmB;YACnB,kBAAkB;YAClB,MAAM;SACP,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;YAC5B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAqB;QACxC,MAAM,aAAa,GAAyB,EAAE,CAAA;QAE9C,OAAO;QACP,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACtC,aAAa,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,aAAa,QAAQ,CAAC,QAAQ,EAAE;gBAC3C,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,MAAM;oBACvB,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,mBAAmB;oBAC7D,CAAC,CAAC,gBAAgB,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC3F,CAAC,CAAA;QACJ,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,qBAAqB;gBAChC,MAAM,EAAE,MAAM,CAAC,mBAAmB,KAAK,CAAC;gBACxC,QAAQ,EAAE,MAAM,CAAC,mBAAmB,KAAK,CAAC;oBACxC,CAAC,CAAC,kCAAkC;oBACpC,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,6BAA6B;aAC/D,CAAC,CAAA;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAA,CAAC,OAAO;YACzE,aAAa,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,oCAAoC;gBAC/C,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,UAAU;oBAClB,CAAC,CAAC,sBAAsB,MAAM,CAAC,kBAAkB,CAAC,aAAa,IAAI;oBACnE,CAAC,CAAC,gCAAgC,MAAM,CAAC,kBAAkB,CAAC,aAAa,IAAI;aAChF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;QAC/B,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SACpE,CAAC,CAAC,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,gBAAgB;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAEjF,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAA;IAC3D,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;OAEG;IACH,KAAK,EAAE,CAAC,OAAe,EAAE,KAAiB,EAAiB,EAAE,CAAC,CAAC;QAC7D,OAAO;QACP,KAAK;QACL,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,kBAAkB;QACjC,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,KAAK;KACxB,CAAC;IAEF;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAe,EAAE,KAAiB,EAAiB,EAAE,CAAC,CAAC;QAChE,OAAO;QACP,KAAK;QACL,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,kBAAkB;QACjC,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,KAAK;KACxB,CAAC;IAEF;;OAEG;IACH,IAAI,EAAE,CAAC,OAAe,EAAE,KAAiB,EAAiB,EAAE,CAAC,CAAC;QAC5D,OAAO;QACP,KAAK;QACL,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,kBAAkB;QACjC,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,IAAI;KACvB,CAAC;CACH,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAmB,EACnB,OAAe,EACf,KAAiB;IAEjB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAElD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAA;IACvD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAEjD,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,sBAAsB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IAEjG,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;AAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hongmaple0820/scale-engine",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "SCALE Engine v0.10.1 - AI engineering scaffold with hardened phase workflow gates, scoped ship safety, TDD evidence, deterministic review scanning, built-in G7 security evidence, 11 platform adapters, artifact lifecycle management, and auto-evolution loop",
|
|
3
|
+
"version": "0.11.1",
|
|
4
|
+
"description": "SCALE Engine v0.10.1 - AI engineering scaffold with hardened phase workflow gates, scoped ship safety, TDD evidence, deterministic review scanning, built-in G7 security evidence, 11 platform adapters, artifact lifecycle management, and auto-evolution loop",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"scale": "dist/api/cli.js"
|