@interf/compiler 0.3.0 → 0.3.1

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 (144) hide show
  1. package/README.md +77 -71
  2. package/dist/bin.js +3 -3
  3. package/dist/bin.js.map +1 -1
  4. package/dist/commands/compile.d.ts +1 -0
  5. package/dist/commands/compile.d.ts.map +1 -1
  6. package/dist/commands/compile.js +42 -68
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/create-workflow-wizard.d.ts.map +1 -1
  9. package/dist/commands/create-workflow-wizard.js +17 -8
  10. package/dist/commands/create-workflow-wizard.js.map +1 -1
  11. package/dist/commands/create.d.ts.map +1 -1
  12. package/dist/commands/create.js +35 -45
  13. package/dist/commands/create.js.map +1 -1
  14. package/dist/commands/default.d.ts.map +1 -1
  15. package/dist/commands/default.js +27 -31
  16. package/dist/commands/default.js.map +1 -1
  17. package/dist/commands/doctor.js +2 -2
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/executor-flow.d.ts +9 -0
  20. package/dist/commands/executor-flow.d.ts.map +1 -0
  21. package/dist/commands/executor-flow.js +55 -0
  22. package/dist/commands/executor-flow.js.map +1 -0
  23. package/dist/commands/init.d.ts +1 -0
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +332 -64
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/commands/list.js +1 -1
  28. package/dist/commands/list.js.map +1 -1
  29. package/dist/commands/source-config-wizard.d.ts +5 -6
  30. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  31. package/dist/commands/source-config-wizard.js +86 -82
  32. package/dist/commands/source-config-wizard.js.map +1 -1
  33. package/dist/commands/test-flow.d.ts +21 -0
  34. package/dist/commands/test-flow.d.ts.map +1 -0
  35. package/dist/commands/test-flow.js +106 -0
  36. package/dist/commands/test-flow.js.map +1 -0
  37. package/dist/commands/test.d.ts +4 -0
  38. package/dist/commands/test.d.ts.map +1 -0
  39. package/dist/commands/test.js +131 -0
  40. package/dist/commands/test.js.map +1 -0
  41. package/dist/commands/verify.d.ts.map +1 -1
  42. package/dist/commands/verify.js +7 -3
  43. package/dist/commands/verify.js.map +1 -1
  44. package/dist/commands/workspace-flow.d.ts +21 -0
  45. package/dist/commands/workspace-flow.d.ts.map +1 -0
  46. package/dist/commands/workspace-flow.js +90 -0
  47. package/dist/commands/workspace-flow.js.map +1 -0
  48. package/dist/index.d.ts +1 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/lib/agent-detection.js +4 -4
  53. package/dist/lib/agent-detection.js.map +1 -1
  54. package/dist/lib/agent-skills.js +6 -6
  55. package/dist/lib/agent-skills.js.map +1 -1
  56. package/dist/lib/benchmark-execution.d.ts.map +1 -1
  57. package/dist/lib/benchmark-execution.js +39 -17
  58. package/dist/lib/benchmark-execution.js.map +1 -1
  59. package/dist/lib/benchmark-sandbox.d.ts +10 -0
  60. package/dist/lib/benchmark-sandbox.d.ts.map +1 -0
  61. package/dist/lib/benchmark-sandbox.js +75 -0
  62. package/dist/lib/benchmark-sandbox.js.map +1 -0
  63. package/dist/lib/benchmark-targets.d.ts +1 -0
  64. package/dist/lib/benchmark-targets.d.ts.map +1 -1
  65. package/dist/lib/benchmark-targets.js +12 -0
  66. package/dist/lib/benchmark-targets.js.map +1 -1
  67. package/dist/lib/benchmark-types.d.ts +1 -1
  68. package/dist/lib/benchmark-types.d.ts.map +1 -1
  69. package/dist/lib/benchmark.d.ts +1 -1
  70. package/dist/lib/benchmark.d.ts.map +1 -1
  71. package/dist/lib/benchmark.js +1 -1
  72. package/dist/lib/benchmark.js.map +1 -1
  73. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  74. package/dist/lib/interf-scaffold.js +2 -1
  75. package/dist/lib/interf-scaffold.js.map +1 -1
  76. package/dist/lib/interf-workflow-package.d.ts.map +1 -1
  77. package/dist/lib/interf-workflow-package.js +7 -2
  78. package/dist/lib/interf-workflow-package.js.map +1 -1
  79. package/dist/lib/local-workflows.d.ts.map +1 -1
  80. package/dist/lib/local-workflows.js +24 -8
  81. package/dist/lib/local-workflows.js.map +1 -1
  82. package/dist/lib/runtime-contracts.d.ts +3 -1
  83. package/dist/lib/runtime-contracts.d.ts.map +1 -1
  84. package/dist/lib/runtime-contracts.js +115 -0
  85. package/dist/lib/runtime-contracts.js.map +1 -1
  86. package/dist/lib/runtime-reconcile.d.ts +2 -1
  87. package/dist/lib/runtime-reconcile.d.ts.map +1 -1
  88. package/dist/lib/runtime-reconcile.js +71 -15
  89. package/dist/lib/runtime-reconcile.js.map +1 -1
  90. package/dist/lib/runtime-runs.js +12 -3
  91. package/dist/lib/runtime-runs.js.map +1 -1
  92. package/dist/lib/runtime-types.d.ts +11 -0
  93. package/dist/lib/runtime-types.d.ts.map +1 -1
  94. package/dist/lib/runtime.d.ts +1 -1
  95. package/dist/lib/runtime.d.ts.map +1 -1
  96. package/dist/lib/runtime.js +1 -1
  97. package/dist/lib/runtime.js.map +1 -1
  98. package/dist/lib/schema.d.ts +26 -9
  99. package/dist/lib/schema.d.ts.map +1 -1
  100. package/dist/lib/schema.js +13 -7
  101. package/dist/lib/schema.js.map +1 -1
  102. package/dist/lib/source-config.d.ts +2 -1
  103. package/dist/lib/source-config.d.ts.map +1 -1
  104. package/dist/lib/source-config.js +7 -4
  105. package/dist/lib/source-config.js.map +1 -1
  106. package/dist/lib/state-health.d.ts +2 -2
  107. package/dist/lib/state-health.d.ts.map +1 -1
  108. package/dist/lib/state-health.js +34 -19
  109. package/dist/lib/state-health.js.map +1 -1
  110. package/dist/lib/state-io.d.ts.map +1 -1
  111. package/dist/lib/state-io.js +6 -0
  112. package/dist/lib/state-io.js.map +1 -1
  113. package/dist/lib/validate-workspace.d.ts +41 -0
  114. package/dist/lib/validate-workspace.d.ts.map +1 -1
  115. package/dist/lib/validate-workspace.js +152 -4
  116. package/dist/lib/validate-workspace.js.map +1 -1
  117. package/dist/lib/validate.d.ts +2 -2
  118. package/dist/lib/validate.d.ts.map +1 -1
  119. package/dist/lib/validate.js +17 -2
  120. package/dist/lib/validate.js.map +1 -1
  121. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  122. package/dist/lib/workflow-definitions.js +42 -20
  123. package/dist/lib/workflow-definitions.js.map +1 -1
  124. package/dist/lib/workflow-helpers.d.ts.map +1 -1
  125. package/dist/lib/workflow-helpers.js +4 -2
  126. package/dist/lib/workflow-helpers.js.map +1 -1
  127. package/dist/lib/workflows.d.ts +2 -2
  128. package/dist/lib/workflows.d.ts.map +1 -1
  129. package/dist/lib/workflows.js +3 -1
  130. package/dist/lib/workflows.js.map +1 -1
  131. package/dist/lib/workspace-compile.d.ts +4 -3
  132. package/dist/lib/workspace-compile.d.ts.map +1 -1
  133. package/dist/lib/workspace-compile.js +199 -100
  134. package/dist/lib/workspace-compile.js.map +1 -1
  135. package/package.json +1 -1
  136. package/skills/benchmark/SKILL.md +4 -3
  137. package/skills/workflow/create/SKILL.md +4 -1
  138. package/skills/workspace/shape/SKILL.md +15 -0
  139. package/skills/workspace/structure/SKILL.md +15 -0
  140. package/skills/workspace/summarize/SKILL.md +15 -0
  141. package/dist/commands/benchmark.d.ts +0 -3
  142. package/dist/commands/benchmark.d.ts.map +0 -1
  143. package/dist/commands/benchmark.js +0 -83
  144. package/dist/commands/benchmark.js.map +0 -1
