@interf/compiler 0.3.1 → 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 (148) hide show
  1. package/README.md +124 -54
  2. package/dist/commands/compile.d.ts +12 -0
  3. package/dist/commands/compile.d.ts.map +1 -1
  4. package/dist/commands/compile.js +233 -29
  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 +22 -13
  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/executor-flow.d.ts +2 -0
  12. package/dist/commands/executor-flow.d.ts.map +1 -1
  13. package/dist/commands/executor-flow.js +71 -22
  14. package/dist/commands/executor-flow.js.map +1 -1
  15. package/dist/commands/init.d.ts.map +1 -1
  16. package/dist/commands/init.js +60 -22
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/reset.d.ts.map +1 -1
  19. package/dist/commands/reset.js +2 -18
  20. package/dist/commands/reset.js.map +1 -1
  21. package/dist/commands/source-config-wizard.d.ts +2 -1
  22. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  23. package/dist/commands/source-config-wizard.js +87 -16
  24. package/dist/commands/source-config-wizard.js.map +1 -1
  25. package/dist/commands/test-flow.d.ts +5 -0
  26. package/dist/commands/test-flow.d.ts.map +1 -1
  27. package/dist/commands/test-flow.js +48 -14
  28. package/dist/commands/test-flow.js.map +1 -1
  29. package/dist/commands/test.d.ts.map +1 -1
  30. package/dist/commands/test.js +18 -5
  31. package/dist/commands/test.js.map +1 -1
  32. package/dist/commands/workspace-flow.d.ts +3 -1
  33. package/dist/commands/workspace-flow.d.ts.map +1 -1
  34. package/dist/commands/workspace-flow.js +4 -3
  35. package/dist/commands/workspace-flow.js.map +1 -1
  36. package/dist/lib/agent-shells.d.ts +17 -0
  37. package/dist/lib/agent-shells.d.ts.map +1 -0
  38. package/dist/lib/agent-shells.js +294 -0
  39. package/dist/lib/agent-shells.js.map +1 -0
  40. package/dist/lib/benchmark-execution.d.ts +5 -1
  41. package/dist/lib/benchmark-execution.d.ts.map +1 -1
  42. package/dist/lib/benchmark-execution.js +34 -12
  43. package/dist/lib/benchmark-execution.js.map +1 -1
  44. package/dist/lib/benchmark-paths.d.ts +2 -0
  45. package/dist/lib/benchmark-paths.d.ts.map +1 -1
  46. package/dist/lib/benchmark-paths.js +6 -0
  47. package/dist/lib/benchmark-paths.js.map +1 -1
  48. package/dist/lib/benchmark-sandbox.d.ts +2 -0
  49. package/dist/lib/benchmark-sandbox.d.ts.map +1 -1
  50. package/dist/lib/benchmark-sandbox.js +68 -37
  51. package/dist/lib/benchmark-sandbox.js.map +1 -1
  52. package/dist/lib/benchmark-targets.js +1 -1
  53. package/dist/lib/benchmark-targets.js.map +1 -1
  54. package/dist/lib/interf-bootstrap.d.ts +2 -13
  55. package/dist/lib/interf-bootstrap.d.ts.map +1 -1
  56. package/dist/lib/interf-bootstrap.js +7 -164
  57. package/dist/lib/interf-bootstrap.js.map +1 -1
  58. package/dist/lib/interf-detect.d.ts +1 -0
  59. package/dist/lib/interf-detect.d.ts.map +1 -1
  60. package/dist/lib/interf-detect.js +5 -18
  61. package/dist/lib/interf-detect.js.map +1 -1
  62. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  63. package/dist/lib/interf-scaffold.js +7 -71
  64. package/dist/lib/interf-scaffold.js.map +1 -1
  65. package/dist/lib/interf-workflow-package.d.ts.map +1 -1
  66. package/dist/lib/interf-workflow-package.js +20 -25
  67. package/dist/lib/interf-workflow-package.js.map +1 -1
  68. package/dist/lib/interf.d.ts +3 -2
  69. package/dist/lib/interf.d.ts.map +1 -1
  70. package/dist/lib/interf.js +3 -2
  71. package/dist/lib/interf.js.map +1 -1
  72. package/dist/lib/local-workflows.d.ts +6 -1
  73. package/dist/lib/local-workflows.d.ts.map +1 -1
  74. package/dist/lib/local-workflows.js +143 -2
  75. package/dist/lib/local-workflows.js.map +1 -1
  76. package/dist/lib/runtime-contracts.d.ts.map +1 -1
  77. package/dist/lib/runtime-contracts.js +10 -4
  78. package/dist/lib/runtime-contracts.js.map +1 -1
  79. package/dist/lib/runtime-prompt.d.ts.map +1 -1
  80. package/dist/lib/runtime-prompt.js +1 -0
  81. package/dist/lib/runtime-prompt.js.map +1 -1
  82. package/dist/lib/runtime-runs.d.ts.map +1 -1
  83. package/dist/lib/runtime-runs.js +6 -2
  84. package/dist/lib/runtime-runs.js.map +1 -1
  85. package/dist/lib/runtime-types.d.ts +1 -0
  86. package/dist/lib/runtime-types.d.ts.map +1 -1
  87. package/dist/lib/schema.d.ts +88 -13
  88. package/dist/lib/schema.d.ts.map +1 -1
  89. package/dist/lib/schema.js +66 -21
  90. package/dist/lib/schema.js.map +1 -1
  91. package/dist/lib/source-config.d.ts +2 -0
  92. package/dist/lib/source-config.d.ts.map +1 -1
  93. package/dist/lib/source-config.js +19 -1
  94. package/dist/lib/source-config.js.map +1 -1
  95. package/dist/lib/state-artifacts.d.ts +2 -2
  96. package/dist/lib/state-artifacts.d.ts.map +1 -1
  97. package/dist/lib/state-artifacts.js +3 -3
  98. package/dist/lib/state-artifacts.js.map +1 -1
  99. package/dist/lib/state-io.d.ts +2 -2
  100. package/dist/lib/state-io.d.ts.map +1 -1
  101. package/dist/lib/state-io.js +5 -5
  102. package/dist/lib/state-io.js.map +1 -1
  103. package/dist/lib/state-paths.d.ts +1 -1
  104. package/dist/lib/state-paths.d.ts.map +1 -1
  105. package/dist/lib/state-paths.js +3 -3
  106. package/dist/lib/state-paths.js.map +1 -1
  107. package/dist/lib/state-view.d.ts +2 -2
  108. package/dist/lib/state-view.d.ts.map +1 -1
  109. package/dist/lib/state-view.js +6 -7
  110. package/dist/lib/state-view.js.map +1 -1
  111. package/dist/lib/state.d.ts +4 -4
  112. package/dist/lib/state.d.ts.map +1 -1
  113. package/dist/lib/state.js +3 -3
  114. package/dist/lib/state.js.map +1 -1
  115. package/dist/lib/workflow-definitions.d.ts +4 -1
  116. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  117. package/dist/lib/workflow-definitions.js +38 -3
  118. package/dist/lib/workflow-definitions.js.map +1 -1
  119. package/dist/lib/workflow-stage-runner.d.ts +1 -0
  120. package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
  121. package/dist/lib/workflow-stage-runner.js +2 -0
  122. package/dist/lib/workflow-stage-runner.js.map +1 -1
  123. package/dist/lib/workflows.d.ts +1 -1
  124. package/dist/lib/workflows.d.ts.map +1 -1
  125. package/dist/lib/workspace-compile.d.ts +4 -0
  126. package/dist/lib/workspace-compile.d.ts.map +1 -1
  127. package/dist/lib/workspace-compile.js +108 -66
  128. package/dist/lib/workspace-compile.js.map +1 -1
  129. package/dist/lib/workspace-docs.d.ts +3 -0
  130. package/dist/lib/workspace-docs.d.ts.map +1 -0
  131. package/dist/lib/workspace-docs.js +82 -0
  132. package/dist/lib/workspace-docs.js.map +1 -0
  133. package/dist/lib/workspace-raw.d.ts +30 -0
  134. package/dist/lib/workspace-raw.d.ts.map +1 -0
  135. package/dist/lib/workspace-raw.js +102 -0
  136. package/dist/lib/workspace-raw.js.map +1 -0
  137. package/dist/lib/workspace-reset.d.ts +2 -0
  138. package/dist/lib/workspace-reset.d.ts.map +1 -0
  139. package/dist/lib/workspace-reset.js +21 -0
  140. package/dist/lib/workspace-reset.js.map +1 -0
  141. package/dist/lib/workspace-schema.d.ts +26 -0
  142. package/dist/lib/workspace-schema.d.ts.map +1 -0
  143. package/dist/lib/workspace-schema.js +132 -0
  144. package/dist/lib/workspace-schema.js.map +1 -0
  145. package/package.json +1 -1
  146. package/skills/workflow/create/SKILL.md +19 -0
  147. package/skills/workspace/shape/SKILL.md +1 -1
  148. package/templates/workspace/README.md +2 -1
