@interf/compiler 0.6.1 → 0.6.4
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 +106 -80
- package/builtin-workflows/interf/README.md +5 -5
- package/builtin-workflows/interf/compile/stages/shape/SKILL.md +4 -4
- package/builtin-workflows/interf/improve/SKILL.md +2 -2
- package/builtin-workflows/interf/use/query/SKILL.md +1 -1
- package/builtin-workflows/interf/workflow.json +6 -6
- package/builtin-workflows/interf/workflow.schema.json +1 -1
- 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 +16 -16
- package/dist/{commands → cli/commands}/compile-controller.d.ts +3 -3
- package/dist/{commands → cli/commands}/compile-controller.js +37 -35
- package/dist/{commands → cli/commands}/compile.d.ts +2 -2
- package/dist/{commands → cli/commands}/compile.js +15 -11
- 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 +3 -3
- package/dist/{commands → cli/commands}/create-workflow-wizard.js +64 -37
- package/dist/{commands → cli/commands}/create.d.ts +1 -1
- package/dist/{commands → cli/commands}/create.js +15 -18
- package/dist/{commands → cli/commands}/dataset-selection.d.ts +1 -1
- package/dist/{commands → cli/commands}/default.js +3 -3
- package/dist/{commands → cli/commands}/doctor.js +5 -6
- package/dist/{commands → cli/commands}/executor-flow.d.ts +1 -1
- package/dist/{commands → cli/commands}/executor-flow.js +13 -16
- package/dist/{commands → cli/commands}/init.d.ts +4 -1
- package/dist/{commands → cli/commands}/init.js +162 -77
- package/dist/{commands → cli/commands}/list.js +6 -6
- package/dist/{commands → cli/commands}/reset.js +4 -4
- package/dist/{commands → cli/commands}/source-config-wizard.d.ts +9 -4
- package/dist/{commands → cli/commands}/source-config-wizard.js +168 -94
- 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 +52 -48
- package/dist/cli/commands/test.d.ts +14 -0
- package/dist/{commands → cli/commands}/test.js +40 -24
- 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 -4
- package/dist/lib/agent-args.js +1 -52
- 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 -243
- 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 -77
- 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 -69
- package/dist/lib/agent-shells.js +1 -1021
- 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 -38
- package/dist/lib/builtin-compiled-workflow.js +1 -94
- package/dist/lib/chart-guidance.d.ts +1 -1
- package/dist/lib/chart-guidance.js +1 -8
- package/dist/lib/compiled-compile.d.ts +1 -48
- package/dist/lib/compiled-compile.js +1 -255
- package/dist/lib/compiled-paths.d.ts +1 -40
- package/dist/lib/compiled-paths.js +3 -106
- 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 -2
- package/dist/lib/compiled-reset.js +3 -72
- package/dist/lib/compiled-schema.d.ts +1 -31
- package/dist/lib/compiled-schema.js +1 -141
- package/dist/lib/discovery.d.ts +1 -7
- package/dist/lib/discovery.js +1 -84
- 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/filesystem.d.ts +1 -2
- package/dist/lib/filesystem.js +1 -55
- 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 -114
- package/dist/lib/interf-workflow-package.d.ts +1 -25
- package/dist/lib/interf-workflow-package.js +1 -342
- package/dist/lib/interf.d.ts +1 -5
- package/dist/lib/interf.js +3 -4
- package/dist/lib/local-workflows.d.ts +1 -54
- package/dist/lib/local-workflows.js +1 -422
- package/dist/lib/logger.d.ts +1 -3
- package/dist/lib/logger.js +1 -10
- package/dist/lib/package-root.d.ts +1 -0
- package/dist/lib/package-root.js +1 -0
- package/dist/lib/parse.d.ts +1 -8
- package/dist/lib/parse.js +1 -145
- 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 -269
- package/dist/lib/runtime-contracts.d.ts +1 -2
- package/dist/lib/runtime-contracts.js +1 -48
- 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 -8
- package/dist/lib/runtime-paths.js +1 -26
- package/dist/lib/runtime-prompt.d.ts +1 -2
- package/dist/lib/runtime-prompt.js +1 -48
- package/dist/lib/runtime-reconcile.d.ts +1 -2
- package/dist/lib/runtime-reconcile.js +1 -193
- package/dist/lib/runtime-runs.d.ts +1 -11
- package/dist/lib/runtime-runs.js +1 -262
- 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 -1073
- package/dist/lib/schema.js +6 -542
- 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 -7
- package/dist/lib/state.js +1 -12
- 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/util.d.ts +1 -4
- package/dist/lib/util.js +1 -25
- package/dist/lib/validate-compiled.d.ts +1 -27
- package/dist/lib/validate-compiled.js +1 -241
- package/dist/lib/validate-helpers.d.ts +1 -12
- package/dist/lib/validate-helpers.js +1 -41
- package/dist/lib/validate.d.ts +1 -21
- package/dist/lib/validate.js +1 -249
- package/dist/lib/workflow-authoring.d.ts +1 -26
- package/dist/lib/workflow-authoring.js +1 -119
- package/dist/lib/workflow-definitions.d.ts +1 -78
- package/dist/lib/workflow-definitions.js +1 -203
- package/dist/lib/workflow-edit-session.d.ts +1 -16
- package/dist/lib/workflow-edit-session.js +1 -57
- package/dist/lib/workflow-edit-utils.d.ts +1 -10
- package/dist/lib/workflow-edit-utils.js +1 -39
- 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 -209
- 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 -5
- package/dist/lib/workflow-stage-policy.js +1 -31
- 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 +18 -0
- package/dist/packages/agents/index.js +16 -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/chart-guidance.d.ts +1 -0
- package/dist/packages/agents/lib/chart-guidance.js +8 -0
- package/dist/packages/agents/lib/compiled-bootstrap.d.ts +3 -0
- package/dist/packages/agents/lib/compiled-bootstrap.js +18 -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 +71 -0
- package/dist/packages/agents/lib/shells.js +1023 -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 +4 -0
- package/dist/packages/compiler/compiled-compile.js +4 -0
- package/dist/packages/compiler/compiled-paths.d.ts +40 -0
- package/dist/packages/compiler/compiled-paths.js +106 -0
- package/dist/packages/compiler/compiled-pipeline.d.ts +39 -0
- package/dist/packages/compiler/compiled-pipeline.js +134 -0
- package/dist/packages/compiler/compiled-schema.d.ts +31 -0
- package/dist/packages/compiler/compiled-schema.js +141 -0
- package/dist/packages/compiler/compiled-stage-plan.d.ts +15 -0
- package/dist/packages/compiler/compiled-stage-plan.js +79 -0
- package/dist/packages/compiler/compiled-stage-runner.d.ts +10 -0
- package/dist/packages/compiler/compiled-stage-runner.js +46 -0
- package/dist/packages/compiler/compiled-target.d.ts +11 -0
- package/dist/packages/compiler/compiled-target.js +16 -0
- package/dist/packages/compiler/discovery.d.ts +7 -0
- package/dist/packages/compiler/discovery.js +80 -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 +363 -0
- package/dist/packages/compiler/raw-snapshot.d.ts +49 -0
- package/dist/packages/compiler/raw-snapshot.js +102 -0
- package/dist/packages/compiler/reset.d.ts +2 -0
- package/dist/packages/compiler/reset.js +72 -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 +1 -0
- package/dist/packages/project-model/compiled-paths.js +1 -0
- package/dist/packages/project-model/compiled-raw.d.ts +1 -0
- package/dist/packages/project-model/compiled-raw.js +1 -0
- package/dist/packages/project-model/compiled-reset.d.ts +1 -0
- package/dist/packages/project-model/compiled-reset.js +1 -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 +1 -0
- package/dist/packages/project-model/interf-bootstrap.js +1 -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 +298 -0
- package/dist/packages/shared/file-types.d.ts +1 -0
- package/dist/packages/shared/file-types.js +4 -0
- package/dist/packages/shared/filesystem.d.ts +2 -0
- package/dist/packages/shared/filesystem.js +55 -0
- package/dist/packages/shared/index.d.ts +7 -0
- package/dist/packages/shared/index.js +7 -0
- package/dist/packages/shared/logger.d.ts +3 -0
- package/dist/packages/shared/logger.js +10 -0
- package/dist/packages/shared/naming.d.ts +1 -0
- package/dist/packages/shared/naming.js +8 -0
- package/dist/packages/shared/parse.d.ts +8 -0
- package/dist/packages/shared/parse.js +145 -0
- package/dist/packages/shared/path-guards.d.ts +2 -0
- package/dist/packages/shared/path-guards.js +14 -0
- package/dist/packages/shared/util.d.ts +3 -0
- package/dist/packages/shared/util.js +3 -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 +121 -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 +210 -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/context-interface.d.ts +96 -0
- package/dist/packages/workflow-package/context-interface.js +146 -0
- package/dist/packages/workflow-package/index.d.ts +11 -0
- package/dist/packages/workflow-package/index.js +11 -0
- package/dist/packages/workflow-package/interf-workflow-package.d.ts +25 -0
- package/dist/packages/workflow-package/interf-workflow-package.js +389 -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 +57 -0
- package/dist/packages/workflow-package/local-workflows.js +424 -0
- package/dist/packages/workflow-package/workflow-definitions.d.ts +82 -0
- package/dist/packages/workflow-package/workflow-definitions.js +210 -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 +43 -19
- package/dist/commands/test.d.ts +0 -3
- 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/{commands → cli/commands}/dataset-selection.js +0 -0
- /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,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 "../../packages/shared/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,58 +45,69 @@ 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
|
-
"# Latest Test
|
|
61
|
+
"# Latest Test Results",
|
|
51
62
|
"",
|
|
52
|
-
"| Target |
|
|
63
|
+
"| Target | Questions |",
|
|
53
64
|
"| --- | --- |",
|
|
54
65
|
];
|
|
55
66
|
if (payload.raw) {
|
|
56
|
-
lines.push(`|
|
|
67
|
+
lines.push(`| Source files | \`${payload.raw.passed_cases}/${payload.raw.total_cases}\` |`);
|
|
57
68
|
}
|
|
58
69
|
if (payload.compiled) {
|
|
59
|
-
lines.push(`|
|
|
70
|
+
lines.push(`| Portable context | \`${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) {
|
|
63
74
|
const direction = (payload.summary.pass_rate_delta ?? 0) >= 0 ? "improved" : "decreased";
|
|
64
|
-
lines.push(`
|
|
75
|
+
lines.push(`Question pass rate ${direction} from ${payload.summary.raw_pass_rate}% to ${payload.summary.compiled_pass_rate}%.`, "");
|
|
65
76
|
}
|
|
66
77
|
if (payload.raw) {
|
|
67
|
-
lines.push(`- Latest files
|
|
78
|
+
lines.push(`- Latest source-files run: ${payload.raw.run_path}`);
|
|
68
79
|
}
|
|
69
80
|
if (payload.compiled) {
|
|
70
|
-
lines.push(`- Latest
|
|
81
|
+
lines.push(`- Latest portable-context run: ${payload.compiled.run_path}`);
|
|
71
82
|
}
|
|
72
83
|
return `${lines.join("\n")}\n`;
|
|
73
84
|
}
|
|
74
85
|
export function printSavedTestComparisonState(payload, comparisonRunPath) {
|
|
75
86
|
console.log();
|
|
76
|
-
console.log(chalk.bold(" Latest saved
|
|
87
|
+
console.log(chalk.bold(" Latest saved questions"));
|
|
77
88
|
console.log();
|
|
78
|
-
console.log(" | Target |
|
|
89
|
+
console.log(" | Target | Questions |");
|
|
79
90
|
console.log(" | --- | --- |");
|
|
80
91
|
if (payload.raw) {
|
|
81
|
-
console.log(` |
|
|
92
|
+
console.log(` | Source files | \`${payload.raw.passed_cases}/${payload.raw.total_cases}\` |`);
|
|
82
93
|
}
|
|
83
94
|
if (payload.compiled) {
|
|
84
|
-
console.log(` |
|
|
95
|
+
console.log(` | Portable context | \`${payload.compiled.passed_cases}/${payload.compiled.total_cases}\` |`);
|
|
85
96
|
}
|
|
86
97
|
if (!payload.raw || !payload.compiled) {
|
|
87
98
|
console.log();
|
|
88
99
|
if (!payload.raw) {
|
|
89
|
-
console.log(chalk.dim(" No saved files
|
|
100
|
+
console.log(chalk.dim(" No saved source-files baseline yet."));
|
|
90
101
|
}
|
|
91
102
|
if (!payload.compiled) {
|
|
92
|
-
console.log(chalk.dim(" No saved
|
|
103
|
+
console.log(chalk.dim(" No saved portable-context run yet."));
|
|
93
104
|
}
|
|
94
105
|
}
|
|
95
106
|
if (payload.summary.raw_pass_rate != null && payload.summary.compiled_pass_rate != null) {
|
|
96
107
|
const direction = (payload.summary.pass_rate_delta ?? 0) >= 0 ? "improved" : "decreased";
|
|
97
108
|
const color = (payload.summary.pass_rate_delta ?? 0) >= 0 ? chalk.green : chalk.red;
|
|
98
109
|
console.log();
|
|
99
|
-
console.log(color(`
|
|
110
|
+
console.log(color(` Question pass rate ${direction} from ${payload.summary.raw_pass_rate}% to ${payload.summary.compiled_pass_rate}%.`));
|
|
100
111
|
}
|
|
101
112
|
if (comparisonRunPath) {
|
|
102
113
|
console.log();
|
|
@@ -125,8 +136,8 @@ export function printAgentTestMatrix(rows) {
|
|
|
125
136
|
const includeDelta = includeRaw && includeCompiled;
|
|
126
137
|
const headers = [
|
|
127
138
|
"Agent",
|
|
128
|
-
...(includeRaw ? ["
|
|
129
|
-
...(includeCompiled ? ["
|
|
139
|
+
...(includeRaw ? ["Source files"] : []),
|
|
140
|
+
...(includeCompiled ? ["Context folder"] : []),
|
|
130
141
|
...(includeDelta ? ["Delta"] : []),
|
|
131
142
|
];
|
|
132
143
|
const body = rows.map((row) => [
|
|
@@ -150,8 +161,8 @@ export function printAgentTestFailures(rows) {
|
|
|
150
161
|
for (const row of rows) {
|
|
151
162
|
const failures = [];
|
|
152
163
|
for (const [label, outcome] of [
|
|
153
|
-
["
|
|
154
|
-
["
|
|
164
|
+
["Source files", row.rawOutcome ?? null],
|
|
165
|
+
["Context folder", row.compiledOutcome ?? null],
|
|
155
166
|
]) {
|
|
156
167
|
if (!outcome || outcome.result.ok)
|
|
157
168
|
continue;
|
|
@@ -159,7 +170,7 @@ export function printAgentTestFailures(rows) {
|
|
|
159
170
|
if (caseResult.ok)
|
|
160
171
|
continue;
|
|
161
172
|
const reason = caseResult.checks.find((entry) => !entry.ok)?.detail ?? "failed";
|
|
162
|
-
failures.push(`${label} ·
|
|
173
|
+
failures.push(`${label} · Question ${index + 1}: ${reason}`);
|
|
163
174
|
}
|
|
164
175
|
}
|
|
165
176
|
if (failures.length === 0)
|
|
@@ -193,11 +204,11 @@ export function printSavedTestOutcome(prefix, outcome) {
|
|
|
193
204
|
const status = outcome.result.ok ? chalk.green("PASS") : chalk.red("FAIL");
|
|
194
205
|
console.log(chalk.bold(` ${prefix}`));
|
|
195
206
|
console.log();
|
|
196
|
-
console.log(color(` ${status} ${outcome.result.passedCases}/${outcome.result.totalCases}
|
|
207
|
+
console.log(color(` ${status} ${outcome.result.passedCases}/${outcome.result.totalCases} tests`));
|
|
197
208
|
console.log();
|
|
198
209
|
for (const [index, caseResult] of outcome.result.caseResults.entries()) {
|
|
199
210
|
const caseStatus = caseResult.ok ? chalk.green("PASS") : chalk.red("FAIL");
|
|
200
|
-
console.log(` ${caseStatus}
|
|
211
|
+
console.log(` ${caseStatus} Question ${index + 1}`);
|
|
201
212
|
console.log(chalk.dim(` ${caseResult.question}`));
|
|
202
213
|
const failedChecks = caseResult.checks.filter((entry) => !entry.ok).slice(0, 3);
|
|
203
214
|
for (const failedCheck of failedChecks) {
|
|
@@ -216,12 +227,12 @@ export function printSavedTestComparison(rawOutcome, compiledOutcome, comparison
|
|
|
216
227
|
return;
|
|
217
228
|
console.log();
|
|
218
229
|
if (rawOutcome) {
|
|
219
|
-
printSavedTestOutcome("
|
|
230
|
+
printSavedTestOutcome("Source files", rawOutcome);
|
|
220
231
|
}
|
|
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);
|
|
@@ -230,7 +241,7 @@ export function printSavedTestComparison(rawOutcome, compiledOutcome, comparison
|
|
|
230
241
|
const color = delta >= 0 ? chalk.green : chalk.red;
|
|
231
242
|
const direction = delta >= 0 ? "improved" : "decreased";
|
|
232
243
|
console.log();
|
|
233
|
-
console.log(color(`
|
|
244
|
+
console.log(color(` Question pass rate ${direction} from ${rawQuestions}% to ${compiledQuestions}%.`));
|
|
234
245
|
}
|
|
235
246
|
if (comparisonRunPath) {
|
|
236
247
|
console.log();
|
|
@@ -243,13 +254,13 @@ export function printSavedTestComparisonSummary(rawOutcome, compiledOutcome, com
|
|
|
243
254
|
console.log();
|
|
244
255
|
console.log(chalk.bold(" Comparison"));
|
|
245
256
|
console.log();
|
|
246
|
-
console.log(" | Target |
|
|
257
|
+
console.log(" | Target | Questions |");
|
|
247
258
|
console.log(" | --- | --- |");
|
|
248
259
|
if (rawOutcome) {
|
|
249
|
-
console.log(` |
|
|
260
|
+
console.log(` | Source files | \`${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);
|
|
@@ -258,7 +269,7 @@ export function printSavedTestComparisonSummary(rawOutcome, compiledOutcome, com
|
|
|
258
269
|
const color = delta >= 0 ? chalk.green : chalk.red;
|
|
259
270
|
const direction = delta >= 0 ? "improved" : "decreased";
|
|
260
271
|
console.log();
|
|
261
|
-
console.log(color(`
|
|
272
|
+
console.log(color(` Question pass rate ${direction} from ${rawQuestions}% to ${compiledQuestions}%.`));
|
|
262
273
|
}
|
|
263
274
|
if (comparisonRunPath) {
|
|
264
275
|
console.log();
|
|
@@ -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
|
-
? summarizeSavedTestOutcome("
|
|
275
|
-
:
|
|
276
|
-
? existing?.raw ?? null
|
|
277
|
-
: null;
|
|
282
|
+
? summarizeSavedTestOutcome("Source files", options.rawOutcome)
|
|
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,15 +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 "
|
|
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
6
|
import { chooseCompiledConfigToBuild, findBuiltCompiledPath, } from "./compiled-flow.js";
|
|
7
7
|
import { resolveConfiguredDatasetSelection } from "./dataset-selection.js";
|
|
8
8
|
import { printAgentTestFailures, printAgentTestMatrix, printSavedTestComparisonState, readSavedTestComparison, runSavedRawTest, runSavedCompiledTest, saveTestComparisonRun, } from "./test-flow.js";
|
|
9
9
|
import { listRunAgentOptions, promptForTestAgents, resolveNamedLocalExecutor, resolveOrConfigureLocalExecutor, } from "./executor-flow.js";
|
|
10
10
|
export const testCommand = {
|
|
11
11
|
command: "test",
|
|
12
|
-
describe: "Compare files
|
|
12
|
+
describe: "Compare source files and portable context on saved questions",
|
|
13
13
|
builder: (yargs) => addExecutionProfileOptions(yargs)
|
|
14
14
|
.option("dataset", {
|
|
15
15
|
type: "string",
|
|
@@ -17,7 +17,7 @@ export const testCommand = {
|
|
|
17
17
|
})
|
|
18
18
|
.option("target", {
|
|
19
19
|
choices: ["both", "raw", "compiled"],
|
|
20
|
-
describe: "Test files
|
|
20
|
+
describe: "Test source files, the portable context, or both. Default: both when portable context exists, otherwise source files.",
|
|
21
21
|
})
|
|
22
22
|
.option("keep-sandboxes", {
|
|
23
23
|
type: "boolean",
|
|
@@ -49,18 +49,18 @@ async function promptTestMode(hasBuiltCompiled) {
|
|
|
49
49
|
options: [
|
|
50
50
|
{
|
|
51
51
|
value: "both",
|
|
52
|
-
label: "Compare files
|
|
53
|
-
hint: "Measure whether
|
|
52
|
+
label: "Compare source files and portable context (Recommended)",
|
|
53
|
+
hint: "Measure whether the portable context helps on the saved questions",
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
value: "raw",
|
|
57
|
-
label: "
|
|
57
|
+
label: "Source files only",
|
|
58
58
|
hint: "Measure the current baseline on the dataset files",
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
value: "compiled",
|
|
62
|
-
label: "
|
|
63
|
-
hint: "Measure the current
|
|
62
|
+
label: "Portable context only",
|
|
63
|
+
hint: "Measure the current portable context on the saved questions",
|
|
64
64
|
},
|
|
65
65
|
],
|
|
66
66
|
});
|
|
@@ -190,7 +190,10 @@ export async function runTestCommand(argv = {}) {
|
|
|
190
190
|
sourcePath,
|
|
191
191
|
requestedDatasetName: targetName,
|
|
192
192
|
hintedDatasetConfig,
|
|
193
|
-
}) ?? (targetName === detected.config.name
|
|
193
|
+
}) ?? (targetName === detected.config.name
|
|
194
|
+
? (loadCompiledDatasetConfig(detected.path)
|
|
195
|
+
?? sourceDatasetConfigFromInterfConfig(detected.config))
|
|
196
|
+
: null);
|
|
194
197
|
})()
|
|
195
198
|
: requestedDatasetName || hintedDatasetConfig
|
|
196
199
|
? resolveConfiguredDatasetSelection({
|
|
@@ -200,26 +203,26 @@ export async function runTestCommand(argv = {}) {
|
|
|
200
203
|
})
|
|
201
204
|
: await chooseCompiledConfigToBuild({
|
|
202
205
|
sourcePath,
|
|
203
|
-
selectMessage: "Which
|
|
206
|
+
selectMessage: "Which source folder setup do you want to test?",
|
|
204
207
|
});
|
|
205
208
|
if (selectedCompiled === undefined)
|
|
206
209
|
return false;
|
|
207
210
|
if (!selectedCompiled) {
|
|
208
211
|
process.exitCode = 1;
|
|
209
212
|
if (requestedDatasetName) {
|
|
210
|
-
console.log(chalk.red(`
|
|
211
|
-
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."));
|
|
212
215
|
}
|
|
213
216
|
else {
|
|
214
|
-
console.log(chalk.red(" No
|
|
217
|
+
console.log(chalk.red(" No saved setups are configured for this folder yet."));
|
|
215
218
|
console.log(chalk.dim(" Start with `interf` or `interf init`."));
|
|
216
219
|
}
|
|
217
220
|
return false;
|
|
218
221
|
}
|
|
219
222
|
if (selectedCompiled.checks.length === 0) {
|
|
220
223
|
process.exitCode = 1;
|
|
221
|
-
console.log(chalk.red(`
|
|
222
|
-
console.log(chalk.dim(" Run `interf`, edit this
|
|
224
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have any questions yet.`));
|
|
225
|
+
console.log(chalk.dim(" Run `interf`, edit this setup, and add a few questions first."));
|
|
223
226
|
console.log(chalk.dim(" Then rerun `interf test`."));
|
|
224
227
|
return false;
|
|
225
228
|
}
|
|
@@ -237,16 +240,17 @@ export async function runTestCommand(argv = {}) {
|
|
|
237
240
|
return false;
|
|
238
241
|
if (selectedMode === "compiled" && !hasBuiltCompiled) {
|
|
239
242
|
process.exitCode = 1;
|
|
240
|
-
console.log(chalk.red(`
|
|
243
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have portable context yet.`));
|
|
241
244
|
console.log(chalk.dim(" Run `interf compile` first."));
|
|
242
245
|
return false;
|
|
243
246
|
}
|
|
244
247
|
if (selectedMode === "both" && !hasBuiltCompiled) {
|
|
245
|
-
|
|
248
|
+
process.exitCode = 1;
|
|
249
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have portable context yet, so Interf cannot compare source files and the portable context.`));
|
|
250
|
+
console.log(chalk.dim(" Run `interf compile` first, or rerun with `--target raw`."));
|
|
251
|
+
return false;
|
|
246
252
|
}
|
|
247
|
-
const mode = selectedMode
|
|
248
|
-
? "raw"
|
|
249
|
-
: selectedMode;
|
|
253
|
+
const mode = selectedMode;
|
|
250
254
|
const selectedAgents = await resolveSelectedTestAgents({
|
|
251
255
|
argv,
|
|
252
256
|
executionProfile,
|
|
@@ -264,12 +268,22 @@ export async function runTestCommand(argv = {}) {
|
|
|
264
268
|
})));
|
|
265
269
|
if ((mode === "compiled" || mode === "both") && rows.some((row) => !row.compiledOutcome)) {
|
|
266
270
|
process.exitCode = 1;
|
|
267
|
-
console.log(chalk.red(`
|
|
271
|
+
console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have portable context yet.`));
|
|
268
272
|
console.log(chalk.dim(" Run `interf compile` first."));
|
|
269
273
|
return false;
|
|
270
274
|
}
|
|
271
275
|
printAgentTestMatrix(rows);
|
|
272
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;
|
|
273
287
|
if (rows.length === 1) {
|
|
274
288
|
const row = rows[0];
|
|
275
289
|
const comparisonRunPath = saveTestComparisonRun({
|
|
@@ -291,9 +305,11 @@ export async function runTestCommand(argv = {}) {
|
|
|
291
305
|
printSavedTestComparisonState(latestComparison, comparisonRunPath);
|
|
292
306
|
}
|
|
293
307
|
}
|
|
308
|
+
await onComplete?.(resultSummary);
|
|
294
309
|
return true;
|
|
295
310
|
}
|
|
296
311
|
console.log();
|
|
297
|
-
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);
|
|
298
314
|
return true;
|
|
299
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,4 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { Agent } from "./agent-types.js";
|
|
3
|
-
export declare function buildAgentEnv(agent: Agent, baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
4
|
-
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,52 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export function buildAgentEnv(agent, baseEnv = process.env) {
|
|
3
|
-
const env = { ...baseEnv };
|
|
4
|
-
if (agent.name === "codex") {
|
|
5
|
-
// Codex executes Bash-tool commands inside its own sandbox. Let Codex
|
|
6
|
-
// choose a sandbox-safe default shell instead of inheriting a host-only
|
|
7
|
-
// login shell path such as /bin/zsh.
|
|
8
|
-
delete env.SHELL;
|
|
9
|
-
}
|
|
10
|
-
return env;
|
|
11
|
-
}
|
|
12
|
-
export function buildAgentArgs(agent, prompt, executionProfile = {}) {
|
|
13
|
-
if (agent.name === "claude-code") {
|
|
14
|
-
const args = [
|
|
15
|
-
"-p",
|
|
16
|
-
prompt,
|
|
17
|
-
"--output-format",
|
|
18
|
-
"stream-json",
|
|
19
|
-
"--verbose",
|
|
20
|
-
"--allowedTools",
|
|
21
|
-
"Read,Write,Edit,Bash,Grep,Glob,Agent",
|
|
22
|
-
];
|
|
23
|
-
if (executionProfile.model) {
|
|
24
|
-
args.push("--model", executionProfile.model);
|
|
25
|
-
}
|
|
26
|
-
if (executionProfile.effort) {
|
|
27
|
-
args.push("--effort", executionProfile.effort);
|
|
28
|
-
}
|
|
29
|
-
return args;
|
|
30
|
-
}
|
|
31
|
-
if (agent.name === "codex") {
|
|
32
|
-
const args = [
|
|
33
|
-
"exec",
|
|
34
|
-
"--json",
|
|
35
|
-
"-s",
|
|
36
|
-
CODEX_SANDBOX_MODE,
|
|
37
|
-
"--skip-git-repo-check",
|
|
38
|
-
];
|
|
39
|
-
if (executionProfile.model) {
|
|
40
|
-
args.push("--model", executionProfile.model);
|
|
41
|
-
}
|
|
42
|
-
if (executionProfile.profile) {
|
|
43
|
-
args.push("--profile", executionProfile.profile);
|
|
44
|
-
}
|
|
45
|
-
if (executionProfile.effort) {
|
|
46
|
-
args.push("-c", `model_reasoning_effort=${JSON.stringify(executionProfile.effort)}`);
|
|
47
|
-
}
|
|
48
|
-
args.push(prompt);
|
|
49
|
-
return args;
|
|
50
|
-
}
|
|
51
|
-
throw new Error(`Agent "${agent.displayName}" is not yet supported for automated compile runs.`);
|
|
52
|
-
}
|
|
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";
|