@interf/compiler 0.3.1 → 0.3.2

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 (46) hide show
  1. package/README.md +48 -17
  2. package/dist/commands/compile.d.ts +10 -0
  3. package/dist/commands/compile.d.ts.map +1 -1
  4. package/dist/commands/compile.js +200 -28
  5. package/dist/commands/compile.js.map +1 -1
  6. package/dist/commands/create.d.ts.map +1 -1
  7. package/dist/commands/create.js +17 -8
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/executor-flow.d.ts +2 -0
  10. package/dist/commands/executor-flow.d.ts.map +1 -1
  11. package/dist/commands/executor-flow.js +71 -22
  12. package/dist/commands/executor-flow.js.map +1 -1
  13. package/dist/commands/init.d.ts.map +1 -1
  14. package/dist/commands/init.js +51 -9
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/reset.d.ts.map +1 -1
  17. package/dist/commands/reset.js +2 -18
  18. package/dist/commands/reset.js.map +1 -1
  19. package/dist/commands/source-config-wizard.d.ts +1 -1
  20. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  21. package/dist/commands/source-config-wizard.js +69 -0
  22. package/dist/commands/source-config-wizard.js.map +1 -1
  23. package/dist/commands/test-flow.d.ts +1 -0
  24. package/dist/commands/test-flow.d.ts.map +1 -1
  25. package/dist/commands/test-flow.js +27 -4
  26. package/dist/commands/test-flow.js.map +1 -1
  27. package/dist/commands/test.d.ts.map +1 -1
  28. package/dist/commands/test.js +2 -0
  29. package/dist/commands/test.js.map +1 -1
  30. package/dist/commands/workspace-flow.d.ts +1 -1
  31. package/dist/commands/workspace-flow.d.ts.map +1 -1
  32. package/dist/commands/workspace-flow.js +1 -1
  33. package/dist/commands/workspace-flow.js.map +1 -1
  34. package/dist/lib/schema.d.ts +10 -0
  35. package/dist/lib/schema.d.ts.map +1 -1
  36. package/dist/lib/schema.js +16 -0
  37. package/dist/lib/schema.js.map +1 -1
  38. package/dist/lib/source-config.d.ts +3 -1
  39. package/dist/lib/source-config.d.ts.map +1 -1
  40. package/dist/lib/source-config.js +16 -0
  41. package/dist/lib/source-config.js.map +1 -1
  42. package/dist/lib/workspace-reset.d.ts +2 -0
  43. package/dist/lib/workspace-reset.d.ts.map +1 -0
  44. package/dist/lib/workspace-reset.js +21 -0
  45. package/dist/lib/workspace-reset.js.map +1 -0
  46. package/package.json +1 -1
package/README.md CHANGED
@@ -1,19 +1,21 @@
1
1
  # Interf
2
2
 
3
- Open-source knowledge compiler for your files.
3
+ Open-source knowledge compiler for local agents.
4
4
 
5
5
  Interf measures and improves how accurately local agents answer questions from your files.
6
6
 
7
7
  If you use Claude Code, Codex, OpenClaw, Hermes, or your own local agent setup on folders full of PDFs, docs, spreadsheets, and notes, the failure often shows up late: missed evidence, shallow analysis, bad comparisons, or answers that sound confident but are wrong.
8
8
 
9
- Interf lets you write a few questions and expected answers about your files, test the raw files first if you want a baseline, build a compiled workspace on top of those files, and see whether the result actually passes.
9
+ Interf lets you define a few checks over your files, measure the raw baseline first if you want it, compile a workspace on top of those files, and see whether the result actually passes.
10
10
 
11
11
  - your files stay on your machine
12
12
  - you choose the local agent
13
13
  - your raw files stay the source of truth
14
14
  - Interf adds a file-based layer on top
15
15
 
16
- It runs local data-processing pipelines with your agents as executors and produces a compiled workspace: a file-based layer on top of your raw files that agents can navigate, inspect, and work from.
16
+ `interf compile` runs a local data-processing pipeline with your agents as executors and produces a compiled workspace: a file-based layer on top of your raw files that agents can navigate, inspect, and work from.
17
+
18
+ In the advanced looped mode, Interf can keep rerunning that pipeline, testing the result, and trying improved preparation attempts until it finds the best-performing workspace within the attempt budget.
17
19
 
18
20
  ## Quick Start
19
21
 
