@hongmaple0820/scale-engine 0.40.1 → 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 (228) hide show
  1. package/README.md +30 -2
  2. package/dist/api/cli.js +286 -7
  3. package/dist/api/cli.js.map +1 -1
  4. package/dist/api/doctor.js +1 -1
  5. package/dist/api/doctor.js.map +1 -1
  6. package/dist/api/quickstart.d.ts +11 -0
  7. package/dist/api/quickstart.js +98 -1
  8. package/dist/api/quickstart.js.map +1 -1
  9. package/dist/artifact/fsmDefinitions.js +15 -2
  10. package/dist/artifact/fsmDefinitions.js.map +1 -1
  11. package/dist/artifact/types.d.ts +1 -1
  12. package/dist/artifact/types.js.map +1 -1
  13. package/dist/bootstrap/DependencyBootstrap.d.ts +1 -0
  14. package/dist/bootstrap/DependencyBootstrap.js +137 -25
  15. package/dist/bootstrap/DependencyBootstrap.js.map +1 -1
  16. package/dist/cache/ScanCache.d.ts +41 -0
  17. package/dist/cache/ScanCache.js +120 -0
  18. package/dist/cache/ScanCache.js.map +1 -0
  19. package/dist/capabilities/BrowserQACapability.d.ts +14 -0
  20. package/dist/capabilities/BrowserQACapability.js +94 -0
  21. package/dist/capabilities/BrowserQACapability.js.map +1 -1
  22. package/dist/capabilities/InstalledSkillsIntegration.js +29 -9
  23. package/dist/capabilities/InstalledSkillsIntegration.js.map +1 -1
  24. package/dist/cli/autofixCommands.d.ts +22 -0
  25. package/dist/cli/autofixCommands.js +32 -0
  26. package/dist/cli/autofixCommands.js.map +1 -0
  27. package/dist/cli/cortexCommands.d.ts +71 -0
  28. package/dist/cli/cortexCommands.js +335 -0
  29. package/dist/cli/cortexCommands.js.map +1 -0
  30. package/dist/cli/costCommands.d.ts +13 -0
  31. package/dist/cli/costCommands.js +48 -0
  32. package/dist/cli/costCommands.js.map +1 -0
  33. package/dist/cli/orchCommands.d.ts +43 -0
  34. package/dist/cli/orchCommands.js +135 -0
  35. package/dist/cli/orchCommands.js.map +1 -0
  36. package/dist/cli/phaseCommands.js +1 -2
  37. package/dist/cli/phaseCommands.js.map +1 -1
  38. package/dist/cli/qaCommands.d.ts +22 -0
  39. package/dist/cli/qaCommands.js +84 -0
  40. package/dist/cli/qaCommands.js.map +1 -0
  41. package/dist/cli/quickstartCommands.d.ts +17 -0
  42. package/dist/cli/quickstartCommands.js +47 -0
  43. package/dist/cli/quickstartCommands.js.map +1 -0
  44. package/dist/cli/shieldCommands.d.ts +30 -0
  45. package/dist/cli/shieldCommands.js +212 -0
  46. package/dist/cli/shieldCommands.js.map +1 -0
  47. package/dist/cli/tuiCommands.d.ts +7 -0
  48. package/dist/cli/tuiCommands.js +33 -0
  49. package/dist/cli/tuiCommands.js.map +1 -0
  50. package/dist/config/profiles.js +26 -0
  51. package/dist/config/profiles.js.map +1 -1
  52. package/dist/context/ContextBudget.js +2 -2
  53. package/dist/core/GbrainRuntime.d.ts +25 -0
  54. package/dist/core/GbrainRuntime.js +270 -0
  55. package/dist/core/GbrainRuntime.js.map +1 -0
  56. package/dist/cortex/GovernanceMetrics.d.ts +66 -0
  57. package/dist/cortex/GovernanceMetrics.js +230 -0
  58. package/dist/cortex/GovernanceMetrics.js.map +1 -0
  59. package/dist/cortex/InstinctExtractor.d.ts +61 -0
  60. package/dist/cortex/InstinctExtractor.js +184 -0
  61. package/dist/cortex/InstinctExtractor.js.map +1 -0
  62. package/dist/cortex/InstinctStore.d.ts +54 -0
  63. package/dist/cortex/InstinctStore.js +266 -0
  64. package/dist/cortex/InstinctStore.js.map +1 -0
  65. package/dist/cortex/ReflexionEngine.d.ts +34 -0
  66. package/dist/cortex/ReflexionEngine.js +157 -0
  67. package/dist/cortex/ReflexionEngine.js.map +1 -0
  68. package/dist/cortex/SessionInjector.d.ts +44 -0
  69. package/dist/cortex/SessionInjector.js +127 -0
  70. package/dist/cortex/SessionInjector.js.map +1 -0
  71. package/dist/cortex/adapters/ClaudeAdapter.d.ts +17 -0
  72. package/dist/cortex/adapters/ClaudeAdapter.js +61 -0
  73. package/dist/cortex/adapters/ClaudeAdapter.js.map +1 -0
  74. package/dist/cortex/adapters/CodexAdapter.d.ts +10 -0
  75. package/dist/cortex/adapters/CodexAdapter.js +52 -0
  76. package/dist/cortex/adapters/CodexAdapter.js.map +1 -0
  77. package/dist/cortex/adapters/CursorAdapter.d.ts +10 -0
  78. package/dist/cortex/adapters/CursorAdapter.js +46 -0
  79. package/dist/cortex/adapters/CursorAdapter.js.map +1 -0
  80. package/dist/cortex/adapters/GeminiAdapter.d.ts +11 -0
  81. package/dist/cortex/adapters/GeminiAdapter.js +48 -0
  82. package/dist/cortex/adapters/GeminiAdapter.js.map +1 -0
  83. package/dist/env/EnvironmentDoctor.js +221 -5
  84. package/dist/env/EnvironmentDoctor.js.map +1 -1
  85. package/dist/eval/BenchmarkPublisher.d.ts +25 -0
  86. package/dist/eval/BenchmarkPublisher.js +27 -0
  87. package/dist/eval/BenchmarkPublisher.js.map +1 -0
  88. package/dist/guardrails/DependencyAuditor.js +10 -1
  89. package/dist/guardrails/DependencyAuditor.js.map +1 -1
  90. package/dist/memory/MemoryProviders.js +38 -91
  91. package/dist/memory/MemoryProviders.js.map +1 -1
  92. package/dist/orchestrator/OrchestratorDaemon.d.ts +44 -0
  93. package/dist/orchestrator/OrchestratorDaemon.js +150 -0
  94. package/dist/orchestrator/OrchestratorDaemon.js.map +1 -0
  95. package/dist/orchestrator/PolicyLoader.d.ts +80 -0
  96. package/dist/orchestrator/PolicyLoader.js +229 -0
  97. package/dist/orchestrator/PolicyLoader.js.map +1 -0
  98. package/dist/orchestrator/ReconciliationLoop.d.ts +71 -0
  99. package/dist/orchestrator/ReconciliationLoop.js +266 -0
  100. package/dist/orchestrator/ReconciliationLoop.js.map +1 -0
  101. package/dist/orchestrator/TrackerAdapter.d.ts +60 -0
  102. package/dist/orchestrator/TrackerAdapter.js +147 -0
  103. package/dist/orchestrator/TrackerAdapter.js.map +1 -0
  104. package/dist/orchestrator/WorkspaceManager.d.ts +66 -0
  105. package/dist/orchestrator/WorkspaceManager.js +257 -0
  106. package/dist/orchestrator/WorkspaceManager.js.map +1 -0
  107. package/dist/qa/BrowserDaemon.d.ts +23 -0
  108. package/dist/qa/BrowserDaemon.js +79 -0
  109. package/dist/qa/BrowserDaemon.js.map +1 -0
  110. package/dist/qa/E2ETestOrchestrator.d.ts +14 -0
  111. package/dist/qa/E2ETestOrchestrator.js +19 -0
  112. package/dist/qa/E2ETestOrchestrator.js.map +1 -0
  113. package/dist/review/CrossModelReviewer.d.ts +35 -0
  114. package/dist/review/CrossModelReviewer.js +75 -0
  115. package/dist/review/CrossModelReviewer.js.map +1 -0
  116. package/dist/review/ReviewAggregator.d.ts +13 -0
  117. package/dist/review/ReviewAggregator.js +28 -0
  118. package/dist/review/ReviewAggregator.js.map +1 -0
  119. package/dist/review/reviewCommands.d.ts +15 -0
  120. package/dist/review/reviewCommands.js +24 -0
  121. package/dist/review/reviewCommands.js.map +1 -0
  122. package/dist/routing/LocalModelProvider.d.ts +11 -0
  123. package/dist/routing/LocalModelProvider.js +21 -0
  124. package/dist/routing/LocalModelProvider.js.map +1 -0
  125. package/dist/routing/ModelRouter.d.ts +12 -0
  126. package/dist/routing/ModelRouter.js +31 -4
  127. package/dist/routing/ModelRouter.js.map +1 -1
  128. package/dist/runtime/AiOsRuntime.d.ts +1 -0
  129. package/dist/runtime/AiOsRuntime.js +15 -0
  130. package/dist/runtime/AiOsRuntime.js.map +1 -1
  131. package/dist/runtime/CostAnalyzer.d.ts +53 -0
  132. package/dist/runtime/CostAnalyzer.js +160 -0
  133. package/dist/runtime/CostAnalyzer.js.map +1 -0
  134. package/dist/runtime/CostOptimizer.d.ts +11 -0
  135. package/dist/runtime/CostOptimizer.js +21 -0
  136. package/dist/runtime/CostOptimizer.js.map +1 -0
  137. package/dist/runtime/ModelUsageLedger.d.ts +53 -2
  138. package/dist/runtime/ModelUsageLedger.js +243 -39
  139. package/dist/runtime/ModelUsageLedger.js.map +1 -1
  140. package/dist/setup/SetupVerification.d.ts +42 -0
  141. package/dist/setup/SetupVerification.js +180 -0
  142. package/dist/setup/SetupVerification.js.map +1 -0
  143. package/dist/shield/PolicyCompiler.d.ts +70 -0
  144. package/dist/shield/PolicyCompiler.js +540 -0
  145. package/dist/shield/PolicyCompiler.js.map +1 -0
  146. package/dist/shield/ProtectedPaths.d.ts +39 -0
  147. package/dist/shield/ProtectedPaths.js +179 -0
  148. package/dist/shield/ProtectedPaths.js.map +1 -0
  149. package/dist/shield/ShieldProtocol.d.ts +50 -0
  150. package/dist/shield/ShieldProtocol.js +103 -0
  151. package/dist/shield/ShieldProtocol.js.map +1 -0
  152. package/dist/skills/SkillMdStandard.d.ts +33 -0
  153. package/dist/skills/SkillMdStandard.js +88 -0
  154. package/dist/skills/SkillMdStandard.js.map +1 -0
  155. package/dist/skills/SkillRegistry.d.ts +9 -1
  156. package/dist/skills/SkillRegistry.js +20 -0
  157. package/dist/skills/SkillRegistry.js.map +1 -1
  158. package/dist/skills/interop/GStackInterop.d.ts +15 -0
  159. package/dist/skills/interop/GStackInterop.js +34 -0
  160. package/dist/skills/interop/GStackInterop.js.map +1 -0
  161. package/dist/skills/interop/OMCInterop.d.ts +15 -0
  162. package/dist/skills/interop/OMCInterop.js +34 -0
  163. package/dist/skills/interop/OMCInterop.js.map +1 -0
  164. package/dist/tools/ToolCapabilityRegistry.js +10 -0
  165. package/dist/tools/ToolCapabilityRegistry.js.map +1 -1
  166. package/dist/tui/TuiDashboard.d.ts +3 -0
  167. package/dist/tui/TuiDashboard.js +120 -0
  168. package/dist/tui/TuiDashboard.js.map +1 -0
  169. package/dist/workflow/GateCatalog.d.ts +2 -0
  170. package/dist/workflow/GateCatalog.js +59 -3
  171. package/dist/workflow/GateCatalog.js.map +1 -1
  172. package/dist/workflow/GovernanceTemplatePacks.d.ts +1 -1
  173. package/dist/workflow/GovernanceTemplatePacks.js +15 -0
  174. package/dist/workflow/GovernanceTemplatePacks.js.map +1 -1
  175. package/dist/workflow/TddLoop.d.ts +2 -0
  176. package/dist/workflow/TddLoop.js +2 -0
  177. package/dist/workflow/TddLoop.js.map +1 -1
  178. package/dist/workflow/UpgradeManager.d.ts +10 -1
  179. package/dist/workflow/UpgradeManager.js +55 -0
  180. package/dist/workflow/UpgradeManager.js.map +1 -1
  181. package/dist/workflow/VerificationProfile.d.ts +8 -0
  182. package/dist/workflow/VerificationProfile.js +62 -1
  183. package/dist/workflow/VerificationProfile.js.map +1 -1
  184. package/dist/workflow/VerificationSchema.d.ts +46 -0
  185. package/dist/workflow/VerificationSchema.js +97 -0
  186. package/dist/workflow/VerificationSchema.js.map +1 -0
  187. package/dist/workflow/autofix/AutoFixEngine.d.ts +37 -0
  188. package/dist/workflow/autofix/AutoFixEngine.js +169 -0
  189. package/dist/workflow/autofix/AutoFixEngine.js.map +1 -0
  190. package/dist/workflow/execution/RalphEngine.d.ts +18 -0
  191. package/dist/workflow/execution/RalphEngine.js +22 -0
  192. package/dist/workflow/execution/RalphEngine.js.map +1 -1
  193. package/dist/workflow/gates/EnhancedGates.d.ts +74 -0
  194. package/dist/workflow/gates/EnhancedGates.js +653 -0
  195. package/dist/workflow/gates/EnhancedGates.js.map +1 -0
  196. package/dist/workflow/gates/GateSystem.d.ts +3 -0
  197. package/dist/workflow/gates/GateSystem.js +94 -1
  198. package/dist/workflow/gates/GateSystem.js.map +1 -1
  199. package/dist/workflow/types.d.ts +1 -1
  200. package/docs/README.md +3 -0
  201. package/docs/guides/DEVELOPMENT_WORKFLOW.md +28 -9
  202. package/docs/guides/GETTING_STARTED.md +19 -0
  203. package/docs/guides/MIGRATION.md +119 -0
  204. package/docs/start/quickstart.md +1 -0
  205. package/docs/workflow/GATES_AND_SCORE.md +34 -1
  206. package/docs/workflow/README.md +58 -10
  207. package/package.json +7 -18
  208. package/scripts/workflow/lib/gbrain-runtime.mjs +185 -0
  209. package/scripts/workflow/lib/report-output.mjs +107 -0
  210. package/scripts/workflow/provider-rehearsal.mjs +129 -48
  211. package/scripts/workflow/setup-smoke.mjs +142 -8
  212. package/docs/ACTIVE_SECURITY_VISUAL_GATES.md +0 -87
  213. package/docs/AI_ENGINEERING_OS_POSITIONING.md +0 -607
  214. package/docs/BACKGROUND_HUNTER.md +0 -62
  215. package/docs/CODE_INTELLIGENCE.md +0 -180
  216. package/docs/CONTEXT_BUDGET.md +0 -155
  217. package/docs/DEPENDENCY_AUDIT.md +0 -118
  218. package/docs/EVOLUTION_SHADOW_MODE.md +0 -63
  219. package/docs/GITLAB_FLOW.md +0 -125
  220. package/docs/GOVERNANCE_DASHBOARD.md +0 -85
  221. package/docs/MEMORY_BRAIN.md +0 -104
  222. package/docs/MEMORY_FABRIC.md +0 -161
  223. package/docs/RESOURCE_GOVERNANCE.md +0 -92
  224. package/docs/RUNTIME_EVIDENCE.md +0 -101
  225. package/docs/WORKFLOW_EVAL.md +0 -151
  226. package/image/wechat-public.jpg +0 -0
  227. package/image/wxPay.jpg +0 -0
  228. package/image/zfb.jpg +0 -0
