@interf/compiler 0.22.2 → 0.50.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 +119 -282
- 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 -35
- package/dist/cli/commands/auth.d.ts +20 -0
- package/dist/cli/commands/auth.js +161 -0
- package/dist/cli/commands/benchmark.d.ts +9 -0
- package/dist/cli/commands/benchmark.js +58 -0
- package/dist/cli/commands/build-plan.js +107 -139
- package/dist/cli/commands/build.d.ts +3 -4
- package/dist/cli/commands/build.js +16 -45
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/graphs.d.ts +2 -0
- package/dist/cli/commands/graphs.js +344 -0
- package/dist/cli/commands/login.js +4 -6
- package/dist/cli/commands/logout.js +1 -1
- package/dist/cli/commands/mcp.d.ts +4 -2
- package/dist/cli/commands/mcp.js +846 -232
- package/dist/cli/commands/project.d.ts +2 -0
- package/dist/cli/commands/project.js +176 -0
- package/dist/cli/commands/reset.d.ts +3 -4
- package/dist/cli/commands/reset.js +10 -31
- package/dist/cli/commands/runs.js +136 -57
- 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 +35 -45
- package/dist/cli/commands/traces.d.ts +2 -0
- package/dist/cli/commands/traces.js +97 -0
- package/dist/cli/commands/wizard.js +171 -178
- package/dist/cli/index.d.ts +7 -4
- package/dist/cli/index.js +13 -7
- package/dist/cli/lib/http-client.d.ts +39 -0
- package/dist/cli/lib/http-client.js +73 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/packages/build-plans/authoring/brief.d.ts +538 -0
- package/dist/packages/build-plans/authoring/brief.js +89 -0
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +52 -11
- package/dist/packages/build-plans/authoring/build-plan-authoring.js +493 -46
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +10 -1
- package/dist/packages/build-plans/authoring/build-plan-edit-session.js +27 -4
- package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +97 -46
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.d.ts +1 -0
- 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 -13
- package/dist/packages/build-plans/package/build-plan-definitions.js +45 -42
- 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 +5 -4
- package/dist/packages/build-plans/package/build-plan-stage-runner.js +23 -11
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +7 -8
- package/dist/packages/build-plans/package/builtin-build-plan.js +10 -11
- package/dist/packages/build-plans/package/context-interface.d.ts +14 -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 +68 -64
- package/dist/packages/build-plans/package/local-build-plans.d.ts +21 -14
- package/dist/packages/build-plans/package/local-build-plans.js +105 -55
- package/dist/packages/build-plans/package/user-build-plans.js +1 -1
- package/dist/packages/contracts/index.d.ts +5 -2
- package/dist/packages/contracts/index.js +3 -1
- package/dist/packages/contracts/lib/context-graph-layer.d.ts +161 -0
- package/dist/packages/contracts/lib/context-graph-layer.js +216 -0
- package/dist/packages/contracts/lib/project-paths.d.ts +144 -0
- package/dist/packages/contracts/lib/project-paths.js +220 -0
- package/dist/packages/contracts/lib/project-schema.d.ts +423 -0
- package/dist/packages/contracts/lib/project-schema.js +138 -0
- package/dist/packages/contracts/lib/schema.d.ts +1273 -81
- package/dist/packages/contracts/lib/schema.js +675 -79
- package/dist/packages/contracts/utils/filesystem.d.ts +1 -0
- package/dist/packages/contracts/utils/filesystem.js +29 -1
- 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 +77 -0
- package/dist/packages/projects/lib/schema.js +91 -0
- package/dist/packages/projects/source-config.d.ts +53 -0
- package/dist/packages/projects/source-config.js +339 -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 +86 -0
- package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
- package/dist/packages/runtime/actions/form-builders.js +667 -0
- package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
- package/dist/packages/runtime/actions/form-validators.js +134 -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 +164 -0
- package/dist/packages/runtime/actions/schemas.d.ts +161 -0
- package/dist/packages/runtime/actions/schemas.js +37 -0
- package/dist/packages/runtime/agent-handoff.d.ts +11 -0
- package/dist/packages/runtime/agent-handoff.js +102 -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.d.ts +14 -0
- package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +31 -14
- package/dist/packages/{engine → runtime}/agents/lib/execution.js +22 -6
- package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +1 -0
- package/dist/packages/{engine → runtime}/agents/lib/executors.js +11 -2
- package/dist/packages/runtime/agents/lib/logs.d.ts +12 -0
- package/dist/packages/runtime/agents/lib/logs.js +41 -0
- package/dist/packages/{engine → runtime}/agents/lib/preflight.js +19 -14
- package/dist/packages/runtime/agents/lib/render.d.ts +26 -0
- package/dist/packages/{engine → runtime}/agents/lib/render.js +48 -22
- 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 +494 -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 +92 -0
- package/dist/packages/runtime/agents/lib/shells.js +509 -0
- package/dist/packages/runtime/agents/lib/source-context-scan.d.ts +10 -0
- package/dist/packages/runtime/agents/lib/source-context-scan.js +388 -0
- package/dist/packages/{engine → runtime}/agents/lib/status.js +1 -14
- package/dist/packages/runtime/agents/lib/string-utils.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/string-utils.js +36 -0
- package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +1 -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 +66 -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 +9 -7
- 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 +96 -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 +23 -0
- package/dist/packages/runtime/benchmark-question-draft.js +153 -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 +6 -6
- package/dist/packages/{engine → runtime}/build/artifact-status.js +26 -24
- 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 +16 -0
- package/dist/packages/runtime/build/build-evidence.js +179 -0
- package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
- package/dist/packages/runtime/build/build-pipeline.js +388 -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/runtime/build/build-stage-plan.js +101 -0
- package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
- package/dist/packages/runtime/build/build-stage-runner.js +302 -0
- package/dist/packages/{engine → runtime}/build/build-target.d.ts +7 -4
- package/dist/packages/runtime/build/build-target.js +40 -0
- package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
- package/dist/packages/runtime/build/check-evaluator.js +1226 -0
- package/dist/packages/runtime/build/context-graph-paths.d.ts +64 -0
- package/dist/packages/runtime/build/context-graph-paths.js +160 -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 +7 -5
- package/dist/packages/{engine → runtime}/build/index.js +7 -5
- package/dist/packages/runtime/build/inspect-map.d.ts +10 -0
- package/dist/packages/runtime/build/inspect-map.js +270 -0
- package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +449 -123
- package/dist/packages/runtime/build/lib/schema.js +494 -0
- package/dist/packages/runtime/build/native-entrypoint.d.ts +2 -0
- package/dist/packages/runtime/build/native-entrypoint.js +286 -0
- 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 +13 -7
- 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/runtime/build/runtime-log-paths.d.ts +3 -0
- package/dist/packages/runtime/build/runtime-log-paths.js +16 -0
- package/dist/packages/{engine → runtime}/build/runtime-prompt.js +12 -9
- 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 +318 -0
- package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +9 -6
- package/dist/packages/runtime/build/runtime-types.js +1 -0
- package/dist/packages/runtime/build/runtime.d.ts +8 -0
- package/dist/packages/runtime/build/runtime.js +7 -0
- package/dist/packages/runtime/build/source-files.d.ts +58 -0
- package/dist/packages/runtime/build/source-files.js +193 -0
- package/dist/packages/runtime/build/source-inventory.d.ts +28 -0
- package/dist/packages/runtime/build/source-inventory.js +512 -0
- package/dist/packages/runtime/build/source-manifest.d.ts +63 -0
- package/dist/packages/runtime/build/source-manifest.js +220 -0
- package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
- package/dist/packages/runtime/build/stage-evidence.js +386 -0
- package/dist/packages/runtime/build/stage-manifest.d.ts +45 -0
- package/dist/packages/runtime/build/stage-manifest.js +1125 -0
- package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
- package/dist/packages/runtime/build/stage-reuse.js +154 -0
- package/dist/packages/runtime/build/stage-session.d.ts +81 -0
- package/dist/packages/runtime/build/stage-session.js +308 -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 +118 -0
- package/dist/packages/runtime/build/state-view.d.ts +5 -0
- package/dist/packages/runtime/build/state-view.js +121 -0
- package/dist/packages/runtime/build/state.d.ts +7 -0
- package/dist/packages/runtime/build/state.js +12 -0
- package/dist/packages/runtime/build/summary-coverage-index.d.ts +21 -0
- package/dist/packages/runtime/build/summary-coverage-index.js +189 -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} +49 -36
- 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 +18 -18
- package/dist/packages/{engine → runtime}/client.js +48 -36
- 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 +127 -0
- package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
- package/dist/packages/runtime/context-graph-scaffold.js +135 -0
- package/dist/packages/runtime/context-graph-semantic-graph.d.ts +9 -0
- package/dist/packages/runtime/context-graph-semantic-graph.js +416 -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 +272 -191
- 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/runtime/native-run-handlers.d.ts +63 -0
- package/dist/packages/{engine → runtime}/native-run-handlers.js +217 -166
- 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 +56 -0
- package/dist/packages/runtime/project-store.d.ts +90 -0
- package/dist/packages/runtime/project-store.js +195 -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 +174 -87
- 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 +175 -0
- package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
- package/dist/packages/runtime/runtime-build-runs.js +555 -0
- package/dist/packages/runtime/runtime-caches.d.ts +117 -0
- package/dist/packages/runtime/runtime-caches.js +266 -0
- 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 +65 -0
- package/dist/packages/runtime/runtime-project-reads.d.ts +18 -0
- package/dist/packages/runtime/runtime-project-reads.js +574 -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 +23 -16
- package/dist/packages/{engine → runtime}/runtime-resource-builders.js +58 -46
- package/dist/packages/runtime/runtime-status.d.ts +14 -0
- package/dist/packages/runtime/runtime-status.js +15 -0
- package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
- package/dist/packages/runtime/runtime-verify-runs.js +296 -0
- package/dist/packages/runtime/runtime.d.ts +1582 -0
- package/dist/packages/runtime/runtime.js +431 -0
- package/dist/packages/runtime/schemas/actions.d.ts +1206 -0
- package/dist/packages/runtime/schemas/actions.js +117 -0
- package/dist/packages/runtime/schemas/agents.d.ts +104 -0
- package/dist/packages/runtime/schemas/agents.js +74 -0
- package/dist/packages/runtime/schemas/build-plans.d.ts +1132 -0
- package/dist/packages/runtime/schemas/build-plans.js +141 -0
- package/dist/packages/runtime/schemas/context-graphs.d.ts +1522 -0
- package/dist/packages/runtime/schemas/context-graphs.js +110 -0
- package/dist/packages/runtime/schemas/files.d.ts +227 -0
- package/dist/packages/runtime/schemas/files.js +28 -0
- package/dist/packages/runtime/schemas/index.d.ts +9 -0
- package/dist/packages/runtime/schemas/index.js +13 -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 +107 -0
- package/dist/packages/runtime/schemas/projects.d.ts +366 -0
- package/dist/packages/runtime/schemas/projects.js +160 -0
- package/dist/packages/runtime/schemas/runs.d.ts +3445 -0
- package/dist/packages/runtime/schemas/runs.js +115 -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 +118 -0
- package/dist/packages/runtime/service/operations.d.ts +3011 -0
- package/dist/packages/runtime/service/operations.js +375 -0
- package/dist/packages/runtime/service/routes.d.ts +114 -0
- package/dist/packages/runtime/service/routes.js +128 -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 +38 -0
- package/dist/packages/runtime/service/server-helpers.js +108 -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 +45 -0
- package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-agents.js +132 -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 +86 -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 +287 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.js +137 -0
- package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
- package/dist/packages/runtime/service/server-routes-project-runs.js +88 -0
- package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-projects.js +96 -0
- package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-runs.js +119 -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 +38 -18
- package/dist/packages/runtime/verify/test-file-guard.d.ts +2 -0
- package/dist/packages/runtime/verify/test-file-guard.js +29 -0
- package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +7 -0
- package/dist/packages/{engine → runtime}/verify/verify-execution.js +119 -45
- package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +5 -4
- package/dist/packages/runtime/verify/verify-paths.js +65 -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/runtime/verify/verify-specs.js +126 -0
- 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 +32 -30
- package/public-repo/CONTRIBUTING.md +16 -18
- package/public-repo/README.md +119 -282
- package/public-repo/SECURITY.md +3 -4
- package/public-repo/build-plans/interf-default/README.md +24 -16
- package/public-repo/build-plans/interf-default/build/stages/entrypoint/SKILL.md +74 -0
- package/public-repo/build-plans/interf-default/build/stages/knowledge/SKILL.md +95 -0
- package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +49 -4
- package/public-repo/build-plans/interf-default/build-plan.json +49 -39
- package/public-repo/build-plans/interf-default/build-plan.schema.json +59 -33
- package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
- package/public-repo/build-plans/interf-default/use/query/SKILL.md +18 -11
- package/public-repo/openapi/local-service.openapi.json +14227 -0
- package/public-repo/skills/interf/SKILL.md +508 -187
- package/dist/cli/commands/prep.d.ts +0 -2
- package/dist/cli/commands/prep.js +0 -240
- package/dist/cli/commands/test.d.ts +0 -10
- package/dist/cli/commands/test.js +0 -85
- package/dist/cli/commands/web.d.ts +0 -2
- package/dist/cli/commands/web.js +0 -286
- package/dist/interf-ui/404.html +0 -1
- package/dist/interf-ui/__next.__PAGE__.txt +0 -10
- package/dist/interf-ui/__next._full.txt +0 -20
- package/dist/interf-ui/__next._head.txt +0 -5
- package/dist/interf-ui/__next._index.txt +0 -5
- package/dist/interf-ui/__next._tree.txt +0 -5
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_buildManifest.js +0 -11
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_clientMiddlewareManifest.js +0 -1
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_ssgManifest.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
- package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
- package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
- package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
- package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
- package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
- package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
- package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
- package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
- package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
- package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
- package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
- package/dist/interf-ui/_not-found/__next._full.txt +0 -15
- package/dist/interf-ui/_not-found/__next._head.txt +0 -5
- package/dist/interf-ui/_not-found/__next._index.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
- package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
- package/dist/interf-ui/_not-found.html +0 -1
- package/dist/interf-ui/_not-found.txt +0 -15
- package/dist/interf-ui/index.html +0 -1
- package/dist/interf-ui/index.txt +0 -20
- package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
- package/dist/packages/contracts/lib/preparation-paths.js +0 -177
- package/dist/packages/engine/action-definitions.d.ts +0 -407
- package/dist/packages/engine/action-definitions.js +0 -1158
- package/dist/packages/engine/action-values.d.ts +0 -1
- package/dist/packages/engine/action-values.js +0 -1
- package/dist/packages/engine/agents/lib/args.d.ts +0 -4
- package/dist/packages/engine/agents/lib/args.js +0 -52
- package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
- package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
- package/dist/packages/engine/agents/lib/constants.js +0 -28
- package/dist/packages/engine/agents/lib/logs.d.ts +0 -2
- package/dist/packages/engine/agents/lib/logs.js +0 -17
- package/dist/packages/engine/agents/lib/render.d.ts +0 -8
- 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-plan.js +0 -100
- 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/lib/schema.js +0 -316
- 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-paths.d.ts +0 -8
- package/dist/packages/engine/build/runtime-paths.js +0 -26
- 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.d.ts +0 -5
- 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-view.js +0 -94
- 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/native-run-handlers.d.ts +0 -25
- 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-caches.js +0 -191
- 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-specs.js +0 -114
- 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/build-plans/interf-default/build/stages/shape/SKILL.md +0 -27
- package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +0 -21
- 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.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.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-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-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
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime read-side caches.
|
|
3
|
+
*
|
|
4
|
+
* The local service runtime fronts a filesystem-backed model: every
|
|
5
|
+
* "list" or "get" call walks `.interf/runtime/...`, parses each JSON
|
|
6
|
+
* record through Zod, and returns the typed shape. Polling clients
|
|
7
|
+
* (Interf Desktop renderer, CLI status loops) hit those endpoints multiple times
|
|
8
|
+
* per second; on instances with hundreds of Build / benchmark runs this
|
|
9
|
+
* shows up as the dominant CPU cost.
|
|
10
|
+
*
|
|
11
|
+
* The caches here memoize the parsed-and-validated results. Each cache
|
|
12
|
+
* is keyed by Project data directory so independent Projects do
|
|
13
|
+
* not cross-pollinate, and each cache exposes both a read path (`get(...)`) and an explicit
|
|
14
|
+
* invalidation hook (`invalidate(...)`). The runtime calls
|
|
15
|
+
* `invalidate*` whenever it writes, so the next read repopulates from
|
|
16
|
+
* disk. Invalidation is intentionally broad (per-Project, not
|
|
17
|
+
* per-record) — staleness is the only correctness bug worth avoiding,
|
|
18
|
+
* and per-record invalidation introduces fan-out without measurably
|
|
19
|
+
* lowering recompute cost.
|
|
20
|
+
*/
|
|
21
|
+
import { existsSync, statSync } from "node:fs";
|
|
22
|
+
import { resolve } from "node:path";
|
|
23
|
+
/**
|
|
24
|
+
* Per-(Project data directory, project) cache for Build records, plus a
|
|
25
|
+
* runId -> project index so `getBuildRun(runId)` can resolve to
|
|
26
|
+
* the owning Project without scanning every Project's runs.
|
|
27
|
+
*/
|
|
28
|
+
export class RunListingCache {
|
|
29
|
+
/** projectDataDir -> project id -> records (newest-first sorted). */
|
|
30
|
+
byProjectRoot = new Map();
|
|
31
|
+
/** projectDataDir -> runId -> project. */
|
|
32
|
+
runIndex = new Map();
|
|
33
|
+
get(projectDataDir, project, fill, runIdOf) {
|
|
34
|
+
const wsKey = resolve(projectDataDir);
|
|
35
|
+
let bucket = this.byProjectRoot.get(wsKey);
|
|
36
|
+
if (!bucket) {
|
|
37
|
+
bucket = new Map();
|
|
38
|
+
this.byProjectRoot.set(wsKey, bucket);
|
|
39
|
+
}
|
|
40
|
+
const cached = bucket.get(project);
|
|
41
|
+
if (cached)
|
|
42
|
+
return cached;
|
|
43
|
+
const fresh = fill();
|
|
44
|
+
bucket.set(project, fresh);
|
|
45
|
+
let index = this.runIndex.get(wsKey);
|
|
46
|
+
if (!index) {
|
|
47
|
+
index = new Map();
|
|
48
|
+
this.runIndex.set(wsKey, index);
|
|
49
|
+
}
|
|
50
|
+
for (const record of fresh) {
|
|
51
|
+
index.set(runIdOf(record), project);
|
|
52
|
+
}
|
|
53
|
+
return fresh;
|
|
54
|
+
}
|
|
55
|
+
/** Look up which project owns this runId, if known. */
|
|
56
|
+
projectFor(projectDataDir, runId) {
|
|
57
|
+
const wsKey = resolve(projectDataDir);
|
|
58
|
+
return this.runIndex.get(wsKey)?.get(runId) ?? null;
|
|
59
|
+
}
|
|
60
|
+
/** Invalidate a single project's cached records and id index. */
|
|
61
|
+
invalidateProject(projectDataDir, project) {
|
|
62
|
+
const wsKey = resolve(projectDataDir);
|
|
63
|
+
const bucket = this.byProjectRoot.get(wsKey);
|
|
64
|
+
if (bucket) {
|
|
65
|
+
bucket.delete(project);
|
|
66
|
+
if (bucket.size === 0)
|
|
67
|
+
this.byProjectRoot.delete(wsKey);
|
|
68
|
+
}
|
|
69
|
+
const index = this.runIndex.get(wsKey);
|
|
70
|
+
if (index) {
|
|
71
|
+
for (const [runId, owner] of index) {
|
|
72
|
+
if (owner === project)
|
|
73
|
+
index.delete(runId);
|
|
74
|
+
}
|
|
75
|
+
if (index.size === 0)
|
|
76
|
+
this.runIndex.delete(wsKey);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** Drop everything for a Project data directory (e.g. after a reset). */
|
|
80
|
+
invalidateProjectRoot(projectDataDir) {
|
|
81
|
+
const wsKey = resolve(projectDataDir);
|
|
82
|
+
this.byProjectRoot.delete(wsKey);
|
|
83
|
+
this.runIndex.delete(wsKey);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Per-(Project data directory, project) readiness cache. Readiness joins build
|
|
88
|
+
* runs, benchmark runs, and the Project config; it
|
|
89
|
+
* is computed on every poll. The cache invalidates when the runtime
|
|
90
|
+
* writes any of those underlying objects for a given project.
|
|
91
|
+
*/
|
|
92
|
+
export class ReadinessCache {
|
|
93
|
+
byProjectRoot = new Map();
|
|
94
|
+
get(projectDataDir, project, compute) {
|
|
95
|
+
const wsKey = resolve(projectDataDir);
|
|
96
|
+
let bucket = this.byProjectRoot.get(wsKey);
|
|
97
|
+
if (!bucket) {
|
|
98
|
+
bucket = new Map();
|
|
99
|
+
this.byProjectRoot.set(wsKey, bucket);
|
|
100
|
+
}
|
|
101
|
+
const cached = bucket.get(project);
|
|
102
|
+
if (cached !== undefined)
|
|
103
|
+
return cached;
|
|
104
|
+
const fresh = compute();
|
|
105
|
+
bucket.set(project, fresh);
|
|
106
|
+
return fresh;
|
|
107
|
+
}
|
|
108
|
+
invalidateProject(projectDataDir, project) {
|
|
109
|
+
const wsKey = resolve(projectDataDir);
|
|
110
|
+
const bucket = this.byProjectRoot.get(wsKey);
|
|
111
|
+
if (bucket) {
|
|
112
|
+
bucket.delete(project);
|
|
113
|
+
if (bucket.size === 0)
|
|
114
|
+
this.byProjectRoot.delete(wsKey);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
invalidateProjectRoot(projectDataDir) {
|
|
118
|
+
this.byProjectRoot.delete(resolve(projectDataDir));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Source-folder listing cache keyed by `(cacheKey, folderRootMtime)`.
|
|
123
|
+
* `cacheKey` is the slot identifier; `folderPath` is the directory the
|
|
124
|
+
* cache stats for an mtime probe. UI polling is the hot path; CLI
|
|
125
|
+
* commands rarely hit the same path twice in <2s, hence the short TTL
|
|
126
|
+
* fallback.
|
|
127
|
+
*/
|
|
128
|
+
export class MtimeListingCache {
|
|
129
|
+
static TTL_MS = 2000;
|
|
130
|
+
cache = new Map();
|
|
131
|
+
get(cacheKey, folderPath, fill) {
|
|
132
|
+
const now = Date.now();
|
|
133
|
+
const stat = safeStat(folderPath);
|
|
134
|
+
const currentMtime = stat?.mtimeMs ?? 0;
|
|
135
|
+
const entry = this.cache.get(cacheKey);
|
|
136
|
+
if (entry
|
|
137
|
+
&& entry.mtimeMs === currentMtime
|
|
138
|
+
&& entry.expiresAt > now) {
|
|
139
|
+
return entry.value;
|
|
140
|
+
}
|
|
141
|
+
const value = fill();
|
|
142
|
+
this.cache.set(cacheKey, {
|
|
143
|
+
mtimeMs: currentMtime,
|
|
144
|
+
expiresAt: now + MtimeListingCache.TTL_MS,
|
|
145
|
+
value,
|
|
146
|
+
});
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
invalidate(cacheKey) {
|
|
150
|
+
this.cache.delete(cacheKey);
|
|
151
|
+
}
|
|
152
|
+
invalidateAll() {
|
|
153
|
+
this.cache.clear();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Build Plan listing cache keyed by the joined mtimes of the
|
|
158
|
+
* bundled / user-library / Project-local Build Plan package roots. If
|
|
159
|
+
* any of those ticks (a new local Build Plan package, an edit to the user library, etc.) the cache
|
|
160
|
+
* misses and we re-resolve.
|
|
161
|
+
*/
|
|
162
|
+
export class BuildPlanListingCache {
|
|
163
|
+
cache = new Map();
|
|
164
|
+
get(cacheKey, rootPaths, fill) {
|
|
165
|
+
const fingerprint = rootPaths
|
|
166
|
+
.map((path) => `${path}:${safeStat(path)?.mtimeMs ?? 0}`)
|
|
167
|
+
.join("|");
|
|
168
|
+
const entry = this.cache.get(cacheKey);
|
|
169
|
+
if (entry && entry.key === fingerprint)
|
|
170
|
+
return entry.value;
|
|
171
|
+
const value = fill();
|
|
172
|
+
this.cache.set(cacheKey, { key: fingerprint, value });
|
|
173
|
+
return value;
|
|
174
|
+
}
|
|
175
|
+
invalidate(cacheKey) {
|
|
176
|
+
this.cache.delete(cacheKey);
|
|
177
|
+
}
|
|
178
|
+
invalidateAll() {
|
|
179
|
+
this.cache.clear();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function safeStat(path) {
|
|
183
|
+
try {
|
|
184
|
+
if (!existsSync(path))
|
|
185
|
+
return null;
|
|
186
|
+
return statSync(path);
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Per-Project source-state cache.
|
|
194
|
+
*
|
|
195
|
+
* Computing the file index hash requires reading every source file's first
|
|
196
|
+
* 64KB; on Projects with thousands of files this is the dominant cost of a
|
|
197
|
+
* drift check. The cache keys by Project id and invalidates on Build
|
|
198
|
+
* completion (which produces a new Context Graph the drift verdict compares to).
|
|
199
|
+
*/
|
|
200
|
+
export class ProjectSourceStateCache {
|
|
201
|
+
byProjectId = new Map();
|
|
202
|
+
get(projectId, compute) {
|
|
203
|
+
const cached = this.byProjectId.get(projectId);
|
|
204
|
+
if (cached !== undefined)
|
|
205
|
+
return cached;
|
|
206
|
+
const fresh = compute();
|
|
207
|
+
this.byProjectId.set(projectId, fresh);
|
|
208
|
+
return fresh;
|
|
209
|
+
}
|
|
210
|
+
set(projectId, value) {
|
|
211
|
+
this.byProjectId.set(projectId, value);
|
|
212
|
+
}
|
|
213
|
+
invalidateProject(projectId) {
|
|
214
|
+
this.byProjectId.delete(projectId);
|
|
215
|
+
}
|
|
216
|
+
invalidateAll() {
|
|
217
|
+
this.byProjectId.clear();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Per-Build-run Context Graph resource cache.
|
|
222
|
+
*
|
|
223
|
+
* A succeeded Build's Context Graph is immutable: its on-disk folder
|
|
224
|
+
* (`graph-manifest.json`, source manifest, stage sessions, semantic graph) is
|
|
225
|
+
* frozen once the run reaches `succeeded`. Rebuilding the full
|
|
226
|
+
* `ContextGraphResource` — readiness join, semantic graph, build evidence,
|
|
227
|
+
* validation — on every read is the dominant cost of opening a built Project.
|
|
228
|
+
*
|
|
229
|
+
* The cache keys by `(projectDataDir, runId, manifestMtimeMs)`:
|
|
230
|
+
* - `runId` scopes a single Build's output.
|
|
231
|
+
* - `manifestMtimeMs` is the mtime of the Build's
|
|
232
|
+
* `.interf/runtime/graph-manifest.json`. It busts the entry if the graph is
|
|
233
|
+
* rebuilt or edited in place; a fresh Build produces a fresh `runId`, so
|
|
234
|
+
* those never collide either.
|
|
235
|
+
*
|
|
236
|
+
* Entries without a readable manifest mtime (mtime 0) are not cached — that
|
|
237
|
+
* only happens for an in-flight or malformed Build, where the resource is
|
|
238
|
+
* still changing and must be recomputed.
|
|
239
|
+
*/
|
|
240
|
+
export class ContextGraphResourceCache {
|
|
241
|
+
byKey = new Map();
|
|
242
|
+
get(projectDataDir, runId, manifestPath, compute) {
|
|
243
|
+
const mtimeMs = safeStat(manifestPath)?.mtimeMs ?? 0;
|
|
244
|
+
// mtime 0 means the manifest is missing/unreadable — the graph is not yet
|
|
245
|
+
// a frozen, succeeded output, so recompute every time without caching.
|
|
246
|
+
if (mtimeMs === 0)
|
|
247
|
+
return compute();
|
|
248
|
+
const cacheKey = `${resolve(projectDataDir)}${runId}`;
|
|
249
|
+
const entry = this.byKey.get(cacheKey);
|
|
250
|
+
if (entry && entry.mtimeMs === mtimeMs)
|
|
251
|
+
return entry.value;
|
|
252
|
+
const value = compute();
|
|
253
|
+
this.byKey.set(cacheKey, { mtimeMs, value });
|
|
254
|
+
return value;
|
|
255
|
+
}
|
|
256
|
+
invalidateProject(projectDataDir) {
|
|
257
|
+
const prefix = `${resolve(projectDataDir)}`;
|
|
258
|
+
for (const key of this.byKey.keys()) {
|
|
259
|
+
if (key.startsWith(prefix))
|
|
260
|
+
this.byKey.delete(key);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
invalidateAll() {
|
|
264
|
+
this.byKey.clear();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
* compose these without learning the resource shape.
|
|
8
8
|
*/
|
|
9
9
|
import { type BuildRun, type InterfRunEvent } from "./execution/lib/schema.js";
|
|
10
|
-
import { type LocalJobEvent, type LocalJobRunResource } from "./
|
|
10
|
+
import { type LocalJobEvent, type LocalJobRunResource } from "./schemas/index.js";
|
|
11
|
+
export declare const INTERRUPTED_BUILD_RUN_REASON = "Build interrupted because the local service stopped before the run reached a terminal state.";
|
|
12
|
+
export declare function reconcileBuildRunTerminalStatus(run: BuildRun): BuildRun;
|
|
11
13
|
export declare function applyEventToBuildRun(run: BuildRun, event: InterfRunEvent): BuildRun;
|
|
12
14
|
export declare function applyEventToLocalJob(run: LocalJobRunResource, event: LocalJobEvent): LocalJobRunResource;
|
|
@@ -1,4 +1,47 @@
|
|
|
1
1
|
import { uniqueArtifacts } from "./run-observability.js";
|
|
2
|
+
export const INTERRUPTED_BUILD_RUN_REASON = "Build interrupted because the local service stopped before the run reached a terminal state.";
|
|
3
|
+
function isRecoverableCancellation(event) {
|
|
4
|
+
return event.type === "run.cancelled" && event.reason === INTERRUPTED_BUILD_RUN_REASON;
|
|
5
|
+
}
|
|
6
|
+
export function reconcileBuildRunTerminalStatus(run) {
|
|
7
|
+
let status = run.status;
|
|
8
|
+
let finishedAt = run.finished_at;
|
|
9
|
+
let stickyCancellationAt = null;
|
|
10
|
+
for (const event of run.events) {
|
|
11
|
+
if (event.type === "run.cancelled") {
|
|
12
|
+
status = "cancelled";
|
|
13
|
+
finishedAt = event.timestamp;
|
|
14
|
+
stickyCancellationAt = isRecoverableCancellation(event) ? null : event.timestamp;
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (event.type === "run.completed") {
|
|
18
|
+
if (stickyCancellationAt) {
|
|
19
|
+
status = "cancelled";
|
|
20
|
+
finishedAt = stickyCancellationAt;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
status = "succeeded";
|
|
24
|
+
finishedAt = event.timestamp;
|
|
25
|
+
}
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (event.type === "run.failed") {
|
|
29
|
+
if (stickyCancellationAt) {
|
|
30
|
+
status = "cancelled";
|
|
31
|
+
finishedAt = stickyCancellationAt;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
status = "failed";
|
|
35
|
+
finishedAt = event.timestamp;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
...run,
|
|
41
|
+
status,
|
|
42
|
+
...(finishedAt ? { finished_at: finishedAt } : {}),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
2
45
|
export function applyEventToBuildRun(run, event) {
|
|
3
46
|
const now = event.timestamp;
|
|
4
47
|
const stageFor = (stageId) => {
|
|
@@ -32,6 +75,7 @@ export function applyEventToBuildRun(run, event) {
|
|
|
32
75
|
started_at: now,
|
|
33
76
|
stage_index: event.stage_index,
|
|
34
77
|
stage_total: event.stage_total,
|
|
78
|
+
...(event.logs ? { logs: event.logs } : {}),
|
|
35
79
|
});
|
|
36
80
|
break;
|
|
37
81
|
case "artifact.written": {
|
|
@@ -41,15 +85,15 @@ export function applyEventToBuildRun(run, event) {
|
|
|
41
85
|
});
|
|
42
86
|
break;
|
|
43
87
|
}
|
|
44
|
-
case "
|
|
88
|
+
case "evidence.updated":
|
|
45
89
|
if (event.stage_id) {
|
|
46
90
|
updateStage(event.stage_id, {
|
|
47
|
-
|
|
91
|
+
latest_evidence: event.evidence,
|
|
48
92
|
});
|
|
49
93
|
}
|
|
50
94
|
return {
|
|
51
95
|
...run,
|
|
52
|
-
|
|
96
|
+
latest_evidence: event.evidence,
|
|
53
97
|
events: [...run.events, event],
|
|
54
98
|
};
|
|
55
99
|
case "log.appended":
|
|
@@ -71,28 +115,20 @@ export function applyEventToBuildRun(run, event) {
|
|
|
71
115
|
});
|
|
72
116
|
break;
|
|
73
117
|
case "run.completed":
|
|
74
|
-
return {
|
|
118
|
+
return reconcileBuildRunTerminalStatus({
|
|
75
119
|
...run,
|
|
76
|
-
// Once cancelled, the cancelled status is sticky; the handler may
|
|
77
|
-
// still emit a completion event after the cancel signal has landed.
|
|
78
|
-
status: run.status === "cancelled" ? "cancelled" : "succeeded",
|
|
79
|
-
finished_at: run.finished_at ?? now,
|
|
80
120
|
events: [...run.events, event],
|
|
81
|
-
};
|
|
121
|
+
});
|
|
82
122
|
case "run.failed":
|
|
83
|
-
return {
|
|
123
|
+
return reconcileBuildRunTerminalStatus({
|
|
84
124
|
...run,
|
|
85
|
-
status: run.status === "cancelled" ? "cancelled" : "failed",
|
|
86
|
-
finished_at: run.finished_at ?? now,
|
|
87
125
|
events: [...run.events, event],
|
|
88
|
-
};
|
|
126
|
+
});
|
|
89
127
|
case "run.cancelled":
|
|
90
|
-
return {
|
|
128
|
+
return reconcileBuildRunTerminalStatus({
|
|
91
129
|
...run,
|
|
92
|
-
status: "cancelled",
|
|
93
|
-
finished_at: run.finished_at ?? now,
|
|
94
130
|
events: [...run.events, event],
|
|
95
|
-
};
|
|
131
|
+
});
|
|
96
132
|
case "readiness.updated":
|
|
97
133
|
return {
|
|
98
134
|
...run,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type LocalExecutorStatus } from "./schemas/index.js";
|
|
2
|
+
import type { AgentPrefs, AgentRecord, RoleMap } from "../contracts/lib/schema.js";
|
|
3
|
+
export interface AgentsRegistryState {
|
|
4
|
+
agents: AgentRecord[];
|
|
5
|
+
role_map: RoleMap;
|
|
6
|
+
active_agent: AgentRecord | null;
|
|
7
|
+
}
|
|
8
|
+
export interface AgentsRegistryRoleState {
|
|
9
|
+
role_map: RoleMap;
|
|
10
|
+
active_agent: AgentRecord | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function getExecutorStatus(): LocalExecutorStatus;
|
|
13
|
+
export declare function selectExecutor(requestValue: unknown): LocalExecutorStatus;
|
|
14
|
+
export declare function getAgentsRegistry(): AgentsRegistryState;
|
|
15
|
+
export declare function registerCustomAgent(input: {
|
|
16
|
+
name: string;
|
|
17
|
+
display_name: string;
|
|
18
|
+
command: string;
|
|
19
|
+
}): AgentsRegistryState;
|
|
20
|
+
export declare function unregisterCustomAgent(name: string): AgentsRegistryState;
|
|
21
|
+
export declare function patchAgentsRoleMap(patch: Record<string, string>): AgentsRegistryRoleState;
|
|
22
|
+
export declare function setAgentPrefs(name: string, prefs: AgentPrefs): AgentsRegistryState;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { detectAgents, resolveAgent, supportsAutomatedRuns, } from "./agents/lib/detection.js";
|
|
2
|
+
import { loadUserConfig, saveUserConfig, } from "./agents/lib/user-config.js";
|
|
3
|
+
import { AGENTS } from "./agents/lib/constants.js";
|
|
4
|
+
import { loadAgentsRegistry, patchRoleMap, registerCustomAgent as registerCustomAgentRecord, setActiveAgent, setAgentPrefs as setAgentPrefsRecord, unregisterCustomAgent as unregisterCustomAgentRecord, } from "./agents/registry.js";
|
|
5
|
+
import { LocalExecutorSelectRequestSchema, LocalExecutorStatusSchema, } from "./schemas/index.js";
|
|
6
|
+
function configuredAgentName() {
|
|
7
|
+
const config = loadUserConfig();
|
|
8
|
+
if (!config)
|
|
9
|
+
return null;
|
|
10
|
+
const configured = AGENTS.find((agent) => agent.command === config.agentCommand) ??
|
|
11
|
+
AGENTS.find((agent) => agent.name === config.agent) ??
|
|
12
|
+
AGENTS.find((agent) => agent.displayName === config.agent);
|
|
13
|
+
return configured?.name ?? null;
|
|
14
|
+
}
|
|
15
|
+
function detectedExecutorOptions(currentAgentName) {
|
|
16
|
+
return detectAgents()
|
|
17
|
+
.filter(supportsAutomatedRuns)
|
|
18
|
+
.map((agent) => ({
|
|
19
|
+
name: agent.name,
|
|
20
|
+
display_name: agent.displayName,
|
|
21
|
+
command: agent.command,
|
|
22
|
+
current: agent.name === currentAgentName,
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
export function getExecutorStatus() {
|
|
26
|
+
const checkedAt = new Date().toISOString();
|
|
27
|
+
try {
|
|
28
|
+
const resolved = resolveAgent();
|
|
29
|
+
const currentName = resolved.agent?.name ?? configuredAgentName();
|
|
30
|
+
const availableExecutors = detectedExecutorOptions(currentName);
|
|
31
|
+
if (!resolved.agent) {
|
|
32
|
+
return LocalExecutorStatusSchema.parse({
|
|
33
|
+
kind: "interf-local-executor-status",
|
|
34
|
+
version: 1,
|
|
35
|
+
status: "unavailable",
|
|
36
|
+
checked_at: checkedAt,
|
|
37
|
+
executor: null,
|
|
38
|
+
available_executors: availableExecutors,
|
|
39
|
+
message: resolved.error ?? "No supported local coding agent is configured.",
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return LocalExecutorStatusSchema.parse({
|
|
43
|
+
kind: "interf-local-executor-status",
|
|
44
|
+
version: 1,
|
|
45
|
+
status: "connected",
|
|
46
|
+
checked_at: checkedAt,
|
|
47
|
+
executor: {
|
|
48
|
+
name: resolved.agent.name,
|
|
49
|
+
display_name: resolved.agent.displayName,
|
|
50
|
+
command: resolved.agent.command,
|
|
51
|
+
},
|
|
52
|
+
available_executors: availableExecutors.length > 0
|
|
53
|
+
? availableExecutors
|
|
54
|
+
: [{
|
|
55
|
+
name: resolved.agent.name,
|
|
56
|
+
display_name: resolved.agent.displayName,
|
|
57
|
+
command: resolved.agent.command,
|
|
58
|
+
current: true,
|
|
59
|
+
}],
|
|
60
|
+
message: `${resolved.agent.displayName} is configured for local Interf actions.`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
const currentName = configuredAgentName();
|
|
65
|
+
return LocalExecutorStatusSchema.parse({
|
|
66
|
+
kind: "interf-local-executor-status",
|
|
67
|
+
version: 1,
|
|
68
|
+
status: "unavailable",
|
|
69
|
+
checked_at: checkedAt,
|
|
70
|
+
executor: null,
|
|
71
|
+
available_executors: detectedExecutorOptions(currentName),
|
|
72
|
+
message: error instanceof Error ? error.message : String(error),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export function selectExecutor(requestValue) {
|
|
77
|
+
const request = LocalExecutorSelectRequestSchema.parse(requestValue);
|
|
78
|
+
const selected = detectAgents()
|
|
79
|
+
.filter(supportsAutomatedRuns)
|
|
80
|
+
.find((agent) => agent.name === request.agent);
|
|
81
|
+
if (!selected) {
|
|
82
|
+
throw new Error(`Local agent "${request.agent}" is not detected or cannot run Interf runs.`);
|
|
83
|
+
}
|
|
84
|
+
const current = loadUserConfig();
|
|
85
|
+
saveUserConfig({
|
|
86
|
+
agent: selected.name,
|
|
87
|
+
agentCommand: selected.command,
|
|
88
|
+
skillsInstalled: current?.skillsInstalled ?? false,
|
|
89
|
+
initialized: current?.initialized ?? new Date().toISOString(),
|
|
90
|
+
});
|
|
91
|
+
// Mirror the selection into the role-map. `setActiveAgent` also sweeps
|
|
92
|
+
// any role still pointing at the previous active so single-active-agent
|
|
93
|
+
// setups stay coherent across CLIs.
|
|
94
|
+
try {
|
|
95
|
+
setActiveAgent(selected.name);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Best effort — the registry update is convenience for the new
|
|
99
|
+
// role-aware path. The user_config.json write above is the source of
|
|
100
|
+
// truth for the previous `getExecutorStatus()`.
|
|
101
|
+
}
|
|
102
|
+
return getExecutorStatus();
|
|
103
|
+
}
|
|
104
|
+
export function getAgentsRegistry() {
|
|
105
|
+
const registry = loadAgentsRegistry();
|
|
106
|
+
return {
|
|
107
|
+
agents: registry.agents,
|
|
108
|
+
role_map: registry.roleMap,
|
|
109
|
+
active_agent: registry.activeAgent,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export function registerCustomAgent(input) {
|
|
113
|
+
registerCustomAgentRecord(input);
|
|
114
|
+
return getAgentsRegistry();
|
|
115
|
+
}
|
|
116
|
+
export function unregisterCustomAgent(name) {
|
|
117
|
+
unregisterCustomAgentRecord(name);
|
|
118
|
+
return getAgentsRegistry();
|
|
119
|
+
}
|
|
120
|
+
export function patchAgentsRoleMap(patch) {
|
|
121
|
+
patchRoleMap(patch);
|
|
122
|
+
const registry = loadAgentsRegistry();
|
|
123
|
+
return {
|
|
124
|
+
role_map: registry.roleMap,
|
|
125
|
+
active_agent: registry.activeAgent,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
export function setAgentPrefs(name, prefs) {
|
|
129
|
+
setAgentPrefsRecord(name, prefs);
|
|
130
|
+
return getAgentsRegistry();
|
|
131
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type LocalJobEvent, type LocalJobRunResource } from "./schemas/index.js";
|
|
2
|
+
import type { LocalServiceJobRunContext, LocalServiceRuntime } from "./runtime.js";
|
|
3
|
+
export declare function listJobs(projectDataDir: string): LocalJobRunResource[];
|
|
4
|
+
export declare function getJob(projectDataDir: string, runId: string): LocalJobRunResource | null;
|
|
5
|
+
export declare function getJobEvents(projectDataDir: string, runId: string): LocalJobEvent[] | null;
|
|
6
|
+
export declare function createJobRun(runtime: LocalServiceRuntime, projectDataDir: string, requestValue: unknown): LocalJobRunResource;
|
|
7
|
+
export declare function appendJobRunEvent(runtime: LocalServiceRuntime, projectDataDir: string, runId: string, requestValue: unknown): LocalJobRunResource | null;
|
|
8
|
+
export declare function createBenchmarkQuestionDraftRun(runtime: LocalServiceRuntime, projectDataDir: string, requestValue: unknown): Promise<LocalJobRunResource>;
|
|
9
|
+
export declare function createBuildPlanAuthoringRun(runtime: LocalServiceRuntime, projectDataDir: string, requestValue: unknown, jobType?: "build-plan-draft" | "build-plan-improvement"): Promise<LocalJobRunResource>;
|
|
10
|
+
export declare function jobRunContext(runtime: LocalServiceRuntime, projectDataDir: string, runId: string): LocalServiceJobRunContext;
|
|
11
|
+
export declare function writeJobRun(runtime: LocalServiceRuntime, projectDataDir: string, run: LocalJobRunResource): void;
|
|
12
|
+
export declare function setJobRunResult(runtime: LocalServiceRuntime, projectDataDir: string, runId: string, result: unknown): void;
|
|
13
|
+
export declare function finalizeInterruptedJobRuns(runtime: LocalServiceRuntime, projectDataDir: string): void;
|