@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
|
@@ -2,30 +2,30 @@ import { cpSync, existsSync, mkdirSync, mkdtempSync, rmSync } from "node:fs";
|
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import chalk from "chalk";
|
|
5
|
-
import {
|
|
6
|
-
import { readInterfConfig } from "../
|
|
7
|
-
import { resolveLocalExecutor, } from "./agents/lib/executors.js";
|
|
5
|
+
import { buildContextGraph, } from "./build/build-plan-runs.js";
|
|
6
|
+
import { readInterfConfig } from "../projects/interf.js";
|
|
7
|
+
import { buildRuntimeExecutorInfo, resolveLocalExecutor, } from "./agents/lib/executors.js";
|
|
8
8
|
import { formatAgentExecutionProfile } from "./agents/lib/execution-profile.js";
|
|
9
9
|
import { loadAgentsRegistry } from "./agents/registry.js";
|
|
10
10
|
import { buildRoleExecutorBundle } from "./agents/role-executors.js";
|
|
11
11
|
import { clearBuildRuntimeDerivedArtifacts, } from "./build/reset.js";
|
|
12
12
|
import { formatActiveBuildPlanStageLabel, resolveRequiredBuildPlanFromConfig, } from "../build-plans/package/build-plan-definitions.js";
|
|
13
13
|
import { createRunEventId, createRunEventTimestamp, } from "./execution/events.js";
|
|
14
|
-
import {
|
|
14
|
+
import { loadContextGraphProjectConfig, resolveBuildMaxAttempts, resolveBuildMaxLoops, buildTestSpecFromSourceFolderConfig, } from "../projects/source-config.js";
|
|
15
15
|
import { runBuildPlanImprovementLoop } from "../build-plans/authoring/build-plan-improvement.js";
|
|
16
|
-
import { stageExecutionShellsRoot,
|
|
17
|
-
import { listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./build/
|
|
16
|
+
import { stageExecutionShellsRoot, buildPlanPackagePathForContextGraph, } from "./build/context-graph-paths.js";
|
|
17
|
+
import { listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./build/context-graph-schema.js";
|
|
18
18
|
import { initializeBuildRuntimeState } from "./build/state.js";
|
|
19
|
-
import {
|
|
19
|
+
import { benchmarkPassRate, runBenchmarkForExecutor, runSavedContextGraphBenchmark, } from "./verify/benchmark-run.js";
|
|
20
20
|
import { runBuildPlanAuthoringDraft, } from "../build-plans/authoring/build-plan-authoring.js";
|
|
21
|
-
import {
|
|
21
|
+
import { draftBenchmarkQuestions, } from "./benchmark-question-draft.js";
|
|
22
22
|
import { planActionProposalWithExecutor, } from "./action-planner.js";
|
|
23
|
-
import { ActionProposalPlanSchema, } from "./
|
|
24
|
-
function printBuildFailure(
|
|
25
|
-
resolveRequiredBuildPlanFromConfig(readInterfConfig(
|
|
23
|
+
import { ActionProposalPlanSchema, } from "./schemas/index.js";
|
|
24
|
+
function printBuildFailure(contextGraphPath, failedStage) {
|
|
25
|
+
resolveRequiredBuildPlanFromConfig(readInterfConfig(contextGraphPath), `.interf/interf.json for ${contextGraphPath}`);
|
|
26
26
|
let failedStageLabel = failedStage ? `Stage "${failedStage}"` : "Build";
|
|
27
27
|
try {
|
|
28
|
-
failedStageLabel = formatActiveBuildPlanStageLabel(
|
|
28
|
+
failedStageLabel = formatActiveBuildPlanStageLabel(contextGraphPath, failedStage ?? "build");
|
|
29
29
|
}
|
|
30
30
|
catch {
|
|
31
31
|
// Keep the original failure visible even when the failure is outside a declared Build Plan stage.
|
|
@@ -35,9 +35,9 @@ function printBuildFailure(verifiableContextPath, failedStage) {
|
|
|
35
35
|
function testScore(outcome) {
|
|
36
36
|
return (outcome.result.passedCases * 1000) + outcome.result.passedChecks;
|
|
37
37
|
}
|
|
38
|
-
async function
|
|
38
|
+
async function buildContextGraphWithReporter(executor, contextGraphPath, options = {}) {
|
|
39
39
|
console.log();
|
|
40
|
-
console.log(chalk.bold(` ${options.heading ?? "Building
|
|
40
|
+
console.log(chalk.bold(` ${options.heading ?? "Building Context Graph..."}`));
|
|
41
41
|
const profileLabel = formatAgentExecutionProfile(executor.executionProfile);
|
|
42
42
|
if (profileLabel) {
|
|
43
43
|
console.log(chalk.dim(` Execution profile: ${profileLabel}`));
|
|
@@ -47,27 +47,28 @@ async function buildVerifiableContextWithReporter(executor, verifiableContextPat
|
|
|
47
47
|
line: (message) => console.log(chalk.dim(` ${message}`)),
|
|
48
48
|
blankLine: () => console.log(),
|
|
49
49
|
};
|
|
50
|
-
const result = await
|
|
50
|
+
const result = await buildContextGraph({
|
|
51
51
|
executor,
|
|
52
52
|
resolveStageExecutor: options.resolveStageExecutor,
|
|
53
|
-
|
|
53
|
+
contextGraphPath,
|
|
54
54
|
reporter,
|
|
55
55
|
preserveStageShells: options.preserveStageShells,
|
|
56
56
|
runId: options.runId,
|
|
57
57
|
events: options.events,
|
|
58
|
+
maxStageValidationAttempts: options.maxStageValidationAttempts,
|
|
58
59
|
});
|
|
59
60
|
if (!result.ok)
|
|
60
61
|
return result;
|
|
61
62
|
console.log();
|
|
62
|
-
console.log(chalk.green(` ${options.successMessage ?? "
|
|
63
|
+
console.log(chalk.green(` ${options.successMessage ?? "Context Graph ready."}`));
|
|
63
64
|
return result;
|
|
64
65
|
}
|
|
65
|
-
function
|
|
66
|
+
function printSavedBenchmarkOutcome(prefix, outcome) {
|
|
66
67
|
const color = outcome.result.ok ? chalk.green : chalk.red;
|
|
67
68
|
const status = outcome.result.ok ? chalk.green("PASS") : chalk.red("FAIL");
|
|
68
69
|
console.log(chalk.bold(` ${prefix}`));
|
|
69
70
|
console.log();
|
|
70
|
-
console.log(color(` ${status} ${outcome.result.passedCases}/${outcome.result.totalCases}
|
|
71
|
+
console.log(color(` ${status} ${outcome.result.passedCases}/${outcome.result.totalCases} benchmark checks`));
|
|
71
72
|
console.log();
|
|
72
73
|
for (const [index, caseResult] of outcome.result.caseResults.entries()) {
|
|
73
74
|
const caseStatus = caseResult.ok ? chalk.green("PASS") : chalk.red("FAIL");
|
|
@@ -85,10 +86,9 @@ function printSavedReadinessOutcome(prefix, outcome) {
|
|
|
85
86
|
}
|
|
86
87
|
console.log(chalk.dim(` Saved run: ${outcome.displayRunPath ?? outcome.runPath}`));
|
|
87
88
|
}
|
|
88
|
-
function bestVariationRestorePaths(
|
|
89
|
-
const schema = readBuildPlanContextFile(
|
|
89
|
+
function bestVariationRestorePaths(contextGraphPath) {
|
|
90
|
+
const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(contextGraphPath));
|
|
90
91
|
const artifactPaths = (schema ? listBuildPlanContextArtifacts(schema) : [])
|
|
91
|
-
.filter((artifact) => artifact.kind !== "runtime")
|
|
92
92
|
.map((artifact) => artifact.path);
|
|
93
93
|
return [
|
|
94
94
|
"AGENTS.md",
|
|
@@ -114,45 +114,48 @@ function copyRelativePathIfPresent(sourceRoot, targetRoot, relativePath) {
|
|
|
114
114
|
errorOnExist: false,
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
|
-
function
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
for (const relativePath of bestVariationRestorePaths(
|
|
121
|
-
copyRelativePathIfPresent(
|
|
117
|
+
function captureBestBuildState(contextGraphPath) {
|
|
118
|
+
const backupRoot = mkdtempSync(join(tmpdir(), "interf-build-attempt-"));
|
|
119
|
+
const backupPath = join(backupRoot, "context-graph");
|
|
120
|
+
for (const relativePath of bestVariationRestorePaths(contextGraphPath)) {
|
|
121
|
+
copyRelativePathIfPresent(contextGraphPath, backupPath, relativePath);
|
|
122
122
|
}
|
|
123
|
-
return
|
|
123
|
+
return backupPath;
|
|
124
124
|
}
|
|
125
|
-
function restoreBestBuildState(
|
|
126
|
-
for (const relativePath of bestVariationRestorePaths(
|
|
127
|
-
rmSync(join(
|
|
128
|
-
copyRelativePathIfPresent(
|
|
125
|
+
function restoreBestBuildState(backupPath, contextGraphPath) {
|
|
126
|
+
for (const relativePath of bestVariationRestorePaths(contextGraphPath)) {
|
|
127
|
+
rmSync(join(contextGraphPath, relativePath), { recursive: true, force: true });
|
|
128
|
+
copyRelativePathIfPresent(backupPath, contextGraphPath, relativePath);
|
|
129
129
|
}
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
// Restoring a changed Build Plan must invalidate stage fingerprints; the next
|
|
131
|
+
// build has to validate the restored graph against the restored Plan from zero.
|
|
132
|
+
clearBuildRuntimeDerivedArtifacts(contextGraphPath);
|
|
133
|
+
initializeBuildRuntimeState(contextGraphPath);
|
|
132
134
|
}
|
|
133
135
|
async function runBuildPlanVariation(options) {
|
|
134
136
|
let bestOutcome = null;
|
|
135
|
-
let
|
|
137
|
+
let bestGraphBackupPath = null;
|
|
136
138
|
let bestAttempt = 0;
|
|
137
139
|
let attemptsRun = 0;
|
|
138
140
|
try {
|
|
139
141
|
for (let attempt = 1; attempt <= options.maxAttempts; attempt += 1) {
|
|
140
142
|
attemptsRun = attempt;
|
|
141
|
-
const result = await
|
|
143
|
+
const result = await buildContextGraphWithReporter(options.executor, options.contextGraphPath, {
|
|
142
144
|
heading: options.maxAttempts > 1
|
|
143
|
-
? `Building
|
|
144
|
-
: `Building
|
|
145
|
+
? `Building Context Graph (${options.variationLabel}, attempt ${attempt}/${options.maxAttempts})...`
|
|
146
|
+
: `Building Context Graph (${options.variationLabel})...`,
|
|
145
147
|
successMessage: options.maxAttempts > 1
|
|
146
|
-
? `
|
|
147
|
-
: `
|
|
148
|
+
? `Context Graph ready for ${options.variationLabel}, attempt ${attempt}.`
|
|
149
|
+
: `Context Graph ready for ${options.variationLabel}.`,
|
|
148
150
|
preserveStageShells: options.preserveStageShells,
|
|
149
151
|
runId: options.runId,
|
|
150
152
|
events: options.events,
|
|
151
153
|
resolveStageExecutor: options.resolveStageExecutor,
|
|
154
|
+
maxStageValidationAttempts: options.maxAttempts,
|
|
152
155
|
});
|
|
153
156
|
if (!result.ok) {
|
|
154
|
-
printBuildFailure(options.
|
|
155
|
-
printStageShellReviewHint(options.
|
|
157
|
+
printBuildFailure(options.contextGraphPath, result.failedStage);
|
|
158
|
+
printStageShellReviewHint(options.contextGraphPath, options.preserveStageShells, "failure");
|
|
156
159
|
if (attempt < options.maxAttempts) {
|
|
157
160
|
console.log(chalk.yellow(` ${options.variationLabel} attempt ${attempt}/${options.maxAttempts} failed. Retrying with a fresh build.`));
|
|
158
161
|
continue;
|
|
@@ -162,16 +165,16 @@ async function runBuildPlanVariation(options) {
|
|
|
162
165
|
attemptsRun,
|
|
163
166
|
failedStage: result.failedStage,
|
|
164
167
|
bestOutcome,
|
|
165
|
-
|
|
168
|
+
bestGraphBackupPath,
|
|
166
169
|
bestAttempt,
|
|
167
170
|
fatalError: null,
|
|
168
171
|
};
|
|
169
172
|
}
|
|
170
|
-
const outcome = await
|
|
173
|
+
const outcome = await runSavedContextGraphBenchmark({
|
|
171
174
|
sourcePath: options.sourcePath,
|
|
172
|
-
|
|
175
|
+
projectConfig: options.contextGraphConfig,
|
|
173
176
|
executor: options.testExecutor,
|
|
174
|
-
|
|
177
|
+
contextGraphPath: options.contextGraphPath,
|
|
175
178
|
preserveSandboxes: options.preserveStageShells === "always" ? "always" : "on-failure",
|
|
176
179
|
});
|
|
177
180
|
if (!outcome) {
|
|
@@ -180,31 +183,31 @@ async function runBuildPlanVariation(options) {
|
|
|
180
183
|
attemptsRun,
|
|
181
184
|
failedStage: null,
|
|
182
185
|
bestOutcome,
|
|
183
|
-
|
|
186
|
+
bestGraphBackupPath,
|
|
184
187
|
bestAttempt,
|
|
185
|
-
fatalError: "Could not run saved
|
|
188
|
+
fatalError: "Could not run saved benchmark checks against Context Graph after build.",
|
|
186
189
|
};
|
|
187
190
|
}
|
|
188
191
|
console.log();
|
|
189
|
-
|
|
192
|
+
printSavedBenchmarkOutcome(`${options.variationLabel} · attempt ${attempt}/${options.maxAttempts}`, outcome);
|
|
190
193
|
if (!bestOutcome || testScore(outcome) > testScore(bestOutcome)) {
|
|
191
|
-
if (
|
|
192
|
-
rmSync(
|
|
194
|
+
if (bestGraphBackupPath) {
|
|
195
|
+
rmSync(bestGraphBackupPath, { recursive: true, force: true });
|
|
193
196
|
}
|
|
194
197
|
bestOutcome = outcome;
|
|
195
|
-
|
|
198
|
+
bestGraphBackupPath = captureBestBuildState(options.contextGraphPath);
|
|
196
199
|
bestAttempt = attempt;
|
|
197
200
|
}
|
|
198
201
|
if (outcome.result.ok) {
|
|
199
202
|
console.log();
|
|
200
|
-
console.log(chalk.green(`
|
|
201
|
-
printStageShellReviewHint(options.
|
|
203
|
+
console.log(chalk.green(` Context Graph passed on ${options.variationLabel}, attempt ${attempt}/${options.maxAttempts}.`));
|
|
204
|
+
printStageShellReviewHint(options.contextGraphPath, options.preserveStageShells, "success");
|
|
202
205
|
return {
|
|
203
206
|
passed: true,
|
|
204
207
|
attemptsRun,
|
|
205
208
|
failedStage: null,
|
|
206
209
|
bestOutcome,
|
|
207
|
-
|
|
210
|
+
bestGraphBackupPath,
|
|
208
211
|
bestAttempt,
|
|
209
212
|
fatalError: null,
|
|
210
213
|
};
|
|
@@ -219,7 +222,7 @@ async function runBuildPlanVariation(options) {
|
|
|
219
222
|
attemptsRun,
|
|
220
223
|
failedStage: null,
|
|
221
224
|
bestOutcome,
|
|
222
|
-
|
|
225
|
+
bestGraphBackupPath,
|
|
223
226
|
bestAttempt,
|
|
224
227
|
fatalError: null,
|
|
225
228
|
};
|
|
@@ -230,7 +233,7 @@ async function runBuildPlanVariation(options) {
|
|
|
230
233
|
attemptsRun,
|
|
231
234
|
failedStage: null,
|
|
232
235
|
bestOutcome,
|
|
233
|
-
|
|
236
|
+
bestGraphBackupPath,
|
|
234
237
|
bestAttempt,
|
|
235
238
|
fatalError: error instanceof Error ? error.message : String(error),
|
|
236
239
|
};
|
|
@@ -240,11 +243,11 @@ function summarizeBuildPlanVariation(options) {
|
|
|
240
243
|
const passedChecks = options.result.bestOutcome?.result.passedCases ?? 0;
|
|
241
244
|
const totalChecks = options.result.bestOutcome?.result.totalCases ?? options.defaultTotalChecks;
|
|
242
245
|
const summary = options.result.passed
|
|
243
|
-
? `Passed ${passedChecks}/${totalChecks}
|
|
246
|
+
? `Passed ${passedChecks}/${totalChecks} benchmark checks.`
|
|
244
247
|
: options.result.bestOutcome
|
|
245
|
-
? `Best result: ${passedChecks}/${totalChecks}
|
|
248
|
+
? `Best result: ${passedChecks}/${totalChecks} benchmark checks passed.`
|
|
246
249
|
: options.result.failedStage
|
|
247
|
-
? `Build failed at stage ${options.result.failedStage} before any saved
|
|
250
|
+
? `Build failed at stage ${options.result.failedStage} before any saved benchmark result.`
|
|
248
251
|
: "Build Plan variation did not produce a passing result.";
|
|
249
252
|
return {
|
|
250
253
|
variation: options.variation,
|
|
@@ -261,8 +264,8 @@ function summarizeBuildPlanVariation(options) {
|
|
|
261
264
|
summary,
|
|
262
265
|
};
|
|
263
266
|
}
|
|
264
|
-
function printStageShellReviewHint(
|
|
265
|
-
const reviewRoot = stageExecutionShellsRoot(
|
|
267
|
+
function printStageShellReviewHint(contextGraphPath, preserveStageShells, result) {
|
|
268
|
+
const reviewRoot = stageExecutionShellsRoot(contextGraphPath);
|
|
266
269
|
if (preserveStageShells === "always") {
|
|
267
270
|
console.log(chalk.dim(` Stage shells are saved under: ${reviewRoot}`));
|
|
268
271
|
return;
|
|
@@ -272,18 +275,18 @@ function printStageShellReviewHint(verifiableContextPath, preserveStageShells, r
|
|
|
272
275
|
}
|
|
273
276
|
}
|
|
274
277
|
function printPostBuildNextStep(options) {
|
|
275
|
-
console.log(chalk.dim(`
|
|
278
|
+
console.log(chalk.dim(` Context Graph: ${options.contextGraphPath}`));
|
|
276
279
|
if (options.checks === 0) {
|
|
277
|
-
console.log(chalk.dim(" Next: run `interf` to add
|
|
280
|
+
console.log(chalk.dim(" Next: run `interf` to add benchmark questions, then `interf benchmark`."));
|
|
278
281
|
return;
|
|
279
282
|
}
|
|
280
283
|
if (options.testedDuringBuild) {
|
|
281
|
-
console.log(chalk.dim(" Next: inspect the
|
|
284
|
+
console.log(chalk.dim(" Next: inspect the Context Graph agents will use, or run `interf benchmark` if you also want a Source Manifest baseline versus Context Graph benchmark."));
|
|
282
285
|
return;
|
|
283
286
|
}
|
|
284
|
-
console.log(chalk.dim(" Next: run `interf
|
|
287
|
+
console.log(chalk.dim(" Next: run `interf benchmark` to benchmark the Source Manifest baseline and/or the Context Graph."));
|
|
285
288
|
}
|
|
286
|
-
function
|
|
289
|
+
function formatVariationBenchmarkSummary(summary) {
|
|
287
290
|
return `${summary.passed_questions}/${summary.total_questions}`;
|
|
288
291
|
}
|
|
289
292
|
function printBuildPlanVariationSummary(summaries) {
|
|
@@ -292,101 +295,107 @@ function printBuildPlanVariationSummary(summaries) {
|
|
|
292
295
|
console.log();
|
|
293
296
|
console.log(chalk.bold(" Build Plan variation summary"));
|
|
294
297
|
console.log();
|
|
295
|
-
console.log(" | Variation | Kind |
|
|
298
|
+
console.log(" | Variation | Kind | Benchmark checks | Result |");
|
|
296
299
|
console.log(" | --- | --- | --- | --- |");
|
|
297
300
|
for (const summary of summaries) {
|
|
298
|
-
console.log(` | ${summary.variation} | ${summary.kind} | \`${
|
|
301
|
+
console.log(` | ${summary.variation} | ${summary.kind} | \`${formatVariationBenchmarkSummary(summary)}\` | ${summary.passed ? "pass" : "fail"} |`);
|
|
299
302
|
}
|
|
300
303
|
}
|
|
301
|
-
function printSelectedBuildPlanOwnership(
|
|
304
|
+
function printSelectedBuildPlanOwnership(contextGraphPath, bestVariation) {
|
|
302
305
|
if (bestVariation <= 1)
|
|
303
306
|
return;
|
|
304
307
|
console.log();
|
|
305
|
-
console.log(chalk.dim(` Best Build Plan variation now lives in: ${
|
|
306
|
-
console.log(chalk.dim(" The
|
|
307
|
-
console.log(chalk.dim("
|
|
308
|
+
console.log(chalk.dim(` Best Build Plan variation now lives in: ${buildPlanPackagePathForContextGraph(contextGraphPath)}`));
|
|
309
|
+
console.log(chalk.dim(" The Project-level Build Plan selection was not changed automatically."));
|
|
310
|
+
console.log(chalk.dim(" Building this existing Context Graph again reuses that local Build Plan draft."));
|
|
308
311
|
}
|
|
309
312
|
export async function runConfiguredBuild(options) {
|
|
310
313
|
const preserveStageShells = options.preserveStageShells ?? "on-failure";
|
|
311
|
-
const configuredMaxAttempts =
|
|
312
|
-
const maxLoops =
|
|
314
|
+
const configuredMaxAttempts = resolveBuildMaxAttempts(options.maxAttemptsOverride);
|
|
315
|
+
const maxLoops = resolveBuildMaxLoops(options.maxLoopsOverride);
|
|
313
316
|
const maxAttempts = configuredMaxAttempts ?? (maxLoops != null ? 1 : null);
|
|
314
317
|
const loopEnabled = maxAttempts != null;
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
|
|
318
|
+
const projectName = options.contextGraphConfig?.name ?? readInterfConfig(options.contextGraphPath)?.name ?? "project";
|
|
319
|
+
const benchmarkSpec = buildTestSpecFromSourceFolderConfig({
|
|
320
|
+
projectDataDir: options.sourcePath,
|
|
321
|
+
targetName: projectName,
|
|
322
|
+
targetType: "context-graph",
|
|
323
|
+
});
|
|
324
|
+
const benchmarkCheckCount = benchmarkSpec?.cases.length ?? 0;
|
|
325
|
+
if (loopEnabled && benchmarkCheckCount === 0) {
|
|
326
|
+
console.log(chalk.yellow(" Retry and self-improving modes need saved benchmark checks. Building once without those loops."));
|
|
318
327
|
}
|
|
319
328
|
else if (loopEnabled) {
|
|
320
329
|
if (maxAttempts > 1) {
|
|
321
330
|
console.log(chalk.dim(` Retry mode: up to ${maxAttempts} build attempts.`));
|
|
322
|
-
console.log(chalk.dim(" Interf will rerun the same Build Plan variation, check the
|
|
331
|
+
console.log(chalk.dim(" Interf will rerun the same Build Plan variation, check the Context Graph agents can use, and stop early if it passes."));
|
|
323
332
|
}
|
|
324
333
|
else {
|
|
325
334
|
console.log(chalk.dim(" Build mode: 1 attempt per Build Plan variation."));
|
|
326
335
|
}
|
|
327
336
|
if (maxLoops != null) {
|
|
328
337
|
console.log(chalk.dim(` Build Plan improvement: up to ${maxLoops} Build Plan edits after retries fail.`));
|
|
329
|
-
console.log(chalk.dim(" Interf will review failed runs, edit the Build Plan, and
|
|
338
|
+
console.log(chalk.dim(" Interf will review failed runs, edit the Build Plan, and benchmark new Build Plan variations."));
|
|
330
339
|
}
|
|
331
340
|
}
|
|
332
|
-
if (!loopEnabled ||
|
|
333
|
-
const result = await
|
|
341
|
+
if (!loopEnabled || benchmarkCheckCount === 0) {
|
|
342
|
+
const result = await buildContextGraphWithReporter(options.executor, options.contextGraphPath, {
|
|
334
343
|
preserveStageShells,
|
|
335
344
|
runId: options.runId,
|
|
336
345
|
events: options.events,
|
|
337
346
|
resolveStageExecutor: options.resolveStageExecutor,
|
|
347
|
+
maxStageValidationAttempts: configuredMaxAttempts ?? undefined,
|
|
338
348
|
});
|
|
339
349
|
if (!result.ok) {
|
|
340
350
|
process.exitCode = 1;
|
|
341
|
-
printBuildFailure(options.
|
|
342
|
-
printStageShellReviewHint(options.
|
|
351
|
+
printBuildFailure(options.contextGraphPath, result.failedStage);
|
|
352
|
+
printStageShellReviewHint(options.contextGraphPath, preserveStageShells, "failure");
|
|
343
353
|
return false;
|
|
344
354
|
}
|
|
345
|
-
printStageShellReviewHint(options.
|
|
355
|
+
printStageShellReviewHint(options.contextGraphPath, preserveStageShells, "success");
|
|
346
356
|
printPostBuildNextStep({
|
|
347
|
-
|
|
348
|
-
checks:
|
|
357
|
+
contextGraphPath: options.contextGraphPath,
|
|
358
|
+
checks: benchmarkCheckCount,
|
|
349
359
|
testedDuringBuild: false,
|
|
350
360
|
});
|
|
351
361
|
return true;
|
|
352
362
|
}
|
|
353
363
|
let bestOutcome = null;
|
|
354
|
-
let
|
|
364
|
+
let bestGraphBackupPath = null;
|
|
355
365
|
let bestAttempt = 0;
|
|
356
366
|
let bestVariation = 0;
|
|
357
367
|
const previousVariations = [];
|
|
358
368
|
const improvementRunId = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
359
369
|
try {
|
|
360
|
-
const
|
|
361
|
-
??
|
|
370
|
+
const contextGraphConfig = options.contextGraphConfig
|
|
371
|
+
?? loadContextGraphProjectConfig(options.contextGraphPath)
|
|
362
372
|
?? {
|
|
363
|
-
name: readInterfConfig(options.
|
|
373
|
+
name: readInterfConfig(options.contextGraphPath)?.name ?? "project",
|
|
364
374
|
path: "./source-folder",
|
|
365
|
-
checks: [],
|
|
366
375
|
};
|
|
367
376
|
const adoptVariationBest = (variation, result) => {
|
|
368
|
-
if (result.bestOutcome && result.
|
|
369
|
-
if (
|
|
370
|
-
rmSync(
|
|
377
|
+
if (result.bestOutcome && result.bestGraphBackupPath && (!bestOutcome || testScore(result.bestOutcome) > testScore(bestOutcome))) {
|
|
378
|
+
if (bestGraphBackupPath) {
|
|
379
|
+
rmSync(bestGraphBackupPath, { recursive: true, force: true });
|
|
371
380
|
}
|
|
372
381
|
bestOutcome = result.bestOutcome;
|
|
373
|
-
|
|
382
|
+
bestGraphBackupPath = result.bestGraphBackupPath;
|
|
374
383
|
bestAttempt = result.bestAttempt;
|
|
375
384
|
bestVariation = variation;
|
|
376
|
-
result.
|
|
385
|
+
result.bestGraphBackupPath = null;
|
|
377
386
|
}
|
|
378
|
-
if (result.
|
|
379
|
-
rmSync(result.
|
|
380
|
-
result.
|
|
387
|
+
if (result.bestGraphBackupPath) {
|
|
388
|
+
rmSync(result.bestGraphBackupPath, { recursive: true, force: true });
|
|
389
|
+
result.bestGraphBackupPath = null;
|
|
381
390
|
}
|
|
382
391
|
};
|
|
383
392
|
const baseline = await runBuildPlanVariation({
|
|
384
393
|
executor: options.executor,
|
|
385
394
|
testExecutor: options.testExecutor,
|
|
386
395
|
resolveStageExecutor: options.resolveStageExecutor,
|
|
387
|
-
|
|
396
|
+
contextGraphPath: options.contextGraphPath,
|
|
388
397
|
sourcePath: options.sourcePath,
|
|
389
|
-
|
|
398
|
+
contextGraphConfig,
|
|
390
399
|
executionProfile: options.executionProfile,
|
|
391
400
|
preserveStageShells,
|
|
392
401
|
maxAttempts,
|
|
@@ -404,13 +413,13 @@ export async function runConfiguredBuild(options) {
|
|
|
404
413
|
variation: 1,
|
|
405
414
|
kind: "baseline",
|
|
406
415
|
result: baseline,
|
|
407
|
-
defaultTotalChecks:
|
|
416
|
+
defaultTotalChecks: benchmarkCheckCount,
|
|
408
417
|
}));
|
|
409
418
|
if (baseline.passed) {
|
|
410
419
|
printBuildPlanVariationSummary(previousVariations);
|
|
411
420
|
printPostBuildNextStep({
|
|
412
|
-
|
|
413
|
-
checks:
|
|
421
|
+
contextGraphPath: options.contextGraphPath,
|
|
422
|
+
checks: benchmarkCheckCount,
|
|
414
423
|
testedDuringBuild: true,
|
|
415
424
|
});
|
|
416
425
|
return true;
|
|
@@ -421,9 +430,12 @@ export async function runConfiguredBuild(options) {
|
|
|
421
430
|
console.log(chalk.dim(` Self-improving loop ${loopIndex}/${maxLoops}: reviewing failed runs and editing the Build Plan.`));
|
|
422
431
|
const improvement = await runBuildPlanImprovementLoop({
|
|
423
432
|
executor: options.executor,
|
|
424
|
-
|
|
425
|
-
buildPlanId: resolveRequiredBuildPlanFromConfig(readInterfConfig(options.
|
|
426
|
-
|
|
433
|
+
contextGraphPath: options.contextGraphPath,
|
|
434
|
+
buildPlanId: resolveRequiredBuildPlanFromConfig(readInterfConfig(options.contextGraphPath), `.interf/interf.json for ${options.contextGraphPath}`),
|
|
435
|
+
benchmarkChecks: benchmarkSpec?.cases.map((testCase) => ({
|
|
436
|
+
id: testCase.id,
|
|
437
|
+
question: testCase.question,
|
|
438
|
+
})) ?? [],
|
|
427
439
|
runId: improvementRunId,
|
|
428
440
|
loopIndex,
|
|
429
441
|
maxLoops,
|
|
@@ -444,9 +456,9 @@ export async function runConfiguredBuild(options) {
|
|
|
444
456
|
executor: options.executor,
|
|
445
457
|
testExecutor: options.testExecutor,
|
|
446
458
|
resolveStageExecutor: options.resolveStageExecutor,
|
|
447
|
-
|
|
459
|
+
contextGraphPath: options.contextGraphPath,
|
|
448
460
|
sourcePath: options.sourcePath,
|
|
449
|
-
|
|
461
|
+
contextGraphConfig,
|
|
450
462
|
executionProfile: options.executionProfile,
|
|
451
463
|
preserveStageShells,
|
|
452
464
|
maxAttempts,
|
|
@@ -464,44 +476,44 @@ export async function runConfiguredBuild(options) {
|
|
|
464
476
|
variation: loopIndex + 1,
|
|
465
477
|
kind: "edited",
|
|
466
478
|
result: variation,
|
|
467
|
-
defaultTotalChecks:
|
|
479
|
+
defaultTotalChecks: benchmarkCheckCount,
|
|
468
480
|
}));
|
|
469
481
|
if (variation.passed) {
|
|
470
482
|
printBuildPlanVariationSummary(previousVariations);
|
|
471
|
-
printSelectedBuildPlanOwnership(options.
|
|
483
|
+
printSelectedBuildPlanOwnership(options.contextGraphPath, bestVariation);
|
|
472
484
|
printPostBuildNextStep({
|
|
473
|
-
|
|
474
|
-
checks:
|
|
485
|
+
contextGraphPath: options.contextGraphPath,
|
|
486
|
+
checks: benchmarkCheckCount,
|
|
475
487
|
testedDuringBuild: true,
|
|
476
488
|
});
|
|
477
489
|
return true;
|
|
478
490
|
}
|
|
479
491
|
}
|
|
480
492
|
}
|
|
481
|
-
if (
|
|
482
|
-
restoreBestBuildState(
|
|
493
|
+
if (bestGraphBackupPath && bestVariation > 0) {
|
|
494
|
+
restoreBestBuildState(bestGraphBackupPath, options.contextGraphPath);
|
|
483
495
|
console.log();
|
|
484
|
-
console.log(chalk.dim(` Restored the best-performing
|
|
496
|
+
console.log(chalk.dim(` Restored the best-performing Context Graph from variation ${bestVariation}, attempt ${bestAttempt}.`));
|
|
485
497
|
}
|
|
486
498
|
process.exitCode = 1;
|
|
487
499
|
console.log();
|
|
488
500
|
printBuildPlanVariationSummary(previousVariations);
|
|
489
|
-
printSelectedBuildPlanOwnership(options.
|
|
501
|
+
printSelectedBuildPlanOwnership(options.contextGraphPath, bestVariation);
|
|
490
502
|
if (maxLoops != null) {
|
|
491
|
-
console.log(chalk.red(`
|
|
503
|
+
console.log(chalk.red(` Context Graph did not pass after ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"} per variation and ${maxLoops} Build Plan improvement loop${maxLoops === 1 ? "" : "s"}.`));
|
|
492
504
|
}
|
|
493
505
|
else {
|
|
494
|
-
console.log(chalk.red(`
|
|
506
|
+
console.log(chalk.red(` Context Graph did not pass within ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"}.`));
|
|
495
507
|
}
|
|
496
508
|
if (bestOutcome) {
|
|
497
|
-
console.log(chalk.dim(` Best attempt
|
|
509
|
+
console.log(chalk.dim(` Best attempt benchmark pass rate: ${benchmarkPassRate(bestOutcome)}%.`));
|
|
498
510
|
}
|
|
499
|
-
printStageShellReviewHint(options.
|
|
511
|
+
printStageShellReviewHint(options.contextGraphPath, preserveStageShells, "failure");
|
|
500
512
|
return false;
|
|
501
513
|
}
|
|
502
514
|
finally {
|
|
503
|
-
if (
|
|
504
|
-
rmSync(
|
|
515
|
+
if (bestGraphBackupPath) {
|
|
516
|
+
rmSync(bestGraphBackupPath, { recursive: true, force: true });
|
|
505
517
|
}
|
|
506
518
|
}
|
|
507
519
|
}
|
|
@@ -523,7 +535,7 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
|
|
|
523
535
|
if (!resolved.executor) {
|
|
524
536
|
return ActionProposalPlanSchema.parse({
|
|
525
537
|
action_type: "clarification",
|
|
526
|
-
|
|
538
|
+
project: request.project,
|
|
527
539
|
assistant_message: resolved.error ?? "No local agent detected for action planning.",
|
|
528
540
|
});
|
|
529
541
|
}
|
|
@@ -568,9 +580,9 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
|
|
|
568
580
|
}
|
|
569
581
|
return stageExecutor;
|
|
570
582
|
},
|
|
571
|
-
|
|
583
|
+
contextGraphPath: context.contextGraphPath,
|
|
572
584
|
sourcePath: context.sourcePath,
|
|
573
|
-
|
|
585
|
+
contextGraphConfig: context.projectConfig,
|
|
574
586
|
maxAttemptsOverride: request.max_attempts ?? null,
|
|
575
587
|
maxLoopsOverride: request.max_loops ?? null,
|
|
576
588
|
preserveStageShells: request.preserve_stage_shells,
|
|
@@ -590,45 +602,64 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
|
|
|
590
602
|
});
|
|
591
603
|
// Verify runs always use the `verifier` role. We resolve here
|
|
592
604
|
// for symmetry with Build runs — verify-run events are not
|
|
593
|
-
// streamed
|
|
594
|
-
//
|
|
595
|
-
const
|
|
596
|
-
|
|
605
|
+
// streamed, so the resolution shows up only in the executor
|
|
606
|
+
// field on the saved benchmark run record.
|
|
607
|
+
const executor = request.agent_name
|
|
608
|
+
? (() => {
|
|
609
|
+
const agent = registry.agents.find((entry) => entry.name === request.agent_name && entry.available !== false);
|
|
610
|
+
if (!agent) {
|
|
611
|
+
throw new Error(`Benchmark agent "${request.agent_name}" is not connected.`);
|
|
612
|
+
}
|
|
613
|
+
const requestedExecutor = bundle.executors.get(agent.name);
|
|
614
|
+
if (!requestedExecutor) {
|
|
615
|
+
throw new Error(`Benchmark agent "${agent.name}" is not available for automated runs.`);
|
|
616
|
+
}
|
|
617
|
+
return requestedExecutor;
|
|
618
|
+
})()
|
|
619
|
+
: bundle.resolveExecutorForRole("verifier").executor;
|
|
620
|
+
const executorInfo = buildRuntimeExecutorInfo(executor);
|
|
621
|
+
const result = await runBenchmarkForExecutor({
|
|
597
622
|
sourcePath: context.sourcePath,
|
|
598
|
-
|
|
599
|
-
|
|
623
|
+
projectConfig: context.projectConfig,
|
|
624
|
+
contextGraphPath: context.contextGraphPath,
|
|
600
625
|
executor,
|
|
601
626
|
target: request.target,
|
|
602
627
|
});
|
|
603
|
-
const
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
? "
|
|
609
|
-
:
|
|
628
|
+
const missingTargets = [
|
|
629
|
+
...(request.target === "source-files" || request.target === "both"
|
|
630
|
+
? result.sourceFilesOutcome ? [] : ["Source files"]
|
|
631
|
+
: []),
|
|
632
|
+
...(request.target === "context-graph" || request.target === "both"
|
|
633
|
+
? result.contextGraphOutcome ? [] : ["Context Graph"]
|
|
634
|
+
: []),
|
|
635
|
+
];
|
|
636
|
+
if (missingTargets.length > 0) {
|
|
610
637
|
return {
|
|
611
638
|
ok: false,
|
|
612
|
-
|
|
613
|
-
|
|
639
|
+
benchmark_run: result.benchmarkRun,
|
|
640
|
+
executor: executorInfo,
|
|
641
|
+
agent_label: executor.displayName,
|
|
642
|
+
error: `${missingTargets.join(" and ")} ${missingTargets.length === 1 ? "is" : "are"} not ready for benchmark evaluation.`,
|
|
614
643
|
};
|
|
615
644
|
}
|
|
616
645
|
return {
|
|
617
646
|
ok: true,
|
|
618
|
-
|
|
647
|
+
benchmark_run: result.benchmarkRun,
|
|
648
|
+
executor: executorInfo,
|
|
649
|
+
agent_label: executor.displayName,
|
|
619
650
|
};
|
|
620
651
|
},
|
|
621
|
-
async
|
|
652
|
+
async createBenchmarkQuestionDraft(request, context) {
|
|
622
653
|
const executor = resolveHandlerExecutor(options.executor);
|
|
623
654
|
context.emit({
|
|
624
655
|
type: "log.appended",
|
|
625
656
|
step_id: "agent-draft",
|
|
626
|
-
message: `Using ${executor.displayName} to draft
|
|
657
|
+
message: `Using ${executor.displayName} to draft benchmark questions.`,
|
|
627
658
|
});
|
|
628
|
-
const drafted = await
|
|
629
|
-
|
|
659
|
+
const drafted = await draftBenchmarkQuestions({
|
|
660
|
+
projectName: request.project,
|
|
630
661
|
sourceFolderPath: request.source_folder_path,
|
|
631
|
-
|
|
662
|
+
intent: request.intent,
|
|
632
663
|
executor,
|
|
633
664
|
targetCount: request.target_count,
|
|
634
665
|
onStatus: (line) => context.emit({
|
|
@@ -638,7 +669,7 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
|
|
|
638
669
|
}),
|
|
639
670
|
});
|
|
640
671
|
if (!drafted.checks) {
|
|
641
|
-
throw new Error(drafted.error ?? "Could not draft
|
|
672
|
+
throw new Error(drafted.error ?? "Could not draft benchmark questions from this Source Folder.");
|
|
642
673
|
}
|
|
643
674
|
return {
|
|
644
675
|
checks: drafted.checks,
|
|
@@ -652,16 +683,17 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
|
|
|
652
683
|
message: `Using ${executor.displayName} for Build Plan authoring.`,
|
|
653
684
|
});
|
|
654
685
|
const result = await runBuildPlanAuthoringDraft({
|
|
655
|
-
|
|
686
|
+
projectDataDir: context.sourcePath,
|
|
656
687
|
sourceFolderPath: request.source_folder_path,
|
|
657
688
|
baseBuildPlanId: request.reference_build_plan_id ?? request.base_build_plan_id,
|
|
658
689
|
buildPlanId: request.build_plan_id,
|
|
659
690
|
label: request.label,
|
|
660
691
|
hint: request.hint,
|
|
661
|
-
|
|
692
|
+
intent: request.intent,
|
|
662
693
|
checks: request.checks,
|
|
694
|
+
userPrepInstructions: request.user_prep_instructions,
|
|
663
695
|
requestedArtifacts: request.requested_artifacts,
|
|
664
|
-
|
|
696
|
+
sourceContext: request.source_context ?? null,
|
|
665
697
|
artifactRequirements: request.artifact_requirements,
|
|
666
698
|
executor,
|
|
667
699
|
onStatus: (line) => context.emit({
|