@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.
- package/README.md +96 -57
- package/dist/commands/compile.d.ts +2 -0
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +42 -10
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +5 -5
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/default.js +1 -1
- package/dist/commands/default.js.map +1 -1
- package/dist/commands/init.js +18 -22
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/source-config-wizard.d.ts +2 -1
- package/dist/commands/source-config-wizard.d.ts.map +1 -1
- package/dist/commands/source-config-wizard.js +29 -27
- package/dist/commands/source-config-wizard.js.map +1 -1
- package/dist/commands/test-flow.d.ts +4 -0
- package/dist/commands/test-flow.d.ts.map +1 -1
- package/dist/commands/test-flow.js +24 -13
- package/dist/commands/test-flow.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +16 -5
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/workspace-flow.d.ts +2 -0
- package/dist/commands/workspace-flow.d.ts.map +1 -1
- package/dist/commands/workspace-flow.js +3 -2
- package/dist/commands/workspace-flow.js.map +1 -1
- package/dist/lib/agent-shells.d.ts +17 -0
- package/dist/lib/agent-shells.d.ts.map +1 -0
- package/dist/lib/agent-shells.js +294 -0
- package/dist/lib/agent-shells.js.map +1 -0
- package/dist/lib/benchmark-execution.d.ts +5 -1
- package/dist/lib/benchmark-execution.d.ts.map +1 -1
- package/dist/lib/benchmark-execution.js +34 -12
- package/dist/lib/benchmark-execution.js.map +1 -1
- package/dist/lib/benchmark-paths.d.ts +2 -0
- package/dist/lib/benchmark-paths.d.ts.map +1 -1
- package/dist/lib/benchmark-paths.js +6 -0
- package/dist/lib/benchmark-paths.js.map +1 -1
- package/dist/lib/benchmark-sandbox.d.ts +2 -0
- package/dist/lib/benchmark-sandbox.d.ts.map +1 -1
- package/dist/lib/benchmark-sandbox.js +68 -37
- package/dist/lib/benchmark-sandbox.js.map +1 -1
- package/dist/lib/benchmark-targets.js +1 -1
- package/dist/lib/benchmark-targets.js.map +1 -1
- package/dist/lib/interf-bootstrap.d.ts +2 -13
- package/dist/lib/interf-bootstrap.d.ts.map +1 -1
- package/dist/lib/interf-bootstrap.js +7 -164
- package/dist/lib/interf-bootstrap.js.map +1 -1
- package/dist/lib/interf-detect.d.ts +1 -0
- package/dist/lib/interf-detect.d.ts.map +1 -1
- package/dist/lib/interf-detect.js +5 -18
- package/dist/lib/interf-detect.js.map +1 -1
- package/dist/lib/interf-scaffold.d.ts.map +1 -1
- package/dist/lib/interf-scaffold.js +7 -71
- package/dist/lib/interf-scaffold.js.map +1 -1
- package/dist/lib/interf-workflow-package.d.ts.map +1 -1
- package/dist/lib/interf-workflow-package.js +20 -25
- package/dist/lib/interf-workflow-package.js.map +1 -1
- package/dist/lib/interf.d.ts +3 -2
- package/dist/lib/interf.d.ts.map +1 -1
- package/dist/lib/interf.js +3 -2
- package/dist/lib/interf.js.map +1 -1
- package/dist/lib/local-workflows.d.ts +6 -1
- package/dist/lib/local-workflows.d.ts.map +1 -1
- package/dist/lib/local-workflows.js +143 -2
- package/dist/lib/local-workflows.js.map +1 -1
- package/dist/lib/runtime-contracts.d.ts.map +1 -1
- package/dist/lib/runtime-contracts.js +10 -4
- package/dist/lib/runtime-contracts.js.map +1 -1
- package/dist/lib/runtime-prompt.d.ts.map +1 -1
- package/dist/lib/runtime-prompt.js +1 -0
- package/dist/lib/runtime-prompt.js.map +1 -1
- package/dist/lib/runtime-runs.d.ts.map +1 -1
- package/dist/lib/runtime-runs.js +6 -2
- package/dist/lib/runtime-runs.js.map +1 -1
- package/dist/lib/runtime-types.d.ts +1 -0
- package/dist/lib/runtime-types.d.ts.map +1 -1
- package/dist/lib/schema.d.ts +88 -23
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/schema.js +66 -37
- package/dist/lib/schema.js.map +1 -1
- package/dist/lib/source-config.d.ts +3 -3
- package/dist/lib/source-config.d.ts.map +1 -1
- package/dist/lib/source-config.js +8 -6
- package/dist/lib/source-config.js.map +1 -1
- package/dist/lib/state-artifacts.d.ts +2 -2
- package/dist/lib/state-artifacts.d.ts.map +1 -1
- package/dist/lib/state-artifacts.js +3 -3
- package/dist/lib/state-artifacts.js.map +1 -1
- package/dist/lib/state-io.d.ts +2 -2
- package/dist/lib/state-io.d.ts.map +1 -1
- package/dist/lib/state-io.js +5 -5
- package/dist/lib/state-io.js.map +1 -1
- package/dist/lib/state-paths.d.ts +1 -1
- package/dist/lib/state-paths.d.ts.map +1 -1
- package/dist/lib/state-paths.js +3 -3
- package/dist/lib/state-paths.js.map +1 -1
- package/dist/lib/state-view.d.ts +2 -2
- package/dist/lib/state-view.d.ts.map +1 -1
- package/dist/lib/state-view.js +6 -7
- package/dist/lib/state-view.js.map +1 -1
- package/dist/lib/state.d.ts +4 -4
- package/dist/lib/state.d.ts.map +1 -1
- package/dist/lib/state.js +3 -3
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/workflow-definitions.d.ts +4 -1
- package/dist/lib/workflow-definitions.d.ts.map +1 -1
- package/dist/lib/workflow-definitions.js +38 -3
- package/dist/lib/workflow-definitions.js.map +1 -1
- package/dist/lib/workflow-stage-runner.d.ts +1 -0
- package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
- package/dist/lib/workflow-stage-runner.js +2 -0
- package/dist/lib/workflow-stage-runner.js.map +1 -1
- package/dist/lib/workflows.d.ts +1 -1
- package/dist/lib/workflows.d.ts.map +1 -1
- package/dist/lib/workspace-compile.d.ts +4 -0
- package/dist/lib/workspace-compile.d.ts.map +1 -1
- package/dist/lib/workspace-compile.js +108 -66
- package/dist/lib/workspace-compile.js.map +1 -1
- package/dist/lib/workspace-docs.d.ts +3 -0
- package/dist/lib/workspace-docs.d.ts.map +1 -0
- package/dist/lib/workspace-docs.js +82 -0
- package/dist/lib/workspace-docs.js.map +1 -0
- package/dist/lib/workspace-raw.d.ts +30 -0
- package/dist/lib/workspace-raw.d.ts.map +1 -0
- package/dist/lib/workspace-raw.js +102 -0
- package/dist/lib/workspace-raw.js.map +1 -0
- package/dist/lib/workspace-schema.d.ts +26 -0
- package/dist/lib/workspace-schema.d.ts.map +1 -0
- package/dist/lib/workspace-schema.js +132 -0
- package/dist/lib/workspace-schema.js.map +1 -0
- package/package.json +1 -1
- package/skills/workflow/create/SKILL.md +19 -0
- package/skills/workspace/shape/SKILL.md +1 -1
- package/templates/workspace/README.md +2 -1
|
@@ -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
|
@@ -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
|
|
@@ -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.
|