@interf/compiler 0.22.2 → 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 +175 -234
- 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 +39 -31
- 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/--reS3xBzM5zc6QxNjZd6/_buildManifest.js +0 -11
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_clientMiddlewareManifest.js +0 -1
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_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,30 +1,22 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { BUILD_PLAN_ARTIFACT_KINDS, } from "../build-plan-primitives.js";
|
|
3
|
-
import { ArtifactIdSchema, ArtifactSchema, CheckSchema, RuntimeContractTypeSchema, RuntimeExecutorInfoSchema, RuntimeStageSchema, RuntimeTargetTypeSchema, SourceBuildMaxAttemptsSchema, SourceBuildMaxLoopsSchema, InterfIdPattern, BuildPlanIdSchema, } from "../../../contracts/lib/schema.js";
|
|
3
|
+
import { ArtifactIdSchema, ArtifactSchema, CheckSchema, RuntimeContractTypeSchema, RuntimeExecutorInfoSchema, RuntimeStageSchema, RuntimeTargetTypeSchema, StageEvidenceCountSchema, StageEvidenceEdgeSchema, StageEvidenceItemSchema, SourceBuildMaxAttemptsSchema, SourceBuildMaxLoopsSchema, InterfIdPattern, BuildPlanIdSchema, isInterfRelativePath, } from "../../../contracts/lib/schema.js";
|
|
4
4
|
// `ArtifactSchema` is used internally below in `BuildPlanContextRawSchema`'s
|
|
5
5
|
// `artifacts[]` field. The other Artifact* schemas/types are NOT
|
|
6
|
-
// re-exported through this module — callers import them directly
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
export { GateStatusSchema, ReadinessGateSchema, ReadinessSchema, ReadinessStatusSchema, VerifyTargetResultSchema, RuntimeContractTypeSchema, RuntimeExecutorInfoSchema, RuntimeStageSchema, RuntimeTargetTypeSchema, SourceFilesSchema, SourceFileSchema, SourceKindSchema, SourceSchema,
|
|
6
|
+
// re-exported through this module — callers import them directly from
|
|
7
|
+
// `contracts/lib/schema.js`. Re-exports with zero consumers were pruned
|
|
8
|
+
// to keep this barrel narrow.
|
|
9
|
+
export { GateStatusSchema, ReadinessGateSchema, ReadinessSchema, ReadinessStatusSchema, VerifyTargetResultSchema, RuntimeContractTypeSchema, RuntimeExecutorInfoSchema, RuntimeStageSchema, RuntimeTargetTypeSchema, SourceFilesSchema, SourceFileSchema, SourceKindSchema, SourceManifestAuditSchema, SourceManifestEvidenceSchema, SourceManifestFileKindSchema, SourceManifestFileSchema, SourceManifestScannerSchema, SourceManifestSchema, SourceInspectableUnitSchema, SourceSchema, SourceStateSchema, StageInputSchema, StageInputsSchema, StageEvidenceCountSchema, StageEvidenceEdgeSchema, StageEvidenceItemSchema, SourceBuildMaxAttemptsSchema, SourceBuildMaxLoopsSchema, TestCaseExpectSchema, TestTargetTypeSchema, InterfIdPattern, BuildPlanIdSchema, } from "../../../contracts/lib/schema.js";
|
|
10
10
|
const JsonRecordSchema = z.record(z.string(), z.unknown());
|
|
11
|
-
const COMPILED_RELATIVE_PATH_SEGMENT = /^(?!\.{1,2}$)[^/\\]+$/;
|
|
12
|
-
function isVerifiableContextRelativePath(value) {
|
|
13
|
-
if (value.length === 0)
|
|
14
|
-
return false;
|
|
15
|
-
if (value.startsWith("/") || value.startsWith("\\"))
|
|
16
|
-
return false;
|
|
17
|
-
return value
|
|
18
|
-
.split(/[\\/]+/)
|
|
19
|
-
.every((segment) => COMPILED_RELATIVE_PATH_SEGMENT.test(segment));
|
|
20
|
-
}
|
|
21
11
|
export const BuildPlanArtifactIdSchema = z.string().regex(InterfIdPattern);
|
|
22
12
|
export const BuildPlanArtifactKindSchema = z.enum(BUILD_PLAN_ARTIFACT_KINDS);
|
|
23
|
-
export const BuildPlanArtifactRoleSchema = z.
|
|
13
|
+
export const BuildPlanArtifactRoleSchema = z.literal("output");
|
|
24
14
|
export const BuildStageStatusSchema = z.enum(["idle", "running", "succeeded", "failed"]);
|
|
25
|
-
export const
|
|
15
|
+
export const StageFingerprintSchema = z.string().regex(/^[a-f0-9]{64}$/);
|
|
16
|
+
export const ContextGraphStageStateSchema = z.object({
|
|
26
17
|
contract_type: RuntimeContractTypeSchema.optional(),
|
|
27
18
|
status: BuildStageStatusSchema.optional(),
|
|
19
|
+
fingerprint: StageFingerprintSchema.optional(),
|
|
28
20
|
started_at: z.string().nullable().optional(),
|
|
29
21
|
finished_at: z.string().nullable().optional(),
|
|
30
22
|
counts: z.record(z.string(), z.number()).optional(),
|
|
@@ -33,10 +25,10 @@ export const VerifiableContextStageStateSchema = z.object({
|
|
|
33
25
|
summary: z.string().nullable().optional(),
|
|
34
26
|
run_id: z.string().nullable().optional(),
|
|
35
27
|
});
|
|
36
|
-
export const
|
|
28
|
+
export const ContextGraphStateSchema = z.object({
|
|
37
29
|
version: z.number().int().min(1),
|
|
38
30
|
pending: z.array(z.string()),
|
|
39
|
-
stages: z.record(z.string().regex(InterfIdPattern),
|
|
31
|
+
stages: z.record(z.string().regex(InterfIdPattern), ContextGraphStageStateSchema).optional(),
|
|
40
32
|
last_add: z.string().nullable().optional(),
|
|
41
33
|
last_build: z.string().nullable().optional(),
|
|
42
34
|
warning_count: z.number().optional(),
|
|
@@ -44,7 +36,7 @@ export const VerifiableContextStateSchema = z.object({
|
|
|
44
36
|
}).strict();
|
|
45
37
|
export const ViewSectionSchema = z.object({
|
|
46
38
|
id: z.string(),
|
|
47
|
-
type: z.enum(["status", "cards", "
|
|
39
|
+
type: z.enum(["status", "cards", "flow", "documents", "table"]),
|
|
48
40
|
title: z.string(),
|
|
49
41
|
path: z.string().optional(),
|
|
50
42
|
paths: z.array(z.string()).optional(),
|
|
@@ -56,8 +48,8 @@ export const ViewCardSchema = z.object({
|
|
|
56
48
|
denominator_metric: z.string().optional(),
|
|
57
49
|
format: z.enum(["number", "fraction", "timestamp"]),
|
|
58
50
|
});
|
|
59
|
-
export const
|
|
60
|
-
kind: z.literal("
|
|
51
|
+
export const ContextGraphHealthSchema = z.object({
|
|
52
|
+
kind: z.literal("context-graph-health"),
|
|
61
53
|
version: z.number().int().min(1),
|
|
62
54
|
generated_at: z.string(),
|
|
63
55
|
target_name: z.string(),
|
|
@@ -70,15 +62,15 @@ export const VerifiableContextHealthSchema = z.object({
|
|
|
70
62
|
metrics: z.record(z.string(), z.number()),
|
|
71
63
|
checks: z.record(z.string(), z.boolean()),
|
|
72
64
|
});
|
|
73
|
-
export const
|
|
74
|
-
kind: z.literal("
|
|
65
|
+
export const ContextGraphViewSpecSchema = z.object({
|
|
66
|
+
kind: z.literal("context-graph-view-spec"),
|
|
75
67
|
version: z.number().int().min(1),
|
|
76
68
|
generated_at: z.string(),
|
|
77
69
|
target_name: z.string(),
|
|
78
70
|
health_source: z.string(),
|
|
79
71
|
state_source: z.string(),
|
|
80
72
|
default_note: z.string().nullable(),
|
|
81
|
-
|
|
73
|
+
document_scope: z.array(z.string()),
|
|
82
74
|
cards: z.array(ViewCardSchema),
|
|
83
75
|
sections: z.array(ViewSectionSchema),
|
|
84
76
|
});
|
|
@@ -86,29 +78,37 @@ export const BuildPlanPurposeSchema = z.object({
|
|
|
86
78
|
label: z.string().min(1),
|
|
87
79
|
task_hint: z.string().min(1),
|
|
88
80
|
}).strict();
|
|
89
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Runtime projection of a single Build Plan artifact — the resolved
|
|
83
|
+
* shape stored in `.interf/build-plan/build-plan.json`. Distinct from
|
|
84
|
+
* the user-facing `Artifact` declaration in
|
|
85
|
+
* `contracts/lib/schema.ts` (which carries `shape`, `checks`, and
|
|
86
|
+
* `built_by_stages` at declaration time) and from `ArtifactRef` in
|
|
87
|
+
* `execution/lib/schema.ts` (the run-time event reference). One artifact
|
|
88
|
+
* passes through three lifecycle shapes: declared, projected, referenced.
|
|
89
|
+
*/
|
|
90
|
+
export const BuildPlanArtifactSchema = z.object({
|
|
90
91
|
id: BuildPlanArtifactIdSchema,
|
|
91
92
|
role: BuildPlanArtifactRoleSchema,
|
|
92
|
-
path: z.string().min(1).refine(
|
|
93
|
-
message: "Artifact paths must stay inside the
|
|
93
|
+
path: z.string().min(1).refine(isInterfRelativePath, {
|
|
94
|
+
message: "Artifact paths must stay inside the context graph root",
|
|
94
95
|
}),
|
|
95
96
|
kind: BuildPlanArtifactKindSchema,
|
|
96
97
|
required: z.boolean(),
|
|
97
98
|
owned_by: z.array(z.string().regex(InterfIdPattern)),
|
|
98
99
|
description: z.string().min(1),
|
|
99
100
|
});
|
|
100
|
-
export const BuildPlanArtifactSchema = BuildPlanArtifactProjectionSchema;
|
|
101
101
|
// Persisted schema for the Build Plan-defined artifact interface that one
|
|
102
|
-
//
|
|
102
|
+
// context graph must implement on disk.
|
|
103
103
|
export const BuildPlanContextRawSchema = z.object({
|
|
104
104
|
kind: z.literal("build-plan-schema"),
|
|
105
105
|
version: z.literal(1),
|
|
106
|
-
target_type: z.literal("
|
|
106
|
+
target_type: z.literal("context-graph"),
|
|
107
107
|
label: z.string().min(1),
|
|
108
108
|
artifacts: z.array(ArtifactSchema).min(1),
|
|
109
109
|
}).strict();
|
|
110
110
|
export const BuildPlanContextSchemaSchema = BuildPlanContextRawSchema;
|
|
111
|
-
export const
|
|
111
|
+
export const BuildPlanRuntimeApiSchema = z.object({
|
|
112
112
|
kind: z.literal("build"),
|
|
113
113
|
version: z.literal(1),
|
|
114
114
|
});
|
|
@@ -178,7 +178,7 @@ export const RuntimeStageContractSchema = z.object({
|
|
|
178
178
|
}).optional(),
|
|
179
179
|
}),
|
|
180
180
|
});
|
|
181
|
-
export const
|
|
181
|
+
export const ExecutionStageLedgerSchema = z.object({
|
|
182
182
|
kind: z.literal("interf-run"),
|
|
183
183
|
version: z.literal(1),
|
|
184
184
|
run_id: z.string(),
|
|
@@ -202,11 +202,31 @@ export const RuntimeRunSchema = z.object({
|
|
|
202
202
|
event_stream_path: z.string(),
|
|
203
203
|
status_path: z.string().optional(),
|
|
204
204
|
}).optional(),
|
|
205
|
+
evidence_path: z.string().min(1).optional(),
|
|
206
|
+
evidence: z.lazy(() => StageEvidenceReconciliationSchema).optional(),
|
|
205
207
|
summary: z.string(),
|
|
206
208
|
exit_code: z.number().nullable(),
|
|
207
209
|
error: z.string().nullable(),
|
|
208
210
|
});
|
|
209
|
-
export const
|
|
211
|
+
export const RejectedStageEvidenceSchema = z.object({
|
|
212
|
+
kind: z.enum(["count", "item", "edge", "file"]),
|
|
213
|
+
id: z.string().min(1),
|
|
214
|
+
reason: z.string().min(1),
|
|
215
|
+
}).strict();
|
|
216
|
+
export const StageEvidenceReconciliationSchema = z.object({
|
|
217
|
+
kind: z.literal("interf-stage-evidence-reconciliation"),
|
|
218
|
+
version: z.literal(1),
|
|
219
|
+
generated_at: z.string().min(1),
|
|
220
|
+
evidence_path: z.string().min(1).nullable(),
|
|
221
|
+
accepted: z.object({
|
|
222
|
+
counts: z.array(StageEvidenceCountSchema).default([]),
|
|
223
|
+
items: z.array(StageEvidenceItemSchema).default([]),
|
|
224
|
+
edges: z.array(StageEvidenceEdgeSchema).default([]),
|
|
225
|
+
}).strict(),
|
|
226
|
+
rejected: z.array(RejectedStageEvidenceSchema).default([]),
|
|
227
|
+
warnings: z.array(z.string().min(1)).default([]),
|
|
228
|
+
}).strict();
|
|
229
|
+
export const ExecutionInventoryEntrySchema = z.object({
|
|
210
230
|
input_artifact: ArtifactIdSchema.optional(),
|
|
211
231
|
input_path: z.string().min(1).optional(),
|
|
212
232
|
output_artifact: ArtifactIdSchema,
|
|
@@ -214,11 +234,11 @@ export const RuntimeInventoryEntrySchema = z.object({
|
|
|
214
234
|
state: z.string().min(1).optional(),
|
|
215
235
|
metadata: JsonRecordSchema.optional(),
|
|
216
236
|
}).strict();
|
|
217
|
-
export const
|
|
218
|
-
kind: z.literal("
|
|
237
|
+
export const ExecutionInventorySchema = z.object({
|
|
238
|
+
kind: z.literal("context-graph-runtime-ledger").optional(),
|
|
219
239
|
version: z.number().int().min(1).optional(),
|
|
220
240
|
stage: RuntimeStageSchema.optional(),
|
|
221
|
-
entries: z.array(
|
|
241
|
+
entries: z.array(ExecutionInventoryEntrySchema),
|
|
222
242
|
total: z.number().int().nonnegative(),
|
|
223
243
|
});
|
|
224
244
|
export const BuildPlanImprovementLoopSummarySchema = z.object({
|
|
@@ -244,13 +264,13 @@ export const BuildPlanImprovementContextSchema = z.object({
|
|
|
244
264
|
max_attempts: SourceBuildMaxAttemptsSchema,
|
|
245
265
|
review_paths: z.object({
|
|
246
266
|
build_plan_root: z.string(),
|
|
247
|
-
|
|
248
|
-
|
|
267
|
+
context_graph_runtime: z.string().nullable(),
|
|
268
|
+
benchmark_runs: z.string().nullable(),
|
|
249
269
|
execution_shells: z.string().nullable(),
|
|
250
270
|
test_runs: z.string().nullable(),
|
|
251
271
|
test_sandboxes: z.string().nullable(),
|
|
252
272
|
}),
|
|
253
|
-
|
|
273
|
+
benchmark_questions: z.object({
|
|
254
274
|
count: z.number().int().min(0),
|
|
255
275
|
questions: z.array(z.object({
|
|
256
276
|
id: z.string(),
|
|
@@ -265,7 +285,7 @@ export const PreservedShellTypeSchema = z.enum([
|
|
|
265
285
|
"build-plan-authoring",
|
|
266
286
|
"build-plan-improvement",
|
|
267
287
|
]);
|
|
268
|
-
export const
|
|
288
|
+
export const PreservedShellStateSchema = z.object({
|
|
269
289
|
kind: z.literal("interf-preserved-shell"),
|
|
270
290
|
version: z.literal(1),
|
|
271
291
|
shell_type: PreservedShellTypeSchema,
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { existsSync, readdirSync, rmSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { initializeBuildRuntimeState } from "./state.js";
|
|
4
|
+
import { stageExecutionShellsRoot, testRootForContextGraph, testTargetsRootForContextGraph, buildPlanImprovementLoopsRoot, contextGraphQueryAcceptanceRoot, contextGraphRuntimeRoot, contextGraphRuntimeLogsRoot, } from "./context-graph-paths.js";
|
|
5
|
+
function removeIfExists(path) {
|
|
6
|
+
if (existsSync(path)) {
|
|
7
|
+
rmSync(path, { recursive: true, force: true });
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const BUILD_RUNTIME_RESET_ENTRIES = [
|
|
11
|
+
"state.json",
|
|
12
|
+
"health.json",
|
|
13
|
+
"view-spec.json",
|
|
14
|
+
"inventory.json",
|
|
15
|
+
"run.json",
|
|
16
|
+
"source-manifest.json",
|
|
17
|
+
"source-manifest.audit.json",
|
|
18
|
+
"source-files.json",
|
|
19
|
+
"source-state.json",
|
|
20
|
+
"stage-contract.json",
|
|
21
|
+
"stages",
|
|
22
|
+
];
|
|
23
|
+
const PRESERVED_CONTEXT_GRAPH_ROOTS = new Set([
|
|
24
|
+
".agents",
|
|
25
|
+
".claude",
|
|
26
|
+
".codex",
|
|
27
|
+
".cursor",
|
|
28
|
+
".gitignore",
|
|
29
|
+
".interf",
|
|
30
|
+
".interfignore",
|
|
31
|
+
"AGENTS.md",
|
|
32
|
+
"CLAUDE.md",
|
|
33
|
+
]);
|
|
34
|
+
export function clearBuildRuntimeDerivedArtifacts(contextGraphPath) {
|
|
35
|
+
const runtimeRoot = contextGraphRuntimeRoot(contextGraphPath);
|
|
36
|
+
for (const entry of BUILD_RUNTIME_RESET_ENTRIES) {
|
|
37
|
+
removeIfExists(join(runtimeRoot, entry));
|
|
38
|
+
}
|
|
39
|
+
removeIfExists(contextGraphQueryAcceptanceRoot(contextGraphPath));
|
|
40
|
+
}
|
|
41
|
+
function resetBuildGeneratedOutputs(contextGraphPath) {
|
|
42
|
+
for (const entry of readdirSync(contextGraphPath)) {
|
|
43
|
+
if (PRESERVED_CONTEXT_GRAPH_ROOTS.has(entry))
|
|
44
|
+
continue;
|
|
45
|
+
removeIfExists(join(contextGraphPath, entry));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function resetBuildGeneratedState(contextGraphPath, scope = "build") {
|
|
49
|
+
resetBuildGeneratedOutputs(contextGraphPath);
|
|
50
|
+
// Stage reuse fingerprints live in state.json, so this is the load-bearing
|
|
51
|
+
// build reset path that forces a post-reset build to re-run every stage.
|
|
52
|
+
clearBuildRuntimeDerivedArtifacts(contextGraphPath);
|
|
53
|
+
initializeBuildRuntimeState(contextGraphPath);
|
|
54
|
+
if (scope === "all") {
|
|
55
|
+
removeIfExists(stageExecutionShellsRoot(contextGraphPath));
|
|
56
|
+
removeIfExists(buildPlanImprovementLoopsRoot(contextGraphPath));
|
|
57
|
+
removeIfExists(contextGraphRuntimeLogsRoot(contextGraphPath));
|
|
58
|
+
removeIfExists(join(contextGraphRuntimeRoot(contextGraphPath), "run-history.jsonl"));
|
|
59
|
+
removeIfExists(testRootForContextGraph(contextGraphPath));
|
|
60
|
+
removeIfExists(testTargetsRootForContextGraph(contextGraphPath));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BUILD_PLAN_SCHEMA_FILE } from "./
|
|
1
|
+
import { BUILD_PLAN_SCHEMA_FILE } from "./context-graph-schema.js";
|
|
2
2
|
export function buildRuntimeStageContract(options) {
|
|
3
3
|
const localSkillDocs = options.localSkillDocs ?? [];
|
|
4
4
|
const buildPlanNotes = options.buildPlanNotes ?? [];
|
|
@@ -23,9 +23,9 @@ export function buildRuntimeStageContract(options) {
|
|
|
23
23
|
execution_mode: "deterministic",
|
|
24
24
|
status_prefixes: ["STATUS:", "DONE:", "BLOCKED:", "ERROR:"],
|
|
25
25
|
notes: [
|
|
26
|
-
`This is the "${options.stageLabel}" stage for the
|
|
26
|
+
`This is the "${options.stageLabel}" stage for the context graph "${options.contextGraphName}".`,
|
|
27
27
|
"The Build Plan is the authoritative plan layer for this run.",
|
|
28
|
-
`Use \`build-plan/${BUILD_PLAN_SCHEMA_FILE}\` as the deterministic
|
|
28
|
+
`Use \`build-plan/${BUILD_PLAN_SCHEMA_FILE}\` as the deterministic requested Artifact contract for this context graph.`,
|
|
29
29
|
"Honor the declared read and write artifacts instead of inventing a parallel process.",
|
|
30
30
|
"Only create or update files that fall under the declared write targets for this stage.",
|
|
31
31
|
"Before emitting DONE, satisfy every check listed under `artifacts.write_contracts[]` for the write Artifacts this stage owns.",
|
|
@@ -36,8 +36,8 @@ export function buildRuntimeStageContract(options) {
|
|
|
36
36
|
? [
|
|
37
37
|
"Read any local instruction docs listed in the contract before you write artifacts or declare the stage complete.",
|
|
38
38
|
options.instructions.effective_mode === "override"
|
|
39
|
-
? "Local stage docs replace the default Build Plan guidance for this run, but they still do not bypass required writes, declared
|
|
40
|
-
: "Local stage docs can refine the stage behavior, but they do not bypass required writes, declared
|
|
39
|
+
? "Local stage docs replace the default Build Plan guidance for this run, but they still do not bypass required writes, declared evidence artifacts, or deterministic runtime reconciliation."
|
|
40
|
+
: "Local stage docs can refine the stage behavior, but they do not bypass required writes, declared evidence artifacts, or deterministic runtime reconciliation.",
|
|
41
41
|
]
|
|
42
42
|
: []),
|
|
43
43
|
],
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ExecutionInventory, type ExecutionInventoryEntry } from "./lib/schema.js";
|
|
2
|
+
export declare function emptyExecutionInventory(): ExecutionInventory;
|
|
3
|
+
export declare function buildInventoryFromEntries(entries: ExecutionInventoryEntry[], stage?: string): ExecutionInventory;
|
|
4
|
+
export declare function buildInventoryEntryCount(inventory: ExecutionInventory | null): number;
|
|
5
|
+
export declare function buildInventoryTotal(inventory: ExecutionInventory | null): number;
|
|
6
|
+
export declare function buildInventoryFrontmatterScannedCount(inventory: ExecutionInventory | null): number;
|
|
7
|
+
export declare function buildInventoryAbstractCoverageCount(inventory: ExecutionInventory | null): number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function emptyExecutionInventory() {
|
|
2
2
|
return {
|
|
3
|
-
kind: "
|
|
3
|
+
kind: "context-graph-runtime-ledger",
|
|
4
4
|
version: 1,
|
|
5
5
|
entries: [],
|
|
6
6
|
total: 0,
|
|
@@ -8,7 +8,7 @@ export function emptyRuntimeInventory() {
|
|
|
8
8
|
}
|
|
9
9
|
export function buildInventoryFromEntries(entries, stage) {
|
|
10
10
|
return {
|
|
11
|
-
kind: "
|
|
11
|
+
kind: "context-graph-runtime-ledger",
|
|
12
12
|
version: 1,
|
|
13
13
|
...(stage ? { stage } : {}),
|
|
14
14
|
entries,
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { contextGraphRuntimeArchivedStageContractPath, contextGraphRuntimeLogsRoot, contextGraphExecutionStageLedgerHistoryPath, contextGraphExecutionStageLedgerPath, contextGraphRuntimeStageContractPath, } from "./context-graph-paths.js";
|
|
3
3
|
export function runPath(dirPath) {
|
|
4
|
-
return
|
|
4
|
+
return contextGraphExecutionStageLedgerPath(dirPath);
|
|
5
5
|
}
|
|
6
6
|
export function runHistoryPath(dirPath) {
|
|
7
|
-
return
|
|
7
|
+
return contextGraphExecutionStageLedgerHistoryPath(dirPath);
|
|
8
8
|
}
|
|
9
9
|
export function stageContractPath(dirPath) {
|
|
10
|
-
return
|
|
10
|
+
return contextGraphRuntimeStageContractPath(dirPath);
|
|
11
11
|
}
|
|
12
12
|
export function archivedStageContractPath(dirPath, runId) {
|
|
13
|
-
return
|
|
13
|
+
return contextGraphRuntimeArchivedStageContractPath(dirPath, runId);
|
|
14
14
|
}
|
|
15
15
|
export function logsDirPath(dirPath) {
|
|
16
|
-
return
|
|
16
|
+
return contextGraphRuntimeLogsRoot(dirPath);
|
|
17
17
|
}
|
|
18
18
|
export function promptLogPath(dirPath, runId) {
|
|
19
19
|
return join(logsDirPath(dirPath), `${runId}.prompt.txt`);
|
|
@@ -8,7 +8,7 @@ export function buildStagePrompt(instructions, contractPath, statusLines) {
|
|
|
8
8
|
]
|
|
9
9
|
: instructions.effective_mode === "extend"
|
|
10
10
|
? [
|
|
11
|
-
"Use the current Build Plan docs as the default
|
|
11
|
+
"Use the current Build Plan docs as the default instructions for this run.",
|
|
12
12
|
"Then apply any additional local stage instruction docs referenced by the contract as stage-specific extensions.",
|
|
13
13
|
]
|
|
14
14
|
: [
|
|
@@ -23,16 +23,17 @@ export function buildStagePrompt(instructions, contractPath, statusLines) {
|
|
|
23
23
|
`Read \`${contractPath}\` first. It is the authoritative contract for this stage.`,
|
|
24
24
|
"If `runtime/paths.json` exists in this shell, read it next. It maps Build Plan Artifact ids onto the shell-local `inputs/` and `outputs/` mounts for this stage.",
|
|
25
25
|
"For file Artifact mounts, `runtime/paths.json` also gives the exact file path inside the `inputs/` or `outputs/` mount root.",
|
|
26
|
+
"Before DONE, run `node runtime/check-stage.mjs` from the shell root and fix outputs until it prints `VALID:`.",
|
|
26
27
|
"Honor the contract's counts, artifact paths, and policies instead of inventing another Build Plan.",
|
|
27
28
|
"The contract's `artifacts.write_contracts[]` lists the checks Interf will run against the Artifacts this stage writes. Treat those checks as required output constraints.",
|
|
28
|
-
"Read only the files named by the contract's `artifacts.reads` list
|
|
29
|
+
"Read only the files named by the contract's `artifacts.reads` list, `runtime/source-manifest.json`, `runtime/stage-inputs.json`, and any paths those files explicitly assign to this stage. `runtime/source-state.json` is compatibility-only and is not stage authority.",
|
|
29
30
|
"Prefer direct file-reading and search tools over shell commands when you inspect inputs, docs, or generated outputs.",
|
|
30
31
|
"Do not use shell helpers like `cat`, `sed`, `ls`, or `find` for routine file inspection if a native read/search tool can do the same job.",
|
|
31
32
|
"If the contract lists `instructions.local_docs`, open every one of those files before you write artifacts or declare the stage complete.",
|
|
32
|
-
"If `AGENTS.md` is listed in the contract, use it only for
|
|
33
|
-
"`.interf/runtime/run.json`, `.interf/runtime/state.json`, `.interf/runtime/health.json`, and `.interf/runtime/view-spec.json` are runtime artifacts written by Interf. You may read them, but do not create, edit, or replace them unless the contract explicitly marks a different
|
|
33
|
+
"If `AGENTS.md` is listed in the contract, use it only for context-graph routing that is directly relevant to this stage.",
|
|
34
|
+
"`.interf/runtime/run.json`, `.interf/runtime/state.json`, `.interf/runtime/health.json`, and `.interf/runtime/view-spec.json` are runtime artifacts written by Interf. You may read them, but do not create, edit, or replace them unless the contract explicitly marks a different evidence artifact as stage-owned.",
|
|
34
35
|
"If a contract-listed output file does not exist yet, create it in one whole-file write. Do not attempt patch-style edits against a missing runtime path.",
|
|
35
|
-
"Stay inside the current
|
|
36
|
+
"Stay inside the current context graph. Do not try to open repo docs, repo source files, or other paths outside this context unless the stage contract explicitly requires them.",
|
|
36
37
|
instructions.effective_mode === "override"
|
|
37
38
|
? "Do not depend on any repo-root or globally installed skill cache for this run. Local stage instruction docs are the primary Build Plan layer for this run."
|
|
38
39
|
: "Do not depend on any repo-root or globally installed skill cache for this run. Use the current Build Plan stage docs and the contract as the default behavior.",
|
|
@@ -43,7 +44,7 @@ export function buildStagePrompt(instructions, contractPath, statusLines) {
|
|
|
43
44
|
"Before any long-running source inspection or shell-based helper step, emit a STATUS: line that names the current subtask.",
|
|
44
45
|
"If work stays in progress, do not remain silent for more than about one minute. Emit another STATUS: line when you switch files, page groups, targets, or extraction passes.",
|
|
45
46
|
"If you respond conversationally instead of executing the stage, the run will be treated as failed.",
|
|
46
|
-
"As soon as the required
|
|
47
|
+
"As soon as the required evidence artifacts are complete, stop. Do not keep browsing or auditing after the contract is satisfied.",
|
|
47
48
|
...statusLines,
|
|
48
49
|
].join("\n");
|
|
49
50
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type BuildPlanStageDefinition } from "../../build-plans/package/build-plan-definitions.js";
|
|
2
|
-
export declare function reconcileBuildStageRun(dirPath: string, stage:
|
|
2
|
+
export declare function reconcileBuildStageRun(dirPath: string, stage: BuildPlanStageDefinition): boolean;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { existsSync, readFileSync, statSync,
|
|
1
|
+
import { existsSync, readFileSync, statSync, } from "node:fs";
|
|
2
2
|
import { extname, join, relative } from "node:path";
|
|
3
3
|
import { listFilesRecursive } from "../../contracts/utils/filesystem.js";
|
|
4
|
-
import {
|
|
4
|
+
import { contextGraphArtifactAbsolutePath, findBuildPlanContextArtifact, readBuildPlanContextFile, } from "./context-graph-schema.js";
|
|
5
5
|
import { parseJsonFrontmatter } from "../../contracts/utils/parse.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { loadExecutionStageLedger } from "./runtime.js";
|
|
7
|
+
import { initContextGraphState, loadState, refreshContextGraphArtifacts, saveState, } from "./state.js";
|
|
8
8
|
import { buildInventoryFromEntries } from "./runtime-inventory.js";
|
|
9
9
|
import { STANDARD_EVIDENCE_FRONTMATTER_KEYS, } from "../../contracts/lib/schema.js";
|
|
10
|
-
import {
|
|
10
|
+
import { contextGraphRuntimeRoot, buildPlanPackagePathForContextGraph } from "./context-graph-paths.js";
|
|
11
11
|
import { extractSynthAbstract, isOutputMarkdownFile } from "./validate.js";
|
|
12
|
+
import { writeJsonAtomic } from "./atomic-fs.js";
|
|
13
|
+
import { computeStageFingerprint } from "./stage-reuse.js";
|
|
12
14
|
function readActiveRunStartedAtMs(dirPath) {
|
|
13
|
-
const run =
|
|
15
|
+
const run = loadExecutionStageLedger(dirPath);
|
|
14
16
|
if (!run)
|
|
15
17
|
return null;
|
|
16
18
|
const startedAtMs = Date.parse(run.started_at);
|
|
@@ -39,7 +41,7 @@ function anyPathUpdatedSince(absolutePath, sinceMs) {
|
|
|
39
41
|
return false;
|
|
40
42
|
}
|
|
41
43
|
function artifactCount(dirPath, artifactPath, kind) {
|
|
42
|
-
const absolutePath =
|
|
44
|
+
const absolutePath = contextGraphArtifactAbsolutePath(dirPath, { path: artifactPath });
|
|
43
45
|
if (!existsSync(absolutePath))
|
|
44
46
|
return 0;
|
|
45
47
|
if (kind === "file")
|
|
@@ -53,8 +55,8 @@ function summaryAbstract(content) {
|
|
|
53
55
|
return extractSynthAbstract(parsed.frontmatter, parsed.body);
|
|
54
56
|
}
|
|
55
57
|
function listZoneArtifacts(dirPath, artifact) {
|
|
56
|
-
const absolutePath =
|
|
57
|
-
if (!existsSync(absolutePath)
|
|
58
|
+
const absolutePath = contextGraphArtifactAbsolutePath(dirPath, artifact);
|
|
59
|
+
if (!existsSync(absolutePath))
|
|
58
60
|
return [];
|
|
59
61
|
if (artifact.kind === "file") {
|
|
60
62
|
try {
|
|
@@ -95,15 +97,15 @@ function buildInventoryMetadata(options) {
|
|
|
95
97
|
return metadata;
|
|
96
98
|
}
|
|
97
99
|
function buildStageInventoryEntries(dirPath, stage) {
|
|
98
|
-
const schema = readBuildPlanContextFile(
|
|
100
|
+
const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(dirPath));
|
|
99
101
|
if (!schema)
|
|
100
102
|
return [];
|
|
101
103
|
const readableInputArtifacts = stage.reads
|
|
102
104
|
.map((artifactId) => findBuildPlanContextArtifact(schema, artifactId))
|
|
103
|
-
.filter((artifact) => artifact !== null
|
|
105
|
+
.filter((artifact) => artifact !== null);
|
|
104
106
|
const outputArtifacts = stage.writes
|
|
105
107
|
.map((artifactId) => findBuildPlanContextArtifact(schema, artifactId))
|
|
106
|
-
.filter((artifact) => artifact !== null
|
|
108
|
+
.filter((artifact) => artifact !== null);
|
|
107
109
|
if (outputArtifacts.length === 0)
|
|
108
110
|
return [];
|
|
109
111
|
const entries = [];
|
|
@@ -148,16 +150,16 @@ function buildStageInventoryEntries(dirPath, stage) {
|
|
|
148
150
|
return entries.sort((left, right) => `${left.output_artifact}:${left.output_path}`.localeCompare(`${right.output_artifact}:${right.output_path}`));
|
|
149
151
|
}
|
|
150
152
|
function writeStageInventory(dirPath, stageId, entries) {
|
|
151
|
-
|
|
153
|
+
writeJsonAtomic(join(contextGraphRuntimeRoot(dirPath), "inventory.json"), buildInventoryFromEntries(entries, stageId));
|
|
152
154
|
}
|
|
153
155
|
function activeRunCounts(dirPath) {
|
|
154
|
-
return { ...(
|
|
156
|
+
return { ...(loadExecutionStageLedger(dirPath)?.counts ?? {}) };
|
|
155
157
|
}
|
|
156
158
|
export function reconcileBuildStageRun(dirPath, stage) {
|
|
157
159
|
const startedAtMs = readActiveRunStartedAtMs(dirPath);
|
|
158
160
|
if (startedAtMs === null)
|
|
159
161
|
return false;
|
|
160
|
-
const schema = readBuildPlanContextFile(
|
|
162
|
+
const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(dirPath));
|
|
161
163
|
if (!schema)
|
|
162
164
|
return false;
|
|
163
165
|
const writeArtifacts = stage.writes
|
|
@@ -165,31 +167,33 @@ export function reconcileBuildStageRun(dirPath, stage) {
|
|
|
165
167
|
.filter((artifact) => artifact !== null);
|
|
166
168
|
if (writeArtifacts.length === 0)
|
|
167
169
|
return false;
|
|
168
|
-
if (!writeArtifacts.some((artifact) => anyPathUpdatedSince(
|
|
170
|
+
if (!writeArtifacts.some((artifact) => anyPathUpdatedSince(contextGraphArtifactAbsolutePath(dirPath, artifact), startedAtMs))) {
|
|
169
171
|
return false;
|
|
170
172
|
}
|
|
171
173
|
writeStageInventory(dirPath, stage.id, buildStageInventoryEntries(dirPath, stage));
|
|
172
174
|
const currentState = {
|
|
173
|
-
...
|
|
175
|
+
...initContextGraphState(),
|
|
174
176
|
...(loadState(dirPath) ?? {}),
|
|
175
177
|
stages: {
|
|
176
178
|
...(loadState(dirPath)?.stages ?? {}),
|
|
177
179
|
},
|
|
178
180
|
};
|
|
179
181
|
const now = new Date().toISOString();
|
|
182
|
+
const fingerprint = computeStageFingerprint(dirPath, stage);
|
|
180
183
|
currentState.stages[stage.id] = {
|
|
181
184
|
contract_type: stage.contractType,
|
|
182
185
|
status: "succeeded",
|
|
183
|
-
|
|
186
|
+
...(fingerprint ? { fingerprint } : {}),
|
|
187
|
+
started_at: loadExecutionStageLedger(dirPath)?.started_at ?? now,
|
|
184
188
|
finished_at: now,
|
|
185
189
|
counts: activeRunCounts(dirPath),
|
|
186
190
|
artifact_counts: Object.fromEntries(writeArtifacts.map((artifact) => [artifact.id, artifactCount(dirPath, artifact.path, artifact.kind)])),
|
|
187
191
|
artifacts: writeArtifacts.map((artifact) => artifact.kind === "file" ? artifact.path : `${artifact.path}/`),
|
|
188
|
-
summary:
|
|
189
|
-
run_id:
|
|
192
|
+
summary: loadExecutionStageLedger(dirPath)?.summary ?? null,
|
|
193
|
+
run_id: loadExecutionStageLedger(dirPath)?.run_id ?? null,
|
|
190
194
|
};
|
|
191
195
|
currentState.last_build = now;
|
|
192
196
|
saveState(dirPath, currentState);
|
|
193
|
-
|
|
197
|
+
refreshContextGraphArtifacts(dirPath, { ensureViewSpec: true });
|
|
194
198
|
return true;
|
|
195
199
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ExecutionStageLedger, type RuntimeStageContract } from "./lib/schema.js";
|
|
2
|
+
import { type ExecutionStageLedgerPatch, type RuntimeStageExecutionOptions } from "./runtime-types.js";
|
|
3
|
+
export declare function loadExecutionStageLedger(dirPath: string): ExecutionStageLedger | null;
|
|
4
|
+
export declare function saveExecutionStageLedger(dirPath: string, run: ExecutionStageLedger): void;
|
|
5
|
+
export declare function writeStageContract(dirPath: string, contract: RuntimeStageContract): string;
|
|
6
|
+
export declare function runExecutorStage(options: RuntimeStageExecutionOptions): Promise<number>;
|
|
7
|
+
export declare function beginExecutionStageLedger(dirPath: string, run: ExecutionStageLedger): ExecutionStageLedger;
|
|
8
|
+
export declare function updateExecutionStageLedger(dirPath: string, patch: ExecutionStageLedgerPatch): ExecutionStageLedger | null;
|
|
9
|
+
export declare function markExecutionStageLedgerFailedAfterValidation(dirPath: string, summary: string): ExecutionStageLedger | null;
|
|
10
|
+
export declare function markExecutionStageLedgerSucceededAfterValidation(dirPath: string, summary: string): ExecutionStageLedger | null;
|