@@ -0,0 +1,169 @@
1
+ import { logger } from '../../core/logger.js';
2
+ import { execSync } from 'node:child_process';
3
+ export class AutoFixEngine {
4
+ constructor(eventBus) {
5
+ this.eventBus = eventBus;
6
+ this.attempts = [];
7
+ }
8
+ async run(options) {
9
+ const report = {
10
+ totalFailures: 0,
11
+ fixed: 0,
12
+ unfixed: 0,
13
+ attempts: [],
14
+ summary: '',
15
+ recommendation: '',
16
+ };
17
+ logger.info({ scope: options.scope }, 'AutoFix engine starting');
18
+ // Step 1: Scan for failures
19
+ const failures = await this.scan(options.scope);
20
+ report.totalFailures = failures.length;
21
+ if (failures.length === 0) {
22
+ report.summary = 'No failures detected. All gates passing.';
23
+ report.recommendation = 'No action needed.';
24
+ return report;
25
+ }
26
+ // Step 2: For each failure, diagnose → fix → re-verify
27
+ for (let i = 0; i < failures.length; i++) {
28
+ const failure = failures[i];
29
+ logger.info({ failure, index: i }, `Processing failure ${i + 1}/${failures.length}`);
30
+ let fixed = false;
31
+ for (let attempt = 1; attempt <= options.maxAttempts; attempt++) {
32
+ const start = Date.now();
33
+ // Diagnose
34
+ const diagnosis = await this.diagnose(failure, attempt);
35
+ // Fix
36
+ const fixOutput = options.dryRun
37
+ ? `[DRY RUN] Would fix: ${failure.category}`
38
+ : await this.applyFix(failure, attempt);
39
+ // Re-verify
40
+ const verifierOutput = options.dryRun
41
+ ? { passed: false, output: `[DRY RUN] Would re-verify: ${failure.category}` }
42
+ : await this.reVerify(failure);
43
+ const success = !options.dryRun && verifierOutput.passed;
44
+ const fa = {
45
+ attempt,
46
+ category: failure.category,
47
+ diagnosticCommand: diagnosis,
48
+ fixAction: failure.fixStrategy ?? 'auto-detect',
49
+ fixOutput,
50
+ success,
51
+ verifierCommand: failure.verifyCommand ?? '',
52
+ verifierOutput: verifierOutput.output ?? '',
53
+ durationMs: Date.now() - start,
54
+ };
55
+ this.attempts.push(fa);
56
+ this.eventBus.emit('autofix.attempt', fa);
57
+ if (success) {
58
+ fixed = true;
59
+ report.fixed++;
60
+ break;
61
+ }
62
+ // Escalate model tier on retry
63
+ if (options.escalateModel) {
64
+ const escalatedCommand = await this.escalateCommand(failure, attempt);
65
+ logger.info({ attempt, escalatedCommand }, 'Model escalated for retry');
66
+ }
67
+ }
68
+ if (!fixed) {
69
+ report.unfixed++;
70
+ logger.warn({ failure }, `Failed to fix after ${options.maxAttempts} attempts`);
71
+ }
72
+ }
73
+ report.summary = `AutoFix complete: ${report.fixed}/${report.totalFailures} fixed, ${report.unfixed} unresolved.`;
74
+ report.recommendation = report.unfixed > 0
75
+ ? `Manual intervention needed for ${report.unfixed} failure(s). Review evidence at .scale/evidence/autofix/`
76
+ : 'All failures resolved. Proceed with gate verification.';
77
+ report.attempts = this.attempts;
78
+ this.eventBus.emit('autofix.complete', report);
79
+ return report;
80
+ }
81
+ async scan(scope) {
82
+ const failures = [];
83
+ try {
84
+ if (scope === 'all' || scope === 'lint') {
85
+ try {
86
+ execSync('npm run lint', { encoding: 'utf-8', stdio: 'pipe' });
87
+ }
88
+ catch (e) {
89
+ failures.push({
90
+ category: 'lint',
91
+ command: 'npm run lint',
92
+ description: e.stderr?.slice(0, 500) ?? 'Lint failure detected',
93
+ fixStrategy: 'eslint --fix',
94
+ verifyCommand: 'npm run lint',
95
+ });
96
+ }
97
+ }
98
+ if (scope === 'all' || scope === 'test') {
99
+ try {
100
+ execSync('npm test', { encoding: 'utf-8', stdio: 'pipe' });
101
+ }
102
+ catch (e) {
103
+ failures.push({
104
+ category: 'test',
105
+ command: 'npm test',
106
+ description: e.stderr?.slice(0, 500) ?? 'Test failure detected',
107
+ fixStrategy: 'run-and-inspect',
108
+ verifyCommand: 'npm test',
109
+ });
110
+ }
111
+ }
112
+ if (scope === 'all' || scope === 'security') {
113
+ // Use existing security gate patterns from src/workflow/gates/GateSystem.ts
114
+ failures.push({
115
+ category: 'security',
116
+ command: 'scale preflight --profile security --json',
117
+ description: 'Security gate scan requested',
118
+ fixStrategy: 'manual-review',
119
+ verifyCommand: 'scale preflight --profile security --json',
120
+ });
121
+ }
122
+ }
123
+ catch (err) {
124
+ logger.error({ err }, 'Error during scan');
125
+ }
126
+ return failures;
127
+ }
128
+ async diagnose(failure, attempt) {
129
+ // Generate a diagnostic command based on failure type and attempt
130
+ const commands = {
131
+ lint: `Analyze lint errors (attempt ${attempt}): ${failure.description.slice(0, 200)}`,
132
+ test: `Analyze test failures (attempt ${attempt}): ${failure.description.slice(0, 200)}`,
133
+ security: `Analyze security findings (attempt ${attempt}): ${failure.description.slice(0, 200)}`,
134
+ };
135
+ return commands[failure.category] ?? `Diagnose: ${failure.description.slice(0, 200)}`;
136
+ }
137
+ async applyFix(failure, attempt) {
138
+ switch (failure.fixStrategy) {
139
+ case 'eslint --fix':
140
+ try {
141
+ return execSync('npx eslint --fix .', { encoding: 'utf-8', stdio: 'pipe' });
142
+ }
143
+ catch (e) {
144
+ return e.stdout ?? e.stderr ?? 'eslint --fix ran with warnings';
145
+ }
146
+ case 'run-and-inspect':
147
+ return `Test fix attempt ${attempt}: re-run and inspect failures`;
148
+ case 'manual-review':
149
+ return `Security fix attempt ${attempt}: review and apply mitigations`;
150
+ default:
151
+ return `Auto-fix attempt ${attempt} using strategy: ${failure.fixStrategy}`;
152
+ }
153
+ }
154
+ async reVerify(failure) {
155
+ try {
156
+ const output = execSync(failure.verifyCommand, { encoding: 'utf-8', stdio: 'pipe' });
157
+ return { passed: true, output };
158
+ }
159
+ catch (e) {
160
+ return { passed: false, output: e.stderr ?? e.stdout ?? 'Re-verification failed' };
161
+ }
162
+ }
163
+ async escalateCommand(failure, attempt) {
164
+ const tiers = ['fast', 'balanced', 'powerful'];
165
+ const tier = tiers[Math.min(attempt, tiers.length - 1)];
166
+ return `${failure.category} fix attempt ${attempt} → escalated to ${tier} model tier`;
167
+ }
168
+ }
169
+ //# sourceMappingURL=AutoFixEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoFixEngine.js","sourceRoot":"","sources":["../../../src/workflow/autofix/AutoFixEngine.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,14 @@ export declare class RalphEngine {
13
13
  private verifier;