@@ -0,0 +1,2 @@
1
+ export declare function resetWorkspaceGeneratedState(workspacePath: string, scope?: "compile" | "all"): void;
2
+ //# sourceMappingURL=workspace-reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-reset.d.ts","sourceRoot":"","sources":["../../src/lib/workspace-reset.ts"],"names":[],"mappings":"AAcA,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,SAAS,GAAG,KAAiB,GACnC,IAAI,CAgBN"}
@@ -0,0 +1,21 @@
1
+ import { existsSync, rmSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { initWorkspaceState, refreshWorkspaceArtifacts, saveState, } from "./state.js";
4
+ function removeIfExists(path) {
5
+ if (existsSync(path)) {
6
+ rmSync(path, { recursive: true, force: true });
7
+ }
8
+ }
9
+ export function resetWorkspaceGeneratedState(workspacePath, scope = "compile") {
10
+ removeIfExists(join(workspacePath, "summaries"));
11
+ removeIfExists(join(workspacePath, "knowledge"));
12
+ removeIfExists(join(workspacePath, ".interf"));
13
+ removeIfExists(join(workspacePath, ".obsidian"));
14
+ saveState(workspacePath, initWorkspaceState());
15
+ writeFileSync(join(workspacePath, ".interf", "inventory.json"), JSON.stringify({ total: 0, files: [] }, null, 2) + "\n");
16
+ refreshWorkspaceArtifacts(workspacePath, { ensureViewSpec: true });
17
+ if (scope === "all") {
18
+ removeIfExists(join(workspacePath, "workflow"));
19
+ }
20
+ }
21
+ //# sourceMappingURL=workspace-reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-reset.js","sourceRoot":"","sources":["../../src/lib/workspace-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,aAAqB,EACrB,QAA2B,SAAS;IAEpC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/C,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,SAAS,CAAC,aAAa,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC/C,aAAa,CACX,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAChD,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACxD,CAAC;IACF,yBAAyB,CAAC,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnE,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type RuntimeContractType, type WorkflowWorkspaceSchema, type WorkflowWorkspaceZone, type WorkflowZoneId } from "./schema.js";
2
+ export interface WorkflowSchemaStageLike {
3
+ id: string;
4
+ contractType?: RuntimeContractType;
5
+ contract_type?: RuntimeContractType;
6
+ }
7
+ export declare const BUILTIN_WORKSPACE_ZONE_IDS: {
8
+ readonly RAW: "raw";
9
+ readonly SUMMARIES: "summaries";
10
+ readonly KNOWLEDGE_ENTITIES: "knowledge-entities";
11
+ readonly KNOWLEDGE_CLAIMS: "knowledge-claims";
12
+ readonly KNOWLEDGE_INDEXES: "knowledge-indexes";
13
+ readonly HOME: "home";
14
+ readonly RUNTIME: "runtime";
15
+ };
16
+ export declare const WORKSPACE_SCHEMA_FILE = "workspace.schema.json";
17
+ export declare function workspaceSchemaFilePath(rootPath: string): string;
18
+ export declare function workspaceSchemaRelativePath(): string;
19
+ export declare function listWorkspaceSchemaZones(schema: WorkflowWorkspaceSchema): WorkflowWorkspaceZone[];
20
+ export declare function findWorkspaceSchemaZone(schema: WorkflowWorkspaceSchema, zoneId: WorkflowZoneId): WorkflowWorkspaceZone | null;
21
+ export declare function workspaceZoneAbsolutePath(workspacePath: string, zone: Pick<WorkflowWorkspaceZone, "path">): string;
22
+ export declare function ensureWorkspaceZoneTargets(workspacePath: string, schema: WorkflowWorkspaceSchema): void;
23
+ export declare function buildWorkspaceSchema(stages: WorkflowSchemaStageLike[], label?: string): WorkflowWorkspaceSchema;
24
+ export declare function writeWorkspaceSchemaFile(rootPath: string, stages: WorkflowSchemaStageLike[], label?: string): WorkflowWorkspaceSchema;
25
+ export declare function readWorkspaceSchemaFile(rootPath: string): WorkflowWorkspaceSchema | null;
26
+ //# sourceMappingURL=workspace-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-schema.d.ts","sourceRoot":"","sources":["../../src/lib/workspace-schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,eAAO,MAAM,0BAA0B;;;;;;;;CAQ7B,CAAC;AAEX,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,GAC9B,qBAAqB,EAAE,CAEzB;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,cAAc,GACrB,qBAAqB,GAAG,IAAI,CAE9B;AAED,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GACxC,MAAM,CAER;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,uBAAuB,GAC9B,IAAI,CASN;AAuBD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAAE,EACjC,KAAK,SAA8B,GAClC,uBAAuB,CAuEzB;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,uBAAuB,EAAE,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,uBAAuB,CAIzB;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAIxF"}
@@ -0,0 +1,132 @@
1
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { readJsonFileWithSchema } from "./parse.js";
4
+ import { WorkflowWorkspaceSchemaSchema, } from "./schema.js";
5
+ export const BUILTIN_WORKSPACE_ZONE_IDS = {
6
+ RAW: "raw",
7
+ SUMMARIES: "summaries",
8
+ KNOWLEDGE_ENTITIES: "knowledge-entities",
9
+ KNOWLEDGE_CLAIMS: "knowledge-claims",
10
+ KNOWLEDGE_INDEXES: "knowledge-indexes",
11
+ HOME: "home",
12
+ RUNTIME: "runtime",
13
+ };
14
+ export const WORKSPACE_SCHEMA_FILE = "workspace.schema.json";
15
+ export function workspaceSchemaFilePath(rootPath) {
16
+ return join(rootPath, WORKSPACE_SCHEMA_FILE);
17
+ }
18
+ export function workspaceSchemaRelativePath() {
19
+ return `workflow/${WORKSPACE_SCHEMA_FILE}`;
20
+ }
21
+ export function listWorkspaceSchemaZones(schema) {
22
+ return [...schema.zones];
23
+ }
24
+ export function findWorkspaceSchemaZone(schema, zoneId) {
25
+ return schema.zones.find((zone) => zone.id === zoneId) ?? null;
26
+ }
27
+ export function workspaceZoneAbsolutePath(workspacePath, zone) {
28
+ return join(workspacePath, zone.path);
29
+ }
30
+ export function ensureWorkspaceZoneTargets(workspacePath, schema) {
31
+ for (const zone of schema.zones) {
32
+ if (zone.kind === "directory" || zone.kind === "runtime") {
33
+ mkdirSync(workspaceZoneAbsolutePath(workspacePath, zone), { recursive: true });
34
+ continue;
35
+ }
36
+ mkdirSync(dirname(workspaceZoneAbsolutePath(workspacePath, zone)), { recursive: true });
37
+ }
38
+ }
39
+ function stageContractType(stage) {
40
+ return (stage.contractType ?? stage.contract_type);
41
+ }
42
+ function stageIdsFor(stages, contractType) {
43
+ return stages
44
+ .filter((stage) => stageContractType(stage) === contractType)
45
+ .map((stage) => stage.id);
46
+ }
47
+ function pushZone(zones, zone) {
48
+ if (zones.some((existing) => existing.path === zone.path))
49
+ return;
50
+ zones.push(zone);
51
+ }
52
+ export function buildWorkspaceSchema(stages, label = "Compiled workspace schema") {
53
+ const summarizeStages = stageIdsFor(stages, "workspace-file-evidence");
54
+ const structureStages = stageIdsFor(stages, "workspace-knowledge-structure");
55
+ const shapeStages = stageIdsFor(stages, "workspace-query-shape");
56
+ const zones = [];
57
+ pushZone(zones, {
58
+ id: BUILTIN_WORKSPACE_ZONE_IDS.RAW,
59
+ path: "raw",
60
+ kind: "directory",
61
+ required: true,
62
+ owned_by: [],
63
+ description: "Workspace-local raw snapshot copied from the dataset for direct evidence and verification.",
64
+ });
65
+ pushZone(zones, {
66
+ id: BUILTIN_WORKSPACE_ZONE_IDS.SUMMARIES,
67
+ path: "summaries",
68
+ kind: "directory",
69
+ required: true,
70
+ owned_by: summarizeStages,
71
+ description: "Per-file evidence notes produced by file-evidence stages.",
72
+ });
73
+ pushZone(zones, {
74
+ id: BUILTIN_WORKSPACE_ZONE_IDS.KNOWLEDGE_ENTITIES,
75
+ path: "knowledge/entities",
76
+ kind: "directory",
77
+ required: true,
78
+ owned_by: structureStages,
79
+ description: "Canonical entity notes produced by knowledge-structure stages.",
80
+ });
81
+ pushZone(zones, {
82
+ id: BUILTIN_WORKSPACE_ZONE_IDS.KNOWLEDGE_CLAIMS,
83
+ path: "knowledge/claims",
84
+ kind: "directory",
85
+ required: true,
86
+ owned_by: structureStages,
87
+ description: "Claim notes produced by knowledge-structure stages.",
88
+ });
89
+ pushZone(zones, {
90
+ id: BUILTIN_WORKSPACE_ZONE_IDS.KNOWLEDGE_INDEXES,
91
+ path: "knowledge/indexes",
92
+ kind: "directory",
93
+ required: true,
94
+ owned_by: Array.from(new Set([...structureStages, ...shapeStages])),
95
+ description: "Retrieval indexes and navigation notes produced by structure and shape stages.",
96
+ });
97
+ pushZone(zones, {
98
+ id: BUILTIN_WORKSPACE_ZONE_IDS.HOME,
99
+ path: "home.md",
100
+ kind: "file",
101
+ required: true,
102
+ owned_by: shapeStages,
103
+ description: "Primary entrypoint note for agents using the compiled workspace.",
104
+ });
105
+ pushZone(zones, {
106
+ id: BUILTIN_WORKSPACE_ZONE_IDS.RUNTIME,
107
+ path: ".interf",
108
+ kind: "runtime",
109
+ required: true,
110
+ owned_by: [],
111
+ description: "CLI-owned runtime state, health, stage contracts, and proof artifacts.",
112
+ });
113
+ return {
114
+ kind: "workspace-schema",
115
+ version: 1,
116
+ target_type: "workspace",
117
+ label,
118
+ zones,
119
+ };
120
+ }
121
+ export function writeWorkspaceSchemaFile(rootPath, stages, label) {
122
+ const schema = buildWorkspaceSchema(stages, label);
123
+ writeFileSync(workspaceSchemaFilePath(rootPath), `${JSON.stringify(schema, null, 2)}\n`);
124
+ return schema;
125
+ }
126
+ export function readWorkspaceSchemaFile(rootPath) {
127
+ const path = workspaceSchemaFilePath(rootPath);
128
+ if (!existsSync(path))
129
+ return null;
130
+ return readJsonFileWithSchema(path, "workspace schema", WorkflowWorkspaceSchemaSchema);
131
+ }
132
+ //# sourceMappingURL=workspace-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-schema.js","sourceRoot":"","sources":["../../src/lib/workspace-schema.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.1",
3
+ "version": "0.3.3",
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": {
@@ -30,6 +30,7 @@ A workflow is a package, not just a JSON file.
30
30
  It has two layers:
31
31
 
32
32
  - `workflow.json` = machine-readable stage graph and contract mapping
33
+ - `workspace.schema.json` = deterministic compiled-workspace shape
33
34
  - local docs = human/agent method layer
34
35
 
35
36
  Typical shape:
@@ -37,6 +38,7 @@ Typical shape:
37
38
  ```text
38
39
  interf/workflows/<workflow-id>/
39
40
  workflow.json
41
+ workspace.schema.json
40
42
  README.md
41
43
  create/
42
44
  SKILL.md
@@ -80,6 +82,22 @@ Use the shipped workspace contract families only:
80
82
 
81
83
  Do not invent new engine contract kinds in a local workflow package.
82
84
 
85
+ ## Workspace schema
86
+
87
+ Every workflow package should also define `workspace.schema.json`.
88
+
89
+ It should describe the deterministic output zones Interf expects, including:
90
+
91
+ - `raw/`
92
+ - `summaries/`
93
+ - `knowledge/entities/`
94
+ - `knowledge/claims/`
95
+ - `knowledge/indexes/`
96
+ - `home.md`
97
+ - `.interf/`
98
+
99
+ Use `owned_by` to show which stage ids are responsible for each zone. This keeps the reusable workflow package aligned with the compiled workspace ABI.
100
+
83
101
  ## Declarative acceptance
84
102
 
85
103
  Use stage `acceptance` for deterministic stage checks that the CLI can compare against runtime state.
@@ -115,6 +133,7 @@ Avoid hardcoding fixed file counts unless the workflow really requires them.
115
133
  A good workflow package gives Interf:
116
134
 
117
135
  - a compile pipeline
136
+ - a deterministic workspace schema
118
137
  - stage-to-contract mapping
119
138
  - readable local docs for executors
120
139
  - optional declarative acceptance checks
@@ -1,6 +1,6 @@
1
1
  # Workspace Shape
2
2
 
3
- Shape the final workspace surface around the workspace focus and saved questions.
3
+ Shape the final workspace surface around the workspace focus and saved truth checks.
4
4
 
5
5
  Requirements:
6
6
  - read the shaping input named in the stage contract
@@ -17,7 +17,8 @@ Interf scaffolds:
17
17
  - `CLAUDE.md`
18
18
  - `home.md`
19
19
  - `workflow/`
20
+ - `workflow/workspace.schema.json`
20
21
  - `.interf/`
21
22
  - `.interfignore`
22
23
 
23
- The source folder remains the human control plane. The compiled workspace is the agent-facing surface.
24
+ The source folder remains the human control plane for the dataset. The compiled workspace is the agent-facing surface.