@interf/compiler 0.3.2 → 0.3.3

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 (136) hide show
  1. package/README.md +96 -57
  2. package/dist/commands/compile.d.ts +2 -0
  3. package/dist/commands/compile.d.ts.map +1 -1
  4. package/dist/commands/compile.js +42 -10
  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 +5 -5
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/default.js +1 -1
  10. package/dist/commands/default.js.map +1 -1
  11. package/dist/commands/init.js +18 -22
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/source-config-wizard.d.ts +2 -1
  14. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  15. package/dist/commands/source-config-wizard.js +29 -27
  16. package/dist/commands/source-config-wizard.js.map +1 -1
  17. package/dist/commands/test-flow.d.ts +4 -0
  18. package/dist/commands/test-flow.d.ts.map +1 -1
  19. package/dist/commands/test-flow.js +24 -13
  20. package/dist/commands/test-flow.js.map +1 -1
  21. package/dist/commands/test.d.ts.map +1 -1
  22. package/dist/commands/test.js +16 -5
  23. package/dist/commands/test.js.map +1 -1
  24. package/dist/commands/workspace-flow.d.ts +2 -0
  25. package/dist/commands/workspace-flow.d.ts.map +1 -1
  26. package/dist/commands/workspace-flow.js +3 -2
  27. package/dist/commands/workspace-flow.js.map +1 -1
  28. package/dist/lib/agent-shells.d.ts +17 -0
  29. package/dist/lib/agent-shells.d.ts.map +1 -0
  30. package/dist/lib/agent-shells.js +294 -0
  31. package/dist/lib/agent-shells.js.map +1 -0
  32. package/dist/lib/benchmark-execution.d.ts +5 -1
  33. package/dist/lib/benchmark-execution.d.ts.map +1 -1
  34. package/dist/lib/benchmark-execution.js +34 -12
  35. package/dist/lib/benchmark-execution.js.map +1 -1
  36. package/dist/lib/benchmark-paths.d.ts +2 -0
  37. package/dist/lib/benchmark-paths.d.ts.map +1 -1
  38. package/dist/lib/benchmark-paths.js +6 -0
  39. package/dist/lib/benchmark-paths.js.map +1 -1
  40. package/dist/lib/benchmark-sandbox.d.ts +2 -0
  41. package/dist/lib/benchmark-sandbox.d.ts.map +1 -1
  42. package/dist/lib/benchmark-sandbox.js +68 -37
  43. package/dist/lib/benchmark-sandbox.js.map +1 -1
  44. package/dist/lib/benchmark-targets.js +1 -1
  45. package/dist/lib/benchmark-targets.js.map +1 -1
  46. package/dist/lib/interf-bootstrap.d.ts +2 -13
  47. package/dist/lib/interf-bootstrap.d.ts.map +1 -1
  48. package/dist/lib/interf-bootstrap.js +7 -164
  49. package/dist/lib/interf-bootstrap.js.map +1 -1
  50. package/dist/lib/interf-detect.d.ts +1 -0
  51. package/dist/lib/interf-detect.d.ts.map +1 -1
  52. package/dist/lib/interf-detect.js +5 -18
  53. package/dist/lib/interf-detect.js.map +1 -1
  54. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  55. package/dist/lib/interf-scaffold.js +7 -71
  56. package/dist/lib/interf-scaffold.js.map +1 -1
  57. package/dist/lib/interf-workflow-package.d.ts.map +1 -1
  58. package/dist/lib/interf-workflow-package.js +20 -25
  59. package/dist/lib/interf-workflow-package.js.map +1 -1
  60. package/dist/lib/interf.d.ts +3 -2
  61. package/dist/lib/interf.d.ts.map +1 -1
  62. package/dist/lib/interf.js +3 -2
  63. package/dist/lib/interf.js.map +1 -1
  64. package/dist/lib/local-workflows.d.ts +6 -1
  65. package/dist/lib/local-workflows.d.ts.map +1 -1
  66. package/dist/lib/local-workflows.js +143 -2
  67. package/dist/lib/local-workflows.js.map +1 -1
  68. package/dist/lib/runtime-contracts.d.ts.map +1 -1
  69. package/dist/lib/runtime-contracts.js +10 -4
  70. package/dist/lib/runtime-contracts.js.map +1 -1
  71. package/dist/lib/runtime-prompt.d.ts.map +1 -1
  72. package/dist/lib/runtime-prompt.js +1 -0
  73. package/dist/lib/runtime-prompt.js.map +1 -1
  74. package/dist/lib/runtime-runs.d.ts.map +1 -1
  75. package/dist/lib/runtime-runs.js +6 -2
  76. package/dist/lib/runtime-runs.js.map +1 -1
  77. package/dist/lib/runtime-types.d.ts +1 -0
  78. package/dist/lib/runtime-types.d.ts.map +1 -1
  79. package/dist/lib/schema.d.ts +88 -23
  80. package/dist/lib/schema.d.ts.map +1 -1
  81. package/dist/lib/schema.js +66 -37
  82. package/dist/lib/schema.js.map +1 -1
  83. package/dist/lib/source-config.d.ts +3 -3
  84. package/dist/lib/source-config.d.ts.map +1 -1
  85. package/dist/lib/source-config.js +8 -6
  86. package/dist/lib/source-config.js.map +1 -1
  87. package/dist/lib/state-artifacts.d.ts +2 -2
  88. package/dist/lib/state-artifacts.d.ts.map +1 -1
  89. package/dist/lib/state-artifacts.js +3 -3
  90. package/dist/lib/state-artifacts.js.map +1 -1
  91. package/dist/lib/state-io.d.ts +2 -2
  92. package/dist/lib/state-io.d.ts.map +1 -1
  93. package/dist/lib/state-io.js +5 -5
  94. package/dist/lib/state-io.js.map +1 -1
  95. package/dist/lib/state-paths.d.ts +1 -1
  96. package/dist/lib/state-paths.d.ts.map +1 -1
  97. package/dist/lib/state-paths.js +3 -3
  98. package/dist/lib/state-paths.js.map +1 -1
  99. package/dist/lib/state-view.d.ts +2 -2
  100. package/dist/lib/state-view.d.ts.map +1 -1
  101. package/dist/lib/state-view.js +6 -7
  102. package/dist/lib/state-view.js.map +1 -1
  103. package/dist/lib/state.d.ts +4 -4
  104. package/dist/lib/state.d.ts.map +1 -1
  105. package/dist/lib/state.js +3 -3
  106. package/dist/lib/state.js.map +1 -1
  107. package/dist/lib/workflow-definitions.d.ts +4 -1
  108. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  109. package/dist/lib/workflow-definitions.js +38 -3
  110. package/dist/lib/workflow-definitions.js.map +1 -1
  111. package/dist/lib/workflow-stage-runner.d.ts +1 -0
  112. package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
  113. package/dist/lib/workflow-stage-runner.js +2 -0
  114. package/dist/lib/workflow-stage-runner.js.map +1 -1
  115. package/dist/lib/workflows.d.ts +1 -1
  116. package/dist/lib/workflows.d.ts.map +1 -1
  117. package/dist/lib/workspace-compile.d.ts +4 -0
  118. package/dist/lib/workspace-compile.d.ts.map +1 -1
  119. package/dist/lib/workspace-compile.js +108 -66
  120. package/dist/lib/workspace-compile.js.map +1 -1
  121. package/dist/lib/workspace-docs.d.ts +3 -0
  122. package/dist/lib/workspace-docs.d.ts.map +1 -0
  123. package/dist/lib/workspace-docs.js +82 -0
  124. package/dist/lib/workspace-docs.js.map +1 -0
  125. package/dist/lib/workspace-raw.d.ts +30 -0
  126. package/dist/lib/workspace-raw.d.ts.map +1 -0
  127. package/dist/lib/workspace-raw.js +102 -0
  128. package/dist/lib/workspace-raw.js.map +1 -0
  129. package/dist/lib/workspace-schema.d.ts +26 -0
  130. package/dist/lib/workspace-schema.d.ts.map +1 -0
  131. package/dist/lib/workspace-schema.js +132 -0
  132. package/dist/lib/workspace-schema.js.map +1 -0
  133. package/package.json +1 -1
  134. package/skills/workflow/create/SKILL.md +19 -0
  135. package/skills/workspace/shape/SKILL.md +1 -1
  136. package/templates/workspace/README.md +2 -1
