@interf/compiler 0.22.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +268 -0
- package/dist/bin-mcp.d.ts +2 -0
- package/dist/bin-mcp.js +63 -0
- package/dist/bin-runtime.d.ts +2 -0
- package/dist/bin-runtime.js +111 -0
- package/dist/cli/commands/agents.js +4 -4
- package/dist/cli/commands/auth.d.ts +20 -0
- package/dist/cli/commands/auth.js +161 -0
- package/dist/cli/commands/benchmark.d.ts +10 -0
- package/dist/cli/commands/benchmark.js +88 -0
- package/dist/cli/commands/build-plan.js +95 -103
- package/dist/cli/commands/build.d.ts +1 -1
- package/dist/cli/commands/build.js +16 -15
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/graphs.d.ts +2 -0
- package/dist/cli/commands/graphs.js +199 -0
- package/dist/cli/commands/login.js +4 -6
- package/dist/cli/commands/logout.js +1 -1
- package/dist/cli/commands/mcp.d.ts +3 -2
- package/dist/cli/commands/mcp.js +721 -204
- package/dist/cli/commands/project.d.ts +2 -0
- package/dist/cli/commands/project.js +202 -0
- package/dist/cli/commands/reset.d.ts +1 -1
- package/dist/cli/commands/reset.js +10 -10
- package/dist/cli/commands/runs.js +52 -26
- package/dist/cli/commands/runtime.d.ts +24 -0
- package/dist/cli/commands/runtime.js +373 -0
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.js +33 -22
- package/dist/cli/commands/traces.d.ts +2 -0
- package/dist/cli/commands/traces.js +125 -0
- package/dist/cli/commands/wizard.js +155 -150
- package/dist/cli/index.d.ts +7 -4
- package/dist/cli/index.js +13 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/packages/build-plans/authoring/brief.d.ts +517 -0
- package/dist/packages/build-plans/authoring/brief.js +89 -0
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +10 -10
- package/dist/packages/build-plans/authoring/build-plan-authoring.js +66 -26
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +1 -1
- package/dist/packages/build-plans/authoring/build-plan-edit-session.js +8 -2
- package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +39 -42
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
- package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
- package/dist/packages/build-plans/build-plan-resolution.js +3 -3
- package/dist/packages/build-plans/index.d.ts +1 -1
- package/dist/packages/build-plans/index.js +1 -1
- package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -12
- package/dist/packages/build-plans/package/build-plan-definitions.js +40 -39
- package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
- package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
- package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
- package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
- package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +4 -4
- package/dist/packages/build-plans/package/build-plan-stage-runner.js +22 -11
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +5 -6
- package/dist/packages/build-plans/package/builtin-build-plan.js +7 -8
- package/dist/packages/build-plans/package/context-interface.d.ts +11 -9
- package/dist/packages/build-plans/package/context-interface.js +14 -33
- package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
- package/dist/packages/build-plans/package/interf-build-plan-package.js +56 -52
- package/dist/packages/build-plans/package/local-build-plans.d.ts +12 -10
- package/dist/packages/build-plans/package/local-build-plans.js +56 -31
- package/dist/packages/build-plans/package/user-build-plans.js +1 -1
- package/dist/packages/contracts/index.d.ts +4 -2
- package/dist/packages/contracts/index.js +2 -1
- package/dist/packages/contracts/lib/project-paths.d.ts +137 -0
- package/dist/packages/contracts/lib/project-paths.js +211 -0
- package/dist/packages/contracts/lib/project-schema.d.ts +160 -0
- package/dist/packages/contracts/lib/project-schema.js +113 -0
- package/dist/packages/contracts/lib/schema.d.ts +739 -80
- package/dist/packages/contracts/lib/schema.js +410 -75
- package/dist/packages/contracts/utils/parse.js +67 -0
- package/dist/packages/projects/index.d.ts +6 -0
- package/dist/packages/{project → projects}/index.js +0 -3
- package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
- package/dist/packages/{project → projects}/interf-detect.js +56 -50
- package/dist/packages/projects/interf.d.ts +2 -0
- package/dist/packages/projects/interf.js +1 -0
- package/dist/packages/projects/lib/schema.d.ts +79 -0
- package/dist/packages/projects/lib/schema.js +89 -0
- package/dist/packages/projects/source-config.d.ts +58 -0
- package/dist/packages/projects/source-config.js +352 -0
- package/dist/packages/projects/source-folders.d.ts +11 -0
- package/dist/packages/{project → projects}/source-folders.js +26 -26
- package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
- package/dist/packages/{engine → runtime}/action-planner.js +20 -22
- package/dist/packages/runtime/action-values.d.ts +1 -0
- package/dist/packages/runtime/action-values.js +1 -0
- package/dist/packages/runtime/actions/errors.d.ts +2 -0
- package/dist/packages/runtime/actions/errors.js +12 -0
- package/dist/packages/runtime/actions/fields.d.ts +82 -0
- package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
- package/dist/packages/runtime/actions/form-builders.js +619 -0
- package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
- package/dist/packages/runtime/actions/form-validators.js +128 -0
- package/dist/packages/runtime/actions/helpers.d.ts +11 -0
- package/dist/packages/runtime/actions/helpers.js +80 -0
- package/dist/packages/runtime/actions/index.d.ts +8 -0
- package/dist/packages/runtime/actions/index.js +11 -0
- package/dist/packages/runtime/actions/registry.d.ts +64 -0
- package/dist/packages/runtime/actions/registry.js +62 -0
- package/dist/packages/runtime/actions/requests.d.ts +45 -0
- package/dist/packages/runtime/actions/requests.js +158 -0
- package/dist/packages/runtime/actions/schemas.d.ts +154 -0
- package/dist/packages/runtime/actions/schemas.js +36 -0
- package/dist/packages/runtime/agent-handoff.d.ts +11 -0
- package/dist/packages/runtime/agent-handoff.js +101 -0
- package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
- package/dist/packages/{engine → runtime}/agents/index.js +1 -2
- package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
- package/dist/packages/runtime/agents/lib/args.js +24 -0
- package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
- package/dist/packages/runtime/agents/lib/constants.js +13 -0
- package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
- package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
- package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
- package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
- package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +8 -14
- package/dist/packages/{engine → runtime}/agents/lib/execution.js +14 -4
- package/dist/packages/{engine → runtime}/agents/lib/preflight.js +15 -13
- package/dist/packages/{engine → runtime}/agents/lib/render.js +4 -4
- package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
- package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
- package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
- package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
- package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
- package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
- package/dist/packages/runtime/agents/lib/shell-templates.js +452 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
- package/dist/packages/runtime/agents/lib/shells.d.ts +63 -0
- package/dist/packages/runtime/agents/lib/shells.js +383 -0
- package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
- package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
- package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
- package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
- package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
- package/dist/packages/runtime/agents/providers/codex.js +64 -0
- package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/cursor.js +24 -0
- package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/index.js +31 -0
- package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
- package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
- package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
- package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
- package/dist/packages/{engine → runtime}/agents/role-executors.js +7 -6
- package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
- package/dist/packages/runtime/auth/account-context.d.ts +52 -0
- package/dist/packages/runtime/auth/account-context.js +68 -0
- package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
- package/dist/packages/runtime/auth/auth-flow.js +189 -0
- package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
- package/dist/packages/runtime/auth/jwt-validator.js +86 -0
- package/dist/packages/runtime/auth/keychain.d.ts +35 -0
- package/dist/packages/runtime/auth/keychain.js +85 -0
- package/dist/packages/runtime/auth/session-store.d.ts +38 -0
- package/dist/packages/runtime/auth/session-store.js +88 -0
- package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
- package/dist/packages/runtime/auth/workos-client.js +87 -0
- package/dist/packages/runtime/benchmark-question-draft.d.ts +20 -0
- package/dist/packages/runtime/benchmark-question-draft.js +124 -0
- package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
- package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
- package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +5 -5
- package/dist/packages/{engine → runtime}/build/artifact-status.js +25 -23
- package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
- package/dist/packages/runtime/build/atomic-fs.js +95 -0
- package/dist/packages/runtime/build/billing-events.d.ts +78 -0
- package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
- package/dist/packages/runtime/build/build-evidence.d.ts +15 -0
- package/dist/packages/runtime/build/build-evidence.js +173 -0
- package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
- package/dist/packages/runtime/build/build-pipeline.js +304 -0
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
- package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
- package/dist/packages/runtime/build/build-plan-runs.js +31 -0
- package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
- package/dist/packages/{engine → runtime}/build/build-stage-plan.js +28 -29
- package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
- package/dist/packages/runtime/build/build-stage-runner.js +165 -0
- package/dist/packages/{engine → runtime}/build/build-target.d.ts +4 -4
- package/dist/packages/runtime/build/build-target.js +16 -0
- package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
- package/dist/packages/runtime/build/check-evaluator.js +575 -0
- package/dist/packages/runtime/build/context-graph-paths.d.ts +51 -0
- package/dist/packages/runtime/build/context-graph-paths.js +133 -0
- package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
- package/dist/packages/runtime/build/context-graph-schema.js +39 -0
- package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
- package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
- package/dist/packages/{engine → runtime}/build/index.d.ts +5 -3
- package/dist/packages/{engine → runtime}/build/index.js +5 -3
- package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +221 -88
- package/dist/packages/{engine → runtime}/build/lib/schema.js +61 -41
- package/dist/packages/runtime/build/reset.d.ts +2 -0
- package/dist/packages/runtime/build/reset.js +62 -0
- package/dist/packages/{engine → runtime}/build/runtime-contracts.js +5 -5
- package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
- package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
- package/dist/packages/{engine → runtime}/build/runtime-paths.js +6 -6
- package/dist/packages/{engine → runtime}/build/runtime-prompt.js +7 -6
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
- package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
- package/dist/packages/runtime/build/runtime-runs.js +265 -0
- package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +6 -6
- package/dist/packages/runtime/build/runtime-types.js +1 -0
- package/dist/packages/runtime/build/runtime.d.ts +6 -0
- package/dist/packages/runtime/build/runtime.js +5 -0
- package/dist/packages/runtime/build/source-files.d.ts +58 -0
- package/dist/packages/runtime/build/source-files.js +184 -0
- package/dist/packages/runtime/build/source-inventory.d.ts +27 -0
- package/dist/packages/runtime/build/source-inventory.js +273 -0
- package/dist/packages/runtime/build/source-manifest.d.ts +52 -0
- package/dist/packages/runtime/build/source-manifest.js +192 -0
- package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
- package/dist/packages/runtime/build/stage-evidence.js +317 -0
- package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
- package/dist/packages/runtime/build/stage-reuse.js +142 -0
- package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
- package/dist/packages/runtime/build/state-artifacts.js +14 -0
- package/dist/packages/runtime/build/state-health.d.ts +4 -0
- package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
- package/dist/packages/runtime/build/state-io.d.ts +12 -0
- package/dist/packages/runtime/build/state-io.js +119 -0
- package/dist/packages/{engine → runtime}/build/state-paths.d.ts +3 -1
- package/dist/packages/runtime/build/state-paths.js +22 -0
- package/dist/packages/runtime/build/state-view.d.ts +5 -0
- package/dist/packages/{engine → runtime}/build/state-view.js +60 -33
- package/dist/packages/runtime/build/state.d.ts +7 -0
- package/dist/packages/runtime/build/state.js +12 -0
- package/dist/packages/runtime/build/traces.d.ts +30 -0
- package/dist/packages/runtime/build/traces.js +133 -0
- package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
- package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +48 -35
- package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
- package/dist/packages/{engine → runtime}/build/validate.js +26 -26
- package/dist/packages/{engine → runtime}/client.d.ts +15 -15
- package/dist/packages/{engine → runtime}/client.js +41 -24
- package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
- package/dist/packages/{engine → runtime}/connection-config.js +9 -8
- package/dist/packages/runtime/context-checks.d.ts +10 -0
- package/dist/packages/runtime/context-checks.js +114 -0
- package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
- package/dist/packages/runtime/context-graph-scaffold.js +134 -0
- package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
- package/dist/packages/runtime/entitlement-guard.js +70 -0
- package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/execution/index.js +1 -1
- package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +270 -192
- package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
- package/dist/packages/runtime/index.d.ts +29 -0
- package/dist/packages/runtime/index.js +21 -0
- package/dist/packages/runtime/instance-paths.d.ts +30 -0
- package/dist/packages/runtime/instance-paths.js +29 -0
- package/dist/packages/{engine → runtime}/native-run-handlers.d.ts +4 -4
- package/dist/packages/{engine → runtime}/native-run-handlers.js +184 -152
- package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
- package/dist/packages/runtime/plan-artifact-contract.js +42 -0
- package/dist/packages/runtime/project-entries.d.ts +11 -0
- package/dist/packages/runtime/project-entries.js +49 -0
- package/dist/packages/runtime/project-source-state.d.ts +26 -0
- package/dist/packages/runtime/project-source-state.js +53 -0
- package/dist/packages/runtime/project-store.d.ts +85 -0
- package/dist/packages/runtime/project-store.js +168 -0
- package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
- package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
- package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
- package/dist/packages/{engine → runtime}/run-observability.js +166 -84
- package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
- package/dist/packages/runtime/runtime-action-proposals.js +542 -0
- package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
- package/dist/packages/runtime/runtime-build-plans.js +131 -0
- package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
- package/dist/packages/runtime/runtime-build-runs.js +562 -0
- package/dist/packages/runtime/runtime-caches.d.ts +91 -0
- package/dist/packages/{engine → runtime}/runtime-caches.js +77 -49
- package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
- package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
- package/dist/packages/runtime/runtime-executor.d.ts +22 -0
- package/dist/packages/runtime/runtime-executor.js +131 -0
- package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
- package/dist/packages/runtime/runtime-jobs.js +463 -0
- package/dist/packages/runtime/runtime-observability.d.ts +11 -0
- package/dist/packages/runtime/runtime-observability.js +39 -0
- package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
- package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
- package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
- package/dist/packages/runtime/runtime-project-mutations.js +64 -0
- package/dist/packages/runtime/runtime-project-reads.d.ts +15 -0
- package/dist/packages/runtime/runtime-project-reads.js +381 -0
- package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
- package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
- package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +21 -16
- package/dist/packages/{engine → runtime}/runtime-resource-builders.js +48 -38
- package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
- package/dist/packages/runtime/runtime-verify-runs.js +295 -0
- package/dist/packages/runtime/runtime.d.ts +1165 -0
- package/dist/packages/runtime/runtime.js +417 -0
- package/dist/packages/runtime/schemas/actions.d.ts +1182 -0
- package/dist/packages/runtime/schemas/actions.js +117 -0
- package/dist/packages/runtime/schemas/agents.d.ts +76 -0
- package/dist/packages/runtime/schemas/agents.js +41 -0
- package/dist/packages/runtime/schemas/build-plans.d.ts +959 -0
- package/dist/packages/runtime/schemas/build-plans.js +107 -0
- package/dist/packages/runtime/schemas/files.d.ts +567 -0
- package/dist/packages/runtime/schemas/files.js +51 -0
- package/dist/packages/runtime/schemas/index.d.ts +8 -0
- package/dist/packages/runtime/schemas/index.js +12 -0
- package/dist/packages/runtime/schemas/instance.d.ts +141 -0
- package/dist/packages/runtime/schemas/instance.js +143 -0
- package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
- package/dist/packages/runtime/schemas/jobs.js +103 -0
- package/dist/packages/runtime/schemas/projects.d.ts +339 -0
- package/dist/packages/runtime/schemas/projects.js +136 -0
- package/dist/packages/runtime/schemas/runs.d.ts +2676 -0
- package/dist/packages/runtime/schemas/runs.js +98 -0
- package/dist/packages/runtime/service/index.d.ts +3 -0
- package/dist/packages/runtime/service/index.js +3 -0
- package/dist/packages/runtime/service/openapi.d.ts +7 -0
- package/dist/packages/runtime/service/openapi.js +117 -0
- package/dist/packages/runtime/service/operations.d.ts +1490 -0
- package/dist/packages/runtime/service/operations.js +245 -0
- package/dist/packages/runtime/service/routes.d.ts +106 -0
- package/dist/packages/runtime/service/routes.js +120 -0
- package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
- package/dist/packages/runtime/service/server-api-files.js +85 -0
- package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
- package/dist/packages/runtime/service/server-app-boot.js +46 -0
- package/dist/packages/runtime/service/server-guards.d.ts +63 -0
- package/dist/packages/runtime/service/server-guards.js +181 -0
- package/dist/packages/runtime/service/server-helpers.d.ts +27 -0
- package/dist/packages/runtime/service/server-helpers.js +89 -0
- package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
- package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.js +43 -0
- package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-agents.js +198 -0
- package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
- package/dist/packages/runtime/service/server-routes-auth.js +138 -0
- package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-build-plans.js +83 -0
- package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
- package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
- package/dist/packages/runtime/service/server-routes-events.js +99 -0
- package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-context.js +192 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.js +130 -0
- package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
- package/dist/packages/runtime/service/server-routes-project-runs.js +85 -0
- package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-projects.js +92 -0
- package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-runs.js +112 -0
- package/dist/packages/runtime/service/server.d.ts +37 -0
- package/dist/packages/runtime/service/server.js +300 -0
- package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
- package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
- package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
- package/dist/packages/runtime/verify/benchmark-run.js +303 -0
- package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/verify/index.js +1 -1
- package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
- package/dist/packages/{engine → runtime}/verify/lib/schema.js +26 -18
- package/dist/packages/{engine → runtime}/verify/verify-execution.js +11 -11
- package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +4 -4
- package/dist/packages/runtime/verify/verify-paths.js +61 -0
- package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
- package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
- package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
- package/dist/packages/{engine → runtime}/verify/verify-specs.js +5 -3
- package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
- package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
- package/dist/packages/runtime/verify/verify-types.js +1 -0
- package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
- package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
- package/dist/packages/runtime/wire-schemas.d.ts +18 -0
- package/dist/packages/runtime/wire-schemas.js +27 -0
- package/package.json +40 -30
- package/public-repo/CONTRIBUTING.md +7 -16
- package/public-repo/README.md +175 -234
- package/public-repo/SECURITY.md +3 -4
- package/public-repo/build-plans/interf-default/README.md +19 -14
- package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +18 -11
- package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +12 -5
- package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +16 -4
- package/public-repo/build-plans/interf-default/build-plan.json +34 -28
- package/public-repo/build-plans/interf-default/build-plan.schema.json +54 -32
- package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
- package/public-repo/build-plans/interf-default/use/query/SKILL.md +17 -11
- package/public-repo/openapi/local-service.openapi.json +6803 -0
- package/public-repo/skills/interf/SKILL.md +460 -179
- package/dist/cli/commands/prep.d.ts +0 -2
- package/dist/cli/commands/prep.js +0 -240
- package/dist/cli/commands/test.d.ts +0 -10
- package/dist/cli/commands/test.js +0 -85
- package/dist/cli/commands/web.d.ts +0 -2
- package/dist/cli/commands/web.js +0 -286
- package/dist/interf-ui/404.html +0 -1
- package/dist/interf-ui/__next.__PAGE__.txt +0 -10
- package/dist/interf-ui/__next._full.txt +0 -20
- package/dist/interf-ui/__next._head.txt +0 -5
- package/dist/interf-ui/__next._index.txt +0 -5
- package/dist/interf-ui/__next._tree.txt +0 -5
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_buildManifest.js +0 -11
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_clientMiddlewareManifest.js +0 -1
- package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_ssgManifest.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
- package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
- package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
- package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
- package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
- package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
- package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
- package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
- package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
- package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
- package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
- package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
- package/dist/interf-ui/_not-found/__next._full.txt +0 -15
- package/dist/interf-ui/_not-found/__next._head.txt +0 -5
- package/dist/interf-ui/_not-found/__next._index.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
- package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
- package/dist/interf-ui/_not-found.html +0 -1
- package/dist/interf-ui/_not-found.txt +0 -15
- package/dist/interf-ui/index.html +0 -1
- package/dist/interf-ui/index.txt +0 -20
- package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
- package/dist/packages/contracts/lib/preparation-paths.js +0 -177
- package/dist/packages/engine/action-definitions.d.ts +0 -407
- package/dist/packages/engine/action-definitions.js +0 -1158
- package/dist/packages/engine/action-values.d.ts +0 -1
- package/dist/packages/engine/action-values.js +0 -1
- package/dist/packages/engine/agents/lib/args.d.ts +0 -4
- package/dist/packages/engine/agents/lib/args.js +0 -52
- package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
- package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
- package/dist/packages/engine/agents/lib/constants.js +0 -28
- package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
- package/dist/packages/engine/agents/lib/schema.js +0 -7
- package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
- package/dist/packages/engine/agents/lib/shells.js +0 -1052
- package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
- package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
- package/dist/packages/engine/build/billing-events.d.ts +0 -89
- package/dist/packages/engine/build/build-pipeline.js +0 -175
- package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
- package/dist/packages/engine/build/build-plan-runs.js +0 -31
- package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
- package/dist/packages/engine/build/build-stage-runner.js +0 -94
- package/dist/packages/engine/build/build-target.js +0 -16
- package/dist/packages/engine/build/check-evaluator.js +0 -298
- package/dist/packages/engine/build/reset.d.ts +0 -2
- package/dist/packages/engine/build/reset.js +0 -74
- package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
- package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
- package/dist/packages/engine/build/runtime-runs.js +0 -224
- package/dist/packages/engine/build/runtime.d.ts +0 -5
- package/dist/packages/engine/build/runtime.js +0 -4
- package/dist/packages/engine/build/source-files.d.ts +0 -46
- package/dist/packages/engine/build/source-files.js +0 -149
- package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
- package/dist/packages/engine/build/state-artifacts.js +0 -14
- package/dist/packages/engine/build/state-health.d.ts +0 -4
- package/dist/packages/engine/build/state-io.d.ts +0 -11
- package/dist/packages/engine/build/state-io.js +0 -82
- package/dist/packages/engine/build/state-paths.js +0 -16
- package/dist/packages/engine/build/state-view.d.ts +0 -5
- package/dist/packages/engine/build/state.d.ts +0 -7
- package/dist/packages/engine/build/state.js +0 -12
- package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
- package/dist/packages/engine/build/validate-helpers.js +0 -41
- package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
- package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
- package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
- package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
- package/dist/packages/engine/cloud-seams.d.ts +0 -115
- package/dist/packages/engine/cloud-seams.js +0 -84
- package/dist/packages/engine/index.d.ts +0 -22
- package/dist/packages/engine/index.js +0 -15
- package/dist/packages/engine/instance-paths.d.ts +0 -106
- package/dist/packages/engine/instance-paths.js +0 -171
- package/dist/packages/engine/lib/schema.d.ts +0 -6304
- package/dist/packages/engine/lib/schema.js +0 -730
- package/dist/packages/engine/preparation-store.d.ts +0 -105
- package/dist/packages/engine/preparation-store.js +0 -213
- package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
- package/dist/packages/engine/readiness-check-draft.js +0 -111
- package/dist/packages/engine/requested-artifacts.d.ts +0 -5
- package/dist/packages/engine/routes.d.ts +0 -85
- package/dist/packages/engine/routes.js +0 -99
- package/dist/packages/engine/runtime-caches.d.ts +0 -76
- package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
- package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
- package/dist/packages/engine/runtime.d.ts +0 -371
- package/dist/packages/engine/runtime.js +0 -2463
- package/dist/packages/engine/server.d.ts +0 -58
- package/dist/packages/engine/server.js +0 -1399
- package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
- package/dist/packages/engine/verify/readiness-check-run.js +0 -265
- package/dist/packages/engine/verify/verify-paths.js +0 -61
- package/dist/packages/engine/verify/verify-sandbox.js +0 -88
- package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
- package/dist/packages/engine/wire-schemas.d.ts +0 -547
- package/dist/packages/engine/wire-schemas.js +0 -59
- package/dist/packages/project/index.d.ts +0 -9
- package/dist/packages/project/interf-bootstrap.d.ts +0 -1
- package/dist/packages/project/interf-bootstrap.js +0 -1
- package/dist/packages/project/interf-scaffold.d.ts +0 -3
- package/dist/packages/project/interf-scaffold.js +0 -136
- package/dist/packages/project/interf.d.ts +0 -4
- package/dist/packages/project/interf.js +0 -3
- package/dist/packages/project/lib/schema.d.ts +0 -328
- package/dist/packages/project/lib/schema.js +0 -136
- package/dist/packages/project/preparation-entries.d.ts +0 -11
- package/dist/packages/project/preparation-entries.js +0 -49
- package/dist/packages/project/source-config.d.ts +0 -46
- package/dist/packages/project/source-config.js +0 -394
- package/dist/packages/project/source-folders.d.ts +0 -11
- package/public-repo/plugins/README.md +0 -9
- package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
- package/public-repo/plugins/interf/.mcp.json +0 -12
- package/public-repo/plugins/interf/README.md +0 -32
- package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
- /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/executors.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/logs.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/logs.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/render.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +0 -0
- /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
- /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-paths.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* `interf` (no subcommand) and `interf init` — the wizard.
|
|
3
3
|
*
|
|
4
4
|
* Casual-user entry point. End-to-end onboarding:
|
|
5
|
-
* - If no connection → connect to an already-running local
|
|
6
|
-
* whether to start the foreground local
|
|
7
|
-
* - Once connected → action menu (list / create / build / test /
|
|
5
|
+
* - If no connection → connect to an already-running local service, or ask
|
|
6
|
+
* whether to start the foreground local service, connect remote, or quit.
|
|
7
|
+
* - Once connected → action menu (list / create / build / test / stop service / quit).
|
|
8
8
|
* - Each action loops back to the menu instead of exiting.
|
|
9
9
|
*
|
|
10
|
-
* Agents bypass the wizard entirely. They use `interf
|
|
10
|
+
* Agents bypass the wizard entirely. They use `interf project`, `interf build`,
|
|
11
11
|
* etc. directly. The wizard is purely a UX wrapper around those CLI commands.
|
|
12
12
|
*/
|
|
13
13
|
import chalk from "chalk";
|
|
@@ -16,8 +16,8 @@ import { existsSync, statSync } from "node:fs";
|
|
|
16
16
|
import { homedir } from "node:os";
|
|
17
17
|
import { basename, resolve } from "node:path";
|
|
18
18
|
import { spawn } from "node:child_process";
|
|
19
|
-
import { ConnectionRecordSchema, readActiveConnection, writeConnection, } from "../../packages/
|
|
20
|
-
import { LOCAL_SERVICE_DEFAULT_HOST, LOCAL_SERVICE_DEFAULT_PORT } from "../../packages/
|
|
19
|
+
import { ConnectionRecordSchema, readActiveConnection, writeConnection, } from "../../packages/runtime/connection-config.js";
|
|
20
|
+
import { LOCAL_SERVICE_DEFAULT_HOST, LOCAL_SERVICE_DEFAULT_PORT } from "../../packages/runtime/service/routes.js";
|
|
21
21
|
async function callJson(url, token) {
|
|
22
22
|
const headers = new Headers();
|
|
23
23
|
if (token)
|
|
@@ -60,9 +60,9 @@ function isHttpUrl(value) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
|
-
* Probe a URL's `/health` endpoint and return whether the
|
|
63
|
+
* Probe a URL's `/health` endpoint and return whether the local service is up.
|
|
64
64
|
* Used as a fallback when `connection.json` may be missing (e.g. older
|
|
65
|
-
* `interf
|
|
65
|
+
* `interf runtime` binaries that don't write the connection record).
|
|
66
66
|
*/
|
|
67
67
|
async function probeHealth(url) {
|
|
68
68
|
try {
|
|
@@ -73,29 +73,64 @@ async function probeHealth(url) {
|
|
|
73
73
|
return false;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
+
async function serviceRequiresAuth(url) {
|
|
77
|
+
try {
|
|
78
|
+
const response = await fetch(`${url.replace(/\/+$/, "")}/v1/instance`);
|
|
79
|
+
if (response.status !== 200)
|
|
80
|
+
return true;
|
|
81
|
+
const body = await response.json();
|
|
82
|
+
return body.auth_required === true;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function activeConnectionForUrl(url) {
|
|
89
|
+
const normalized = url.replace(/\/+$/, "");
|
|
90
|
+
const conn = readActiveConnection();
|
|
91
|
+
if (!conn)
|
|
92
|
+
return null;
|
|
93
|
+
return conn.url.replace(/\/+$/, "") === normalized
|
|
94
|
+
? { url: normalized, token: conn.auth_token }
|
|
95
|
+
: null;
|
|
96
|
+
}
|
|
97
|
+
async function connectToReachableEngine(url) {
|
|
98
|
+
const normalized = url.replace(/\/+$/, "");
|
|
99
|
+
const existing = activeConnectionForUrl(normalized);
|
|
100
|
+
if (existing)
|
|
101
|
+
return existing;
|
|
102
|
+
if (await serviceRequiresAuth(normalized))
|
|
103
|
+
return null;
|
|
104
|
+
try {
|
|
105
|
+
writeConnection({ url: normalized, auth_token: null });
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// best effort
|
|
109
|
+
}
|
|
110
|
+
return { url: normalized, token: null };
|
|
111
|
+
}
|
|
76
112
|
/**
|
|
77
|
-
* Connect to
|
|
113
|
+
* Connect to a local service. Either an existing one already running on the
|
|
78
114
|
* default port (with a `wasAlreadyRunning` flag so the caller can tell
|
|
79
115
|
* the user honestly) or a fresh one we spawn here.
|
|
80
116
|
*
|
|
81
117
|
* Returns null on timeout / error.
|
|
82
118
|
*/
|
|
83
119
|
async function startLocalEngineInBackground() {
|
|
84
|
-
// First: check whether
|
|
120
|
+
// First: check whether a local service is ALREADY running on the default
|
|
85
121
|
// port. If so, don't pretend to start a new one — just connect.
|
|
86
122
|
if (await probeHealth(DEFAULT_ENGINE_URL)) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// best effort
|
|
123
|
+
const existing = await connectToReachableEngine(DEFAULT_ENGINE_URL);
|
|
124
|
+
if (!existing) {
|
|
125
|
+
console.log(chalk.yellow(` Local service already running at ${DEFAULT_ENGINE_URL}, but no bearer token is available.`));
|
|
126
|
+
return null;
|
|
92
127
|
}
|
|
93
|
-
console.log(chalk.dim(`
|
|
94
|
-
return {
|
|
128
|
+
console.log(chalk.dim(` Local service already running at ${DEFAULT_ENGINE_URL} — connecting.`));
|
|
129
|
+
return { ...existing, wasAlreadyRunning: true };
|
|
95
130
|
}
|
|
96
131
|
const spinner = p.spinner();
|
|
97
|
-
spinner.start("Starting local Interf
|
|
98
|
-
const child = spawn(process.argv[1] ?? "interf", ["
|
|
132
|
+
spinner.start("Starting local Interf service...");
|
|
133
|
+
const child = spawn(process.argv[1] ?? "interf", ["runtime"], {
|
|
99
134
|
detached: true,
|
|
100
135
|
stdio: "ignore",
|
|
101
136
|
});
|
|
@@ -104,34 +139,31 @@ async function startLocalEngineInBackground() {
|
|
|
104
139
|
const timeoutMs = 30_000;
|
|
105
140
|
while (Date.now() - startedAt < timeoutMs) {
|
|
106
141
|
await new Promise((r) => setTimeout(r, 250));
|
|
107
|
-
// Path A: connection.json written by the spawned
|
|
142
|
+
// Path A: connection.json written by the spawned server.
|
|
108
143
|
const conn = readActiveConnection();
|
|
109
144
|
if (conn) {
|
|
110
145
|
const url = conn.url.replace(/\/+$/, "");
|
|
111
146
|
if (await probeHealth(url)) {
|
|
112
|
-
spinner.stop(chalk.green(`
|
|
147
|
+
spinner.stop(chalk.green(`Local service ready at ${url}`));
|
|
113
148
|
return { url, token: conn.auth_token, wasAlreadyRunning: false };
|
|
114
149
|
}
|
|
115
150
|
}
|
|
116
|
-
// Path B: spawned
|
|
151
|
+
// Path B: spawned service is ready on the default URL.
|
|
117
152
|
if (await probeHealth(DEFAULT_ENGINE_URL)) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
// best effort
|
|
153
|
+
const existing = await connectToReachableEngine(DEFAULT_ENGINE_URL);
|
|
154
|
+
if (existing) {
|
|
155
|
+
spinner.stop(chalk.green(`Local service ready at ${DEFAULT_ENGINE_URL}`));
|
|
156
|
+
return { ...existing, wasAlreadyRunning: false };
|
|
123
157
|
}
|
|
124
|
-
spinner.stop(chalk.green(`Engine ready at ${DEFAULT_ENGINE_URL}`));
|
|
125
|
-
return { url: DEFAULT_ENGINE_URL, token: null, wasAlreadyRunning: false };
|
|
126
158
|
}
|
|
127
159
|
}
|
|
128
|
-
spinner.stop(chalk.red("Timed out waiting for
|
|
160
|
+
spinner.stop(chalk.red("Timed out waiting for local service to start."));
|
|
129
161
|
return null;
|
|
130
162
|
}
|
|
131
163
|
/**
|
|
132
164
|
* Print the canonical connect-or-error hint and exit non-zero. Used
|
|
133
|
-
* whenever the wizard needs
|
|
134
|
-
* exists. The wizard does NOT auto-start
|
|
165
|
+
* whenever the wizard needs a local service but no reachable connection
|
|
166
|
+
* exists. The wizard does NOT auto-start a service — `interf runtime` is
|
|
135
167
|
* the explicit, foreground way to run one.
|
|
136
168
|
*/
|
|
137
169
|
function exitNoEngineConnected(reason) {
|
|
@@ -139,9 +171,9 @@ function exitNoEngineConnected(reason) {
|
|
|
139
171
|
console.log(chalk.yellow(` ${reason}`));
|
|
140
172
|
console.log();
|
|
141
173
|
console.log(" Start one in another terminal:");
|
|
142
|
-
console.log(chalk.bold(" interf
|
|
174
|
+
console.log(chalk.bold(" interf runtime"));
|
|
143
175
|
console.log();
|
|
144
|
-
console.log(" Or connect to a remote
|
|
176
|
+
console.log(" Or connect to a remote service:");
|
|
145
177
|
console.log(chalk.bold(" interf login --url <https://…>"));
|
|
146
178
|
console.log();
|
|
147
179
|
process.exit(1);
|
|
@@ -156,8 +188,8 @@ async function promptForConnection(reason) {
|
|
|
156
188
|
const choice = await p.select({
|
|
157
189
|
message: "How do you want to continue?",
|
|
158
190
|
options: [
|
|
159
|
-
{ value: "start-local", label: "Start local
|
|
160
|
-
{ value: "connect-remote", label: "Connect to remote
|
|
191
|
+
{ value: "start-local", label: "Start local service" },
|
|
192
|
+
{ value: "connect-remote", label: "Connect to remote service" },
|
|
161
193
|
{ value: "quit", label: chalk.dim("Exit") },
|
|
162
194
|
],
|
|
163
195
|
initialValue: "start-local",
|
|
@@ -168,13 +200,13 @@ async function promptForConnection(reason) {
|
|
|
168
200
|
}
|
|
169
201
|
if (choice === "start-local") {
|
|
170
202
|
console.log();
|
|
171
|
-
console.log(chalk.dim(" Starting `interf
|
|
203
|
+
console.log(chalk.dim(" Starting `interf runtime` in this terminal. Press Ctrl-C to stop the service."));
|
|
172
204
|
console.log();
|
|
173
|
-
const code = await spawnInterf(["
|
|
205
|
+
const code = await spawnInterf(["runtime"]);
|
|
174
206
|
process.exit(code);
|
|
175
207
|
}
|
|
176
208
|
const urlValue = await p.text({
|
|
177
|
-
message: "Remote
|
|
209
|
+
message: "Remote service URL",
|
|
178
210
|
placeholder: "https://api.interf.cloud",
|
|
179
211
|
validate: (value) => {
|
|
180
212
|
const trimmed = String(value ?? "").trim();
|
|
@@ -265,27 +297,20 @@ async function promptSourcePath() {
|
|
|
265
297
|
}
|
|
266
298
|
return String(choice);
|
|
267
299
|
}
|
|
268
|
-
async function
|
|
269
|
-
const
|
|
270
|
-
message: "
|
|
271
|
-
placeholder: "my-
|
|
300
|
+
async function flowCreateProject(conn) {
|
|
301
|
+
const projectId = await p.text({
|
|
302
|
+
message: "Project id (a short name for this agent task)",
|
|
303
|
+
placeholder: "my-project",
|
|
272
304
|
validate: (value) => (/^[a-z0-9][a-z0-9-]*$/.test(value) ? undefined : "Lowercase letters, numbers, and dashes only."),
|
|
273
305
|
});
|
|
274
|
-
if (p.isCancel(
|
|
306
|
+
if (p.isCancel(projectId))
|
|
275
307
|
return null;
|
|
276
|
-
const about = await p.text({
|
|
277
|
-
message: "What is this preparation for? (one line — the agent task intent)",
|
|
278
|
-
placeholder: "Prepare these notes so an agent can answer questions about them.",
|
|
279
|
-
});
|
|
280
|
-
if (p.isCancel(about))
|
|
281
|
-
return null;
|
|
282
|
-
const aboutText = String(about ?? "").trim();
|
|
283
308
|
const sourcePath = await promptSourcePath();
|
|
284
309
|
if (!sourcePath)
|
|
285
310
|
return null;
|
|
286
311
|
// Offer saved Build Plans, but keep selection optional. The agent-first
|
|
287
|
-
// path usually creates the
|
|
288
|
-
//
|
|
312
|
+
// path usually creates the Project from Source first, then drafts a
|
|
313
|
+
// custom Build Plan for review.
|
|
289
314
|
const buildPlansResp = await callJson(`${conn.url}/v1/build-plans`, conn.token);
|
|
290
315
|
const buildPlans = buildPlansResp.body?.build_plans ?? [];
|
|
291
316
|
const buildPlanOptions = buildPlans
|
|
@@ -339,30 +364,29 @@ async function flowCreatePreparation(conn) {
|
|
|
339
364
|
}
|
|
340
365
|
}
|
|
341
366
|
const exitCode = await spawnInterf([
|
|
342
|
-
"
|
|
367
|
+
"project",
|
|
343
368
|
"create",
|
|
344
|
-
String(
|
|
369
|
+
String(projectId),
|
|
345
370
|
"--source",
|
|
346
371
|
resolve(String(sourcePath)),
|
|
347
372
|
...(buildPlanId ? ["--build-plan", buildPlanId] : []),
|
|
348
|
-
...(aboutText ? ["--about", aboutText] : []),
|
|
349
373
|
]);
|
|
350
374
|
if (exitCode !== 0)
|
|
351
375
|
return null;
|
|
352
|
-
return String(
|
|
376
|
+
return { id: String(projectId), buildPlanId };
|
|
353
377
|
}
|
|
354
|
-
async function
|
|
355
|
-
const
|
|
356
|
-
const list =
|
|
378
|
+
async function pickProject(conn, message) {
|
|
379
|
+
const projects = await callJson(`${conn.url}/v1/projects`, conn.token);
|
|
380
|
+
const list = projects.body?.projects ?? [];
|
|
357
381
|
if (list.length === 0) {
|
|
358
|
-
console.log(chalk.dim(" No
|
|
382
|
+
console.log(chalk.dim(" No Projects yet. Create one first."));
|
|
359
383
|
return null;
|
|
360
384
|
}
|
|
361
385
|
const choice = await p.select({
|
|
362
386
|
message,
|
|
363
|
-
options: list.map((
|
|
364
|
-
value:
|
|
365
|
-
label: `${
|
|
387
|
+
options: list.map((project) => ({
|
|
388
|
+
value: project.id,
|
|
389
|
+
label: `${project.id} ${chalk.dim(`(${project.build_plan_id ?? "no Build Plan"} · ${project.readiness?.status ?? "-"})`)}`,
|
|
366
390
|
})),
|
|
367
391
|
});
|
|
368
392
|
if (p.isCancel(choice))
|
|
@@ -371,28 +395,27 @@ async function pickPreparation(conn, message) {
|
|
|
371
395
|
}
|
|
372
396
|
async function showActionMenu(conn, options = { allowAgentRuns: true }) {
|
|
373
397
|
const buildLabel = options.allowAgentRuns
|
|
374
|
-
? "Build a
|
|
375
|
-
: chalk.dim("Build a
|
|
376
|
-
const
|
|
377
|
-
? "Run
|
|
378
|
-
: chalk.dim("
|
|
398
|
+
? "Build a Project"
|
|
399
|
+
: chalk.dim("Build a Project (no agents available)");
|
|
400
|
+
const benchmarkLabel = options.allowAgentRuns
|
|
401
|
+
? "Run benchmark/evaluation"
|
|
402
|
+
: chalk.dim("Benchmark/evaluation (no agents available)");
|
|
379
403
|
const action = await p.select({
|
|
380
404
|
message: "What do you want to do?",
|
|
381
405
|
options: [
|
|
382
|
-
{ value: "
|
|
383
|
-
{ value: "
|
|
384
|
-
{ value: "create", label: "Create a new preparation" },
|
|
406
|
+
{ value: "ls", label: "List Projects" },
|
|
407
|
+
{ value: "create", label: "Create a new Project" },
|
|
385
408
|
{ value: "agents", label: "Manage agents (list / register / role-map)" },
|
|
386
409
|
{ value: "build", label: buildLabel },
|
|
387
|
-
{ value: "
|
|
388
|
-
{ value: "stop", label: "Stop the local
|
|
410
|
+
{ value: "benchmark", label: benchmarkLabel },
|
|
411
|
+
{ value: "stop", label: "Stop the local service" },
|
|
389
412
|
{ value: "quit", label: "Quit" },
|
|
390
413
|
],
|
|
391
414
|
});
|
|
392
415
|
if (p.isCancel(action) || action === "quit")
|
|
393
416
|
return "exit";
|
|
394
417
|
if (action === "ls") {
|
|
395
|
-
await spawnInterf(["
|
|
418
|
+
await spawnInterf(["project", "ls"]);
|
|
396
419
|
return "continue";
|
|
397
420
|
}
|
|
398
421
|
if (action === "agents") {
|
|
@@ -400,17 +423,21 @@ async function showActionMenu(conn, options = { allowAgentRuns: true }) {
|
|
|
400
423
|
return "continue";
|
|
401
424
|
}
|
|
402
425
|
if (action === "create") {
|
|
403
|
-
const
|
|
404
|
-
if (
|
|
426
|
+
const created = await flowCreateProject(conn);
|
|
427
|
+
if (created) {
|
|
405
428
|
if (!options.allowAgentRuns) {
|
|
406
429
|
console.log(chalk.dim(" Skipping build prompt — no agents available. Install one then run `interf build " +
|
|
407
|
-
|
|
430
|
+
created.id +
|
|
408
431
|
"`."));
|
|
409
432
|
}
|
|
433
|
+
else if (!created.buildPlanId) {
|
|
434
|
+
console.log(chalk.dim(` Project ${created.id} created. Draft or select a Build Plan before building: ` +
|
|
435
|
+
`interf plan draft ${created.id} --intent "...".`));
|
|
436
|
+
}
|
|
410
437
|
else {
|
|
411
|
-
const buildNow = await p.confirm({ message: `Build ${
|
|
438
|
+
const buildNow = await p.confirm({ message: `Build ${created.id} now?`, initialValue: true });
|
|
412
439
|
if (!p.isCancel(buildNow) && buildNow) {
|
|
413
|
-
await spawnInterf(["build",
|
|
440
|
+
await spawnInterf(["build", created.id]);
|
|
414
441
|
}
|
|
415
442
|
}
|
|
416
443
|
}
|
|
@@ -423,43 +450,25 @@ async function showActionMenu(conn, options = { allowAgentRuns: true }) {
|
|
|
423
450
|
console.log(" register a custom CLI: `interf agents register <name> --command <cmd>`.");
|
|
424
451
|
return "continue";
|
|
425
452
|
}
|
|
426
|
-
const id = await
|
|
453
|
+
const id = await pickProject(conn, "Which Project to build?");
|
|
427
454
|
if (id)
|
|
428
455
|
await spawnInterf(["build", id]);
|
|
429
456
|
return "continue";
|
|
430
457
|
}
|
|
431
|
-
if (action === "
|
|
458
|
+
if (action === "benchmark") {
|
|
432
459
|
if (!options.allowAgentRuns) {
|
|
433
|
-
console.log(chalk.yellow(" Cannot run
|
|
460
|
+
console.log(chalk.yellow(" Cannot run benchmark/evaluation — no agents available."));
|
|
434
461
|
return "continue";
|
|
435
462
|
}
|
|
436
|
-
const id = await
|
|
463
|
+
const id = await pickProject(conn, "Which Project should Interf benchmark?");
|
|
437
464
|
if (id)
|
|
438
|
-
await spawnInterf(["
|
|
439
|
-
return "continue";
|
|
440
|
-
}
|
|
441
|
-
if (action === "ui") {
|
|
442
|
-
const target = `${conn.url}/`;
|
|
443
|
-
console.log();
|
|
444
|
-
console.log(` Opening ${chalk.bold(target)} in your browser…`);
|
|
445
|
-
const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
446
|
-
try {
|
|
447
|
-
const child = spawn(command, [target], { detached: true, stdio: "ignore" });
|
|
448
|
-
child.on("error", () => {
|
|
449
|
-
console.log(chalk.dim(` (Could not open browser; visit ${target} manually.)`));
|
|
450
|
-
});
|
|
451
|
-
child.unref();
|
|
452
|
-
}
|
|
453
|
-
catch {
|
|
454
|
-
console.log(chalk.dim(` (Could not open browser; visit ${target} manually.)`));
|
|
455
|
-
}
|
|
456
|
-
console.log();
|
|
465
|
+
await spawnInterf(["benchmark", id]);
|
|
457
466
|
return "continue";
|
|
458
467
|
}
|
|
459
468
|
if (action === "stop") {
|
|
460
|
-
const ok = await p.confirm({ message: "Stop the connected
|
|
469
|
+
const ok = await p.confirm({ message: "Stop the connected local service?", initialValue: false });
|
|
461
470
|
if (!p.isCancel(ok) && ok) {
|
|
462
|
-
await spawnInterf(["
|
|
471
|
+
await spawnInterf(["runtime", "stop"]);
|
|
463
472
|
return "exit";
|
|
464
473
|
}
|
|
465
474
|
return "continue";
|
|
@@ -467,17 +476,17 @@ async function showActionMenu(conn, options = { allowAgentRuns: true }) {
|
|
|
467
476
|
return "continue";
|
|
468
477
|
}
|
|
469
478
|
/**
|
|
470
|
-
* Agent install-cards menu shown when the connected
|
|
479
|
+
* Agent install-cards menu shown when the connected service has zero
|
|
471
480
|
* detected + registered agents. Returns:
|
|
472
481
|
* - "rerun" → user installed an agent and wants to retry detection
|
|
473
|
-
* - "skip" → continue in
|
|
482
|
+
* - "skip" → continue in read-only mode (no build/benchmark)
|
|
474
483
|
* - "quit" → exit
|
|
475
484
|
*/
|
|
476
485
|
async function showAgentInstallCards() {
|
|
477
486
|
console.log();
|
|
478
487
|
console.log(chalk.yellow(" No agents detected."));
|
|
479
488
|
console.log();
|
|
480
|
-
console.log(" Interf needs at least one agent to build
|
|
489
|
+
console.log(" Interf needs at least one agent to build a Context Graph and run benchmark/evaluation passes.");
|
|
481
490
|
console.log();
|
|
482
491
|
const choice = await p.select({
|
|
483
492
|
message: "How do you want to proceed?",
|
|
@@ -500,7 +509,7 @@ async function showAgentInstallCards() {
|
|
|
500
509
|
},
|
|
501
510
|
{
|
|
502
511
|
value: "skip",
|
|
503
|
-
label: chalk.dim("Skip
|
|
512
|
+
label: chalk.dim("Skip - read-only mode (browse existing Context Graph only)"),
|
|
504
513
|
},
|
|
505
514
|
{ value: "quit", label: chalk.dim("Quit") },
|
|
506
515
|
],
|
|
@@ -568,7 +577,7 @@ async function showAgentInstallCards() {
|
|
|
568
577
|
message: "What now?",
|
|
569
578
|
options: [
|
|
570
579
|
{ value: "rerun", label: "I installed it — re-detect" },
|
|
571
|
-
{ value: "skip", label: chalk.dim("Skip
|
|
580
|
+
{ value: "skip", label: chalk.dim("Skip - continue in read-only mode") },
|
|
572
581
|
{ value: "quit", label: chalk.dim("Quit") },
|
|
573
582
|
],
|
|
574
583
|
});
|
|
@@ -580,13 +589,13 @@ async function showAgentInstallCards() {
|
|
|
580
589
|
}
|
|
581
590
|
return "rerun";
|
|
582
591
|
}
|
|
583
|
-
async function
|
|
592
|
+
async function fetchAgentState(conn) {
|
|
584
593
|
const instance = await callJson(`${conn.url}/v1/instance`, conn.token);
|
|
585
594
|
const agentsResponse = await callJson(`${conn.url}/v1/agents`, conn.token);
|
|
586
595
|
if (instance.status !== 200)
|
|
587
596
|
return null;
|
|
588
|
-
//
|
|
589
|
-
//
|
|
597
|
+
// Older engines don't expose /v1/agents. Surface the gap explicitly so
|
|
598
|
+
// the wizard can tell the user to restart instead of silently going
|
|
590
599
|
// through the install-cards flow.
|
|
591
600
|
const engineSupportsAgents = agentsResponse.status === 200 && instance.body?.agent_count !== undefined;
|
|
592
601
|
return {
|
|
@@ -598,7 +607,7 @@ async function fetchAgentSnapshot(conn) {
|
|
|
598
607
|
}
|
|
599
608
|
async function runWizard(args) {
|
|
600
609
|
// The wizard is the human entry point, so it can ask how to connect.
|
|
601
|
-
// It still never auto-starts
|
|
610
|
+
// It still never auto-starts a service: starting `interf runtime` is an
|
|
602
611
|
// explicit foreground choice, and script/agent commands keep the
|
|
603
612
|
// connect-or-error behavior.
|
|
604
613
|
const initial = readActiveConnection({
|
|
@@ -608,18 +617,17 @@ async function runWizard(args) {
|
|
|
608
617
|
let conn = null;
|
|
609
618
|
if (!initial) {
|
|
610
619
|
if (await probeHealth(DEFAULT_ENGINE_URL)) {
|
|
611
|
-
|
|
612
|
-
|
|
620
|
+
conn = await connectToReachableEngine(DEFAULT_ENGINE_URL);
|
|
621
|
+
if (conn) {
|
|
622
|
+
console.log();
|
|
623
|
+
console.log(chalk.dim(` Local service already running at ${DEFAULT_ENGINE_URL} — connecting.`));
|
|
613
624
|
}
|
|
614
|
-
|
|
615
|
-
|
|
625
|
+
else {
|
|
626
|
+
conn = await promptForConnection(`Local service is running at ${DEFAULT_ENGINE_URL}, but no bearer token is available.`);
|
|
616
627
|
}
|
|
617
|
-
console.log();
|
|
618
|
-
console.log(chalk.dim(` Engine already running at ${DEFAULT_ENGINE_URL} — connecting.`));
|
|
619
|
-
conn = { url: DEFAULT_ENGINE_URL, token: null };
|
|
620
628
|
}
|
|
621
629
|
else {
|
|
622
|
-
conn = await promptForConnection("No Interf
|
|
630
|
+
conn = await promptForConnection("No Interf local service is connected.");
|
|
623
631
|
}
|
|
624
632
|
}
|
|
625
633
|
else {
|
|
@@ -627,15 +635,14 @@ async function runWizard(args) {
|
|
|
627
635
|
const probe = await callJson(`${url}/health`, initial.auth_token);
|
|
628
636
|
if (probe.status === 0) {
|
|
629
637
|
if (!args.url && await probeHealth(DEFAULT_ENGINE_URL)) {
|
|
630
|
-
|
|
631
|
-
|
|
638
|
+
conn = await connectToReachableEngine(DEFAULT_ENGINE_URL);
|
|
639
|
+
if (conn) {
|
|
640
|
+
console.log();
|
|
641
|
+
console.log(chalk.dim(` Saved connection ${url} is unreachable; using local service at ${DEFAULT_ENGINE_URL}.`));
|
|
632
642
|
}
|
|
633
|
-
|
|
634
|
-
|
|
643
|
+
else {
|
|
644
|
+
conn = await promptForConnection(`Saved connection ${url} is unreachable. The default local service is running, but no bearer token is available.`);
|
|
635
645
|
}
|
|
636
|
-
console.log();
|
|
637
|
-
console.log(chalk.dim(` Saved connection ${url} is unreachable; using local engine at ${DEFAULT_ENGINE_URL}.`));
|
|
638
|
-
conn = { url: DEFAULT_ENGINE_URL, token: null };
|
|
639
646
|
}
|
|
640
647
|
else {
|
|
641
648
|
conn = await promptForConnection(`Connection ${url} is unreachable.`);
|
|
@@ -651,23 +658,21 @@ async function runWizard(args) {
|
|
|
651
658
|
const instance = await callJson(`${conn.url}/v1/instance`, conn.token);
|
|
652
659
|
console.log();
|
|
653
660
|
console.log(chalk.bold(` Connected to ${conn.url}`));
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
}
|
|
657
|
-
// 0.15 — surface the connected agents up front. When zero are
|
|
661
|
+
console.log(chalk.dim(` ${instance.body?.project_count ?? 0} project(s)`));
|
|
662
|
+
// surface the execution agents up front. When zero are
|
|
658
663
|
// detected, run the install-cards menu before letting the user
|
|
659
|
-
// try to build or run
|
|
660
|
-
let agents = await
|
|
664
|
+
// try to build or run benchmark/evaluation passes.
|
|
665
|
+
let agents = await fetchAgentState(conn);
|
|
661
666
|
if (agents && !agents.engineSupportsAgents) {
|
|
662
667
|
console.log();
|
|
663
|
-
console.log(chalk.yellow("
|
|
668
|
+
console.log(chalk.yellow(" The connected local service is older than this CLI."));
|
|
664
669
|
console.log(chalk.dim(" /v1/agents is not available — agent management is disabled."));
|
|
665
670
|
console.log();
|
|
666
671
|
const choice = await p.select({
|
|
667
|
-
message: "Restart the
|
|
672
|
+
message: "Restart the local service now to pick up new features?",
|
|
668
673
|
options: [
|
|
669
|
-
{ value: "restart", label: "Yes
|
|
670
|
-
{ value: "continue", label: chalk.dim("No
|
|
674
|
+
{ value: "restart", label: "Yes - stop old service, start new one" },
|
|
675
|
+
{ value: "continue", label: chalk.dim("No - continue with limited features (no agent management, Build runs, or benchmark runs)") },
|
|
671
676
|
{ value: "quit", label: "Quit" },
|
|
672
677
|
],
|
|
673
678
|
initialValue: "restart",
|
|
@@ -678,26 +683,26 @@ async function runWizard(args) {
|
|
|
678
683
|
}
|
|
679
684
|
if (choice === "restart") {
|
|
680
685
|
console.log();
|
|
681
|
-
console.log(chalk.dim(" Stopping old
|
|
682
|
-
await spawnInterf(["
|
|
686
|
+
console.log(chalk.dim(" Stopping old service..."));
|
|
687
|
+
await spawnInterf(["runtime", "stop"]);
|
|
683
688
|
// Small grace period for the OS to release the port.
|
|
684
689
|
await new Promise((r) => setTimeout(r, 800));
|
|
685
690
|
const restarted = await startLocalEngineInBackground();
|
|
686
691
|
if (!restarted) {
|
|
687
|
-
console.log(chalk.red(" Could not start the new
|
|
692
|
+
console.log(chalk.red(" Could not start the new local service. Try manually: interf runtime"));
|
|
688
693
|
process.exit(1);
|
|
689
694
|
}
|
|
690
695
|
conn = restarted;
|
|
691
|
-
agents = await
|
|
696
|
+
agents = await fetchAgentState(conn);
|
|
692
697
|
}
|
|
693
698
|
}
|
|
694
699
|
// Treat "all registered agents are unavailable" the same as "no agents
|
|
695
700
|
// detected" — the install-cards menu lets the user install or register
|
|
696
701
|
// a real one before the active-agent picker runs.
|
|
697
|
-
function installedAgentCount(
|
|
698
|
-
if (!
|
|
702
|
+
function installedAgentCount(registry) {
|
|
703
|
+
if (!registry)
|
|
699
704
|
return 0;
|
|
700
|
-
return
|
|
705
|
+
return registry.agents.filter((agent) => agent.available !== false).length;
|
|
701
706
|
}
|
|
702
707
|
let allowAgentRuns = installedAgentCount(agents) > 0;
|
|
703
708
|
while (agents &&
|
|
@@ -713,7 +718,7 @@ async function runWizard(args) {
|
|
|
713
718
|
break;
|
|
714
719
|
}
|
|
715
720
|
// decision === "rerun"
|
|
716
|
-
agents = await
|
|
721
|
+
agents = await fetchAgentState(conn);
|
|
717
722
|
allowAgentRuns = installedAgentCount(agents) > 0;
|
|
718
723
|
}
|
|
719
724
|
if (agents && agents.engineSupportsAgents && installedAgentCount(agents) > 0) {
|
|
@@ -724,7 +729,7 @@ async function runWizard(args) {
|
|
|
724
729
|
//
|
|
725
730
|
// Custom agents whose CLI is no longer on PATH carry `available: false`
|
|
726
731
|
// — show them in a hint instead of as selectable choices so the picker
|
|
727
|
-
// does not let the user pick something the
|
|
732
|
+
// does not let the user pick something the local service cannot run.
|
|
728
733
|
const stale = agents.agents.filter((agent) => agent.available === false);
|
|
729
734
|
if (stale.length > 0) {
|
|
730
735
|
const names = stale.map((agent) => agent.display_name || agent.name).join(", ");
|
|
@@ -756,14 +761,14 @@ async function runWizard(args) {
|
|
|
756
761
|
p.outro("Bye.");
|
|
757
762
|
return;
|
|
758
763
|
}
|
|
759
|
-
agents = await
|
|
764
|
+
agents = await fetchAgentState(conn);
|
|
760
765
|
}
|
|
761
766
|
else if (choice !== agents.defaultAgent) {
|
|
762
767
|
// Switch active agent before proceeding. Reuse the existing CLI to
|
|
763
768
|
// sweep the role-map's `general` row + any role pinned to the
|
|
764
769
|
// previous active.
|
|
765
770
|
await spawnInterf(["agents", "use", String(choice)]);
|
|
766
|
-
agents = await
|
|
771
|
+
agents = await fetchAgentState(conn);
|
|
767
772
|
}
|
|
768
773
|
if (agents && agents.defaultAgent) {
|
|
769
774
|
console.log(chalk.dim(` Active: ${agents.defaultAgent} · roles default to ${agents.defaultAgent}`));
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { agentsCommand } from "./commands/agents.js";
|
|
2
2
|
import { buildCommand } from "./commands/build.js";
|
|
3
|
-
import {
|
|
3
|
+
import { benchmarkCommand } from "./commands/benchmark.js";
|
|
4
4
|
import { doctorCommand } from "./commands/doctor.js";
|
|
5
5
|
import { buildPlanCommand } from "./commands/build-plan.js";
|
|
6
6
|
import { mcpCommand } from "./commands/mcp.js";
|
|
7
7
|
import { runsCommand } from "./commands/runs.js";
|
|
8
|
+
import { graphsCommand } from "./commands/graphs.js";
|
|
9
|
+
import { tracesCommand } from "./commands/traces.js";
|
|
8
10
|
import { statusCommand } from "./commands/status.js";
|
|
9
11
|
import { resetCommand } from "./commands/reset.js";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
+
import { runtimeCommand } from "./commands/runtime.js";
|
|
13
|
+
import { projectCommand } from "./commands/project.js";
|
|
12
14
|
import { loginCommand } from "./commands/login.js";
|
|
13
15
|
import { logoutCommand } from "./commands/logout.js";
|
|
16
|
+
import { authCommand } from "./commands/auth.js";
|
|
14
17
|
import { wizardCommand, initCommand } from "./commands/wizard.js";
|
|
15
18
|
export declare function buildCli(argv?: string[]): import("yargs").Argv<{}>;
|
|
16
19
|
export declare function runCli(argv?: string[]): {
|
|
@@ -22,4 +25,4 @@ export declare function runCli(argv?: string[]): {
|
|
|
22
25
|
_: (string | number)[];
|
|
23
26
|
$0: string;
|
|
24
27
|
}>;
|
|
25
|
-
export { initCommand, buildCommand,
|
|
28
|
+
export { initCommand, buildCommand, benchmarkCommand, agentsCommand, doctorCommand, buildPlanCommand, mcpCommand, runsCommand, graphsCommand, tracesCommand, statusCommand, resetCommand, runtimeCommand, projectCommand, loginCommand, logoutCommand, authCommand, wizardCommand, };
|