@@ -1,15 +1,18 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
1
2
  import { join } from "node:path";
2
3
  import { countFilesRecursive } from "./filesystem.js";
3
4
  import { readInterfConfig, refreshWorkspaceBootstrapGuidance, resolveSourceFolderPath, } from "./interf.js";
5
+ import { findSourceWorkspaceConfig, loadSourceFolderConfig } from "./source-config.js";
4
6
  import { buildSummarizePlan, writeSummarizePlan } from "./summarize-plan.js";
5
- import { reconcileWorkspaceCompileRun, reconcileWorkspaceSummarizeRun, } from "./runtime-reconcile.js";
7
+ import { reconcileWorkspaceShapeRun, reconcileWorkspaceStructureRun, reconcileWorkspaceSummarizeRun, } from "./runtime-reconcile.js";
6
8
  import { loadState, refreshWorkspaceArtifacts, } from "./state.js";
7
- import { buildWorkspaceSummarizeContract, validateStageContractAcceptance, } from "./runtime.js";
9
+ import { buildWorkspaceShapeContract, buildWorkspaceStructureContract, buildWorkspaceSummarizeContract, validateStageContractAcceptance, } from "./runtime.js";
8
10
  import { readJsonFileUnchecked } from "./parse.js";
9
11
  import { formatWorkspaceWorkflowStageStep, getWorkflowStagePolicyNotes, getWorkspaceWorkflow, resolveWorkspaceWorkflowFromConfig, } from "./workflow-definitions.js";
