@interf/compiler 0.6.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -74
- 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 +12 -12
- package/dist/{commands → cli/commands}/compile-controller.d.ts +3 -3
- package/dist/{commands → cli/commands}/compile-controller.js +36 -34
- 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 +61 -34
- 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 +157 -72
- package/dist/{commands → cli/commands}/list.js +5 -5
- package/dist/{commands → cli/commands}/reset.js +4 -4
- package/dist/{commands → cli/commands}/source-config-wizard.d.ts +8 -3
- package/dist/{commands → cli/commands}/source-config-wizard.js +161 -87
- package/dist/{commands → cli/commands}/status.js +20 -11
- package/dist/{commands → cli/commands}/test-flow.d.ts +13 -4
- package/dist/{commands → cli/commands}/test-flow.js +30 -26
- package/dist/cli/commands/test.d.ts +14 -0
- package/dist/{commands → cli/commands}/test.js +39 -23
- 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/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/execution-profile.d.ts +1 -17
- package/dist/lib/execution-profile.js +1 -84
- package/dist/lib/executors.d.ts +1 -32
- package/dist/lib/executors.js +1 -43
- package/dist/lib/interf-bootstrap.d.ts +1 -3
- package/dist/lib/interf-bootstrap.js +3 -18
- package/dist/lib/interf-detect.d.ts +1 -33
- package/dist/lib/interf-detect.js +3 -176
- package/dist/lib/interf-scaffold.d.ts +1 -2
- package/dist/lib/interf-scaffold.js +3 -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/package-root.d.ts +1 -0
- package/dist/lib/package-root.js +1 -0
- package/dist/lib/project-paths.d.ts +1 -11
- package/dist/lib/project-paths.js +3 -32
- package/dist/lib/runtime-acceptance.d.ts +1 -9
- package/dist/lib/runtime-acceptance.js +1 -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/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 +17 -0
- package/dist/packages/agents/index.js +15 -0
- package/dist/packages/agents/lib/agents.d.ts +6 -0
- package/dist/packages/agents/lib/agents.js +5 -0
- package/dist/packages/agents/lib/args.d.ts +4 -0
- package/dist/packages/agents/lib/args.js +52 -0
- package/dist/packages/agents/lib/constants.d.ts +5 -0
- package/dist/packages/agents/lib/constants.js +28 -0
- package/dist/packages/agents/lib/detection.d.ts +7 -0
- package/dist/packages/agents/lib/detection.js +65 -0
- package/dist/packages/agents/lib/execution-profile.d.ts +17 -0
- package/dist/packages/agents/lib/execution-profile.js +84 -0
- package/dist/packages/agents/lib/execution.d.ts +2 -0
- package/dist/packages/agents/lib/execution.js +243 -0
- package/dist/packages/agents/lib/executors.d.ts +32 -0
- package/dist/packages/agents/lib/executors.js +45 -0
- package/dist/packages/agents/lib/logs.d.ts +2 -0
- package/dist/packages/agents/lib/logs.js +17 -0
- package/dist/packages/agents/lib/preflight.d.ts +7 -0
- package/dist/packages/agents/lib/preflight.js +77 -0
- package/dist/packages/agents/lib/render.d.ts +8 -0
- package/dist/packages/agents/lib/render.js +218 -0
- package/dist/packages/agents/lib/schema.d.ts +8 -0
- package/dist/packages/agents/lib/schema.js +7 -0
- package/dist/packages/agents/lib/shells.d.ts +69 -0
- package/dist/packages/agents/lib/shells.js +1021 -0
- package/dist/packages/agents/lib/status.d.ts +3 -0
- package/dist/packages/agents/lib/status.js +58 -0
- package/dist/packages/agents/lib/types.d.ts +30 -0
- package/dist/packages/agents/lib/types.js +1 -0
- package/dist/{lib → packages/agents/lib}/user-config.d.ts +1 -0
- package/dist/{lib → packages/agents/lib}/user-config.js +3 -2
- package/dist/packages/compiler/compiled-compile.d.ts +48 -0
- package/dist/packages/compiler/compiled-compile.js +256 -0
- package/dist/packages/compiler/compiled-schema.d.ts +31 -0
- package/dist/packages/compiler/compiled-schema.js +141 -0
- package/dist/packages/compiler/index.d.ts +24 -0
- package/dist/packages/compiler/index.js +23 -0
- package/dist/packages/compiler/lib/schema.d.ts +684 -0
- package/dist/packages/compiler/lib/schema.js +361 -0
- package/dist/packages/compiler/runtime-acceptance.d.ts +9 -0
- package/dist/packages/compiler/runtime-acceptance.js +269 -0
- package/dist/packages/compiler/runtime-contracts.d.ts +2 -0
- package/dist/packages/compiler/runtime-contracts.js +48 -0
- package/dist/packages/compiler/runtime-inventory.d.ts +7 -0
- package/dist/packages/compiler/runtime-inventory.js +29 -0
- package/dist/packages/compiler/runtime-paths.d.ts +8 -0
- package/dist/packages/compiler/runtime-paths.js +26 -0
- package/dist/packages/compiler/runtime-prompt.d.ts +2 -0
- package/dist/packages/compiler/runtime-prompt.js +48 -0
- package/dist/packages/compiler/runtime-reconcile.d.ts +2 -0
- package/dist/packages/compiler/runtime-reconcile.js +193 -0
- package/dist/packages/compiler/runtime-runs.d.ts +11 -0
- package/dist/packages/compiler/runtime-runs.js +262 -0
- package/dist/packages/compiler/runtime-types.d.ts +43 -0
- package/dist/packages/compiler/runtime-types.js +1 -0
- package/dist/packages/compiler/runtime.d.ts +6 -0
- package/dist/packages/compiler/runtime.js +5 -0
- package/dist/packages/compiler/state-artifacts.d.ts +8 -0
- package/dist/packages/compiler/state-artifacts.js +13 -0
- package/dist/packages/compiler/state-health.d.ts +4 -0
- package/dist/packages/compiler/state-health.js +132 -0
- package/dist/packages/compiler/state-io.d.ts +10 -0
- package/dist/packages/compiler/state-io.js +76 -0
- package/dist/packages/compiler/state-paths.d.ts +4 -0
- package/dist/packages/compiler/state-paths.js +13 -0
- package/dist/packages/compiler/state-view.d.ts +4 -0
- package/dist/packages/compiler/state-view.js +103 -0
- package/dist/packages/compiler/state.d.ts +7 -0
- package/dist/packages/compiler/state.js +12 -0
- package/dist/packages/compiler/validate-compiled.d.ts +27 -0
- package/dist/packages/compiler/validate-compiled.js +241 -0
- package/dist/packages/compiler/validate-helpers.d.ts +12 -0
- package/dist/packages/compiler/validate-helpers.js +41 -0
- package/dist/packages/compiler/validate.d.ts +21 -0
- package/dist/packages/compiler/validate.js +249 -0
- package/dist/packages/compiler/workflow-primitives.d.ts +2 -0
- package/dist/packages/compiler/workflow-primitives.js +5 -0
- package/dist/packages/compiler/workflows.d.ts +15 -0
- package/dist/packages/compiler/workflows.js +31 -0
- package/dist/packages/project-model/compiled-paths.d.ts +40 -0
- package/dist/packages/project-model/compiled-paths.js +106 -0
- package/dist/packages/project-model/compiled-raw.d.ts +49 -0
- package/dist/packages/project-model/compiled-raw.js +102 -0
- package/dist/packages/project-model/compiled-reset.d.ts +2 -0
- package/dist/packages/project-model/compiled-reset.js +72 -0
- package/dist/packages/project-model/index.d.ts +11 -0
- package/dist/packages/project-model/index.js +10 -0
- package/dist/packages/project-model/interf-bootstrap.d.ts +3 -0
- package/dist/packages/project-model/interf-bootstrap.js +18 -0
- package/dist/packages/project-model/interf-detect.d.ts +33 -0
- package/dist/packages/project-model/interf-detect.js +176 -0
- package/dist/packages/project-model/interf-scaffold.d.ts +2 -0
- package/dist/packages/project-model/interf-scaffold.js +124 -0
- package/dist/packages/project-model/interf.d.ts +5 -0
- package/dist/packages/project-model/interf.js +4 -0
- package/dist/packages/project-model/lib/schema.d.ts +125 -0
- package/dist/packages/project-model/lib/schema.js +62 -0
- package/dist/packages/project-model/project-paths.d.ts +11 -0
- package/dist/packages/project-model/project-paths.js +32 -0
- package/dist/packages/project-model/source-config.d.ts +38 -0
- package/dist/packages/project-model/source-config.js +297 -0
- package/dist/packages/testing/index.d.ts +13 -0
- package/dist/packages/testing/index.js +10 -0
- package/dist/packages/testing/lib/schema.d.ts +261 -0
- package/dist/packages/testing/lib/schema.js +119 -0
- package/dist/packages/testing/test-execution.d.ts +14 -0
- package/dist/packages/testing/test-execution.js +525 -0
- package/dist/packages/testing/test-matrices.d.ts +90 -0
- package/dist/packages/testing/test-matrices.js +96 -0
- package/dist/packages/testing/test-paths.d.ts +12 -0
- package/dist/packages/testing/test-paths.js +59 -0
- package/dist/packages/testing/test-profile-presets.d.ts +57 -0
- package/dist/packages/testing/test-profile-presets.js +50 -0
- package/dist/packages/testing/test-sandbox.d.ts +11 -0
- package/dist/packages/testing/test-sandbox.js +105 -0
- package/dist/packages/testing/test-specs.d.ts +7 -0
- package/dist/packages/testing/test-specs.js +114 -0
- package/dist/packages/testing/test-targets.d.ts +5 -0
- package/dist/packages/testing/test-targets.js +38 -0
- package/dist/packages/testing/test-types.d.ts +16 -0
- package/dist/packages/testing/test-types.js +1 -0
- package/dist/packages/testing/test.d.ts +4 -0
- package/dist/packages/testing/test.js +3 -0
- package/dist/packages/workflow-authoring/index.d.ts +4 -0
- package/dist/packages/workflow-authoring/index.js +4 -0
- package/dist/packages/workflow-authoring/lib/workflow-edit-utils.d.ts +10 -0
- package/dist/packages/workflow-authoring/lib/workflow-edit-utils.js +39 -0
- package/dist/packages/workflow-authoring/workflow-authoring.d.ts +26 -0
- package/dist/packages/workflow-authoring/workflow-authoring.js +120 -0
- package/dist/packages/workflow-authoring/workflow-edit-session.d.ts +16 -0
- package/dist/packages/workflow-authoring/workflow-edit-session.js +57 -0
- package/dist/packages/workflow-authoring/workflow-improvement.d.ts +23 -0
- package/dist/packages/workflow-authoring/workflow-improvement.js +209 -0
- package/dist/packages/workflow-package/builtin-compiled-workflow.d.ts +38 -0
- package/dist/packages/workflow-package/builtin-compiled-workflow.js +94 -0
- package/dist/packages/workflow-package/index.d.ts +9 -0
- package/dist/packages/workflow-package/index.js +9 -0
- package/dist/packages/workflow-package/interf-workflow-package.d.ts +25 -0
- package/dist/packages/workflow-package/interf-workflow-package.js +342 -0
- package/dist/{lib/config.d.ts → packages/workflow-package/lib/package-root.d.ts} +0 -1
- package/dist/packages/workflow-package/lib/package-root.js +6 -0
- package/dist/packages/workflow-package/local-workflows.d.ts +54 -0
- package/dist/packages/workflow-package/local-workflows.js +422 -0
- package/dist/packages/workflow-package/workflow-definitions.d.ts +78 -0
- package/dist/packages/workflow-package/workflow-definitions.js +203 -0
- package/dist/packages/workflow-package/workflow-helpers.d.ts +38 -0
- package/dist/packages/workflow-package/workflow-helpers.js +167 -0
- package/dist/packages/workflow-package/workflow-review-paths.d.ts +10 -0
- package/dist/packages/workflow-package/workflow-review-paths.js +27 -0
- package/dist/packages/workflow-package/workflow-stage-policy.d.ts +5 -0
- package/dist/packages/workflow-package/workflow-stage-policy.js +31 -0
- package/dist/packages/workflow-package/workflow-stage-runner.d.ts +41 -0
- package/dist/packages/workflow-package/workflow-stage-runner.js +109 -0
- package/package.json +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,43 @@
|
|
|
1
|
+
import { type WorkflowExecutor } from "../agents/lib/executors.js";
|
|
2
|
+
import { type WorkflowId, type RuntimeContractType, type RuntimeRun, type RuntimeStage, type RuntimeStageAcceptance, type RuntimeStageContract, type RuntimeStageInstructions } from "./lib/schema.js";
|
|
3
|
+
export type RuntimeRunStatus = "running" | "succeeded" | "failed";
|
|
4
|
+
export type RuntimeStageContractDraft = Omit<RuntimeStageContract, "kind" | "version" | "generated_at" | "run_id" | "target_type" | "target_name" | "workflow" | "stage" | "stage_label" | "contract_type" | "executor">;
|
|
5
|
+
export interface RuntimeStageExecutionOptions {
|
|
6
|
+
executor: WorkflowExecutor;
|
|
7
|
+
compiledPath: string;
|
|
8
|
+
executionPath?: string;
|
|
9
|
+
compiledName: string;
|
|
10
|
+
workflow: WorkflowId;
|
|
11
|
+
workflowSourcePath?: string;
|
|
12
|
+
stage: RuntimeStage;
|
|
13
|
+
stageLabel: string;
|
|
14
|
+
contractType: RuntimeContractType;
|
|
15
|
+
summary: string;
|
|
16
|
+
contract: RuntimeStageContractDraft;
|
|
17
|
+
buildPrompt: (contractPath: string) => string;
|
|
18
|
+
completionCheck?: (() => boolean) | null;
|
|
19
|
+
}
|
|
20
|
+
export interface RuntimeSummarizeExecutionOptions extends RuntimeStageExecutionOptions {
|
|
21
|
+
startingSummaryCount: number;
|
|
22
|
+
targetCount: number;
|
|
23
|
+
}
|
|
24
|
+
export interface RuntimeStageAcceptanceValidation {
|
|
25
|
+
ok: boolean;
|
|
26
|
+
summary: string;
|
|
27
|
+
failures: string[];
|
|
28
|
+
}
|
|
29
|
+
export interface RuntimeStageContractOptions {
|
|
30
|
+
compiledName: string;
|
|
31
|
+
stageId: string;
|
|
32
|
+
stageLabel: string;
|
|
33
|
+
counts?: Record<string, number>;
|
|
34
|
+
extraReadArtifacts?: string[];
|
|
35
|
+
stageReadArtifacts: string[];
|
|
36
|
+
stageWriteArtifacts: string[];
|
|
37
|
+
workflowNotes?: string[];
|
|
38
|
+
localSkillDocs?: string[];
|
|
39
|
+
instructions: RuntimeStageInstructions;
|
|
40
|
+
acceptance?: RuntimeStageAcceptance;
|
|
41
|
+
}
|
|
42
|
+
export interface RuntimeRunPatch extends Partial<Pick<RuntimeRun, "counts" | "summary" | "status" | "error" | "exit_code" | "finished_at">> {
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { RuntimeRunPatch, RuntimeRunStatus, RuntimeStageAcceptanceValidation, RuntimeStageContractDraft, RuntimeStageExecutionOptions, RuntimeSummarizeExecutionOptions, RuntimeStageContractOptions, } from "./runtime-types.js";
|
|
2
|
+
export { archivedStageContractPath, eventLogPath, logsDirPath, promptLogPath, runHistoryPath, runPath, stageContractPath, statusLogPath, } from "./runtime-paths.js";
|
|
3
|
+
export { validateStageContractAcceptance } from "./runtime-acceptance.js";
|
|
4
|
+
export { buildStagePrompt } from "./runtime-prompt.js";
|
|
5
|
+
export { buildRuntimeStageContract, } from "./runtime-contracts.js";
|
|
6
|
+
export { beginRuntimeRun, loadRuntimeRun, markRuntimeRunFailedAfterValidation, markRuntimeRunSucceededAfterValidation, runExecutorStage, runExecutorSummarizeStage, saveRuntimeRun, updateRuntimeRun, writeStageContract, } from "./runtime-runs.js";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { archivedStageContractPath, eventLogPath, logsDirPath, promptLogPath, runHistoryPath, runPath, stageContractPath, statusLogPath, } from "./runtime-paths.js";
|
|
2
|
+
export { validateStageContractAcceptance } from "./runtime-acceptance.js";
|
|
3
|
+
export { buildStagePrompt } from "./runtime-prompt.js";
|
|
4
|
+
export { buildRuntimeStageContract, } from "./runtime-contracts.js";
|
|
5
|
+
export { beginRuntimeRun, loadRuntimeRun, markRuntimeRunFailedAfterValidation, markRuntimeRunSucceededAfterValidation, runExecutorStage, runExecutorSummarizeStage, saveRuntimeRun, updateRuntimeRun, writeStageContract, } from "./runtime-runs.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type CompiledHealth, type CompiledRawSnapshot, type CompiledViewSpec } from "./lib/schema.js";
|
|
2
|
+
export declare function refreshCompiledArtifacts(dirPath: string, options?: {
|
|
3
|
+
ensureViewSpec?: boolean;
|
|
4
|
+
}): {
|
|
5
|
+
health: CompiledHealth;
|
|
6
|
+
viewSpec?: CompiledViewSpec;
|
|
7
|
+
rawSnapshot: CompiledRawSnapshot;
|
|
8
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { saveCompiledHealth, } from "./state-io.js";
|
|
2
|
+
import { computeCompiledHealth, } from "./state-health.js";
|
|
3
|
+
import { ensureCompiledRawSnapshot, ensureCompiledViewSpec, } from "./state-view.js";
|
|
4
|
+
export function refreshCompiledArtifacts(dirPath, options) {
|
|
5
|
+
const health = computeCompiledHealth(dirPath);
|
|
6
|
+
saveCompiledHealth(dirPath, health);
|
|
7
|
+
const rawSnapshot = ensureCompiledRawSnapshot(dirPath);
|
|
8
|
+
let viewSpec;
|
|
9
|
+
if (options?.ensureViewSpec) {
|
|
10
|
+
viewSpec = ensureCompiledViewSpec(dirPath);
|
|
11
|
+
}
|
|
12
|
+
return { health, viewSpec, rawSnapshot };
|
|
13
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type CompiledHealth, type CompiledStage, type RuntimeStatus } from "./lib/schema.js";
|
|
2
|
+
export declare function computeCompiledHealth(dirPath: string): CompiledHealth;
|
|
3
|
+
export declare function resolveCompiledStatus(..._args: unknown[]): RuntimeStatus;
|
|
4
|
+
export declare function resolveCompiledStage(...args: unknown[]): CompiledStage;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { basename, join } from "node:path";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { readInterfConfig, resolveSourceFolderPath, } from "../project-model/interf-detect.js";
|
|
4
|
+
import { discoverSourceFiles } from "../../lib/discovery.js";
|
|
5
|
+
import { loadRuntimeRun } from "./runtime.js";
|
|
6
|
+
import { loadState } from "./state-io.js";
|
|
7
|
+
import { validateCompiled, validateCompiledStage, validateCompiledWorkflow, } from "./validate.js";
|
|
8
|
+
import { readCompiledSchemaFile } from "./compiled-schema.js";
|
|
9
|
+
import { workflowPackagePathForCompiled } from "../project-model/compiled-paths.js";
|
|
10
|
+
import { getActiveCompiledWorkflow, resolveRequiredCompiledWorkflowFromConfig } from "../workflow-package/workflow-definitions.js";
|
|
11
|
+
import { listFilesRecursive } from "../../lib/filesystem.js";
|
|
12
|
+
function countZoneArtifacts(compiledPath, zonePath, kind) {
|
|
13
|
+
const absolutePath = join(compiledPath, zonePath);
|
|
14
|
+
if (!existsSync(absolutePath))
|
|
15
|
+
return 0;
|
|
16
|
+
if (kind === "file")
|
|
17
|
+
return 1;
|
|
18
|
+
return listFilesRecursive(absolutePath).length;
|
|
19
|
+
}
|
|
20
|
+
export function computeCompiledHealth(dirPath) {
|
|
21
|
+
const now = new Date().toISOString();
|
|
22
|
+
const config = readInterfConfig(dirPath);
|
|
23
|
+
const targetName = config?.name ?? basename(dirPath);
|
|
24
|
+
const sourcePath = config ? resolveSourceFolderPath(dirPath, config) : dirPath;
|
|
25
|
+
const sourceTotal = config ? discoverSourceFiles(sourcePath, dirPath).totalCount : 0;
|
|
26
|
+
const state = loadState(dirPath);
|
|
27
|
+
const validation = validateCompiled(dirPath);
|
|
28
|
+
const activeRun = loadRuntimeRun(dirPath);
|
|
29
|
+
const workflowId = config
|
|
30
|
+
? resolveRequiredCompiledWorkflowFromConfig(config, `.interf/interf.json for ${dirPath}`)
|
|
31
|
+
: null;
|
|
32
|
+
let workflow = null;
|
|
33
|
+
if (workflowId) {
|
|
34
|
+
try {
|
|
35
|
+
workflow = getActiveCompiledWorkflow(dirPath, workflowId);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
workflow = null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const stageResults = workflow?.stages.map((stage) => ({
|
|
42
|
+
stage,
|
|
43
|
+
validation: validateCompiledStage(dirPath, stage.id),
|
|
44
|
+
})) ?? [];
|
|
45
|
+
const completedStages = stageResults.filter((entry) => entry.validation.ok).length;
|
|
46
|
+
const firstFailed = stageResults.find((entry) => !entry.validation.ok) ?? null;
|
|
47
|
+
const workflowValidation = validateCompiledWorkflow(dirPath);
|
|
48
|
+
const schema = readCompiledSchemaFile(workflowPackagePathForCompiled(dirPath));
|
|
49
|
+
const zoneMetrics = Object.fromEntries((schema?.zones ?? []).map((zone) => [
|
|
50
|
+
`zone_${zone.id}`,
|
|
51
|
+
countZoneArtifacts(dirPath, zone.path, zone.kind),
|
|
52
|
+
]));
|
|
53
|
+
let status = "idle";
|
|
54
|
+
let stage = "idle";
|
|
55
|
+
let summary = "Idle — no source files have been compiled yet.";
|
|
56
|
+
const errors = workflowValidation.errors.length;
|
|
57
|
+
if (!validation.config_present || !validation.config_valid || !validation.config_type_match || !validation.workflow_valid || !validation.schema_valid) {
|
|
58
|
+
status = "failed";
|
|
59
|
+
stage = "failed";
|
|
60
|
+
summary = workflowValidation.summary;
|
|
61
|
+
}
|
|
62
|
+
else if (activeRun?.status === "running") {
|
|
63
|
+
status = "running";
|
|
64
|
+
stage = activeRun.stage;
|
|
65
|
+
summary = `Running — ${activeRun.stage_label} via ${activeRun.executor.display_name}. ${activeRun.summary}`;
|
|
66
|
+
}
|
|
67
|
+
else if (sourceTotal === 0 && completedStages === 0) {
|
|
68
|
+
status = "idle";
|
|
69
|
+
stage = "idle";
|
|
70
|
+
summary = "Idle — no source files have been compiled yet.";
|
|
71
|
+
}
|
|
72
|
+
else if (activeRun?.status === "failed") {
|
|
73
|
+
status = "failed";
|
|
74
|
+
stage = activeRun.stage;
|
|
75
|
+
summary = activeRun.error ?? activeRun.summary;
|
|
76
|
+
}
|
|
77
|
+
else if (workflowValidation.ok) {
|
|
78
|
+
status = "compiled";
|
|
79
|
+
stage = "compiled";
|
|
80
|
+
summary = `Compiled — ${completedStages}/${workflow?.stages.length ?? 0} workflow stages satisfied.`;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
status = "stale";
|
|
84
|
+
stage = firstFailed?.stage.id ?? "compiled";
|
|
85
|
+
summary = firstFailed?.validation.summary ?? workflowValidation.summary;
|
|
86
|
+
}
|
|
87
|
+
const checks = {
|
|
88
|
+
...validation,
|
|
89
|
+
...(workflow
|
|
90
|
+
? Object.fromEntries(workflow.stages.map((workflowStage) => [
|
|
91
|
+
`stage_${workflowStage.id}_ok`,
|
|
92
|
+
stageResults.find((entry) => entry.stage.id === workflowStage.id)?.validation.ok ?? false,
|
|
93
|
+
]))
|
|
94
|
+
: {}),
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
kind: "compiled-health",
|
|
98
|
+
version: 2,
|
|
99
|
+
generated_at: now,
|
|
100
|
+
target_name: targetName,
|
|
101
|
+
status,
|
|
102
|
+
stage,
|
|
103
|
+
summary,
|
|
104
|
+
metrics: {
|
|
105
|
+
source_total: sourceTotal,
|
|
106
|
+
stage_total: workflow?.stages.length ?? 0,
|
|
107
|
+
completed_stages: completedStages,
|
|
108
|
+
warnings: state?.warning_count ?? 0,
|
|
109
|
+
errors: (state?.error_count ?? 0) + errors,
|
|
110
|
+
...zoneMetrics,
|
|
111
|
+
},
|
|
112
|
+
checks,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export function resolveCompiledStatus(..._args) {
|
|
116
|
+
const state = _args[_args.length - 1];
|
|
117
|
+
if (state?.error_count && state.error_count > 0)
|
|
118
|
+
return "failed";
|
|
119
|
+
if (!state?.stages || Object.keys(state.stages).length === 0)
|
|
120
|
+
return "idle";
|
|
121
|
+
const allSucceeded = Object.values(state.stages).every((stage) => stage.status === "succeeded");
|
|
122
|
+
return allSucceeded ? "compiled" : "stale";
|
|
123
|
+
}
|
|
124
|
+
export function resolveCompiledStage(...args) {
|
|
125
|
+
const state = args[0];
|
|
126
|
+
if (state?.error_count && state.error_count > 0)
|
|
127
|
+
return "failed";
|
|
128
|
+
if (!state?.stages || Object.keys(state.stages).length === 0)
|
|
129
|
+
return "idle";
|
|
130
|
+
const failedStage = Object.entries(state.stages).find(([, stage]) => stage.status !== "succeeded");
|
|
131
|
+
return failedStage?.[0] ?? "compiled";
|
|
132
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type CompiledHealth, type CompiledRawSnapshot, type CompiledState, type CompiledViewSpec } from "./lib/schema.js";
|
|
2
|
+
export declare function loadState<T>(dirPath: string): T | null;
|
|
3
|
+
export declare function saveState<T>(dirPath: string, state: T): void;
|
|
4
|
+
export declare function loadCompiledHealth(dirPath: string): CompiledHealth | null;
|
|
5
|
+
export declare function saveCompiledHealth(dirPath: string, health: CompiledHealth): void;
|
|
6
|
+
export declare function loadCompiledViewSpec(dirPath: string): CompiledViewSpec | null;
|
|
7
|
+
export declare function saveCompiledViewSpec(dirPath: string, viewSpec: CompiledViewSpec): void;
|
|
8
|
+
export declare function loadCompiledRawSnapshot(dirPath: string): CompiledRawSnapshot | null;
|
|
9
|
+
export declare function saveEmptyCompiledInventory(dirPath: string): void;
|
|
10
|
+
export declare function initCompiledState(): CompiledState;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
2
|
+
import { warnInterf } from "../../lib/logger.js";
|
|
3
|
+
import { readJsonFileUnchecked, readJsonFileWithSchema } from "../../lib/parse.js";
|
|
4
|
+
import { CompiledHealthSchema, CompiledRawSnapshotSchema, CompiledStateSchema, CompiledViewSpecSchema, } from "./lib/schema.js";
|
|
5
|
+
import { emptyCompiledInventory, } from "./runtime-inventory.js";
|
|
6
|
+
import { healthPath, rawSnapshotPath, statePath, viewSpecPath } from "./state-paths.js";
|
|
7
|
+
import { compiledRuntimeInventoryPath, compiledRuntimeRoot, } from "../project-model/compiled-paths.js";
|
|
8
|
+
export function loadState(dirPath) {
|
|
9
|
+
const path = statePath(dirPath);
|
|
10
|
+
if (!existsSync(path))
|
|
11
|
+
return null;
|
|
12
|
+
const raw = readJsonFileUnchecked(path, "runtime state");
|
|
13
|
+
if (raw === null)
|
|
14
|
+
return null;
|
|
15
|
+
const parsed = CompiledStateSchema.safeParse(raw);
|
|
16
|
+
if (parsed.success) {
|
|
17
|
+
return parsed.data;
|
|
18
|
+
}
|
|
19
|
+
warnInterf(`Warning: failed to validate runtime state at ${path}: ${parsed.error.issues.map((issue) => issue.message).join("; ")}`);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
export function saveState(dirPath, state) {
|
|
23
|
+
mkdirSync(compiledRuntimeRoot(dirPath), { recursive: true });
|
|
24
|
+
writeFileSync(statePath(dirPath), JSON.stringify(state, null, 2) + "\n");
|
|
25
|
+
}
|
|
26
|
+
export function loadCompiledHealth(dirPath) {
|
|
27
|
+
const path = healthPath(dirPath);
|
|
28
|
+
if (!existsSync(path))
|
|
29
|
+
return null;
|
|
30
|
+
return readJsonFileWithSchema(path, "compiled health", CompiledHealthSchema);
|
|
31
|
+
}
|
|
32
|
+
export function saveCompiledHealth(dirPath, health) {
|
|
33
|
+
mkdirSync(compiledRuntimeRoot(dirPath), { recursive: true });
|
|
34
|
+
writeFileSync(healthPath(dirPath), JSON.stringify(health, null, 2) + "\n");
|
|
35
|
+
}
|
|
36
|
+
export function loadCompiledViewSpec(dirPath) {
|
|
37
|
+
const path = viewSpecPath(dirPath);
|
|
38
|
+
if (!existsSync(path))
|
|
39
|
+
return null;
|
|
40
|
+
return loadViewSpec(path, CompiledViewSpecSchema);
|
|
41
|
+
}
|
|
42
|
+
export function saveCompiledViewSpec(dirPath, viewSpec) {
|
|
43
|
+
mkdirSync(compiledRuntimeRoot(dirPath), { recursive: true });
|
|
44
|
+
writeFileSync(viewSpecPath(dirPath), JSON.stringify(viewSpec, null, 2) + "\n");
|
|
45
|
+
}
|
|
46
|
+
export function loadCompiledRawSnapshot(dirPath) {
|
|
47
|
+
const path = rawSnapshotPath(dirPath);
|
|
48
|
+
if (!existsSync(path))
|
|
49
|
+
return null;
|
|
50
|
+
return readJsonFileWithSchema(path, "compiled raw snapshot", CompiledRawSnapshotSchema);
|
|
51
|
+
}
|
|
52
|
+
export function saveEmptyCompiledInventory(dirPath) {
|
|
53
|
+
mkdirSync(compiledRuntimeRoot(dirPath), { recursive: true });
|
|
54
|
+
writeFileSync(compiledRuntimeInventoryPath(dirPath), JSON.stringify(emptyCompiledInventory(), null, 2) + "\n");
|
|
55
|
+
}
|
|
56
|
+
export function initCompiledState() {
|
|
57
|
+
return {
|
|
58
|
+
version: 2,
|
|
59
|
+
pending: [],
|
|
60
|
+
stages: {},
|
|
61
|
+
last_add: null,
|
|
62
|
+
last_compile: null,
|
|
63
|
+
warning_count: 0,
|
|
64
|
+
error_count: 0,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function loadViewSpec(filePath, schema) {
|
|
68
|
+
try {
|
|
69
|
+
const raw = JSON.parse(readFileSync(filePath, "utf8"));
|
|
70
|
+
const parsed = schema.safeParse(raw);
|
|
71
|
+
return parsed.success ? parsed.data ?? null : null;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { compiledRawSnapshotMetadataPath, compiledRuntimeHealthPath, compiledRuntimeStatePath, compiledRuntimeViewSpecPath, } from "../project-model/compiled-paths.js";
|
|
2
|
+
export function statePath(dirPath) {
|
|
3
|
+
return compiledRuntimeStatePath(dirPath);
|
|
4
|
+
}
|
|
5
|
+
export function healthPath(dirPath) {
|
|
6
|
+
return compiledRuntimeHealthPath(dirPath);
|
|
7
|
+
}
|
|
8
|
+
export function viewSpecPath(dirPath) {
|
|
9
|
+
return compiledRuntimeViewSpecPath(dirPath);
|
|
10
|
+
}
|
|
11
|
+
export function rawSnapshotPath(dirPath) {
|
|
12
|
+
return compiledRawSnapshotMetadataPath(dirPath);
|
|
13
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type CompiledRawSnapshot, type CompiledViewSpec } from "./lib/schema.js";
|
|
2
|
+
export declare function ensureCompiledViewSpec(dirPath: string): CompiledViewSpec;
|
|
3
|
+
export declare function ensureCompiledRawSnapshot(dirPath: string): CompiledRawSnapshot;
|
|
4
|
+
export declare function normalizeCompiledViewSpec(existing: CompiledViewSpec, defaults?: CompiledViewSpec): CompiledViewSpec;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { basename, relative } from "node:path";
|
|
2
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { discoverSourceFiles } from "../../lib/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 "../project-model/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;
|