@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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { basename, relative } from "node:path";
|
|
2
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { discoverSourceFiles } from "./discovery.js";
|
|
4
|
+
import { readInterfConfig, resolveSourceFolderPath } from "../project-model/interf-detect.js";
|
|
5
|
+
import { loadCompiledViewSpec, saveCompiledViewSpec, } from "./state-io.js";
|
|
6
|
+
import { rawSnapshotPath } from "./state-paths.js";
|
|
7
|
+
import { compiledRuntimeRoot, workflowPackagePathForCompiled } from "./compiled-paths.js";
|
|
8
|
+
import { readCompiledSchemaFile } from "./compiled-schema.js";
|
|
9
|
+
import { getActiveCompiledWorkflow, resolveRequiredCompiledWorkflowFromConfig } from "../workflow-package/workflow-definitions.js";
|
|
10
|
+
export function ensureCompiledViewSpec(dirPath) {
|
|
11
|
+
const existing = loadCompiledViewSpec(dirPath);
|
|
12
|
+
const now = new Date().toISOString();
|
|
13
|
+
const compiledName = readInterfConfig(dirPath)?.name ?? basename(dirPath);
|
|
14
|
+
const defaults = buildDefaultCompiledViewSpec(dirPath, compiledName, now);
|
|
15
|
+
if (existing) {
|
|
16
|
+
const normalized = normalizeCompiledViewSpec(existing, defaults);
|
|
17
|
+
if (JSON.stringify(normalized) !== JSON.stringify(existing)) {
|
|
18
|
+
saveCompiledViewSpec(dirPath, normalized);
|
|
19
|
+
}
|
|
20
|
+
return normalized;
|
|
21
|
+
}
|
|
22
|
+
saveCompiledViewSpec(dirPath, defaults);
|
|
23
|
+
return defaults;
|
|
24
|
+
}
|
|
25
|
+
export function ensureCompiledRawSnapshot(dirPath) {
|
|
26
|
+
const now = new Date().toISOString();
|
|
27
|
+
const config = readInterfConfig(dirPath);
|
|
28
|
+
const compiledName = config?.name ?? basename(dirPath);
|
|
29
|
+
const sourcePath = resolveSourceFolderPath(dirPath, config);
|
|
30
|
+
const discovery = discoverSourceFiles(sourcePath, dirPath);
|
|
31
|
+
const sampleFiles = [...discovery.sourceFiles]
|
|
32
|
+
.sort((a, b) => a.length - b.length || a.localeCompare(b))
|
|
33
|
+
.slice(0, 10);
|
|
34
|
+
const sourceRoot = relative(dirPath, sourcePath) || ".";
|
|
35
|
+
const artifact = {
|
|
36
|
+
kind: "compiled-raw-snapshot",
|
|
37
|
+
version: 1,
|
|
38
|
+
generated_at: now,
|
|
39
|
+
target_name: compiledName,
|
|
40
|
+
source_root: sourceRoot,
|
|
41
|
+
raw_root: sourceRoot,
|
|
42
|
+
source_total: discovery.totalCount,
|
|
43
|
+
sample_files: sampleFiles,
|
|
44
|
+
};
|
|
45
|
+
mkdirSync(compiledRuntimeRoot(dirPath), { recursive: true });
|
|
46
|
+
writeFileSync(rawSnapshotPath(dirPath), JSON.stringify(artifact, null, 2) + "\n");
|
|
47
|
+
return artifact;
|
|
48
|
+
}
|
|
49
|
+
export function normalizeCompiledViewSpec(existing, defaults) {
|
|
50
|
+
const resolvedDefaults = defaults ?? existing;
|
|
51
|
+
return {
|
|
52
|
+
...resolvedDefaults,
|
|
53
|
+
...existing,
|
|
54
|
+
cards: Array.isArray(existing.cards) && existing.cards.length > 0
|
|
55
|
+
? existing.cards.map((card) => {
|
|
56
|
+
if (card.format !== "fraction" || card.denominator_metric)
|
|
57
|
+
return card;
|
|
58
|
+
const defaultCard = resolvedDefaults.cards.find((candidate) => candidate.id === card.id);
|
|
59
|
+
return {
|
|
60
|
+
...card,
|
|
61
|
+
denominator_metric: defaultCard?.denominator_metric ?? "stage_total",
|
|
62
|
+
};
|
|
63
|
+
})
|
|
64
|
+
: resolvedDefaults.cards,
|
|
65
|
+
sections: Array.isArray(existing.sections) && existing.sections.length > 0 ? existing.sections : resolvedDefaults.sections,
|
|
66
|
+
graph_scope: Array.isArray(existing.graph_scope) && existing.graph_scope.length > 0
|
|
67
|
+
? existing.graph_scope
|
|
68
|
+
: resolvedDefaults.graph_scope,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function buildDefaultCompiledViewSpec(dirPath, compiledName, generatedAt) {
|
|
72
|
+
const config = readInterfConfig(dirPath);
|
|
73
|
+
const workflowId = resolveRequiredCompiledWorkflowFromConfig(config, `.interf/interf.json for ${dirPath}`);
|
|
74
|
+
const workflow = getActiveCompiledWorkflow(dirPath, workflowId);
|
|
75
|
+
const schema = readCompiledSchemaFile(workflowPackagePathForCompiled(dirPath));
|
|
76
|
+
const outputDocumentPaths = (schema?.zones ?? [])
|
|
77
|
+
.filter((zone) => zone.role === "output" && zone.kind !== "runtime")
|
|
78
|
+
.map((zone) => zone.path);
|
|
79
|
+
const defaultNote = (schema?.zones ?? []).find((zone) => zone.role === "output" && zone.kind === "file")?.path ?? null;
|
|
80
|
+
return {
|
|
81
|
+
kind: "compiled-view-spec",
|
|
82
|
+
version: 2,
|
|
83
|
+
generated_at: generatedAt,
|
|
84
|
+
target_name: compiledName,
|
|
85
|
+
health_source: ".interf/runtime/health.json",
|
|
86
|
+
state_source: ".interf/runtime/state.json",
|
|
87
|
+
default_note: defaultNote,
|
|
88
|
+
graph_scope: outputDocumentPaths,
|
|
89
|
+
cards: [
|
|
90
|
+
{ id: "source-total", label: "Source Files", metric: "source_total", format: "number" },
|
|
91
|
+
{ id: "stage-total", label: "Stages", metric: "stage_total", format: "number" },
|
|
92
|
+
{ id: "completed-stages", label: "Completed", metric: "completed_stages", denominator_metric: "stage_total", format: "fraction" },
|
|
93
|
+
],
|
|
94
|
+
sections: [
|
|
95
|
+
{ id: "status", type: "status", title: "Compile Status", path: ".interf/runtime/health.json" },
|
|
96
|
+
{ id: "cards", type: "cards", title: "Key Metrics", path: ".interf/runtime/health.json" },
|
|
97
|
+
...(outputDocumentPaths.length > 0
|
|
98
|
+
? [{ id: "outputs", type: "documents", title: "Output Zones", paths: outputDocumentPaths }]
|
|
99
|
+
: []),
|
|
100
|
+
{ id: "workflow", type: "documents", title: "Workflow Docs", paths: ["workflow/README.md", ...workflow.stages.map((stage) => `workflow/compile/stages/${stage.skillDir}`)] },
|
|
101
|
+
],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { RuntimeStatus, CompiledStage, CompiledState, CompiledHealth, ViewSection, ViewCard, CompiledViewSpec, CompiledRawSnapshot, } from "./lib/schema.js";
|
|
2
|
+
export { statePath, healthPath, viewSpecPath, rawSnapshotPath, } from "./state-paths.js";
|
|
3
|
+
export { loadState, saveState, loadCompiledHealth, saveCompiledHealth, loadCompiledViewSpec, loadCompiledRawSnapshot, saveCompiledViewSpec, initCompiledState, } from "./state-io.js";
|
|
4
|
+
export { refreshCompiledArtifacts, } from "./state-artifacts.js";
|
|
5
|
+
export { computeCompiledHealth, resolveCompiledStatus, resolveCompiledStage, } from "./state-health.js";
|
|
6
|
+
export { ensureCompiledViewSpec, ensureCompiledRawSnapshot, normalizeCompiledViewSpec, } from "./state-view.js";
|
|
7
|
+
export declare function initializeCompiledRuntimeState(dirPath: string): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { statePath, healthPath, viewSpecPath, rawSnapshotPath, } from "./state-paths.js";
|
|
2
|
+
export { loadState, saveState, loadCompiledHealth, saveCompiledHealth, loadCompiledViewSpec, loadCompiledRawSnapshot, saveCompiledViewSpec, initCompiledState, } from "./state-io.js";
|
|
3
|
+
export { refreshCompiledArtifacts, } from "./state-artifacts.js";
|
|
4
|
+
export { computeCompiledHealth, resolveCompiledStatus, resolveCompiledStage, } from "./state-health.js";
|
|
5
|
+
export { ensureCompiledViewSpec, ensureCompiledRawSnapshot, normalizeCompiledViewSpec, } from "./state-view.js";
|
|
6
|
+
import { saveEmptyCompiledInventory, initCompiledState, saveState } from "./state-io.js";
|
|
7
|
+
import { refreshCompiledArtifacts } from "./state-artifacts.js";
|
|
8
|
+
export function initializeCompiledRuntimeState(dirPath) {
|
|
9
|
+
saveState(dirPath, initCompiledState());
|
|
10
|
+
saveEmptyCompiledInventory(dirPath);
|
|
11
|
+
refreshCompiledArtifacts(dirPath, { ensureViewSpec: true });
|
|
12
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CompiledValidationSummary {
|
|
2
|
+
config_present: boolean;
|
|
3
|
+
config_valid: boolean;
|
|
4
|
+
config_type_match: boolean;
|
|
5
|
+
workflow_present: boolean;
|
|
6
|
+
workflow_valid: boolean;
|
|
7
|
+
schema_present: boolean;
|
|
8
|
+
schema_valid: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface CompiledStageValidation {
|
|
11
|
+
ok: boolean;
|
|
12
|
+
required: boolean;
|
|
13
|
+
stage: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
counts: Record<string, number>;
|
|
16
|
+
checks: Record<string, boolean>;
|
|
17
|
+
errors: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface CompiledWorkflowValidation extends CompiledStageValidation {
|
|
20
|
+
stage_results: Record<string, boolean>;
|
|
21
|
+
}
|
|
22
|
+
export declare function validateCompiled(dirPath: string): CompiledValidationSummary;
|
|
23
|
+
export declare function validateCompiledStage(dirPath: string, stageId: string): CompiledStageValidation;
|
|
24
|
+
export declare function validateCompiledWorkflow(dirPath: string): CompiledWorkflowValidation;
|
|
25
|
+
export declare function validateCompiledSummarize(dirPath: string): CompiledStageValidation;
|
|
26
|
+
export declare function validateCompiledStructure(dirPath: string): CompiledStageValidation;
|
|
27
|
+
export declare function validateCompiledCompile(dirPath: string): CompiledWorkflowValidation;
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { discoverSourceFiles } from "./discovery.js";
|
|
4
|
+
import { WORKFLOW_SCHEMA_FILE, compiledZoneAbsolutePath, findCompiledSchemaZone, readCompiledSchemaFile, workflowSchemaExists, } from "./compiled-schema.js";
|
|
5
|
+
import { resolveSourceFolderPath } from "../project-model/interf-detect.js";
|
|
6
|
+
import { compiledInterfConfigPath, workflowPackagePathForCompiled } from "./compiled-paths.js";
|
|
7
|
+
import { readCompiledConfig } from "./validate.js";
|
|
8
|
+
import { loadState } from "./state.js";
|
|
9
|
+
import { validateResolvedStageAcceptance, stageRecordFromState } from "./runtime-acceptance.js";
|
|
10
|
+
import { getActiveCompiledWorkflow, resolveRequiredCompiledWorkflowFromConfig, } from "../workflow-package/workflow-definitions.js";
|
|
11
|
+
import { listFilesRecursive } from "../shared/filesystem.js";
|
|
12
|
+
function workflowSchemaPresent(dirPath) {
|
|
13
|
+
return workflowSchemaExists(join(dirPath, ".interf", "workflow"));
|
|
14
|
+
}
|
|
15
|
+
function countZoneArtifacts(compiledPath, zonePath, kind) {
|
|
16
|
+
const absolutePath = compiledZoneAbsolutePath(compiledPath, { path: zonePath });
|
|
17
|
+
if (!existsSync(absolutePath))
|
|
18
|
+
return 0;
|
|
19
|
+
if (kind === "file")
|
|
20
|
+
return 1;
|
|
21
|
+
return listFilesRecursive(absolutePath).length;
|
|
22
|
+
}
|
|
23
|
+
function readWorkflowContext(dirPath) {
|
|
24
|
+
const config = readCompiledConfig(dirPath);
|
|
25
|
+
const workflowId = config.valid
|
|
26
|
+
? resolveRequiredCompiledWorkflowFromConfig(config.value, `.interf/interf.json for ${dirPath}`)
|
|
27
|
+
: null;
|
|
28
|
+
let workflow = null;
|
|
29
|
+
if (workflowId) {
|
|
30
|
+
try {
|
|
31
|
+
workflow = getActiveCompiledWorkflow(dirPath, workflowId);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
workflow = null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const schema = readCompiledSchemaFile(workflowPackagePathForCompiled(dirPath));
|
|
38
|
+
const state = loadState(dirPath);
|
|
39
|
+
const sourceTotal = config.valid
|
|
40
|
+
? discoverSourceFiles(resolveSourceFolderPath(dirPath, config.value), dirPath).totalCount
|
|
41
|
+
: 0;
|
|
42
|
+
return {
|
|
43
|
+
config,
|
|
44
|
+
workflow,
|
|
45
|
+
schema,
|
|
46
|
+
state,
|
|
47
|
+
sourceTotal,
|
|
48
|
+
workflowId,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function stageRequired(sourceTotal, writeCounts, stageRecordPresent) {
|
|
52
|
+
return sourceTotal > 0 || writeCounts > 0 || stageRecordPresent;
|
|
53
|
+
}
|
|
54
|
+
function zoneWriteCount(compiledPath, schema, stage) {
|
|
55
|
+
const zoneCounts = {};
|
|
56
|
+
let total = 0;
|
|
57
|
+
for (const zoneId of stage.writes) {
|
|
58
|
+
const zone = findCompiledSchemaZone(schema, zoneId);
|
|
59
|
+
if (!zone)
|
|
60
|
+
continue;
|
|
61
|
+
const count = countZoneArtifacts(compiledPath, zone.path, zone.kind);
|
|
62
|
+
zoneCounts[zoneId] = count;
|
|
63
|
+
total += count;
|
|
64
|
+
}
|
|
65
|
+
return { total, zoneCounts };
|
|
66
|
+
}
|
|
67
|
+
function mergeValidationCounts(sourceTotal, stageRecord, zoneCounts) {
|
|
68
|
+
const merged = {
|
|
69
|
+
source_total: sourceTotal,
|
|
70
|
+
...zoneCounts,
|
|
71
|
+
};
|
|
72
|
+
const stageCounts = stageRecord?.counts;
|
|
73
|
+
if (stageCounts && typeof stageCounts === "object" && !Array.isArray(stageCounts)) {
|
|
74
|
+
for (const [key, value] of Object.entries(stageCounts)) {
|
|
75
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
76
|
+
merged[key] = value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return merged;
|
|
81
|
+
}
|
|
82
|
+
export function validateCompiled(dirPath) {
|
|
83
|
+
const context = readWorkflowContext(dirPath);
|
|
84
|
+
return {
|
|
85
|
+
config_present: context.config.present,
|
|
86
|
+
config_valid: context.config.valid,
|
|
87
|
+
config_type_match: context.config.typeMatch(),
|
|
88
|
+
workflow_present: existsSync(join(dirPath, ".interf", "workflow", "workflow.json")),
|
|
89
|
+
workflow_valid: context.workflow !== null,
|
|
90
|
+
schema_present: workflowSchemaPresent(dirPath),
|
|
91
|
+
schema_valid: context.schema !== null,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export function validateCompiledStage(dirPath, stageId) {
|
|
95
|
+
const context = readWorkflowContext(dirPath);
|
|
96
|
+
const checks = {
|
|
97
|
+
config_present: context.config.present,
|
|
98
|
+
config_valid: context.config.valid,
|
|
99
|
+
config_type_match: context.config.typeMatch(),
|
|
100
|
+
workflow_present: existsSync(join(dirPath, ".interf", "workflow", "workflow.json")),
|
|
101
|
+
workflow_valid: context.workflow !== null,
|
|
102
|
+
schema_present: workflowSchemaPresent(dirPath),
|
|
103
|
+
schema_valid: context.schema !== null,
|
|
104
|
+
};
|
|
105
|
+
const errors = [];
|
|
106
|
+
if (!checks.config_present)
|
|
107
|
+
errors.push(`Missing ${compiledInterfConfigPath(dirPath)}.`);
|
|
108
|
+
else if (!checks.config_valid)
|
|
109
|
+
errors.push(`Could not parse ${compiledInterfConfigPath(dirPath)}.`);
|
|
110
|
+
else if (!checks.config_type_match)
|
|
111
|
+
errors.push("Config is not a compiled context.");
|
|
112
|
+
if (!checks.workflow_present)
|
|
113
|
+
errors.push("Missing .interf/workflow/workflow.json.");
|
|
114
|
+
else if (!checks.workflow_valid)
|
|
115
|
+
errors.push("Could not load the active workflow package.");
|
|
116
|
+
if (!checks.schema_present)
|
|
117
|
+
errors.push(`Missing .interf/workflow/${WORKFLOW_SCHEMA_FILE}.`);
|
|
118
|
+
else if (!checks.schema_valid)
|
|
119
|
+
errors.push(`Could not parse .interf/workflow/${WORKFLOW_SCHEMA_FILE}.`);
|
|
120
|
+
const workflowStage = context.workflow?.stages.find((stage) => stage.id === stageId) ?? null;
|
|
121
|
+
checks.stage_present = workflowStage !== null;
|
|
122
|
+
if (!checks.stage_present) {
|
|
123
|
+
errors.push(`Workflow does not declare stage "${stageId}".`);
|
|
124
|
+
}
|
|
125
|
+
const stageRecord = stageRecordFromState(context.state, stageId);
|
|
126
|
+
checks.stage_record_present = stageRecord !== null;
|
|
127
|
+
checks.stage_finished = Boolean(stageRecord?.finished_at);
|
|
128
|
+
checks.stage_succeeded = stageRecord?.status === "succeeded";
|
|
129
|
+
const writeCounts = workflowStage && context.schema
|
|
130
|
+
? zoneWriteCount(dirPath, context.schema, workflowStage)
|
|
131
|
+
: { total: 0, zoneCounts: {} };
|
|
132
|
+
const acceptanceCounts = mergeValidationCounts(context.sourceTotal, stageRecord, writeCounts.zoneCounts);
|
|
133
|
+
const required = stageRequired(context.sourceTotal, writeCounts.total, checks.stage_record_present);
|
|
134
|
+
let acceptanceErrors = [];
|
|
135
|
+
if (workflowStage && context.schema) {
|
|
136
|
+
const acceptanceValidation = validateResolvedStageAcceptance(dirPath, {
|
|
137
|
+
stageId,
|
|
138
|
+
acceptance: workflowStage.acceptance,
|
|
139
|
+
counts: acceptanceCounts,
|
|
140
|
+
});
|
|
141
|
+
checks.acceptance_ok = acceptanceValidation.ok;
|
|
142
|
+
acceptanceErrors = acceptanceValidation.failures;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
checks.acceptance_ok = false;
|
|
146
|
+
}
|
|
147
|
+
if (required && checks.stage_record_present && !checks.stage_finished) {
|
|
148
|
+
errors.push(`Stage "${stageId}" has no finished_at proof in runtime state.`);
|
|
149
|
+
}
|
|
150
|
+
if (required && checks.stage_record_present && !checks.stage_succeeded) {
|
|
151
|
+
errors.push(`Stage "${stageId}" is not marked succeeded in runtime state.`);
|
|
152
|
+
}
|
|
153
|
+
if (required) {
|
|
154
|
+
errors.push(...acceptanceErrors);
|
|
155
|
+
}
|
|
156
|
+
const ok = required ? errors.length === 0 : errors.length === 0;
|
|
157
|
+
const summary = !required
|
|
158
|
+
? `Stage "${stageId}" is not required yet.`
|
|
159
|
+
: ok
|
|
160
|
+
? `Stage "${stageId}" verified.`
|
|
161
|
+
: `Stage "${stageId}" failed — ${errors[0] ?? "acceptance not satisfied."}`;
|
|
162
|
+
return {
|
|
163
|
+
ok,
|
|
164
|
+
required,
|
|
165
|
+
stage: stageId,
|
|
166
|
+
summary,
|
|
167
|
+
counts: {
|
|
168
|
+
...acceptanceCounts,
|
|
169
|
+
write_artifacts: writeCounts.total,
|
|
170
|
+
declared_write_zones: workflowStage?.writes.length ?? 0,
|
|
171
|
+
},
|
|
172
|
+
checks,
|
|
173
|
+
errors,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export function validateCompiledWorkflow(dirPath) {
|
|
177
|
+
const context = readWorkflowContext(dirPath);
|
|
178
|
+
const checks = {
|
|
179
|
+
config_present: context.config.present,
|
|
180
|
+
config_valid: context.config.valid,
|
|
181
|
+
config_type_match: context.config.typeMatch(),
|
|
182
|
+
workflow_present: existsSync(join(dirPath, ".interf", "workflow", "workflow.json")),
|
|
183
|
+
workflow_valid: context.workflow !== null,
|
|
184
|
+
schema_present: workflowSchemaPresent(dirPath),
|
|
185
|
+
schema_valid: context.schema !== null,
|
|
186
|
+
};
|
|
187
|
+
if (!context.workflow) {
|
|
188
|
+
const errors = ["Could not load the active workflow package."];
|
|
189
|
+
return {
|
|
190
|
+
ok: false,
|
|
191
|
+
required: true,
|
|
192
|
+
stage: "workflow",
|
|
193
|
+
summary: `Compiled workflow failed — ${errors[0]}`,
|
|
194
|
+
counts: { source_total: context.sourceTotal, stage_total: 0, completed_stages: 0 },
|
|
195
|
+
checks,
|
|
196
|
+
errors,
|
|
197
|
+
stage_results: {},
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
const stageResults = {};
|
|
201
|
+
const errors = [];
|
|
202
|
+
let completedStages = 0;
|
|
203
|
+
let failedStage = "compiled";
|
|
204
|
+
for (const stage of context.workflow.stages) {
|
|
205
|
+
const validation = validateCompiledStage(dirPath, stage.id);
|
|
206
|
+
stageResults[stage.id] = validation.ok;
|
|
207
|
+
if (validation.ok) {
|
|
208
|
+
completedStages += 1;
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
failedStage = stage.id;
|
|
212
|
+
errors.push(...validation.errors);
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
const ok = errors.length === 0;
|
|
216
|
+
return {
|
|
217
|
+
ok,
|
|
218
|
+
required: context.sourceTotal > 0,
|
|
219
|
+
stage: failedStage,
|
|
220
|
+
summary: ok
|
|
221
|
+
? `Compiled workflow verified — ${completedStages}/${context.workflow.stages.length} stages satisfied.`
|
|
222
|
+
: `Compiled workflow failed — ${errors[0] ?? "stage acceptance not satisfied."}`,
|
|
223
|
+
counts: {
|
|
224
|
+
source_total: context.sourceTotal,
|
|
225
|
+
stage_total: context.workflow.stages.length,
|
|
226
|
+
completed_stages: completedStages,
|
|
227
|
+
},
|
|
228
|
+
checks,
|
|
229
|
+
errors,
|
|
230
|
+
stage_results: stageResults,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
export function validateCompiledSummarize(dirPath) {
|
|
234
|
+
return validateCompiledStage(dirPath, "summarize");
|
|
235
|
+
}
|
|
236
|
+
export function validateCompiledStructure(dirPath) {
|
|
237
|
+
return validateCompiledStage(dirPath, "structure");
|
|
238
|
+
}
|
|
239
|
+
export function validateCompiledCompile(dirPath) {
|
|
240
|
+
return validateCompiledWorkflow(dirPath);
|
|
241
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function asStringArray(value: unknown): string[];
|
|
2
|
+
export declare function asRejectedEntries(value: unknown): Array<{
|
|
3
|
+
path: string;
|
|
4
|
+
reason: string;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function asFileEntries(value: unknown): Array<{
|
|
7
|
+
file: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function isSubset(left: Set<string>, right: Set<string>): boolean;
|
|
10
|
+
export declare function setsEqual(left: Set<string>, right: Set<string>): boolean;
|
|
11
|
+
export declare function setIntersectionSize(left: Set<string>, right: Set<string>): number;
|
|
12
|
+
export declare function dedupeStrings(values: string[]): string[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export function asStringArray(value) {
|
|
2
|
+
if (!Array.isArray(value))
|
|
3
|
+
return [];
|
|
4
|
+
return value.filter((item) => typeof item === "string");
|
|
5
|
+
}
|
|
6
|
+
export function asRejectedEntries(value) {
|
|
7
|
+
if (!Array.isArray(value))
|
|
8
|
+
return [];
|
|
9
|
+
return value.filter((item) => !!item &&
|
|
10
|
+
typeof item === "object" &&
|
|
11
|
+
typeof item.path === "string" &&
|
|
12
|
+
typeof item.reason === "string");
|
|
13
|
+
}
|
|
14
|
+
export function asFileEntries(value) {
|
|
15
|
+
if (!Array.isArray(value))
|
|
16
|
+
return [];
|
|
17
|
+
return value.filter((item) => !!item &&
|
|
18
|
+
typeof item === "object" &&
|
|
19
|
+
typeof item.file === "string");
|
|
20
|
+
}
|
|
21
|
+
export function isSubset(left, right) {
|
|
22
|
+
for (const item of left) {
|
|
23
|
+
if (!right.has(item))
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
export function setsEqual(left, right) {
|
|
29
|
+
return left.size === right.size && isSubset(left, right);
|
|
30
|
+
}
|
|
31
|
+
export function setIntersectionSize(left, right) {
|
|
32
|
+
let count = 0;
|
|
33
|
+
for (const item of left) {
|
|
34
|
+
if (right.has(item))
|
|
35
|
+
count += 1;
|
|
36
|
+
}
|
|
37
|
+
return count;
|
|
38
|
+
}
|
|
39
|
+
export function dedupeStrings(values) {
|
|
40
|
+
return Array.from(new Set(values));
|
|
41
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readInterfConfig } from "../project-model/interf-detect.js";
|
|
2
|
+
export declare function readCompiledConfig(dirPath: string): {
|
|
3
|
+
present: boolean;
|
|
4
|
+
valid: boolean;
|
|
5
|
+
value: ReturnType<typeof readInterfConfig>;
|
|
6
|
+
typeMatch(): boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare function validateSynthFiles(files: string[], options?: {
|
|
9
|
+
requiredFrontmatterKeys?: string[];
|
|
10
|
+
}): {
|
|
11
|
+
invalid_frontmatter: number;
|
|
12
|
+
short_abstracts: number;
|
|
13
|
+
};
|
|
14
|
+
export declare function countBrokenWikilinks(compiledRoot: string, noteIndexRoots: string[], linkScanRoots: string[]): number;
|
|
15
|
+
export declare function asNumber(value: unknown): number;
|
|
16
|
+
export declare function isOutputMarkdownFile(filePath: string): boolean;
|
|
17
|
+
export declare function safeReadText(filePath: string): string | null;
|
|
18
|
+
export declare function extractSynthAbstract(frontmatter: Record<string, unknown>, body: string): string | null;
|
|
19
|
+
export declare function countSynthAbstractWords(frontmatter: Record<string, unknown>, body: string): number;
|
|
20
|
+
export { validateCompiled, validateCompiledStage, validateCompiledWorkflow, validateCompiledSummarize, validateCompiledStructure, validateCompiledCompile, } from "./validate-compiled.js";
|
|
21
|
+
export type { CompiledValidationSummary, CompiledStageValidation, CompiledWorkflowValidation, } from "./validate-compiled.js";
|