@hongmaple0820/scale-engine 0.40.2 → 0.43.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 (200) hide show
  1. package/README.md +30 -2
  2. package/dist/api/cli.js +19 -0
  3. package/dist/api/cli.js.map +1 -1
  4. package/dist/api/quickstart.d.ts +11 -0
  5. package/dist/api/quickstart.js +98 -1
  6. package/dist/api/quickstart.js.map +1 -1
  7. package/dist/artifact/fsmDefinitions.js +15 -2
  8. package/dist/artifact/fsmDefinitions.js.map +1 -1
  9. package/dist/artifact/types.d.ts +1 -1
  10. package/dist/artifact/types.js.map +1 -1
  11. package/dist/cache/ScanCache.d.ts +41 -0
  12. package/dist/cache/ScanCache.js +120 -0
  13. package/dist/cache/ScanCache.js.map +1 -0
  14. package/dist/capabilities/BrowserQACapability.d.ts +14 -0
  15. package/dist/capabilities/BrowserQACapability.js +94 -0
  16. package/dist/capabilities/BrowserQACapability.js.map +1 -1
  17. package/dist/cli/autofixCommands.d.ts +22 -0
  18. package/dist/cli/autofixCommands.js +32 -0
  19. package/dist/cli/autofixCommands.js.map +1 -0
  20. package/dist/cli/cortexCommands.d.ts +71 -0
  21. package/dist/cli/cortexCommands.js +335 -0
  22. package/dist/cli/cortexCommands.js.map +1 -0
  23. package/dist/cli/costCommands.d.ts +13 -0
  24. package/dist/cli/costCommands.js +48 -0
  25. package/dist/cli/costCommands.js.map +1 -0
  26. package/dist/cli/orchCommands.d.ts +43 -0
  27. package/dist/cli/orchCommands.js +135 -0
  28. package/dist/cli/orchCommands.js.map +1 -0
  29. package/dist/cli/phaseCommands.js +1 -2
  30. package/dist/cli/phaseCommands.js.map +1 -1
  31. package/dist/cli/qaCommands.d.ts +22 -0
  32. package/dist/cli/qaCommands.js +84 -0
  33. package/dist/cli/qaCommands.js.map +1 -0
  34. package/dist/cli/quickstartCommands.d.ts +17 -0
  35. package/dist/cli/quickstartCommands.js +47 -0
  36. package/dist/cli/quickstartCommands.js.map +1 -0
  37. package/dist/cli/shieldCommands.d.ts +30 -0
  38. package/dist/cli/shieldCommands.js +212 -0
  39. package/dist/cli/shieldCommands.js.map +1 -0
  40. package/dist/cli/tuiCommands.d.ts +7 -0
  41. package/dist/cli/tuiCommands.js +33 -0
  42. package/dist/cli/tuiCommands.js.map +1 -0
  43. package/dist/config/profiles.js +26 -0
  44. package/dist/config/profiles.js.map +1 -1
  45. package/dist/cortex/GovernanceMetrics.d.ts +66 -0
  46. package/dist/cortex/GovernanceMetrics.js +230 -0
  47. package/dist/cortex/GovernanceMetrics.js.map +1 -0
  48. package/dist/cortex/InstinctExtractor.d.ts +61 -0
  49. package/dist/cortex/InstinctExtractor.js +184 -0
  50. package/dist/cortex/InstinctExtractor.js.map +1 -0
  51. package/dist/cortex/InstinctStore.d.ts +54 -0
  52. package/dist/cortex/InstinctStore.js +266 -0
  53. package/dist/cortex/InstinctStore.js.map +1 -0
  54. package/dist/cortex/ReflexionEngine.d.ts +34 -0
  55. package/dist/cortex/ReflexionEngine.js +157 -0
  56. package/dist/cortex/ReflexionEngine.js.map +1 -0
  57. package/dist/cortex/SessionInjector.d.ts +44 -0
  58. package/dist/cortex/SessionInjector.js +127 -0
  59. package/dist/cortex/SessionInjector.js.map +1 -0
  60. package/dist/cortex/adapters/ClaudeAdapter.d.ts +17 -0
  61. package/dist/cortex/adapters/ClaudeAdapter.js +61 -0
  62. package/dist/cortex/adapters/ClaudeAdapter.js.map +1 -0
  63. package/dist/cortex/adapters/CodexAdapter.d.ts +10 -0
  64. package/dist/cortex/adapters/CodexAdapter.js +52 -0
  65. package/dist/cortex/adapters/CodexAdapter.js.map +1 -0
  66. package/dist/cortex/adapters/CursorAdapter.d.ts +10 -0
  67. package/dist/cortex/adapters/CursorAdapter.js +46 -0
  68. package/dist/cortex/adapters/CursorAdapter.js.map +1 -0
  69. package/dist/cortex/adapters/GeminiAdapter.d.ts +11 -0
  70. package/dist/cortex/adapters/GeminiAdapter.js +48 -0
  71. package/dist/cortex/adapters/GeminiAdapter.js.map +1 -0
  72. package/dist/eval/BenchmarkPublisher.d.ts +25 -0
  73. package/dist/eval/BenchmarkPublisher.js +27 -0
  74. package/dist/eval/BenchmarkPublisher.js.map +1 -0
  75. package/dist/guardrails/DependencyAuditor.js +10 -1
  76. package/dist/guardrails/DependencyAuditor.js.map +1 -1
  77. package/dist/orchestrator/OrchestratorDaemon.d.ts +44 -0
  78. package/dist/orchestrator/OrchestratorDaemon.js +150 -0
  79. package/dist/orchestrator/OrchestratorDaemon.js.map +1 -0
  80. package/dist/orchestrator/PolicyLoader.d.ts +80 -0
  81. package/dist/orchestrator/PolicyLoader.js +229 -0
  82. package/dist/orchestrator/PolicyLoader.js.map +1 -0
  83. package/dist/orchestrator/ReconciliationLoop.d.ts +71 -0
  84. package/dist/orchestrator/ReconciliationLoop.js +266 -0
  85. package/dist/orchestrator/ReconciliationLoop.js.map +1 -0
  86. package/dist/orchestrator/TrackerAdapter.d.ts +60 -0
  87. package/dist/orchestrator/TrackerAdapter.js +147 -0
  88. package/dist/orchestrator/TrackerAdapter.js.map +1 -0
  89. package/dist/orchestrator/WorkspaceManager.d.ts +66 -0
  90. package/dist/orchestrator/WorkspaceManager.js +257 -0
  91. package/dist/orchestrator/WorkspaceManager.js.map +1 -0
  92. package/dist/qa/BrowserDaemon.d.ts +23 -0
  93. package/dist/qa/BrowserDaemon.js +79 -0
  94. package/dist/qa/BrowserDaemon.js.map +1 -0
  95. package/dist/qa/E2ETestOrchestrator.d.ts +14 -0
  96. package/dist/qa/E2ETestOrchestrator.js +19 -0
  97. package/dist/qa/E2ETestOrchestrator.js.map +1 -0
  98. package/dist/review/CrossModelReviewer.d.ts +35 -0
  99. package/dist/review/CrossModelReviewer.js +75 -0
  100. package/dist/review/CrossModelReviewer.js.map +1 -0
  101. package/dist/review/ReviewAggregator.d.ts +13 -0
  102. package/dist/review/ReviewAggregator.js +28 -0
  103. package/dist/review/ReviewAggregator.js.map +1 -0
  104. package/dist/review/reviewCommands.d.ts +15 -0
  105. package/dist/review/reviewCommands.js +24 -0
  106. package/dist/review/reviewCommands.js.map +1 -0
  107. package/dist/routing/LocalModelProvider.d.ts +11 -0
  108. package/dist/routing/LocalModelProvider.js +21 -0
  109. package/dist/routing/LocalModelProvider.js.map +1 -0
  110. package/dist/routing/ModelRouter.d.ts +12 -0
  111. package/dist/routing/ModelRouter.js +31 -4
  112. package/dist/routing/ModelRouter.js.map +1 -1
  113. package/dist/runtime/AiOsRuntime.d.ts +1 -0
  114. package/dist/runtime/AiOsRuntime.js +15 -0
  115. package/dist/runtime/AiOsRuntime.js.map +1 -1
  116. package/dist/runtime/CostAnalyzer.d.ts +53 -0
  117. package/dist/runtime/CostAnalyzer.js +160 -0
  118. package/dist/runtime/CostAnalyzer.js.map +1 -0
  119. package/dist/runtime/CostOptimizer.d.ts +11 -0
  120. package/dist/runtime/CostOptimizer.js +21 -0
  121. package/dist/runtime/CostOptimizer.js.map +1 -0
  122. package/dist/shield/PolicyCompiler.d.ts +70 -0
  123. package/dist/shield/PolicyCompiler.js +540 -0
  124. package/dist/shield/PolicyCompiler.js.map +1 -0
  125. package/dist/shield/ProtectedPaths.d.ts +39 -0
  126. package/dist/shield/ProtectedPaths.js +179 -0
  127. package/dist/shield/ProtectedPaths.js.map +1 -0
  128. package/dist/shield/ShieldProtocol.d.ts +50 -0
  129. package/dist/shield/ShieldProtocol.js +103 -0
  130. package/dist/shield/ShieldProtocol.js.map +1 -0
  131. package/dist/skills/SkillMdStandard.d.ts +33 -0
  132. package/dist/skills/SkillMdStandard.js +88 -0
  133. package/dist/skills/SkillMdStandard.js.map +1 -0
  134. package/dist/skills/SkillRegistry.d.ts +9 -1
  135. package/dist/skills/SkillRegistry.js +20 -0
  136. package/dist/skills/SkillRegistry.js.map +1 -1
  137. package/dist/skills/interop/GStackInterop.d.ts +15 -0
  138. package/dist/skills/interop/GStackInterop.js +34 -0
  139. package/dist/skills/interop/GStackInterop.js.map +1 -0
  140. package/dist/skills/interop/OMCInterop.d.ts +15 -0
  141. package/dist/skills/interop/OMCInterop.js +34 -0
  142. package/dist/skills/interop/OMCInterop.js.map +1 -0
  143. package/dist/tui/TuiDashboard.d.ts +3 -0
  144. package/dist/tui/TuiDashboard.js +120 -0
  145. package/dist/tui/TuiDashboard.js.map +1 -0
  146. package/dist/workflow/GateCatalog.d.ts +2 -0
  147. package/dist/workflow/GateCatalog.js +59 -3
  148. package/dist/workflow/GateCatalog.js.map +1 -1
  149. package/dist/workflow/GovernanceTemplatePacks.d.ts +1 -1
  150. package/dist/workflow/GovernanceTemplatePacks.js +15 -0
  151. package/dist/workflow/GovernanceTemplatePacks.js.map +1 -1
  152. package/dist/workflow/TddLoop.d.ts +2 -0
  153. package/dist/workflow/TddLoop.js +2 -0
  154. package/dist/workflow/TddLoop.js.map +1 -1
  155. package/dist/workflow/UpgradeManager.d.ts +10 -1
  156. package/dist/workflow/UpgradeManager.js +55 -0
  157. package/dist/workflow/UpgradeManager.js.map +1 -1
  158. package/dist/workflow/VerificationProfile.d.ts +8 -0
  159. package/dist/workflow/VerificationProfile.js +61 -0
  160. package/dist/workflow/VerificationProfile.js.map +1 -1
  161. package/dist/workflow/VerificationSchema.d.ts +46 -0
  162. package/dist/workflow/VerificationSchema.js +97 -0
  163. package/dist/workflow/VerificationSchema.js.map +1 -0
  164. package/dist/workflow/autofix/AutoFixEngine.d.ts +37 -0
  165. package/dist/workflow/autofix/AutoFixEngine.js +169 -0
  166. package/dist/workflow/autofix/AutoFixEngine.js.map +1 -0
  167. package/dist/workflow/execution/RalphEngine.d.ts +18 -0
  168. package/dist/workflow/execution/RalphEngine.js +22 -0
  169. package/dist/workflow/execution/RalphEngine.js.map +1 -1
  170. package/dist/workflow/gates/EnhancedGates.d.ts +74 -0
  171. package/dist/workflow/gates/EnhancedGates.js +653 -0
  172. package/dist/workflow/gates/EnhancedGates.js.map +1 -0
  173. package/dist/workflow/gates/GateSystem.d.ts +3 -0
  174. package/dist/workflow/gates/GateSystem.js +94 -1
  175. package/dist/workflow/gates/GateSystem.js.map +1 -1
  176. package/dist/workflow/types.d.ts +1 -1
  177. package/docs/README.md +3 -0
  178. package/docs/guides/DEVELOPMENT_WORKFLOW.md +28 -9
  179. package/docs/guides/GETTING_STARTED.md +19 -0
  180. package/docs/guides/MIGRATION.md +119 -0
  181. package/docs/workflow/GATES_AND_SCORE.md +34 -1
  182. package/docs/workflow/README.md +58 -10
  183. package/package.json +5 -17
  184. package/docs/ACTIVE_SECURITY_VISUAL_GATES.md +0 -87
  185. package/docs/AI_ENGINEERING_OS_POSITIONING.md +0 -607
  186. package/docs/BACKGROUND_HUNTER.md +0 -62
  187. package/docs/CODE_INTELLIGENCE.md +0 -180
  188. package/docs/CONTEXT_BUDGET.md +0 -165
  189. package/docs/DEPENDENCY_AUDIT.md +0 -118
  190. package/docs/EVOLUTION_SHADOW_MODE.md +0 -63
  191. package/docs/GITLAB_FLOW.md +0 -125
  192. package/docs/GOVERNANCE_DASHBOARD.md +0 -92
  193. package/docs/MEMORY_BRAIN.md +0 -104
  194. package/docs/MEMORY_FABRIC.md +0 -161
  195. package/docs/RESOURCE_GOVERNANCE.md +0 -92
  196. package/docs/RUNTIME_EVIDENCE.md +0 -101
  197. package/docs/WORKFLOW_EVAL.md +0 -151
  198. package/image/wechat-public.jpg +0 -0
  199. package/image/wxPay.jpg +0 -0
  200. package/image/zfb.jpg +0 -0
