@interf/compiler 0.22.0 → 0.33.0
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 +268 -0
- package/dist/bin-mcp.d.ts +2 -0
- package/dist/bin-mcp.js +63 -0
- package/dist/bin-runtime.d.ts +2 -0
- package/dist/bin-runtime.js +111 -0
- package/dist/cli/commands/agents.js +4 -4
- package/dist/cli/commands/auth.d.ts +20 -0
- package/dist/cli/commands/auth.js +161 -0
- package/dist/cli/commands/benchmark.d.ts +10 -0
- package/dist/cli/commands/benchmark.js +88 -0
- package/dist/cli/commands/build-plan.js +95 -103
- package/dist/cli/commands/build.d.ts +1 -1
- package/dist/cli/commands/build.js +16 -15
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/graphs.d.ts +2 -0
- package/dist/cli/commands/graphs.js +199 -0
- package/dist/cli/commands/login.js +4 -6
- package/dist/cli/commands/logout.js +1 -1
- package/dist/cli/commands/mcp.d.ts +3 -2
- package/dist/cli/commands/mcp.js +721 -204
- package/dist/cli/commands/project.d.ts +2 -0
- package/dist/cli/commands/project.js +202 -0
- package/dist/cli/commands/reset.d.ts +1 -1
- package/dist/cli/commands/reset.js +10 -10
- package/dist/cli/commands/runs.js +52 -26
- package/dist/cli/commands/runtime.d.ts +24 -0
- package/dist/cli/commands/runtime.js +373 -0
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.js +33 -22
- package/dist/cli/commands/traces.d.ts +2 -0
- package/dist/cli/commands/traces.js +125 -0
- package/dist/cli/commands/wizard.js +155 -150
- package/dist/cli/index.d.ts +7 -4
- package/dist/cli/index.js +13 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/packages/build-plans/authoring/brief.d.ts +517 -0
- package/dist/packages/build-plans/authoring/brief.js +89 -0
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +10 -10
- package/dist/packages/build-plans/authoring/build-plan-authoring.js +66 -26
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +1 -1
- package/dist/packages/build-plans/authoring/build-plan-edit-session.js +8 -2
- package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +39 -42
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
- package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
- package/dist/packages/build-plans/build-plan-resolution.js +3 -3
- package/dist/packages/build-plans/index.d.ts +1 -1
- package/dist/packages/build-plans/index.js +1 -1
- package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -12
- package/dist/packages/build-plans/package/build-plan-definitions.js +40 -39
- package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
- package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
- package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
- package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
- package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +4 -4
- package/dist/packages/build-plans/package/build-plan-stage-runner.js +22 -11
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +5 -6
- package/dist/packages/build-plans/package/builtin-build-plan.js +7 -8
- package/dist/packages/build-plans/package/context-interface.d.ts +11 -9
- package/dist/packages/build-plans/package/context-interface.js +14 -33
- package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
- package/dist/packages/build-plans/package/interf-build-plan-package.js +56 -52
- package/dist/packages/build-plans/package/local-build-plans.d.ts +12 -10
- package/dist/packages/build-plans/package/local-build-plans.js +56 -31
- package/dist/packages/build-plans/package/user-build-plans.js +1 -1
- package/dist/packages/contracts/index.d.ts +4 -2
- package/dist/packages/contracts/index.js +2 -1
- package/dist/packages/contracts/lib/project-paths.d.ts +137 -0
- package/dist/packages/contracts/lib/project-paths.js +211 -0
- package/dist/packages/contracts/lib/project-schema.d.ts +160 -0
- package/dist/packages/contracts/lib/project-schema.js +113 -0
- package/dist/packages/contracts/lib/schema.d.ts +739 -80
- package/dist/packages/contracts/lib/schema.js +410 -75
- package/dist/packages/contracts/utils/parse.js +67 -0
- package/dist/packages/projects/index.d.ts +6 -0
- package/dist/packages/{project → projects}/index.js +0 -3
- package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
- package/dist/packages/{project → projects}/interf-detect.js +56 -50
- package/dist/packages/projects/interf.d.ts +2 -0
- package/dist/packages/projects/interf.js +1 -0
- package/dist/packages/projects/lib/schema.d.ts +79 -0
- package/dist/packages/projects/lib/schema.js +89 -0
- package/dist/packages/projects/source-config.d.ts +58 -0
- package/dist/packages/projects/source-config.js +352 -0
- package/dist/packages/projects/source-folders.d.ts +11 -0
- package/dist/packages/{project → projects}/source-folders.js +26 -26
- package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
- package/dist/packages/{engine → runtime}/action-planner.js +20 -22
- package/dist/packages/runtime/action-values.d.ts +1 -0
- package/dist/packages/runtime/action-values.js +1 -0
- package/dist/packages/runtime/actions/errors.d.ts +2 -0
- package/dist/packages/runtime/actions/errors.js +12 -0
- package/dist/packages/runtime/actions/fields.d.ts +82 -0
- package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
- package/dist/packages/runtime/actions/form-builders.js +619 -0
- package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
- package/dist/packages/runtime/actions/form-validators.js +128 -0
- package/dist/packages/runtime/actions/helpers.d.ts +11 -0
- package/dist/packages/runtime/actions/helpers.js +80 -0
- package/dist/packages/runtime/actions/index.d.ts +8 -0
- package/dist/packages/runtime/actions/index.js +11 -0
- package/dist/packages/runtime/actions/registry.d.ts +64 -0
- package/dist/packages/runtime/actions/registry.js +62 -0
- package/dist/packages/runtime/actions/requests.d.ts +45 -0
- package/dist/packages/runtime/actions/requests.js +158 -0
- package/dist/packages/runtime/actions/schemas.d.ts +154 -0
- package/dist/packages/runtime/actions/schemas.js +36 -0
- package/dist/packages/runtime/agent-handoff.d.ts +11 -0
- package/dist/packages/runtime/agent-handoff.js +101 -0
- package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
- package/dist/packages/{engine → runtime}/agents/index.js +1 -2
- package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
- package/dist/packages/runtime/agents/lib/args.js +24 -0
- package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
- package/dist/packages/runtime/agents/lib/constants.js +13 -0
- package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
- package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
- package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
- package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
- package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +8 -14
- package/dist/packages/{engine → runtime}/agents/lib/execution.js +14 -4
- package/dist/packages/{engine → runtime}/agents/lib/preflight.js +15 -13
- package/dist/packages/{engine → runtime}/agents/lib/render.js +4 -4
- package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
- package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
- package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
- package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
- package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
- package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
- package/dist/packages/runtime/agents/lib/shell-templates.js +452 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
- package/dist/packages/runtime/agents/lib/shells.d.ts +63 -0
- package/dist/packages/runtime/agents/lib/shells.js +383 -0
- package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
- package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
- package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
- package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
- package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
- package/dist/packages/runtime/agents/providers/codex.js +64 -0
- package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/cursor.js +24 -0
- package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/index.js +31 -0
- package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
- package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
- package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
- package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
- package/dist/packages/{engine → runtime}/agents/role-executors.js +7 -6
- package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
- package/dist/packages/runtime/auth/account-context.d.ts +52 -0
- package/dist/packages/runtime/auth/account-context.js +68 -0
- package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
- package/dist/packages/runtime/auth/auth-flow.js +189 -0
- package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
- package/dist/packages/runtime/auth/jwt-validator.js +86 -0
- package/dist/packages/runtime/auth/keychain.d.ts +35 -0
- package/dist/packages/runtime/auth/keychain.js +85 -0
- package/dist/packages/runtime/auth/session-store.d.ts +38 -0
- package/dist/packages/runtime/auth/session-store.js +88 -0
- package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
- package/dist/packages/runtime/auth/workos-client.js +87 -0
- package/dist/packages/runtime/benchmark-question-draft.d.ts +20 -0
- package/dist/packages/runtime/benchmark-question-draft.js +124 -0
- package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
- package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
- package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +5 -5
- package/dist/packages/{engine → runtime}/build/artifact-status.js +25 -23
- package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
- package/dist/packages/runtime/build/atomic-fs.js +95 -0
- package/dist/packages/runtime/build/billing-events.d.ts +78 -0
- package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
- package/dist/packages/runtime/build/build-evidence.d.ts +15 -0
- package/dist/packages/runtime/build/build-evidence.js +173 -0
- package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
- package/dist/packages/runtime/build/build-pipeline.js +304 -0
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
- package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
- package/dist/packages/runtime/build/build-plan-runs.js +31 -0
- package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
- package/dist/packages/{engine → runtime}/build/build-stage-plan.js +28 -29
- package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
- package/dist/packages/runtime/build/build-stage-runner.js +165 -0
- package/dist/packages/{engine → runtime}/build/build-target.d.ts +4 -4
- package/dist/packages/runtime/build/build-target.js +16 -0
- package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
- package/dist/packages/runtime/build/check-evaluator.js +575 -0
- package/dist/packages/runtime/build/context-graph-paths.d.ts +51 -0
- package/dist/packages/runtime/build/context-graph-paths.js +133 -0
- package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
- package/dist/packages/runtime/build/context-graph-schema.js +39 -0
- package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
- package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
- package/dist/packages/{engine → runtime}/build/index.d.ts +5 -3
- package/dist/packages/{engine → runtime}/build/index.js +5 -3
- package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +221 -88
- package/dist/packages/{engine → runtime}/build/lib/schema.js +61 -41
- package/dist/packages/runtime/build/reset.d.ts +2 -0
- package/dist/packages/runtime/build/reset.js +62 -0
- package/dist/packages/{engine → runtime}/build/runtime-contracts.js +5 -5
- package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
- package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
- package/dist/packages/{engine → runtime}/build/runtime-paths.js +6 -6
- package/dist/packages/{engine → runtime}/build/runtime-prompt.js +7 -6
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
- package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
- package/dist/packages/runtime/build/runtime-runs.js +265 -0
- package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +6 -6
- package/dist/packages/runtime/build/runtime-types.js +1 -0
- package/dist/packages/runtime/build/runtime.d.ts +6 -0
- package/dist/packages/runtime/build/runtime.js +5 -0
- package/dist/packages/runtime/build/source-files.d.ts +58 -0
- package/dist/packages/runtime/build/source-files.js +184 -0
- package/dist/packages/runtime/build/source-inventory.d.ts +27 -0
- package/dist/packages/runtime/build/source-inventory.js +273 -0
- package/dist/packages/runtime/build/source-manifest.d.ts +52 -0
- package/dist/packages/runtime/build/source-manifest.js +192 -0
- package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
- package/dist/packages/runtime/build/stage-evidence.js +317 -0
- package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
- package/dist/packages/runtime/build/stage-reuse.js +142 -0
- package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
- package/dist/packages/runtime/build/state-artifacts.js +14 -0
- package/dist/packages/runtime/build/state-health.d.ts +4 -0
- package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
- package/dist/packages/runtime/build/state-io.d.ts +12 -0
- package/dist/packages/runtime/build/state-io.js +119 -0
- package/dist/packages/{engine → runtime}/build/state-paths.d.ts +3 -1
- package/dist/packages/runtime/build/state-paths.js +22 -0
- package/dist/packages/runtime/build/state-view.d.ts +5 -0
- package/dist/packages/{engine → runtime}/build/state-view.js +60 -33
- package/dist/packages/runtime/build/state.d.ts +7 -0
- package/dist/packages/runtime/build/state.js +12 -0
- package/dist/packages/runtime/build/traces.d.ts +30 -0
- package/dist/packages/runtime/build/traces.js +133 -0
- package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
- package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +48 -35
- package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
- package/dist/packages/{engine → runtime}/build/validate.js +26 -26
- package/dist/packages/{engine → runtime}/client.d.ts +15 -15
- package/dist/packages/{engine → runtime}/client.js +41 -24
- package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
- package/dist/packages/{engine → runtime}/connection-config.js +9 -8
- package/dist/packages/runtime/context-checks.d.ts +10 -0
- package/dist/packages/runtime/context-checks.js +114 -0
- package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
- package/dist/packages/runtime/context-graph-scaffold.js +134 -0
- package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
- package/dist/packages/runtime/entitlement-guard.js +70 -0
- package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/execution/index.js +1 -1
- package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +270 -192
- package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
- package/dist/packages/runtime/index.d.ts +29 -0
- package/dist/packages/runtime/index.js +21 -0
- package/dist/packages/runtime/instance-paths.d.ts +30 -0
- package/dist/packages/runtime/instance-paths.js +29 -0
- package/dist/packages/{engine → runtime}/native-run-handlers.d.ts +4 -4
- package/dist/packages/{engine → runtime}/native-run-handlers.js +184 -152
- package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
- package/dist/packages/runtime/plan-artifact-contract.js +42 -0
- package/dist/packages/runtime/project-entries.d.ts +11 -0
- package/dist/packages/runtime/project-entries.js +49 -0
- package/dist/packages/runtime/project-source-state.d.ts +26 -0
- package/dist/packages/runtime/project-source-state.js +53 -0
- package/dist/packages/runtime/project-store.d.ts +85 -0
- package/dist/packages/runtime/project-store.js +168 -0
- package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
- package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
- package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
- package/dist/packages/{engine → runtime}/run-observability.js +166 -84
- package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
- package/dist/packages/runtime/runtime-action-proposals.js +542 -0
- package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
- package/dist/packages/runtime/runtime-build-plans.js +131 -0
- package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
- package/dist/packages/runtime/runtime-build-runs.js +562 -0
- package/dist/packages/runtime/runtime-caches.d.ts +91 -0
- package/dist/packages/{engine → runtime}/runtime-caches.js +77 -49
- package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
- package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
- package/dist/packages/runtime/runtime-executor.d.ts +22 -0
- package/dist/packages/runtime/runtime-executor.js +131 -0
- package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
- package/dist/packages/runtime/runtime-jobs.js +463 -0
- package/dist/packages/runtime/runtime-observability.d.ts +11 -0
- package/dist/packages/runtime/runtime-observability.js +39 -0
- package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
- package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
- package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
- package/dist/packages/runtime/runtime-project-mutations.js +64 -0
- package/dist/packages/runtime/runtime-project-reads.d.ts +15 -0
- package/dist/packages/runtime/runtime-project-reads.js +381 -0
- package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
- package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
- package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +21 -16
- package/dist/packages/{engine → runtime}/runtime-resource-builders.js +48 -38
- package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
- package/dist/packages/runtime/runtime-verify-runs.js +295 -0
- package/dist/packages/runtime/runtime.d.ts +1165 -0
- package/dist/packages/runtime/runtime.js +417 -0
- package/dist/packages/runtime/schemas/actions.d.ts +1182 -0
- package/dist/packages/runtime/schemas/actions.js +117 -0
- package/dist/packages/runtime/schemas/agents.d.ts +76 -0
- package/dist/packages/runtime/schemas/agents.js +41 -0
- package/dist/packages/runtime/schemas/build-plans.d.ts +959 -0
- package/dist/packages/runtime/schemas/build-plans.js +107 -0
- package/dist/packages/runtime/schemas/files.d.ts +567 -0
- package/dist/packages/runtime/schemas/files.js +51 -0
- package/dist/packages/runtime/schemas/index.d.ts +8 -0
- package/dist/packages/runtime/schemas/index.js +12 -0
- package/dist/packages/runtime/schemas/instance.d.ts +141 -0
- package/dist/packages/runtime/schemas/instance.js +143 -0
- package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
- package/dist/packages/runtime/schemas/jobs.js +103 -0
- package/dist/packages/runtime/schemas/projects.d.ts +339 -0
- package/dist/packages/runtime/schemas/projects.js +136 -0
- package/dist/packages/runtime/schemas/runs.d.ts +2676 -0
- package/dist/packages/runtime/schemas/runs.js +98 -0
- package/dist/packages/runtime/service/index.d.ts +3 -0
- package/dist/packages/runtime/service/index.js +3 -0
- package/dist/packages/runtime/service/openapi.d.ts +7 -0
- package/dist/packages/runtime/service/openapi.js +117 -0
- package/dist/packages/runtime/service/operations.d.ts +1490 -0
- package/dist/packages/runtime/service/operations.js +245 -0
- package/dist/packages/runtime/service/routes.d.ts +106 -0
- package/dist/packages/runtime/service/routes.js +120 -0
- package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
- package/dist/packages/runtime/service/server-api-files.js +85 -0
- package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
- package/dist/packages/runtime/service/server-app-boot.js +46 -0
- package/dist/packages/runtime/service/server-guards.d.ts +63 -0
- package/dist/packages/runtime/service/server-guards.js +181 -0
- package/dist/packages/runtime/service/server-helpers.d.ts +27 -0
- package/dist/packages/runtime/service/server-helpers.js +89 -0
- package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
- package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.js +43 -0
- package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-agents.js +198 -0
- package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
- package/dist/packages/runtime/service/server-routes-auth.js +138 -0
- package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-build-plans.js +83 -0
- package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
- package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
- package/dist/packages/runtime/service/server-routes-events.js +99 -0
- package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-context.js +192 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.js +130 -0
- package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
- package/dist/packages/runtime/service/server-routes-project-runs.js +85 -0
- package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-projects.js +92 -0
- package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-runs.js +112 -0
- package/dist/packages/runtime/service/server.d.ts +37 -0
- package/dist/packages/runtime/service/server.js +300 -0
- package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
- package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
- package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
- package/dist/packages/runtime/verify/benchmark-run.js +303 -0
- package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/verify/index.js +1 -1
- package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
- package/dist/packages/{engine → runtime}/verify/lib/schema.js +26 -18
- package/dist/packages/{engine → runtime}/verify/verify-execution.js +11 -11
- package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +4 -4
- package/dist/packages/runtime/verify/verify-paths.js +61 -0
- package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
- package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
- package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
- package/dist/packages/{engine → runtime}/verify/verify-specs.js +5 -3
- package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
- package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
- package/dist/packages/runtime/verify/verify-types.js +1 -0
- package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
- package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
- package/dist/packages/runtime/wire-schemas.d.ts +18 -0
- package/dist/packages/runtime/wire-schemas.js +27 -0
- package/package.json +40 -30
- package/public-repo/CONTRIBUTING.md +7 -16
- package/public-repo/README.md +175 -234
- package/public-repo/SECURITY.md +3 -4
- package/public-repo/build-plans/interf-default/README.md +19 -14
- package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +18 -11
- package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +12 -5
- package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +16 -4
- package/public-repo/build-plans/interf-default/build-plan.json +34 -28
- package/public-repo/build-plans/interf-default/build-plan.schema.json +54 -32
- package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
- package/public-repo/build-plans/interf-default/use/query/SKILL.md +17 -11
- package/public-repo/openapi/local-service.openapi.json +6803 -0
- package/public-repo/skills/interf/SKILL.md +460 -179
- package/dist/cli/commands/prep.d.ts +0 -2
- package/dist/cli/commands/prep.js +0 -240
- package/dist/cli/commands/test.d.ts +0 -10
- package/dist/cli/commands/test.js +0 -85
- package/dist/cli/commands/web.d.ts +0 -2
- package/dist/cli/commands/web.js +0 -286
- package/dist/interf-ui/404.html +0 -1
- package/dist/interf-ui/__next.__PAGE__.txt +0 -10
- package/dist/interf-ui/__next._full.txt +0 -20
- package/dist/interf-ui/__next._head.txt +0 -5
- package/dist/interf-ui/__next._index.txt +0 -5
- package/dist/interf-ui/__next._tree.txt +0 -5
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_buildManifest.js +0 -11
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_clientMiddlewareManifest.js +0 -1
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_ssgManifest.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
- package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
- package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
- package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
- package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
- package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
- package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
- package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
- package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
- package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
- package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
- package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
- package/dist/interf-ui/_not-found/__next._full.txt +0 -15
- package/dist/interf-ui/_not-found/__next._head.txt +0 -5
- package/dist/interf-ui/_not-found/__next._index.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
- package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
- package/dist/interf-ui/_not-found.html +0 -1
- package/dist/interf-ui/_not-found.txt +0 -15
- package/dist/interf-ui/index.html +0 -1
- package/dist/interf-ui/index.txt +0 -20
- package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
- package/dist/packages/contracts/lib/preparation-paths.js +0 -177
- package/dist/packages/engine/action-definitions.d.ts +0 -407
- package/dist/packages/engine/action-definitions.js +0 -1158
- package/dist/packages/engine/action-values.d.ts +0 -1
- package/dist/packages/engine/action-values.js +0 -1
- package/dist/packages/engine/agents/lib/args.d.ts +0 -4
- package/dist/packages/engine/agents/lib/args.js +0 -52
- package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
- package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
- package/dist/packages/engine/agents/lib/constants.js +0 -28
- package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
- package/dist/packages/engine/agents/lib/schema.js +0 -7
- package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
- package/dist/packages/engine/agents/lib/shells.js +0 -1052
- package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
- package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
- package/dist/packages/engine/build/billing-events.d.ts +0 -89
- package/dist/packages/engine/build/build-pipeline.js +0 -175
- package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
- package/dist/packages/engine/build/build-plan-runs.js +0 -31
- package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
- package/dist/packages/engine/build/build-stage-runner.js +0 -94
- package/dist/packages/engine/build/build-target.js +0 -16
- package/dist/packages/engine/build/check-evaluator.js +0 -298
- package/dist/packages/engine/build/reset.d.ts +0 -2
- package/dist/packages/engine/build/reset.js +0 -74
- package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
- package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
- package/dist/packages/engine/build/runtime-runs.js +0 -224
- package/dist/packages/engine/build/runtime.d.ts +0 -5
- package/dist/packages/engine/build/runtime.js +0 -4
- package/dist/packages/engine/build/source-files.d.ts +0 -46
- package/dist/packages/engine/build/source-files.js +0 -149
- package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
- package/dist/packages/engine/build/state-artifacts.js +0 -14
- package/dist/packages/engine/build/state-health.d.ts +0 -4
- package/dist/packages/engine/build/state-io.d.ts +0 -11
- package/dist/packages/engine/build/state-io.js +0 -82
- package/dist/packages/engine/build/state-paths.js +0 -16
- package/dist/packages/engine/build/state-view.d.ts +0 -5
- package/dist/packages/engine/build/state.d.ts +0 -7
- package/dist/packages/engine/build/state.js +0 -12
- package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
- package/dist/packages/engine/build/validate-helpers.js +0 -41
- package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
- package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
- package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
- package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
- package/dist/packages/engine/cloud-seams.d.ts +0 -115
- package/dist/packages/engine/cloud-seams.js +0 -84
- package/dist/packages/engine/index.d.ts +0 -22
- package/dist/packages/engine/index.js +0 -15
- package/dist/packages/engine/instance-paths.d.ts +0 -106
- package/dist/packages/engine/instance-paths.js +0 -171
- package/dist/packages/engine/lib/schema.d.ts +0 -6304
- package/dist/packages/engine/lib/schema.js +0 -730
- package/dist/packages/engine/preparation-store.d.ts +0 -105
- package/dist/packages/engine/preparation-store.js +0 -213
- package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
- package/dist/packages/engine/readiness-check-draft.js +0 -111
- package/dist/packages/engine/requested-artifacts.d.ts +0 -5
- package/dist/packages/engine/routes.d.ts +0 -85
- package/dist/packages/engine/routes.js +0 -99
- package/dist/packages/engine/runtime-caches.d.ts +0 -76
- package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
- package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
- package/dist/packages/engine/runtime.d.ts +0 -371
- package/dist/packages/engine/runtime.js +0 -2463
- package/dist/packages/engine/server.d.ts +0 -58
- package/dist/packages/engine/server.js +0 -1399
- package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
- package/dist/packages/engine/verify/readiness-check-run.js +0 -265
- package/dist/packages/engine/verify/verify-paths.js +0 -61
- package/dist/packages/engine/verify/verify-sandbox.js +0 -88
- package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
- package/dist/packages/engine/wire-schemas.d.ts +0 -547
- package/dist/packages/engine/wire-schemas.js +0 -59
- package/dist/packages/project/index.d.ts +0 -9
- package/dist/packages/project/interf-bootstrap.d.ts +0 -1
- package/dist/packages/project/interf-bootstrap.js +0 -1
- package/dist/packages/project/interf-scaffold.d.ts +0 -3
- package/dist/packages/project/interf-scaffold.js +0 -136
- package/dist/packages/project/interf.d.ts +0 -4
- package/dist/packages/project/interf.js +0 -3
- package/dist/packages/project/lib/schema.d.ts +0 -328
- package/dist/packages/project/lib/schema.js +0 -136
- package/dist/packages/project/preparation-entries.d.ts +0 -11
- package/dist/packages/project/preparation-entries.js +0 -49
- package/dist/packages/project/source-config.d.ts +0 -46
- package/dist/packages/project/source-config.js +0 -394
- package/dist/packages/project/source-folders.d.ts +0 -11
- package/public-repo/plugins/README.md +0 -9
- package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
- package/public-repo/plugins/interf/.mcp.json +0 -12
- package/public-repo/plugins/interf/README.md +0 -32
- package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
- /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/executors.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/logs.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/logs.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/render.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +0 -0
- /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
- /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-paths.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { listFilesRecursive } from "../../contracts/utils/filesystem.js";
|
|
4
|
-
import { CheckKindSchema, } from "../../contracts/lib/schema.js";
|
|
5
|
-
import { countBrokenWikilinks, isOutputMarkdownFile, validateSynthFiles, } from "./validate.js";
|
|
6
|
-
/**
|
|
7
|
-
* Build a Proof envelope from an evaluator outcome. Centralizes the
|
|
8
|
-
* timestamp + required-flag plumbing so individual evaluators can
|
|
9
|
-
* focus on the pass/fail decision and a one-line summary.
|
|
10
|
-
*/
|
|
11
|
-
function makeProof(check, passed, summary, details) {
|
|
12
|
-
return {
|
|
13
|
-
check_id: check.id,
|
|
14
|
-
kind: check.kind,
|
|
15
|
-
passed,
|
|
16
|
-
required: check.required,
|
|
17
|
-
summary,
|
|
18
|
-
...(details !== undefined ? { details } : {}),
|
|
19
|
-
evaluated_at: new Date().toISOString(),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function resolveTargetPath(check, context) {
|
|
23
|
-
const target = context.targetPath;
|
|
24
|
-
if (!target)
|
|
25
|
-
return null;
|
|
26
|
-
const root = resolve(context.rootPath);
|
|
27
|
-
const absolute = resolve(root, target);
|
|
28
|
-
// Defense in depth — schema-level validation already rejects path
|
|
29
|
-
// traversal, but a hand-edited Build Plan or stale on-disk fixture could
|
|
30
|
-
// slip through. Reject anything that escapes the root.
|
|
31
|
-
if (absolute !== root && !absolute.startsWith(`${root}/`)) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
return absolute;
|
|
35
|
-
}
|
|
36
|
-
function listMarkdownFiles(absolutePath) {
|
|
37
|
-
if (!existsSync(absolutePath))
|
|
38
|
-
return [];
|
|
39
|
-
try {
|
|
40
|
-
const stats = statSync(absolutePath);
|
|
41
|
-
if (stats.isFile()) {
|
|
42
|
-
return isOutputMarkdownFile(absolutePath) ? [absolutePath] : [];
|
|
43
|
-
}
|
|
44
|
-
if (stats.isDirectory()) {
|
|
45
|
-
return listFilesRecursive(absolutePath, isOutputMarkdownFile);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
return [];
|
|
50
|
-
}
|
|
51
|
-
return [];
|
|
52
|
-
}
|
|
53
|
-
function countFiles(absolutePath) {
|
|
54
|
-
if (!existsSync(absolutePath))
|
|
55
|
-
return 0;
|
|
56
|
-
try {
|
|
57
|
-
const stats = statSync(absolutePath);
|
|
58
|
-
if (stats.isFile())
|
|
59
|
-
return 1;
|
|
60
|
-
if (stats.isDirectory()) {
|
|
61
|
-
return listFilesRecursive(absolutePath, () => true).length;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return 0;
|
|
66
|
-
}
|
|
67
|
-
return 0;
|
|
68
|
-
}
|
|
69
|
-
const EVALUATORS = {
|
|
70
|
-
file_exists(check, context) {
|
|
71
|
-
const target = resolveTargetPath(check, context);
|
|
72
|
-
if (!target) {
|
|
73
|
-
return makeProof(check, false, "No target path provided for file_exists check.");
|
|
74
|
-
}
|
|
75
|
-
if (!existsSync(target)) {
|
|
76
|
-
return makeProof(check, false, "File or directory does not exist.", { path: context.targetPath });
|
|
77
|
-
}
|
|
78
|
-
try {
|
|
79
|
-
const stats = statSync(target);
|
|
80
|
-
if (stats.isFile() && stats.size === 0) {
|
|
81
|
-
return makeProof(check, false, "File exists but is empty.", { path: context.targetPath });
|
|
82
|
-
}
|
|
83
|
-
return makeProof(check, true, `Path exists (${stats.isDirectory() ? "directory" : "file"}).`);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
return makeProof(check, false, "Could not stat target path.", { path: context.targetPath });
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
min_file_count(check, context) {
|
|
90
|
-
const target = resolveTargetPath(check, context);
|
|
91
|
-
if (!target) {
|
|
92
|
-
return makeProof(check, false, "No target path provided for min_file_count check.");
|
|
93
|
-
}
|
|
94
|
-
const min = typeof check.params?.min === "number" ? check.params.min : 1;
|
|
95
|
-
const actual = countFiles(target);
|
|
96
|
-
if (actual >= min) {
|
|
97
|
-
return makeProof(check, true, `${actual} file(s) (≥ ${min}).`, { actual, min });
|
|
98
|
-
}
|
|
99
|
-
return makeProof(check, false, `Found ${actual} file(s); expected at least ${min}.`, { actual, min });
|
|
100
|
-
},
|
|
101
|
-
min_file_count_matches_source(check, context) {
|
|
102
|
-
const target = resolveTargetPath(check, context);
|
|
103
|
-
if (!target) {
|
|
104
|
-
return makeProof(check, false, "No target path provided for min_file_count_matches_source check.");
|
|
105
|
-
}
|
|
106
|
-
const matchKey = typeof check.params?.match === "string" ? check.params.match : "source_total";
|
|
107
|
-
const expected = context.counts?.[matchKey];
|
|
108
|
-
if (typeof expected !== "number") {
|
|
109
|
-
return makeProof(check, false, `Cannot evaluate: count "${matchKey}" not available in context.`, { matchKey });
|
|
110
|
-
}
|
|
111
|
-
const actual = countFiles(target);
|
|
112
|
-
if (actual >= expected) {
|
|
113
|
-
return makeProof(check, true, `${actual} of ${expected} source files covered.`, { actual, expected });
|
|
114
|
-
}
|
|
115
|
-
return makeProof(check, false, `Only ${actual} of ${expected} source files covered.`, { actual, expected, matchKey });
|
|
116
|
-
},
|
|
117
|
-
frontmatter_valid(check, context) {
|
|
118
|
-
const target = resolveTargetPath(check, context);
|
|
119
|
-
if (!target) {
|
|
120
|
-
return makeProof(check, false, "No target path provided for frontmatter_valid check.");
|
|
121
|
-
}
|
|
122
|
-
const files = listMarkdownFiles(target);
|
|
123
|
-
if (files.length === 0) {
|
|
124
|
-
return makeProof(check, true, "No markdown files to validate.");
|
|
125
|
-
}
|
|
126
|
-
const validation = validateSynthFiles(files);
|
|
127
|
-
if (validation.invalid_frontmatter === 0) {
|
|
128
|
-
return makeProof(check, true, `${files.length} markdown file(s) have valid frontmatter.`);
|
|
129
|
-
}
|
|
130
|
-
return makeProof(check, false, `${validation.invalid_frontmatter} of ${files.length} markdown file(s) have invalid frontmatter.`, { invalid: validation.invalid_frontmatter, total: files.length });
|
|
131
|
-
},
|
|
132
|
-
frontmatter_required_keys(check, context) {
|
|
133
|
-
const target = resolveTargetPath(check, context);
|
|
134
|
-
if (!target) {
|
|
135
|
-
return makeProof(check, false, "No target path provided for frontmatter_required_keys check.");
|
|
136
|
-
}
|
|
137
|
-
const keys = Array.isArray(check.params?.keys) ? check.params.keys.filter((k) => typeof k === "string") : [];
|
|
138
|
-
if (keys.length === 0) {
|
|
139
|
-
return makeProof(check, false, "frontmatter_required_keys check requires `params.keys: string[]`.");
|
|
140
|
-
}
|
|
141
|
-
const files = listMarkdownFiles(target);
|
|
142
|
-
if (files.length === 0) {
|
|
143
|
-
return makeProof(check, true, "No markdown files to validate.");
|
|
144
|
-
}
|
|
145
|
-
const validation = validateSynthFiles(files, { requiredFrontmatterKeys: keys });
|
|
146
|
-
if (validation.invalid_frontmatter === 0) {
|
|
147
|
-
return makeProof(check, true, `All ${files.length} markdown file(s) have required keys: ${keys.join(", ")}.`);
|
|
148
|
-
}
|
|
149
|
-
return makeProof(check, false, `${validation.invalid_frontmatter} of ${files.length} file(s) missing required keys (${keys.join(", ")}).`, { invalid: validation.invalid_frontmatter, total: files.length, requiredKeys: keys });
|
|
150
|
-
},
|
|
151
|
-
wikilinks_valid(check, context) {
|
|
152
|
-
const target = resolveTargetPath(check, context);
|
|
153
|
-
if (!target) {
|
|
154
|
-
return makeProof(check, false, "No target path provided for wikilinks_valid check.");
|
|
155
|
-
}
|
|
156
|
-
const broken = countBrokenWikilinks(context.rootPath, [context.rootPath], [target]);
|
|
157
|
-
if (broken === 0) {
|
|
158
|
-
return makeProof(check, true, "All wikilinks resolve.");
|
|
159
|
-
}
|
|
160
|
-
return makeProof(check, false, `${broken} broken wikilink(s).`, { broken });
|
|
161
|
-
},
|
|
162
|
-
must_not_contain(check, context) {
|
|
163
|
-
const target = resolveTargetPath(check, context);
|
|
164
|
-
if (!target || !existsSync(target)) {
|
|
165
|
-
return makeProof(check, false, "Target path does not exist.", { path: context.targetPath });
|
|
166
|
-
}
|
|
167
|
-
const phrases = Array.isArray(check.params?.phrases)
|
|
168
|
-
? check.params.phrases.filter((p) => typeof p === "string")
|
|
169
|
-
: [];
|
|
170
|
-
if (phrases.length === 0) {
|
|
171
|
-
return makeProof(check, false, "must_not_contain check requires `params.phrases: string[]`.");
|
|
172
|
-
}
|
|
173
|
-
try {
|
|
174
|
-
const stats = statSync(target);
|
|
175
|
-
const files = stats.isFile() ? [target] : listFilesRecursive(target, () => true);
|
|
176
|
-
const offenders = [];
|
|
177
|
-
for (const file of files) {
|
|
178
|
-
const content = readFileSync(file, "utf8");
|
|
179
|
-
for (const phrase of phrases) {
|
|
180
|
-
if (content.includes(phrase)) {
|
|
181
|
-
offenders.push(`${file}: contains "${phrase}"`);
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (offenders.length === 0) {
|
|
187
|
-
return makeProof(check, true, `No forbidden phrases found across ${files.length} file(s).`);
|
|
188
|
-
}
|
|
189
|
-
return makeProof(check, false, `${offenders.length} file(s) contain forbidden phrases.`, { offenders, phrases });
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
return makeProof(check, false, `Error reading target: ${error instanceof Error ? error.message : String(error)}`);
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
must_contain(check, context) {
|
|
196
|
-
const target = resolveTargetPath(check, context);
|
|
197
|
-
if (!target || !existsSync(target)) {
|
|
198
|
-
return makeProof(check, false, "Target path does not exist.", { path: context.targetPath });
|
|
199
|
-
}
|
|
200
|
-
const phrases = Array.isArray(check.params?.phrases)
|
|
201
|
-
? check.params.phrases.filter((p) => typeof p === "string")
|
|
202
|
-
: [];
|
|
203
|
-
if (phrases.length === 0) {
|
|
204
|
-
return makeProof(check, false, "must_contain check requires `params.phrases: string[]`.");
|
|
205
|
-
}
|
|
206
|
-
try {
|
|
207
|
-
const stats = statSync(target);
|
|
208
|
-
// For directories, must_contain checks across ALL files (every phrase
|
|
209
|
-
// must appear in at least one file). For files, all phrases must
|
|
210
|
-
// appear in that single file.
|
|
211
|
-
if (stats.isFile()) {
|
|
212
|
-
const content = readFileSync(target, "utf8");
|
|
213
|
-
const missing = phrases.filter((phrase) => !content.includes(phrase));
|
|
214
|
-
if (missing.length === 0) {
|
|
215
|
-
return makeProof(check, true, `All ${phrases.length} required phrase(s) present.`);
|
|
216
|
-
}
|
|
217
|
-
return makeProof(check, false, `${missing.length} required phrase(s) missing.`, { missing });
|
|
218
|
-
}
|
|
219
|
-
const files = listFilesRecursive(target, () => true);
|
|
220
|
-
const remaining = new Set(phrases);
|
|
221
|
-
for (const file of files) {
|
|
222
|
-
const content = readFileSync(file, "utf8");
|
|
223
|
-
for (const phrase of [...remaining]) {
|
|
224
|
-
if (content.includes(phrase))
|
|
225
|
-
remaining.delete(phrase);
|
|
226
|
-
}
|
|
227
|
-
if (remaining.size === 0)
|
|
228
|
-
break;
|
|
229
|
-
}
|
|
230
|
-
if (remaining.size === 0) {
|
|
231
|
-
return makeProof(check, true, `All ${phrases.length} required phrase(s) found across files.`);
|
|
232
|
-
}
|
|
233
|
-
return makeProof(check, false, `${remaining.size} required phrase(s) missing across all files.`, { missing: [...remaining] });
|
|
234
|
-
}
|
|
235
|
-
catch (error) {
|
|
236
|
-
return makeProof(check, false, `Error reading target: ${error instanceof Error ? error.message : String(error)}`);
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
qa_match(check, context) {
|
|
240
|
-
const expected = typeof check.params?.expected === "string" ? check.params.expected : "";
|
|
241
|
-
const strictness = typeof check.params?.strictness === "string" ? check.params.strictness : "loose";
|
|
242
|
-
const answer = context.agentAnswer ?? "";
|
|
243
|
-
if (!expected) {
|
|
244
|
-
return makeProof(check, false, "qa_match check requires `params.expected: string`.");
|
|
245
|
-
}
|
|
246
|
-
if (!answer) {
|
|
247
|
-
return makeProof(check, false, "No agent answer available for qa_match evaluation.");
|
|
248
|
-
}
|
|
249
|
-
if (strictness === "strict") {
|
|
250
|
-
const passed = answer.trim() === expected.trim();
|
|
251
|
-
return makeProof(check, passed, passed ? "Answer matches expected exactly." : "Answer does not match expected.");
|
|
252
|
-
}
|
|
253
|
-
// Loose: case-insensitive substring match either direction.
|
|
254
|
-
const a = answer.trim().toLowerCase();
|
|
255
|
-
const e = expected.trim().toLowerCase();
|
|
256
|
-
const passed = a.includes(e) || e.includes(a);
|
|
257
|
-
return makeProof(check, passed, passed ? "Answer matches expected (loose)." : "Answer does not match expected.");
|
|
258
|
-
},
|
|
259
|
-
};
|
|
260
|
-
/**
|
|
261
|
-
* Evaluate a single Check against a context, returning a Proof.
|
|
262
|
-
*/
|
|
263
|
-
export function evaluateCheck(check, context) {
|
|
264
|
-
const evaluator = EVALUATORS[check.kind];
|
|
265
|
-
if (!evaluator) {
|
|
266
|
-
return {
|
|
267
|
-
check_id: check.id,
|
|
268
|
-
kind: check.kind,
|
|
269
|
-
passed: false,
|
|
270
|
-
required: check.required,
|
|
271
|
-
summary: `Unknown check kind: ${check.kind}`,
|
|
272
|
-
evaluated_at: new Date().toISOString(),
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
return evaluator(check, context);
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Evaluate a list of checks. Aggregate ready/not_ready verdict over
|
|
279
|
-
* the proofs: `ready` if every required check passed, otherwise
|
|
280
|
-
* `not_ready`. Soft checks (required: false) that fail produce a
|
|
281
|
-
* proof but don't change the verdict.
|
|
282
|
-
*/
|
|
283
|
-
export function evaluateChecks(checks, context) {
|
|
284
|
-
const proofs = checks.map((check) => evaluateCheck(check, context));
|
|
285
|
-
const failures = proofs.filter((proof) => !proof.passed && proof.required);
|
|
286
|
-
return {
|
|
287
|
-
proofs,
|
|
288
|
-
ready: failures.length === 0,
|
|
289
|
-
failures,
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Type guard for the canonical CheckKinds. Useful at parse boundaries
|
|
294
|
-
* where a string came from on-disk JSON.
|
|
295
|
-
*/
|
|
296
|
-
export function isCheckKind(value) {
|
|
297
|
-
return CheckKindSchema.safeParse(value).success;
|
|
298
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { existsSync, readdirSync, rmSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./verifiable-context-schema.js";
|
|
4
|
-
import { initializeBuildRuntimeState } from "./state.js";
|
|
5
|
-
import { stageExecutionShellsRoot, testRootForVerifiableContext, testTargetsRootForVerifiableContext, buildPlanImprovementLoopsRoot, verifiableContextQueryAcceptanceRoot, verifiableContextRuntimeRoot, verifiableContextRuntimeLogsRoot, buildPlanPackagePathForVerifiableContext, } from "./verifiable-context-paths.js";
|
|
6
|
-
function removeIfExists(path) {
|
|
7
|
-
if (existsSync(path)) {
|
|
8
|
-
rmSync(path, { recursive: true, force: true });
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
const BUILD_RUNTIME_RESET_ENTRIES = [
|
|
12
|
-
"state.json",
|
|
13
|
-
"health.json",
|
|
14
|
-
"view-spec.json",
|
|
15
|
-
"inventory.json",
|
|
16
|
-
"run.json",
|
|
17
|
-
"source-files.json",
|
|
18
|
-
"source-snapshot.json",
|
|
19
|
-
"stage-contract.json",
|
|
20
|
-
"stages",
|
|
21
|
-
];
|
|
22
|
-
const PRESERVED_COMPILED_ROOTS = new Set([
|
|
23
|
-
".agents",
|
|
24
|
-
".claude",
|
|
25
|
-
".codex",
|
|
26
|
-
".cursor",
|
|
27
|
-
".gitignore",
|
|
28
|
-
".interf",
|
|
29
|
-
".interfignore",
|
|
30
|
-
"AGENTS.md",
|
|
31
|
-
"CLAUDE.md",
|
|
32
|
-
]);
|
|
33
|
-
export function clearBuildRuntimeDerivedArtifacts(verifiableContextPath) {
|
|
34
|
-
const runtimeRoot = verifiableContextRuntimeRoot(verifiableContextPath);
|
|
35
|
-
for (const entry of BUILD_RUNTIME_RESET_ENTRIES) {
|
|
36
|
-
removeIfExists(join(runtimeRoot, entry));
|
|
37
|
-
}
|
|
38
|
-
removeIfExists(verifiableContextQueryAcceptanceRoot(verifiableContextPath));
|
|
39
|
-
}
|
|
40
|
-
function activeBuildInputRoots(verifiableContextPath) {
|
|
41
|
-
const schema = readBuildPlanContextFile(buildPlanPackagePathForVerifiableContext(verifiableContextPath));
|
|
42
|
-
const roots = new Set();
|
|
43
|
-
for (const artifact of schema ? listBuildPlanContextArtifacts(schema) : []) {
|
|
44
|
-
if (artifact.role !== "input")
|
|
45
|
-
continue;
|
|
46
|
-
const root = artifact.path.split("/")[0]?.trim();
|
|
47
|
-
if (root)
|
|
48
|
-
roots.add(root);
|
|
49
|
-
}
|
|
50
|
-
return roots;
|
|
51
|
-
}
|
|
52
|
-
function resetBuildGeneratedOutputs(verifiableContextPath) {
|
|
53
|
-
const preservedInputRoots = activeBuildInputRoots(verifiableContextPath);
|
|
54
|
-
for (const entry of readdirSync(verifiableContextPath)) {
|
|
55
|
-
if (PRESERVED_COMPILED_ROOTS.has(entry))
|
|
56
|
-
continue;
|
|
57
|
-
if (preservedInputRoots.has(entry))
|
|
58
|
-
continue;
|
|
59
|
-
removeIfExists(join(verifiableContextPath, entry));
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
export function resetBuildGeneratedState(verifiableContextPath, scope = "build") {
|
|
63
|
-
resetBuildGeneratedOutputs(verifiableContextPath);
|
|
64
|
-
clearBuildRuntimeDerivedArtifacts(verifiableContextPath);
|
|
65
|
-
initializeBuildRuntimeState(verifiableContextPath);
|
|
66
|
-
if (scope === "all") {
|
|
67
|
-
removeIfExists(stageExecutionShellsRoot(verifiableContextPath));
|
|
68
|
-
removeIfExists(buildPlanImprovementLoopsRoot(verifiableContextPath));
|
|
69
|
-
removeIfExists(verifiableContextRuntimeLogsRoot(verifiableContextPath));
|
|
70
|
-
removeIfExists(join(verifiableContextRuntimeRoot(verifiableContextPath), "run-history.jsonl"));
|
|
71
|
-
removeIfExists(testRootForVerifiableContext(verifiableContextPath));
|
|
72
|
-
removeIfExists(testTargetsRootForVerifiableContext(verifiableContextPath));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type RuntimeInventory, type RuntimeInventoryEntry } from "./lib/schema.js";
|
|
2
|
-
export declare function emptyRuntimeInventory(): RuntimeInventory;
|
|
3
|
-
export declare function buildInventoryFromEntries(entries: RuntimeInventoryEntry[], stage?: string): RuntimeInventory;
|
|
4
|
-
export declare function buildInventoryEntryCount(inventory: RuntimeInventory | null): number;
|
|
5
|
-
export declare function buildInventoryTotal(inventory: RuntimeInventory | null): number;
|
|
6
|
-
export declare function buildInventoryFrontmatterScannedCount(inventory: RuntimeInventory | null): number;
|
|
7
|
-
export declare function buildInventoryAbstractCoverageCount(inventory: RuntimeInventory | null): number;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type RuntimeRun, type RuntimeStageContract } from "./lib/schema.js";
|
|
2
|
-
import { type RuntimeRunPatch, type RuntimeStageExecutionOptions } from "./runtime-types.js";
|
|
3
|
-
export declare function loadRuntimeRun(dirPath: string): RuntimeRun | null;
|
|
4
|
-
export declare function saveRuntimeRun(dirPath: string, run: RuntimeRun): void;
|
|
5
|
-
export declare function writeStageContract(dirPath: string, contract: RuntimeStageContract): string;
|
|
6
|
-
export declare function runExecutorStage(options: RuntimeStageExecutionOptions): Promise<number>;
|
|
7
|
-
export declare function beginRuntimeRun(dirPath: string, run: RuntimeRun): RuntimeRun;
|
|
8
|
-
export declare function updateRuntimeRun(dirPath: string, patch: RuntimeRunPatch): RuntimeRun | null;
|
|
9
|
-
export declare function markRuntimeRunFailedAfterValidation(dirPath: string, summary: string): RuntimeRun | null;
|
|
10
|
-
export declare function markRuntimeRunSucceededAfterValidation(dirPath: string, summary: string): RuntimeRun | null;
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import { appendFileSync, mkdirSync, existsSync, readFileSync, writeFileSync, } from "node:fs";
|
|
2
|
-
import { dirname, relative } from "node:path";
|
|
3
|
-
import { buildRuntimeExecutorInfo } from "../agents/lib/executors.js";
|
|
4
|
-
import { RuntimeRunSchema, } from "./lib/schema.js";
|
|
5
|
-
import { getBuildPlanStageDefinition, getBuildPlanStagePosition, getBuildPlanStages, } from "../../build-plans/package/build-plan-definitions.js";
|
|
6
|
-
import { archivedStageContractPath, eventLogPath, logsDirPath, promptLogPath, runHistoryPath, runPath, stageContractPath, statusLogPath, } from "./runtime-paths.js";
|
|
7
|
-
import { warnInterf } from "../../contracts/utils/logger.js";
|
|
8
|
-
export function loadRuntimeRun(dirPath) {
|
|
9
|
-
const path = runPath(dirPath);
|
|
10
|
-
if (!existsSync(path))
|
|
11
|
-
return null;
|
|
12
|
-
try {
|
|
13
|
-
const raw = JSON.parse(readFileSync(path, "utf8"));
|
|
14
|
-
const parsed = RuntimeRunSchema.safeParse(raw);
|
|
15
|
-
if (parsed.success)
|
|
16
|
-
return parsed.data;
|
|
17
|
-
warnInterf(`Warning: failed to validate runtime run at ${path}: ${parsed.error.issues.map((issue) => issue.message).join("; ")}`);
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
warnInterf(`Warning: failed to read runtime run at ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export function saveRuntimeRun(dirPath, run) {
|
|
26
|
-
mkdirSync(dirname(runPath(dirPath)), { recursive: true });
|
|
27
|
-
writeFileSync(runPath(dirPath), JSON.stringify(run, null, 2) + "\n");
|
|
28
|
-
}
|
|
29
|
-
export function writeStageContract(dirPath, contract) {
|
|
30
|
-
mkdirSync(dirname(stageContractPath(dirPath)), { recursive: true });
|
|
31
|
-
const path = stageContractPath(dirPath);
|
|
32
|
-
writeFileSync(path, JSON.stringify(contract, null, 2) + "\n");
|
|
33
|
-
return path;
|
|
34
|
-
}
|
|
35
|
-
function writeArchivedStageContract(dirPath, runId, contract) {
|
|
36
|
-
const path = archivedStageContractPath(dirPath, runId);
|
|
37
|
-
mkdirSync(dirname(path), { recursive: true });
|
|
38
|
-
writeFileSync(path, JSON.stringify(contract, null, 2) + "\n");
|
|
39
|
-
return path;
|
|
40
|
-
}
|
|
41
|
-
export async function runExecutorStage(options) {
|
|
42
|
-
const startedRun = startRuntimeRun(options);
|
|
43
|
-
const prompt = options.buildPrompt(startedRun.activeContractPath);
|
|
44
|
-
writeRuntimeRunPrompt(options.verifiableContextPath, startedRun.run.run_id, prompt);
|
|
45
|
-
const executionPath = options.executionPath ?? options.verifiableContextPath;
|
|
46
|
-
const code = await options.executor.execute(executionPath, prompt, {
|
|
47
|
-
eventLogPath: eventLogPath(options.verifiableContextPath, startedRun.run.run_id),
|
|
48
|
-
statusLogPath: statusLogPath(options.verifiableContextPath, startedRun.run.run_id),
|
|
49
|
-
completionCheck: options.completionCheck,
|
|
50
|
-
onStatus: options.onStatus,
|
|
51
|
-
});
|
|
52
|
-
finalizeRuntimeRun(options.verifiableContextPath, code);
|
|
53
|
-
return code;
|
|
54
|
-
}
|
|
55
|
-
export function beginRuntimeRun(dirPath, run) {
|
|
56
|
-
saveRuntimeRun(dirPath, run);
|
|
57
|
-
return run;
|
|
58
|
-
}
|
|
59
|
-
export function updateRuntimeRun(dirPath, patch) {
|
|
60
|
-
const current = loadRuntimeRun(dirPath);
|
|
61
|
-
if (!current)
|
|
62
|
-
return null;
|
|
63
|
-
const next = {
|
|
64
|
-
...current,
|
|
65
|
-
...patch,
|
|
66
|
-
updated_at: new Date().toISOString(),
|
|
67
|
-
};
|
|
68
|
-
saveRuntimeRun(dirPath, next);
|
|
69
|
-
return next;
|
|
70
|
-
}
|
|
71
|
-
export function markRuntimeRunFailedAfterValidation(dirPath, summary) {
|
|
72
|
-
const current = loadRuntimeRun(dirPath);
|
|
73
|
-
if (!current)
|
|
74
|
-
return null;
|
|
75
|
-
const finishedAt = current.finished_at ?? new Date().toISOString();
|
|
76
|
-
const next = {
|
|
77
|
-
...current,
|
|
78
|
-
status: "failed",
|
|
79
|
-
updated_at: new Date().toISOString(),
|
|
80
|
-
finished_at: finishedAt,
|
|
81
|
-
exit_code: 1,
|
|
82
|
-
error: summary,
|
|
83
|
-
summary,
|
|
84
|
-
};
|
|
85
|
-
saveRuntimeRun(dirPath, next);
|
|
86
|
-
replaceOrAppendRunHistoryEntry(dirPath, next);
|
|
87
|
-
return next;
|
|
88
|
-
}
|
|
89
|
-
export function markRuntimeRunSucceededAfterValidation(dirPath, summary) {
|
|
90
|
-
const current = loadRuntimeRun(dirPath);
|
|
91
|
-
if (!current)
|
|
92
|
-
return null;
|
|
93
|
-
const finishedAt = current.finished_at ?? new Date().toISOString();
|
|
94
|
-
const next = {
|
|
95
|
-
...current,
|
|
96
|
-
status: "succeeded",
|
|
97
|
-
updated_at: new Date().toISOString(),
|
|
98
|
-
finished_at: finishedAt,
|
|
99
|
-
exit_code: 0,
|
|
100
|
-
error: null,
|
|
101
|
-
summary,
|
|
102
|
-
};
|
|
103
|
-
saveRuntimeRun(dirPath, next);
|
|
104
|
-
replaceOrAppendRunHistoryEntry(dirPath, next);
|
|
105
|
-
return next;
|
|
106
|
-
}
|
|
107
|
-
function startRuntimeRun(options) {
|
|
108
|
-
const runId = createRunId();
|
|
109
|
-
const generatedAt = new Date().toISOString();
|
|
110
|
-
const buildPlanStages = getBuildPlanStages(options.buildPlan, options.buildPlanSourcePath);
|
|
111
|
-
const stagePosition = getBuildPlanStagePosition(options.buildPlan, options.stage, options.buildPlanSourcePath);
|
|
112
|
-
const stageDefinition = getBuildPlanStageDefinition(options.buildPlan, options.stage, options.buildPlanSourcePath);
|
|
113
|
-
const contract = {
|
|
114
|
-
kind: "interf-stage-contract",
|
|
115
|
-
version: 1,
|
|
116
|
-
generated_at: generatedAt,
|
|
117
|
-
run_id: runId,
|
|
118
|
-
target_type: "verifiable-context",
|
|
119
|
-
target_name: options.verifiableContextName,
|
|
120
|
-
build_plan: {
|
|
121
|
-
id: options.buildPlan,
|
|
122
|
-
stage_index: stagePosition?.stageIndex ?? null,
|
|
123
|
-
stage_total: stagePosition?.stageTotal ?? buildPlanStages.length,
|
|
124
|
-
stages: stagePosition?.stages ?? buildPlanStages,
|
|
125
|
-
},
|
|
126
|
-
stage: options.stage,
|
|
127
|
-
stage_label: stageDefinition?.label ?? options.stageLabel,
|
|
128
|
-
contract_type: options.contractType,
|
|
129
|
-
executor: buildRuntimeExecutorInfo(options.executor),
|
|
130
|
-
instructions: options.contract.instructions,
|
|
131
|
-
counts: options.contract.counts,
|
|
132
|
-
artifacts: options.contract.artifacts,
|
|
133
|
-
policies: options.contract.policies,
|
|
134
|
-
};
|
|
135
|
-
const activeContractPath = writeStageContract(options.verifiableContextPath, contract);
|
|
136
|
-
const archivedContractPath = writeArchivedStageContract(options.verifiableContextPath, runId, contract);
|
|
137
|
-
const run = {
|
|
138
|
-
kind: "interf-run",
|
|
139
|
-
version: 1,
|
|
140
|
-
run_id: runId,
|
|
141
|
-
target_type: "verifiable-context",
|
|
142
|
-
target_name: options.verifiableContextName,
|
|
143
|
-
build_plan: options.buildPlan,
|
|
144
|
-
stage: options.stage,
|
|
145
|
-
stage_label: stageDefinition?.label ?? options.stageLabel,
|
|
146
|
-
contract_type: options.contractType,
|
|
147
|
-
status: "running",
|
|
148
|
-
executor: buildRuntimeExecutorInfo(options.executor),
|
|
149
|
-
started_at: generatedAt,
|
|
150
|
-
updated_at: generatedAt,
|
|
151
|
-
finished_at: null,
|
|
152
|
-
contract_path: relative(options.verifiableContextPath, archivedContractPath),
|
|
153
|
-
...(options.executionPath ? { execution_path: relative(options.verifiableContextPath, options.executionPath) } : {}),
|
|
154
|
-
counts: { ...contract.counts },
|
|
155
|
-
output_artifacts: [...contract.artifacts.writes],
|
|
156
|
-
logs: {
|
|
157
|
-
prompt_path: relative(options.verifiableContextPath, promptLogPath(options.verifiableContextPath, runId)),
|
|
158
|
-
event_stream_path: relative(options.verifiableContextPath, eventLogPath(options.verifiableContextPath, runId)),
|
|
159
|
-
status_path: relative(options.verifiableContextPath, statusLogPath(options.verifiableContextPath, runId)),
|
|
160
|
-
},
|
|
161
|
-
summary: options.summary,
|
|
162
|
-
exit_code: null,
|
|
163
|
-
error: null,
|
|
164
|
-
};
|
|
165
|
-
return {
|
|
166
|
-
run: beginRuntimeRun(options.verifiableContextPath, run),
|
|
167
|
-
activeContractPath: options.executionPath
|
|
168
|
-
? "runtime/stage-contract.json"
|
|
169
|
-
: relative(options.verifiableContextPath, activeContractPath),
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
function finalizeRuntimeRun(dirPath, code) {
|
|
173
|
-
const current = loadRuntimeRun(dirPath);
|
|
174
|
-
if (!current)
|
|
175
|
-
return null;
|
|
176
|
-
const finishedAt = new Date().toISOString();
|
|
177
|
-
const next = {
|
|
178
|
-
...current,
|
|
179
|
-
status: code === 0 ? "succeeded" : "failed",
|
|
180
|
-
updated_at: finishedAt,
|
|
181
|
-
finished_at: finishedAt,
|
|
182
|
-
exit_code: code,
|
|
183
|
-
error: code === 0 ? null : `Executor exited with code ${code}.`,
|
|
184
|
-
summary: code === 0
|
|
185
|
-
? `${current.stage_label} completed successfully.`
|
|
186
|
-
: `${current.stage_label} failed with exit code ${code}.`,
|
|
187
|
-
};
|
|
188
|
-
saveRuntimeRun(dirPath, next);
|
|
189
|
-
appendFileSync(runHistoryPath(dirPath), JSON.stringify(next) + "\n");
|
|
190
|
-
return next;
|
|
191
|
-
}
|
|
192
|
-
function writeRuntimeRunPrompt(dirPath, runId, prompt) {
|
|
193
|
-
mkdirSync(logsDirPath(dirPath), { recursive: true });
|
|
194
|
-
writeFileSync(promptLogPath(dirPath, runId), `${prompt}\n`);
|
|
195
|
-
}
|
|
196
|
-
function createRunId() {
|
|
197
|
-
return `run_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
|
|
198
|
-
}
|
|
199
|
-
function replaceOrAppendRunHistoryEntry(dirPath, run) {
|
|
200
|
-
const historyPath = runHistoryPath(dirPath);
|
|
201
|
-
if (!existsSync(historyPath)) {
|
|
202
|
-
appendFileSync(historyPath, JSON.stringify(run) + "\n");
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
const raw = readFileSync(historyPath, "utf8");
|
|
206
|
-
const lines = raw.split("\n").filter((line) => line.trim().length > 0);
|
|
207
|
-
let replaced = false;
|
|
208
|
-
const nextLines = lines.map((line) => {
|
|
209
|
-
try {
|
|
210
|
-
const entry = JSON.parse(line);
|
|
211
|
-
if (entry.run_id === run.run_id) {
|
|
212
|
-
replaced = true;
|
|
213
|
-
return JSON.stringify(run);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
catch {
|
|
217
|
-
// preserve malformed history lines as-is
|
|
218
|
-
}
|
|
219
|
-
return line;
|
|
220
|
-
});
|
|
221
|
-
if (!replaced)
|
|
222
|
-
nextLines.push(JSON.stringify(run));
|
|
223
|
-
writeFileSync(historyPath, `${nextLines.join("\n")}\n`);
|
|
224
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export type { RuntimeRunPatch, RuntimeRunStatus, RuntimeStageContractDraft, RuntimeStageExecutionOptions, RuntimeStageContractOptions, } from "./runtime-types.js";
|
|
2
|
-
export { archivedStageContractPath, eventLogPath, logsDirPath, promptLogPath, runHistoryPath, runPath, stageContractPath, statusLogPath, } from "./runtime-paths.js";
|
|
3
|
-
export { buildStagePrompt } from "./runtime-prompt.js";
|
|
4
|
-
export { buildRuntimeStageContract, } from "./runtime-contracts.js";
|
|
5
|
-
export { beginRuntimeRun, loadRuntimeRun, markRuntimeRunFailedAfterValidation, markRuntimeRunSucceededAfterValidation, runExecutorStage, saveRuntimeRun, updateRuntimeRun, writeStageContract, } from "./runtime-runs.js";
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { archivedStageContractPath, eventLogPath, logsDirPath, promptLogPath, runHistoryPath, runPath, stageContractPath, statusLogPath, } from "./runtime-paths.js";
|
|
2
|
-
export { buildStagePrompt } from "./runtime-prompt.js";
|
|
3
|
-
export { buildRuntimeStageContract, } from "./runtime-contracts.js";
|
|
4
|
-
export { beginRuntimeRun, loadRuntimeRun, markRuntimeRunFailedAfterValidation, markRuntimeRunSucceededAfterValidation, runExecutorStage, saveRuntimeRun, updateRuntimeRun, writeStageContract, } from "./runtime-runs.js";
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { type SourceFiles, type SourceSnapshot, type StageInputs } from "../../contracts/lib/schema.js";
|
|
2
|
-
export declare function buildVerifiableContextSourceFiles(verifiableContextPath: string, sourcePath?: string, generatedAt?: string): SourceFiles;
|
|
3
|
-
export declare function writeVerifiableContextSourceFiles(verifiableContextPath: string, sourcePath?: string, generatedAt?: string): SourceFiles;
|
|
4
|
-
export declare function buildVerifiableContextSourceSnapshot(options: {
|
|
5
|
-
verifiableContextPath: string;
|
|
6
|
-
sourceFiles?: SourceFiles;
|
|
7
|
-
sourcePath?: string;
|
|
8
|
-
runId?: string | null;
|
|
9
|
-
generatedAt?: string;
|
|
10
|
-
}): SourceSnapshot;
|
|
11
|
-
export declare function writeVerifiableContextSourceSnapshot(options: {
|
|
12
|
-
verifiableContextPath: string;
|
|
13
|
-
sourceFiles?: SourceFiles;
|
|
14
|
-
sourcePath?: string;
|
|
15
|
-
runId?: string | null;
|
|
16
|
-
generatedAt?: string;
|
|
17
|
-
}): SourceSnapshot;
|
|
18
|
-
export declare function buildBuildStageInputs(options: {
|
|
19
|
-
buildPlanId: string;
|
|
20
|
-
stageId: string;
|
|
21
|
-
snapshot: SourceSnapshot;
|
|
22
|
-
runId?: string | null;
|
|
23
|
-
generatedAt?: string;
|
|
24
|
-
}): StageInputs;
|
|
25
|
-
export declare function writeBuildStageInputs(options: {
|
|
26
|
-
verifiableContextPath: string;
|
|
27
|
-
buildPlanId: string;
|
|
28
|
-
stageId: string;
|
|
29
|
-
snapshot: SourceSnapshot;
|
|
30
|
-
runId?: string | null;
|
|
31
|
-
generatedAt?: string;
|
|
32
|
-
}): StageInputs;
|
|
33
|
-
export declare function writeBuildSourceRuntime(options: {
|
|
34
|
-
verifiableContextPath: string;
|
|
35
|
-
buildPlanId: string;
|
|
36
|
-
stageIds: string[];
|
|
37
|
-
sourcePath?: string;
|
|
38
|
-
runId?: string | null;
|
|
39
|
-
}): {
|
|
40
|
-
sourceFiles: SourceFiles;
|
|
41
|
-
snapshot: SourceSnapshot;
|
|
42
|
-
stageInputs: StageInputs[];
|
|
43
|
-
};
|
|
44
|
-
export declare function loadVerifiableContextSourceFiles(verifiableContextPath: string): SourceFiles | null;
|
|
45
|
-
export declare function loadVerifiableContextSourceSnapshot(verifiableContextPath: string): SourceSnapshot | null;
|
|
46
|
-
export declare function loadBuildStageInputs(verifiableContextPath: string, stageId: string): StageInputs | null;
|