@interf/compiler 0.22.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +268 -0
- package/dist/bin-mcp.d.ts +2 -0
- package/dist/bin-mcp.js +63 -0
- package/dist/bin-runtime.d.ts +2 -0
- package/dist/bin-runtime.js +111 -0
- package/dist/cli/commands/agents.js +4 -4
- package/dist/cli/commands/auth.d.ts +20 -0
- package/dist/cli/commands/auth.js +161 -0
- package/dist/cli/commands/benchmark.d.ts +10 -0
- package/dist/cli/commands/benchmark.js +88 -0
- package/dist/cli/commands/build-plan.js +95 -103
- package/dist/cli/commands/build.d.ts +1 -1
- package/dist/cli/commands/build.js +16 -15
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/graphs.d.ts +2 -0
- package/dist/cli/commands/graphs.js +199 -0
- package/dist/cli/commands/login.js +4 -6
- package/dist/cli/commands/logout.js +1 -1
- package/dist/cli/commands/mcp.d.ts +3 -2
- package/dist/cli/commands/mcp.js +721 -204
- package/dist/cli/commands/project.d.ts +2 -0
- package/dist/cli/commands/project.js +202 -0
- package/dist/cli/commands/reset.d.ts +1 -1
- package/dist/cli/commands/reset.js +10 -10
- package/dist/cli/commands/runs.js +52 -26
- package/dist/cli/commands/runtime.d.ts +24 -0
- package/dist/cli/commands/runtime.js +373 -0
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.js +33 -22
- package/dist/cli/commands/traces.d.ts +2 -0
- package/dist/cli/commands/traces.js +125 -0
- package/dist/cli/commands/wizard.js +155 -150
- package/dist/cli/index.d.ts +7 -4
- package/dist/cli/index.js +13 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/packages/build-plans/authoring/brief.d.ts +517 -0
- package/dist/packages/build-plans/authoring/brief.js +89 -0
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +10 -10
- package/dist/packages/build-plans/authoring/build-plan-authoring.js +66 -26
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +1 -1
- package/dist/packages/build-plans/authoring/build-plan-edit-session.js +8 -2
- package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +39 -42
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
- package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
- package/dist/packages/build-plans/build-plan-resolution.js +3 -3
- package/dist/packages/build-plans/index.d.ts +1 -1
- package/dist/packages/build-plans/index.js +1 -1
- package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -12
- package/dist/packages/build-plans/package/build-plan-definitions.js +40 -39
- package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
- package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
- package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
- package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
- package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +4 -4
- package/dist/packages/build-plans/package/build-plan-stage-runner.js +22 -11
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +5 -6
- package/dist/packages/build-plans/package/builtin-build-plan.js +7 -8
- package/dist/packages/build-plans/package/context-interface.d.ts +11 -9
- package/dist/packages/build-plans/package/context-interface.js +14 -33
- package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
- package/dist/packages/build-plans/package/interf-build-plan-package.js +56 -52
- package/dist/packages/build-plans/package/local-build-plans.d.ts +12 -10
- package/dist/packages/build-plans/package/local-build-plans.js +56 -31
- package/dist/packages/build-plans/package/user-build-plans.js +1 -1
- package/dist/packages/contracts/index.d.ts +4 -2
- package/dist/packages/contracts/index.js +2 -1
- package/dist/packages/contracts/lib/project-paths.d.ts +137 -0
- package/dist/packages/contracts/lib/project-paths.js +211 -0
- package/dist/packages/contracts/lib/project-schema.d.ts +160 -0
- package/dist/packages/contracts/lib/project-schema.js +113 -0
- package/dist/packages/contracts/lib/schema.d.ts +739 -80
- package/dist/packages/contracts/lib/schema.js +410 -75
- package/dist/packages/contracts/utils/parse.js +67 -0
- package/dist/packages/projects/index.d.ts +6 -0
- package/dist/packages/{project → projects}/index.js +0 -3
- package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
- package/dist/packages/{project → projects}/interf-detect.js +56 -50
- package/dist/packages/projects/interf.d.ts +2 -0
- package/dist/packages/projects/interf.js +1 -0
- package/dist/packages/projects/lib/schema.d.ts +79 -0
- package/dist/packages/projects/lib/schema.js +89 -0
- package/dist/packages/projects/source-config.d.ts +58 -0
- package/dist/packages/projects/source-config.js +352 -0
- package/dist/packages/projects/source-folders.d.ts +11 -0
- package/dist/packages/{project → projects}/source-folders.js +26 -26
- package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
- package/dist/packages/{engine → runtime}/action-planner.js +20 -22
- package/dist/packages/runtime/action-values.d.ts +1 -0
- package/dist/packages/runtime/action-values.js +1 -0
- package/dist/packages/runtime/actions/errors.d.ts +2 -0
- package/dist/packages/runtime/actions/errors.js +12 -0
- package/dist/packages/runtime/actions/fields.d.ts +82 -0
- package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
- package/dist/packages/runtime/actions/form-builders.js +619 -0
- package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
- package/dist/packages/runtime/actions/form-validators.js +128 -0
- package/dist/packages/runtime/actions/helpers.d.ts +11 -0
- package/dist/packages/runtime/actions/helpers.js +80 -0
- package/dist/packages/runtime/actions/index.d.ts +8 -0
- package/dist/packages/runtime/actions/index.js +11 -0
- package/dist/packages/runtime/actions/registry.d.ts +64 -0
- package/dist/packages/runtime/actions/registry.js +62 -0
- package/dist/packages/runtime/actions/requests.d.ts +45 -0
- package/dist/packages/runtime/actions/requests.js +158 -0
- package/dist/packages/runtime/actions/schemas.d.ts +154 -0
- package/dist/packages/runtime/actions/schemas.js +36 -0
- package/dist/packages/runtime/agent-handoff.d.ts +11 -0
- package/dist/packages/runtime/agent-handoff.js +101 -0
- package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
- package/dist/packages/{engine → runtime}/agents/index.js +1 -2
- package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
- package/dist/packages/runtime/agents/lib/args.js +24 -0
- package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
- package/dist/packages/runtime/agents/lib/constants.js +13 -0
- package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
- package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
- package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
- package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
- package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +8 -14
- package/dist/packages/{engine → runtime}/agents/lib/execution.js +14 -4
- package/dist/packages/{engine → runtime}/agents/lib/preflight.js +15 -13
- package/dist/packages/{engine → runtime}/agents/lib/render.js +4 -4
- package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
- package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
- package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
- package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
- package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
- package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
- package/dist/packages/runtime/agents/lib/shell-templates.js +452 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
- package/dist/packages/runtime/agents/lib/shells.d.ts +63 -0
- package/dist/packages/runtime/agents/lib/shells.js +383 -0
- package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
- package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
- package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
- package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
- package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
- package/dist/packages/runtime/agents/providers/codex.js +64 -0
- package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/cursor.js +24 -0
- package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/index.js +31 -0
- package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
- package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
- package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
- package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
- package/dist/packages/{engine → runtime}/agents/role-executors.js +7 -6
- package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
- package/dist/packages/runtime/auth/account-context.d.ts +52 -0
- package/dist/packages/runtime/auth/account-context.js +68 -0
- package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
- package/dist/packages/runtime/auth/auth-flow.js +189 -0
- package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
- package/dist/packages/runtime/auth/jwt-validator.js +86 -0
- package/dist/packages/runtime/auth/keychain.d.ts +35 -0
- package/dist/packages/runtime/auth/keychain.js +85 -0
- package/dist/packages/runtime/auth/session-store.d.ts +38 -0
- package/dist/packages/runtime/auth/session-store.js +88 -0
- package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
- package/dist/packages/runtime/auth/workos-client.js +87 -0
- package/dist/packages/runtime/benchmark-question-draft.d.ts +20 -0
- package/dist/packages/runtime/benchmark-question-draft.js +124 -0
- package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
- package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
- package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +5 -5
- package/dist/packages/{engine → runtime}/build/artifact-status.js +25 -23
- package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
- package/dist/packages/runtime/build/atomic-fs.js +95 -0
- package/dist/packages/runtime/build/billing-events.d.ts +78 -0
- package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
- package/dist/packages/runtime/build/build-evidence.d.ts +15 -0
- package/dist/packages/runtime/build/build-evidence.js +173 -0
- package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
- package/dist/packages/runtime/build/build-pipeline.js +304 -0
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
- package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
- package/dist/packages/runtime/build/build-plan-runs.js +31 -0
- package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
- package/dist/packages/{engine → runtime}/build/build-stage-plan.js +28 -29
- package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
- package/dist/packages/runtime/build/build-stage-runner.js +165 -0
- package/dist/packages/{engine → runtime}/build/build-target.d.ts +4 -4
- package/dist/packages/runtime/build/build-target.js +16 -0
- package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
- package/dist/packages/runtime/build/check-evaluator.js +575 -0
- package/dist/packages/runtime/build/context-graph-paths.d.ts +51 -0
- package/dist/packages/runtime/build/context-graph-paths.js +133 -0
- package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
- package/dist/packages/runtime/build/context-graph-schema.js +39 -0
- package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
- package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
- package/dist/packages/{engine → runtime}/build/index.d.ts +5 -3
- package/dist/packages/{engine → runtime}/build/index.js +5 -3
- package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +221 -88
- package/dist/packages/{engine → runtime}/build/lib/schema.js +61 -41
- package/dist/packages/runtime/build/reset.d.ts +2 -0
- package/dist/packages/runtime/build/reset.js +62 -0
- package/dist/packages/{engine → runtime}/build/runtime-contracts.js +5 -5
- package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
- package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
- package/dist/packages/{engine → runtime}/build/runtime-paths.js +6 -6
- package/dist/packages/{engine → runtime}/build/runtime-prompt.js +7 -6
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
- package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
- package/dist/packages/runtime/build/runtime-runs.js +265 -0
- package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +6 -6
- package/dist/packages/runtime/build/runtime-types.js +1 -0
- package/dist/packages/runtime/build/runtime.d.ts +6 -0
- package/dist/packages/runtime/build/runtime.js +5 -0
- package/dist/packages/runtime/build/source-files.d.ts +58 -0
- package/dist/packages/runtime/build/source-files.js +184 -0
- package/dist/packages/runtime/build/source-inventory.d.ts +27 -0
- package/dist/packages/runtime/build/source-inventory.js +273 -0
- package/dist/packages/runtime/build/source-manifest.d.ts +52 -0
- package/dist/packages/runtime/build/source-manifest.js +192 -0
- package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
- package/dist/packages/runtime/build/stage-evidence.js +317 -0
- package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
- package/dist/packages/runtime/build/stage-reuse.js +142 -0
- package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
- package/dist/packages/runtime/build/state-artifacts.js +14 -0
- package/dist/packages/runtime/build/state-health.d.ts +4 -0
- package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
- package/dist/packages/runtime/build/state-io.d.ts +12 -0
- package/dist/packages/runtime/build/state-io.js +119 -0
- package/dist/packages/{engine → runtime}/build/state-paths.d.ts +3 -1
- package/dist/packages/runtime/build/state-paths.js +22 -0
- package/dist/packages/runtime/build/state-view.d.ts +5 -0
- package/dist/packages/{engine → runtime}/build/state-view.js +60 -33
- package/dist/packages/runtime/build/state.d.ts +7 -0
- package/dist/packages/runtime/build/state.js +12 -0
- package/dist/packages/runtime/build/traces.d.ts +30 -0
- package/dist/packages/runtime/build/traces.js +133 -0
- package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
- package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +48 -35
- package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
- package/dist/packages/{engine → runtime}/build/validate.js +26 -26
- package/dist/packages/{engine → runtime}/client.d.ts +15 -15
- package/dist/packages/{engine → runtime}/client.js +41 -24
- package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
- package/dist/packages/{engine → runtime}/connection-config.js +9 -8
- package/dist/packages/runtime/context-checks.d.ts +10 -0
- package/dist/packages/runtime/context-checks.js +114 -0
- package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
- package/dist/packages/runtime/context-graph-scaffold.js +134 -0
- package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
- package/dist/packages/runtime/entitlement-guard.js +70 -0
- package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/execution/index.js +1 -1
- package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +270 -192
- package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
- package/dist/packages/runtime/index.d.ts +29 -0
- package/dist/packages/runtime/index.js +21 -0
- package/dist/packages/runtime/instance-paths.d.ts +30 -0
- package/dist/packages/runtime/instance-paths.js +29 -0
- package/dist/packages/{engine → runtime}/native-run-handlers.d.ts +4 -4
- package/dist/packages/{engine → runtime}/native-run-handlers.js +184 -152
- package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
- package/dist/packages/runtime/plan-artifact-contract.js +42 -0
- package/dist/packages/runtime/project-entries.d.ts +11 -0
- package/dist/packages/runtime/project-entries.js +49 -0
- package/dist/packages/runtime/project-source-state.d.ts +26 -0
- package/dist/packages/runtime/project-source-state.js +53 -0
- package/dist/packages/runtime/project-store.d.ts +85 -0
- package/dist/packages/runtime/project-store.js +168 -0
- package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
- package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
- package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
- package/dist/packages/{engine → runtime}/run-observability.js +166 -84
- package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
- package/dist/packages/runtime/runtime-action-proposals.js +542 -0
- package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
- package/dist/packages/runtime/runtime-build-plans.js +131 -0
- package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
- package/dist/packages/runtime/runtime-build-runs.js +562 -0
- package/dist/packages/runtime/runtime-caches.d.ts +91 -0
- package/dist/packages/{engine → runtime}/runtime-caches.js +77 -49
- package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
- package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
- package/dist/packages/runtime/runtime-executor.d.ts +22 -0
- package/dist/packages/runtime/runtime-executor.js +131 -0
- package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
- package/dist/packages/runtime/runtime-jobs.js +463 -0
- package/dist/packages/runtime/runtime-observability.d.ts +11 -0
- package/dist/packages/runtime/runtime-observability.js +39 -0
- package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
- package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
- package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
- package/dist/packages/runtime/runtime-project-mutations.js +64 -0
- package/dist/packages/runtime/runtime-project-reads.d.ts +15 -0
- package/dist/packages/runtime/runtime-project-reads.js +381 -0
- package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
- package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
- package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +21 -16
- package/dist/packages/{engine → runtime}/runtime-resource-builders.js +48 -38
- package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
- package/dist/packages/runtime/runtime-verify-runs.js +295 -0
- package/dist/packages/runtime/runtime.d.ts +1165 -0
- package/dist/packages/runtime/runtime.js +417 -0
- package/dist/packages/runtime/schemas/actions.d.ts +1182 -0
- package/dist/packages/runtime/schemas/actions.js +117 -0
- package/dist/packages/runtime/schemas/agents.d.ts +76 -0
- package/dist/packages/runtime/schemas/agents.js +41 -0
- package/dist/packages/runtime/schemas/build-plans.d.ts +959 -0
- package/dist/packages/runtime/schemas/build-plans.js +107 -0
- package/dist/packages/runtime/schemas/files.d.ts +567 -0
- package/dist/packages/runtime/schemas/files.js +51 -0
- package/dist/packages/runtime/schemas/index.d.ts +8 -0
- package/dist/packages/runtime/schemas/index.js +12 -0
- package/dist/packages/runtime/schemas/instance.d.ts +141 -0
- package/dist/packages/runtime/schemas/instance.js +143 -0
- package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
- package/dist/packages/runtime/schemas/jobs.js +103 -0
- package/dist/packages/runtime/schemas/projects.d.ts +339 -0
- package/dist/packages/runtime/schemas/projects.js +136 -0
- package/dist/packages/runtime/schemas/runs.d.ts +2676 -0
- package/dist/packages/runtime/schemas/runs.js +98 -0
- package/dist/packages/runtime/service/index.d.ts +3 -0
- package/dist/packages/runtime/service/index.js +3 -0
- package/dist/packages/runtime/service/openapi.d.ts +7 -0
- package/dist/packages/runtime/service/openapi.js +117 -0
- package/dist/packages/runtime/service/operations.d.ts +1490 -0
- package/dist/packages/runtime/service/operations.js +245 -0
- package/dist/packages/runtime/service/routes.d.ts +106 -0
- package/dist/packages/runtime/service/routes.js +120 -0
- package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
- package/dist/packages/runtime/service/server-api-files.js +85 -0
- package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
- package/dist/packages/runtime/service/server-app-boot.js +46 -0
- package/dist/packages/runtime/service/server-guards.d.ts +63 -0
- package/dist/packages/runtime/service/server-guards.js +181 -0
- package/dist/packages/runtime/service/server-helpers.d.ts +27 -0
- package/dist/packages/runtime/service/server-helpers.js +89 -0
- package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
- package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.js +43 -0
- package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-agents.js +198 -0
- package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
- package/dist/packages/runtime/service/server-routes-auth.js +138 -0
- package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-build-plans.js +83 -0
- package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
- package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
- package/dist/packages/runtime/service/server-routes-events.js +99 -0
- package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-context.js +192 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.js +130 -0
- package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
- package/dist/packages/runtime/service/server-routes-project-runs.js +85 -0
- package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-projects.js +92 -0
- package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-runs.js +112 -0
- package/dist/packages/runtime/service/server.d.ts +37 -0
- package/dist/packages/runtime/service/server.js +300 -0
- package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
- package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
- package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
- package/dist/packages/runtime/verify/benchmark-run.js +303 -0
- package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/verify/index.js +1 -1
- package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
- package/dist/packages/{engine → runtime}/verify/lib/schema.js +26 -18
- package/dist/packages/{engine → runtime}/verify/verify-execution.js +11 -11
- package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +4 -4
- package/dist/packages/runtime/verify/verify-paths.js +61 -0
- package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
- package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
- package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
- package/dist/packages/{engine → runtime}/verify/verify-specs.js +5 -3
- package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
- package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
- package/dist/packages/runtime/verify/verify-types.js +1 -0
- package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
- package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
- package/dist/packages/runtime/wire-schemas.d.ts +18 -0
- package/dist/packages/runtime/wire-schemas.js +27 -0
- package/package.json +40 -30
- package/public-repo/CONTRIBUTING.md +7 -16
- package/public-repo/README.md +175 -234
- package/public-repo/SECURITY.md +3 -4
- package/public-repo/build-plans/interf-default/README.md +19 -14
- package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +18 -11
- package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +12 -5
- package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +16 -4
- package/public-repo/build-plans/interf-default/build-plan.json +34 -28
- package/public-repo/build-plans/interf-default/build-plan.schema.json +54 -32
- package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
- package/public-repo/build-plans/interf-default/use/query/SKILL.md +17 -11
- package/public-repo/openapi/local-service.openapi.json +6803 -0
- package/public-repo/skills/interf/SKILL.md +460 -179
- package/dist/cli/commands/prep.d.ts +0 -2
- package/dist/cli/commands/prep.js +0 -240
- package/dist/cli/commands/test.d.ts +0 -10
- package/dist/cli/commands/test.js +0 -85
- package/dist/cli/commands/web.d.ts +0 -2
- package/dist/cli/commands/web.js +0 -286
- package/dist/interf-ui/404.html +0 -1
- package/dist/interf-ui/__next.__PAGE__.txt +0 -10
- package/dist/interf-ui/__next._full.txt +0 -20
- package/dist/interf-ui/__next._head.txt +0 -5
- package/dist/interf-ui/__next._index.txt +0 -5
- package/dist/interf-ui/__next._tree.txt +0 -5
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_buildManifest.js +0 -11
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_clientMiddlewareManifest.js +0 -1
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_ssgManifest.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
- package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
- package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
- package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
- package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
- package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
- package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
- package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
- package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
- package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
- package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
- package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
- package/dist/interf-ui/_not-found/__next._full.txt +0 -15
- package/dist/interf-ui/_not-found/__next._head.txt +0 -5
- package/dist/interf-ui/_not-found/__next._index.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
- package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
- package/dist/interf-ui/_not-found.html +0 -1
- package/dist/interf-ui/_not-found.txt +0 -15
- package/dist/interf-ui/index.html +0 -1
- package/dist/interf-ui/index.txt +0 -20
- package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
- package/dist/packages/contracts/lib/preparation-paths.js +0 -177
- package/dist/packages/engine/action-definitions.d.ts +0 -407
- package/dist/packages/engine/action-definitions.js +0 -1158
- package/dist/packages/engine/action-values.d.ts +0 -1
- package/dist/packages/engine/action-values.js +0 -1
- package/dist/packages/engine/agents/lib/args.d.ts +0 -4
- package/dist/packages/engine/agents/lib/args.js +0 -52
- package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
- package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
- package/dist/packages/engine/agents/lib/constants.js +0 -28
- package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
- package/dist/packages/engine/agents/lib/schema.js +0 -7
- package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
- package/dist/packages/engine/agents/lib/shells.js +0 -1052
- package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
- package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
- package/dist/packages/engine/build/billing-events.d.ts +0 -89
- package/dist/packages/engine/build/build-pipeline.js +0 -175
- package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
- package/dist/packages/engine/build/build-plan-runs.js +0 -31
- package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
- package/dist/packages/engine/build/build-stage-runner.js +0 -94
- package/dist/packages/engine/build/build-target.js +0 -16
- package/dist/packages/engine/build/check-evaluator.js +0 -298
- package/dist/packages/engine/build/reset.d.ts +0 -2
- package/dist/packages/engine/build/reset.js +0 -74
- package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
- package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
- package/dist/packages/engine/build/runtime-runs.js +0 -224
- package/dist/packages/engine/build/runtime.d.ts +0 -5
- package/dist/packages/engine/build/runtime.js +0 -4
- package/dist/packages/engine/build/source-files.d.ts +0 -46
- package/dist/packages/engine/build/source-files.js +0 -149
- package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
- package/dist/packages/engine/build/state-artifacts.js +0 -14
- package/dist/packages/engine/build/state-health.d.ts +0 -4
- package/dist/packages/engine/build/state-io.d.ts +0 -11
- package/dist/packages/engine/build/state-io.js +0 -82
- package/dist/packages/engine/build/state-paths.js +0 -16
- package/dist/packages/engine/build/state-view.d.ts +0 -5
- package/dist/packages/engine/build/state.d.ts +0 -7
- package/dist/packages/engine/build/state.js +0 -12
- package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
- package/dist/packages/engine/build/validate-helpers.js +0 -41
- package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
- package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
- package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
- package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
- package/dist/packages/engine/cloud-seams.d.ts +0 -115
- package/dist/packages/engine/cloud-seams.js +0 -84
- package/dist/packages/engine/index.d.ts +0 -22
- package/dist/packages/engine/index.js +0 -15
- package/dist/packages/engine/instance-paths.d.ts +0 -106
- package/dist/packages/engine/instance-paths.js +0 -171
- package/dist/packages/engine/lib/schema.d.ts +0 -6304
- package/dist/packages/engine/lib/schema.js +0 -730
- package/dist/packages/engine/preparation-store.d.ts +0 -105
- package/dist/packages/engine/preparation-store.js +0 -213
- package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
- package/dist/packages/engine/readiness-check-draft.js +0 -111
- package/dist/packages/engine/requested-artifacts.d.ts +0 -5
- package/dist/packages/engine/routes.d.ts +0 -85
- package/dist/packages/engine/routes.js +0 -99
- package/dist/packages/engine/runtime-caches.d.ts +0 -76
- package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
- package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
- package/dist/packages/engine/runtime.d.ts +0 -371
- package/dist/packages/engine/runtime.js +0 -2463
- package/dist/packages/engine/server.d.ts +0 -58
- package/dist/packages/engine/server.js +0 -1399
- package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
- package/dist/packages/engine/verify/readiness-check-run.js +0 -265
- package/dist/packages/engine/verify/verify-paths.js +0 -61
- package/dist/packages/engine/verify/verify-sandbox.js +0 -88
- package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
- package/dist/packages/engine/wire-schemas.d.ts +0 -547
- package/dist/packages/engine/wire-schemas.js +0 -59
- package/dist/packages/project/index.d.ts +0 -9
- package/dist/packages/project/interf-bootstrap.d.ts +0 -1
- package/dist/packages/project/interf-bootstrap.js +0 -1
- package/dist/packages/project/interf-scaffold.d.ts +0 -3
- package/dist/packages/project/interf-scaffold.js +0 -136
- package/dist/packages/project/interf.d.ts +0 -4
- package/dist/packages/project/interf.js +0 -3
- package/dist/packages/project/lib/schema.d.ts +0 -328
- package/dist/packages/project/lib/schema.js +0 -136
- package/dist/packages/project/preparation-entries.d.ts +0 -11
- package/dist/packages/project/preparation-entries.js +0 -49
- package/dist/packages/project/source-config.d.ts +0 -46
- package/dist/packages/project/source-config.js +0 -394
- package/dist/packages/project/source-folders.d.ts +0 -11
- package/public-repo/plugins/README.md +0 -9
- package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
- package/public-repo/plugins/interf/.mcp.json +0 -12
- package/public-repo/plugins/interf/README.md +0 -32
- package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
- /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/executors.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/logs.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/logs.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/render.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +0 -0
- /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
- /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-paths.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { verifiableContextInterfConfigPath, buildPlanPackagePathForVerifiableContext } from "./verifiable-context-paths.js";
|
|
6
|
-
import { readVerifiableContextConfig } from "./validate.js";
|
|
2
|
+
import { BUILD_PLAN_SCHEMA_FILE, findBuildPlanContextArtifact, readBuildPlanContextFile, buildPlanSchemaExists, } from "./context-graph-schema.js";
|
|
3
|
+
import { contextGraphInterfConfigPath, buildPlanPackagePathForContextGraph } from "./context-graph-paths.js";
|
|
4
|
+
import { readContextGraphConfig } from "./validate.js";
|
|
7
5
|
import { loadState } from "./state.js";
|
|
8
6
|
import { getActiveBuildPlan, resolveRequiredBuildPlanFromConfig, } from "../../build-plans/package/build-plan-definitions.js";
|
|
9
7
|
import { countBuildArtifactsAtPath } from "./artifact-counts.js";
|
|
10
8
|
import { evaluateChecks } from "./check-evaluator.js";
|
|
9
|
+
import { loadContextGraphSourceManifest } from "./source-manifest.js";
|
|
11
10
|
function buildPlanSchemaPresent(dirPath) {
|
|
12
|
-
return buildPlanSchemaExists(
|
|
11
|
+
return buildPlanSchemaExists(buildPlanPackagePathForContextGraph(dirPath));
|
|
13
12
|
}
|
|
14
13
|
function buildPlanJsonPresent(dirPath) {
|
|
15
|
-
return existsSync(
|
|
14
|
+
return existsSync(buildPlanPackagePathForContextGraph(dirPath) + "/build-plan.json");
|
|
16
15
|
}
|
|
17
16
|
function readBuildPlanValidationContext(dirPath) {
|
|
18
|
-
const config =
|
|
17
|
+
const config = readContextGraphConfig(dirPath);
|
|
19
18
|
const buildPlanId = config.valid
|
|
20
19
|
? resolveRequiredBuildPlanFromConfig(config.value, `.interf/interf.json for ${dirPath}`)
|
|
21
20
|
: null;
|
|
@@ -28,16 +27,16 @@ function readBuildPlanValidationContext(dirPath) {
|
|
|
28
27
|
buildPlan = null;
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
|
-
const schema = readBuildPlanContextFile(
|
|
30
|
+
const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(dirPath));
|
|
32
31
|
const state = loadState(dirPath);
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
: 0;
|
|
32
|
+
const sourceManifest = loadContextGraphSourceManifest(dirPath);
|
|
33
|
+
const sourceTotal = sourceManifest?.source_total ?? 0;
|
|
36
34
|
return {
|
|
37
35
|
config,
|
|
38
36
|
buildPlan,
|
|
39
37
|
schema,
|
|
40
38
|
state,
|
|
39
|
+
sourceManifest,
|
|
41
40
|
sourceTotal,
|
|
42
41
|
buildPlanId,
|
|
43
42
|
};
|
|
@@ -45,14 +44,14 @@ function readBuildPlanValidationContext(dirPath) {
|
|
|
45
44
|
function stageRequired(sourceTotal, writeCounts, stageRecordPresent) {
|
|
46
45
|
return sourceTotal > 0 || writeCounts > 0 || stageRecordPresent;
|
|
47
46
|
}
|
|
48
|
-
function artifactWriteCount(
|
|
47
|
+
function artifactWriteCount(contextGraphPath, schema, stage) {
|
|
49
48
|
const artifactCounts = {};
|
|
50
49
|
let total = 0;
|
|
51
50
|
for (const artifactId of stage.writes) {
|
|
52
51
|
const artifact = findBuildPlanContextArtifact(schema, artifactId);
|
|
53
52
|
if (!artifact)
|
|
54
53
|
continue;
|
|
55
|
-
const count = countBuildArtifactsAtPath(
|
|
54
|
+
const count = countBuildArtifactsAtPath(contextGraphPath, artifact.path, artifact.kind);
|
|
56
55
|
artifactCounts[artifactId] = count;
|
|
57
56
|
total += count;
|
|
58
57
|
}
|
|
@@ -76,7 +75,7 @@ function artifactsBuiltByStage(schema, stage) {
|
|
|
76
75
|
return artifact.shape.kind === "path" && (stage.writes.includes(artifact.id) || stage.writes.includes(artifact.shape.path));
|
|
77
76
|
});
|
|
78
77
|
}
|
|
79
|
-
function artifactCheckFailures(
|
|
78
|
+
function artifactCheckFailures(contextGraphPath, artifacts, counts) {
|
|
80
79
|
const failures = [];
|
|
81
80
|
for (const artifact of artifacts) {
|
|
82
81
|
const checks = artifact.checks ?? [];
|
|
@@ -84,7 +83,7 @@ function artifactCheckFailures(verifiableContextPath, artifacts, counts) {
|
|
|
84
83
|
continue;
|
|
85
84
|
const targetPath = artifact.shape.kind === "path" ? artifact.shape.path : undefined;
|
|
86
85
|
const result = evaluateChecks(checks, {
|
|
87
|
-
rootPath:
|
|
86
|
+
rootPath: contextGraphPath,
|
|
88
87
|
targetPath,
|
|
89
88
|
counts,
|
|
90
89
|
});
|
|
@@ -107,7 +106,7 @@ function mergeValidationCounts(sourceTotal, stageRecord, artifactCounts) {
|
|
|
107
106
|
}
|
|
108
107
|
return merged;
|
|
109
108
|
}
|
|
110
|
-
export function
|
|
109
|
+
export function validateContextGraphSetup(dirPath) {
|
|
111
110
|
const context = readBuildPlanValidationContext(dirPath);
|
|
112
111
|
return {
|
|
113
112
|
config_present: context.config.present,
|
|
@@ -132,11 +131,11 @@ export function validateBuildStage(dirPath, stageId) {
|
|
|
132
131
|
};
|
|
133
132
|
const errors = [];
|
|
134
133
|
if (!checks.config_present)
|
|
135
|
-
errors.push(`Missing ${
|
|
134
|
+
errors.push(`Missing ${contextGraphInterfConfigPath(dirPath)}.`);
|
|
136
135
|
else if (!checks.config_valid)
|
|
137
|
-
errors.push(`Could not parse ${
|
|
136
|
+
errors.push(`Could not parse ${contextGraphInterfConfigPath(dirPath)}.`);
|
|
138
137
|
else if (!checks.config_type_match)
|
|
139
|
-
errors.push("Config is not a
|
|
138
|
+
errors.push("Config is not a context graph.");
|
|
140
139
|
if (!checks.build_plan_present)
|
|
141
140
|
errors.push("Missing .interf/build-plan/build-plan.json.");
|
|
142
141
|
else if (!checks.build_plan_valid)
|
|
@@ -145,6 +144,11 @@ export function validateBuildStage(dirPath, stageId) {
|
|
|
145
144
|
errors.push(`Missing .interf/build-plan/${BUILD_PLAN_SCHEMA_FILE}.`);
|
|
146
145
|
else if (!checks.schema_valid)
|
|
147
146
|
errors.push(`Could not parse .interf/build-plan/${BUILD_PLAN_SCHEMA_FILE}.`);
|
|
147
|
+
checks.source_files_present = context.sourceTotal > 0;
|
|
148
|
+
checks.source_manifest_valid = context.sourceManifest !== null && context.sourceTotal > 0;
|
|
149
|
+
if (!checks.source_files_present) {
|
|
150
|
+
errors.push("No Source Manifest has been recorded for this Context Graph.");
|
|
151
|
+
}
|
|
148
152
|
const buildPlanStage = context.buildPlan?.stages.find((stage) => stage.id === stageId) ?? null;
|
|
149
153
|
checks.stage_present = buildPlanStage !== null;
|
|
150
154
|
if (!checks.stage_present) {
|
|
@@ -163,14 +167,17 @@ export function validateBuildStage(dirPath, stageId) {
|
|
|
163
167
|
if (buildPlanStage && context.schema) {
|
|
164
168
|
const artifacts = artifactsBuiltByStage(context.schema, buildPlanStage);
|
|
165
169
|
const failures = artifactCheckFailures(dirPath, artifacts, artifactCounts);
|
|
166
|
-
checks.
|
|
167
|
-
artifactErrors = failures.map((
|
|
170
|
+
checks.artifact_diagnostics_ok = failures.length === 0;
|
|
171
|
+
artifactErrors = failures.map((result) => `Artifact diagnostic "${result.check_id}" failed for ${result.kind}: ${result.summary}`);
|
|
168
172
|
}
|
|
169
173
|
else {
|
|
170
|
-
checks.
|
|
174
|
+
checks.artifact_diagnostics_ok = false;
|
|
171
175
|
}
|
|
172
176
|
if (required && checks.stage_record_present && !checks.stage_finished) {
|
|
173
|
-
errors.push(`Stage "${stageId}" has no finished_at
|
|
177
|
+
errors.push(`Stage "${stageId}" has no finished_at evidence in runtime state.`);
|
|
178
|
+
}
|
|
179
|
+
if (required && !checks.stage_record_present) {
|
|
180
|
+
errors.push(`Stage "${stageId}" has no runtime state record.`);
|
|
174
181
|
}
|
|
175
182
|
if (required && checks.stage_record_present && !checks.stage_succeeded) {
|
|
176
183
|
errors.push(`Stage "${stageId}" is not marked succeeded in runtime state.`);
|
|
@@ -178,12 +185,12 @@ export function validateBuildStage(dirPath, stageId) {
|
|
|
178
185
|
if (required) {
|
|
179
186
|
errors.push(...artifactErrors);
|
|
180
187
|
}
|
|
181
|
-
const ok =
|
|
182
|
-
const summary =
|
|
183
|
-
?
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
188
|
+
const ok = errors.length === 0;
|
|
189
|
+
const summary = ok
|
|
190
|
+
? required
|
|
191
|
+
? `Stage "${stageId}" checks passed.`
|
|
192
|
+
: `Stage "${stageId}" is not required yet.`
|
|
193
|
+
: `Stage "${stageId}" failed — ${errors[0] ?? "Artifact diagnostics not satisfied."}`;
|
|
187
194
|
return {
|
|
188
195
|
ok,
|
|
189
196
|
required,
|
|
@@ -198,7 +205,7 @@ export function validateBuildStage(dirPath, stageId) {
|
|
|
198
205
|
errors,
|
|
199
206
|
};
|
|
200
207
|
}
|
|
201
|
-
export function
|
|
208
|
+
export function validateContextGraph(dirPath) {
|
|
202
209
|
const context = readBuildPlanValidationContext(dirPath);
|
|
203
210
|
const checks = {
|
|
204
211
|
config_present: context.config.present,
|
|
@@ -208,6 +215,8 @@ export function validateVerifiableContext(dirPath) {
|
|
|
208
215
|
build_plan_valid: context.buildPlan !== null,
|
|
209
216
|
schema_present: buildPlanSchemaPresent(dirPath),
|
|
210
217
|
schema_valid: context.schema !== null,
|
|
218
|
+
source_files_present: context.sourceTotal > 0,
|
|
219
|
+
source_manifest_valid: context.sourceManifest !== null && context.sourceTotal > 0,
|
|
211
220
|
};
|
|
212
221
|
if (!context.buildPlan) {
|
|
213
222
|
const errors = ["Could not load the active Build Plan package."];
|
|
@@ -226,6 +235,10 @@ export function validateVerifiableContext(dirPath) {
|
|
|
226
235
|
const errors = [];
|
|
227
236
|
let completedStages = 0;
|
|
228
237
|
let failedStage = "built";
|
|
238
|
+
if (!checks.source_files_present) {
|
|
239
|
+
errors.push("No Source Manifest has been recorded for this Context Graph.");
|
|
240
|
+
failedStage = "source";
|
|
241
|
+
}
|
|
229
242
|
for (const stage of context.buildPlan.stages) {
|
|
230
243
|
const validation = validateBuildStage(dirPath, stage.id);
|
|
231
244
|
stageResults[stage.id] = validation.ok;
|
|
@@ -243,8 +256,8 @@ export function validateVerifiableContext(dirPath) {
|
|
|
243
256
|
required: context.sourceTotal > 0,
|
|
244
257
|
stage: failedStage,
|
|
245
258
|
summary: ok
|
|
246
|
-
? `Build Plan
|
|
247
|
-
: `Build Plan failed — ${errors[0] ?? "stage
|
|
259
|
+
? `Build Plan checks passed — ${completedStages}/${context.buildPlan.stages.length} stages satisfied.`
|
|
260
|
+
: `Build Plan failed — ${errors[0] ?? "stage Artifact diagnostics not satisfied."}`,
|
|
248
261
|
counts: {
|
|
249
262
|
source_total: context.sourceTotal,
|
|
250
263
|
stage_total: context.buildPlan.stages.length,
|
|
@@ -258,9 +271,9 @@ export function validateVerifiableContext(dirPath) {
|
|
|
258
271
|
export function validateBuildSummarize(dirPath) {
|
|
259
272
|
return validateBuildStage(dirPath, "summarize");
|
|
260
273
|
}
|
|
261
|
-
export function
|
|
274
|
+
export function validateContextGraphStructure(dirPath) {
|
|
262
275
|
return validateBuildStage(dirPath, "structure");
|
|
263
276
|
}
|
|
264
277
|
export function validateBuildOutput(dirPath) {
|
|
265
|
-
return
|
|
278
|
+
return validateContextGraph(dirPath);
|
|
266
279
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { readInterfConfig } from "../../
|
|
2
|
-
export declare function
|
|
1
|
+
import { readInterfConfig } from "../../projects/interf-detect.js";
|
|
2
|
+
export declare function readContextGraphConfig(dirPath: string): {
|
|
3
3
|
present: boolean;
|
|
4
4
|
valid: boolean;
|
|
5
5
|
value: ReturnType<typeof readInterfConfig>;
|
|
@@ -11,11 +11,11 @@ export declare function validateSynthFiles(files: string[], options?: {
|
|
|
11
11
|
invalid_frontmatter: number;
|
|
12
12
|
short_abstracts: number;
|
|
13
13
|
};
|
|
14
|
-
export declare function countBrokenWikilinks(
|
|
14
|
+
export declare function countBrokenWikilinks(contextGraphRoot: string, noteIndexRoots: string[], linkScanRoots: string[]): number;
|
|
15
15
|
export declare function asNumber(value: unknown): number;
|
|
16
16
|
export declare function isOutputMarkdownFile(filePath: string): boolean;
|
|
17
17
|
export declare function safeReadText(filePath: string): string | null;
|
|
18
18
|
export declare function extractSynthAbstract(frontmatter: Record<string, unknown>, body: string): string | null;
|
|
19
19
|
export declare function countSynthAbstractWords(frontmatter: Record<string, unknown>, body: string): number;
|
|
20
|
-
export {
|
|
21
|
-
export type {
|
|
20
|
+
export { validateContextGraphSetup, validateBuildStage, validateContextGraph, validateBuildSummarize, validateContextGraphStructure, validateBuildOutput, } from "./validate-context-graph.js";
|
|
21
|
+
export type { ContextGraphValidationSummary, BuildStageValidation, ContextGraphValidation, } from "./validate-context-graph.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { existsSync, readFileSync, statSync, } from "node:fs";
|
|
2
2
|
import { basename, dirname, extname, join, resolve } from "node:path";
|
|
3
|
-
import { listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./
|
|
4
|
-
import {
|
|
3
|
+
import { listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./context-graph-schema.js";
|
|
4
|
+
import { buildPlanPackagePathForContextGraph } from "./context-graph-paths.js";
|
|
5
5
|
import { listFilesRecursive } from "../../contracts/utils/filesystem.js";
|
|
6
|
-
import { readInterfConfig } from "../../
|
|
6
|
+
import { readInterfConfig } from "../../projects/interf-detect.js";
|
|
7
7
|
import { parseJsonFrontmatter } from "../../contracts/utils/parse.js";
|
|
8
|
-
import {
|
|
8
|
+
import { contextGraphInterfConfigPath } from "./context-graph-paths.js";
|
|
9
9
|
const MIN_ABSTRACT_WORDS = 5;
|
|
10
10
|
const WIKILINK_PATTERN = /!?\[\[([^[\]]+)\]\]/g;
|
|
11
|
-
export function
|
|
12
|
-
const configPath =
|
|
11
|
+
export function readContextGraphConfig(dirPath) {
|
|
12
|
+
const configPath = contextGraphInterfConfigPath(dirPath);
|
|
13
13
|
const value = readInterfConfig(dirPath);
|
|
14
14
|
const present = existsSync(configPath);
|
|
15
15
|
if (!present) {
|
|
@@ -25,7 +25,7 @@ export function readVerifiableContextConfig(dirPath) {
|
|
|
25
25
|
valid: value !== null,
|
|
26
26
|
value,
|
|
27
27
|
typeMatch() {
|
|
28
|
-
return value?.type === "
|
|
28
|
+
return value?.type === "context-graph" && typeof value?.source?.path === "string";
|
|
29
29
|
},
|
|
30
30
|
};
|
|
31
31
|
}
|
|
@@ -51,9 +51,9 @@ export function validateSynthFiles(files, options) {
|
|
|
51
51
|
short_abstracts: shortAbstracts,
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
-
export function countBrokenWikilinks(
|
|
55
|
-
const artifactPathById =
|
|
56
|
-
const directoryLeafParents =
|
|
54
|
+
export function countBrokenWikilinks(contextGraphRoot, noteIndexRoots, linkScanRoots) {
|
|
55
|
+
const artifactPathById = contextGraphArtifactDirectoryPaths(contextGraphRoot);
|
|
56
|
+
const directoryLeafParents = contextGraphDirectoryLeafParents(artifactPathById);
|
|
57
57
|
const noteIndex = new Set();
|
|
58
58
|
for (const filePath of dedupeFiles(noteIndexRoots)) {
|
|
59
59
|
for (const target of collectWikilinkTargets(filePath)) {
|
|
@@ -74,15 +74,15 @@ export function countBrokenWikilinks(verifiableContextRoot, noteIndexRoots, link
|
|
|
74
74
|
if (!target)
|
|
75
75
|
continue;
|
|
76
76
|
if (target.includes("/")) {
|
|
77
|
-
if (!wikilinkPathExists(
|
|
77
|
+
if (!wikilinkPathExists(contextGraphRoot, target, artifactPathById, directoryLeafParents, filePath)) {
|
|
78
78
|
brokenLinks += 1;
|
|
79
79
|
}
|
|
80
80
|
continue;
|
|
81
81
|
}
|
|
82
82
|
if (!noteIndex.has(target.toLowerCase()) &&
|
|
83
83
|
!noteIndex.has(noteName(target).toLowerCase()) &&
|
|
84
|
-
!wikilinkPathExists(
|
|
85
|
-
!wikilinkPathExists(
|
|
84
|
+
!wikilinkPathExists(contextGraphRoot, target, artifactPathById, directoryLeafParents, filePath) &&
|
|
85
|
+
!wikilinkPathExists(contextGraphRoot, noteName(target), artifactPathById, directoryLeafParents, filePath)) {
|
|
86
86
|
brokenLinks += 1;
|
|
87
87
|
}
|
|
88
88
|
}
|
|
@@ -171,28 +171,28 @@ function countWords(text) {
|
|
|
171
171
|
function noteName(filePath) {
|
|
172
172
|
return basename(filePath, extname(filePath));
|
|
173
173
|
}
|
|
174
|
-
function wikilinkPathExists(
|
|
175
|
-
return linkPathCandidates(
|
|
174
|
+
function wikilinkPathExists(contextGraphRoot, target, artifactPathById, directoryLeafParents, sourceFilePath) {
|
|
175
|
+
return linkPathCandidates(contextGraphRoot, target, artifactPathById, directoryLeafParents, sourceFilePath)
|
|
176
176
|
.some((candidate) => existsSync(candidate));
|
|
177
177
|
}
|
|
178
|
-
function linkPathCandidates(
|
|
178
|
+
function linkPathCandidates(contextGraphRoot, target, artifactPathById, directoryLeafParents, sourceFilePath) {
|
|
179
179
|
const candidates = new Set();
|
|
180
|
-
addPathCandidate(candidates, join(
|
|
180
|
+
addPathCandidate(candidates, join(contextGraphRoot, target));
|
|
181
181
|
if (sourceFilePath && (target.startsWith("./") || target.startsWith("../"))) {
|
|
182
|
-
addPathCandidateIfInside(candidates,
|
|
182
|
+
addPathCandidateIfInside(candidates, contextGraphRoot, resolve(dirname(sourceFilePath), target));
|
|
183
183
|
}
|
|
184
184
|
const [firstSegment] = target.split("/");
|
|
185
185
|
if (firstSegment) {
|
|
186
186
|
const parentPath = directoryLeafParents.get(firstSegment);
|
|
187
187
|
if (parentPath) {
|
|
188
|
-
addPathCandidate(candidates, join(
|
|
188
|
+
addPathCandidate(candidates, join(contextGraphRoot, parentPath, target));
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
if (firstSegment) {
|
|
192
192
|
const normalizedPrefix = artifactPathById.get(firstSegment);
|
|
193
193
|
if (normalizedPrefix) {
|
|
194
194
|
const remainder = target.slice(firstSegment.length).replace(/^\/+/, "");
|
|
195
|
-
addPathCandidate(candidates, join(
|
|
195
|
+
addPathCandidate(candidates, join(contextGraphRoot, normalizedPrefix, remainder));
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
return Array.from(candidates);
|
|
@@ -201,15 +201,15 @@ function addPathCandidate(candidates, absolutePath) {
|
|
|
201
201
|
candidates.add(absolutePath);
|
|
202
202
|
candidates.add(`${absolutePath}.md`);
|
|
203
203
|
}
|
|
204
|
-
function addPathCandidateIfInside(candidates,
|
|
205
|
-
const root = resolve(
|
|
204
|
+
function addPathCandidateIfInside(candidates, contextGraphRoot, absolutePath) {
|
|
205
|
+
const root = resolve(contextGraphRoot);
|
|
206
206
|
const candidate = resolve(absolutePath);
|
|
207
207
|
if (candidate !== root && !candidate.startsWith(`${root}/`))
|
|
208
208
|
return;
|
|
209
209
|
addPathCandidate(candidates, candidate);
|
|
210
210
|
}
|
|
211
|
-
function
|
|
212
|
-
const buildPlanRoot =
|
|
211
|
+
function contextGraphArtifactDirectoryPaths(contextGraphRoot) {
|
|
212
|
+
const buildPlanRoot = buildPlanPackagePathForContextGraph(contextGraphRoot);
|
|
213
213
|
const schema = readBuildPlanContextFile(buildPlanRoot);
|
|
214
214
|
if (!schema)
|
|
215
215
|
return new Map();
|
|
@@ -217,7 +217,7 @@ function verifiableContextArtifactDirectoryPaths(verifiableContextRoot) {
|
|
|
217
217
|
.filter((artifact) => artifact.kind === "directory")
|
|
218
218
|
.map((artifact) => [artifact.id, artifact.path]));
|
|
219
219
|
}
|
|
220
|
-
function
|
|
220
|
+
function contextGraphDirectoryLeafParents(artifactPathById) {
|
|
221
221
|
const parents = new Map();
|
|
222
222
|
for (const artifactPath of artifactPathById.values()) {
|
|
223
223
|
const [root, leaf, ...rest] = artifactPath.split("/");
|
|
@@ -256,4 +256,4 @@ function addFrontmatterLinkTarget(targets, value) {
|
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
-
export {
|
|
259
|
+
export { validateContextGraphSetup, validateBuildStage, validateContextGraph, validateBuildSummarize, validateContextGraphStructure, validateBuildOutput, } from "./validate-context-graph.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ActionProposalApprovalRequest, type ActionProposalCreateRequest, type ActionProposalResource, type BuildRunCreateRequest, type BuildRunResource, type LocalJobRunResource, type LocalServiceHealth, type
|
|
1
|
+
import { type ActionProposalApprovalRequest, type ActionProposalCreateRequest, type ActionProposalResource, type BuildRunCreateRequest, type BuildRunResource, type LocalJobRunResource, type LocalServiceHealth, type BenchmarkQuestionDraftCreateRequest, type BenchmarkQuestionDraftResult, type ResetRequest, type ResetResult, type VerifyRunCreateRequest, type VerifyRunResource, type BuildPlanAuthoringCreateRequest, type BuildPlanAuthoringResult } from "./schemas/index.js";
|
|
2
2
|
export interface FindOrStartLocalServiceOptions {
|
|
3
3
|
url?: string;
|
|
4
4
|
authToken?: string;
|
|
@@ -20,21 +20,21 @@ export interface LocalServiceJobSubmitted {
|
|
|
20
20
|
}
|
|
21
21
|
export declare function configuredLocalServiceUrl(): string;
|
|
22
22
|
/**
|
|
23
|
-
* Resolve the bearer token for the active connection.
|
|
24
|
-
*
|
|
25
|
-
* `
|
|
23
|
+
* Resolve the bearer token for the active connection. There is exactly
|
|
24
|
+
* one source of truth: `~/.interf/connection.json` (or the
|
|
25
|
+
* `INTERF_AUTH_TOKEN` env override).
|
|
26
26
|
*/
|
|
27
27
|
export declare function resolveLocalServiceAuthToken(): string | null;
|
|
28
28
|
/**
|
|
29
|
-
* Resolve a connection
|
|
30
|
-
* `~/.interf/connection.json` (written by `interf
|
|
31
|
-
* `INTERF_SERVICE_URL` / `
|
|
29
|
+
* Resolve a connection — the only path to the engine. Read
|
|
30
|
+
* `~/.interf/connection.json` (written by `interf runtime`) or honor the
|
|
31
|
+
* `INTERF_SERVICE_URL` / `INTERF_AUTH_TOKEN` env overrides.
|
|
32
32
|
*/
|
|
33
33
|
export declare function findLocalService(options?: {
|
|
34
34
|
timeoutMs?: number;
|
|
35
35
|
}): Promise<LocalServiceConnection | null>;
|
|
36
36
|
export declare function submitBuildRunToLocalService(options: {
|
|
37
|
-
|
|
37
|
+
projectId: string;
|
|
38
38
|
request: BuildRunCreateRequest;
|
|
39
39
|
idempotencyKey?: string;
|
|
40
40
|
}): Promise<{
|
|
@@ -42,14 +42,14 @@ export declare function submitBuildRunToLocalService(options: {
|
|
|
42
42
|
resource: BuildRunResource;
|
|
43
43
|
} | null>;
|
|
44
44
|
export declare function submitVerifyRunToLocalService(options: {
|
|
45
|
-
|
|
45
|
+
projectId: string;
|
|
46
46
|
request: VerifyRunCreateRequest;
|
|
47
47
|
}): Promise<{
|
|
48
48
|
serviceUrl: string;
|
|
49
49
|
resource: VerifyRunResource;
|
|
50
50
|
} | null>;
|
|
51
51
|
export declare function submitResetToLocalService(options: {
|
|
52
|
-
|
|
52
|
+
projectId: string;
|
|
53
53
|
request: ResetRequest;
|
|
54
54
|
}): Promise<{
|
|
55
55
|
serviceUrl: string;
|
|
@@ -128,14 +128,14 @@ export declare function waitForLocalJobRun(options: {
|
|
|
128
128
|
authToken?: string | null;
|
|
129
129
|
onUpdate?: (job: LocalJobRunResource) => void;
|
|
130
130
|
}): Promise<LocalJobRunResource>;
|
|
131
|
-
export declare function
|
|
132
|
-
|
|
133
|
-
request:
|
|
131
|
+
export declare function submitBenchmarkQuestionDraftToLocalService(options: {
|
|
132
|
+
projectId: string;
|
|
133
|
+
request: BenchmarkQuestionDraftCreateRequest;
|
|
134
134
|
onSubmitted?: (submission: LocalServiceJobSubmitted) => void;
|
|
135
135
|
onUpdate?: (job: LocalJobRunResource) => void;
|
|
136
|
-
}): Promise<LocalServiceJobSubmission<
|
|
136
|
+
}): Promise<LocalServiceJobSubmission<BenchmarkQuestionDraftResult> | null>;
|
|
137
137
|
export declare function submitBuildPlanAuthoringRunToLocalService(options: {
|
|
138
|
-
|
|
138
|
+
projectId: string;
|
|
139
139
|
request: BuildPlanAuthoringCreateRequest;
|
|
140
140
|
onSubmitted?: (submission: LocalServiceJobSubmitted) => void;
|
|
141
141
|
onUpdate?: (job: LocalJobRunResource) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BuildRunCreateRequestSchema, BuildRunResourceSchema, ActionProposalApprovalRequestSchema, ActionProposalCreateRequestSchema, ActionProposalResourceSchema, LocalJobRunResourceSchema, LocalServiceHealthSchema,
|
|
2
|
-
import { LOCAL_SERVICE_ROUTES, buildLocalServiceUrl,
|
|
3
|
-
import { readActiveConnection } from "./connection-config.js";
|
|
1
|
+
import { BuildRunCreateRequestSchema, BuildRunListResponseSchema, BuildRunResourceSchema, RunObservabilityResourceSchema, ActionProposalApprovalRequestSchema, ActionProposalCreateRequestSchema, ActionProposalResourceSchema, LocalJobRunResourceSchema, LocalServiceHealthSchema, BenchmarkQuestionDraftCreateRequestSchema, BenchmarkQuestionDraftResultSchema, ResetRequestSchema, ResetResultSchema, VerifyRunCreateRequestSchema, VerifyRunResourceSchema, BuildPlanAuthoringCreateRequestSchema, BuildPlanAuthoringResultSchema, } from "./schemas/index.js";
|
|
2
|
+
import { LOCAL_SERVICE_ROUTES, buildLocalServiceUrl, projectSubresourcePath, } from "./service/routes.js";
|
|
3
|
+
import { INTERF_AUTH_TOKEN_ENV, readActiveConnection } from "./connection-config.js";
|
|
4
4
|
async function connectOrNull(options = {}) {
|
|
5
5
|
const conn = readActiveConnection({
|
|
6
6
|
urlOverride: options.url ?? null,
|
|
@@ -34,12 +34,12 @@ export function configuredLocalServiceUrl() {
|
|
|
34
34
|
return buildLocalServiceUrl();
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
* Resolve the bearer token for the active connection.
|
|
38
|
-
*
|
|
39
|
-
* `
|
|
37
|
+
* Resolve the bearer token for the active connection. There is exactly
|
|
38
|
+
* one source of truth: `~/.interf/connection.json` (or the
|
|
39
|
+
* `INTERF_AUTH_TOKEN` env override).
|
|
40
40
|
*/
|
|
41
41
|
export function resolveLocalServiceAuthToken() {
|
|
42
|
-
const explicit = process.env
|
|
42
|
+
const explicit = process.env[INTERF_AUTH_TOKEN_ENV]?.trim();
|
|
43
43
|
if (explicit)
|
|
44
44
|
return explicit;
|
|
45
45
|
const conn = readActiveConnection();
|
|
@@ -68,9 +68,9 @@ async function fetchJson(url, options = {}) {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
|
-
* Resolve a connection
|
|
72
|
-
* `~/.interf/connection.json` (written by `interf
|
|
73
|
-
* `INTERF_SERVICE_URL` / `
|
|
71
|
+
* Resolve a connection — the only path to the engine. Read
|
|
72
|
+
* `~/.interf/connection.json` (written by `interf runtime`) or honor the
|
|
73
|
+
* `INTERF_SERVICE_URL` / `INTERF_AUTH_TOKEN` env overrides.
|
|
74
74
|
*/
|
|
75
75
|
export async function findLocalService(options = {}) {
|
|
76
76
|
void options.timeoutMs;
|
|
@@ -80,7 +80,7 @@ function authHeaders(authToken) {
|
|
|
80
80
|
return authToken ? { authorization: `Bearer ${authToken}` } : {};
|
|
81
81
|
}
|
|
82
82
|
// ─────────────────────────────────────────────────────────────────────────
|
|
83
|
-
//
|
|
83
|
+
// Project-keyed run submission helpers
|
|
84
84
|
// ─────────────────────────────────────────────────────────────────────────
|
|
85
85
|
export async function submitBuildRunToLocalService(options) {
|
|
86
86
|
const connection = await connectOrNull();
|
|
@@ -91,7 +91,7 @@ export async function submitBuildRunToLocalService(options) {
|
|
|
91
91
|
...authHeaders(connection.authToken),
|
|
92
92
|
...(options.idempotencyKey ? { "x-interf-idempotency-key": options.idempotencyKey } : {}),
|
|
93
93
|
};
|
|
94
|
-
const url = `${connection.serviceUrl}${
|
|
94
|
+
const url = `${connection.serviceUrl}${projectSubresourcePath(options.projectId, "buildRuns")}`;
|
|
95
95
|
const resource = BuildRunResourceSchema.parse(await fetchJson(url, {
|
|
96
96
|
method: "POST",
|
|
97
97
|
body: JSON.stringify(request),
|
|
@@ -107,7 +107,7 @@ export async function submitVerifyRunToLocalService(options) {
|
|
|
107
107
|
if (!connection)
|
|
108
108
|
return null;
|
|
109
109
|
const request = VerifyRunCreateRequestSchema.parse(options.request);
|
|
110
|
-
const url = `${connection.serviceUrl}${
|
|
110
|
+
const url = `${connection.serviceUrl}${projectSubresourcePath(options.projectId, "verifyRuns")}`;
|
|
111
111
|
const resource = VerifyRunResourceSchema.parse(await fetchJson(url, {
|
|
112
112
|
method: "POST",
|
|
113
113
|
body: JSON.stringify(request),
|
|
@@ -123,7 +123,7 @@ export async function submitResetToLocalService(options) {
|
|
|
123
123
|
if (!connection)
|
|
124
124
|
return null;
|
|
125
125
|
const request = ResetRequestSchema.parse(options.request);
|
|
126
|
-
const url = `${connection.serviceUrl}${
|
|
126
|
+
const url = `${connection.serviceUrl}${projectSubresourcePath(options.projectId, "reset")}`;
|
|
127
127
|
const result = ResetResultSchema.parse(await fetchJson(url, {
|
|
128
128
|
method: "POST",
|
|
129
129
|
body: JSON.stringify(request),
|
|
@@ -186,11 +186,28 @@ function isTerminalRunStatus(status) {
|
|
|
186
186
|
return status === "succeeded" || status === "failed" || status === "cancelled";
|
|
187
187
|
}
|
|
188
188
|
export async function getLocalBuildRun(options) {
|
|
189
|
-
|
|
189
|
+
const headers = authHeaders(options.authToken ?? resolveLocalServiceAuthToken());
|
|
190
|
+
const runValue = await fetchJson(`${options.serviceUrl}/v1/runs/${encodeURIComponent(options.runId)}`, {
|
|
190
191
|
method: "GET",
|
|
191
192
|
timeoutMs: 2000,
|
|
192
|
-
headers
|
|
193
|
+
headers,
|
|
194
|
+
});
|
|
195
|
+
const direct = BuildRunResourceSchema.safeParse(runValue);
|
|
196
|
+
if (direct.success)
|
|
197
|
+
return direct.data;
|
|
198
|
+
const observable = RunObservabilityResourceSchema.parse(runValue);
|
|
199
|
+
if (observable.run_type !== "build" || !observable.project) {
|
|
200
|
+
throw new Error(`Run ${options.runId} is not a Build run.`);
|
|
201
|
+
}
|
|
202
|
+
const projectRuns = BuildRunListResponseSchema.parse(await fetchJson(`${options.serviceUrl}/v1/projects/${encodeURIComponent(observable.project)}/runs`, {
|
|
203
|
+
method: "GET",
|
|
204
|
+
timeoutMs: 2000,
|
|
205
|
+
headers,
|
|
193
206
|
}));
|
|
207
|
+
const run = projectRuns.runs.find((candidate) => candidate.run_id === options.runId);
|
|
208
|
+
if (!run)
|
|
209
|
+
throw new Error(`Build run ${options.runId} was not found in Project ${observable.project}.`);
|
|
210
|
+
return BuildRunResourceSchema.parse({ run });
|
|
194
211
|
}
|
|
195
212
|
/**
|
|
196
213
|
* Ask the local service to cancel a running Build run by id. Resolves
|
|
@@ -198,7 +215,7 @@ export async function getLocalBuildRun(options) {
|
|
|
198
215
|
* returns 404 (unknown run id) or any non-2xx status.
|
|
199
216
|
*/
|
|
200
217
|
export async function cancelLocalBuildRun(options) {
|
|
201
|
-
const value = await fetchJson(`${options.serviceUrl}/v1/
|
|
218
|
+
const value = await fetchJson(`${options.serviceUrl}/v1/runs/${encodeURIComponent(options.runId)}/cancel`, {
|
|
202
219
|
method: "POST",
|
|
203
220
|
timeoutMs: options.timeoutMs ?? 2000,
|
|
204
221
|
headers: authHeaders(options.authToken ?? resolveLocalServiceAuthToken()),
|
|
@@ -294,12 +311,12 @@ function resultError(job, defaultMessage) {
|
|
|
294
311
|
}
|
|
295
312
|
return job.error ?? defaultMessage;
|
|
296
313
|
}
|
|
297
|
-
export async function
|
|
314
|
+
export async function submitBenchmarkQuestionDraftToLocalService(options) {
|
|
298
315
|
const connection = await connectOrNull();
|
|
299
316
|
if (!connection)
|
|
300
317
|
return null;
|
|
301
|
-
const request =
|
|
302
|
-
const initialJob = LocalJobRunResourceSchema.parse(await fetchJson(`${connection.serviceUrl}${
|
|
318
|
+
const request = BenchmarkQuestionDraftCreateRequestSchema.parse(options.request);
|
|
319
|
+
const initialJob = LocalJobRunResourceSchema.parse(await fetchJson(`${connection.serviceUrl}${projectSubresourcePath(options.projectId, "benchmarkQuestionDrafts")}`, {
|
|
303
320
|
method: "POST",
|
|
304
321
|
body: JSON.stringify(request),
|
|
305
322
|
headers: authHeaders(connection.authToken),
|
|
@@ -319,16 +336,16 @@ export async function submitReadinessCheckDraftToLocalService(options) {
|
|
|
319
336
|
serviceUrl: connection.serviceUrl,
|
|
320
337
|
job,
|
|
321
338
|
result: null,
|
|
322
|
-
error: resultError(job, "Drafting
|
|
339
|
+
error: resultError(job, "Drafting benchmark questions failed in the local Interf service."),
|
|
323
340
|
};
|
|
324
341
|
}
|
|
325
|
-
const parsed =
|
|
342
|
+
const parsed = BenchmarkQuestionDraftResultSchema.safeParse(job.result);
|
|
326
343
|
if (!parsed.success) {
|
|
327
344
|
return {
|
|
328
345
|
serviceUrl: connection.serviceUrl,
|
|
329
346
|
job,
|
|
330
347
|
result: null,
|
|
331
|
-
error: "Drafting
|
|
348
|
+
error: "Drafting benchmark questions finished without a valid result.",
|
|
332
349
|
};
|
|
333
350
|
}
|
|
334
351
|
return {
|
|
@@ -342,7 +359,7 @@ export async function submitBuildPlanAuthoringRunToLocalService(options) {
|
|
|
342
359
|
if (!connection)
|
|
343
360
|
return null;
|
|
344
361
|
const request = BuildPlanAuthoringCreateRequestSchema.parse(options.request);
|
|
345
|
-
const initialJob = LocalJobRunResourceSchema.parse(await fetchJson(`${connection.serviceUrl}${
|
|
362
|
+
const initialJob = LocalJobRunResourceSchema.parse(await fetchJson(`${connection.serviceUrl}${projectSubresourcePath(options.projectId, "buildPlanDraftRuns")}`, {
|
|
346
363
|
method: "POST",
|
|
347
364
|
body: JSON.stringify(request),
|
|
348
365
|
headers: authHeaders(connection.authToken),
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Single CLI connection record at `~/.interf/connection.json`.
|
|
3
3
|
*
|
|
4
4
|
* The CLI is a thin authorized client of one connected instance. Switch by
|
|
5
|
-
* starting `interf
|
|
6
|
-
* remote connection), or by passing `--url` / env vars to override
|
|
5
|
+
* starting `interf runtime` (writes a local connection), `interf login`
|
|
6
|
+
* (writes a remote connection), or by passing `--url` / env vars to override
|
|
7
|
+
* per-call.
|
|
7
8
|
*
|
|
8
9
|
* No per-folder pointer files. No registry of multiple connections.
|
|
9
10
|
*/
|