package/README.md CHANGED
@@ -1,21 +1,29 @@
1
1
  # Interf
2
2
 
3
- Open-source knowledge compiler for local agents.
3
+ Open-source toolkit for preparing local files for agents.
4
4
 
5
- Interf measures and improves how accurately local agents answer questions from your files.
5
+ Turn PDFs, docs, spreadsheets, and notes into a local workspace your agent can navigate, verify, and answer from.
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 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.
9
+ Interf lets you set a few truth checks on a dataset, measure the raw baseline first if you want it, compile a workspace on top of that dataset, and see whether the result actually passes.
10
10
 
11
- - your files stay on your machine
12
- - you choose the local agent
11
+ - your dataset stays on your machine
12
+ - BYOAI: use Claude Code, Codex, OpenClaw, Hermes, or your own local setup
13
13
  - your raw files stay the source of truth
14
- - Interf adds a file-based layer on top
14
+ - the workflow package is the reusable method
15
+ - the compiler runtime executes that workflow package and builds a file-based layer on top
15
16
 
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
+ `interf compile` runs a workflow package 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
 
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.
19
+ Each compiled workspace carries its own `raw/` snapshot, so agents can work from one self-contained folder instead of reaching back into the source-folder control plane.
20
+
21
+ Interf also projects native agent shells from that workspace:
22
+
23
+ - the compiled workspace itself is the folder your agent works from
24
+ - each compile stage runs inside its own ephemeral execution shell with stage-specific instructions and mounted zone aliases under `inputs/` and `outputs/`
25
+
26
+ The main reusable artifact is the workflow package. In the advanced looped mode, Interf can keep rerunning that workflow package against the same dataset and truth checks until it either passes or exhausts the attempt budget.
19
27
 
