@interf/compiler 0.5.1 → 0.6.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 +160 -201
- package/builtin-workflows/interf/README.md +22 -10
- package/builtin-workflows/interf/compile/stages/shape/SKILL.md +8 -5
- package/builtin-workflows/interf/compile/stages/structure/SKILL.md +3 -0
- package/builtin-workflows/interf/compile/stages/summarize/SKILL.md +18 -2
- package/builtin-workflows/interf/improve/SKILL.md +4 -4
- package/builtin-workflows/interf/use/query/SKILL.md +1 -1
- package/builtin-workflows/interf/workflow.json +19 -5
- package/builtin-workflows/interf/{compiled.schema.json → workflow.schema.json} +10 -3
- package/dist/bin.js +2 -28
- package/dist/{commands → cli/commands}/check-draft.d.ts +2 -2
- package/dist/{commands → cli/commands}/check-draft.js +13 -13
- package/dist/{commands → cli/commands}/compile-controller.d.ts +3 -3
- package/dist/{commands → cli/commands}/compile-controller.js +39 -44
- package/dist/cli/commands/compile.d.ts +33 -0
- package/dist/{commands → cli/commands}/compile.js +107 -33
- package/dist/{commands → cli/commands}/compiled-flow.d.ts +3 -4
- package/dist/{commands → cli/commands}/compiled-flow.js +9 -14
- package/dist/{commands → cli/commands}/create-workflow-wizard.d.ts +20 -2
- package/dist/cli/commands/create-workflow-wizard.js +288 -0
- package/dist/{commands → cli/commands}/create.d.ts +2 -2
- package/dist/cli/commands/create.js +166 -0
- package/dist/cli/commands/dataset-selection.d.ts +6 -0
- package/dist/cli/commands/dataset-selection.js +11 -0
- package/dist/{commands → cli/commands}/default.js +5 -5
- package/dist/{commands → cli/commands}/doctor.js +12 -13
- package/dist/{commands → cli/commands}/executor-flow.d.ts +2 -2
- package/dist/{commands → cli/commands}/executor-flow.js +17 -17
- package/dist/cli/commands/init.d.ts +11 -0
- package/dist/{commands → cli/commands}/init.js +202 -109
- package/dist/{commands → cli/commands}/list.js +9 -6
- package/dist/{commands → cli/commands}/reset.js +5 -5
- package/dist/{commands → cli/commands}/source-config-wizard.d.ts +10 -5
- package/dist/{commands → cli/commands}/source-config-wizard.js +202 -95
- package/dist/{commands → cli/commands}/status.js +20 -11
- package/dist/{commands → cli/commands}/test-flow.d.ts +13 -4
- package/dist/{commands → cli/commands}/test-flow.js +30 -26
- package/dist/cli/commands/test.d.ts +14 -0
- package/dist/{commands → cli/commands}/test.js +48 -40
- package/dist/{commands → cli/commands}/verify.js +4 -4
- package/dist/cli/index.d.ts +21 -0
- package/dist/cli/index.js +33 -0
- package/dist/index.d.ts +22 -11
- package/dist/index.js +15 -6
- package/dist/lib/agent-args.d.ts +1 -3
- package/dist/lib/agent-args.js +1 -42
- package/dist/lib/agent-constants.d.ts +1 -5
- package/dist/lib/agent-constants.js +1 -28
- package/dist/lib/agent-detection.d.ts +1 -7
- package/dist/lib/agent-detection.js +1 -65
- package/dist/lib/agent-execution.d.ts +1 -2
- package/dist/lib/agent-execution.js +1 -242
- package/dist/lib/agent-logs.d.ts +1 -2
- package/dist/lib/agent-logs.js +1 -17
- package/dist/lib/agent-preflight.d.ts +1 -7
- package/dist/lib/agent-preflight.js +1 -76
- package/dist/lib/agent-render.d.ts +1 -8
- package/dist/lib/agent-render.js +1 -218
- package/dist/lib/agent-shells.d.ts +1 -44
- package/dist/lib/agent-shells.js +1 -847
- package/dist/lib/agent-status.d.ts +1 -3
- package/dist/lib/agent-status.js +1 -58
- package/dist/lib/agent-types.d.ts +1 -30
- package/dist/lib/agent-types.js +1 -1
- package/dist/lib/agents.d.ts +1 -6
- package/dist/lib/agents.js +1 -5
- package/dist/lib/builtin-compiled-workflow.d.ts +1 -129
- package/dist/lib/builtin-compiled-workflow.js +1 -153
- package/dist/lib/compiled-compile.d.ts +1 -52
- package/dist/lib/compiled-compile.js +1 -274
- package/dist/lib/compiled-paths.d.ts +1 -39
- package/dist/lib/compiled-paths.js +3 -103
- package/dist/lib/compiled-raw.d.ts +1 -49
- package/dist/lib/compiled-raw.js +3 -102
- package/dist/lib/compiled-reset.d.ts +1 -1
- package/dist/lib/compiled-reset.js +3 -44
- package/dist/lib/compiled-schema.d.ts +1 -27
- package/dist/lib/compiled-schema.js +1 -110
- package/dist/lib/discovery.d.ts +1 -1
- package/dist/lib/discovery.js +2 -2
- package/dist/lib/execution-profile.d.ts +1 -17
- package/dist/lib/execution-profile.js +1 -84
- package/dist/lib/executors.d.ts +1 -32
- package/dist/lib/executors.js +1 -43
- package/dist/lib/interf-bootstrap.d.ts +1 -3
- package/dist/lib/interf-bootstrap.js +3 -18
- package/dist/lib/interf-detect.d.ts +1 -33
- package/dist/lib/interf-detect.js +3 -176
- package/dist/lib/interf-scaffold.d.ts +1 -2
- package/dist/lib/interf-scaffold.js +3 -121
- package/dist/lib/interf-workflow-package.d.ts +1 -20
- package/dist/lib/interf-workflow-package.js +1 -276
- package/dist/lib/interf.d.ts +1 -5
- package/dist/lib/interf.js +3 -4
- package/dist/lib/local-workflows.d.ts +1 -53
- package/dist/lib/local-workflows.js +1 -399
- package/dist/lib/package-root.d.ts +1 -0
- package/dist/lib/package-root.js +1 -0
- package/dist/lib/project-paths.d.ts +1 -11
- package/dist/lib/project-paths.js +3 -32
- package/dist/lib/runtime-acceptance.d.ts +1 -9
- package/dist/lib/runtime-acceptance.js +1 -257
- package/dist/lib/runtime-contracts.d.ts +1 -2
- package/dist/lib/runtime-contracts.js +1 -47
- package/dist/lib/runtime-inventory.d.ts +1 -7
- package/dist/lib/runtime-inventory.js +1 -29
- package/dist/lib/runtime-paths.d.ts +1 -7
- package/dist/lib/runtime-paths.js +1 -23
- package/dist/lib/runtime-prompt.d.ts +1 -2
- package/dist/lib/runtime-prompt.js +1 -46
- package/dist/lib/runtime-reconcile.d.ts +1 -2
- package/dist/lib/runtime-reconcile.js +1 -156
- package/dist/lib/runtime-runs.d.ts +1 -11
- package/dist/lib/runtime-runs.js +1 -250
- package/dist/lib/runtime-types.d.ts +1 -43
- package/dist/lib/runtime-types.js +1 -1
- package/dist/lib/runtime.d.ts +1 -6
- package/dist/lib/runtime.js +1 -5
- package/dist/lib/schema.d.ts +4 -1016
- package/dist/lib/schema.js +6 -539
- package/dist/lib/source-config.d.ts +1 -39
- package/dist/lib/source-config.js +3 -293
- package/dist/lib/state-artifacts.d.ts +1 -8
- package/dist/lib/state-artifacts.js +1 -13
- package/dist/lib/state-health.d.ts +1 -4
- package/dist/lib/state-health.js +1 -132
- package/dist/lib/state-io.d.ts +1 -10
- package/dist/lib/state-io.js +1 -76
- package/dist/lib/state-paths.d.ts +1 -4
- package/dist/lib/state-paths.js +1 -13
- package/dist/lib/state-view.d.ts +1 -4
- package/dist/lib/state-view.js +1 -103
- package/dist/lib/state.d.ts +1 -6
- package/dist/lib/state.js +1 -5
- package/dist/lib/test-execution.d.ts +1 -14
- package/dist/lib/test-execution.js +3 -525
- package/dist/lib/test-matrices.d.ts +1 -90
- package/dist/lib/test-matrices.js +3 -96
- package/dist/lib/test-paths.d.ts +1 -12
- package/dist/lib/test-paths.js +3 -59
- package/dist/lib/test-profile-presets.d.ts +1 -57
- package/dist/lib/test-profile-presets.js +3 -50
- package/dist/lib/test-sandbox.d.ts +1 -11
- package/dist/lib/test-sandbox.js +3 -105
- package/dist/lib/test-specs.d.ts +1 -7
- package/dist/lib/test-specs.js +3 -114
- package/dist/lib/test-targets.d.ts +1 -5
- package/dist/lib/test-targets.js +3 -38
- package/dist/lib/test-types.d.ts +1 -17
- package/dist/lib/test-types.js +3 -1
- package/dist/lib/test.d.ts +1 -4
- package/dist/lib/test.js +3 -3
- package/dist/lib/validate-compiled.d.ts +1 -27
- package/dist/lib/validate-compiled.js +1 -238
- package/dist/lib/validate-helpers.d.ts +1 -12
- package/dist/lib/validate-helpers.js +1 -41
- package/dist/lib/validate.d.ts +1 -19
- package/dist/lib/validate.js +1 -256
- package/dist/lib/workflow-authoring.d.ts +1 -0
- package/dist/lib/workflow-authoring.js +1 -0
- package/dist/lib/workflow-definitions.d.ts +1 -68
- package/dist/lib/workflow-definitions.js +1 -206
- package/dist/lib/workflow-edit-session.d.ts +1 -0
- package/dist/lib/workflow-edit-session.js +1 -0
- package/dist/lib/workflow-edit-utils.d.ts +1 -0
- package/dist/lib/workflow-edit-utils.js +1 -0
- package/dist/lib/workflow-helpers.d.ts +1 -38
- package/dist/lib/workflow-helpers.js +1 -167
- package/dist/lib/workflow-improvement.d.ts +1 -22
- package/dist/lib/workflow-improvement.js +1 -396
- package/dist/lib/workflow-primitives.d.ts +1 -2
- package/dist/lib/workflow-primitives.js +1 -5
- package/dist/lib/workflow-review-paths.d.ts +1 -10
- package/dist/lib/workflow-review-paths.js +1 -27
- package/dist/lib/workflow-stage-policy.d.ts +1 -0
- package/dist/lib/workflow-stage-policy.js +1 -0
- package/dist/lib/workflow-stage-runner.d.ts +1 -41
- package/dist/lib/workflow-stage-runner.js +1 -109
- package/dist/lib/workflows.d.ts +1 -15
- package/dist/lib/workflows.js +1 -31
- package/dist/packages/agents/index.d.ts +17 -0
- package/dist/packages/agents/index.js +15 -0
- package/dist/packages/agents/lib/agents.d.ts +6 -0
- package/dist/packages/agents/lib/agents.js +5 -0
- package/dist/packages/agents/lib/args.d.ts +4 -0
- package/dist/packages/agents/lib/args.js +52 -0
- package/dist/packages/agents/lib/constants.d.ts +5 -0
- package/dist/packages/agents/lib/constants.js +28 -0
- package/dist/packages/agents/lib/detection.d.ts +7 -0
- package/dist/packages/agents/lib/detection.js +65 -0
- package/dist/packages/agents/lib/execution-profile.d.ts +17 -0
- package/dist/packages/agents/lib/execution-profile.js +84 -0
- package/dist/packages/agents/lib/execution.d.ts +2 -0
- package/dist/packages/agents/lib/execution.js +243 -0
- package/dist/packages/agents/lib/executors.d.ts +32 -0
- package/dist/packages/agents/lib/executors.js +45 -0
- package/dist/packages/agents/lib/logs.d.ts +2 -0
- package/dist/packages/agents/lib/logs.js +17 -0
- package/dist/packages/agents/lib/preflight.d.ts +7 -0
- package/dist/packages/agents/lib/preflight.js +77 -0
- package/dist/packages/agents/lib/render.d.ts +8 -0
- package/dist/packages/agents/lib/render.js +218 -0
- package/dist/packages/agents/lib/schema.d.ts +8 -0
- package/dist/packages/agents/lib/schema.js +7 -0
- package/dist/packages/agents/lib/shells.d.ts +69 -0
- package/dist/packages/agents/lib/shells.js +1021 -0
- package/dist/packages/agents/lib/status.d.ts +3 -0
- package/dist/packages/agents/lib/status.js +58 -0
- package/dist/packages/agents/lib/types.d.ts +30 -0
- package/dist/packages/agents/lib/types.js +1 -0
- package/dist/{lib → packages/agents/lib}/user-config.d.ts +1 -0
- package/dist/{lib → packages/agents/lib}/user-config.js +3 -2
- package/dist/packages/compiler/compiled-compile.d.ts +48 -0
- package/dist/packages/compiler/compiled-compile.js +256 -0
- package/dist/packages/compiler/compiled-schema.d.ts +31 -0
- package/dist/packages/compiler/compiled-schema.js +141 -0
- package/dist/packages/compiler/index.d.ts +24 -0
- package/dist/packages/compiler/index.js +23 -0
- package/dist/packages/compiler/lib/schema.d.ts +684 -0
- package/dist/packages/compiler/lib/schema.js +361 -0
- package/dist/packages/compiler/runtime-acceptance.d.ts +9 -0
- package/dist/packages/compiler/runtime-acceptance.js +269 -0
- package/dist/packages/compiler/runtime-contracts.d.ts +2 -0
- package/dist/packages/compiler/runtime-contracts.js +48 -0
- package/dist/packages/compiler/runtime-inventory.d.ts +7 -0
- package/dist/packages/compiler/runtime-inventory.js +29 -0
- package/dist/packages/compiler/runtime-paths.d.ts +8 -0
- package/dist/packages/compiler/runtime-paths.js +26 -0
- package/dist/packages/compiler/runtime-prompt.d.ts +2 -0
- package/dist/packages/compiler/runtime-prompt.js +48 -0
- package/dist/packages/compiler/runtime-reconcile.d.ts +2 -0
- package/dist/packages/compiler/runtime-reconcile.js +193 -0
- package/dist/packages/compiler/runtime-runs.d.ts +11 -0
- package/dist/packages/compiler/runtime-runs.js +262 -0
- package/dist/packages/compiler/runtime-types.d.ts +43 -0
- package/dist/packages/compiler/runtime-types.js +1 -0
- package/dist/packages/compiler/runtime.d.ts +6 -0
- package/dist/packages/compiler/runtime.js +5 -0
- package/dist/packages/compiler/state-artifacts.d.ts +8 -0
- package/dist/packages/compiler/state-artifacts.js +13 -0
- package/dist/packages/compiler/state-health.d.ts +4 -0
- package/dist/packages/compiler/state-health.js +132 -0
- package/dist/packages/compiler/state-io.d.ts +10 -0
- package/dist/packages/compiler/state-io.js +76 -0
- package/dist/packages/compiler/state-paths.d.ts +4 -0
- package/dist/packages/compiler/state-paths.js +13 -0
- package/dist/packages/compiler/state-view.d.ts +4 -0
- package/dist/packages/compiler/state-view.js +103 -0
- package/dist/packages/compiler/state.d.ts +7 -0
- package/dist/packages/compiler/state.js +12 -0
- package/dist/packages/compiler/validate-compiled.d.ts +27 -0
- package/dist/packages/compiler/validate-compiled.js +241 -0
- package/dist/packages/compiler/validate-helpers.d.ts +12 -0
- package/dist/packages/compiler/validate-helpers.js +41 -0
- package/dist/packages/compiler/validate.d.ts +21 -0
- package/dist/packages/compiler/validate.js +249 -0
- package/dist/packages/compiler/workflow-primitives.d.ts +2 -0
- package/dist/packages/compiler/workflow-primitives.js +5 -0
- package/dist/packages/compiler/workflows.d.ts +15 -0
- package/dist/packages/compiler/workflows.js +31 -0
- package/dist/packages/project-model/compiled-paths.d.ts +40 -0
- package/dist/packages/project-model/compiled-paths.js +106 -0
- package/dist/packages/project-model/compiled-raw.d.ts +49 -0
- package/dist/packages/project-model/compiled-raw.js +102 -0
- package/dist/packages/project-model/compiled-reset.d.ts +2 -0
- package/dist/packages/project-model/compiled-reset.js +72 -0
- package/dist/packages/project-model/index.d.ts +11 -0
- package/dist/packages/project-model/index.js +10 -0
- package/dist/packages/project-model/interf-bootstrap.d.ts +3 -0
- package/dist/packages/project-model/interf-bootstrap.js +18 -0
- package/dist/packages/project-model/interf-detect.d.ts +33 -0
- package/dist/packages/project-model/interf-detect.js +176 -0
- package/dist/packages/project-model/interf-scaffold.d.ts +2 -0
- package/dist/packages/project-model/interf-scaffold.js +124 -0
- package/dist/packages/project-model/interf.d.ts +5 -0
- package/dist/packages/project-model/interf.js +4 -0
- package/dist/packages/project-model/lib/schema.d.ts +125 -0
- package/dist/packages/project-model/lib/schema.js +62 -0
- package/dist/packages/project-model/project-paths.d.ts +11 -0
- package/dist/packages/project-model/project-paths.js +32 -0
- package/dist/packages/project-model/source-config.d.ts +38 -0
- package/dist/packages/project-model/source-config.js +297 -0
- package/dist/packages/testing/index.d.ts +13 -0
- package/dist/packages/testing/index.js +10 -0
- package/dist/packages/testing/lib/schema.d.ts +261 -0
- package/dist/packages/testing/lib/schema.js +119 -0
- package/dist/packages/testing/test-execution.d.ts +14 -0
- package/dist/packages/testing/test-execution.js +525 -0
- package/dist/packages/testing/test-matrices.d.ts +90 -0
- package/dist/packages/testing/test-matrices.js +96 -0
- package/dist/packages/testing/test-paths.d.ts +12 -0
- package/dist/packages/testing/test-paths.js +59 -0
- package/dist/packages/testing/test-profile-presets.d.ts +57 -0
- package/dist/packages/testing/test-profile-presets.js +50 -0
- package/dist/packages/testing/test-sandbox.d.ts +11 -0
- package/dist/packages/testing/test-sandbox.js +105 -0
- package/dist/packages/testing/test-specs.d.ts +7 -0
- package/dist/packages/testing/test-specs.js +114 -0
- package/dist/packages/testing/test-targets.d.ts +5 -0
- package/dist/packages/testing/test-targets.js +38 -0
- package/dist/packages/testing/test-types.d.ts +16 -0
- package/dist/packages/testing/test-types.js +1 -0
- package/dist/packages/testing/test.d.ts +4 -0
- package/dist/packages/testing/test.js +3 -0
- package/dist/packages/workflow-authoring/index.d.ts +4 -0
- package/dist/packages/workflow-authoring/index.js +4 -0
- package/dist/packages/workflow-authoring/lib/workflow-edit-utils.d.ts +10 -0
- package/dist/packages/workflow-authoring/lib/workflow-edit-utils.js +39 -0
- package/dist/packages/workflow-authoring/workflow-authoring.d.ts +26 -0
- package/dist/packages/workflow-authoring/workflow-authoring.js +120 -0
- package/dist/packages/workflow-authoring/workflow-edit-session.d.ts +16 -0
- package/dist/packages/workflow-authoring/workflow-edit-session.js +57 -0
- package/dist/packages/workflow-authoring/workflow-improvement.d.ts +23 -0
- package/dist/packages/workflow-authoring/workflow-improvement.js +209 -0
- package/dist/packages/workflow-package/builtin-compiled-workflow.d.ts +38 -0
- package/dist/packages/workflow-package/builtin-compiled-workflow.js +94 -0
- package/dist/packages/workflow-package/index.d.ts +9 -0
- package/dist/packages/workflow-package/index.js +9 -0
- package/dist/packages/workflow-package/interf-workflow-package.d.ts +25 -0
- package/dist/packages/workflow-package/interf-workflow-package.js +342 -0
- package/dist/{lib/config.d.ts → packages/workflow-package/lib/package-root.d.ts} +0 -1
- package/dist/packages/workflow-package/lib/package-root.js +6 -0
- package/dist/packages/workflow-package/local-workflows.d.ts +54 -0
- package/dist/packages/workflow-package/local-workflows.js +422 -0
- package/dist/packages/workflow-package/workflow-definitions.d.ts +78 -0
- package/dist/packages/workflow-package/workflow-definitions.js +203 -0
- package/dist/packages/workflow-package/workflow-helpers.d.ts +38 -0
- package/dist/packages/workflow-package/workflow-helpers.js +167 -0
- package/dist/packages/workflow-package/workflow-review-paths.d.ts +10 -0
- package/dist/packages/workflow-package/workflow-review-paths.js +27 -0
- package/dist/packages/workflow-package/workflow-stage-policy.d.ts +5 -0
- package/dist/packages/workflow-package/workflow-stage-policy.js +31 -0
- package/dist/packages/workflow-package/workflow-stage-runner.d.ts +41 -0
- package/dist/packages/workflow-package/workflow-stage-runner.js +109 -0
- package/package.json +44 -21
- package/dist/commands/compile.d.ts +0 -15
- package/dist/commands/create-workflow-wizard.js +0 -125
- package/dist/commands/create.js +0 -162
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/test.d.ts +0 -9
- package/dist/lib/compiled-home.d.ts +0 -5
- package/dist/lib/compiled-home.js +0 -32
- package/dist/lib/config.js +0 -9
- package/dist/lib/obsidian.d.ts +0 -1
- package/dist/lib/obsidian.js +0 -15
- package/dist/lib/summarize-plan.d.ts +0 -17
- package/dist/lib/summarize-plan.js +0 -120
- /package/dist/{commands → cli/commands}/default.d.ts +0 -0
- /package/dist/{commands → cli/commands}/doctor.d.ts +0 -0
- /package/dist/{commands → cli/commands}/list.d.ts +0 -0
- /package/dist/{commands → cli/commands}/reset.d.ts +0 -0
- /package/dist/{commands → cli/commands}/status.d.ts +0 -0
- /package/dist/{commands → cli/commands}/verify.d.ts +0 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
|
+
import { detectInterf, resolveSourceControlPath, } from "../../packages/project-model/interf.js";
|
|
4
|
+
import { addExecutionProfileOptions, executionProfileFromArgv, } from "../../packages/agents/lib/execution-profile.js";
|
|
5
|
+
import { listSourceDatasetConfigs, loadSourceFolderConfig, syncCompiledInterfConfigFromSourceDatasetConfig, upsertSourceDatasetConfig, } from "../../packages/project-model/source-config.js";
|
|
6
|
+
import { createWorkflowWizard, } from "./create-workflow-wizard.js";
|
|
7
|
+
import { findBuiltCompiledPath, } from "./compiled-flow.js";
|
|
8
|
+
import { DEFAULT_COMPILED_NAME, promptSingleCompiledConfig, } from "./source-config-wizard.js";
|
|
9
|
+
function normalizeCreateTarget(value) {
|
|
10
|
+
if (!value)
|
|
11
|
+
return null;
|
|
12
|
+
switch (value) {
|
|
13
|
+
case "dataset":
|
|
14
|
+
case "ds":
|
|
15
|
+
return "dataset";
|
|
16
|
+
case "workflow":
|
|
17
|
+
case "wf":
|
|
18
|
+
return "workflow";
|
|
19
|
+
default:
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async function selectCreateTarget() {
|
|
24
|
+
return p.select({
|
|
25
|
+
message: "Create what?",
|
|
26
|
+
options: [
|
|
27
|
+
{
|
|
28
|
+
value: "dataset",
|
|
29
|
+
label: "Dataset (Recommended)",
|
|
30
|
+
hint: "Add one dataset entry to this project",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
value: "workflow",
|
|
34
|
+
label: "Workflow",
|
|
35
|
+
hint: "Create a reusable local workflow",
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async function maybeAssignWorkflowToDataset(sourcePath, workflowId) {
|
|
41
|
+
const config = loadSourceFolderConfig(sourcePath);
|
|
42
|
+
const datasets = listSourceDatasetConfigs(config);
|
|
43
|
+
if (datasets.length === 0) {
|
|
44
|
+
p.log.info(`Created workflow "${workflowId}".`);
|
|
45
|
+
p.log.info(`Next: run \`interf\`, add a setup, then assign workflow "${workflowId}" from that menu.`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const assignNow = await p.confirm({
|
|
49
|
+
message: "Assign this workflow to a dataset now? (Recommended)",
|
|
50
|
+
initialValue: true,
|
|
51
|
+
});
|
|
52
|
+
if (p.isCancel(assignNow) || !assignNow) {
|
|
53
|
+
p.log.info(`Created workflow "${workflowId}".`);
|
|
54
|
+
p.log.info(`Next: run \`interf\`, open a saved setup, and assign workflow "${workflowId}" from that menu.`);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
let targetDataset = datasets[0] ?? null;
|
|
58
|
+
if (datasets.length > 1) {
|
|
59
|
+
const selected = await p.select({
|
|
60
|
+
message: "Which source folder setup should use this workflow?",
|
|
61
|
+
options: datasets.map((dataset) => ({
|
|
62
|
+
value: dataset.name,
|
|
63
|
+
label: dataset.name,
|
|
64
|
+
hint: `${dataset.path} · ${dataset.about ?? `${dataset.checks.length} check${dataset.checks.length === 1 ? "" : "s"}`}`,
|
|
65
|
+
})),
|
|
66
|
+
});
|
|
67
|
+
if (p.isCancel(selected))
|
|
68
|
+
return;
|
|
69
|
+
targetDataset = datasets.find((dataset) => dataset.name === selected) ?? null;
|
|
70
|
+
}
|
|
71
|
+
if (!targetDataset)
|
|
72
|
+
return;
|
|
73
|
+
const nextConfig = {
|
|
74
|
+
...targetDataset,
|
|
75
|
+
workflow: workflowId,
|
|
76
|
+
};
|
|
77
|
+
upsertSourceDatasetConfig(sourcePath, nextConfig, {
|
|
78
|
+
matchName: targetDataset.name,
|
|
79
|
+
});
|
|
80
|
+
const builtCompiledPath = findBuiltCompiledPath(sourcePath, targetDataset.name);
|
|
81
|
+
if (builtCompiledPath) {
|
|
82
|
+
syncCompiledInterfConfigFromSourceDatasetConfig(builtCompiledPath, nextConfig);
|
|
83
|
+
}
|
|
84
|
+
p.log.info(`Assigned workflow "${workflowId}" to dataset "${targetDataset.name}".`);
|
|
85
|
+
if (builtCompiledPath) {
|
|
86
|
+
p.log.info("The active local copy for that compiled context lives under `.interf/workflow/`.");
|
|
87
|
+
}
|
|
88
|
+
p.log.info("Next: run `interf compile`, then `interf test`.");
|
|
89
|
+
}
|
|
90
|
+
export const createCommand = {
|
|
91
|
+
command: "create [type]",
|
|
92
|
+
describe: "Create a dataset entry or reusable workflow",
|
|
93
|
+
builder: (yargs) => addExecutionProfileOptions(yargs.positional("type", {
|
|
94
|
+
type: "string",
|
|
95
|
+
describe: "Type to create (`dataset` or `workflow`)",
|
|
96
|
+
default: undefined,
|
|
97
|
+
})),
|
|
98
|
+
handler: async (argv) => {
|
|
99
|
+
const rawType = argv.type;
|
|
100
|
+
let type = normalizeCreateTarget(rawType);
|
|
101
|
+
const executionProfile = executionProfileFromArgv(argv);
|
|
102
|
+
if (rawType && !type) {
|
|
103
|
+
process.exitCode = 1;
|
|
104
|
+
p.log.error(`Unknown create target: ${rawType}`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!type) {
|
|
108
|
+
const selected = await selectCreateTarget();
|
|
109
|
+
if (p.isCancel(selected))
|
|
110
|
+
return;
|
|
111
|
+
type = selected;
|
|
112
|
+
}
|
|
113
|
+
if (type === "workflow") {
|
|
114
|
+
const detected = detectInterf(process.cwd());
|
|
115
|
+
const workflowId = await createWorkflowWizard({
|
|
116
|
+
sourcePath: detected ? resolveSourceControlPath(detected.path) : process.cwd(),
|
|
117
|
+
executionProfile,
|
|
118
|
+
});
|
|
119
|
+
if (typeof workflowId === "string") {
|
|
120
|
+
await maybeAssignWorkflowToDataset(detected ? resolveSourceControlPath(detected.path) : process.cwd(), workflowId);
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
await createCompiledWizard({ executionProfile });
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
export async function createCompiledWizard(options = {}) {
|
|
128
|
+
if (options.intro !== false) {
|
|
129
|
+
p.intro(chalk.bold("Add a dataset"));
|
|
130
|
+
}
|
|
131
|
+
const cwd = process.cwd();
|
|
132
|
+
const detected = detectInterf(cwd);
|
|
133
|
+
if (detected) {
|
|
134
|
+
process.exitCode = 1;
|
|
135
|
+
p.log.error("You are already inside a compiled context.");
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const savedDatasets = listSourceDatasetConfigs(loadSourceFolderConfig(cwd));
|
|
139
|
+
if (savedDatasets.length > 0) {
|
|
140
|
+
p.log.info(`This project already has ${savedDatasets.length} saved setup${savedDatasets.length === 1 ? "" : "s"} in interf.json. Add another only when you need a separate folder, focus, or check set.`);
|
|
141
|
+
}
|
|
142
|
+
p.log.info("Interf works one source-folder setup at a time. Start with the task, the relevant files, and a few checks, then build a context folder when you want to prepare that task context for your agents.");
|
|
143
|
+
const existingConfig = loadSourceFolderConfig(cwd);
|
|
144
|
+
const draft = await promptSingleCompiledConfig({
|
|
145
|
+
projectPath: cwd,
|
|
146
|
+
initial: { name: DEFAULT_COMPILED_NAME },
|
|
147
|
+
introStyle: existingConfig ? "additional" : "first",
|
|
148
|
+
});
|
|
149
|
+
if (!draft)
|
|
150
|
+
return;
|
|
151
|
+
const configToSave = {
|
|
152
|
+
...draft,
|
|
153
|
+
workflow: "interf",
|
|
154
|
+
};
|
|
155
|
+
const existingNames = new Set(listSourceDatasetConfigs(existingConfig).map((dataset) => dataset.name));
|
|
156
|
+
if (existingNames.has(configToSave.name)) {
|
|
157
|
+
process.exitCode = 1;
|
|
158
|
+
p.log.error(`Setup "${configToSave.name}" already exists. Use \`interf\` or \`interf init\` to edit it.`);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
upsertSourceDatasetConfig(cwd, configToSave);
|
|
162
|
+
p.outro(configToSave.checks.length > 0
|
|
163
|
+
? "Saved dataset.\nNext:\n interf test\n interf compile"
|
|
164
|
+
: "Saved dataset.\nNext:\n interf or interf init");
|
|
165
|
+
}
|
|
166
|
+
export { formatWorkflowLabel, createWorkflowWizard, createCompiledWorkflowWizard, } from "./create-workflow-wizard.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SourceDatasetConfig } from "../../packages/project-model/lib/schema.js";
|
|
2
|
+
export declare function resolveConfiguredDatasetSelection(options: {
|
|
3
|
+
sourcePath: string;
|
|
4
|
+
requestedDatasetName?: string | null;
|
|
5
|
+
hintedDatasetConfig?: SourceDatasetConfig | null;
|
|
6
|
+
}): SourceDatasetConfig | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { findSavedCompiledConfig } from "./compiled-flow.js";
|
|
2
|
+
export function resolveConfiguredDatasetSelection(options) {
|
|
3
|
+
if (options.hintedDatasetConfig &&
|
|
4
|
+
(!options.requestedDatasetName || options.hintedDatasetConfig.name === options.requestedDatasetName)) {
|
|
5
|
+
return options.hintedDatasetConfig;
|
|
6
|
+
}
|
|
7
|
+
if (!options.requestedDatasetName) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return findSavedCompiledConfig(options.sourcePath, options.requestedDatasetName);
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import {
|
|
2
|
+
import { userConfig } from "../../packages/agents/index.js";
|
|
3
3
|
import { runInitCommand } from "./init.js";
|
|
4
4
|
function printStaticLanding() {
|
|
5
|
-
const config = loadUserConfig();
|
|
5
|
+
const config = userConfig.loadUserConfig();
|
|
6
6
|
console.log();
|
|
7
|
-
console.log(chalk.bold(" Interf
|
|
8
|
-
console.log(chalk.dim("
|
|
7
|
+
console.log(chalk.bold(" Interf"));
|
|
8
|
+
console.log(chalk.dim(" Prepare task context for your agents from the files behind a task, then test it and use self-improving loops until the checks pass."));
|
|
9
9
|
console.log();
|
|
10
10
|
if (config) {
|
|
11
11
|
console.log(chalk.dim(` Agent: ${config.agent}`));
|
|
@@ -20,7 +20,7 @@ function printStaticLanding() {
|
|
|
20
20
|
console.log(chalk.dim(" More:"));
|
|
21
21
|
console.log(chalk.dim(" interf init"));
|
|
22
22
|
console.log(chalk.dim(" interf create workflow"));
|
|
23
|
-
console.log(chalk.dim(" interf doctor"));
|
|
23
|
+
console.log(chalk.dim(" interf doctor --live"));
|
|
24
24
|
console.log(chalk.dim(" interf --help"));
|
|
25
25
|
console.log();
|
|
26
26
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import {
|
|
3
|
-
import { loadUserConfig } from "../lib/user-config.js";
|
|
2
|
+
import { agents, userConfig } from "../../packages/agents/index.js";
|
|
4
3
|
function iconFor(status) {
|
|
5
4
|
if (status === "pass")
|
|
6
5
|
return chalk.green("✓");
|
|
@@ -12,7 +11,7 @@ function iconFor(status) {
|
|
|
12
11
|
}
|
|
13
12
|
export const doctorCommand = {
|
|
14
13
|
command: "doctor",
|
|
15
|
-
describe: "Check local executor setup before a real
|
|
14
|
+
describe: "Check local executor setup before a real local run",
|
|
16
15
|
builder: (yargs) => yargs
|
|
17
16
|
.option("live", {
|
|
18
17
|
type: "boolean",
|
|
@@ -26,12 +25,12 @@ export const doctorCommand = {
|
|
|
26
25
|
}),
|
|
27
26
|
handler: async (argv) => {
|
|
28
27
|
const checks = [];
|
|
29
|
-
const config = loadUserConfig();
|
|
30
|
-
const { agent, error } = resolveAgent();
|
|
28
|
+
const config = userConfig.loadUserConfig();
|
|
29
|
+
const { agent, error } = agents.resolveAgent();
|
|
31
30
|
if (config) {
|
|
32
31
|
checks.push({
|
|
33
32
|
id: "config",
|
|
34
|
-
label: "Interf
|
|
33
|
+
label: "Interf setup",
|
|
35
34
|
status: "pass",
|
|
36
35
|
message: `Configured default agent: ${config.agent}`,
|
|
37
36
|
});
|
|
@@ -39,9 +38,9 @@ export const doctorCommand = {
|
|
|
39
38
|
else {
|
|
40
39
|
checks.push({
|
|
41
40
|
id: "config",
|
|
42
|
-
label: "Interf
|
|
41
|
+
label: "Interf setup",
|
|
43
42
|
status: "warn",
|
|
44
|
-
message: "No saved Interf
|
|
43
|
+
message: "No saved Interf setup found. `interf` or `interf init` is recommended for deterministic local runs.",
|
|
45
44
|
});
|
|
46
45
|
}
|
|
47
46
|
if (!agent) {
|
|
@@ -56,7 +55,7 @@ export const doctorCommand = {
|
|
|
56
55
|
}
|
|
57
56
|
else {
|
|
58
57
|
console.log();
|
|
59
|
-
console.log(chalk.bold(" Interf
|
|
58
|
+
console.log(chalk.bold(" Interf doctor"));
|
|
60
59
|
console.log();
|
|
61
60
|
for (const check of checks) {
|
|
62
61
|
console.log(` ${iconFor(check.status)} ${check.label}: ${check.message}`);
|
|
@@ -73,13 +72,13 @@ export const doctorCommand = {
|
|
|
73
72
|
message: `${agent.displayName} is configured and available as \`${agent.command}\``,
|
|
74
73
|
});
|
|
75
74
|
if (argv.live) {
|
|
76
|
-
const preflight = runAgentPreflight(agent);
|
|
75
|
+
const preflight = agents.runAgentPreflight(agent);
|
|
77
76
|
checks.push({
|
|
78
77
|
id: "live",
|
|
79
78
|
label: "Live executor preflight",
|
|
80
79
|
status: preflight.ok ? "pass" : "fail",
|
|
81
80
|
message: preflight.ok
|
|
82
|
-
? `${agent.displayName} accepted Interf
|
|
81
|
+
? `${agent.displayName} accepted Interf's automated run invocation`
|
|
83
82
|
: preflight.timedOut
|
|
84
83
|
? `${agent.displayName} timed out during preflight`
|
|
85
84
|
: preflight.error ?? `${agent.displayName} could not complete the preflight run`,
|
|
@@ -98,7 +97,7 @@ export const doctorCommand = {
|
|
|
98
97
|
id: "live",
|
|
99
98
|
label: "Live executor preflight",
|
|
100
99
|
status: "skipped",
|
|
101
|
-
message: "Skipped. Run `interf doctor --live` to exercise the real local agent before a compile.",
|
|
100
|
+
message: "Skipped. Run `interf doctor --live` to exercise the real local agent before a check draft, workflow authoring run, test, or compile.",
|
|
102
101
|
});
|
|
103
102
|
}
|
|
104
103
|
const ok = checks.every((check) => check.status !== "fail");
|
|
@@ -115,7 +114,7 @@ export const doctorCommand = {
|
|
|
115
114
|
}
|
|
116
115
|
else {
|
|
117
116
|
console.log();
|
|
118
|
-
console.log(chalk.bold(" Interf
|
|
117
|
+
console.log(chalk.bold(" Interf doctor"));
|
|
119
118
|
console.log();
|
|
120
119
|
for (const check of checks) {
|
|
121
120
|
console.log(` ${iconFor(check.status)} ${check.label}: ${check.message}`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type WorkflowExecutionProfile, type WorkflowExecutor } from "
|
|
1
|
+
import { type WorkflowExecutionProfile, type WorkflowExecutor } from "../../packages/agents/index.js";
|
|
2
2
|
export interface RunAgentOption {
|
|
3
3
|
name: string;
|
|
4
4
|
displayName: string;
|
|
@@ -21,7 +21,7 @@ export declare function promptForTestAgents(): Promise<{
|
|
|
21
21
|
export declare function resolveOrConfigureLocalExecutor(options?: {
|
|
22
22
|
preflight?: boolean;
|
|
23
23
|
executionProfile?: WorkflowExecutionProfile;
|
|
24
|
-
purpose?: "compile" | "test" | "draft";
|
|
24
|
+
purpose?: "compile" | "test" | "draft" | "workflow";
|
|
25
25
|
}): Promise<{
|
|
26
26
|
executor: WorkflowExecutor | null;
|
|
27
27
|
error?: string;
|
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
|
-
import {
|
|
3
|
-
import { detectAgents, ensureAgentAutomatedRunReady, supportsAutomatedRuns } from "../lib/agents.js";
|
|
4
|
-
import { createLocalAgentExecutor, resolveLocalExecutor, } from "../lib/executors.js";
|
|
5
|
-
import { loadUserConfig, saveUserConfig } from "../lib/user-config.js";
|
|
2
|
+
import { constants, agents, executors, userConfig } from "../../packages/agents/index.js";
|
|
6
3
|
const promptedPurposes = new Set();
|
|
7
4
|
function supportedDetectedAgents() {
|
|
8
|
-
return detectAgents().filter((agent) => AGENTS.some((candidate) => candidate.name === agent.name) && supportsAutomatedRuns(agent));
|
|
5
|
+
return agents.detectAgents().filter((agent) => constants.AGENTS.some((candidate) => candidate.name === agent.name) && agents.supportsAutomatedRuns(agent));
|
|
9
6
|
}
|
|
10
7
|
export function resolvedConfiguredAgentName() {
|
|
11
|
-
const current = loadUserConfig();
|
|
8
|
+
const current = userConfig.loadUserConfig();
|
|
12
9
|
if (!current)
|
|
13
10
|
return null;
|
|
14
|
-
const configured = AGENTS.find((agent) => agent.command === current.agentCommand) ??
|
|
15
|
-
AGENTS.find((agent) => agent.name === current.agent) ??
|
|
16
|
-
AGENTS.find((agent) => agent.displayName === current.agent);
|
|
11
|
+
const configured = constants.AGENTS.find((agent) => agent.command === current.agentCommand) ??
|
|
12
|
+
constants.AGENTS.find((agent) => agent.name === current.agent) ??
|
|
13
|
+
constants.AGENTS.find((agent) => agent.displayName === current.agent);
|
|
17
14
|
return configured?.name ?? null;
|
|
18
15
|
}
|
|
19
16
|
function persistSelectedAgent(selectedName) {
|
|
20
17
|
const selected = supportedDetectedAgents().find((agent) => agent.name === selectedName);
|
|
21
18
|
if (!selected)
|
|
22
19
|
return;
|
|
23
|
-
const current = loadUserConfig();
|
|
24
|
-
saveUserConfig({
|
|
20
|
+
const current = userConfig.loadUserConfig();
|
|
21
|
+
userConfig.saveUserConfig({
|
|
25
22
|
agent: selected.name,
|
|
26
23
|
agentCommand: selected.command,
|
|
27
24
|
skillsInstalled: current?.skillsInstalled ?? false,
|
|
28
|
-
...(current?.viewer ? { viewer: current.viewer } : {}),
|
|
29
25
|
initialized: current?.initialized ?? new Date().toISOString(),
|
|
30
26
|
});
|
|
31
27
|
}
|
|
@@ -44,13 +40,13 @@ export function resolveNamedLocalExecutor(agentName, options = {}) {
|
|
|
44
40
|
return { executor: null, error: `Local agent \"${agentName}\" is not detected.` };
|
|
45
41
|
}
|
|
46
42
|
if (options.preflight !== false) {
|
|
47
|
-
const readiness = ensureAgentAutomatedRunReady(agent);
|
|
43
|
+
const readiness = agents.ensureAgentAutomatedRunReady(agent);
|
|
48
44
|
if (!readiness.ok) {
|
|
49
45
|
return { executor: null, error: readiness.error };
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
48
|
return {
|
|
53
|
-
executor: createLocalAgentExecutor(agent, options.executionProfile),
|
|
49
|
+
executor: executors.createLocalAgentExecutor(agent, options.executionProfile),
|
|
54
50
|
};
|
|
55
51
|
}
|
|
56
52
|
export async function promptForTestAgents() {
|
|
@@ -89,7 +85,11 @@ export async function promptForTestAgents() {
|
|
|
89
85
|
return { agents, cancelled: false };
|
|
90
86
|
}
|
|
91
87
|
async function promptForRunAgent(purpose) {
|
|
92
|
-
const purposeLabel = purpose === "draft"
|
|
88
|
+
const purposeLabel = purpose === "draft"
|
|
89
|
+
? "check draft"
|
|
90
|
+
: purpose === "workflow"
|
|
91
|
+
? "workflow authoring"
|
|
92
|
+
: purpose;
|
|
93
93
|
const detected = supportedDetectedAgents();
|
|
94
94
|
if (detected.length === 0)
|
|
95
95
|
return { selected: false, cancelled: false };
|
|
@@ -144,7 +144,7 @@ export async function resolveOrConfigureLocalExecutor(options = {}) {
|
|
|
144
144
|
return { executor: null, error: "No local agent detected." };
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
-
const resolved = resolveLocalExecutor(options);
|
|
147
|
+
const resolved = executors.resolveLocalExecutor(options);
|
|
148
148
|
if (resolved.executor)
|
|
149
149
|
return resolved;
|
|
150
150
|
const needsChoice = typeof resolved.error === "string" &&
|
|
@@ -159,5 +159,5 @@ export async function resolveOrConfigureLocalExecutor(options = {}) {
|
|
|
159
159
|
if (!configured.selected) {
|
|
160
160
|
return resolved;
|
|
161
161
|
}
|
|
162
|
-
return resolveLocalExecutor(options);
|
|
162
|
+
return executors.resolveLocalExecutor(options);
|
|
163
163
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CommandModule } from "yargs";
|
|
2
|
+
import type { SourceDatasetConfig } from "../../packages/project-model/lib/schema.js";
|
|
3
|
+
import { type AgentTestMatrixRow } from "./test-flow.js";
|
|
4
|
+
import { runCompileCommand } from "./compile.js";
|
|
5
|
+
export type CurrentRunTargetStatus = "pass" | "mixed" | "fail" | "missing";
|
|
6
|
+
export declare function currentRunTargetStatus(rows: AgentTestMatrixRow[], target: "raw" | "compiled"): CurrentRunTargetStatus;
|
|
7
|
+
export declare function compileSelectedCompiled(sourcePath: string, compiledConfig: SourceDatasetConfig, deps?: {
|
|
8
|
+
runCompileCommand?: typeof runCompileCommand;
|
|
9
|
+
}): Promise<import("./compile.js").CompileCommandResult | null>;
|
|
10
|
+
export declare const initCommand: CommandModule;
|
|
11
|
+
export declare function runInitCommand(): Promise<void>;
|