@@ -8,6 +8,17 @@ export interface PlatformDetectionResult {
8
8
  confidence: number;
9
9
  suggestions: string[];
10
10
  }
11
+ export declare function autoDetectGovernancePack(projectDir: string): string;
12
+ export interface ProjectClassification {
13
+ language: 'node' | 'go' | 'python' | 'unknown';
14
+ framework?: string;
15
+ isMonorepo: boolean;
16
+ isLibrary: boolean;
17
+ recommendedPack: string;
18
+ recommendedProfile: 'minimal' | 'standard' | 'critical';
19
+ suggestedService?: string;
20
+ }
21
+ export declare function classifyProject(projectDir: string): ProjectClassification;
11
22
  export declare function detectPlatform(projectDir?: string): PlatformDetectionResult;
12
23
  export declare const PHYSICAL_CONSTRAINTS: {
13
24
  id: string;
@@ -1,6 +1,6 @@
1
1
  // SCALE Engine — Quick Start / One-Click Install
2
2
  // 自动检测平台、配置物理约束、可选安装知识图谱
3
- import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
3
+ import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs';
4
4
  import { join } from 'node:path';
5
5
  import { execSync } from 'node:child_process';
6
6
  import { bootstrapDependencies } from '../bootstrap/DependencyBootstrap.js';
@@ -8,6 +8,103 @@ import { inspectCodeIntelligence } from '../codegraph/CodeIntelligence.js';
8
8
  import { getBootstrapPlanForProfile } from '../config/profiles.js';
9
9
  import { inspectToolCapabilities } from '../tools/ToolCapabilityRegistry.js';
10
10
  import { writeGovernanceTemplates } from '../workflow/GovernanceTemplates.js';
11
+ // Auto-detect the best governance pack based on project files
12
+ export function autoDetectGovernancePack(projectDir) {
13
+ const pkgPath = join(projectDir, 'package.json');
14
+ if (existsSync(pkgPath)) {
15
+ try {
16
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
17
+ const scripts = Object.keys(pkg.scripts ?? {});
18
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
19
+ // Check for frontend frameworks
20
+ if (deps.react || deps.next || deps.vue || deps['@angular/core'] ||
21
+ (pkg.scripts?.build ?? '').includes('vite') || (pkg.scripts?.build ?? '').includes('webpack')) {
22
+ return 'frontend-app';
23
+ }
24
+ // Check for library
25
+ if (pkg.main || pkg.module || pkg.exports) {
26
+ return 'node-library';
27
+ }
28
+ }
29
+ catch { }
30
+ }
31
+ if (existsSync(join(projectDir, 'go.mod')))
32
+ return 'go-service-matrix';
33
+ if (existsSync(join(projectDir, 'pyproject.toml')) || existsSync(join(projectDir, 'requirements.txt')))
34
+ return 'standard';
35
+ // Check for monorepo
36
+ if (existsSync(join(projectDir, 'lerna.json')) || existsSync(join(projectDir, 'nx.json')) ||
37
+ existsSync(join(projectDir, 'turbo.json'))) {
38
+ const pkgPath = join(projectDir, 'package.json');
39
+ if (existsSync(pkgPath)) {
40
+ try {
41
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
42
+ if (pkg.workspaces)
43
+ return 'moe-workspace';
44
+ }
45
+ catch { }
46
+ }
47
+ return 'project-scaffold';
48
+ }
49
+ return 'standard';
50
+ }
51
+ // Auto-classify project structure
52
+ export function classifyProject(projectDir) {
53
+ const result = {
54
+ language: 'unknown',
55
+ isMonorepo: false,
56
+ isLibrary: false,
57
+ recommendedPack: 'standard',
58
+ recommendedProfile: 'standard',
59
+ };
60
+ const pkgPath = join(projectDir, 'package.json');
61
+ if (existsSync(pkgPath)) {
62
+ result.language = 'node';
63
+ try {
64
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
65
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
66
+ if (pkg.workspaces || existsSync(join(projectDir, 'lerna.json')) || existsSync(join(projectDir, 'nx.json'))) {
67
+ result.isMonorepo = true;
68
+ result.recommendedPack = 'moe-workspace';
69
+ }
70
+ if (deps.react) {
71
+ result.framework = 'react';
72
+ result.recommendedPack = 'frontend-app';
73
+ }
74
+ else if (deps.next) {
75
+ result.framework = 'next';
76
+ result.recommendedPack = 'frontend-app';
77
+ }
78
+ else if (deps.vue) {
79
+ result.framework = 'vue';
80
+ result.recommendedPack = 'frontend-app';
81
+ }
82
+ else if (deps.express || deps.fastify || deps.koa) {
83
+ result.framework = 'express';
84
+ result.recommendedPack = 'node-library';
85
+ }
86
+ if (!result.framework && (pkg.main || pkg.module || pkg.exports)) {
87
+ result.isLibrary = true;
88
+ result.recommendedPack = 'node-library';
89
+ }
90
+ const scripts = pkg.scripts ?? {};
91
+ const hasTest = Object.keys(scripts).some(k => k.includes('test'));
92
+ const hasLint = Object.keys(scripts).some(k => k.includes('lint'));
93
+ if (!hasTest || !hasLint)
94
+ result.recommendedProfile = 'minimal';
95
+ }
96
+ catch { }
97
+ }
98
+ if (existsSync(join(projectDir, 'go.mod'))) {
99
+ result.language = 'go';
100
+ result.recommendedPack = 'go-service-matrix';
101
+ }
102
+ if (existsSync(join(projectDir, 'pyproject.toml'))) {
103
+ result.language = 'python';
104
+ result.recommendedPack = 'standard';
105
+ }
106
+ return result;
107
+ }
11
108
  export function detectPlatform(projectDir = '.') {
12
109
  const checks = [
13
110
  { platform: 'claude-code', paths: [join(projectDir, '.claude', 'settings.json')] },
@@ -1 +1 @@
1
- {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/api/quickstart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/api/quickstart.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,9 @@ export const SpecFSM = {
63
63
  { from: 'REVISING', action: 'finalize', to: 'FROZEN' },
64
64
  { from: 'FROZEN', action: 'supersede', to: 'OBSOLETED' },
65
65
  { from: 'REVISING', action: 'supersede', to: 'OBSOLETED' },
66
+ // Fallback: evidence failure after freeze → re-enter review
67
+ { from: 'FROZEN', action: 'evidence_fails', to: 'REVISING' },
68
+ { from: 'OBSOLETED', action: 'reopen', to: 'DRAFT' },
66
69
  ],
67
70
  };
68
71
  // ============================================================================
@@ -70,7 +73,7 @@ export const SpecFSM = {
70
73
  // ============================================================================
71
74
  export const PlanFSM = {
72
75
  type: 'Plan',
73
- states: ['DRAFT', 'APPROVED', 'IMPLEMENTING', 'DONE', 'REVISING', 'SUPERSEDED'],
76
+ states: ['DRAFT', 'APPROVED', 'IMPLEMENTING', 'DONE', 'IN_REVISION', 'REVISING', 'SUPERSEDED'],
74
77
  initial: 'DRAFT',
75
78
  terminal: ['SUPERSEDED'],
76
79
  transitions: [
@@ -93,6 +96,12 @@ export const PlanFSM = {
93
96
  { from: 'REVISING', action: 'review', to: 'APPROVED' },
94
97
  { from: 'DRAFT', action: 'supersede', to: 'SUPERSEDED' },
95
98
  { from: 'DONE', action: 'supersede', to: 'SUPERSEDED' },
99
+ // Fallback edges: evidence failure → rollback
100
+ { from: 'IMPLEMENTING', action: 'evidence_fails', to: 'APPROVED' },
101
+ // Reopen support
102
+ { from: 'DONE', action: 'reopen', to: 'IN_REVISION' },
103
+ { from: 'IN_REVISION', action: 'review', to: 'APPROVED' },
104
+ { from: 'IN_REVISION', action: 'supersede', to: 'SUPERSEDED' },
96
105
  ],
97
106
  };
98
107
  // ============================================================================
@@ -116,7 +125,7 @@ export const TestPlanFSM = {
116
125
  // ============================================================================
117
126
  export const TaskFSM = {
118
127
  type: 'Task',
119
- states: ['PENDING', 'READY', 'RUNNING', 'PAUSED', 'COMPLETED', 'FAILED', 'CANCELLED'],
128
+ states: ['PENDING', 'READY', 'RUNNING', 'PAUSED', 'COMPLETED', 'IN_REVISION', 'FAILED', 'CANCELLED'],
120
129
  initial: 'PENDING',
121
130
  terminal: ['COMPLETED', 'FAILED', 'CANCELLED'],
122
131
  transitions: [
@@ -170,6 +179,9 @@ export const TaskFSM = {
170
179
  { from: 'PAUSED', action: 'resume', to: 'RUNNING' },
171
180
  { from: 'PAUSED', action: 'cancel', to: 'CANCELLED' },
172
181
  { from: 'FAILED', action: 'retry', to: 'READY' },
182
+ { from: 'COMPLETED', action: 'reopen', to: 'IN_REVISION' },
183
+ { from: 'IN_REVISION', action: 'start', to: 'RUNNING' },
184
+ { from: 'IN_REVISION', action: 'cancel', to: 'CANCELLED' },
173
185
  ],
174
186
  };
175
187
  // ============================================================================
@@ -185,6 +197,7 @@ export const ChangeFSM = {
185
197
  { from: 'COMMITTED', action: 'verify', to: 'VERIFIED' },
186
198
  { from: 'COMMITTED', action: 'revert', to: 'REVERTED' },
187
199
  { from: 'VERIFIED', action: 'revert', to: 'REVERTED' },
200
+ { from: 'VERIFIED', action: 'evidence_fails', to: 'COMMITTED' },
188
201
  ],
189
202
  };
190
203
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"fsmDefinitions.js","sourceRoot":"","sources":["../../src/artifact/fsmDefinitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fsmDefinitions.js","sourceRoot":"","sources":["../../src/artifact/fsmDefinitions.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,gCAAgC;AAIhC,+EAA+E;AAC/E,OAAO;AACP,+EAA+E;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAkB;IACpC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAU;IACjE,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAU;IAC7C,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;QACpD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE;QACrD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE;QACzD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE;KAC1D;CACF,CAAA;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAU;IACrD,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,CAAC,aAAa,CAAU;IAClC,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACnD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE;QAC1D,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE;KAC9D;CACF,CAAA;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAkB;IACpC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAU;IAC1E,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,CAAC,WAAW,CAAU;IAChC,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;QACpD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE;QACpD;YACE,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,SAAS;YACjB,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,2BAA2B;oBACjC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAG,CAAC,CAAC,OAAgE,CAAC,cAAc,KAAK,SAAS;wBAC7G,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,OAAuC,CAAC,cAAe,CAAC,IAAI,GAAG,CAAC;wBACvE,CAAC,CAAC,IAAI,EAAE,iBAAiB;oBAC3B,YAAY,EAAE,4BAA4B;iBAC3C;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,OAAgC,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;oBACpF,YAAY,EAAE,8BAA8B;iBAC7C;aACF;SACF;QACD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE;QACvD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE;QACtD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;QACxD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;QAC1D,4DAA4D;QAC5D,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,UAAU,EAAE;QAC5D,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE;KACrD;CACF,CAAA;AAED,+EAA+E;AAC/E,OAAO;AACP,+EAA+E;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAkB;IACpC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAU;IACvG,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,CAAC,YAAY,CAAU;IACjC,WAAW,EAAE;QACX;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,QAAQ;YAChB,EAAE,EAAE,UAAU;YACd,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,OAAgC,CAAC,gBAAgB;oBACpE,YAAY,EAAE,wCAAwC;iBACvD;aACF;SACF;QACD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE;QAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE;QACxD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE;QAC1D,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE;QAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACtD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE;QACxD,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE;QACvD,8CAA8C;QAC9C,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,UAAU,EAAE;QAClE,iBAAiB;QACjB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE;QACrD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACzD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE;KAC/D;CACF,CAAA;AAED,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAU;IACvE,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAU;IACvC,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE;QACpD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE;QACxD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE;QACnD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE;QACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE;KACrD;CACF,CAAA;AAED,+EAA+E;AAC/E,OAAO;AACP,+EAA+E;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAkB;IACpC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAU;IAC7G,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAU;IACvD,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE;QACpD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;QACtD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE;QACjD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;QACpD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE;QAClD;YACE,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,UAAU;YAClB,EAAE,EAAE,WAAW;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;wBACX,MAAM,OAAO,GAAG,CAAC,CAAC,OAA+B,CAAA;wBACjD,gBAAgB;wBAChB,IAAI,CAAC,OAAO,CAAC,WAAW;4BAAE,OAAO,KAAK,CAAA;wBACtC,OAAO,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;oBAChF,CAAC;oBACD,YAAY,EAAE,sFAAsF;iBACrG;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;wBACX,MAAM,OAAO,GAAG,CAAC,CAAC,OAA+B,CAAA;wBACjD,IAAI,CAAC,OAAO,CAAC,UAAU;4BAAE,OAAO,KAAK,CAAA;wBACrC,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,CAAA;oBACzC,CAAC;oBACD,YAAY,EAAE,wEAAwE;iBACvF;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;wBACX,MAAM,OAAO,GAAG,CAAC,CAAC,OAA+B,CAAA;wBACjD,IAAI,CAAC,OAAO,CAAC,UAAU;4BAAE,OAAO,KAAK,CAAA;wBACrC,6DAA6D;wBAC7D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;4BAAE,OAAO,OAAO,CAAC,UAAU,KAAK,IAAI,CAAA;wBAC1E,OAAO,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,CAAA;oBAClE,CAAC;oBACD,YAAY,EAAE,kFAAkF;iBACjG;aACF;SACF;QACD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE;QACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE;QACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;QACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;QAChD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE;QAC1D,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE;QACvD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;KAC3D;CACF,CAAA;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAC/E,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAU;IAC/D,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,CAAC,UAAU,CAAU;IAC/B,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;QACpD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACvD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACvD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACtD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE;KAChE;CACF,CAAA;AAED,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAU;IAC9C,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAU;IACnC,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;QACjD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;KAClD;CACF,CAAA;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAC/E,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAU;IACvF,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAU;IAC1C,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE;QACvD,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;QACtD;YACE,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,UAAU;YAClB,EAAE,EAAE,WAAW;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;wBACX,MAAM,CAAC,GAAG,CAAC,CAAC,OAAiC,CAAA;wBAC7C,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS,CAAA;oBACnE,CAAC;oBACD,YAAY,EAAE,yDAAyD;iBACxE;aACF;SACF;QACD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;QACjD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;QACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE;QAChD,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;KAChE;CACF,CAAA;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAC/E,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,CAAU;IACjG,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAU;IAC7C,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACtD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACtD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE;QACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,kBAAkB,EAAE;QAC5D,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE;KAC1D;CACF,CAAA;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAU;IAC7E,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAU;IAC9C,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE;QACnD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE;QAClD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QACvD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE;QAC5D,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE;KAC5D;CACF,CAAA;AAED,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO;IAC3D,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU;CAChD,CAAA;AAKV,MAAM,UAAU,eAAe,CAAC,GAAS;IACvC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAiC,MAAM,CAAC,WAAW,CAC5E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CACT,CAAA;AAEjC,+CAA+C;AAC/C,iCAAiC"}
@@ -257,7 +257,7 @@ export interface ReleasePayload {
257
257
  }
258
258
  /** 类型映射:根据 ArtifactType 推断 Payload 类型 */
259
259
  export type PayloadOf<T extends ArtifactType> = T extends 'Need' ? NeedPayload : T extends 'Insight' ? InsightPayload : T extends 'Spec' ? SpecPayload : T extends 'Plan' ? PlanPayload : T extends 'TestPlan' ? TestPlanPayload : T extends 'Task' ? TaskPayload : T extends 'Change' ? ChangePayload : T extends 'Evidence' ? EvidencePayload : T extends 'Defect' ? DefectPayload : T extends 'Lesson' ? LessonPayload : T extends 'Release' ? ReleasePayload : never;
260
- export type EventType = 'artifact.created' | 'artifact.updated' | 'artifact.transitioned' | 'artifact.gate_checked' | 'artifact.deleted' | 'tool.called' | 'tool.completed' | 'tool.failed' | 'tool.blocked' | 'gate.checked' | 'gate.passed' | 'gate.failed' | 'gate.executed' | 'gate.blocked' | 'consensus.round' | 'ralph.iteration' | 'ralph.story.start' | 'ralph.story.end' | 'ralph.deslop.start' | 'ralph.deslop.end' | 'ultrawork.task.start' | 'ultrawork.task.end' | 'socratic.session.started' | 'socratic.answer.recorded' | 'socratic.session.blocked' | 'behavior.brute_retry' | 'behavior.idle_tool' | 'behavior.busy_loop' | 'behavior.premature_done' | 'behavior.blame_shift' | 'behavior.ai_slop' | 'behavior.hallucination' | 'behavior.duplicate_edit' | 'behavior.passive_wait' | 'behavior.same_file_edit' | 'autonomous.loop.start' | 'autonomous.worklog.read' | 'autonomous.loop.error' | 'autonomous.loop.end' | 'autonomous.defect.detected' | 'autonomous.defect.fix_requested' | 'autonomous.feature.start' | 'autonomous.feature.delegated' | 'autonomous.baton.written' | 'role.activated' | 'role.denied' | 'session.started' | 'session.ended' | 'session.compacted' | 'session.cleared' | 'lesson.proposed' | 'lesson.validated' | 'lesson.approved' | 'lesson.rejected' | 'lesson.recalled' | 'lesson.helpful' | 'lesson.useless' | 'task.scheduled' | 'task.started' | 'task.checkpointed' | 'task.paused' | 'task.resumed' | 'task.restored' | 'task.completed' | 'task.failed' | 'task.cancelled' | 'task.drift_detected' | 'task.step_started' | 'task.step_completed' | 'task.step_failed' | 'task.step_retrying' | 'task.decomposed' | `task.custom.${string}` | 'defect.auto_created' | 'rule.proposed' | 'rule.enforced' | 'hook.generated' | 'hook.deployed' | 'hook.rollback' | 'evolution.cycle_completed' | 'evolution.evaluated' | 'context.built' | 'skill.registered' | 'skill.unregistered' | 'skill.recommended' | 'skill.executed' | 'skill.installation_changed' | 'skills.cleared' | 'external-skills.registered' | 'skills.install-prompt' | 'skill.install-started' | 'skill.installed' | 'skill.install-failed' | 'skills.batch-installed' | 'workflow.started' | 'workflow.paused' | 'workflow.resumed' | 'workflow.completed' | 'workflow.failed' | 'workflow.step_started' | 'workflow.step_completed' | 'workflow.step_failed' | 'tool.used' | 'detector.triggered' | 'phase.changed' | 'context.inject' | 'agent.spawned' | 'agent.task_assigned' | 'agent.running' | 'agent.completed' | 'agent.failed' | 'agent.recycled' | 'agent.message_sent' | 'agent.message_received' | 'agent.dispatched' | 'agent.dispatch_blocked' | 'agent.blocked' | 'agent.unblocked' | 'agent.subscribed' | 'team.formed' | 'team.dissolved' | 'team.progress_updated' | 'team.completed' | 'team.failed' | 'review.required' | 'review.passed' | 'review.failed' | 'task.review_failed' | 'pattern.extracted' | 'pattern.verified' | 'skill.proposed' | 'skill.published' | 'term.discovered' | 'term.updated' | 'term.ambiguity_detected' | 'adr.proposed' | 'adr.accepted' | 'adr.deprecated' | 'adr.superseded' | 'issue.triaged' | 'issue.state_changed' | 'issue.escalated' | 'issue.info_requested' | 'grilling.session_started' | 'grilling.session_ended' | 'grilling.concluded' | 'grilling.answer_received' | 'antipattern.detected' | 'antipattern.registered' | 'security.owasp_critical' | 'security.owasp_high' | 'security.owasp_info' | 'qa.test.start' | 'qa.test.end' | 'qa.test.error' | 'qa.accessibility.start' | 'qa.accessibility.end' | 'qa.performance.start' | 'qa.performance.end' | 'qa.tests.summary' | 'e2e.start' | 'e2e.end' | 'e2e.flow.attempt' | 'e2e.flow.retry' | 'e2e.accessibility.check' | 'e2e.performance.check' | 'e2e.quick.empty' | 'lesson.extract.start' | 'lesson.extract.end' | 'lesson.extract.empty' | 'defect.opened' | 'defect.resolved' | 'self-improve.start' | 'self-improve.end' | 'self-improve.phase.extract' | 'self-improve.phase.verify' | 'self-improve.phase.activate' | 'self-improve.phase.hooks' | 'self-improve.lesson.promoted' | 'self-improve.rule.activated' | 'self-improve.hook.generated' | 'self-improve.reset' | 'rule.hit';
260
+ export type EventType = 'artifact.created' | 'artifact.updated' | 'artifact.transitioned' | 'artifact.gate_checked' | 'artifact.deleted' | 'tool.called' | 'tool.completed' | 'tool.failed' | 'tool.blocked' | 'gate.checked' | 'gate.passed' | 'gate.failed' | 'gate.executed' | 'gate.blocked' | 'consensus.round' | 'ralph.iteration' | 'ralph.story.start' | 'ralph.story.end' | 'ralph.deslop.start' | 'ralph.deslop.end' | 'ultrawork.task.start' | 'ultrawork.task.end' | 'socratic.session.started' | 'socratic.answer.recorded' | 'socratic.session.blocked' | 'behavior.brute_retry' | 'behavior.idle_tool' | 'behavior.busy_loop' | 'behavior.premature_done' | 'behavior.blame_shift' | 'behavior.ai_slop' | 'behavior.hallucination' | 'behavior.duplicate_edit' | 'behavior.passive_wait' | 'behavior.same_file_edit' | 'autonomous.loop.start' | 'autonomous.worklog.read' | 'autonomous.loop.error' | 'autonomous.loop.end' | 'autonomous.defect.detected' | 'autonomous.defect.fix_requested' | 'autonomous.feature.start' | 'autonomous.feature.delegated' | 'autonomous.baton.written' | 'role.activated' | 'role.denied' | 'session.started' | 'session.ended' | 'session.compacted' | 'session.cleared' | 'lesson.proposed' | 'lesson.validated' | 'lesson.approved' | 'lesson.rejected' | 'lesson.recalled' | 'lesson.helpful' | 'lesson.useless' | 'task.scheduled' | 'task.started' | 'task.checkpointed' | 'task.paused' | 'task.resumed' | 'task.restored' | 'task.completed' | 'task.failed' | 'task.cancelled' | 'task.drift_detected' | 'task.step_started' | 'task.step_completed' | 'task.step_failed' | 'task.step_retrying' | 'task.decomposed' | `task.custom.${string}` | 'defect.auto_created' | 'rule.proposed' | 'rule.enforced' | 'hook.generated' | 'hook.deployed' | 'hook.rollback' | 'evolution.cycle_completed' | 'evolution.evaluated' | 'context.built' | 'skill.registered' | 'skill.unregistered' | 'skill.recommended' | 'skill.executed' | 'skill.installation_changed' | 'skills.cleared' | 'external-skills.registered' | 'skills.install-prompt' | 'skill.install-started' | 'skill.installed' | 'skill.install-failed' | 'skills.batch-installed' | 'workflow.started' | 'workflow.paused' | 'workflow.resumed' | 'workflow.completed' | 'workflow.failed' | 'workflow.step_started' | 'workflow.step_completed' | 'workflow.step_failed' | 'tool.used' | 'detector.triggered' | 'phase.changed' | 'context.inject' | 'agent.spawned' | 'agent.task_assigned' | 'agent.running' | 'agent.completed' | 'agent.failed' | 'agent.recycled' | 'agent.message_sent' | 'agent.message_received' | 'agent.dispatched' | 'agent.dispatch_blocked' | 'agent.blocked' | 'agent.unblocked' | 'agent.subscribed' | 'team.formed' | 'team.dissolved' | 'team.progress_updated' | 'team.completed' | 'team.failed' | 'review.required' | 'review.passed' | 'review.failed' | 'task.review_failed' | 'pattern.extracted' | 'pattern.verified' | 'skill.proposed' | 'skill.published' | 'term.discovered' | 'term.updated' | 'term.ambiguity_detected' | 'adr.proposed' | 'adr.accepted' | 'adr.deprecated' | 'adr.superseded' | 'issue.triaged' | 'issue.state_changed' | 'issue.escalated' | 'issue.info_requested' | 'grilling.session_started' | 'grilling.session_ended' | 'grilling.concluded' | 'grilling.answer_received' | 'antipattern.detected' | 'antipattern.registered' | 'security.owasp_critical' | 'security.owasp_high' | 'security.owasp_info' | 'qa.test.start' | 'qa.test.end' | 'qa.test.error' | 'qa.accessibility.start' | 'qa.accessibility.end' | 'qa.performance.start' | 'qa.performance.end' | 'qa.tests.summary' | 'e2e.start' | 'e2e.end' | 'e2e.flow.attempt' | 'e2e.flow.retry' | 'e2e.accessibility.check' | 'e2e.performance.check' | 'e2e.quick.empty' | 'lesson.extract.start' | 'lesson.extract.end' | 'lesson.extract.empty' | 'defect.opened' | 'defect.resolved' | 'self-improve.start' | 'self-improve.end' | 'self-improve.phase.extract' | 'self-improve.phase.verify' | 'self-improve.phase.activate' | 'self-improve.phase.hooks' | 'self-improve.lesson.promoted' | 'self-improve.rule.activated' | 'self-improve.hook.generated' | 'self-improve.reset' | 'rule.hit' | 'autofix.attempt' | 'autofix.complete';
261
261
  export interface Event<TPayload = unknown> {
262
262
  id: EventId;
263
263
  type: EventType;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/artifact/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8sBH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAe,EAAS,IAAY,EAAS,OAAiB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAA;QADoB,SAAI,GAAJ,IAAI,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAU;QAExE,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IACpD,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,UAAU,IAAI,8BAA8B,MAAM,GAAG,EAAE,oBAAoB,EAAE;YACjF,IAAI;YACJ,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAmB,QAAwB;QACzC,KAAK,CAAC,iCAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE;YAChG,QAAQ;SACT,CAAC,CAAA;QAHe,aAAQ,GAAR,QAAQ,CAAgB;IAI3C,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,SAAS,IAAI,aAAa,MAAM,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACnD,YAAY,EAAU;QACpB,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;CACF;AAmBD,eAAe;AACf,MAAM,CAAC,MAAM,qBAAqB,GAA6C;IAC7E,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,mBAAmB,EAAE,QAAQ;QAC7B,oBAAoB,EAAE,IAAI;QAC1B,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC;KACd;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,mBAAmB,EAAE,MAAM;QAC3B,oBAAoB,EAAE,IAAI;QAC1B,yBAAyB,EAAE,IAAI;QAC/B,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC;KACd;CACF,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/artifact/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAitBH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAe,EAAS,IAAY,EAAS,OAAiB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAA;QADoB,SAAI,GAAJ,IAAI,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAU;QAExE,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IACpD,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,UAAU,IAAI,8BAA8B,MAAM,GAAG,EAAE,oBAAoB,EAAE;YACjF,IAAI;YACJ,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAmB,QAAwB;QACzC,KAAK,CAAC,iCAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE;YAChG,QAAQ;SACT,CAAC,CAAA;QAHe,aAAQ,GAAR,QAAQ,CAAgB;IAI3C,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,SAAS,IAAI,aAAa,MAAM,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACnD,YAAY,EAAU;QACpB,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;CACF;AAmBD,eAAe;AACf,MAAM,CAAC,MAAM,qBAAqB,GAA6C;IAC7E,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,mBAAmB,EAAE,QAAQ;QAC7B,oBAAoB,EAAE,IAAI;QAC1B,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC;KACd;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,mBAAmB,EAAE,MAAM;QAC3B,oBAAoB,EAAE,IAAI;QAC1B,yBAAyB,EAAE,IAAI;QAC/B,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC;KACd;CACF,CAAA"}
@@ -0,0 +1,41 @@
1
+ export interface CacheEntry {
2
+ key: string;
3
+ gateId: string;
4
+ result: unknown;
5
+ passed: boolean;
6
+ durationMs: number;
7
+ fileHashes: Record<string, string>;
8
+ createdAt: string;
9
+ ttl: number;
10
+ }
11
+ export interface CacheStats {
12
+ totalEntries: number;
13
+ hits: number;
14
+ misses: number;
15
+ hitRate: number;
16
+ bytesUsed: number;
17
+ }
18
+ export declare class ScanCache {
19
+ private cacheDir;
20
+ private hitCount;
21
+ private missCount;
22
+ constructor(projectDir?: string);
23
+ /**
24
+ * Compute a cache key from file paths and their content hashes.
25
+ */
26
+ computeKey(files: Record<string, string>): string;
27
+ /**
28
+ * Get a cached gate result. Returns null on miss or expiry.
29
+ */
30
+ get(gateId: string, key: string): CacheEntry | null;
31
+ /**
32
+ * Store a gate result in cache.
33
+ */
34
+ set(gateId: string, key: string, result: unknown, passed: boolean, durationMs: number, fileHashes: Record<string, string>, ttlSeconds?: number): void;
35
+ stats(): CacheStats;
36
+ clear(): number;
37
+ private listEntries;
38
+ /** Compute the hash of file contents for changed-file detection */
39
+ hashFiles(filePaths: string[]): Record<string, string>;
40
+ private sha256;
41
+ }
@@ -0,0 +1,120 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ export class ScanCache {
5
+ constructor(projectDir = process.cwd()) {
6
+ this.hitCount = 0;
7
+ this.missCount = 0;
8
+ this.cacheDir = join(projectDir, '.scale', 'cache', 'scans');
9
+ if (!existsSync(this.cacheDir))
10
+ mkdirSync(this.cacheDir, { recursive: true });
11
+ }
12
+ /**
13
+ * Compute a cache key from file paths and their content hashes.
14
+ */
15
+ computeKey(files) {
16
+ const sorted = Object.entries(files).sort(([a], [b]) => a.localeCompare(b));
17
+ const payload = sorted.map(([path, content]) => `${path}:${this.sha256(content)}`).join('\n');
18
+ return this.sha256(payload);
19
+ }
20
+ /**
21
+ * Get a cached gate result. Returns null on miss or expiry.
22
+ */
23
+ get(gateId, key) {
24
+ const entryPath = join(this.cacheDir, `${gateId}-${key}.json`);
25
+ if (!existsSync(entryPath)) {
26
+ this.missCount++;
27
+ return null;
28
+ }
29
+ try {
30
+ const entry = JSON.parse(readFileSync(entryPath, 'utf-8'));
31
+ const age = (Date.now() - new Date(entry.createdAt).getTime()) / 1000;
32
+ if (age > entry.ttl) {
33
+ // Expired -- clean up
34
+ try {
35
+ unlinkSync(entryPath);
36
+ }
37
+ catch { }
38
+ this.missCount++;
39
+ return null;
40
+ }
41
+ this.hitCount++;
42
+ return entry;
43
+ }
44
+ catch {
45
+ this.missCount++;
46
+ return null;
47
+ }
48
+ }
49
+ /**
50
+ * Store a gate result in cache.
51
+ */
52
+ set(gateId, key, result, passed, durationMs, fileHashes, ttlSeconds = 300) {
53
+ const entry = {
54
+ key,
55
+ gateId,
56
+ result,
57
+ passed,
58
+ durationMs,
59
+ fileHashes,
60
+ createdAt: new Date().toISOString(),
61
+ ttl: ttlSeconds,
62
+ };
63
+ const entryPath = join(this.cacheDir, `${gateId}-${key}.json`);
64
+ writeFileSync(entryPath, JSON.stringify(entry, null, 2));
65
+ }
66
+ stats() {
67
+ const entries = existsSync(this.cacheDir) ? this.listEntries() : [];
68
+ let bytesUsed = 0;
69
+ for (const e of entries) {
70
+ try {
71
+ bytesUsed += readFileSync(join(this.cacheDir, e), 'utf-8').length;
72
+ }
73
+ catch { }
74
+ }
75
+ return {
76
+ totalEntries: entries.length,
77
+ hits: this.hitCount,
78
+ misses: this.missCount,
79
+ hitRate: (this.hitCount + this.missCount) > 0 ? this.hitCount / (this.hitCount + this.missCount) : 0,
80
+ bytesUsed,
81
+ };
82
+ }
83
+ clear() {
84
+ const entries = this.listEntries();
85
+ for (const e of entries) {
86
+ try {
87
+ unlinkSync(join(this.cacheDir, e));
88
+ }
89
+ catch { }
90
+ }
91
+ return entries.length;
92
+ }
93
+ listEntries() {
94
+ const { readdirSync } = require('node:fs');
95
+ try {
96
+ return readdirSync(this.cacheDir);
97
+ }
98
+ catch {
99
+ return [];
100
+ }
101
+ }
102
+ /** Compute the hash of file contents for changed-file detection */
103
+ hashFiles(filePaths) {
104
+ const result = {};
105
+ for (const fp of filePaths) {
106
+ try {
107
+ const content = readFileSync(fp, 'utf-8');
108
+ result[fp] = this.sha256(content);
109
+ }
110
+ catch {
111
+ result[fp] = 'missing';
112
+ }
113
+ }
114
+ return result;
115
+ }
116
+ sha256(input) {
117
+ return createHash('sha256').update(input).digest('hex').slice(0, 16);
118
+ }
119
+ }
120
+ //# sourceMappingURL=ScanCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanCache.js","sourceRoot":"","sources":["../../src/cache/ScanCache.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,16 @@ export interface QAResult {
29
29
  accessibilityIssues?: AccessibilityIssue[];
30
30
  performanceMetrics?: PerformanceMetrics;
31
31
  error?: string;
32
+ steps?: StepResult[];
33
+ }
34
+ /**
35
+ * Individual step result for Playwright-based QA runs
36
+ */
37
+ export interface StepResult {
38
+ type: string;
39
+ passed: boolean;
40
+ durationMs: number;
41
+ error?: string;
32
42
  }
33
43
  /**
34
44
  * Console 消息
@@ -100,6 +110,10 @@ export declare class BrowserQACapability {
100
110
  * 运行多个 E2E 测试流程
101
111
  */
102
112
  runE2ETests(url: string, flows: UserFlow[]): Promise<QAResult[]>;
113
+ /**
114
+ * Try running a user flow with direct Playwright. Falls back to MCP on failure.
115
+ */
116
+ runWithPlaywright(flow: UserFlow): Promise<QAResult>;
103
117
  /**
104
118
  * 运行 Accessibility 检查
105
119
  */
@@ -1,6 +1,7 @@
1
1
  // SCALE Engine — Browser QA Capability
2
2
  // Playwright MCP 包装器,用于 E2E 测试和质量保证
3
3
  // 设计参考:docs/03-CORE-MODULES.md §3.5 + Playwright MCP 工具
4
+ import { logger } from '../core/logger.js';
4
5
  /**
5
6
  * Browser QA Capability
6
7
  *
@@ -152,6 +153,99 @@ export class BrowserQACapability {
152
153
  });
153
154
  return results;
154
155
  }
156
+ /**
157
+ * Try running a user flow with direct Playwright. Falls back to MCP on failure.
158
+ */
159
+ async runWithPlaywright(flow) {
160
+ try {
161
+ // @ts-ignore — optional dependency
162
+ await import('playwright');
163
+ }
164
+ catch {
165
+ logger.warn('Playwright not installed - falling back to MCP browser');
166
+ return this.runE2ETest(this.baseUrl, flow);
167
+ }
168
+ // @ts-ignore — optional dependency
169
+ const playwright = await import('playwright');
170
+ const result = {
171
+ passed: true,
172
+ flowName: flow.name,
173
+ steps: [],
174
+ consoleErrors: [],
175
+ consoleWarnings: [],
176
+ screenshots: [],
177
+ durationMs: 0,
178
+ };
179
+ const start = Date.now();
180
+ const browser = await playwright.chromium.launch({ headless: true });
181
+ const context = await browser.newContext();
182
+ const page = await context.newPage();
183
+ // Collect console errors
184
+ page.on('console', (msg) => {
185
+ if (msg.type() === 'error')
186
+ result.consoleErrors.push({ type: 'error', text: msg.text() });
187
+ if (msg.type() === 'warning')
188
+ result.consoleWarnings.push({ type: 'warning', text: msg.text() });
189
+ });
190
+ try {
191
+ for (const step of flow.steps) {
192
+ const stepResult = { type: step.action, passed: false, durationMs: 0 };
193
+ const stepStart = Date.now();
194
+ try {
195
+ switch (step.action) {
196
+ case 'navigate':
197
+ await page.goto(step.value ?? this.baseUrl, { waitUntil: 'domcontentloaded' });
198
+ stepResult.passed = true;
199
+ break;
200
+ case 'click':
201
+ await page.click(step.target ?? '');
202
+ stepResult.passed = true;
203
+ break;
204
+ case 'fill':
205
+ await page.fill(step.target ?? '', step.value ?? '');
206
+ stepResult.passed = true;
207
+ break;
208
+ case 'hover':
209
+ await page.hover(step.target ?? '');
210
+ stepResult.passed = true;
211
+ break;
212
+ case 'wait':
213
+ await page.waitForSelector(step.target ?? step.value ?? '', { timeout: step.timeout ?? 10000 });
214
+ stepResult.passed = true;
215
+ break;
216
+ case 'screenshot':
217
+ const screenshotPath = `${this.screenshotsDir}/screenshot-${Date.now()}.png`;
218
+ await page.screenshot({ path: screenshotPath, fullPage: false });
219
+ result.screenshots.push(screenshotPath);
220
+ stepResult.passed = true;
221
+ break;
222
+ case 'snapshot':
223
+ // Snapshots are handled by Playwright accessibility tree
224
+ stepResult.passed = true;
225
+ break;
226
+ }
227
+ }
228
+ catch (err) {
229
+ stepResult.error = err.message;
230
+ result.passed = false;
231
+ }
232
+ stepResult.durationMs = Date.now() - stepStart;
233
+ result.steps.push(stepResult);
234
+ }
235
+ // Accessibility check
236
+ try {
237
+ const accessibility = await page.accessibility?.snapshot?.();
238
+ if (!accessibility)
239
+ result.consoleWarnings.push({ type: 'warning', text: 'No accessibility tree found' });
240
+ }
241
+ catch { }
242
+ }
243
+ finally {
244
+ await browser.close();
245
+ }
246
+ result.durationMs = Date.now() - start;
247
+ return result;
248
+ }
155
249
  /**
156
250
  * 运行 Accessibility 检查
157
251
  */