workspace-maxxing 0.1.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 (198) hide show
  1. package/.agents/skills/workspace-maxxing/.workspace-templates/CONTEXT.md +44 -0
  2. package/.agents/skills/workspace-maxxing/.workspace-templates/SYSTEM.md +44 -0
  3. package/.agents/skills/workspace-maxxing/.workspace-templates/references/anti-patterns.md +16 -0
  4. package/.agents/skills/workspace-maxxing/.workspace-templates/references/iron-laws.md +26 -0
  5. package/.agents/skills/workspace-maxxing/.workspace-templates/references/reporting-format.md +52 -0
  6. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/benchmark.ts +171 -0
  7. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/dispatch.ts +473 -0
  8. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/generate-tests.ts +158 -0
  9. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/install-tool.ts +82 -0
  10. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/iterate.ts +265 -0
  11. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/orchestrator.ts +539 -0
  12. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/scaffold.ts +282 -0
  13. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/validate.ts +452 -0
  14. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/architecture/SKILL.md +95 -0
  15. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/fixer/SKILL.md +109 -0
  16. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/iteration/SKILL.md +89 -0
  17. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/prompt-engineering/SKILL.md +87 -0
  18. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/research/SKILL.md +94 -0
  19. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/testing/SKILL.md +89 -0
  20. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/tooling/SKILL.md +87 -0
  21. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/validation/SKILL.md +103 -0
  22. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/worker/SKILL.md +79 -0
  23. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/00-meta/CONTEXT.md +6 -0
  24. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/00-meta/execution-log.md +27 -0
  25. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/01-input/CONTEXT.md +29 -0
  26. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/02-process/CONTEXT.md +29 -0
  27. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/03-output/CONTEXT.md +29 -0
  28. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/README.md +14 -0
  29. package/.agents/skills/workspace-maxxing/SKILL.md +312 -0
  30. package/.agents/skills/workspace-maxxing/scripts/benchmark.ts +171 -0
  31. package/.agents/skills/workspace-maxxing/scripts/dispatch.ts +473 -0
  32. package/.agents/skills/workspace-maxxing/scripts/generate-tests.ts +158 -0
  33. package/.agents/skills/workspace-maxxing/scripts/install-tool.ts +82 -0
  34. package/.agents/skills/workspace-maxxing/scripts/iterate.ts +265 -0
  35. package/.agents/skills/workspace-maxxing/scripts/orchestrator.ts +539 -0
  36. package/.agents/skills/workspace-maxxing/scripts/scaffold.ts +282 -0
  37. package/.agents/skills/workspace-maxxing/scripts/validate.ts +452 -0
  38. package/README.md +144 -0
  39. package/dist/agent-creator.d.ts +9 -0
  40. package/dist/agent-creator.d.ts.map +1 -0
  41. package/dist/agent-creator.js +199 -0
  42. package/dist/agent-creator.js.map +1 -0
  43. package/dist/agent-iterator.d.ts +38 -0
  44. package/dist/agent-iterator.d.ts.map +1 -0
  45. package/dist/agent-iterator.js +327 -0
  46. package/dist/agent-iterator.js.map +1 -0
  47. package/dist/index.d.ts +3 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +197 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/install.d.ts +18 -0
  52. package/dist/install.d.ts.map +1 -0
  53. package/dist/install.js +117 -0
  54. package/dist/install.js.map +1 -0
  55. package/dist/platforms/claude.d.ts +7 -0
  56. package/dist/platforms/claude.d.ts.map +1 -0
  57. package/dist/platforms/claude.js +70 -0
  58. package/dist/platforms/claude.js.map +1 -0
  59. package/dist/platforms/copilot.d.ts +7 -0
  60. package/dist/platforms/copilot.d.ts.map +1 -0
  61. package/dist/platforms/copilot.js +75 -0
  62. package/dist/platforms/copilot.js.map +1 -0
  63. package/dist/platforms/gemini.d.ts +7 -0
  64. package/dist/platforms/gemini.d.ts.map +1 -0
  65. package/dist/platforms/gemini.js +81 -0
  66. package/dist/platforms/gemini.js.map +1 -0
  67. package/dist/platforms/index.d.ts +8 -0
  68. package/dist/platforms/index.d.ts.map +1 -0
  69. package/dist/platforms/index.js +41 -0
  70. package/dist/platforms/index.js.map +1 -0
  71. package/dist/platforms/opencode.d.ts +7 -0
  72. package/dist/platforms/opencode.d.ts.map +1 -0
  73. package/dist/platforms/opencode.js +70 -0
  74. package/dist/platforms/opencode.js.map +1 -0
  75. package/dist/scripts/benchmark.d.ts +20 -0
  76. package/dist/scripts/benchmark.d.ts.map +1 -0
  77. package/dist/scripts/benchmark.js +170 -0
  78. package/dist/scripts/benchmark.js.map +1 -0
  79. package/dist/scripts/dispatch.d.ts +32 -0
  80. package/dist/scripts/dispatch.d.ts.map +1 -0
  81. package/dist/scripts/dispatch.js +386 -0
  82. package/dist/scripts/dispatch.js.map +1 -0
  83. package/dist/scripts/generate-tests.d.ts +11 -0
  84. package/dist/scripts/generate-tests.d.ts.map +1 -0
  85. package/dist/scripts/generate-tests.js +118 -0
  86. package/dist/scripts/generate-tests.js.map +1 -0
  87. package/dist/scripts/install-tool.d.ts +8 -0
  88. package/dist/scripts/install-tool.d.ts.map +1 -0
  89. package/dist/scripts/install-tool.js +98 -0
  90. package/dist/scripts/install-tool.js.map +1 -0
  91. package/dist/scripts/iterate.d.ts +44 -0
  92. package/dist/scripts/iterate.d.ts.map +1 -0
  93. package/dist/scripts/iterate.js +260 -0
  94. package/dist/scripts/iterate.js.map +1 -0
  95. package/dist/scripts/orchestrator.d.ts +40 -0
  96. package/dist/scripts/orchestrator.d.ts.map +1 -0
  97. package/dist/scripts/orchestrator.js +378 -0
  98. package/dist/scripts/orchestrator.js.map +1 -0
  99. package/dist/scripts/scaffold.d.ts +8 -0
  100. package/dist/scripts/scaffold.d.ts.map +1 -0
  101. package/dist/scripts/scaffold.js +279 -0
  102. package/dist/scripts/scaffold.js.map +1 -0
  103. package/dist/scripts/validate.d.ts +11 -0
  104. package/dist/scripts/validate.d.ts.map +1 -0
  105. package/dist/scripts/validate.js +472 -0
  106. package/dist/scripts/validate.js.map +1 -0
  107. package/docs/superpowers/plans/2026-04-07-autonomous-iteration-plan.md +1123 -0
  108. package/docs/superpowers/plans/2026-04-07-autonomous-iteration-sub-agent-batches.md +1923 -0
  109. package/docs/superpowers/plans/2026-04-07-autonomous-workflow-sub-skill-plan.md +1505 -0
  110. package/docs/superpowers/plans/2026-04-07-benchmarking-multi-agent-plan.md +854 -0
  111. package/docs/superpowers/plans/2026-04-07-workspace-builder-logic-plan.md +1426 -0
  112. package/docs/superpowers/plans/2026-04-07-workspace-maxxing-plan.md +1299 -0
  113. package/docs/superpowers/plans/2026-04-08-session-294c-subagent-invocation-plan.md +320 -0
  114. package/docs/superpowers/plans/2026-04-08-workflow-prompt-hardening-plan.md +1025 -0
  115. package/docs/superpowers/plans/2026-04-12-workspace-agent-creation-plan.md +992 -0
  116. package/docs/superpowers/specs/2026-04-07-autonomous-iteration-design.md +214 -0
  117. package/docs/superpowers/specs/2026-04-07-autonomous-iteration-sub-agent-batches-design.md +188 -0
  118. package/docs/superpowers/specs/2026-04-07-autonomous-workflow-sub-skill-design.md +137 -0
  119. package/docs/superpowers/specs/2026-04-07-benchmarking-multi-agent-design.md +105 -0
  120. package/docs/superpowers/specs/2026-04-07-workspace-builder-logic-design.md +179 -0
  121. package/docs/superpowers/specs/2026-04-07-workspace-maxxing-design.md +227 -0
  122. package/docs/superpowers/specs/2026-04-08-session-294c-subagent-invocation-design.md +265 -0
  123. package/docs/superpowers/specs/2026-04-08-workflow-prompt-hardening-design.md +146 -0
  124. package/docs/superpowers/specs/2026-04-12-workspace-agent-creation-design.md +239 -0
  125. package/jest.config.js +8 -0
  126. package/package.json +32 -0
  127. package/src/agent-creator.ts +180 -0
  128. package/src/agent-iterator.ts +397 -0
  129. package/src/index.ts +189 -0
  130. package/src/install.ts +105 -0
  131. package/src/platforms/claude.ts +40 -0
  132. package/src/platforms/copilot.ts +50 -0
  133. package/src/platforms/gemini.ts +55 -0
  134. package/src/platforms/index.ts +45 -0
  135. package/src/platforms/opencode.ts +41 -0
  136. package/src/scripts/benchmark.ts +171 -0
  137. package/src/scripts/dispatch.ts +473 -0
  138. package/src/scripts/generate-tests.ts +112 -0
  139. package/src/scripts/install-tool.ts +82 -0
  140. package/src/scripts/iterate.ts +271 -0
  141. package/src/scripts/orchestrator.ts +539 -0
  142. package/src/scripts/scaffold.ts +282 -0
  143. package/src/scripts/validate.ts +516 -0
  144. package/templates/.workspace-templates/CONTEXT.md +44 -0
  145. package/templates/.workspace-templates/SYSTEM.md +44 -0
  146. package/templates/.workspace-templates/references/anti-patterns.md +16 -0
  147. package/templates/.workspace-templates/references/iron-laws.md +26 -0
  148. package/templates/.workspace-templates/references/reporting-format.md +52 -0
  149. package/templates/.workspace-templates/scripts/benchmark.ts +171 -0
  150. package/templates/.workspace-templates/scripts/dispatch.ts +473 -0
  151. package/templates/.workspace-templates/scripts/generate-tests.ts +158 -0
  152. package/templates/.workspace-templates/scripts/install-tool.ts +82 -0
  153. package/templates/.workspace-templates/scripts/iterate.ts +265 -0
  154. package/templates/.workspace-templates/scripts/orchestrator.ts +539 -0
  155. package/templates/.workspace-templates/scripts/scaffold.ts +282 -0
  156. package/templates/.workspace-templates/scripts/validate.ts +452 -0
  157. package/templates/.workspace-templates/skills/architecture/SKILL.md +95 -0
  158. package/templates/.workspace-templates/skills/fixer/SKILL.md +109 -0
  159. package/templates/.workspace-templates/skills/iteration/SKILL.md +89 -0
  160. package/templates/.workspace-templates/skills/prompt-engineering/SKILL.md +87 -0
  161. package/templates/.workspace-templates/skills/research/SKILL.md +94 -0
  162. package/templates/.workspace-templates/skills/testing/SKILL.md +89 -0
  163. package/templates/.workspace-templates/skills/tooling/SKILL.md +87 -0
  164. package/templates/.workspace-templates/skills/validation/SKILL.md +103 -0
  165. package/templates/.workspace-templates/skills/worker/SKILL.md +79 -0
  166. package/templates/.workspace-templates/workspace/00-meta/CONTEXT.md +6 -0
  167. package/templates/.workspace-templates/workspace/00-meta/execution-log.md +27 -0
  168. package/templates/.workspace-templates/workspace/01-input/CONTEXT.md +29 -0
  169. package/templates/.workspace-templates/workspace/02-process/CONTEXT.md +29 -0
  170. package/templates/.workspace-templates/workspace/03-output/CONTEXT.md +29 -0
  171. package/templates/.workspace-templates/workspace/README.md +14 -0
  172. package/templates/SKILL.md +347 -0
  173. package/tests/benchmark.test.ts +158 -0
  174. package/tests/cli.test.ts +109 -0
  175. package/tests/dispatch-parallel.test.ts +124 -0
  176. package/tests/dispatch.test.ts +218 -0
  177. package/tests/fixer-skill.test.ts +203 -0
  178. package/tests/generate-tests.test.ts +101 -0
  179. package/tests/install-tool.test.ts +141 -0
  180. package/tests/install.test.ts +144 -0
  181. package/tests/integration.test.ts +324 -0
  182. package/tests/iterate.test.ts +219 -0
  183. package/tests/orchestrator.test.ts +710 -0
  184. package/tests/scaffold.test.ts +238 -0
  185. package/tests/templates-enhanced.test.ts +208 -0
  186. package/tests/templates.test.ts +219 -0
  187. package/tests/validate.test.ts +421 -0
  188. package/tests/validation-enhanced.test.ts +303 -0
  189. package/tests/worker-skill.test.ts +88 -0
  190. package/tsconfig.json +19 -0
  191. package/workspace/00-meta/CONTEXT.md +3 -0
  192. package/workspace/00-meta/execution-log.md +17 -0
  193. package/workspace/00-meta/tools.md +11 -0
  194. package/workspace/01-input/CONTEXT.md +27 -0
  195. package/workspace/CONTEXT.md +35 -0
  196. package/workspace/README.md +14 -0
  197. package/workspace/SYSTEM.md +36 -0
  198. package/workspace-maxxing-0.1.0.tgz +0 -0
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DEFAULT_CONFIG = void 0;
37
+ exports.splitIntoBatches = splitIntoBatches;
38
+ exports.createBatchDirectory = createBatchDirectory;
39
+ exports.getBatchDirectory = getBatchDirectory;
40
+ exports.createTestCaseDirectory = createTestCaseDirectory;
41
+ exports.runBatchLifecycle = runBatchLifecycle;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ exports.DEFAULT_CONFIG = {
45
+ batchSize: 3,
46
+ maxFixRetries: 3,
47
+ scoreThreshold: 85,
48
+ workerTimeout: 300,
49
+ subagentRunner: '',
50
+ };
51
+ const CONFIG_LIMITS = {
52
+ batchSize: { min: 1, max: 1000 },
53
+ maxFixRetries: { min: 0, max: 20 },
54
+ scoreThreshold: { min: 0, max: 100 },
55
+ workerTimeout: { min: 1, max: 3600 },
56
+ };
57
+ function extractTestCaseArray(raw) {
58
+ if (Array.isArray(raw)) {
59
+ return raw;
60
+ }
61
+ if (raw && typeof raw === 'object' && Array.isArray(raw.testCases)) {
62
+ return raw.testCases;
63
+ }
64
+ throw new Error('test-cases.json must be an array or an object with a testCases array');
65
+ }
66
+ function normalizeTestCaseIds(testCases, requireExplicitIds) {
67
+ const seen = new Set();
68
+ const ids = [];
69
+ for (let i = 0; i < testCases.length; i++) {
70
+ const tc = testCases[i];
71
+ if (!tc || typeof tc !== 'object' || tc.input === undefined || tc.expected === undefined) {
72
+ throw new Error(`test-cases.json item at index ${i} must include id, input, and expected`);
73
+ }
74
+ const explicitId = typeof tc.id === 'string' ? tc.id.trim() : '';
75
+ if (requireExplicitIds && !explicitId) {
76
+ throw new Error(`test-cases.json item at index ${i} must include id, input, and expected`);
77
+ }
78
+ const resolvedId = explicitId || `tc-${String(i + 1).padStart(3, '0')}`;
79
+ if (seen.has(resolvedId)) {
80
+ throw new Error(`Duplicate testCaseId: ${resolvedId}`);
81
+ }
82
+ seen.add(resolvedId);
83
+ ids.push(resolvedId);
84
+ }
85
+ return ids;
86
+ }
87
+ function validateIntegerConfig(name, value) {
88
+ const limits = CONFIG_LIMITS[name];
89
+ if (!Number.isFinite(value) || !Number.isInteger(value) || value < limits.min || value > limits.max) {
90
+ throw new RangeError(`Invalid ${name}: expected a finite integer between ${limits.min} and ${limits.max}, got ${String(value)}`);
91
+ }
92
+ return value;
93
+ }
94
+ function resolveConfig(config) {
95
+ return {
96
+ batchSize: validateIntegerConfig('batchSize', config.batchSize ?? exports.DEFAULT_CONFIG.batchSize),
97
+ maxFixRetries: validateIntegerConfig('maxFixRetries', config.maxFixRetries ?? exports.DEFAULT_CONFIG.maxFixRetries),
98
+ scoreThreshold: validateIntegerConfig('scoreThreshold', config.scoreThreshold ?? exports.DEFAULT_CONFIG.scoreThreshold),
99
+ workerTimeout: validateIntegerConfig('workerTimeout', config.workerTimeout ?? exports.DEFAULT_CONFIG.workerTimeout),
100
+ subagentRunner: (config.subagentRunner ?? '').trim(),
101
+ };
102
+ }
103
+ function dispatchWithTimeout(dispatchParallel, invocations, skillsDir, workerTimeoutSeconds, dispatchOptions) {
104
+ const startedAtMs = Date.now();
105
+ const results = dispatchParallel(invocations, skillsDir, dispatchOptions);
106
+ const elapsedMs = Date.now() - startedAtMs;
107
+ const timeoutMs = workerTimeoutSeconds * 1000;
108
+ if (elapsedMs <= timeoutMs) {
109
+ return { results, timedOut: false };
110
+ }
111
+ const timeoutFinding = `Worker timeout exceeded (${workerTimeoutSeconds}s) after ${elapsedMs}ms`;
112
+ const timedOutResults = invocations.map((invocation, index) => {
113
+ const existing = results[index];
114
+ const findings = Array.isArray(existing?.findings) ? existing.findings : [];
115
+ const recommendations = Array.isArray(existing?.recommendations) ? existing.recommendations : [];
116
+ return {
117
+ skill: existing?.skill ?? invocation.skill,
118
+ status: 'failed',
119
+ batchId: invocation.batchId,
120
+ testCaseId: invocation.testCaseId,
121
+ timestamp: existing?.timestamp ?? new Date().toISOString(),
122
+ findings: [...findings, timeoutFinding],
123
+ recommendations: recommendations.length > 0
124
+ ? recommendations
125
+ : ['Increase worker timeout or reduce batch complexity'],
126
+ metrics: {
127
+ ...(existing?.metrics ?? {}),
128
+ elapsedMs,
129
+ timeoutSeconds: workerTimeoutSeconds,
130
+ },
131
+ nextSkill: existing?.nextSkill ?? 'fixer',
132
+ };
133
+ });
134
+ return { results: timedOutResults, timedOut: true };
135
+ }
136
+ function mergeWorkerResults(currentResults, updates) {
137
+ const byTestCaseId = new Map();
138
+ currentResults.forEach((result) => byTestCaseId.set(result.testCaseId, result));
139
+ updates.forEach((result) => byTestCaseId.set(result.testCaseId, result));
140
+ return Array.from(byTestCaseId.values());
141
+ }
142
+ function parseIntegerArg(flag, rawValue) {
143
+ if (rawValue === undefined) {
144
+ return undefined;
145
+ }
146
+ const value = Number(rawValue);
147
+ if (!Number.isInteger(value)) {
148
+ throw new Error(`Invalid value for ${flag}: expected an integer, got "${rawValue}"`);
149
+ }
150
+ return value;
151
+ }
152
+ function splitIntoBatches(items, batchSize = exports.DEFAULT_CONFIG.batchSize) {
153
+ if (items.length === 0)
154
+ return [];
155
+ const safeBatchSize = validateIntegerConfig('batchSize', batchSize);
156
+ const batches = [];
157
+ for (let i = 0; i < items.length; i += safeBatchSize) {
158
+ batches.push(items.slice(i, i + safeBatchSize));
159
+ }
160
+ return batches;
161
+ }
162
+ function createBatchDirectory(baseDir, batchId) {
163
+ const batchDir = path.join(baseDir, `batch-${String(batchId).padStart(2, '0')}`);
164
+ fs.mkdirSync(batchDir, { recursive: true });
165
+ return batchDir;
166
+ }
167
+ function getBatchDirectory(baseDir, batchId) {
168
+ return path.join(baseDir, `batch-${String(batchId).padStart(2, '0')}`);
169
+ }
170
+ function createTestCaseDirectory(batchDir, testCaseId) {
171
+ const tcDir = path.join(batchDir, testCaseId);
172
+ fs.mkdirSync(tcDir, { recursive: true });
173
+ return tcDir;
174
+ }
175
+ function runBatchLifecycle(workspacePath, config = {}) {
176
+ const resolvedConfig = resolveConfig(config);
177
+ const ws = path.resolve(workspacePath);
178
+ const iterationDir = path.join(ws, '.agents', 'iteration');
179
+ fs.mkdirSync(iterationDir, { recursive: true });
180
+ const { generateTestCases } = require('./generate-tests');
181
+ const { dispatchParallel } = require('./dispatch');
182
+ const { calculateBenchmark } = require('./benchmark');
183
+ const testCasesResultPath = path.join(iterationDir, 'test-cases.json');
184
+ const existingTestCasesFile = fs.existsSync(testCasesResultPath);
185
+ // Prefer agent-produced test-cases if already present; otherwise generate fallback
186
+ let testCasesResultRaw = null;
187
+ if (existingTestCasesFile) {
188
+ try {
189
+ testCasesResultRaw = JSON.parse(fs.readFileSync(testCasesResultPath, 'utf-8'));
190
+ }
191
+ catch (e) {
192
+ const emsg = (e && e.message) ? e.message : String(e);
193
+ throw new Error(`Failed to parse existing test-cases.json: ${emsg}`);
194
+ }
195
+ }
196
+ else {
197
+ const generated = generateTestCases(ws);
198
+ fs.writeFileSync(testCasesResultPath, JSON.stringify(generated, null, 2));
199
+ testCasesResultRaw = generated;
200
+ }
201
+ const testCases = extractTestCaseArray(testCasesResultRaw);
202
+ const testCaseIds = normalizeTestCaseIds(testCases, existingTestCasesFile);
203
+ const dispatchOptions = {
204
+ workspacePath: ws,
205
+ runnerCommand: resolvedConfig.subagentRunner || undefined,
206
+ runnerTimeoutSeconds: resolvedConfig.workerTimeout,
207
+ };
208
+ const batches = splitIntoBatches(testCaseIds, resolvedConfig.batchSize);
209
+ const batchReports = [];
210
+ let passedBatches = 0;
211
+ let failedBatches = 0;
212
+ let escalatedBatches = 0;
213
+ for (let batchIdx = 0; batchIdx < batches.length; batchIdx++) {
214
+ const batchId = batchIdx + 1;
215
+ const batchDir = createBatchDirectory(iterationDir, batchId);
216
+ const batchTestCases = batches[batchIdx];
217
+ const invocations = batchTestCases.map((tcId) => ({
218
+ skill: 'worker',
219
+ batchId,
220
+ testCaseId: tcId,
221
+ }));
222
+ const skillsDir = path.join(ws, '.agents', 'skills', 'workspace-maxxing', 'skills');
223
+ const workerDispatch = dispatchWithTimeout(dispatchParallel, invocations, skillsDir, resolvedConfig.workerTimeout, dispatchOptions);
224
+ const workerResults = workerDispatch.results;
225
+ workerResults.forEach((result) => {
226
+ const tcDir = createTestCaseDirectory(batchDir, result.testCaseId);
227
+ fs.writeFileSync(path.join(tcDir, 'report.json'), JSON.stringify(result, null, 2));
228
+ });
229
+ const benchmarkResult = calculateBenchmark(ws);
230
+ const batchScore = benchmarkResult.weightedScore;
231
+ const hasWorkerFailures = workerResults.some((result) => result.status !== 'passed');
232
+ let batchStatus = 'passed';
233
+ if (batchScore < resolvedConfig.scoreThreshold || hasWorkerFailures) {
234
+ const fixResults = runFixLoop(workerResults, benchmarkResult.fixSuggestions, resolvedConfig.maxFixRetries, resolvedConfig.scoreThreshold, ws, resolvedConfig.workerTimeout, batchScore, dispatchParallel, calculateBenchmark, dispatchOptions, workerDispatch.timedOut
235
+ ? [`Worker timeout exceeded (${resolvedConfig.workerTimeout}s) during worker dispatch`]
236
+ : []);
237
+ if (fixResults.status === 'escalated') {
238
+ batchStatus = 'escalated';
239
+ escalatedBatches++;
240
+ }
241
+ else if (fixResults.status === 'failed') {
242
+ batchStatus = 'failed';
243
+ failedBatches++;
244
+ }
245
+ else {
246
+ batchStatus = 'passed';
247
+ passedBatches++;
248
+ }
249
+ const postFixBenchmark = calculateBenchmark(ws);
250
+ batchReports.push({
251
+ batchId,
252
+ testCases: batchTestCases,
253
+ score: postFixBenchmark.weightedScore,
254
+ status: batchStatus,
255
+ findings: fixResults.findings,
256
+ timestamp: new Date().toISOString(),
257
+ });
258
+ }
259
+ else {
260
+ passedBatches++;
261
+ batchReports.push({
262
+ batchId,
263
+ testCases: batchTestCases,
264
+ score: batchScore,
265
+ status: 'passed',
266
+ findings: resolvedConfig.subagentRunner
267
+ ? ['Batch passed threshold']
268
+ : ['Batch passed threshold', 'Dispatch mode: simulated (configure --subagent-runner for external sub-agents)'],
269
+ timestamp: new Date().toISOString(),
270
+ });
271
+ }
272
+ }
273
+ const summary = {
274
+ totalBatches: batches.length,
275
+ passedBatches,
276
+ failedBatches,
277
+ escalatedBatches,
278
+ overallScore: batchReports.length > 0
279
+ ? Math.round(batchReports.reduce((sum, r) => sum + r.score, 0) / batchReports.length)
280
+ : 0,
281
+ batchReports,
282
+ timestamp: new Date().toISOString(),
283
+ };
284
+ fs.writeFileSync(path.join(iterationDir, 'summary.json'), JSON.stringify(summary, null, 2));
285
+ return summary;
286
+ }
287
+ function runFixLoop(workerResults, fixSuggestions, maxRetries, scoreThreshold, workspacePath, workerTimeout, initialScore, dispatchParallel, calculateBenchmark, dispatchOptions, initialFindings = []) {
288
+ const findings = [...initialFindings];
289
+ let currentResults = [...workerResults];
290
+ let latestScore = initialScore;
291
+ if (fixSuggestions.length > 0) {
292
+ findings.push(`Fix suggestions: ${fixSuggestions.join('; ')}`);
293
+ }
294
+ for (let retry = 0; retry < maxRetries; retry++) {
295
+ const failingResults = currentResults.filter((r) => r.status !== 'passed');
296
+ if (failingResults.length === 0) {
297
+ if (latestScore >= scoreThreshold) {
298
+ return { status: 'passed', findings };
299
+ }
300
+ return {
301
+ status: 'failed',
302
+ findings: [
303
+ ...findings,
304
+ `No failing worker outputs remain, but score ${latestScore} is below threshold ${scoreThreshold}`,
305
+ ],
306
+ };
307
+ }
308
+ const fixInvocations = failingResults.map((r) => ({
309
+ skill: 'fixer',
310
+ batchId: r.batchId,
311
+ testCaseId: r.testCaseId,
312
+ }));
313
+ const skillsDir = path.join(workspacePath, '.agents', 'skills', 'workspace-maxxing', 'skills');
314
+ const fixDispatch = dispatchWithTimeout(dispatchParallel, fixInvocations, skillsDir, workerTimeout, dispatchOptions);
315
+ const fixResults = fixDispatch.results;
316
+ currentResults = mergeWorkerResults(currentResults, fixResults);
317
+ findings.push(`Fix attempt ${retry + 1}: ${fixResults.length} fixes applied`);
318
+ if (fixDispatch.timedOut) {
319
+ findings.push(`Worker timeout exceeded (${workerTimeout}s) during fix attempt ${retry + 1}`);
320
+ }
321
+ const benchmarkResult = calculateBenchmark(workspacePath);
322
+ latestScore = benchmarkResult.weightedScore;
323
+ if (latestScore >= scoreThreshold && currentResults.every((result) => result.status === 'passed')) {
324
+ return { status: 'passed', findings };
325
+ }
326
+ }
327
+ if (currentResults.every((result) => result.status === 'passed')) {
328
+ return {
329
+ status: 'failed',
330
+ findings: [
331
+ ...findings,
332
+ `No failing worker outputs remain, but score ${latestScore} is below threshold ${scoreThreshold}`,
333
+ ],
334
+ };
335
+ }
336
+ return { status: 'escalated', findings: [...findings, 'Max retries exhausted'] };
337
+ }
338
+ if (require.main === module) {
339
+ const args = process.argv.slice(2);
340
+ const parseArg = (flag) => {
341
+ const idx = args.indexOf(flag);
342
+ return idx !== -1 ? args[idx + 1] : undefined;
343
+ };
344
+ const workspace = parseArg('--workspace');
345
+ const batchSizeStr = parseArg('--batch-size');
346
+ const scoreThresholdStr = parseArg('--score-threshold');
347
+ const maxFixRetriesStr = parseArg('--max-fix-retries');
348
+ const workerTimeoutStr = parseArg('--worker-timeout');
349
+ const subagentRunner = parseArg('--subagent-runner') ?? process.env.WORKSPACE_MAXXING_SUBAGENT_RUNNER;
350
+ if (!workspace) {
351
+ console.error('Usage: node orchestrator.ts --workspace <path> [--batch-size <n>] [--score-threshold <n>] [--max-fix-retries <n>] [--worker-timeout <s>] [--subagent-runner <command>]');
352
+ process.exit(1);
353
+ }
354
+ const config = {};
355
+ try {
356
+ const batchSize = parseIntegerArg('--batch-size', batchSizeStr);
357
+ const scoreThreshold = parseIntegerArg('--score-threshold', scoreThresholdStr);
358
+ const maxFixRetries = parseIntegerArg('--max-fix-retries', maxFixRetriesStr);
359
+ const workerTimeout = parseIntegerArg('--worker-timeout', workerTimeoutStr);
360
+ if (batchSize !== undefined)
361
+ config.batchSize = batchSize;
362
+ if (scoreThreshold !== undefined)
363
+ config.scoreThreshold = scoreThreshold;
364
+ if (maxFixRetries !== undefined)
365
+ config.maxFixRetries = maxFixRetries;
366
+ if (workerTimeout !== undefined)
367
+ config.workerTimeout = workerTimeout;
368
+ if (subagentRunner)
369
+ config.subagentRunner = subagentRunner;
370
+ const summary = runBatchLifecycle(workspace, config);
371
+ console.log(JSON.stringify(summary, null, 2));
372
+ }
373
+ catch (error) {
374
+ console.error(error instanceof Error ? error.message : String(error));
375
+ process.exit(1);
376
+ }
377
+ }
378
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/scripts/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface ScaffoldOptions {
2
+ name: string;
3
+ stages: string[];
4
+ output: string;
5
+ force?: boolean;
6
+ }
7
+ export declare function scaffoldWorkspace(options: ScaffoldOptions): void;
8
+ //# sourceMappingURL=scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/scripts/scaffold.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CA0ChE"}