20
28
  ## Quick Start
21
29
 
@@ -39,15 +47,13 @@ interf
39
47
 
40
48
  If you want to see the config shape first, this is what Interf writes:
41
49
 
42
- ```json
50
+ ```jsonc
43
51
  {
44
52
  "workspaces": [
45
53
  {
46
- "name": "default",
54
+ "name": "my-workspace",
47
55
  "about": "General compiled workspace for the quarterly results folder.",
48
- "retry_policy": {
49
- "max_attempts": 3
50
- },
56
+ "max_attempts": 3, // rerun compile + test until this workspace passes the saved truth checks or hits this limit
51
57
  "checks": [
52
58
  {
53
59
  "question": "What full-year revenue range did the company maintain?",
@@ -73,7 +79,7 @@ interf test
73
79
 
74
80
  The first guided run can:
75
81
 
76
- - save a few questions and expected answers for this folder
82
+ - save a few truth checks for the dataset in this folder
77
83
  - run a baseline test on the raw files
78
84
  - compile the workspace
79
85
  - optionally keep compiling and retesting until it passes or reaches the attempt limit
@@ -81,15 +87,16 @@ The first guided run can:
81
87
 
82
88
  That gives you three concrete things:
83
89
 
84
- - `interf/workspaces/default/` with the compiled workspace for your files
90
+ - `interf/workspaces/my-workspace/` with the compiled workspace for your dataset
85
91
  - `interf/benchmarks/runs/...` with the saved test result
86
- - a pass/fail score on the same questions and expected answers you wrote
92
+ - a pass/fail score on the same truth checks you wrote
87
93
 
88
94
  Saved test runs keep the details you need later:
89
95
 
90
96
  - whether the run tested `raw`, `workspace`, or both
91
97
  - per-question pass/fail results
92
98
  - the saved run path under `interf/benchmarks/runs/...`
99
+ - the preserved sandbox path when a failed run is kept for review or you use `interf test --keep-sandboxes`
93
100
  - executor metadata such as agent, command, model, effort, and profile when available
94
101
 
95
102
  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:
@@ -100,7 +107,7 @@ interf doctor
100
107
 
101
108
  The first flow is:
102
109
 
103
- - write down a few questions your agent should be able to answer from your files
110
+ - write down a few truth checks your agent should be able to pass on the dataset
104
111
  - let `interf` or `interf init` save those checks in `interf.config.json`
105
112
  - optionally run a baseline test on the raw files
106
113
  - run `interf compile` to build the compiled workspace
@@ -113,7 +120,7 @@ The first flow is:
113
120
  Interf is built around a few simple design principles:
114
121
 
115
122
  - `Explicit`: the output is visible and inspectable, not hidden memory
116
- - `Local`: your files stay on your machine
123
+ - `Local`: your dataset stays on your machine
117
124
  - `File over app`: the output is just files, so you can use your editor, Unix tools, Obsidian, or your own software on top
118
125
  - `BYOAI`: use Claude Code, Codex, OpenClaw, Hermes, or your own model
119
126
 
@@ -129,22 +136,22 @@ interf compile
129
136
  interf test
130
137
  ```
131
138
 
132
- ## Start With Your Own Checks
139
+ ## Start With Your Own Truth Checks
133
140
 
134
- Start with your own checks over the files: questions where you already know the correct answer from the dataset.
141
+ Start with your own truth checks: questions where you already know the correct answer from the dataset.
135
142
 
136
- `interf.config.json` is where you save those checks for a folder.
143
+ `interf.config.json` is where you save those truth checks for a dataset folder.
137
144
 
138
145
  That file uses one `workspaces` array:
139
146
 
140
147
  - most folders only need one workspace
141
- - add another workspace only if you want a separate compiled setup with different checks
148
+ - add another workspace only if you want a separate compiled setup with different truth checks
142
149
  - each workspace carries its own `checks`
143
- - each workspace can optionally carry `retry_policy.max_attempts` for the self-improving compile loop
150
+ - each workspace can optionally carry `max_attempts` for the self-improving compile loop
144
151
 
145
152
  If the file is missing, `interf init` can draft it with you before the first compile. You can edit it any time.
146
153
 
147
- Good first checks are small and practical:
154
+ Good first truth checks are small and practical:
148
155
 
149
156
  - one exact number from a chart, table, or filing
150
157
  - one short statement that should be true or false
@@ -159,38 +166,47 @@ interf test
159
166
 
160
167
  ## What `interf test` Does
161
168
 
162
- `interf test` scores either the raw files, a compiled workspace, or both on the same saved checks.
169
+ `interf test` scores either the raw files, a compiled workspace, or both on the same saved truth checks.
163
170
 
164
171
  It lets you answer a simple question:
165
172
 
166
173
  - what is the current baseline on the raw files?
167
174
  - does this compiled workspace improve on that baseline?
168
- - which compiled workspace or workflow performs better on the same folder?
169
- - does a separate workspace with different checks work better for that job?
175
+ - which compiled workspace or workflow performs better on the same dataset?
176
+ - does a separate workspace with different truth checks work better for that job?
177
+
178
+ By default it loads truth 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/`.
179
+
180
+ For live runs:
170
181
 
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/`.
182
+ - raw tests execute from a sanitized raw-only sandbox
183
+ - compiled-workspace tests execute from a copied workspace sandbox with embedded sanitized `raw/`
184
+ - neither sandbox includes `interf.config.json` or the source-folder `interf/` control plane
185
+ - failed test sandboxes are kept automatically for review
186
+ - `interf test --keep-sandboxes` keeps every sandbox, even successful ones
172
187
 
173
188
  Each saved run includes:
174
189
 
175
190
  - the benchmark target and mode
176
191
  - per-question results and traces
192
+ - the preserved sandbox path when one was kept
177
193
  - the executor metadata for that run
178
194
 
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.
195
+ If you run `interf test` from inside a workspace, it uses that workspace's truth 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.
180
196
 
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.
197
+ 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 with its own embedded sanitized `raw/` fallback via `source.path`. The source-folder control plane, `interf.config.json`, and saved test runs are not part of those sandboxes.
182
198
 
183
199
  If you need repeated isolated experiments across workflows or models, use the advanced eval-pack runner in [docs/eval-loop.md](./docs/eval-loop.md).
184
200
 
185
201
  ## What `interf compile` Does
186
202
 
187
- `interf compile` runs the Interf data-processing pipeline over your files.
203
+ `interf compile` runs the selected workflow package over a dataset.
188
204
 
189
205
  By default, that means:
190
206
 
191
207
  - summarize the source files into per-file evidence notes
192
208
  - structure the cross-file knowledge layer into entities, claims, and indexes
193
- - shape the final workspace around its saved focus and questions
209
+ - shape the final workspace around its saved focus and truth checks
194
210
 
195
211
  In other words, the built-in workflow is:
196
212
 
@@ -198,11 +214,30 @@ In other words, the built-in workflow is:
198
214
  2. `structure`
199
215
  3. `shape`
200
216
 
201
- In public docs, `pipeline` is the thing Interf runs. `workflow` is the saved method that defines or customizes that pipeline.
217
+ The default workflow is built in. If you want a different method, you can define your own workflow package and test it on the same dataset.
202
218
 
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.
219
+ Each workflow package combines:
204
220
 
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.
221
+ - `workflow.json` for stage order, compiler API target, and deterministic contract mapping
222
+ - `workspace.schema.json` for the deterministic output shape of the compiled workspace
223
+ - stage `reads` / `writes` declarations that reference schema-defined zone ids
224
+ - local `SKILL.md` files as the authoring source for query and stage-execution behavior
225
+
226
+ Interf then projects that package into the native agent surfaces it actually runs:
227
+
228
+ - the compiled workspace gets a generated native query shell
229
+ - each compile stage gets a generated native execution shell
230
+ - that shell keeps its own `AGENTS.md`, `CLAUDE.md`, and native local skills
231
+ - schema-declared workspace zones are mounted both at their workflow-relative paths and as shell-local `inputs/<zone-id>` / `outputs/<zone-id>` aliases
232
+ - the workspace root itself is not linked into the shell
233
+
234
+ If a workspace has `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.
235
+
236
+ For stage-level review:
237
+
238
+ - successful stage shells are pruned by default
239
+ - failed stage shells stay under `.interf/execution-shells/`
240
+ - `interf compile --keep-stage-shells` keeps every stage shell so you can inspect the exact native instruction surface, mounted inputs, and mounted outputs for each stage
206
241
 
207
242
  ## What Gets Created
208
243
 
@@ -213,6 +248,9 @@ After compile, Interf writes into `./interf/` beside your source files.
213
248
 
214
249
  Inside those workspaces you will see things like:
215
250
 
251
+ - a workspace-local `raw/` snapshot for direct evidence and verification
252
+ - `workflow/workspace.schema.json` describing the deterministic output shape
253
+ - `AGENTS.md`, `CLAUDE.md`, and generated local query skills for manual agent use
216
254
  - summaries of source files
217
255
  - navigation notes and entrypoints for agents
218
256
  - cross-file knowledge notes
@@ -220,24 +258,26 @@ Inside those workspaces you will see things like:
220
258
 
221
259
  The compiled workspace is just a normal folder. Open it in your editor, in your agent, or in Obsidian if you want the graph view.
222
260
 
261
+ For manual use, the workspace is the native agent shell. The editable authoring source for that shell lives under `workflow/use/query/`, and Interf generates native local query skills from it inside the workspace.
262
+
223
263
  If you use Obsidian, open `interf/workspaces/<name>/` as the vault for the compiled workspace.
224
264
 
225
265
  ## Terminology
226
266
 
227
267
  Public terms:
228
268
 
229
- - `your files` = the source folder Interf reads from
230
- - `questions and expected answers` = the checks you want your agent to pass
231
- - `checks` = the pass/fail questions each workspace should satisfy
232
- - `test` = run the saved questions and get a score
269
+ - `dataset` = the collection of files Interf prepares
270
+ - `truth check` = one question plus the expected correct answer
271
+ - `checks` = the config field that stores those truth checks
272
+ - `test` = run the saved truth checks and get a score
233
273
  - `compiled workspace` = the output Interf produces on top of a folder
234
274
  - `workspace` = one compiled setup with its own checks
235
275
 
236
276
  Technical terms:
237
277
 
238
- - `source folder` = the raw files Interf reads from
278
+ - `source folder` = the dataset root Interf reads from
239
279
  - `benchmark` = the technical alias and saved-run layer behind `interf test`
240
- - `workflow` = the saved method that defines or customizes the pipeline
280
+ - `workflow package` = the saved method that defines or customizes how compile runs
241
281
  - `.interf/` = runtime state, proofs, and health artifacts
242
282
 
243
283
  ## Advanced: Separate Workspaces
@@ -253,7 +293,7 @@ Create another only when you want a different compiled setup with different chec
253
293
 
254
294
  Why create another one:
255
295
 
256
- - it keeps a separate set of questions and expected answers
296
+ - it keeps a separate set of truth checks
257
297
  - it gives that job its own compiled output under `interf/workspaces/<name>/`
258
298
  - it lets you test that job separately
259
299
 
@@ -261,23 +301,24 @@ Why create another one:
261
301
 
262
302
  Interf also supports a deeper loop above the normal compile + test flow.
263
303
 
264
- The normal workspace flow already supports `retry_policy.max_attempts` inside `interf.config.json` or `interf compile --max-attempts <n>`.
304
+ The normal workspace flow already supports `max_attempts` inside `interf.config.json` or `interf compile --max-attempts <n>`.
265
305
 
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.
306
+ Give it the same dataset and the same truth checks. Interf can keep rerunning compile + test attempts until the test passes or the attempt budget runs out.
267
307
 
268
308
  That loop is the self-improving part of the product:
269
309
 
270
- - it reruns the local data-processing pipeline over the same files
271
- - it keeps the checks fixed, so the target does not move
310
+ - it reruns the same workflow package over the same dataset
311
+ - it keeps the truth checks fixed, so the target does not move
312
+ - it keeps the measurement fixed, so attempts stay comparable
272
313
  - it can vary the compile profile and follow-up diagnostics
273
314
  - it records which attempt performed best on the same saved test
274
315
 
275
316
  In practice:
276
317
 
277
- - `retry_policy.max_attempts` controls how many total attempts a normal workspace compile gets
318
+ - `max_attempts` controls how many total attempts a normal workspace compile gets
278
319
  - `retry_policy.max_attempts_per_profile` controls how many attempts each compile profile gets in eval packs
279
320
  - stronger diagnostic profiles can be used only after the default ones fail
280
- - the checks stay the same across every attempt
321
+ - the truth checks stay the same across every attempt
281
322
  - each attempt records what changed and which attempt performed best
282
323
 
283
324
  Example eval-pack shape:
@@ -286,10 +327,8 @@ Example eval-pack shape:
286
327
  {
287
328
  "workspaces": [
288
329
  {
289
- "name": "default",
290
- "retry_policy": {
291
- "max_attempts": 3
292
- },
330
+ "name": "my-workspace",
331
+ "max_attempts": 3, // rerun compile + test until this workspace passes the saved truth checks or hits this limit
293
332
  "checks": [
294
333
  {
295
334
  "question": "What full-year revenue range did the company maintain?",
@@ -315,25 +354,25 @@ Paste something like this into your agent:
315
354
  ```text
316
355
  Install @interf/compiler, run `interf` in this folder, and use the local agent executor.
317
356
 
318
- If `interf.config.json` is missing, draft one workspace with a few checks this agent should be able to answer from these files and add the expected answers for me to confirm.
357
+ If `interf.config.json` is missing, draft one workspace with a few truth checks this agent should be able to answer from this dataset and add the expected answers for me to confirm.
319
358
 
320
359
  Then run a raw baseline if helpful, compile the workspace, and run `interf test`.
321
360
 
322
- Tell me whether the compiled workspace passes the checks, and only recommend it if it does.
361
+ Tell me whether the compiled workspace passes the truth checks, and only recommend it if it does.
323
362
  ```
324
363
 
325
364
  ## Custom Workflows
326
365
 
327
366
  Interf ships with a default workflow.
328
367
 
329
- If you want to change how the data-processing pipeline runs on your files, this is the part you customize:
368
+ If you want to change how the workflow package runs on your dataset, this is the part you customize:
330
369
 
331
370
  ```bash
332
371
  interf create workflow
333
372
  interf verify workflow --path <path>
334
373
  ```
335
374
 
336
- Then benchmark that workflow on the same folder and the same checks.
375
+ Then test that workflow on the same dataset and the same truth checks.
337
376
 
338
377
  Workflow package docs live in [docs/workflow-spec.md](./docs/workflow-spec.md).
339
378
 
@@ -344,7 +383,7 @@ Workflow package docs live in [docs/workflow-spec.md](./docs/workflow-spec.md).
344
383
  - `interf create workspace` = create another compiled workspace when you need one
345
384
  - `interf create workflow` = create a reusable local workflow package
346
385
  - `interf compile` = build a selected workspace for the current folder
347
- - `interf test` = test the raw files, a compiled workspace, or both on saved checks
386
+ - `interf test` = test the raw files, a compiled workspace, or both on saved truth checks
348
387
  - `interf benchmark` = alias for `interf test`
349
388
  - `interf doctor` = check local executor setup
350
389
  - `interf verify <check>` = run deterministic checks on major workflow steps
@@ -1,6 +1,7 @@
1
1
  import type { WorkflowExecutionProfile, WorkflowExecutor } from "../lib/executors.js";
2
2
  import type { SourceWorkspaceConfig } from "../lib/schema.js";
3
3
  import type { CommandModule } from "yargs";
4
+ import type { StageShellRetentionMode } from "../lib/workflows.js";
4
5
  export declare const compileCommand: CommandModule;
5
6
  export declare function runCompileCommand(argv?: Record<string, unknown>): Promise<void>;
6
7
  export declare function runConfiguredWorkspaceCompile(options: {
@@ -10,5 +11,6 @@ export declare function runConfiguredWorkspaceCompile(options: {
10
11
  workspaceConfig: SourceWorkspaceConfig | null;
11
12
  executionProfile?: WorkflowExecutionProfile;
12
13
  maxAttemptsOverride: number | null;
14
+ preserveStageShells?: StageShellRetentionMode;
13
15
  }): Promise<boolean>;
14
16
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
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
+ {"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;AAY3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,eAAO,MAAM,cAAc,EAAE,aAkB5B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFzF;AAuDD,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;IACnC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;CAC/C,GACA,OAAO,CAAC,OAAO,CAAC,CA4HlB"}
@@ -3,21 +3,25 @@ import { tmpdir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import chalk from "chalk";
5
5
  import * as p from "@clack/prompts";
6
- import { detectInterf, readInterfConfig, resolveSourceFolderPath, } from "../lib/interf.js";
6
+ import { detectInterf, readInterfConfig, resolveSourceControlPath, } from "../lib/interf.js";
7
7
  import { findSourceWorkspaceConfig, loadSourceFolderConfig, resolveWorkspaceCompileMaxAttempts, } from "../lib/source-config.js";
8
8
  import { resetWorkspaceGeneratedState } from "../lib/workspace-reset.js";
9
9
  import { formatWorkspaceWorkflowStageStep, resolveWorkspaceWorkflowFromConfig, } from "../lib/workflow-definitions.js";
10
10
  import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
11
11
  import { chooseWorkspaceConfigToBuild, compileWorkspaceWithReporter, ensureWorkspaceFromConfig, } from "./workspace-flow.js";
12
12
  import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
13
- import { printSavedTestOutcome, runSavedWorkspaceTest } from "./test-flow.js";
13
+ import { printSavedTestOutcome, questionPassRate, runSavedWorkspaceTest } from "./test-flow.js";
14
14
  export const compileCommand = {
15
15
  command: "compile",
16
- describe: "Build a workspace for this folder",
16
+ describe: "Build a workspace for this dataset",
17
17
  builder: (yargs) => addExecutionProfileOptions(yargs).option("max-attempts", {
18
18
  alias: "max-retries",
19
19
  type: "number",
20
20
  describe: "Compile, test, and retry until the workspace passes or reaches this total attempt limit",
21
+ }).option("keep-stage-shells", {
22
+ type: "boolean",
23
+ default: false,
24
+ describe: "Keep every executed stage shell under .interf/execution-shells for review instead of pruning successful shells",
21
25
  }),
22
26
  handler: async (argv) => {
23
27
  await runCompileCommand(argv);
@@ -30,7 +34,7 @@ export async function runCompileCommand(argv = {}) {
30
34
  const detected = detectInterf(process.cwd());
31
35
  if (detected) {
32
36
  workspacePath = detected.path;
33
- sourcePath = resolveSourceFolderPath(detected.path, detected.config);
37
+ sourcePath = resolveSourceControlPath(detected.path);
34
38
  workspaceConfig = findSourceWorkspaceConfig(loadSourceFolderConfig(sourcePath), detected.config.name) ?? {
35
39
  name: detected.config.name,
36
40
  ...(detected.config.about ? { about: detected.config.about } : {}),
@@ -99,6 +103,7 @@ export async function runCompileCommand(argv = {}) {
99
103
  workspaceConfig,
100
104
  executionProfile,
101
105
  maxAttemptsOverride,
106
+ preserveStageShells: readStageShellRetentionMode(argv),
102
107
  });
103
108
  }
104
109
  function readCompileMaxAttemptsOverride(argv) {
@@ -114,15 +119,21 @@ function readCompileMaxAttemptsOverride(argv) {
114
119
  }
115
120
  return parsed;
116
121
  }
122
+ function readStageShellRetentionMode(argv) {
123
+ const enabled = argv["keep-stage-shells"] ??
124
+ argv.keepStageShells ??
125
+ false;
126
+ return enabled ? "always" : "on-failure";
127
+ }
117
128
  function printCompileFailure(workspacePath, failedStage) {
118
129
  const workflowId = resolveWorkspaceWorkflowFromConfig(readInterfConfig(workspacePath));
119
130
  const failedStageLabel = formatWorkspaceWorkflowStageStep(workflowId, failedStage ?? "compile", {
120
- sourcePath: resolveSourceFolderPath(workspacePath),
131
+ sourcePath: resolveSourceControlPath(workspacePath),
121
132
  });
122
133
  console.log(chalk.red(` ${failedStageLabel} failed.`));
123
134
  }
124
135
  function testScore(outcome) {
125
- return (outcome.result.passedChecks * 1000) + outcome.result.passedCases;
136
+ return (outcome.result.passedCases * 1000) + outcome.result.passedChecks;
126
137
  }
127
138
  function snapshotWorkspace(workspacePath) {
128
139
  const snapshotRoot = mkdtempSync(join(tmpdir(), "interf-compile-attempt-"));
@@ -135,23 +146,28 @@ function restoreWorkspaceSnapshot(snapshotPath, workspacePath) {
135
146
  cpSync(snapshotPath, workspacePath, { recursive: true });
136
147
  }
137
148
  export async function runConfiguredWorkspaceCompile(options) {
138
- const maxAttempts = resolveWorkspaceCompileMaxAttempts(options.workspaceConfig ?? { retry_policy: undefined }, options.maxAttemptsOverride);
149
+ const preserveStageShells = options.preserveStageShells ?? "on-failure";
150
+ const maxAttempts = resolveWorkspaceCompileMaxAttempts(options.workspaceConfig ?? { max_attempts: undefined }, options.maxAttemptsOverride);
139
151
  const loopEnabled = maxAttempts != null;
140
152
  const checks = options.workspaceConfig?.checks ?? [];
141
153
  if (loopEnabled && checks.length === 0) {
142
- console.log(chalk.yellow(" Self-improving mode needs saved questions. Building once without the retry loop."));
154
+ console.log(chalk.yellow(" Self-improving mode needs saved truth checks. Building once without the retry loop."));
143
155
  }
144
156
  else if (loopEnabled) {
145
157
  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."));
158
+ console.log(chalk.dim(" Interf will run the workflow, test the workspace, and retry until it passes or reaches the limit."));
147
159
  }
148
160
  if (!loopEnabled || checks.length === 0) {
149
- const result = await compileWorkspaceWithReporter(options.executor, options.workspacePath);
161
+ const result = await compileWorkspaceWithReporter(options.executor, options.workspacePath, {
162
+ preserveStageShells,
163
+ });
150
164
  if (!result.ok) {
151
165
  process.exitCode = 1;
152
166
  printCompileFailure(options.workspacePath, result.failedStage);
167
+ printStageShellReviewHint(options.workspacePath, preserveStageShells);
153
168
  return false;
154
169
  }
170
+ printStageShellReviewHint(options.workspacePath, preserveStageShells);
155
171
  return true;
156
172
  }
157
173
  let bestOutcome = null;
@@ -171,9 +187,11 @@ export async function runConfiguredWorkspaceCompile(options) {
171
187
  successMessage: maxAttempts > 1
172
188
  ? `Compiled workspace ready for attempt ${attempt}.`
173
189
  : "Compiled workspace ready.",
190
+ preserveStageShells,
174
191
  });
175
192
  if (!result.ok) {
176
193
  printCompileFailure(options.workspacePath, result.failedStage);
194
+ printStageShellReviewHint(options.workspacePath, preserveStageShells);
177
195
  if (attempt < maxAttempts) {
178
196
  console.log(chalk.yellow(` Attempt ${attempt}/${maxAttempts} failed. Retrying with a fresh compile.`));
179
197
  continue;
@@ -189,6 +207,7 @@ export async function runConfiguredWorkspaceCompile(options) {
189
207
  },
190
208
  executionProfile: options.executionProfile,
191
209
  workspacePath: options.workspacePath,
210
+ preserveSandboxes: preserveStageShells === "always" ? "always" : "on-failure",
192
211
  });
193
212
  if (!outcome) {
194
213
  process.exitCode = 1;
@@ -208,6 +227,7 @@ export async function runConfiguredWorkspaceCompile(options) {
208
227
  if (outcome.result.ok) {
209
228
  console.log();
210
229
  console.log(chalk.green(` Workspace passed on attempt ${attempt}/${maxAttempts}.`));
230
+ printStageShellReviewHint(options.workspacePath, preserveStageShells);
211
231
  return true;
212
232
  }
213
233
  if (attempt < maxAttempts) {
@@ -223,6 +243,10 @@ export async function runConfiguredWorkspaceCompile(options) {
223
243
  process.exitCode = 1;
224
244
  console.log();
225
245
  console.log(chalk.red(` Workspace did not pass within ${maxAttempts} attempts.`));
246
+ if (bestOutcome) {
247
+ console.log(chalk.dim(` Best attempt truth-check pass rate: ${questionPassRate(bestOutcome)}%.`));
248
+ }
249
+ printStageShellReviewHint(options.workspacePath, preserveStageShells);
226
250
  return false;
227
251
  }
228
252
  finally {
@@ -231,4 +255,12 @@ export async function runConfiguredWorkspaceCompile(options) {
231
255
  }
232
256
  }
233
257
  }
258
+ function printStageShellReviewHint(workspacePath, preserveStageShells) {
259
+ const reviewRoot = join(workspacePath, ".interf", "execution-shells");
260
+ if (preserveStageShells === "always") {
261
+ console.log(chalk.dim(` Preserved stage shells: ${reviewRoot}`));
262
+ return;
263
+ }
264
+ console.log(chalk.dim(` Failed stage shells remain under: ${reviewRoot}`));
265
+ }
234
266
  //# 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;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"}
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;AAoDpE,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"}
@@ -7,7 +7,7 @@ import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/ex
7
7
  import { loadSourceFolderConfig, upsertSourceWorkspaceConfig } from "../lib/source-config.js";
8
8
  import { chooseWorkspaceWorkflow, createWorkflowWizard, } from "./create-workflow-wizard.js";
9
9
  import { ensureWorkspaceFromConfig, } from "./workspace-flow.js";
10
- import { promptSingleWorkspaceConfig } from "./source-config-wizard.js";
10
+ import { DEFAULT_WORKSPACE_NAME, promptSingleWorkspaceConfig, } from "./source-config-wizard.js";
11
11
  import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
12
12
  import { runConfiguredWorkspaceCompile } from "./compile.js";
13
13
  function normalizeCreateTarget(value) {
@@ -31,7 +31,7 @@ async function selectCreateTarget() {
31
31
  {
32
32
  value: "workspace",
33
33
  label: "Workspace (Recommended)",
34
- hint: "Create a compiled workspace for this folder",
34
+ hint: "Create a compiled workspace for this dataset",
35
35
  },
36
36
  {
37
37
  value: "workflow",
@@ -84,11 +84,11 @@ export async function createWorkspaceWizard(options = {}) {
84
84
  }
85
85
  const existing = listWorkspacesForSourceFolder(cwd);
86
86
  if (existing.length > 0) {
87
- p.log.info(`This folder already has ${existing.length} workspace${existing.length === 1 ? "" : "s"}. Add another only when you need a separate set of questions or a different focus.`);
87
+ p.log.info(`This dataset already has ${existing.length} workspace${existing.length === 1 ? "" : "s"}. Add another only when you need a separate set of truth checks or a different focus.`);
88
88
  }
89
- p.log.info("Interf builds a compiled workspace on top of your raw files. Your files stay where they are and stay the source of truth.");
89
+ p.log.info("Interf builds a compiled workspace on top of the dataset. The source files stay where they are and stay the source of truth.");
90
90
  const existingConfig = loadSourceFolderConfig(cwd);
91
- const suggestedName = slugify(defaultWorkspaceNameForSource(cwd) || basename(cwd)) || "default";
91
+ const suggestedName = slugify(defaultWorkspaceNameForSource(cwd) || basename(cwd)) || DEFAULT_WORKSPACE_NAME;
92
92
  const draft = await promptSingleWorkspaceConfig({
93
93
  initial: { name: suggestedName },
94
94
  introStyle: existingConfig ? "additional" : "first",