10
- import { validateWorkspaceSummarize, validateWorkspaceCompile, } from "./validate.js";
11
- import { reportBlankLine, reportLine, reportValidationFailure, buildLocalSkillContractExtension, buildStageInstructions, bundledSkillForContractType, resolveStageAcceptance, workflowCompileStageDirectory, } from "./workflow-helpers.js";
12
+ import { validateWorkspaceCompile, validateWorkspaceStructure, validateWorkspaceSummarize, } from "./validate.js";
13
+ import { buildLocalSkillContractExtension, buildStageInstructions, bundledSkillForContractType, reportBlankLine, reportLine, reportValidationFailure, resolveStageAcceptance, workflowCompileStageDirectory, } from "./workflow-helpers.js";
12
14
  import { executeValidatedStage, executeValidatedSummarizeStage, findStageByContractType, } from "./workflow-stage-runner.js";
15
+ const SHAPE_INPUT_RELATIVE_PATH = ".interf/shape-input.json";
13
16
  export function resolveWorkspaceContext(workspacePath) {
14
17
  const config = readInterfConfig(workspacePath);
15
18
  const workflowId = resolveWorkspaceWorkflowFromConfig(config);
@@ -54,66 +57,77 @@ function isWorkspaceSummarizeStageComplete(workspacePath, expectedSummaryTotal)
54
57
  (state.summarized ?? 0) >= expectedSummaryTotal &&
55
58
  inventoryTotal >= expectedSummaryTotal);
56
59
  }