@@ -43,6 +45,9 @@ If you want to see the config shape first, this is what Interf writes:
43
45
  {
44
46
  "name": "default",
45
47
  "about": "General compiled workspace for the quarterly results folder.",
48
+ "retry_policy": {
49
+ "max_attempts": 3
50
+ },
46
51
  "checks": [
47
52
  {
48
53
  "question": "What full-year revenue range did the company maintain?",
@@ -71,6 +76,7 @@ The first guided run can:
71
76
  - save a few questions and expected answers for this folder
72
77
  - run a baseline test on the raw files
73
78
  - compile the workspace
79
+ - optionally keep compiling and retesting until it passes or reaches the attempt limit
74
80
  - run the same test against the compiled workspace
75
81
 
76
82
  That gives you three concrete things:
@@ -79,6 +85,13 @@ That gives you three concrete things:
79
85
  - `interf/benchmarks/runs/...` with the saved test result
80
86
  - a pass/fail score on the same questions and expected answers you wrote
81
87
 
88
+ Saved test runs keep the details you need later:
89
+
90
+ - whether the run tested `raw`, `workspace`, or both
91
+ - per-question pass/fail results
92
+ - the saved run path under `interf/benchmarks/runs/...`
93
+ - executor metadata such as agent, command, model, effort, and profile when available
94
+
82
95
  If `interf.config.json` is missing, `interf` or `interf init` can draft it with you before the first compile. If Interf cannot find your local agent or compile setup, run:
83
96
 
84
97
  ```bash
@@ -116,21 +129,21 @@ interf compile
116
129
  interf test
117
130
  ```
118
131
 
119
- ## Start With A Few Questions
132
+ ## Start With Your Own Checks
120
133
 
121
- `interf.config.json` is where you write the questions and expected answers for a folder.
134
+ Start with your own checks over the files: questions where you already know the correct answer from the dataset.
135
+
136
+ `interf.config.json` is where you save those checks for a folder.
122
137
 
123
138
  That file uses one `workspaces` array:
124
139
 
125
140
  - most folders only need one workspace
126
141
  - add another workspace only if you want a separate compiled setup with different checks
127
142
  - each workspace carries its own `checks`
143
+ - each workspace can optionally carry `retry_policy.max_attempts` for the self-improving compile loop
128
144
 
129
145
  If the file is missing, `interf init` can draft it with you before the first compile. You can edit it any time.
130
146
 
131
- That example is just `interf.config.json`.
132
- Advanced retry settings do not live there.
133
-
134
147
  Good first checks are small and practical:
135
148
 
136
149
  - one exact number from a chart, table, or filing
@@ -144,9 +157,9 @@ interf compile
144
157
  interf test
145
158
  ```
146
159
 
147
- ## What `interf test` Compares
160
+ ## What `interf test` Does
148
161
 
149
- `interf test` scores either the raw files, a compiled workspace, or both on the same saved questions and expected answers.
162
+ `interf test` scores either the raw files, a compiled workspace, or both on the same saved checks.
150
163
 
151
164
  It lets you answer a simple question:
152
165
 
@@ -157,6 +170,12 @@ It lets you answer a simple question:
157
170
 
158
171
  By default it loads checks from `interf.config.json`, can run a raw baseline in an isolated raw-files sandbox, can test eligible compiled workspaces under `interf/workspaces/`, and saves the run under `interf/benchmarks/runs/`.
159
172
 
173
+ Each saved run includes:
174
+
175
+ - the benchmark target and mode
176
+ - per-question results and traces
177
+ - the executor metadata for that run
178
+
160
179
  If you run `interf test` from inside a workspace, it uses that workspace's checks and tests that workspace. If you run it from the source folder, it lets you choose a saved workspace and then choose raw files, the compiled workspace, or both.
161
180
 
162
181
  Live test runs use an isolated sandbox. For raw baselines, Interf gives the agent sanitized raw files only. For compiled-workspace tests, it gives the agent a copied workspace plus sanitized raw files. The source-folder control plane, `interf.config.json`, and saved test runs are not part of those sandboxes.
@@ -183,6 +202,8 @@ In public docs, `pipeline` is the thing Interf runs. `workflow` is the saved met
183
202
 
184
203
  The default workflow is built in. If you want a different method, you can define your own workflow package and benchmark it on the same folder.
185
204
 
205
+ If a workspace has `retry_policy.max_attempts`, or if you run `interf compile --max-attempts <n>`, Interf can keep compiling, testing, and retrying until that workspace passes or reaches the attempt limit. If several attempts fail, Interf keeps the best-performing compiled workspace from that run.
206
+
186
207
  ## What Gets Created
187
208
 
188
209
  After compile, Interf writes into `./interf/` beside your source files.
@@ -238,16 +259,26 @@ Why create another one:
238
259
 
239
260
  ## Advanced: Keep Improving Until It Passes
240
261
 
241
- Interf also supports an advanced experiment path above the normal build + test flow.
262
+ Interf also supports a deeper loop above the normal compile + test flow.
263
+
264
+ The normal workspace flow already supports `retry_policy.max_attempts` inside `interf.config.json` or `interf compile --max-attempts <n>`.
242
265
 
243
266
  Give it the same folder and the same checks. Interf can keep rerunning compile + test attempts until the test passes or the attempt budget runs out.
244
267
 
268
+ That loop is the self-improving part of the product:
269
+
270
+ - it reruns the local data-processing pipeline over the same files
271
+ - it keeps the checks fixed, so the target does not move
272
+ - it can vary the compile profile and follow-up diagnostics
273
+ - it records which attempt performed best on the same saved test
274
+
245
275
  In practice:
246
276
 
247
- - `retry_policy.max_attempts_per_profile` controls how many attempts each compile profile gets
277
+ - `retry_policy.max_attempts` controls how many total attempts a normal workspace compile gets
278
+ - `retry_policy.max_attempts_per_profile` controls how many attempts each compile profile gets in eval packs
248
279
  - stronger diagnostic profiles can be used only after the default ones fail
249
280
  - the checks stay the same across every attempt
250
- - each attempt records what changed
281
+ - each attempt records what changed and which attempt performed best
251
282
 
252
283
  Example eval-pack shape:
253
284
 
@@ -256,6 +287,9 @@ Example eval-pack shape:
256
287
  "workspaces": [
257
288
  {
258
289
  "name": "default",
290
+ "retry_policy": {
291
+ "max_attempts": 3
292
+ },
259
293
  "checks": [
260
294
  {
261
295
  "question": "What full-year revenue range did the company maintain?",
@@ -264,16 +298,13 @@ Example eval-pack shape:
264
298
  ]
265
299
  }
266
300
  ],
267
- // Advanced only: retry settings live in eval packs, not in interf.config.json.
268
301
  "retry_policy": {
269
302
  "max_attempts_per_profile": 3
270
303
  }
271
304
  }
272
305
  ```
273
306
 
274
- Today this lives in the advanced eval-pack runner, not in `interf.config.json` and not in a top-level `interf compile --max-retries` flag.
275
-
276
- Use the normal test flow first. Use this advanced path when you want Interf to keep improving the local preparation workflow until the workspace is good enough for your task or the attempt budget runs out. It spends more tokens, so use it when that extra spend is worth the accuracy target.
307
+ Use the normal workspace retry loop first. Use the eval-pack path when you want Interf to compare multiple compile profiles, add diagnostics, or keep iterating in a more controlled experiment loop. It spends more tokens, so use it when that extra spend is worth the accuracy target.
277
308
 
278
309
  ## Use It With Your Agent
279
310
 
@@ -1,4 +1,14 @@
1
+ import type { WorkflowExecutionProfile, WorkflowExecutor } from "../lib/executors.js";
2
+ import type { SourceWorkspaceConfig } from "../lib/schema.js";
1
3
  import type { CommandModule } from "yargs";
2
4
  export declare const compileCommand: CommandModule;
3
5
  export declare function runCompileCommand(argv?: Record<string, unknown>): Promise<void>;
6
+ export declare function runConfiguredWorkspaceCompile(options: {
7
+ executor: WorkflowExecutor;
8
+ workspacePath: string;
9
+ sourcePath: string;
10
+ workspaceConfig: SourceWorkspaceConfig | null;
11
+ executionProfile?: WorkflowExecutionProfile;
12
+ maxAttemptsOverride: number | null;
13
+ }): Promise<boolean>;
4
14
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAY3C,eAAO,MAAM,cAAc,EAAE,aAO5B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBzF"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAMtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAM9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAa3C,eAAO,MAAM,cAAc,EAAE,aAa5B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EzF;AA6CD,wBAAsB,6BAA6B,CACjD,OAAO,EAAE;IACP,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,GACA,OAAO,CAAC,OAAO,CAAC,CA+GlB"}
@@ -1,62 +1,234 @@
1
+ import { cpSync, mkdtempSync, rmSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
1
4
  import chalk from "chalk";
5
+ import * as p from "@clack/prompts";
2
6
  import { detectInterf, readInterfConfig, resolveSourceFolderPath, } from "../lib/interf.js";
7
+ import { findSourceWorkspaceConfig, loadSourceFolderConfig, resolveWorkspaceCompileMaxAttempts, } from "../lib/source-config.js";
8
+ import { resetWorkspaceGeneratedState } from "../lib/workspace-reset.js";
3
9
  import { formatWorkspaceWorkflowStageStep, resolveWorkspaceWorkflowFromConfig, } from "../lib/workflow-definitions.js";
4
10
  import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
5
11
  import { chooseWorkspaceConfigToBuild, compileWorkspaceWithReporter, ensureWorkspaceFromConfig, } from "./workspace-flow.js";
6
12
  import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
13
+ import { printSavedTestOutcome, runSavedWorkspaceTest } from "./test-flow.js";
7
14
  export const compileCommand = {
8
15
  command: "compile",
9
16
  describe: "Build a workspace for this folder",
10
- builder: (yargs) => addExecutionProfileOptions(yargs),
17
+ builder: (yargs) => addExecutionProfileOptions(yargs).option("max-attempts", {
18
+ alias: "max-retries",
19
+ type: "number",
20
+ describe: "Compile, test, and retry until the workspace passes or reaches this total attempt limit",
21
+ }),
11
22
  handler: async (argv) => {
12
23
  await runCompileCommand(argv);
13
24
  },
14
25
  };
15
26
  export async function runCompileCommand(argv = {}) {
16
- const executionProfile = executionProfileFromArgv(argv);
17
- const { executor, error } = await resolveOrConfigureLocalExecutor({ executionProfile });
18
- if (!executor) {
19
- process.exitCode = 1;
20
- console.log(chalk.red(error ?? "No coding agent detected."));
21
- return;
22
- }
23
27
  let workspacePath = null;
28
+ let sourcePath = process.cwd();
29
+ let workspaceConfig = null;
24
30
  const detected = detectInterf(process.cwd());
25
31
  if (detected) {
26
32
  workspacePath = detected.path;
33
+ sourcePath = resolveSourceFolderPath(detected.path, detected.config);
34
+ workspaceConfig = findSourceWorkspaceConfig(loadSourceFolderConfig(sourcePath), detected.config.name) ?? {
35
+ name: detected.config.name,
36
+ ...(detected.config.about ? { about: detected.config.about } : {}),
37
+ ...(detected.config.workflow ? { workflow: detected.config.workflow } : {}),
38
+ checks: [],
39
+ };
40
+ if (process.stdin.isTTY && process.stdout.isTTY) {
41
+ const confirmed = await p.confirm({
42
+ message: `Compile workspace "${detected.config.name}" now?`,
43
+ initialValue: true,
44
+ });
45
+ if (p.isCancel(confirmed) || !confirmed)
46
+ return;
47
+ }
27
48
  }
28
49
  else {
29
- workspacePath = await maybeCreateWorkspaceFromSavedSetup(process.cwd());
30
- if (!workspacePath) {
50
+ const selectedWorkspace = await chooseWorkspaceConfigToBuild({
51
+ sourcePath: process.cwd(),
52
+ selectMessage: "Which workspace do you want to compile?",
53
+ });
54
+ if (selectedWorkspace === undefined)
55
+ return;
56
+ if (!selectedWorkspace) {
31
57
  process.exitCode = 1;
32
58
  console.log(chalk.red(" No workspaces are set up for this folder yet."));
33
59
  console.log(chalk.dim(" Start with `interf` or `interf init` to set up this folder."));
34
60
  return;
35
61
  }
62
+ if (process.stdin.isTTY && process.stdout.isTTY) {
63
+ const confirmed = await p.confirm({
64
+ message: `Compile workspace "${selectedWorkspace.name}" now?`,
65
+ initialValue: true,
66
+ });
67
+ if (p.isCancel(confirmed) || !confirmed)
68
+ return;
69
+ }
70
+ workspaceConfig = selectedWorkspace;
71
+ workspacePath = ensureWorkspaceFromConfig(process.cwd(), selectedWorkspace);
72
+ console.log(chalk.dim(` Workspace: ${selectedWorkspace.name}`));
36
73
  }
37
- await compileWorkspaceCommand(executor, workspacePath);
38
- }
39
- async function maybeCreateWorkspaceFromSavedSetup(sourcePath) {
40
- const selected = await chooseWorkspaceConfigToBuild({
74
+ let maxAttemptsOverride = null;
75
+ try {
76
+ maxAttemptsOverride = readCompileMaxAttemptsOverride(argv);
77
+ }
78
+ catch (error) {
79
+ process.exitCode = 1;
80
+ console.log(chalk.red(error instanceof Error ? error.message : String(error)));
81
+ return;
82
+ }
83
+ const executionProfile = executionProfileFromArgv(argv);
84
+ const { executor, error } = await resolveOrConfigureLocalExecutor({
85
+ executionProfile,
86
+ purpose: "compile",
87
+ });
88
+ if (!executor && !error)
89
+ return;
90
+ if (!executor) {
91
+ process.exitCode = 1;
92
+ console.log(chalk.red(error ?? "No coding agent detected."));
93
+ return;
94
+ }
95
+ await runConfiguredWorkspaceCompile({
96
+ executor,
97
+ workspacePath,
41
98
  sourcePath,
42
- selectMessage: "Which workspace do you want to build?",
99
+ workspaceConfig,
100
+ executionProfile,
101
+ maxAttemptsOverride,
43
102
  });
44
- if (!selected)
103
+ }
104
+ function readCompileMaxAttemptsOverride(argv) {
105
+ const raw = argv["max-attempts"] ??
106
+ argv.maxAttempts ??
107
+ argv["max-retries"] ??
108
+ argv.maxRetries;
109
+ if (raw == null)
45
110
  return null;
46
- const workspacePath = ensureWorkspaceFromConfig(sourcePath, selected);
47
- console.log(chalk.dim(` Workspace: ${selected.name}`));
48
- return workspacePath;
111
+ const parsed = Number.parseInt(String(raw), 10);
112
+ if (!Number.isInteger(parsed) || parsed < 1 || parsed > 5) {
113
+ throw new Error("`--max-attempts` must be a whole number from 1 to 5.");
114
+ }
115
+ return parsed;
116
+ }
117
+ function printCompileFailure(workspacePath, failedStage) {
118
+ const workflowId = resolveWorkspaceWorkflowFromConfig(readInterfConfig(workspacePath));
119
+ const failedStageLabel = formatWorkspaceWorkflowStageStep(workflowId, failedStage ?? "compile", {
120
+ sourcePath: resolveSourceFolderPath(workspacePath),
121
+ });
122
+ console.log(chalk.red(` ${failedStageLabel} failed.`));
123
+ }
124
+ function testScore(outcome) {
125
+ return (outcome.result.passedChecks * 1000) + outcome.result.passedCases;
126
+ }
127
+ function snapshotWorkspace(workspacePath) {
128
+ const snapshotRoot = mkdtempSync(join(tmpdir(), "interf-compile-attempt-"));
129
+ const snapshotPath = join(snapshotRoot, "workspace");
130
+ cpSync(workspacePath, snapshotPath, { recursive: true });
131
+ return snapshotPath;
49
132
  }
50
- async function compileWorkspaceCommand(executor, workspacePath) {
51
- const result = await compileWorkspaceWithReporter(executor, workspacePath);
52
- if (!result.ok) {
133
+ function restoreWorkspaceSnapshot(snapshotPath, workspacePath) {
134
+ rmSync(workspacePath, { recursive: true, force: true });
135
+ cpSync(snapshotPath, workspacePath, { recursive: true });
136
+ }
137
+ export async function runConfiguredWorkspaceCompile(options) {
138
+ const maxAttempts = resolveWorkspaceCompileMaxAttempts(options.workspaceConfig ?? { retry_policy: undefined }, options.maxAttemptsOverride);
139
+ const loopEnabled = maxAttempts != null;
140
+ const checks = options.workspaceConfig?.checks ?? [];
141
+ if (loopEnabled && checks.length === 0) {
142
+ console.log(chalk.yellow(" Self-improving mode needs saved questions. Building once without the retry loop."));
143
+ }
144
+ else if (loopEnabled) {
145
+ console.log(chalk.dim(` Self-improving mode: up to ${maxAttempts} compile attempts.`));
146
+ console.log(chalk.dim(" Interf will compile, test the workspace, and retry until it passes or reaches the limit."));
147
+ }
148
+ if (!loopEnabled || checks.length === 0) {
149
+ const result = await compileWorkspaceWithReporter(options.executor, options.workspacePath);
150
+ if (!result.ok) {
151
+ process.exitCode = 1;
152
+ printCompileFailure(options.workspacePath, result.failedStage);
153
+ return false;
154
+ }
155
+ return true;
156
+ }
157
+ let bestOutcome = null;
158
+ let bestSnapshotPath = null;
159
+ let bestAttempt = 0;
160
+ try {
161
+ for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
162
+ if (attempt > 1) {
163
+ console.log();
164
+ console.log(chalk.dim(` Resetting generated workspace state before attempt ${attempt}/${maxAttempts}...`));
165
+ resetWorkspaceGeneratedState(options.workspacePath, "compile");
166
+ }
167
+ const result = await compileWorkspaceWithReporter(options.executor, options.workspacePath, {
168
+ heading: maxAttempts > 1
169
+ ? `Building compiled workspace (attempt ${attempt}/${maxAttempts})...`
170
+ : "Building compiled workspace...",
171
+ successMessage: maxAttempts > 1
172
+ ? `Compiled workspace ready for attempt ${attempt}.`
173
+ : "Compiled workspace ready.",
174
+ });
175
+ if (!result.ok) {
176
+ printCompileFailure(options.workspacePath, result.failedStage);
177
+ if (attempt < maxAttempts) {
178
+ console.log(chalk.yellow(` Attempt ${attempt}/${maxAttempts} failed. Retrying with a fresh compile.`));
179
+ continue;
180
+ }
181
+ process.exitCode = 1;
182
+ return false;
183
+ }
184
+ const outcome = await runSavedWorkspaceTest({
185
+ sourcePath: options.sourcePath,
186
+ workspaceConfig: options.workspaceConfig ?? {
187
+ name: readInterfConfig(options.workspacePath)?.name ?? "workspace",
188
+ checks: [],
189
+ },
190
+ executionProfile: options.executionProfile,
191
+ workspacePath: options.workspacePath,
192
+ });
193
+ if (!outcome) {
194
+ process.exitCode = 1;
195
+ console.log(chalk.red(" Could not run the saved workspace test after compile."));
196
+ return false;
197
+ }
198
+ console.log();
199
+ printSavedTestOutcome(`Compiled workspace · attempt ${attempt}/${maxAttempts}`, outcome);
200
+ if (!bestOutcome || testScore(outcome) > testScore(bestOutcome)) {
201
+ if (bestSnapshotPath) {
202
+ rmSync(bestSnapshotPath, { recursive: true, force: true });
203
+ }
204
+ bestOutcome = outcome;
205
+ bestSnapshotPath = snapshotWorkspace(options.workspacePath);
206
+ bestAttempt = attempt;
207
+ }
208
+ if (outcome.result.ok) {
209
+ console.log();
210
+ console.log(chalk.green(` Workspace passed on attempt ${attempt}/${maxAttempts}.`));
211
+ return true;
212
+ }
213
+ if (attempt < maxAttempts) {
214
+ console.log();
215
+ console.log(chalk.yellow(` Attempt ${attempt}/${maxAttempts} did not pass. Retrying with a fresh compile.`));
216
+ }
217
+ }
218
+ if (bestSnapshotPath && bestAttempt > 0 && bestAttempt !== maxAttempts) {
219
+ restoreWorkspaceSnapshot(bestSnapshotPath, options.workspacePath);
220
+ console.log();
221
+ console.log(chalk.dim(` Restored the best-performing compiled workspace from attempt ${bestAttempt}/${maxAttempts}.`));
222
+ }
53
223
  process.exitCode = 1;
54
- const workflowId = resolveWorkspaceWorkflowFromConfig(readInterfConfig(workspacePath));
55
- const failedStage = formatWorkspaceWorkflowStageStep(workflowId, result.failedStage ?? "compile", {
56
- sourcePath: resolveSourceFolderPath(workspacePath),
57
- });
58
- console.log(chalk.red(` ${failedStage} failed.`));
59
- return;
224
+ console.log();
225
+ console.log(chalk.red(` Workspace did not pass within ${maxAttempts} attempts.`));
226
+ return false;
227
+ }
228
+ finally {
229
+ if (bestSnapshotPath) {
230
+ rmSync(bestSnapshotPath, { recursive: true, force: true });
231
+ }
60
232
  }
61
233
  }
62
234
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAgDpE,eAAO,MAAM,aAAa,EAAE,aAmC3B,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CACxC,iBAsFP;AAcD,OAAO,EACL,KAAK,qBAAqB,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAiDpE,eAAO,MAAM,aAAa,EAAE,aAmC3B,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CACxC,iBA6FP;AAuBD,OAAO,EACL,KAAK,qBAAqB,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,6BAA6B,CAAC"}
@@ -6,9 +6,10 @@ import { slugify } from "../lib/util.js";
6
6
  import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
7
7
  import { loadSourceFolderConfig, upsertSourceWorkspaceConfig } from "../lib/source-config.js";
8
8
  import { chooseWorkspaceWorkflow, createWorkflowWizard, } from "./create-workflow-wizard.js";
9
- import { compileWorkspaceWithReporter, ensureWorkspaceFromConfig, } from "./workspace-flow.js";
9
+ import { ensureWorkspaceFromConfig, } from "./workspace-flow.js";
10
10
  import { promptSingleWorkspaceConfig } from "./source-config-wizard.js";
11
11
  import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
12
+ import { runConfiguredWorkspaceCompile } from "./compile.js";
12
13
  function normalizeCreateTarget(value) {
13
14
  if (!value)
14
15
  return null;
@@ -109,8 +110,6 @@ export async function createWorkspaceWizard(options = {}) {
109
110
  return;
110
111
  }
111
112
  upsertSourceWorkspaceConfig(cwd, configToSave);
112
- const name = configToSave.name;
113
- const about = configToSave.about;
114
113
  const spinner = p.spinner();
115
114
  spinner.start("Creating workspace...");
116
115
  let workspacePath = "";
@@ -136,19 +135,29 @@ export async function createWorkspaceWizard(options = {}) {
136
135
  }
137
136
  const { executor, error } = await resolveOrConfigureLocalExecutor({
138
137
  executionProfile: options.executionProfile,
138
+ purpose: "compile",
139
139
  });
140
+ if (!executor && !error) {
141
+ return;
142
+ }
140
143
  if (!executor) {
141
144
  process.exitCode = 1;
142
145
  p.log.error(error ?? "No coding agent detected.");
143
146
  return;
144
147
  }
145
- await compileWorkspaceAfterCreate(executor, workspacePath);
148
+ await compileWorkspaceAfterCreate(executor, cwd, configToSave, workspacePath, options.executionProfile);
146
149
  }
147
- async function compileWorkspaceAfterCreate(executor, workspacePath) {
148
- const compiled = await compileWorkspaceWithReporter(executor, workspacePath);
149
- if (!compiled.ok) {
150
+ async function compileWorkspaceAfterCreate(executor, sourcePath, workspaceConfig, workspacePath, executionProfile) {
151
+ const compiled = await runConfiguredWorkspaceCompile({
152
+ executor,
153
+ workspacePath,
154
+ sourcePath,
155
+ workspaceConfig,
156
+ executionProfile,
157
+ maxAttemptsOverride: null,
158
+ });
159
+ if (!compiled) {
150
160
  process.exitCode = 1;
151
- console.log(chalk.red(" Workspace compile failed."));
152
161
  return;
153
162
  }
154
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import { type WorkflowExecutionProfile, type WorkflowExecutor } from "../lib/exe
2
2
  export declare function resolveOrConfigureLocalExecutor(options?: {
3
3
  preflight?: boolean;
4
4
  executionProfile?: WorkflowExecutionProfile;
5
+ purpose?: "compile" | "test";
5
6
  }): Promise<{
6
7
  executor: WorkflowExecutor | null;
7
8
  error?: string;
9
+ cancelled?: boolean;
8
10
  }>;
9
11
  //# sourceMappingURL=executor-flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor-flow.d.ts","sourceRoot":"","sources":["../../src/commands/executor-flow.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AA4C7B,wBAAsB,+BAA+B,CACnD,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CACxC,GACL,OAAO,CAAC;IAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBhE"}
1
+ {"version":3,"file":"executor-flow.d.ts","sourceRoot":"","sources":["../../src/commands/executor-flow.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAoF7B,wBAAsB,+BAA+B,CACnD,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACzB,GACL,OAAO,CAAC;IAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAsCrF"}