@interf/compiler 0.3.3 → 0.4.0
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 +137 -243
- package/builtin-workflows/interf/README.md +19 -0
- package/builtin-workflows/interf/compile/stages/shape/SKILL.md +28 -0
- package/builtin-workflows/interf/compile/stages/structure/SKILL.md +18 -0
- package/builtin-workflows/interf/compile/stages/summarize/SKILL.md +18 -0
- package/builtin-workflows/interf/improve/SKILL.md +18 -0
- package/builtin-workflows/interf/use/query/SKILL.md +28 -0
- package/builtin-workflows/interf/workflow.json +120 -0
- package/builtin-workflows/interf/workspace.schema.json +75 -0
- package/dist/bin.d.ts +0 -1
- package/dist/bin.js +0 -1
- package/dist/commands/compile-controller.d.ts +14 -0
- package/dist/commands/compile-controller.js +409 -0
- package/dist/commands/compile.d.ts +8 -9
- package/dist/commands/compile.js +151 -153
- package/dist/commands/create-workflow-wizard.d.ts +4 -2
- package/dist/commands/create-workflow-wizard.js +33 -31
- package/dist/commands/create.d.ts +0 -1
- package/dist/commands/create.js +16 -12
- package/dist/commands/default.d.ts +0 -1
- package/dist/commands/default.js +1 -2
- package/dist/commands/doctor.d.ts +0 -1
- package/dist/commands/doctor.js +7 -22
- package/dist/commands/executor-flow.d.ts +0 -1
- package/dist/commands/executor-flow.js +0 -1
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +72 -15
- package/dist/commands/list.d.ts +0 -1
- package/dist/commands/list.js +0 -1
- package/dist/commands/reset.d.ts +0 -1
- package/dist/commands/reset.js +0 -1
- package/dist/commands/source-config-wizard.d.ts +28 -7
- package/dist/commands/source-config-wizard.js +159 -63
- package/dist/commands/status.d.ts +0 -1
- package/dist/commands/status.js +0 -1
- package/dist/commands/test-flow.d.ts +20 -10
- package/dist/commands/test-flow.js +89 -23
- package/dist/commands/test.d.ts +0 -1
- package/dist/commands/test.js +36 -72
- package/dist/commands/verify.d.ts +0 -1
- package/dist/commands/verify.js +0 -1
- package/dist/commands/workspace-flow.d.ts +3 -3
- package/dist/commands/workspace-flow.js +30 -12
- package/dist/index.d.ts +5 -6
- package/dist/index.js +3 -4
- package/dist/lib/agent-args.d.ts +0 -1
- package/dist/lib/agent-args.js +0 -1
- package/dist/lib/agent-constants.d.ts +0 -1
- package/dist/lib/agent-constants.js +0 -1
- package/dist/lib/agent-detection.d.ts +0 -1
- package/dist/lib/agent-detection.js +0 -1
- package/dist/lib/agent-execution.d.ts +0 -1
- package/dist/lib/agent-execution.js +47 -12
- package/dist/lib/agent-logs.d.ts +0 -1
- package/dist/lib/agent-logs.js +0 -1
- package/dist/lib/agent-preflight.d.ts +0 -1
- package/dist/lib/agent-preflight.js +1 -2
- package/dist/lib/agent-render.d.ts +0 -1
- package/dist/lib/agent-render.js +0 -1
- package/dist/lib/agent-shells.d.ts +30 -3
- package/dist/lib/agent-shells.js +527 -63
- package/dist/lib/agent-status.d.ts +0 -1
- package/dist/lib/agent-status.js +0 -1
- package/dist/lib/agent-types.d.ts +0 -1
- package/dist/lib/agent-types.js +0 -1
- package/dist/lib/agents.d.ts +0 -9
- package/dist/lib/agents.js +0 -9
- package/dist/lib/chart-guidance.d.ts +1 -0
- package/dist/lib/chart-guidance.js +8 -0
- package/dist/lib/config.d.ts +0 -3
- package/dist/lib/config.js +0 -5
- package/dist/lib/discovery.d.ts +0 -1
- package/dist/lib/discovery.js +0 -1
- package/dist/lib/execution-profile.d.ts +0 -1
- package/dist/lib/execution-profile.js +0 -1
- package/dist/lib/executors.d.ts +0 -1
- package/dist/lib/executors.js +0 -1
- package/dist/lib/filesystem.d.ts +0 -1
- package/dist/lib/filesystem.js +0 -1
- package/dist/lib/interf-bootstrap.d.ts +0 -1
- package/dist/lib/interf-bootstrap.js +6 -2
- package/dist/lib/interf-detect.d.ts +2 -2
- package/dist/lib/interf-detect.js +25 -8
- package/dist/lib/interf-scaffold.d.ts +0 -1
- package/dist/lib/interf-scaffold.js +54 -21
- package/dist/lib/interf-workflow-package.d.ts +18 -1
- package/dist/lib/interf-workflow-package.js +164 -23
- package/dist/lib/interf.d.ts +1 -2
- package/dist/lib/interf.js +1 -2
- package/dist/lib/local-workflows.d.ts +10 -5
- package/dist/lib/local-workflows.js +208 -97
- package/dist/lib/logger.d.ts +0 -1
- package/dist/lib/logger.js +0 -1
- package/dist/lib/obsidian.d.ts +0 -1
- package/dist/lib/obsidian.js +0 -1
- package/dist/lib/parse.d.ts +0 -1
- package/dist/lib/parse.js +0 -1
- package/dist/lib/registry.d.ts +0 -1
- package/dist/lib/registry.js +0 -1
- package/dist/lib/runtime-acceptance.d.ts +0 -1
- package/dist/lib/runtime-acceptance.js +1 -2
- package/dist/lib/runtime-contracts.d.ts +0 -1
- package/dist/lib/runtime-contracts.js +14 -8
- package/dist/lib/runtime-paths.d.ts +0 -1
- package/dist/lib/runtime-paths.js +5 -10
- package/dist/lib/runtime-prompt.d.ts +0 -1
- package/dist/lib/runtime-prompt.js +8 -23
- package/dist/lib/runtime-reconcile.d.ts +0 -1
- package/dist/lib/runtime-reconcile.js +7 -3
- package/dist/lib/runtime-runs.d.ts +0 -1
- package/dist/lib/runtime-runs.js +4 -5
- package/dist/lib/runtime-types.d.ts +0 -1
- package/dist/lib/runtime-types.js +0 -1
- package/dist/lib/runtime.d.ts +0 -1
- package/dist/lib/runtime.js +0 -1
- package/dist/lib/schema.d.ts +356 -51
- package/dist/lib/schema.js +189 -54
- package/dist/lib/source-config.d.ts +17 -8
- package/dist/lib/source-config.js +125 -11
- package/dist/lib/state-artifacts.d.ts +0 -1
- package/dist/lib/state-artifacts.js +0 -1
- package/dist/lib/state-health.d.ts +0 -1
- package/dist/lib/state-health.js +2 -3
- package/dist/lib/state-io.d.ts +1 -1
- package/dist/lib/state-io.js +9 -10
- package/dist/lib/state-paths.d.ts +0 -1
- package/dist/lib/state-paths.js +5 -11
- package/dist/lib/state-view.d.ts +0 -1
- package/dist/lib/state-view.js +7 -8
- package/dist/lib/state.d.ts +0 -1
- package/dist/lib/state.js +0 -1
- package/dist/lib/summarize-plan.d.ts +0 -1
- package/dist/lib/summarize-plan.js +3 -3
- package/dist/lib/test-execution.d.ts +14 -0
- package/dist/lib/{benchmark-execution.js → test-execution.js} +122 -120
- package/dist/lib/test-matrices.d.ts +90 -0
- package/dist/lib/test-matrices.js +96 -0
- package/dist/lib/test-paths.d.ts +12 -0
- package/dist/lib/test-paths.js +44 -0
- package/dist/lib/test-profile-presets.d.ts +57 -0
- package/dist/lib/test-profile-presets.js +50 -0
- package/dist/lib/test-sandbox.d.ts +11 -0
- package/dist/lib/{benchmark-sandbox.js → test-sandbox.js} +18 -13
- package/dist/lib/test-specs.d.ts +7 -0
- package/dist/lib/test-specs.js +114 -0
- package/dist/lib/test-targets.d.ts +5 -0
- package/dist/lib/test-targets.js +38 -0
- package/dist/lib/test-types.d.ts +17 -0
- package/dist/lib/test-types.js +1 -0
- package/dist/lib/test.d.ts +4 -0
- package/dist/lib/test.js +3 -0
- package/dist/lib/user-config.d.ts +0 -1
- package/dist/lib/user-config.js +0 -1
- package/dist/lib/util.d.ts +0 -2
- package/dist/lib/util.js +0 -2
- package/dist/lib/validate-helpers.d.ts +0 -1
- package/dist/lib/validate-helpers.js +0 -1
- package/dist/lib/validate-workspace.d.ts +0 -1
- package/dist/lib/validate-workspace.js +34 -25
- package/dist/lib/validate.d.ts +0 -1
- package/dist/lib/validate.js +55 -9
- package/dist/lib/workflow-abi.d.ts +138 -0
- package/dist/lib/workflow-abi.js +181 -0
- package/dist/lib/workflow-definitions.d.ts +26 -5
- package/dist/lib/workflow-definitions.js +105 -168
- package/dist/lib/workflow-helpers.d.ts +1 -2
- package/dist/lib/workflow-helpers.js +32 -21
- package/dist/lib/workflow-improvement.d.ts +22 -0
- package/dist/lib/workflow-improvement.js +396 -0
- package/dist/lib/workflow-review-paths.d.ts +10 -0
- package/dist/lib/workflow-review-paths.js +27 -0
- package/dist/lib/workflow-stage-runner.d.ts +1 -1
- package/dist/lib/workflow-stage-runner.js +4 -1
- package/dist/lib/workflows.d.ts +1 -2
- package/dist/lib/workflows.js +1 -2
- package/dist/lib/workspace-compile.d.ts +0 -1
- package/dist/lib/workspace-compile.js +146 -109
- package/dist/lib/workspace-home.d.ts +5 -0
- package/dist/lib/workspace-home.js +32 -0
- package/dist/lib/workspace-layout.d.ts +2 -0
- package/dist/lib/workspace-layout.js +60 -0
- package/dist/lib/workspace-paths.d.ts +41 -0
- package/dist/lib/workspace-paths.js +107 -0
- package/dist/lib/workspace-raw.d.ts +20 -2
- package/dist/lib/workspace-raw.js +6 -8
- package/dist/lib/workspace-reset.d.ts +0 -1
- package/dist/lib/workspace-reset.js +27 -5
- package/dist/lib/workspace-schema.d.ts +1 -10
- package/dist/lib/workspace-schema.js +16 -74
- package/package.json +17 -16
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js.map +0 -1
- package/dist/commands/compile.d.ts.map +0 -1
- package/dist/commands/compile.js.map +0 -1
- package/dist/commands/create-workflow-wizard.d.ts.map +0 -1
- package/dist/commands/create-workflow-wizard.js.map +0 -1
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/default.d.ts.map +0 -1
- package/dist/commands/default.js.map +0 -1
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/executor-flow.d.ts.map +0 -1
- package/dist/commands/executor-flow.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/reset.d.ts.map +0 -1
- package/dist/commands/reset.js.map +0 -1
- package/dist/commands/source-config-wizard.d.ts.map +0 -1
- package/dist/commands/source-config-wizard.js.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/test-flow.d.ts.map +0 -1
- package/dist/commands/test-flow.js.map +0 -1
- package/dist/commands/test.d.ts.map +0 -1
- package/dist/commands/test.js.map +0 -1
- package/dist/commands/verify.d.ts.map +0 -1
- package/dist/commands/verify.js.map +0 -1
- package/dist/commands/workspace-flow.d.ts.map +0 -1
- package/dist/commands/workspace-flow.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/agent-args.d.ts.map +0 -1
- package/dist/lib/agent-args.js.map +0 -1
- package/dist/lib/agent-constants.d.ts.map +0 -1
- package/dist/lib/agent-constants.js.map +0 -1
- package/dist/lib/agent-detection.d.ts.map +0 -1
- package/dist/lib/agent-detection.js.map +0 -1
- package/dist/lib/agent-execution.d.ts.map +0 -1
- package/dist/lib/agent-execution.js.map +0 -1
- package/dist/lib/agent-logs.d.ts.map +0 -1
- package/dist/lib/agent-logs.js.map +0 -1
- package/dist/lib/agent-preflight.d.ts.map +0 -1
- package/dist/lib/agent-preflight.js.map +0 -1
- package/dist/lib/agent-render.d.ts.map +0 -1
- package/dist/lib/agent-render.js.map +0 -1
- package/dist/lib/agent-shells.d.ts.map +0 -1
- package/dist/lib/agent-shells.js.map +0 -1
- package/dist/lib/agent-skills.d.ts +0 -21
- package/dist/lib/agent-skills.d.ts.map +0 -1
- package/dist/lib/agent-skills.js +0 -215
- package/dist/lib/agent-skills.js.map +0 -1
- package/dist/lib/agent-status.d.ts.map +0 -1
- package/dist/lib/agent-status.js.map +0 -1
- package/dist/lib/agent-types.d.ts.map +0 -1
- package/dist/lib/agent-types.js.map +0 -1
- package/dist/lib/agents.d.ts.map +0 -1
- package/dist/lib/agents.js.map +0 -1
- package/dist/lib/benchmark-execution.d.ts +0 -13
- package/dist/lib/benchmark-execution.d.ts.map +0 -1
- package/dist/lib/benchmark-execution.js.map +0 -1
- package/dist/lib/benchmark-paths.d.ts +0 -13
- package/dist/lib/benchmark-paths.d.ts.map +0 -1
- package/dist/lib/benchmark-paths.js +0 -44
- package/dist/lib/benchmark-paths.js.map +0 -1
- package/dist/lib/benchmark-sandbox.d.ts +0 -12
- package/dist/lib/benchmark-sandbox.d.ts.map +0 -1
- package/dist/lib/benchmark-sandbox.js.map +0 -1
- package/dist/lib/benchmark-specs.d.ts +0 -8
- package/dist/lib/benchmark-specs.d.ts.map +0 -1
- package/dist/lib/benchmark-specs.js +0 -115
- package/dist/lib/benchmark-specs.js.map +0 -1
- package/dist/lib/benchmark-targets.d.ts +0 -5
- package/dist/lib/benchmark-targets.d.ts.map +0 -1
- package/dist/lib/benchmark-targets.js +0 -38
- package/dist/lib/benchmark-targets.js.map +0 -1
- package/dist/lib/benchmark-types.d.ts +0 -18
- package/dist/lib/benchmark-types.d.ts.map +0 -1
- package/dist/lib/benchmark-types.js +0 -2
- package/dist/lib/benchmark-types.js.map +0 -1
- package/dist/lib/benchmark.d.ts +0 -5
- package/dist/lib/benchmark.d.ts.map +0 -1
- package/dist/lib/benchmark.js +0 -4
- package/dist/lib/benchmark.js.map +0 -1
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/discovery.d.ts.map +0 -1
- package/dist/lib/discovery.js.map +0 -1
- package/dist/lib/eval-packs.d.ts +0 -158
- package/dist/lib/eval-packs.d.ts.map +0 -1
- package/dist/lib/eval-packs.js +0 -149
- package/dist/lib/eval-packs.js.map +0 -1
- package/dist/lib/execution-profile.d.ts.map +0 -1
- package/dist/lib/execution-profile.js.map +0 -1
- package/dist/lib/executors.d.ts.map +0 -1
- package/dist/lib/executors.js.map +0 -1
- package/dist/lib/filesystem.d.ts.map +0 -1
- package/dist/lib/filesystem.js.map +0 -1
- package/dist/lib/interf-bootstrap.d.ts.map +0 -1
- package/dist/lib/interf-bootstrap.js.map +0 -1
- package/dist/lib/interf-detect.d.ts.map +0 -1
- package/dist/lib/interf-detect.js.map +0 -1
- package/dist/lib/interf-scaffold.d.ts.map +0 -1
- package/dist/lib/interf-scaffold.js.map +0 -1
- package/dist/lib/interf-workflow-package.d.ts.map +0 -1
- package/dist/lib/interf-workflow-package.js.map +0 -1
- package/dist/lib/interf.d.ts.map +0 -1
- package/dist/lib/interf.js.map +0 -1
- package/dist/lib/local-workflows.d.ts.map +0 -1
- package/dist/lib/local-workflows.js.map +0 -1
- package/dist/lib/logger.d.ts.map +0 -1
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/obsidian.d.ts.map +0 -1
- package/dist/lib/obsidian.js.map +0 -1
- package/dist/lib/parse.d.ts.map +0 -1
- package/dist/lib/parse.js.map +0 -1
- package/dist/lib/registry.d.ts.map +0 -1
- package/dist/lib/registry.js.map +0 -1
- package/dist/lib/runtime-acceptance.d.ts.map +0 -1
- package/dist/lib/runtime-acceptance.js.map +0 -1
- package/dist/lib/runtime-contracts.d.ts.map +0 -1
- package/dist/lib/runtime-contracts.js.map +0 -1
- package/dist/lib/runtime-paths.d.ts.map +0 -1
- package/dist/lib/runtime-paths.js.map +0 -1
- package/dist/lib/runtime-prompt.d.ts.map +0 -1
- package/dist/lib/runtime-prompt.js.map +0 -1
- package/dist/lib/runtime-reconcile.d.ts.map +0 -1
- package/dist/lib/runtime-reconcile.js.map +0 -1
- package/dist/lib/runtime-runs.d.ts.map +0 -1
- package/dist/lib/runtime-runs.js.map +0 -1
- package/dist/lib/runtime-types.d.ts.map +0 -1
- package/dist/lib/runtime-types.js.map +0 -1
- package/dist/lib/runtime.d.ts.map +0 -1
- package/dist/lib/runtime.js.map +0 -1
- package/dist/lib/schema.d.ts.map +0 -1
- package/dist/lib/schema.js.map +0 -1
- package/dist/lib/source-config.d.ts.map +0 -1
- package/dist/lib/source-config.js.map +0 -1
- package/dist/lib/state-artifacts.d.ts.map +0 -1
- package/dist/lib/state-artifacts.js.map +0 -1
- package/dist/lib/state-health.d.ts.map +0 -1
- package/dist/lib/state-health.js.map +0 -1
- package/dist/lib/state-io.d.ts.map +0 -1
- package/dist/lib/state-io.js.map +0 -1
- package/dist/lib/state-paths.d.ts.map +0 -1
- package/dist/lib/state-paths.js.map +0 -1
- package/dist/lib/state-view.d.ts.map +0 -1
- package/dist/lib/state-view.js.map +0 -1
- package/dist/lib/state.d.ts.map +0 -1
- package/dist/lib/state.js.map +0 -1
- package/dist/lib/summarize-plan.d.ts.map +0 -1
- package/dist/lib/summarize-plan.js.map +0 -1
- package/dist/lib/user-config.d.ts.map +0 -1
- package/dist/lib/user-config.js.map +0 -1
- package/dist/lib/util.d.ts.map +0 -1
- package/dist/lib/util.js.map +0 -1
- package/dist/lib/validate-helpers.d.ts.map +0 -1
- package/dist/lib/validate-helpers.js.map +0 -1
- package/dist/lib/validate-workspace.d.ts.map +0 -1
- package/dist/lib/validate-workspace.js.map +0 -1
- package/dist/lib/validate.d.ts.map +0 -1
- package/dist/lib/validate.js.map +0 -1
- package/dist/lib/workflow-definitions.d.ts.map +0 -1
- package/dist/lib/workflow-definitions.js.map +0 -1
- package/dist/lib/workflow-helpers.d.ts.map +0 -1
- package/dist/lib/workflow-helpers.js.map +0 -1
- package/dist/lib/workflow-stage-runner.d.ts.map +0 -1
- package/dist/lib/workflow-stage-runner.js.map +0 -1
- package/dist/lib/workflow-starter-docs.d.ts +0 -7
- package/dist/lib/workflow-starter-docs.d.ts.map +0 -1
- package/dist/lib/workflow-starter-docs.js +0 -3
- package/dist/lib/workflow-starter-docs.js.map +0 -1
- package/dist/lib/workflows.d.ts.map +0 -1
- package/dist/lib/workflows.js.map +0 -1
- package/dist/lib/workspace-compile.d.ts.map +0 -1
- package/dist/lib/workspace-compile.js.map +0 -1
- package/dist/lib/workspace-docs.d.ts +0 -3
- package/dist/lib/workspace-docs.d.ts.map +0 -1
- package/dist/lib/workspace-docs.js +0 -82
- package/dist/lib/workspace-docs.js.map +0 -1
- package/dist/lib/workspace-raw.d.ts.map +0 -1
- package/dist/lib/workspace-raw.js.map +0 -1
- package/dist/lib/workspace-reset.d.ts.map +0 -1
- package/dist/lib/workspace-reset.js.map +0 -1
- package/dist/lib/workspace-schema.d.ts.map +0 -1
- package/dist/lib/workspace-schema.js.map +0 -1
- package/skills/benchmark/SKILL.md +0 -122
- package/skills/workflow/create/SKILL.md +0 -141
- package/skills/workspace/shape/SKILL.md +0 -15
- package/skills/workspace/structure/SKILL.md +0 -15
- package/skills/workspace/summarize/SKILL.md +0 -15
- package/templates/workspace/README.md +0 -24
- package/templates/workspace/interfignore +0 -2
|
@@ -1,20 +1,41 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { copyWorkflowPackageDirectory, isPortableWorkflowPackage, patchWorkflowPackageMetadata, resolveWorkflowPackageSourcePath, workflowDefinitionPath, } from "./local-workflows.js";
|
|
4
|
+
import { getWorkspaceWorkflow, } from "./workflow-definitions.js";
|
|
5
|
+
import { renderWorkspaceQuerySkill } from "./agent-shells.js";
|
|
6
|
+
import { CHART_APPROXIMATION_NOTES } from "./chart-guidance.js";
|
|
5
7
|
import { writeWorkspaceSchemaFile } from "./workspace-schema.js";
|
|
8
|
+
import { workflowPackagePathForWorkspace } from "./workspace-paths.js";
|
|
6
9
|
function workflowPackagePath(dirPath) {
|
|
7
|
-
return
|
|
10
|
+
return workflowPackagePathForWorkspace(dirPath);
|
|
8
11
|
}
|
|
9
|
-
function
|
|
12
|
+
function mergeWorkflowStagePolicyNotes(stages, baseNotes, nextNotes) {
|
|
13
|
+
const merged = {};
|
|
14
|
+
for (const stage of stages) {
|
|
15
|
+
const combined = Array.from(new Set([
|
|
16
|
+
...(baseNotes?.[stage.id] ?? []),
|
|
17
|
+
...(nextNotes?.[stage.id] ?? []),
|
|
18
|
+
].map((note) => note.trim()).filter((note) => note.length > 0)));
|
|
19
|
+
if (combined.length > 0) {
|
|
20
|
+
merged[stage.id] = combined;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
24
|
+
}
|
|
25
|
+
function writeWorkflowStarterDocs(dirPath, docs, options) {
|
|
10
26
|
for (const doc of docs ?? []) {
|
|
11
27
|
const targetPath = join(dirPath, doc.relativePath);
|
|
28
|
+
if (!options.overwrite && existsSync(targetPath))
|
|
29
|
+
continue;
|
|
12
30
|
mkdirSync(dirname(targetPath), { recursive: true });
|
|
13
31
|
writeFileSync(targetPath, doc.content);
|
|
14
32
|
}
|
|
15
33
|
}
|
|
16
|
-
function writeWorkflowPackageJson(rootPath, workflow) {
|
|
17
|
-
|
|
34
|
+
function writeWorkflowPackageJson(rootPath, workflow, options) {
|
|
35
|
+
const targetPath = join(rootPath, "workflow.json");
|
|
36
|
+
if (!options.overwrite && existsSync(targetPath))
|
|
37
|
+
return;
|
|
38
|
+
writeFileSync(targetPath, `${JSON.stringify({
|
|
18
39
|
id: workflow.id,
|
|
19
40
|
type: "workspace",
|
|
20
41
|
compiler_api: workflow.compilerApi ?? {
|
|
@@ -49,24 +70,56 @@ function renderWorkflowReadme(workflow) {
|
|
|
49
70
|
"",
|
|
50
71
|
"- `workflow.json` = stage graph, compiler API target, and compile contract mapping",
|
|
51
72
|
"- `workspace.schema.json` = deterministic workspace output shape",
|
|
52
|
-
"- `
|
|
53
|
-
"-
|
|
73
|
+
"- `improve/`, `compile/stages/`, and `use/query/` = human-readable authoring docs",
|
|
74
|
+
"- Portable workflow packages are standalone: explicit stages, schema, and docs live together in this folder",
|
|
75
|
+
"- Interf Compiler projects native agent shells from these docs for query use, stage execution, and workflow-improvement loops",
|
|
54
76
|
"",
|
|
55
77
|
"## Stages",
|
|
56
78
|
"",
|
|
57
79
|
stageLines,
|
|
58
80
|
"",
|
|
59
|
-
"
|
|
81
|
+
"Interf Compiler runs the workspace-local copy of this package directly from `.interf/workflow/` inside each compiled workspace.",
|
|
82
|
+
"",
|
|
83
|
+
].join("\n");
|
|
84
|
+
}
|
|
85
|
+
function renderDerivedWorkflowReadme(options) {
|
|
86
|
+
return [
|
|
87
|
+
`# ${options.label}`,
|
|
88
|
+
"",
|
|
89
|
+
options.hint,
|
|
90
|
+
"",
|
|
91
|
+
`This workflow package was copied from \`${options.baseWorkflowId}\` and materialized as a standalone package for this dataset job.`,
|
|
92
|
+
"",
|
|
93
|
+
"Interf Compiler runs the workspace-local copy of this package directly. Keep changes in this folder self-contained instead of relying on runtime inheritance or fallback.",
|
|
94
|
+
"",
|
|
95
|
+
"## Emphasis",
|
|
96
|
+
"",
|
|
97
|
+
`- summarize: ${options.summarizeBias}`,
|
|
98
|
+
`- structure: ${options.structureBias}`,
|
|
99
|
+
`- shape: ${options.shapeBias}`,
|
|
60
100
|
"",
|
|
61
101
|
].join("\n");
|
|
62
102
|
}
|
|
63
|
-
function
|
|
103
|
+
function renderImproveSkill(workflow) {
|
|
64
104
|
return [
|
|
65
|
-
"#
|
|
105
|
+
"# Workflow Improvement",
|
|
66
106
|
"",
|
|
67
107
|
`Workflow: ${workflow.id}`,
|
|
68
108
|
"",
|
|
69
|
-
"This
|
|
109
|
+
"This file is the editable authoring source for Interf Compiler's generated native workflow-improver shell.",
|
|
110
|
+
"The improver edits this workspace-local package directly.",
|
|
111
|
+
"",
|
|
112
|
+
"Default loop:",
|
|
113
|
+
"1. Read the loop context first.",
|
|
114
|
+
"2. Review preserved stage shells, runtime logs, and saved test runs from failed attempts.",
|
|
115
|
+
"3. Edit only the local workflow package for this workspace to create a better workflow variation for this dataset.",
|
|
116
|
+
"4. Keep `workflow.json`, `workspace.schema.json`, and any changed stage docs aligned.",
|
|
117
|
+
"",
|
|
118
|
+
"Guardrails:",
|
|
119
|
+
"- do not edit truth checks, test specs, or raw dataset files",
|
|
120
|
+
"- do not hardcode expected answers into workflow docs",
|
|
121
|
+
"- keep this package standalone; do not add or rely on runtime `extends` or fallback behavior",
|
|
122
|
+
"- prefer small, defensible workflow changes over random churn",
|
|
70
123
|
"",
|
|
71
124
|
].join("\n");
|
|
72
125
|
}
|
|
@@ -86,6 +139,8 @@ function renderStageSkill(workflow, stage) {
|
|
|
86
139
|
: stage.contractType === "workspace-query-shape"
|
|
87
140
|
? [
|
|
88
141
|
"Use the workspace focus plus saved truth-check question text to shape `home.md` and retrieval routes.",
|
|
142
|
+
"Rewrite `home.md` into a real entrypoint note. Do not leave the scaffold `Not yet compiled.` placeholder in place.",
|
|
143
|
+
...CHART_APPROXIMATION_NOTES,
|
|
89
144
|
"Do not copy expected answers into the workspace.",
|
|
90
145
|
]
|
|
91
146
|
: [];
|
|
@@ -115,21 +170,107 @@ function renderStageSkill(workflow, stage) {
|
|
|
115
170
|
].join("\n");
|
|
116
171
|
}
|
|
117
172
|
export function writeWorkspaceWorkflowPackage(workspacePath, workflow) {
|
|
118
|
-
|
|
119
|
-
|
|
173
|
+
writeWorkflowPackageToDir(workflowPackagePath(workspacePath), workflow);
|
|
174
|
+
}
|
|
175
|
+
export function writeWorkflowPackageToDir(workflowDir, workflow, options = {}) {
|
|
176
|
+
const overwrite = options.overwrite ?? true;
|
|
177
|
+
mkdirSync(join(workflowDir, "improve"), { recursive: true });
|
|
120
178
|
mkdirSync(join(workflowDir, "use", "query"), { recursive: true });
|
|
121
179
|
mkdirSync(join(workflowDir, "compile", "stages"), { recursive: true });
|
|
122
180
|
for (const stage of workflow.stages) {
|
|
123
181
|
mkdirSync(join(workflowDir, "compile", "stages", stage.skillDir), { recursive: true });
|
|
124
182
|
}
|
|
125
|
-
writeWorkflowPackageJson(workflowDir, workflow);
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
183
|
+
writeWorkflowPackageJson(workflowDir, workflow, { overwrite });
|
|
184
|
+
if (overwrite || !existsSync(join(workflowDir, "workspace.schema.json"))) {
|
|
185
|
+
writeWorkspaceSchemaFile(workflowDir, workflow.stages, `${workflow.label} workspace schema`);
|
|
186
|
+
}
|
|
187
|
+
if (overwrite || !existsSync(join(workflowDir, "README.md"))) {
|
|
188
|
+
writeFileSync(join(workflowDir, "README.md"), renderWorkflowReadme(workflow));
|
|
189
|
+
}
|
|
190
|
+
if (overwrite || !existsSync(join(workflowDir, "improve", "SKILL.md"))) {
|
|
191
|
+
writeFileSync(join(workflowDir, "improve", "SKILL.md"), renderImproveSkill(workflow));
|
|
192
|
+
}
|
|
193
|
+
if (overwrite || !existsSync(join(workflowDir, "use", "query", "SKILL.md"))) {
|
|
194
|
+
writeFileSync(join(workflowDir, "use", "query", "SKILL.md"), renderWorkspaceQuerySkill());
|
|
195
|
+
}
|
|
130
196
|
for (const stage of workflow.stages) {
|
|
131
|
-
|
|
197
|
+
const targetPath = join(workflowDir, "compile", "stages", stage.skillDir, "SKILL.md");
|
|
198
|
+
if (overwrite || !existsSync(targetPath)) {
|
|
199
|
+
writeFileSync(targetPath, renderStageSkill(workflow, stage));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
writeWorkflowStarterDocs(workflowDir, workflow.starterDocs, { overwrite });
|
|
203
|
+
}
|
|
204
|
+
export function seedWorkspaceWorkflowPackage(options) {
|
|
205
|
+
const resolvedWorkflow = getWorkspaceWorkflow(options.workflowId, {
|
|
206
|
+
sourcePath: options.sourcePath,
|
|
207
|
+
});
|
|
208
|
+
const sourceWorkflowPath = resolveWorkflowPackageSourcePath(options.sourcePath, resolvedWorkflow.id);
|
|
209
|
+
if (sourceWorkflowPath && isPortableWorkflowPackage(sourceWorkflowPath)) {
|
|
210
|
+
// Portable seed packages can be copied directly because compile runs the
|
|
211
|
+
// workspace-local package folder without any source-root fallback.
|
|
212
|
+
copyWorkflowPackageDirectory(sourceWorkflowPath, workflowPackagePath(options.workspacePath));
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
// Legacy or partially-defined seed packages are resolved once and
|
|
216
|
+
// materialized into a standalone workspace-local package.
|
|
217
|
+
writeWorkspaceWorkflowPackage(options.workspacePath, resolvedWorkflow);
|
|
218
|
+
}
|
|
219
|
+
export function createLocalWorkflowPackageFromTemplate(options) {
|
|
220
|
+
const sourceWorkflowPath = resolveWorkflowPackageSourcePath(options.sourcePath, options.baseWorkflowId);
|
|
221
|
+
const targetPath = workflowDefinitionPath(options.sourcePath, options.workflowId);
|
|
222
|
+
const stagePolicyNotes = {
|
|
223
|
+
summarize: [options.summarizeBias],
|
|
224
|
+
structure: [options.structureBias],
|
|
225
|
+
shape: [options.shapeBias],
|
|
226
|
+
};
|
|
227
|
+
if (sourceWorkflowPath && isPortableWorkflowPackage(sourceWorkflowPath)) {
|
|
228
|
+
// Copy directly when the base package is already portable and standalone.
|
|
229
|
+
copyWorkflowPackageDirectory(sourceWorkflowPath, targetPath);
|
|
230
|
+
patchWorkflowPackageMetadata(targetPath, {
|
|
231
|
+
id: options.workflowId,
|
|
232
|
+
label: options.label,
|
|
233
|
+
hint: options.hint,
|
|
234
|
+
stagePolicyNotes,
|
|
235
|
+
});
|
|
236
|
+
writeFileSync(join(targetPath, "README.md"), renderDerivedWorkflowReadme({
|
|
237
|
+
label: options.label,
|
|
238
|
+
hint: options.hint,
|
|
239
|
+
baseWorkflowId: options.baseWorkflowId,
|
|
240
|
+
summarizeBias: options.summarizeBias,
|
|
241
|
+
structureBias: options.structureBias,
|
|
242
|
+
shapeBias: options.shapeBias,
|
|
243
|
+
}));
|
|
244
|
+
return targetPath;
|
|
132
245
|
}
|
|
133
|
-
|
|
246
|
+
// Legacy or inherited base packages are materialized immediately so the new
|
|
247
|
+
// local workflow package is standalone from its first write.
|
|
248
|
+
const baseWorkflow = getWorkspaceWorkflow(options.baseWorkflowId, {
|
|
249
|
+
sourcePath: options.sourcePath,
|
|
250
|
+
});
|
|
251
|
+
const localWorkflow = {
|
|
252
|
+
...baseWorkflow,
|
|
253
|
+
id: options.workflowId,
|
|
254
|
+
label: options.label,
|
|
255
|
+
hint: options.hint,
|
|
256
|
+
recommended: false,
|
|
257
|
+
scope: "local",
|
|
258
|
+
stagePolicyNotes: mergeWorkflowStagePolicyNotes(baseWorkflow.stages, baseWorkflow.stagePolicyNotes, stagePolicyNotes),
|
|
259
|
+
starterDocs: [
|
|
260
|
+
{
|
|
261
|
+
relativePath: "README.md",
|
|
262
|
+
content: renderDerivedWorkflowReadme({
|
|
263
|
+
label: options.label,
|
|
264
|
+
hint: options.hint,
|
|
265
|
+
baseWorkflowId: options.baseWorkflowId,
|
|
266
|
+
summarizeBias: options.summarizeBias,
|
|
267
|
+
structureBias: options.structureBias,
|
|
268
|
+
shapeBias: options.shapeBias,
|
|
269
|
+
}),
|
|
270
|
+
},
|
|
271
|
+
...(baseWorkflow.starterDocs ?? []).filter((doc) => doc.relativePath !== "README.md"),
|
|
272
|
+
],
|
|
273
|
+
};
|
|
274
|
+
writeWorkflowPackageToDir(targetPath, localWorkflow);
|
|
275
|
+
return targetPath;
|
|
134
276
|
}
|
|
135
|
-
//# sourceMappingURL=interf-workflow-package.js.map
|
package/dist/lib/interf.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME,
|
|
1
|
+
export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, TEST_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, prepareWorkspaceLayout, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, resolveSourceControlPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
|
|
2
2
|
export type { InterfConfig, ResolvedWorkspace } from "./interf-detect.js";
|
|
3
3
|
export { ensureWorkspaceRawBinding, resolveWorkspaceRawPath, syncWorkspaceRawSnapshot, } from "./workspace-raw.js";
|
|
4
4
|
export { refreshWorkspaceBootstrapGuidance, renderClaudeBootstrap, } from "./interf-bootstrap.js";
|
|
5
5
|
export { createWorkspace, defaultWorkspaceNameForSource, } from "./interf-scaffold.js";
|
|
6
|
-
//# sourceMappingURL=interf.d.ts.map
|
package/dist/lib/interf.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME,
|
|
1
|
+
export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, TEST_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, prepareWorkspaceLayout, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, resolveSourceControlPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
|
|
2
2
|
export { ensureWorkspaceRawBinding, resolveWorkspaceRawPath, syncWorkspaceRawSnapshot, } from "./workspace-raw.js";
|
|
3
3
|
export { refreshWorkspaceBootstrapGuidance, renderClaudeBootstrap, } from "./interf-bootstrap.js";
|
|
4
4
|
export { createWorkspace, defaultWorkspaceNameForSource, } from "./interf-scaffold.js";
|
|
5
|
-
//# sourceMappingURL=interf.js.map
|
|
@@ -33,7 +33,17 @@ export declare function workflowDefinitionPath(sourcePath: string, id: string):
|
|
|
33
33
|
export declare function loadWorkflowDefinitionFromDir(dirPath: string): LocalWorkflowDefinition | null;
|
|
34
34
|
export declare function listLocalWorkflowDefinitions(sourcePath: string): LocalWorkflowDefinition[];
|
|
35
35
|
export declare function loadLocalWorkflowDefinition(sourcePath: string, id: string): LocalWorkflowDefinition | null;
|
|
36
|
+
export declare function resolveWorkflowPackageSourcePath(sourcePath: string, workflowId: string): string | null;
|
|
36
37
|
export declare function isWorkflowId(value: string): boolean;
|
|
38
|
+
export declare function patchWorkflowPackageMetadata(dirPath: string, options?: {
|
|
39
|
+
id?: string;
|
|
40
|
+
label?: string;
|
|
41
|
+
hint?: string;
|
|
42
|
+
stagePolicyNotes?: Record<string, string[]>;
|
|
43
|
+
}): void;
|
|
44
|
+
export declare function describeWorkflowPackagePortability(dirPath: string): string[];
|
|
45
|
+
export declare function isPortableWorkflowPackage(dirPath: string): boolean;
|
|
46
|
+
export declare function copyWorkflowPackageDirectory(sourceWorkflowPath: string, targetWorkflowPath: string): void;
|
|
37
47
|
export interface WorkflowValidationResult {
|
|
38
48
|
ok: boolean;
|
|
39
49
|
summary: string;
|
|
@@ -41,8 +51,3 @@ export interface WorkflowValidationResult {
|
|
|
41
51
|
counts: Record<string, number>;
|
|
42
52
|
}
|
|
43
53
|
export declare function validateWorkflowPackage(dirPath: string): WorkflowValidationResult;
|
|
44
|
-
export declare function writeLocalWorkflowDefinition(sourcePath: string, id: string, workflowJson: Record<string, unknown>, docs: Array<{
|
|
45
|
-
relativePath: string;
|
|
46
|
-
content: string;
|
|
47
|
-
}>): string;
|
|
48
|
-
//# sourceMappingURL=local-workflows.d.ts.map
|