14
14
  private maxIterations;
15
15
  private currentIteration;
16
+ /** Continuous mode: keep running across sessions without manual restart */
17
+ continuousMode: boolean;
18
+ /** Sisyphus mode: never stop until all stories pass verification */
19
+ readonly sisyphus = true;
20
+ /** Auto-retry with escalating model tiers on failure */
21
+ retryWithEscalation: boolean;
22
+ /** Maximum retries per story before giving up */
23
+ maxRetriesPerStory: number;
16
24
  constructor(eventBus: IEventBus);
17
25
  setPRD(prd: PRDDocument): void;
18
26
  setMaxIterations(n: number): void;
@@ -26,6 +34,16 @@ export declare class RalphEngine {
26
34
  passed: number;
27
35
  pending: number;
28
36
  };
37
+ persistProgress(state: {
38
+ storyIndex: number;
39
+ totalStories: number;
40
+ lastCompleted?: string;
41
+ }): void;
42
+ loadProgress(): {
43
+ storyIndex: number;
44
+ totalStories: number;
45
+ lastCompleted?: string;
46
+ } | null;
29
47
  }
30
48
  export declare class PRDManager {
31
49
  private prds;
@@ -1,11 +1,21 @@
1
1
  // SCALE Engine — Ralph Engine
2
2
  // PRD驱动持久执行引擎
3
+ import { writeFileSync, mkdirSync, existsSync, readFileSync } from 'node:fs';
4
+ import { join } from 'node:path';
3
5
  import { HonestDelivery } from '../quality/HonestDelivery.js';
4
6
  export class RalphEngine {
5
7
  constructor(eventBus) {
6
8
  this.prd = null;
7
9
  this.maxIterations = 5;
8
10
  this.currentIteration = 0;
11
+ /** Continuous mode: keep running across sessions without manual restart */
12
+ this.continuousMode = true;
13
+ /** Sisyphus mode: never stop until all stories pass verification */
14
+ this.sisyphus = true;
15
+ /** Auto-retry with escalating model tiers on failure */
16
+ this.retryWithEscalation = true;
17
+ /** Maximum retries per story before giving up */
18
+ this.maxRetriesPerStory = 5;
9
19
  this.eventBus = eventBus;
10
20
  this.executor = new DefaultStoryExecutor();
11
21
  this.verifier = new DefaultStoryVerifier();
@@ -75,6 +85,18 @@ export class RalphEngine {
75
85
  const passed = this.prd.userStories.filter(s => s.passes).length;
76
86
  return { total, passed, pending: total - passed };
77
87
  }
88
+ persistProgress(state) {
89
+ const dir = join(process.cwd(), '.scale', 'state');
90
+ if (!existsSync(dir))
91
+ mkdirSync(dir, { recursive: true });
92
+ writeFileSync(join(dir, 'ralph-progress.json'), JSON.stringify({ ...state, updatedAt: new Date().toISOString() }, null, 2));
93
+ }
94
+ loadProgress() {
95
+ const path = join(process.cwd(), '.scale', 'state', 'ralph-progress.json');
96
+ if (!existsSync(path))
97
+ return null;
98
+ return JSON.parse(readFileSync(path, 'utf-8'));
99
+ }
78
100
  }
79
101
  class DefaultStoryExecutor {
80
102
  async execute(story) {
@@ -1 +1 @@
1
- {"version":3,"file":"RalphEngine.js","sourceRoot":"","sources":["../../../src/workflow/execution/RalphEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RalphEngine.js","sourceRoot":"","sources":["../../../src/workflow/execution/RalphEngine.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,cAAc;AAEd,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAU7D,MAAM,OAAO,WAAW;IAiBtB,YAAY,QAAmB;QAfvB,QAAG,GAAuB,IAAI,CAAA;QAG9B,kBAAa,GAAW,CAAC,CAAA;QACzB,qBAAgB,GAAW,CAAC,CAAA;QAEpC,2EAA2E;QAC3E,mBAAc,GAAG,IAAI,CAAA;QACrB,oEAAoE;QAC3D,aAAQ,GAAG,IAAI,CAAA;QACxB,wDAAwD;QACxD,wBAAmB,GAAG,IAAI,CAAA;QAC1B,iDAAiD;QACjD,uBAAkB,GAAG,CAAC,CAAA;QAGpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAA;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,GAAgB;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,gBAAgB,CAAC,CAAS;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;QACzB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9E,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;YAE3E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAA;QAC9B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAgB;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC/D,KAAK,CAAC,mBAAmB,GAAG,aAAa,CAAA;QACzC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACpF,CAAC;IAEO,gBAAgB;QACtB,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAA;IAC5D,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;QAC5C,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,kBAAkB,CAAA;QACxC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAA;QACrC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACb,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC9B,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7D,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;YACjD,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;QAChE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,CAAA;IACnD,CAAC;IAED,eAAe,CAAC,KAA2E;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3E,CAAA;IACH,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAA;QAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;CACF;AAED,MAAM,oBAAoB;IACxB,KAAK,CAAC,OAAO,CAAC,KAAgB;QAC5B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;IAC9C,CAAC;CACF;AAED,MAAM,oBAAoB;IACxB,KAAK,CAAC,MAAM,CAAC,KAAgB,EAAE,OAAgB;QAC7C,OAAO,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChD,SAAS;YACT,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,8BAA8B;SACzC,CAAC,CAAC,CAAA;IACL,CAAC;CACF;AAED,MAAM,OAAO,UAAU;IAAvB;QACU,SAAI,GAA6B,IAAI,GAAG,EAAE,CAAA;IA8BpD,CAAC;IA5BC,SAAS,CAAC,KAAa,EAAE,OAAoB;QAC3C,MAAM,GAAG,GAAgB;YACvB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;YACvB,KAAK;YACL,WAAW,EAAE,OAAO;YACpB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,CAAC;SACd,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC1B,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAA6B;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACvC,CAAC;CACF"}
@@ -0,0 +1,74 @@
1
+ import type { GateResult, GateStage } from '../types.js';
2
+ import type { IGate } from './GateSystem.js';
3
+ type RequiredLevel = 'S' | 'M' | 'L' | 'ALWAYS' | 'CRITICAL';
4
+ export declare class CommitDisciplineGate implements IGate {
5
+ stage: GateStage;
6
+ name: string;
7
+ description: string;
8
+ requiredLevel: RequiredLevel;
9
+ private warnThreshold;
10
+ private blockThreshold;
11
+ private staleWarnMinutes;
12
+ private staleBlockMinutes;
13
+ private maxStagedFileBytes;
14
+ constructor(options?: {
15
+ warnThreshold?: number;
16
+ blockThreshold?: number;
17
+ staleWarnMinutes?: number;
18
+ staleBlockMinutes?: number;
19
+ maxStagedFileBytes?: number;
20
+ });
21
+ execute(): Promise<GateResult>;
22
+ }
23
+ export declare class DocumentationHygieneGate implements IGate {
24
+ stage: GateStage;
25
+ name: string;
26
+ description: string;
27
+ requiredLevel: RequiredLevel;
28
+ execute(): Promise<GateResult>;
29
+ }
30
+ export declare class RuntimeEvidenceGate implements IGate {
31
+ private scaleDir;
32
+ stage: GateStage;
33
+ name: string;
34
+ description: string;
35
+ requiredLevel: RequiredLevel;
36
+ constructor(scaleDir?: string);
37
+ execute(): Promise<GateResult>;
38
+ }
39
+ export declare class CodeReviewGate implements IGate {
40
+ private scaleDir;
41
+ stage: GateStage;
42
+ name: string;
43
+ description: string;
44
+ requiredLevel: RequiredLevel;
45
+ constructor(scaleDir?: string);
46
+ execute(): Promise<GateResult>;
47
+ }
48
+ export declare class SupplyChainGate implements IGate {
49
+ stage: GateStage;
50
+ name: string;
51
+ description: string;
52
+ requiredLevel: RequiredLevel;
53
+ execute(): Promise<GateResult>;
54
+ }
55
+ export declare class ContextBudgetGate implements IGate {
56
+ private scaleDir;
57
+ stage: GateStage;
58
+ name: string;
59
+ description: string;
60
+ requiredLevel: RequiredLevel;
61
+ constructor(scaleDir?: string);
62
+ execute(): Promise<GateResult>;
63
+ }
64
+ export declare class SessionHealthGate implements IGate {
65
+ stage: GateStage;
66
+ name: string;
67
+ description: string;
68
+ requiredLevel: RequiredLevel;
69
+ execute(): Promise<GateResult>;
70
+ }
71
+ export declare function registerEnhancedGates(gateSystem: {
72
+ registerGate(gate: IGate): void;
73
+ }, scaleDir?: string): void;
74
+ export {};