@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
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { type TestTargetCandidate, type TestTargetResult } from "
|
|
2
|
-
import type { WorkflowExecutionProfile, WorkflowExecutor } from "
|
|
3
|
-
import type { TestSandboxRetentionMode } from "
|
|
4
|
-
import type { SourceDatasetConfig
|
|
1
|
+
import { type TestTargetCandidate, type TestTargetResult } from "../../packages/testing/test.js";
|
|
2
|
+
import type { WorkflowExecutionProfile, WorkflowExecutor } from "../../packages/agents/lib/executors.js";
|
|
3
|
+
import type { TestSandboxRetentionMode } from "../../packages/testing/test-sandbox.js";
|
|
4
|
+
import type { SourceDatasetConfig } from "../../packages/project-model/lib/schema.js";
|
|
5
|
+
import type { TestRunComparison, TestRunMode } from "../../packages/testing/lib/schema.js";
|
|
5
6
|
export interface SavedTestOutcome {
|
|
6
7
|
runPath: string;
|
|
7
8
|
displayRunPath?: string;
|
|
@@ -15,6 +16,14 @@ export interface AgentTestMatrixRow {
|
|
|
15
16
|
}
|
|
16
17
|
export declare function questionPassRate(outcome: SavedTestOutcome): number;
|
|
17
18
|
export declare function readSavedTestComparison(projectPath: string, datasetName: string): TestRunComparison | null;
|
|
19
|
+
export declare function readCurrentSavedTestComparison(options: {
|
|
20
|
+
projectPath: string;
|
|
21
|
+
datasetName: string;
|
|
22
|
+
checks: SourceDatasetConfig["checks"];
|
|
23
|
+
}): {
|
|
24
|
+
comparison: TestRunComparison | null;
|
|
25
|
+
stale: boolean;
|
|
26
|
+
};
|
|
18
27
|
export declare function printSavedTestComparisonState(payload: TestRunComparison, comparisonRunPath?: string | null): void;
|
|
19
28
|
export declare function printAgentTestMatrix(rows: AgentTestMatrixRow[]): void;
|
|
20
29
|
export declare function printAgentTestFailures(rows: AgentTestMatrixRow[]): void;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
|
-
import { createRawTestTarget, createCompiledTestTarget, runTargetTestsAuto, saveTargetTestRun, } from "
|
|
5
|
-
import { buildTestSpecFromSourceFolderConfig, buildTestSpecFromCompiledDatasetConfig, resolveSourceDatasetPath, } from "
|
|
6
|
-
import { datasetLatestTestStatePath, datasetLatestTestSummaryPath, normalizeDatasetTestRunId, datasetTestRunPath, datasetTestRunsRoot, datasetTestsRoot, } from "
|
|
7
|
-
import { testRootForCompiled } from "
|
|
8
|
-
import { readJsonFileWithSchema } from "
|
|
9
|
-
import { TestRunComparisonSchema } from "
|
|
4
|
+
import { createRawTestTarget, createCompiledTestTarget, runTargetTestsAuto, saveTargetTestRun, } from "../../packages/testing/test.js";
|
|
5
|
+
import { buildTestSpecFromSourceFolderConfig, buildTestSpecFromCompiledDatasetConfig, fingerprintTruthChecks, resolveSourceDatasetPath, } from "../../packages/project-model/source-config.js";
|
|
6
|
+
import { datasetLatestTestStatePath, datasetLatestTestSummaryPath, normalizeDatasetTestRunId, datasetTestRunPath, datasetTestRunsRoot, datasetTestsRoot, } from "../../packages/project-model/project-paths.js";
|
|
7
|
+
import { testRootForCompiled } from "../../packages/project-model/compiled-paths.js";
|
|
8
|
+
import { readJsonFileWithSchema } from "../../lib/parse.js";
|
|
9
|
+
import { TestRunComparisonSchema } from "../../packages/testing/lib/schema.js";
|
|
10
10
|
import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
|
|
11
11
|
import { findBuiltCompiledPath } from "./compiled-flow.js";
|
|
12
12
|
export function questionPassRate(outcome) {
|
|
@@ -45,6 +45,17 @@ function loadLatestComparison(projectPath, datasetName) {
|
|
|
45
45
|
export function readSavedTestComparison(projectPath, datasetName) {
|
|
46
46
|
return loadLatestComparison(projectPath, datasetName);
|
|
47
47
|
}
|
|
48
|
+
export function readCurrentSavedTestComparison(options) {
|
|
49
|
+
const latestComparison = readSavedTestComparison(options.projectPath, options.datasetName);
|
|
50
|
+
if (!latestComparison) {
|
|
51
|
+
return { comparison: null, stale: false };
|
|
52
|
+
}
|
|
53
|
+
const currentFingerprint = fingerprintTruthChecks(options.checks);
|
|
54
|
+
if (!latestComparison.checks_fingerprint || latestComparison.checks_fingerprint !== currentFingerprint) {
|
|
55
|
+
return { comparison: null, stale: true };
|
|
56
|
+
}
|
|
57
|
+
return { comparison: latestComparison, stale: false };
|
|
58
|
+
}
|
|
48
59
|
function renderLatestSummaryMarkdown(payload) {
|
|
49
60
|
const lines = [
|
|
50
61
|
"# Latest Test Result",
|
|
@@ -56,7 +67,7 @@ function renderLatestSummaryMarkdown(payload) {
|
|
|
56
67
|
lines.push(`| Files as-is | \`${payload.raw.passed_cases}/${payload.raw.total_cases}\` |`);
|
|
57
68
|
}
|
|
58
69
|
if (payload.compiled) {
|
|
59
|
-
lines.push(`|
|
|
70
|
+
lines.push(`| Context folder | \`${payload.compiled.passed_cases}/${payload.compiled.total_cases}\` |`);
|
|
60
71
|
}
|
|
61
72
|
lines.push("");
|
|
62
73
|
if (payload.summary.raw_pass_rate != null && payload.summary.compiled_pass_rate != null) {
|
|
@@ -81,7 +92,7 @@ export function printSavedTestComparisonState(payload, comparisonRunPath) {
|
|
|
81
92
|
console.log(` | Files as-is | \`${payload.raw.passed_cases}/${payload.raw.total_cases}\` |`);
|
|
82
93
|
}
|
|
83
94
|
if (payload.compiled) {
|
|
84
|
-
console.log(` |
|
|
95
|
+
console.log(` | Context folder | \`${payload.compiled.passed_cases}/${payload.compiled.total_cases}\` |`);
|
|
85
96
|
}
|
|
86
97
|
if (!payload.raw || !payload.compiled) {
|
|
87
98
|
console.log();
|
|
@@ -89,7 +100,7 @@ export function printSavedTestComparisonState(payload, comparisonRunPath) {
|
|
|
89
100
|
console.log(chalk.dim(" No saved files-as-is baseline yet."));
|
|
90
101
|
}
|
|
91
102
|
if (!payload.compiled) {
|
|
92
|
-
console.log(chalk.dim(" No saved compiled-
|
|
103
|
+
console.log(chalk.dim(" No saved compiled-context run yet."));
|
|
93
104
|
}
|
|
94
105
|
}
|
|
95
106
|
if (payload.summary.raw_pass_rate != null && payload.summary.compiled_pass_rate != null) {
|
|
@@ -126,7 +137,7 @@ export function printAgentTestMatrix(rows) {
|
|
|
126
137
|
const headers = [
|
|
127
138
|
"Agent",
|
|
128
139
|
...(includeRaw ? ["Files as-is"] : []),
|
|
129
|
-
...(includeCompiled ? ["
|
|
140
|
+
...(includeCompiled ? ["Context folder"] : []),
|
|
130
141
|
...(includeDelta ? ["Delta"] : []),
|
|
131
142
|
];
|
|
132
143
|
const body = rows.map((row) => [
|
|
@@ -151,7 +162,7 @@ export function printAgentTestFailures(rows) {
|
|
|
151
162
|
const failures = [];
|
|
152
163
|
for (const [label, outcome] of [
|
|
153
164
|
["Files as-is", row.rawOutcome ?? null],
|
|
154
|
-
["
|
|
165
|
+
["Context folder", row.compiledOutcome ?? null],
|
|
155
166
|
]) {
|
|
156
167
|
if (!outcome || outcome.result.ok)
|
|
157
168
|
continue;
|
|
@@ -221,7 +232,7 @@ export function printSavedTestComparison(rawOutcome, compiledOutcome, comparison
|
|
|
221
232
|
if (compiledOutcome) {
|
|
222
233
|
if (rawOutcome)
|
|
223
234
|
console.log();
|
|
224
|
-
printSavedTestOutcome("
|
|
235
|
+
printSavedTestOutcome("Context folder", compiledOutcome);
|
|
225
236
|
}
|
|
226
237
|
if (rawOutcome && compiledOutcome) {
|
|
227
238
|
const rawQuestions = questionPassRate(rawOutcome);
|
|
@@ -249,7 +260,7 @@ export function printSavedTestComparisonSummary(rawOutcome, compiledOutcome, com
|
|
|
249
260
|
console.log(` | Files as-is | \`${rawOutcome.result.passedCases}/${rawOutcome.result.totalCases}\` |`);
|
|
250
261
|
}
|
|
251
262
|
if (compiledOutcome) {
|
|
252
|
-
console.log(` |
|
|
263
|
+
console.log(` | Context folder | \`${compiledOutcome.result.passedCases}/${compiledOutcome.result.totalCases}\` |`);
|
|
253
264
|
}
|
|
254
265
|
if (rawOutcome && compiledOutcome) {
|
|
255
266
|
const rawQuestions = questionPassRate(rawOutcome);
|
|
@@ -267,19 +278,12 @@ export function printSavedTestComparisonSummary(rawOutcome, compiledOutcome, com
|
|
|
267
278
|
}
|
|
268
279
|
export function saveTestComparisonRun(options) {
|
|
269
280
|
const generatedAt = new Date().toISOString();
|
|
270
|
-
const existing = loadLatestComparison(options.sourcePath, options.compiledName);
|
|
271
|
-
const canReuseExisting = Boolean(existing?.checks_fingerprint) &&
|
|
272
|
-
existing?.checks_fingerprint === options.checksFingerprint;
|
|
273
281
|
const rawSummary = options.rawOutcome
|
|
274
282
|
? summarizeSavedTestOutcome("Files as-is", options.rawOutcome)
|
|
275
|
-
:
|
|
276
|
-
? existing?.raw ?? null
|
|
277
|
-
: null;
|
|
283
|
+
: null;
|
|
278
284
|
const compiledSummary = options.compiledOutcome
|
|
279
|
-
? summarizeSavedTestOutcome("
|
|
280
|
-
:
|
|
281
|
-
? existing?.compiled ?? null
|
|
282
|
-
: null;
|
|
285
|
+
? summarizeSavedTestOutcome("Context folder", options.compiledOutcome)
|
|
286
|
+
: null;
|
|
283
287
|
const effectiveMode = rawSummary && compiledSummary
|
|
284
288
|
? "both"
|
|
285
289
|
: rawSummary
|
|
@@ -300,7 +304,7 @@ export function saveTestComparisonRun(options) {
|
|
|
300
304
|
checks_fingerprint: options.checksFingerprint,
|
|
301
305
|
dataset: {
|
|
302
306
|
name: options.compiledName,
|
|
303
|
-
compiled_path: options.compiledPath
|
|
307
|
+
compiled_path: options.compiledPath,
|
|
304
308
|
},
|
|
305
309
|
raw: rawSummary,
|
|
306
310
|
compiled: compiledSummary,
|
|
@@ -396,7 +400,7 @@ export async function runSavedCompiledTest(options) {
|
|
|
396
400
|
const result = run.results[0];
|
|
397
401
|
if (!result)
|
|
398
402
|
return null;
|
|
399
|
-
const
|
|
403
|
+
const compiledRunPath = saveTargetTestRun(compiledPath, run);
|
|
400
404
|
const datasetRunPath = writeDatasetTargetRun({
|
|
401
405
|
projectPath: options.sourcePath,
|
|
402
406
|
datasetName: options.datasetConfig.name,
|
|
@@ -407,7 +411,7 @@ export async function runSavedCompiledTest(options) {
|
|
|
407
411
|
payload: run,
|
|
408
412
|
});
|
|
409
413
|
return {
|
|
410
|
-
runPath:
|
|
414
|
+
runPath: compiledRunPath,
|
|
411
415
|
displayRunPath: datasetRunPath,
|
|
412
416
|
target,
|
|
413
417
|
result,
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
type TestMode = "raw" | "compiled" | "both";
|
|
5
|
+
export interface TestCommandResult {
|
|
6
|
+
sourcePath: string;
|
|
7
|
+
datasetConfig: SourceDatasetConfig;
|
|
8
|
+
builtCompiledPath: string | null;
|
|
9
|
+
mode: TestMode;
|
|
10
|
+
rows: AgentTestMatrixRow[];
|
|
11
|
+
}
|
|
12
|
+
export declare const testCommand: CommandModule;
|
|
13
|
+
export declare function runTestCommand(argv?: Record<string, unknown>): Promise<boolean>;
|
|
14
|
+
export {};
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import * as p from "@clack/prompts";
|
|
3
|
-
import { detectInterf, resolveSourceControlPath, } from "
|
|
4
|
-
import { fingerprintTruthChecks, sourceDatasetConfigFromInterfConfig, } from "
|
|
5
|
-
import { addExecutionProfileOptions, executionProfileFromArgv, } from "
|
|
6
|
-
import { chooseCompiledConfigToBuild, findBuiltCompiledPath,
|
|
3
|
+
import { detectInterf, resolveSourceControlPath, } from "../../packages/project-model/interf.js";
|
|
4
|
+
import { fingerprintTruthChecks, loadCompiledDatasetConfig, sourceDatasetConfigFromInterfConfig, } from "../../packages/project-model/source-config.js";
|
|
5
|
+
import { addExecutionProfileOptions, executionProfileFromArgv, } from "../../packages/agents/lib/execution-profile.js";
|
|
6
|
+
import { chooseCompiledConfigToBuild, findBuiltCompiledPath, } from "./compiled-flow.js";
|
|
7
|
+
import { resolveConfiguredDatasetSelection } from "./dataset-selection.js";
|
|
7
8
|
import { printAgentTestFailures, printAgentTestMatrix, printSavedTestComparisonState, readSavedTestComparison, runSavedRawTest, runSavedCompiledTest, saveTestComparisonRun, } from "./test-flow.js";
|
|
8
9
|
import { listRunAgentOptions, promptForTestAgents, resolveNamedLocalExecutor, resolveOrConfigureLocalExecutor, } from "./executor-flow.js";
|
|
9
|
-
export function resolveConfiguredDatasetSelection(options) {
|
|
10
|
-
if (options.hintedDatasetConfig &&
|
|
11
|
-
(!options.requestedDatasetName || options.hintedDatasetConfig.name === options.requestedDatasetName)) {
|
|
12
|
-
return options.hintedDatasetConfig;
|
|
13
|
-
}
|
|
14
|
-
if (!options.requestedDatasetName) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
return findSavedCompiledConfig(options.sourcePath, options.requestedDatasetName);
|
|
18
|
-
}
|
|
19
10
|
export const testCommand = {
|
|
20
11
|
command: "test",
|
|
21
|
-
describe: "Compare files as-is and a compiled
|
|
12
|
+
describe: "Compare files as-is and a compiled context on checks",
|
|
22
13
|
builder: (yargs) => addExecutionProfileOptions(yargs)
|
|
23
14
|
.option("dataset", {
|
|
24
15
|
type: "string",
|
|
@@ -26,7 +17,7 @@ export const testCommand = {
|
|
|
26
17
|
})
|
|
27
18
|
.option("target", {
|
|
28
19
|
choices: ["both", "raw", "compiled"],
|
|
29
|
-
describe: "Test files as-is, the compiled
|
|
20
|
+
describe: "Test files as-is, the compiled context, or both. Default: both when a compiled context exists, otherwise files as-is.",
|
|
30
21
|
})
|
|
31
22
|
.option("keep-sandboxes", {
|
|
32
23
|
type: "boolean",
|
|
@@ -58,8 +49,8 @@ async function promptTestMode(hasBuiltCompiled) {
|
|
|
58
49
|
options: [
|
|
59
50
|
{
|
|
60
51
|
value: "both",
|
|
61
|
-
label: "Compare files-as-is and compiled
|
|
62
|
-
hint: "Measure whether compilation helps on the
|
|
52
|
+
label: "Compare files-as-is and compiled context (Recommended)",
|
|
53
|
+
hint: "Measure whether compilation helps on the checks",
|
|
63
54
|
},
|
|
64
55
|
{
|
|
65
56
|
value: "raw",
|
|
@@ -68,8 +59,8 @@ async function promptTestMode(hasBuiltCompiled) {
|
|
|
68
59
|
},
|
|
69
60
|
{
|
|
70
61
|
value: "compiled",
|
|
71
|
-
label: "Compiled
|
|
72
|
-
hint: "Measure the current compiled
|
|
62
|
+
label: "Compiled context only",
|
|
63
|
+
hint: "Measure the current compiled context on the checks",
|
|
73
64
|
},
|
|
74
65
|
],
|
|
75
66
|
});
|
|
@@ -156,17 +147,17 @@ async function resolveSelectedTestAgents(options) {
|
|
|
156
147
|
];
|
|
157
148
|
}
|
|
158
149
|
async function runModeForAgent(options) {
|
|
159
|
-
const
|
|
160
|
-
?
|
|
150
|
+
const rawPromise = options.mode === "raw" || options.mode === "both"
|
|
151
|
+
? runSavedRawTest({
|
|
161
152
|
sourcePath: options.sourcePath,
|
|
162
153
|
datasetConfig: options.datasetConfig,
|
|
163
154
|
executor: options.executor,
|
|
164
155
|
preserveSandboxes: options.preserveSandboxes,
|
|
165
156
|
runSuffix: options.executor.name,
|
|
166
157
|
})
|
|
167
|
-
: null;
|
|
168
|
-
const
|
|
169
|
-
?
|
|
158
|
+
: Promise.resolve(null);
|
|
159
|
+
const compiledPromise = options.mode === "compiled" || options.mode === "both"
|
|
160
|
+
? runSavedCompiledTest({
|
|
170
161
|
sourcePath: options.sourcePath,
|
|
171
162
|
datasetConfig: options.datasetConfig,
|
|
172
163
|
compiledPath: options.builtCompiledPath,
|
|
@@ -174,7 +165,8 @@ async function runModeForAgent(options) {
|
|
|
174
165
|
preserveSandboxes: options.preserveSandboxes,
|
|
175
166
|
runSuffix: options.executor.name,
|
|
176
167
|
})
|
|
177
|
-
: null;
|
|
168
|
+
: Promise.resolve(null);
|
|
169
|
+
const [rawOutcome, compiledOutcome] = await Promise.all([rawPromise, compiledPromise]);
|
|
178
170
|
return {
|
|
179
171
|
agentLabel: options.executor.displayName,
|
|
180
172
|
rawOutcome,
|
|
@@ -198,7 +190,10 @@ export async function runTestCommand(argv = {}) {
|
|
|
198
190
|
sourcePath,
|
|
199
191
|
requestedDatasetName: targetName,
|
|
200
192
|
hintedDatasetConfig,
|
|
201
|
-
}) ?? (targetName === detected.config.name
|
|
193
|
+
}) ?? (targetName === detected.config.name
|
|
194
|
+
? (loadCompiledDatasetConfig(detected.path)
|
|
195
|
+
?? sourceDatasetConfigFromInterfConfig(detected.config))
|
|
196
|
+
: null);
|
|
202
197
|
})()
|
|
203
198
|
: requestedDatasetName || hintedDatasetConfig
|
|
204
199
|
? resolveConfiguredDatasetSelection({
|
|
@@ -208,26 +203,26 @@ export async function runTestCommand(argv = {}) {
|
|
|
208
203
|
})
|
|
209
204
|
: await chooseCompiledConfigToBuild({
|
|
210
205
|
sourcePath,
|
|
211
|
-
selectMessage: "Which
|
|
206
|
+
selectMessage: "Which source folder setup do you want to test?",
|
|
212
207
|
});
|
|
213
208
|
if (selectedCompiled === undefined)
|
|
214
209
|
return false;
|
|
215
210
|
if (!selectedCompiled) {
|
|
216
211
|
process.exitCode = 1;
|
|
217
212
|
if (requestedDatasetName) {
|
|
218
|
-
console.log(chalk.red(`
|
|
219
|
-
console.log(chalk.dim(" Run `interf list` to see the saved
|
|
213
|
+
console.log(chalk.red(` Setup "${requestedDatasetName}" is not set up in this project.`));
|
|
214
|
+
console.log(chalk.dim(" Run `interf list` to see the saved setups."));
|
|
220
215
|
}
|
|
221
216
|
else {
|
|
222
|
-
console.log(chalk.red(" No
|
|
217
|
+
console.log(chalk.red(" No saved setups are configured for this folder yet."));
|
|
223
218
|
console.log(chalk.dim(" Start with `interf` or `interf init`."));
|
|
224
219
|
}
|
|
225
220
|
return false;
|
|
226
221
|
}
|
|
227
222
|
if (selectedCompiled.checks.length === 0) {
|
|
228
223
|
process.exitCode = 1;
|
|
229
|
-
console.log(chalk.red(`
|
|
230
|
-
console.log(chalk.dim(" Run `interf`, edit this
|
|
224
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have any checks yet.`));
|
|
225
|
+
console.log(chalk.dim(" Run `interf`, edit this setup, and add a few checks first."));
|
|
231
226
|
console.log(chalk.dim(" Then rerun `interf test`."));
|
|
232
227
|
return false;
|
|
233
228
|
}
|
|
@@ -245,16 +240,17 @@ export async function runTestCommand(argv = {}) {
|
|
|
245
240
|
return false;
|
|
246
241
|
if (selectedMode === "compiled" && !hasBuiltCompiled) {
|
|
247
242
|
process.exitCode = 1;
|
|
248
|
-
console.log(chalk.red(`
|
|
243
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have a context folder yet.`));
|
|
249
244
|
console.log(chalk.dim(" Run `interf compile` first."));
|
|
250
245
|
return false;
|
|
251
246
|
}
|
|
252
247
|
if (selectedMode === "both" && !hasBuiltCompiled) {
|
|
253
|
-
|
|
248
|
+
process.exitCode = 1;
|
|
249
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have a context folder yet, so Interf cannot compare files-as-is and the context folder.`));
|
|
250
|
+
console.log(chalk.dim(" Run `interf compile` first, or rerun with `--target raw`."));
|
|
251
|
+
return false;
|
|
254
252
|
}
|
|
255
|
-
const mode = selectedMode
|
|
256
|
-
? "raw"
|
|
257
|
-
: selectedMode;
|
|
253
|
+
const mode = selectedMode;
|
|
258
254
|
const selectedAgents = await resolveSelectedTestAgents({
|
|
259
255
|
argv,
|
|
260
256
|
executionProfile,
|
|
@@ -272,12 +268,22 @@ export async function runTestCommand(argv = {}) {
|
|
|
272
268
|
})));
|
|
273
269
|
if ((mode === "compiled" || mode === "both") && rows.some((row) => !row.compiledOutcome)) {
|
|
274
270
|
process.exitCode = 1;
|
|
275
|
-
console.log(chalk.red(`
|
|
271
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have a context folder yet.`));
|
|
276
272
|
console.log(chalk.dim(" Run `interf compile` first."));
|
|
277
273
|
return false;
|
|
278
274
|
}
|
|
279
275
|
printAgentTestMatrix(rows);
|
|
280
276
|
printAgentTestFailures(rows);
|
|
277
|
+
const resultSummary = {
|
|
278
|
+
sourcePath,
|
|
279
|
+
datasetConfig: selectedCompiled,
|
|
280
|
+
builtCompiledPath: builtCompiledPath ?? null,
|
|
281
|
+
mode,
|
|
282
|
+
rows,
|
|
283
|
+
};
|
|
284
|
+
const onComplete = typeof argv.onComplete === "function"
|
|
285
|
+
? argv.onComplete
|
|
286
|
+
: null;
|
|
281
287
|
if (rows.length === 1) {
|
|
282
288
|
const row = rows[0];
|
|
283
289
|
const comparisonRunPath = saveTestComparisonRun({
|
|
@@ -299,9 +305,11 @@ export async function runTestCommand(argv = {}) {
|
|
|
299
305
|
printSavedTestComparisonState(latestComparison, comparisonRunPath);
|
|
300
306
|
}
|
|
301
307
|
}
|
|
308
|
+
await onComplete?.(resultSummary);
|
|
302
309
|
return true;
|
|
303
310
|
}
|
|
304
311
|
console.log();
|
|
305
|
-
console.log(chalk.dim(" Multi-agent compare does not overwrite the
|
|
312
|
+
console.log(chalk.dim(" Multi-agent compare does not overwrite the saved latest single-agent result."));
|
|
313
|
+
await onComplete?.(resultSummary);
|
|
306
314
|
return true;
|
|
307
315
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { detectInterf } from "
|
|
3
|
-
import { validateCompiledCompile, validateCompiledStage, } from "
|
|
4
|
-
import { validateWorkflowPackage } from "
|
|
2
|
+
import { detectInterf } from "../../packages/project-model/interf.js";
|
|
3
|
+
import { validateCompiledCompile, validateCompiledStage, } from "../../packages/compiler/validate.js";
|
|
4
|
+
import { validateWorkflowPackage } from "../../packages/workflow-package/local-workflows.js";
|
|
5
5
|
function normalizeVerifyCheck(value) {
|
|
6
6
|
if (!value)
|
|
7
7
|
return null;
|
|
@@ -55,7 +55,7 @@ export const verifyCommand = {
|
|
|
55
55
|
const detected = detectInterf(process.cwd());
|
|
56
56
|
if (!detected) {
|
|
57
57
|
process.exitCode = 1;
|
|
58
|
-
console.log(chalk.red("Run this from inside a compiled
|
|
58
|
+
console.log(chalk.red("Run this from inside a compiled context."));
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
if (check === "compiled") {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { initCommand } from "./commands/init.js";
|
|
2
|
+
import { createCommand } from "./commands/create.js";
|
|
3
|
+
import { compileCommand } from "./commands/compile.js";
|
|
4
|
+
import { testCommand } from "./commands/test.js";
|
|
5
|
+
import { doctorCommand } from "./commands/doctor.js";
|
|
6
|
+
import { listCommand } from "./commands/list.js";
|
|
7
|
+
import { statusCommand } from "./commands/status.js";
|
|
8
|
+
import { resetCommand } from "./commands/reset.js";
|
|
9
|
+
import { defaultCommand } from "./commands/default.js";
|
|
10
|
+
import { verifyCommand } from "./commands/verify.js";
|
|
11
|
+
export declare function buildCli(argv?: string[]): import("yargs").Argv<{}>;
|
|
12
|
+
export declare function runCli(argv?: string[]): {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
_: (string | number)[];
|
|
15
|
+
$0: string;
|
|
16
|
+
} | Promise<{
|
|
17
|
+
[x: string]: unknown;
|
|
18
|
+
_: (string | number)[];
|
|
19
|
+
$0: string;
|
|
20
|
+
}>;
|
|
21
|
+
export { initCommand, createCommand, compileCommand, testCommand, doctorCommand, listCommand, statusCommand, resetCommand, defaultCommand, verifyCommand, };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import yargs from "yargs";
|
|
2
|
+
import { hideBin } from "yargs/helpers";
|
|
3
|
+
import { initCommand } from "./commands/init.js";
|
|
4
|
+
import { createCommand } from "./commands/create.js";
|
|
5
|
+
import { compileCommand } from "./commands/compile.js";
|
|
6
|
+
import { testCommand } from "./commands/test.js";
|
|
7
|
+
import { doctorCommand } from "./commands/doctor.js";
|
|
8
|
+
import { listCommand } from "./commands/list.js";
|
|
9
|
+
import { statusCommand } from "./commands/status.js";
|
|
10
|
+
import { resetCommand } from "./commands/reset.js";
|
|
11
|
+
import { defaultCommand } from "./commands/default.js";
|
|
12
|
+
import { verifyCommand } from "./commands/verify.js";
|
|
13
|
+
export function buildCli(argv = hideBin(process.argv)) {
|
|
14
|
+
return yargs(argv)
|
|
15
|
+
.scriptName("interf")
|
|
16
|
+
.command(defaultCommand)
|
|
17
|
+
.command(initCommand)
|
|
18
|
+
.command(compileCommand)
|
|
19
|
+
.command(testCommand)
|
|
20
|
+
.command(createCommand)
|
|
21
|
+
.command(doctorCommand)
|
|
22
|
+
.command(listCommand)
|
|
23
|
+
.command(statusCommand)
|
|
24
|
+
.command(verifyCommand)
|
|
25
|
+
.command(resetCommand)
|
|
26
|
+
.strict()
|
|
27
|
+
.help()
|
|
28
|
+
.version();
|
|
29
|
+
}
|
|
30
|
+
export function runCli(argv = hideBin(process.argv)) {
|
|
31
|
+
return buildCli(argv).parse();
|
|
32
|
+
}
|
|
33
|
+
export { initCommand, createCommand, compileCommand, testCommand, doctorCommand, listCommand, statusCommand, resetCommand, defaultCommand, verifyCommand, };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
1
|
+
export * as compiler from "./packages/compiler/index.js";
|
|
2
|
+
export * as workflowPackage from "./packages/workflow-package/index.js";
|
|
3
|
+
export * as workflowAuthoring from "./packages/workflow-authoring/index.js";
|
|
4
|
+
export * as projectModel from "./packages/project-model/index.js";
|
|
5
|
+
export * as agents from "./packages/agents/index.js";
|
|
6
|
+
export * as testing from "./packages/testing/index.js";
|
|
7
|
+
export { createCompiled, } from "./packages/project-model/interf.js";
|
|
8
|
+
export { compileCompiled, runCompiledSummarize, runCompiledCompile, } from "./packages/compiler/workflows.js";
|
|
9
|
+
export { createRawTestTarget, createCompiledTestTarget, listTestSpecs, loadTestSpec, loadTestSpecFromFile, writeTestSpec, listTestTargets, runTargetTests, runTargetTestsWithJudge, runTargetTestsAuto, saveTargetTestRun, } from "./packages/testing/test.js";
|
|
10
|
+
export { computeCompiledHealth, } from "./packages/compiler/state.js";
|
|
11
|
+
export { SOURCE_FOLDER_CONFIG_FILE, loadSourceFolderConfig, buildTestSpecFromSourceFolderConfig, } from "./packages/project-model/source-config.js";
|
|
12
|
+
export { validateCompiledSummarize, validateCompiledCompile, } from "./packages/compiler/validate.js";
|
|
13
|
+
export { InterfConfigSchema, SourceFolderConfigSchema, } from "./packages/project-model/lib/schema.js";
|
|
14
|
+
export { TestSpecSchema, } from "./packages/testing/lib/schema.js";
|
|
15
|
+
export { CompiledHealthSchema, } from "./packages/compiler/lib/schema.js";
|
|
16
|
+
export type { InterfConfig } from "./packages/project-model/lib/schema.js";
|
|
17
|
+
export type { TestCase, TestSpec, TestCheckResult, TestCaseResult, TestTargetResult, TestTargetRun, LoadedTestSpec, TestTargetCandidate, } from "./packages/testing/index.js";
|
|
18
|
+
export type { SourceTruthCheck, SourceDatasetConfig, SourceFolderConfig, } from "./packages/project-model/lib/schema.js";
|
|
19
|
+
export type { TestCaseExpect, } from "./packages/testing/lib/schema.js";
|
|
20
|
+
export type { CompiledHealth, } from "./packages/compiler/lib/schema.js";
|
|
21
|
+
export type { CompiledStageValidation, CompiledWorkflowValidation, } from "./packages/compiler/validate.js";
|
|
22
|
+
export type { CompiledSummarizeResult, CompiledCompileResult, } from "./packages/compiler/workflows.js";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
1
|
+
export * as compiler from "./packages/compiler/index.js";
|
|
2
|
+
export * as workflowPackage from "./packages/workflow-package/index.js";
|
|
3
|
+
export * as workflowAuthoring from "./packages/workflow-authoring/index.js";
|
|
4
|
+
export * as projectModel from "./packages/project-model/index.js";
|
|
5
|
+
export * as agents from "./packages/agents/index.js";
|
|
6
|
+
export * as testing from "./packages/testing/index.js";
|
|
7
|
+
export { createCompiled, } from "./packages/project-model/interf.js";
|
|
8
|
+
export { compileCompiled, runCompiledSummarize, runCompiledCompile, } from "./packages/compiler/workflows.js";
|
|
9
|
+
export { createRawTestTarget, createCompiledTestTarget, listTestSpecs, loadTestSpec, loadTestSpecFromFile, writeTestSpec, listTestTargets, runTargetTests, runTargetTestsWithJudge, runTargetTestsAuto, saveTargetTestRun, } from "./packages/testing/test.js";
|
|
10
|
+
export { computeCompiledHealth, } from "./packages/compiler/state.js";
|
|
11
|
+
export { SOURCE_FOLDER_CONFIG_FILE, loadSourceFolderConfig, buildTestSpecFromSourceFolderConfig, } from "./packages/project-model/source-config.js";
|
|
12
|
+
export { validateCompiledSummarize, validateCompiledCompile, } from "./packages/compiler/validate.js";
|
|
13
|
+
export { InterfConfigSchema, SourceFolderConfigSchema, } from "./packages/project-model/lib/schema.js";
|
|
14
|
+
export { TestSpecSchema, } from "./packages/testing/lib/schema.js";
|
|
15
|
+
export { CompiledHealthSchema, } from "./packages/compiler/lib/schema.js";
|
package/dist/lib/agent-args.d.ts
CHANGED
|
@@ -1,3 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { Agent } from "./agent-types.js";
|
|
3
|
-
export declare function buildAgentArgs(agent: Agent, prompt: string, executionProfile?: WorkflowExecutionProfile): string[];
|
|
1
|
+
export * from "../packages/agents/lib/args.js";
|
package/dist/lib/agent-args.js
CHANGED
|
@@ -1,42 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export function buildAgentArgs(agent, prompt, executionProfile = {}) {
|
|
3
|
-
if (agent.name === "claude-code") {
|
|
4
|
-
const args = [
|
|
5
|
-
"-p",
|
|
6
|
-
prompt,
|
|
7
|
-
"--output-format",
|
|
8
|
-
"stream-json",
|
|
9
|
-
"--verbose",
|
|
10
|
-
"--allowedTools",
|
|
11
|
-
"Read,Write,Edit,Bash,Grep,Glob,Agent",
|
|
12
|
-
];
|
|
13
|
-
if (executionProfile.model) {
|
|
14
|
-
args.push("--model", executionProfile.model);
|
|
15
|
-
}
|
|
16
|
-
if (executionProfile.effort) {
|
|
17
|
-
args.push("--effort", executionProfile.effort);
|
|
18
|
-
}
|
|
19
|
-
return args;
|
|
20
|
-
}
|
|
21
|
-
if (agent.name === "codex") {
|
|
22
|
-
const args = [
|
|
23
|
-
"exec",
|
|
24
|
-
"--json",
|
|
25
|
-
"-s",
|
|
26
|
-
CODEX_SANDBOX_MODE,
|
|
27
|
-
"--skip-git-repo-check",
|
|
28
|
-
];
|
|
29
|
-
if (executionProfile.model) {
|
|
30
|
-
args.push("--model", executionProfile.model);
|
|
31
|
-
}
|
|
32
|
-
if (executionProfile.profile) {
|
|
33
|
-
args.push("--profile", executionProfile.profile);
|
|
34
|
-
}
|
|
35
|
-
if (executionProfile.effort) {
|
|
36
|
-
args.push("-c", `model_reasoning_effort=${JSON.stringify(executionProfile.effort)}`);
|
|
37
|
-
}
|
|
38
|
-
args.push(prompt);
|
|
39
|
-
return args;
|
|
40
|
-
}
|
|
41
|
-
throw new Error(`Agent "${agent.displayName}" is not yet supported for automated compile runs.`);
|
|
42
|
-
}
|
|
1
|
+
export * from "../packages/agents/lib/args.js";
|
|
@@ -1,5 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const SHOW_AGENT_TOOL_EVENTS: boolean;
|
|
3
|
-
export declare const AGENTS: Agent[];
|
|
4
|
-
export declare const CODEX_NOISE_PATTERNS: RegExp[];
|
|
5
|
-
export declare const VISIBLE_STATUS_PREFIXES: string[];
|
|
1
|
+
export * from "../packages/agents/lib/constants.js";
|
|
@@ -1,28 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { homedir } from "node:os";
|
|
3
|
-
export const SHOW_AGENT_TOOL_EVENTS = process.env.INTERF_DEBUG_AGENT_TOOLS === "1";
|
|
4
|
-
export const AGENTS = [
|
|
5
|
-
{
|
|
6
|
-
name: "claude-code",
|
|
7
|
-
displayName: "Claude Code",
|
|
8
|
-
skillsDir: join(homedir(), ".claude", "skills"),
|
|
9
|
-
command: "claude",
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
name: "codex",
|
|
13
|
-
displayName: "Codex",
|
|
14
|
-
skillsDir: join(homedir(), ".codex", "skills"),
|
|
15
|
-
command: "codex",
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: "cursor",
|
|
19
|
-
displayName: "Cursor",
|
|
20
|
-
skillsDir: join(homedir(), ".cursor", "skills"),
|
|
21
|
-
command: "cursor",
|
|
22
|
-
},
|
|
23
|
-
];
|
|
24
|
-
export const CODEX_NOISE_PATTERNS = [
|
|
25
|
-
/codex_core_skills::loader: failed to stat skills entry .*\/(interf-[^ ]+|compiled\/[^ ]+) \(symlink\): No such file or directory/,
|
|
26
|
-
/codex_core::codex: failed to load skill .*\/gstack\/SKILL\.md: invalid description: exceeds maximum length of 1024 characters/,
|
|
27
|
-
];
|
|
28
|
-
export const VISIBLE_STATUS_PREFIXES = ["STATUS:", "DONE:", "BLOCKED:", "ERROR:"];
|
|
1
|
+
export * from "../packages/agents/lib/constants.js";
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function detectAgents(): Agent[];
|
|
3
|
-
export declare function supportsAutomatedRuns(agent: Agent): boolean;
|
|
4
|
-
export declare function resolveAgent(): {
|
|
5
|
-
agent: Agent | null;
|
|
6
|
-
error?: string;
|
|
7
|
-
};
|
|
1
|
+
export * from "../packages/agents/lib/detection.js";
|