57
- export function buildWorkspaceCompileContract(workspacePath, workflowId, summaryCount, instructions, stageId = "compile", stageSkillDir = "compile") {
58
- const sourcePath = resolveSourceFolderPath(workspacePath);
60
+ function isWorkspaceStructureStageComplete(workspacePath, summaryCount) {
61
+ const validation = validateWorkspaceStructure(workspacePath);
62
+ const acceptance = validateStageContractAcceptance(workspacePath);
63
+ const state = loadState(workspacePath);
64
+ return Boolean(validation.ok &&
65
+ acceptance.ok &&
66
+ state?.inventory_complete === true &&
67
+ typeof state.last_structure === "string" &&
68
+ state.last_structure.length > 0 &&
69
+ (state.structured ?? 0) >= summaryCount);
70
+ }
71
+ function isWorkspaceShapeStageComplete(workspacePath, summaryCount) {
72
+ const validation = validateWorkspaceCompile(workspacePath);
73
+ const acceptance = validateStageContractAcceptance(workspacePath);
74
+ const state = loadState(workspacePath);
75
+ return Boolean(validation.ok &&
76
+ acceptance.ok &&
77
+ state?.inventory_complete === true &&
78
+ typeof state.last_shape === "string" &&
79
+ state.last_shape.length > 0 &&
80
+ (state.shaped ?? state.compiled ?? 0) >= summaryCount &&
81
+ (state.compiled ?? 0) >= summaryCount);
82
+ }
83
+ function writeWorkspaceShapeInput(workspacePath, workspaceName, sourcePath) {
84
+ const workspaceConfig = readInterfConfig(workspacePath);
85
+ const sourceConfig = loadSourceFolderConfig(sourcePath);
86
+ const sourceWorkspace = findSourceWorkspaceConfig(sourceConfig, workspaceName);
87
+ const questions = (sourceWorkspace?.checks ?? []).map((check, index) => ({
88
+ id: check.id ?? `check-${index + 1}`,
89
+ question: check.question,
90
+ }));
91
+ mkdirSync(join(workspacePath, ".interf"), { recursive: true });
92
+ writeFileSync(join(workspacePath, SHAPE_INPUT_RELATIVE_PATH), JSON.stringify({
93
+ kind: "workspace-shape-input",
94
+ version: 1,
95
+ generated_at: new Date().toISOString(),
96
+ target_name: workspaceName,
97
+ about: sourceWorkspace?.about ?? workspaceConfig?.about ?? null,
98
+ question_count: questions.length,
99
+ questions,
100
+ }, null, 2) + "\n");
101
+ return SHAPE_INPUT_RELATIVE_PATH;
102
+ }
103
+ export function buildWorkspaceCompileContract(workspacePath, workflowId, summaryCount, instructions, stageId = "shape", stageSkillDir = "shape", shapeInputPath = SHAPE_INPUT_RELATIVE_PATH) {
104
+ const config = readInterfConfig(workspacePath);
105
+ const sourcePath = resolveSourceFolderPath(workspacePath, config);
59
106
  const acceptance = resolveStageAcceptance(workflowId, stageId, sourcePath);
60
- const localSkills = buildLocalSkillContractExtension(workspacePath, [workflowCompileStageDirectory(stageSkillDir)], "Use them to refine workspace compile behavior, entity extraction, claim extraction, and retrieval structure.");
61
- return {
107
+ const localSkills = buildLocalSkillContractExtension(workspacePath, [workflowCompileStageDirectory(stageSkillDir)], "Use them to refine workspace shaping, navigation, and retrieval routes.");
108
+ return buildWorkspaceShapeContract({
109
+ workspaceName: config?.name ?? "workspace",
110
+ summaryCount,
111
+ shapeInputPath,
112
+ workflowNotes: getWorkflowStagePolicyNotes(workflowId, stageId, sourcePath),
113
+ localSkillDocs: localSkills.reads,
62
114
  instructions,
63
- counts: {
64
- summary_total: summaryCount,
65
- local_skill_docs: localSkills.count,
66
- },
67
- ...(acceptance ? { acceptance } : {}),
68
- artifacts: {
69
- reads: [
70
- "interf.json",
71
- "summaries/",
72
- ...localSkills.reads,
73
- ],
74
- writes: [
75
- ".interf/inventory.json",
76
- "knowledge/entities/",
77
- "knowledge/claims/",
78
- "knowledge/indexes/",
79
- "home.md",
80
- ],
81
- verifies: [
82
- "interf verify compile --json",
83
- ],
84
- },
85
- policies: {
86
- execution_mode: "deterministic",
87
- status_prefixes: ["STATUS:", "DONE:", "BLOCKED:", "ERROR:"],
88
- notes: [
89
- "Build or refresh `.interf/inventory.json` first, then use it as the progress ledger for the rest of the run.",
90
- "Prefer the current inventory runtime shape: `.interf/inventory.json` should use `entries` plus `total`, and each entry should carry `source`, `summary`, `frontmatter_scanned: true`, and the abstract/overview-read proof needed for compile verification.",
91
- "This stage is the cross-file workspace compile pass. Treat synthesis outputs as working retrieval artifacts, not final truth.",
92
- "Use a multi-pass approach: inventory -> local evidence reading -> canonicalization -> retrieval optimization.",
93
- "Build retrieval-oriented outputs: canonical entities, cross-file claims, timelines, themes, and navigation indexes.",
94
- "Write structured knowledge outputs under `knowledge/entities/`, `knowledge/claims/`, and `knowledge/indexes/`.",
95
- "Do not collapse the knowledge layer into flat files like `knowledge/entities.md` or `knowledge/claims.md`.",
96
- "Do not start compile by deleting prior outputs with `rm`, wildcard cleanup, `;`, or `&&` chains. Rewrite the required files directly and remove stale artifacts only with narrow, explicit path writes when truly needed.",
97
- ...(summaryCount <= 3
98
- ? [
99
- `This run has ${summaryCount} summary file${summaryCount === 1 ? "" : "s"}. Treat it as a tiny compile: read every summary overview, write the smallest truthful substrate immediately, then stop.`,
100
- "For a tiny compile, do not spend time designing a broad ontology or rereading the same evidence loop.",
101
- "For a tiny compile, finish as soon as `home.md`, the stable core indexes, and at least one grounded entity or claim note exist together with a valid inventory.",
102
- ]
103
- : []),
104
- ...getWorkflowStagePolicyNotes(workflowId, stageId, sourcePath),
105
- ...localSkills.notes,
106
- ],
107
- evidence_weighting: {
108
- required_fields: ["source_kind", "evidence_tier", "truth_mode", "state"],
109
- preserve_tiers: true,
110
- },
111
- working_set: {
112
- target_context_fraction: 0.4,
113
- strategy: "Batch summary reads into bounded working sets, then canonicalize and optimize retrieval in multiple passes.",
114
- },
115
- },
116
- };
115
+ acceptance,
116
+ });
117
+ }
118
+ function buildWorkspaceStructureStageContract(workspacePath, workflowId, summaryCount, instructions, stageId = "structure", stageSkillDir = "structure") {
119
+ const config = readInterfConfig(workspacePath);
120
+ const sourcePath = resolveSourceFolderPath(workspacePath, config);
121
+ const acceptance = resolveStageAcceptance(workflowId, stageId, sourcePath);
122
+ const localSkills = buildLocalSkillContractExtension(workspacePath, [workflowCompileStageDirectory(stageSkillDir)], "Use them to refine workspace structure, taxonomy, ontology, entity extraction, and claim extraction.");
123
+ return buildWorkspaceStructureContract({
124
+ workspaceName: config?.name ?? "workspace",
125
+ summaryCount,
126
+ workflowNotes: getWorkflowStagePolicyNotes(workflowId, stageId, sourcePath),
127
+ localSkillDocs: localSkills.reads,
128
+ instructions,
129
+ acceptance,
130
+ });
117
131
  }
118
132
  export async function runWorkspaceSummarize(options) {
119
133
  const context = resolveWorkspaceContext(options.workspacePath);
@@ -198,19 +212,20 @@ export async function runWorkspaceSummarize(options) {
198
212
  plan,
199
213
  };
200
214
  }
201
- export async function runWorkspaceCompile(options) {
215
+ async function runWorkspaceStructure(options) {
202
216
  const workspaceConfig = readInterfConfig(options.workspacePath);
203
217
  const workspaceName = workspaceConfig?.name ?? "workspace";
204
218
  const workflowId = resolveWorkspaceWorkflowFromConfig(workspaceConfig);
205
219
  const sourcePath = options.sourcePath ?? resolveSourceFolderPath(options.workspacePath, workspaceConfig);
206
- const stageDefinition = options.stageDefinition ?? findStageByContractType(workspaceExecutionStages(workflowId, options.workspacePath), "workspace-knowledge-layer");
220
+ const stageDefinition = options.stageDefinition ?? findStageByContractType(workspaceExecutionStages(workflowId, options.workspacePath), "workspace-knowledge-structure");
207
221
  const stageStatusLabel = stageDefinition.label.toLowerCase();
208
222
  const summaryCount = countFilesRecursive(join(options.workspacePath, "summaries"));
223
+ const localSkills = buildLocalSkillContractExtension(options.workspacePath, [workflowCompileStageDirectory(stageDefinition.skillDir)], "Use them to refine workspace structure, taxonomy, ontology, entity extraction, and claim extraction.");
224
+ const instructions = buildStageInstructions(bundledSkillForContractType(stageDefinition.contractType), localSkills);
209
225
  if (options.reportStep !== false) {
210
226
  reportBlankLine(options.reporter);
211
- reportLine(options.reporter, `${formatWorkspaceWorkflowStageStep(workflowId, stageDefinition.id, { sourcePath })} (building knowledge layer)`);
227
+ reportLine(options.reporter, `${formatWorkspaceWorkflowStageStep(workflowId, stageDefinition.id, { sourcePath })} (building knowledge structure)`);
212
228
  }
213
- const instructions = buildStageInstructions(bundledSkillForContractType(stageDefinition.contractType), buildLocalSkillContractExtension(options.workspacePath, [workflowCompileStageDirectory(stageDefinition.skillDir)], "Use them to refine workspace compile behavior, entity extraction, claim extraction, and retrieval structure."));
214
229
  return executeValidatedStage({
215
230
  executor: options.executor,
216
231
  workspacePath: options.workspacePath,
@@ -220,22 +235,112 @@ export async function runWorkspaceCompile(options) {
220
235
  stageDefinition,
221
236
  instructions,
222
237
  summary: `Preparing ${stageDefinition.label.toLowerCase()} for ${summaryCount} summary files.`,
223
- contract: buildWorkspaceCompileContract(options.workspacePath, workflowId, summaryCount, instructions, stageDefinition.id, stageDefinition.skillDir),
238
+ contract: buildWorkspaceStructureStageContract(options.workspacePath, workflowId, summaryCount, instructions, stageDefinition.id, stageDefinition.skillDir),
224
239
  statusLines: [
225
240
  `Emit exactly one startup line: STATUS: loaded ${stageStatusLabel} plan ${summaryCount} summary files.`,
226
241
  `Emit STATUS: inventoried summaries ${summaryCount}/${summaryCount} after the inventory pass completes.`,
227
- `Emit STATUS: read summary files X/${summaryCount} after each deep-read batch or every 25 files, whichever comes first.`,
228
- `Emit STATUS: wrote ${stageStatusLabel} outputs after knowledge/ and home.md are updated.`,
242
+ `Emit STATUS: structured knowledge layer after entities, claims, and indexes are updated.`,
229
243
  `Emit DONE: ${stageStatusLabel} complete ${summaryCount}/${summaryCount} when the required outputs are on disk.`,
230
244
  ],
231
245
  reporter: options.reporter,
232
- completionCheck: () => validateWorkspaceCompile(options.workspacePath).ok &&
233
- validateStageContractAcceptance(options.workspacePath).ok,
234
- reconcile: () => reconcileWorkspaceCompileRun(options.workspacePath),
246
+ completionCheck: () => isWorkspaceStructureStageComplete(options.workspacePath, summaryCount),
247
+ reconcile: () => reconcileWorkspaceStructureRun(options.workspacePath),
248
+ refreshArtifacts: () => refreshWorkspaceArtifacts(options.workspacePath, { ensureViewSpec: true }),
249
+ validate: () => validateWorkspaceStructure(options.workspacePath),
250
+ });
251
+ }
252
+ async function runWorkspaceShape(options) {
253
+ const workspaceConfig = readInterfConfig(options.workspacePath);
254
+ const workspaceName = workspaceConfig?.name ?? "workspace";
255
+ const workflowId = resolveWorkspaceWorkflowFromConfig(workspaceConfig);
256
+ const sourcePath = options.sourcePath ?? resolveSourceFolderPath(options.workspacePath, workspaceConfig);
257
+ const stageDefinition = options.stageDefinition ?? findStageByContractType(workspaceExecutionStages(workflowId, options.workspacePath), "workspace-query-shape");
258
+ const stageStatusLabel = stageDefinition.label.toLowerCase();
259
+ const summaryCount = countFilesRecursive(join(options.workspacePath, "summaries"));
260
+ const localSkills = buildLocalSkillContractExtension(options.workspacePath, [workflowCompileStageDirectory(stageDefinition.skillDir)], "Use them to refine final workspace shaping, navigation, and retrieval routes.");
261
+ const instructions = buildStageInstructions(bundledSkillForContractType(stageDefinition.contractType), localSkills);
262
+ const shapeInputPath = writeWorkspaceShapeInput(options.workspacePath, workspaceName, sourcePath);
263
+ if (options.reportStep !== false) {
264
+ reportBlankLine(options.reporter);
265
+ reportLine(options.reporter, `${formatWorkspaceWorkflowStageStep(workflowId, stageDefinition.id, { sourcePath })} (shaping workspace surface)`);
266
+ }
267
+ return executeValidatedStage({
268
+ executor: options.executor,
269
+ workspacePath: options.workspacePath,
270
+ targetName: workspaceName,
271
+ workflow: workflowId,
272
+ workflowSourcePath: sourcePath,
273
+ stageDefinition,
274
+ instructions,
275
+ summary: `Preparing ${stageDefinition.label.toLowerCase()} for ${summaryCount} summary files.`,
276
+ contract: buildWorkspaceCompileContract(options.workspacePath, workflowId, summaryCount, instructions, stageDefinition.id, stageDefinition.skillDir, shapeInputPath),
277
+ statusLines: [
278
+ `Emit exactly one startup line: STATUS: loaded ${stageStatusLabel} plan ${summaryCount} summary files.`,
279
+ `Emit STATUS: read shaping input after ${shapeInputPath} has been loaded.`,
280
+ "Emit STATUS: shaped workspace surface after home.md and any focused indexes are updated.",
281
+ `Emit DONE: ${stageStatusLabel} complete ${summaryCount}/${summaryCount} when the required outputs are on disk.`,
282
+ ],
283
+ reporter: options.reporter,
284
+ completionCheck: () => isWorkspaceShapeStageComplete(options.workspacePath, summaryCount),
285
+ reconcile: () => reconcileWorkspaceShapeRun(options.workspacePath),
235
286
  refreshArtifacts: () => refreshWorkspaceArtifacts(options.workspacePath, { ensureViewSpec: true }),
236
287
  validate: () => validateWorkspaceCompile(options.workspacePath),
237
288
  });
238
289
  }
290
+ async function runWorkspaceCompileStages(options) {
291
+ const workspaceConfig = readInterfConfig(options.workspacePath);
292
+ const workflowId = resolveWorkspaceWorkflowFromConfig(workspaceConfig);
293
+ const sourcePath = options.sourcePath ?? resolveSourceFolderPath(options.workspacePath, workspaceConfig);
294
+ const stages = workspaceExecutionStages(workflowId, options.workspacePath).filter((stage) => stage.contractType !== "workspace-file-evidence");
295
+ let structure = null;
296
+ let shape = null;
297
+ for (const stageDefinition of stages) {
298
+ const result = stageDefinition.contractType === "workspace-knowledge-structure"
299
+ ? await runWorkspaceStructure({
300
+ executor: options.executor,
301
+ workspacePath: options.workspacePath,
302
+ sourcePath,
303
+ reporter: options.reporter,
304
+ reportStep: options.reportStep,
305
+ stageDefinition,
306
+ })
307
+ : await runWorkspaceShape({
308
+ executor: options.executor,
309
+ workspacePath: options.workspacePath,
310
+ sourcePath,
311
+ reporter: options.reporter,
312
+ reportStep: options.reportStep,
313
+ stageDefinition,
314
+ });
315
+ if (stageDefinition.contractType === "workspace-knowledge-structure") {
316
+ structure = result;
317
+ }
318
+ else if (stageDefinition.contractType === "workspace-query-shape") {
319
+ shape = result;
320
+ }
321
+ if (!result.ok) {
322
+ return {
323
+ ok: false,
324
+ structure,
325
+ shape,
326
+ failedStage: stageDefinition.id,
327
+ };
328
+ }
329
+ }
330
+ return {
331
+ ok: true,
332
+ structure,
333
+ shape,
334
+ failedStage: null,
335
+ };
336
+ }
337
+ export async function runWorkspaceCompile(options) {
338
+ const result = await runWorkspaceCompileStages(options);
339
+ if (!result.ok) {
340
+ return result.shape ?? result.structure ?? { ok: false, code: 1 };
341
+ }
342
+ return result.shape ?? result.structure ?? { ok: true, code: 0 };
343
+ }
239
344
  export async function compileWorkspace(options) {
240
345
  refreshWorkspaceBootstrapGuidance(options.workspacePath);
241
346
  const { sourcePath, workflowId } = resolveWorkspaceContext(options.workspacePath);
@@ -246,53 +351,47 @@ export async function compileWorkspace(options) {
246
351
  skipped: true,
247
352
  plan: buildSummarizePlan(sourcePath, options.workspacePath),
248
353
  };
249
- let compile = null;
250
354
  let evidencePassCount = 0;
251
355
  for (const stageDefinition of stages) {
252
- if (stageDefinition.contractType === "workspace-file-evidence") {
253
- summarize = await runWorkspaceSummarize({
254
- executor: options.executor,
255
- workspacePath: options.workspacePath,
256
- sourcePath,
257
- reporter: options.reporter,
258
- reportSummary: evidencePassCount === 0,
259
- reportStep: true,
260
- stageDefinition,
261
- fullPass: evidencePassCount > 0,
262
- });
263
- evidencePassCount += 1;
264
- if (!summarize.ok) {
265
- return {
266
- ok: false,
267
- summarize,
268
- compile: null,
269
- failedStage: stageDefinition.id,
270
- };
271
- }
272
- continue;
356
+ if (stageDefinition.contractType !== "workspace-file-evidence") {
357
+ break;
273
358
  }
274
- compile = await runWorkspaceCompile({
359
+ summarize = await runWorkspaceSummarize({
275
360
  executor: options.executor,
276
361
  workspacePath: options.workspacePath,
277
362
  sourcePath,
278
363
  reporter: options.reporter,
364
+ reportSummary: evidencePassCount === 0,
279
365
  reportStep: true,
280
366
  stageDefinition,
367
+ fullPass: evidencePassCount > 0,
281
368
  });
282
- if (!compile.ok) {
369
+ evidencePassCount += 1;
370
+ if (!summarize.ok) {
283
371
  return {
284
372
  ok: false,
285
373
  summarize,
286
- compile,
374
+ structure: null,
375
+ shape: null,
376
+ compile: null,
287
377
  failedStage: stageDefinition.id,
288
378
  };
289
379
  }
290
380
  }
381
+ const compileStages = await runWorkspaceCompileStages({
382
+ executor: options.executor,
383
+ workspacePath: options.workspacePath,
384
+ sourcePath,
385
+ reporter: options.reporter,
386
+ reportStep: true,
387
+ });
291
388
  return {
292
- ok: compile?.ok ?? summarize.ok,
389
+ ok: compileStages.ok,
293
390
  summarize,
294
- compile,
295
- failedStage: null,
391
+ structure: compileStages.structure,
392
+ shape: compileStages.shape,
393
+ compile: compileStages.shape,
394
+ failedStage: compileStages.failedStage,
296
395
  };
297
396
  }
298
397
  //# sourceMappingURL=workspace-compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-compile.js","sourceRoot":"","sources":["../../src/lib/workspace-compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-compile.js","sourceRoot":"","sources":["../../src/lib/workspace-compile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interf/compiler",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Open-source knowledge compiler that measures local-agent accuracy on your files and builds compiled workspaces on top of them.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,7 +12,7 @@ Use this skill when the job is to compare compiled Interf outputs, not to build
12
12
  Prefer the CLI:
13
13
 
14
14
  ```bash
15
- interf benchmark [type]
15
+ interf test
16
16
  ```
17
17
 
18
18
  This skill is for:
@@ -29,7 +29,8 @@ This skill is **not** for:
29
29
  - benchmark specs in `interf/benchmarks/`
30
30
  - saved benchmark runs in `interf/benchmarks/runs/`
31
31
  - current target eligibility from `interf status`
32
- - public command: `interf benchmark`
32
+ - public command: `interf test`
33
+ - technical alias: `interf benchmark`
33
34
 
34
35
  When this skill is used inside a generated workspace, do not try to open SDK repo source files outside the current workspace. The benchmark spec files and saved run artifacts are the source of truth.
35
36
 
@@ -93,7 +94,7 @@ If a target is `stale`, `failed`, or `idle`, do not benchmark it yet. Recompile
93
94
  - one clear question per case
94
95
  - one output file per case
95
96
  - a few deterministic checks
96
- 5. Run `interf benchmark`.
97
+ 5. Run `interf test`.
97
98
  6. Read the saved run artifact under `interf/benchmarks/runs/`.
98
99
  7. Summarize pass/fail differences and what they imply about the workflow or workspace.
99
100
 
@@ -75,7 +75,8 @@ Each stage can define:
75
75
  Use the shipped workspace contract families only:
76
76
 
77
77
  - `workspace-file-evidence`
78
- - `workspace-knowledge-layer`
78
+ - `workspace-knowledge-structure`
79
+ - `workspace-query-shape`
79
80
 
80
81
  Do not invent new engine contract kinds in a local workflow package.
81
82
 
@@ -95,6 +96,8 @@ Use dynamic counts when possible.
95
96
 
96
97
  Good:
97
98
  - `"summarized": "target_files"`
99
+ - `"structured": "summary_total"`
100
+ - `"shaped": "summary_total"`
98
101
  - `"compiled": "summary_total"`
99
102
 
100
103
  Avoid hardcoding fixed file counts unless the workflow really requires them.
@@ -0,0 +1,15 @@
1
+ # Workspace Shape
2
+
3
+ Shape the final workspace surface around the workspace focus and saved questions.
4
+
5
+ Requirements:
6
+ - read the shaping input named in the stage contract
7
+ - treat the shaping input as focus plus question text only
8
+ - write `home.md` and any focused indexes needed under `knowledge/indexes/`
9
+ - bias routing, prioritization, and navigation toward the job this workspace should answer well
10
+ - use the existing knowledge structure instead of redoing extraction work
11
+ - do not copy expected answers into the workspace
12
+ - prefer better retrieval routes over speculative synthesis
13
+
14
+ Output goal:
15
+ - a final workspace surface that is easier for agents to navigate and use correctly
@@ -0,0 +1,15 @@
1
+ # Workspace Structure
2
+
3
+ Build the cross-file knowledge structure from the summary set.
4
+
5
+ Requirements:
6
+ - read `summaries/` and `.interf/inventory.json`
7
+ - write durable notes under `knowledge/entities/`, `knowledge/claims/`, and `knowledge/indexes/`
8
+ - canonicalize entities, claims, categories, timelines, and other retrieval structure
9
+ - use taxonomy and ontology only to improve retrieval, navigation, and evidence tracking
10
+ - prefer small stable notes over one giant catch-all file
11
+ - do not write `home.md` in this stage
12
+ - do not copy expected answers from saved checks
13
+
14
+ Output goal:
15
+ - a reusable cross-file structure that later shaping can route through
@@ -0,0 +1,15 @@
1
+ # Workspace Summarize
2
+
3
+ Turn raw source files into per-file evidence notes under `summaries/`.
4
+
5
+ Requirements:
6
+ - process only the files listed in the stage contract
7
+ - write one markdown summary per source file
8
+ - use JSON frontmatter, not YAML
9
+ - include `source`, `source_kind`, `evidence_tier`, `truth_mode`, `state`, and `abstract`
10
+ - include a readable `## Abstract` block in the body
11
+ - keep summaries source-grounded and conservative
12
+ - do not do broad cross-file synthesis in this stage
13
+
14
+ Output goal:
15
+ - a clean per-file evidence layer the later stages can trust
@@ -1,3 +0,0 @@
1
- import type { CommandModule } from "yargs";
2
- export declare const benchmarkCommand: CommandModule;
3
- //# sourceMappingURL=benchmark.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/commands/benchmark.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AA6B3C,eAAO,MAAM,gBAAgB,EAAE,aA2E9B,CAAC"}
@@ -1,83 +0,0 @@
1
- import chalk from "chalk";
2
- import * as p from "@clack/prompts";
3
- import { detectInterf, resolveSourceFolderPath, } from "../lib/interf.js";
4
- import { buildBenchmarkSpecFromSourceFolderConfig, loadSourceFolderConfig, SOURCE_FOLDER_CONFIG_FILE, } from "../lib/source-config.js";
5
- import { listBenchmarkTargets, runBenchmarkAuto, saveBenchmarkRun, } from "../lib/benchmark.js";
6
- import { resolveLocalExecutor } from "../lib/executors.js";
7
- import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
8
- function resolveBenchmarkSourcePath(cwd) {
9
- const detected = detectInterf(cwd);
10
- if (detected) {
11
- return resolveSourceFolderPath(detected.path, detected.config);
12
- }
13
- return cwd;
14
- }
15
- export const benchmarkCommand = {
16
- command: "benchmark",
17
- describe: "Benchmark compiled workspaces against questions and expected answers",
18
- builder: (yargs) => addExecutionProfileOptions(yargs),
19
- handler: async (argv) => {
20
- const cwd = process.cwd();
21
- const detected = detectInterf(cwd);
22
- const sourcePath = detected ? resolveSourceFolderPath(detected.path, detected.config) : cwd;
23
- const config = loadSourceFolderConfig(sourcePath);
24
- if (!config) {
25
- process.exitCode = 1;
26
- console.log(chalk.red(` No ${SOURCE_FOLDER_CONFIG_FILE} found in ${sourcePath}.`));
27
- console.log(chalk.dim(" Add checks first with `interf init` or by writing `interf.config.json`."));
28
- return;
29
- }
30
- const spec = buildBenchmarkSpecFromSourceFolderConfig({
31
- sourcePath,
32
- targetName: detected?.config.name ?? null,
33
- });
34
- if (!spec) {
35
- process.exitCode = 1;
36
- console.log(chalk.red(" Could not derive a benchmark from interf.config.json."));
37
- return;
38
- }
39
- const allTargets = listBenchmarkTargets(sourcePath);
40
- const eligibleTargets = allTargets.filter((target) => target.eligible);
41
- if (eligibleTargets.length === 0) {
42
- process.exitCode = 1;
43
- console.log(chalk.red(" No compiled workspaces are eligible to benchmark yet."));
44
- console.log(chalk.dim(" Build a workspace first with `interf compile`."));
45
- return;
46
- }
47
- let targets = eligibleTargets;
48
- if (eligibleTargets.length > 1) {
49
- const selected = await p.multiselect({
50
- message: "Which workspaces?",
51
- required: true,
52
- options: eligibleTargets.map((target) => ({
53
- value: target.path,
54
- label: target.name,
55
- hint: target.summary,
56
- })),
57
- });
58
- if (p.isCancel(selected))
59
- return;
60
- const selectedPaths = new Set(selected);
61
- targets = eligibleTargets.filter((target) => selectedPaths.has(target.path));
62
- }
63
- const executionProfile = executionProfileFromArgv(argv);
64
- const { executor } = resolveLocalExecutor({
65
- executionProfile,
66
- preflight: spec.cases.some((entry) => !entry.file || Boolean(entry.answer)),
67
- });
68
- const result = await runBenchmarkAuto(sourcePath, spec, targets, {
69
- executor,
70
- });
71
- const runPath = saveBenchmarkRun(sourcePath, result);
72
- console.log();
73
- console.log(chalk.bold(` ${result.benchmark.name}`));
74
- console.log();
75
- for (const target of result.results) {
76
- const color = target.ok ? chalk.green : chalk.red;
77
- console.log(color(` ${target.target.name}: ${target.passedCases}/${target.totalCases} cases, ${target.passedChecks}/${target.totalChecks} checks`));
78
- }
79
- console.log();
80
- console.log(chalk.dim(` Saved run: ${runPath}`));
81
- },
82
- };
83
- //# sourceMappingURL=benchmark.js.map