@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
package/README.md
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# Interf
|
|
2
|
+
|
|
3
|
+
**Interf prepares data for agents.**
|
|
4
|
+
|
|
5
|
+
This npm package ships the `interf` CLI and local Interf runtime for building
|
|
6
|
+
task-specific Context Graphs from files.
|
|
7
|
+
|
|
8
|
+
Agents miss things in files. When agents answer from a folder, they first have
|
|
9
|
+
to discover what is in it, decide what matters, extract evidence, and connect
|
|
10
|
+
facts across files. That file-to-context step is hidden, inconsistent, and hard
|
|
11
|
+
to inspect.
|
|
12
|
+
|
|
13
|
+
Interf separates that step. It makes users' agents build a Context Graph from
|
|
14
|
+
their files. It has source coverage summaries, task-aware knowledge, artifact
|
|
15
|
+
handoffs, and links back to sources. Your agent uses the prepared map instead
|
|
16
|
+
of rediscovering the files during the task.
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
Source files Context Graph agents use
|
|
20
|
+
|
|
21
|
+
bristol-office-market/ <context-graph>/
|
|
22
|
+
q4-market-report.pdf AGENTS.md
|
|
23
|
+
lease-comps.xlsx home.md
|
|
24
|
+
planning-notes.md summaries/
|
|
25
|
+
exports/availability.csv knowledge/
|
|
26
|
+
artifacts/
|
|
27
|
+
traces/
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## What a Build Produces
|
|
31
|
+
|
|
32
|
+
A Build produces a Context Graph. The Context Graph is source-backed context
|
|
33
|
+
built from files so agents can use prepared context instead of partial file
|
|
34
|
+
reads.
|
|
35
|
+
|
|
36
|
+
For a local Build, the Context Graph is an inspectable folder:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
<context-graph>/
|
|
40
|
+
AGENTS.md # agent guidance
|
|
41
|
+
home.md # overview and routes
|
|
42
|
+
artifacts/ # task-specific agent handoffs
|
|
43
|
+
summaries/ # source coverage proof
|
|
44
|
+
knowledge/ # navigation and drilldown
|
|
45
|
+
traces/ # links back to sources
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The output is not an answer. It is a prepared map over the Source: artifact
|
|
49
|
+
handoffs, summaries, knowledge notes, and links back to sources. The Source
|
|
50
|
+
remains the ground truth. Agents start from `artifacts/`, use `summaries/` for
|
|
51
|
+
coverage proof and `knowledge/` for drilldown, then follow source links when
|
|
52
|
+
exact wording, table values, chart reads, or provenance-sensitive claims matter.
|
|
53
|
+
|
|
54
|
+
## Design Choices
|
|
55
|
+
|
|
56
|
+
- `Project-scoped`: every Project starts from a specific Source and selected
|
|
57
|
+
Build Plan, not a generic index over every file.
|
|
58
|
+
- `Inspectable`: Interf records what was built, which requested Artifacts exist,
|
|
59
|
+
and where source-backed traces live.
|
|
60
|
+
- `Local-first`: local Builds keep Source files on your machine and read-only.
|
|
61
|
+
- `Bring your own agent`: use Claude Code, Codex, or another registered
|
|
62
|
+
command-line agent.
|
|
63
|
+
- `File over hidden index`: local Builds expose the Context Graph as a folder
|
|
64
|
+
agents can inspect.
|
|
65
|
+
- `Context Checks you control`: every Build can be checked against
|
|
66
|
+
plain-English conditions such as "Every page is covered" or "Every figure
|
|
67
|
+
cites a source page."
|
|
68
|
+
|
|
69
|
+
## Why Not Just Ask Your Agent?
|
|
70
|
+
|
|
71
|
+
You can. Interf can use Claude Code, Codex, or another registered local agent
|
|
72
|
+
while it builds the Context Graph.
|
|
73
|
+
|
|
74
|
+
A one-off preprocessing prompt gives you another answer to trust. Interf puts
|
|
75
|
+
the preparation step inside a Build Plan you can inspect: requested Artifacts,
|
|
76
|
+
declared stages, Build evidence, Context Checks, and traces.
|
|
77
|
+
|
|
78
|
+
The agent can still execute the stages. Interf shows what was covered, what was
|
|
79
|
+
produced, and whether the Context Graph is ready for the task.
|
|
80
|
+
|
|
81
|
+
## Install
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm install -g @interf/compiler
|
|
85
|
+
interf # opens the wizard
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Requires Node.js 20+ and a local agent CLI such as Claude Code, Codex, or
|
|
89
|
+
another registered command-line agent. Run `interf doctor --live` if the
|
|
90
|
+
executor is not detected.
|
|
91
|
+
|
|
92
|
+
## Quick Start
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# terminal 1: start the local Interf runtime
|
|
96
|
+
interf runtime
|
|
97
|
+
|
|
98
|
+
# terminal 2: create a Project from a local Source
|
|
99
|
+
interf project create bristol --source ./bristol-office-market
|
|
100
|
+
|
|
101
|
+
# draft the Build Plan for review
|
|
102
|
+
interf plan draft bristol \
|
|
103
|
+
--intent "Bristol annual take-up and availability chart lookup" \
|
|
104
|
+
--artifacts "Guide to the report; annual take-up figures with source references" \
|
|
105
|
+
--ready-when "Every page is listed and every figure has a source reference."
|
|
106
|
+
|
|
107
|
+
# select the reviewed Build Plan
|
|
108
|
+
interf plan select bristol <build-plan-id>
|
|
109
|
+
|
|
110
|
+
# build the Context Graph
|
|
111
|
+
interf build bristol
|
|
112
|
+
|
|
113
|
+
# optional: benchmark/evaluate answers from the Source baseline, Context Graph, or both
|
|
114
|
+
interf benchmark bristol
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`interf runtime` starts the local runtime in the foreground and writes the
|
|
118
|
+
active connection record so subsequent CLI commands can connect. Agents can use
|
|
119
|
+
`interf runtime start` for an explicit managed background runtime, then
|
|
120
|
+
`interf runtime stop` when their task is done.
|
|
121
|
+
|
|
122
|
+
Mutating commands never implicitly auto-start a runtime. If no instance is
|
|
123
|
+
connected, they exit with a hint pointing at `interf runtime`,
|
|
124
|
+
`interf runtime start`, or `interf login`.
|
|
125
|
+
|
|
126
|
+
`interf build` returns the Context Graph locator on success. For local Builds,
|
|
127
|
+
that locator points to a folder agents can inspect and continue from. There is
|
|
128
|
+
no `--out` flag and no implicit copy of your Source folder.
|
|
129
|
+
|
|
130
|
+
## Context Graph
|
|
131
|
+
|
|
132
|
+
The Context Graph is the output Interf builds from your files for agents. It is
|
|
133
|
+
a knowledge map over the Source, not a replacement for the Source.
|
|
134
|
+
|
|
135
|
+
It gives agents structure and source-backed routes for navigating files. For
|
|
136
|
+
the built-in `interf-default`, it includes:
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
<context-graph>/
|
|
140
|
+
AGENTS.md # agent-facing guidance and source-checking rules
|
|
141
|
+
CLAUDE.md # same guidance for Claude Code
|
|
142
|
+
home.md # graph index
|
|
143
|
+
artifacts/ # task-specific handoffs for agents
|
|
144
|
+
summaries/ # one source-named folder per source file
|
|
145
|
+
knowledge/ # linked notes built from summaries and source refs
|
|
146
|
+
traces/ # source provenance for claims and checks
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
The source files stay the source of truth. Interf writes generated state inside
|
|
150
|
+
the instance data directory and does not modify the Source.
|
|
151
|
+
|
|
152
|
+
`AGENTS.md` tells agents how to use the Context Graph: start from the prepared
|
|
153
|
+
outputs, follow the prepared routes, and use the recorded source references
|
|
154
|
+
when exact source evidence matters.
|
|
155
|
+
|
|
156
|
+
## Build Plans
|
|
157
|
+
|
|
158
|
+
A Build Plan tells Interf how to build requested Artifacts from your Source for
|
|
159
|
+
the agent task. It also states the Context Checks the user can review before the
|
|
160
|
+
Build.
|
|
161
|
+
|
|
162
|
+
The built-in `interf-default` Build Plan ships with `interf`. Save your own
|
|
163
|
+
local Build Plan with `interf plan save <path>`; draft new ones with
|
|
164
|
+
`interf plan draft <project-id>`.
|
|
165
|
+
|
|
166
|
+
```text
|
|
167
|
+
<build-plan-folder>/
|
|
168
|
+
build-plan.json # Build Plan definition: artifacts, stages, build rules
|
|
169
|
+
build-plan.schema.json # output contract: required Context Graph files/folders
|
|
170
|
+
README.md # what this Build Plan is for
|
|
171
|
+
build/
|
|
172
|
+
stages/
|
|
173
|
+
summarize/ # stage instructions Interf runs during the Build
|
|
174
|
+
structure/
|
|
175
|
+
shape/
|
|
176
|
+
use/
|
|
177
|
+
query/ # how agents read the Context Graph
|
|
178
|
+
improve/ # how Interf revises the plan if checks still fail
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
- `build-plan.json` is the technical filename for the Build Plan definition:
|
|
182
|
+
requested Artifacts, stages, and how the files should be built.
|
|
183
|
+
- `build-plan.schema.json` describes the output contract: what the Context Graph
|
|
184
|
+
must contain.
|
|
185
|
+
- `build/stages/<stage>/` is where you author one folder per stage.
|
|
186
|
+
- `use/query/` holds the instructions agents follow when they read the Context
|
|
187
|
+
Graph for the task.
|
|
188
|
+
- `improve/` holds the instructions Interf follows when the first Build misses
|
|
189
|
+
and the Build Plan itself needs editing.
|
|
190
|
+
|
|
191
|
+
## Build Plan Improvement
|
|
192
|
+
|
|
193
|
+
When the first Build is `not ready`, Interf can edit the Build Plan and build
|
|
194
|
+
again. Same Source, same checks, improved Build Plan and Context Graph.
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
interf plan improve <project-id>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Interf records Build Plan improvement as a Run with the revised Build Plan,
|
|
201
|
+
Build evidence, and resulting Context Graph.
|
|
202
|
+
|
|
203
|
+
## Context Checks And Benchmarks
|
|
204
|
+
|
|
205
|
+
Context Checks are plain-English promises the user reviews before a Build.
|
|
206
|
+
Requested Artifacts back those checks.
|
|
207
|
+
|
|
208
|
+
Examples:
|
|
209
|
+
|
|
210
|
+
- every file in scope was processed
|
|
211
|
+
- required pages or slides were inventoried
|
|
212
|
+
- required outputs exist
|
|
213
|
+
- every figure cites a source page
|
|
214
|
+
- the Source has not changed since the Build
|
|
215
|
+
|
|
216
|
+
Benchmarks are different. A benchmark asks saved questions and measures answer
|
|
217
|
+
accuracy against an agent source-access baseline, the Context Graph, or both.
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
interf benchmark bristol
|
|
221
|
+
interf benchmark bristol --target source-files
|
|
222
|
+
interf benchmark bristol --target context-graph
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
`interf benchmark` is optional evaluation. It is not the main readiness surface.
|
|
226
|
+
|
|
227
|
+
## What Interf Is Not
|
|
228
|
+
|
|
229
|
+
- Not a second brain or memory product. One Project starts from one Source and
|
|
230
|
+
agent task.
|
|
231
|
+
- Not a vector store or hosted RAG server. The Context Graph is structured
|
|
232
|
+
source-backed context agents can inspect.
|
|
233
|
+
- Not a hosted data platform by default. Local Builds run on your machine.
|
|
234
|
+
- Not a generic agent task orchestrator. Interf prepares files into Context
|
|
235
|
+
Graphs for agents.
|
|
236
|
+
|
|
237
|
+
## Useful Commands
|
|
238
|
+
|
|
239
|
+
- `interf` / `interf init` - open the interactive wizard.
|
|
240
|
+
- `interf runtime` - run the local Interf runtime in the foreground.
|
|
241
|
+
- `interf runtime start` - start a managed background local runtime.
|
|
242
|
+
- `interf runtime stop` - stop the running local runtime.
|
|
243
|
+
- `interf project ls / create / show / rm` - manage Projects.
|
|
244
|
+
- `interf plan list / show / save / draft / select / improve` - manage Build
|
|
245
|
+
Plans.
|
|
246
|
+
- `interf build <project-id>` - Build the Context Graph for a Project.
|
|
247
|
+
- `interf graphs ls --project <id>` / `show <graph-id> --project <id>` - inspect
|
|
248
|
+
Context Graphs.
|
|
249
|
+
- `interf traces ls --project <id>` / `show <trace-kind> --project <id>` -
|
|
250
|
+
inspect Context Graph traces.
|
|
251
|
+
- `interf runs ls --project <id>` / `status <run-id>` - inspect Runs.
|
|
252
|
+
- `interf benchmark <project-id>` - run an optional benchmark/evaluation pass.
|
|
253
|
+
- `interf agents ls / use / register / unregister / map / unmap` - configure
|
|
254
|
+
local agents and role mapping.
|
|
255
|
+
- `interf login / logout` - connect the CLI to another Interf instance.
|
|
256
|
+
- `interf status` - show the active connection and Project summary.
|
|
257
|
+
- `interf doctor --live` - check the local executor before a Build.
|
|
258
|
+
|
|
259
|
+
## Public Assets
|
|
260
|
+
|
|
261
|
+
- [skills/interf](./skills/interf/) - bundled agent Skill for Interf.
|
|
262
|
+
- [build-plans/interf-default](./build-plans/interf-default/) - default Build
|
|
263
|
+
Plan that ships with `interf`.
|
|
264
|
+
|
|
265
|
+
Contributors: see [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
266
|
+
|
|
267
|
+
License: see [LICENSE.md](./LICENSE.md). © 2026 Interf Inc. All rights reserved.
|
|
268
|
+
Name and branding: see [TRADEMARKS.md](./TRADEMARKS.md).
|
package/dist/bin-mcp.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { startInterfMcpServer, } from "./cli/commands/mcp.js";
|
|
3
|
+
function readOptionValue(argv, index, flag) {
|
|
4
|
+
const current = argv[index];
|
|
5
|
+
const inlinePrefix = `${flag}=`;
|
|
6
|
+
if (current?.startsWith(inlinePrefix)) {
|
|
7
|
+
return { value: current.slice(inlinePrefix.length), nextIndex: index };
|
|
8
|
+
}
|
|
9
|
+
const value = argv[index + 1];
|
|
10
|
+
if (!value || value.startsWith("--")) {
|
|
11
|
+
throw new Error(`Missing value for ${flag}.`);
|
|
12
|
+
}
|
|
13
|
+
return { value, nextIndex: index + 1 };
|
|
14
|
+
}
|
|
15
|
+
function parseArgs(argv) {
|
|
16
|
+
const args = { profile: "app", transport: "stdio" };
|
|
17
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
18
|
+
const arg = argv[index];
|
|
19
|
+
if (arg === "--help" || arg === "-h") {
|
|
20
|
+
process.stderr.write("usage: interf-mcp [--url <url>] [--token <token>]\n");
|
|
21
|
+
process.exit(0);
|
|
22
|
+
}
|
|
23
|
+
if (arg === "--profile" || arg?.startsWith("--profile=")) {
|
|
24
|
+
const parsed = readOptionValue(argv, index, "--profile");
|
|
25
|
+
if (parsed.value !== "app" && parsed.value !== "headless") {
|
|
26
|
+
throw new Error("--profile must be app or headless.");
|
|
27
|
+
}
|
|
28
|
+
args.profile = parsed.value;
|
|
29
|
+
index = parsed.nextIndex;
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (arg === "--transport" || arg?.startsWith("--transport=")) {
|
|
33
|
+
const parsed = readOptionValue(argv, index, "--transport");
|
|
34
|
+
if (parsed.value !== "stdio") {
|
|
35
|
+
throw new Error("Only stdio transport is supported by the local Interf MCP server.");
|
|
36
|
+
}
|
|
37
|
+
args.transport = parsed.value;
|
|
38
|
+
index = parsed.nextIndex;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (arg === "--url" || arg?.startsWith("--url=")) {
|
|
42
|
+
const parsed = readOptionValue(argv, index, "--url");
|
|
43
|
+
args.url = parsed.value;
|
|
44
|
+
index = parsed.nextIndex;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (arg === "--token" || arg?.startsWith("--token=")) {
|
|
48
|
+
const parsed = readOptionValue(argv, index, "--token");
|
|
49
|
+
args.token = parsed.value;
|
|
50
|
+
index = parsed.nextIndex;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
throw new Error(`Unknown MCP server option: ${arg ?? ""}`);
|
|
54
|
+
}
|
|
55
|
+
return args;
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
await startInterfMcpServer(parseArgs(process.argv.slice(2)));
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { runRuntimeForeground, runRuntimeStatus, } from "./cli/commands/runtime.js";
|
|
3
|
+
import { LOCAL_SERVICE_DEFAULT_HOST, LOCAL_SERVICE_DEFAULT_PORT, } from "./packages/runtime/service/routes.js";
|
|
4
|
+
function optionValue(argv, index, flag) {
|
|
5
|
+
const current = argv[index];
|
|
6
|
+
const inlinePrefix = `${flag}=`;
|
|
7
|
+
if (current?.startsWith(inlinePrefix)) {
|
|
8
|
+
return { value: current.slice(inlinePrefix.length), nextIndex: index };
|
|
9
|
+
}
|
|
10
|
+
const value = argv[index + 1];
|
|
11
|
+
if (!value || value.startsWith("--")) {
|
|
12
|
+
throw new Error(`Missing value for ${flag}.`);
|
|
13
|
+
}
|
|
14
|
+
return { value, nextIndex: index + 1 };
|
|
15
|
+
}
|
|
16
|
+
function parseNumber(raw, flag) {
|
|
17
|
+
const value = Number(raw);
|
|
18
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
19
|
+
throw new Error(`${flag} must be a positive integer.`);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function parseForegroundArgs(argv) {
|
|
24
|
+
const args = {
|
|
25
|
+
host: LOCAL_SERVICE_DEFAULT_HOST,
|
|
26
|
+
port: LOCAL_SERVICE_DEFAULT_PORT,
|
|
27
|
+
};
|
|
28
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
29
|
+
const arg = argv[index];
|
|
30
|
+
if (arg === "--help" || arg === "-h") {
|
|
31
|
+
process.stderr.write("usage: interf-runtime [--host <host>] [--port <port>] [--app-owned] [--parent-pid <pid>]\n");
|
|
32
|
+
process.exit(0);
|
|
33
|
+
}
|
|
34
|
+
if (arg === "--host" || arg?.startsWith("--host=")) {
|
|
35
|
+
const parsed = optionValue(argv, index, "--host");
|
|
36
|
+
args.host = parsed.value;
|
|
37
|
+
index = parsed.nextIndex;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (arg === "--port" || arg?.startsWith("--port=")) {
|
|
41
|
+
const parsed = optionValue(argv, index, "--port");
|
|
42
|
+
args.port = parseNumber(parsed.value, "--port");
|
|
43
|
+
index = parsed.nextIndex;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (arg === "--app-owned") {
|
|
47
|
+
args.appOwned = true;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (arg === "--parent-pid" || arg?.startsWith("--parent-pid=")) {
|
|
51
|
+
const parsed = optionValue(argv, index, "--parent-pid");
|
|
52
|
+
args.parentPid = parseNumber(parsed.value, "--parent-pid");
|
|
53
|
+
index = parsed.nextIndex;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
throw new Error(`Unknown runtime option: ${arg ?? ""}`);
|
|
57
|
+
}
|
|
58
|
+
return args;
|
|
59
|
+
}
|
|
60
|
+
function parseStatusArgs(argv) {
|
|
61
|
+
const args = {};
|
|
62
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
63
|
+
const arg = argv[index];
|
|
64
|
+
if (arg === "--help" || arg === "-h") {
|
|
65
|
+
process.stderr.write("usage: interf-runtime status [--url <url>] [--token <token>] [--require-owner-kind <kind>] [--require-owner-pid <pid>]\n");
|
|
66
|
+
process.exit(0);
|
|
67
|
+
}
|
|
68
|
+
if (arg === "--url" || arg?.startsWith("--url=")) {
|
|
69
|
+
const parsed = optionValue(argv, index, "--url");
|
|
70
|
+
args.url = parsed.value;
|
|
71
|
+
index = parsed.nextIndex;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (arg === "--token" || arg?.startsWith("--token=")) {
|
|
75
|
+
const parsed = optionValue(argv, index, "--token");
|
|
76
|
+
args.token = parsed.value;
|
|
77
|
+
index = parsed.nextIndex;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (arg === "--require-owner-kind" || arg?.startsWith("--require-owner-kind=")) {
|
|
81
|
+
const parsed = optionValue(argv, index, "--require-owner-kind");
|
|
82
|
+
if (parsed.value !== "desktop-app" && parsed.value !== "headless") {
|
|
83
|
+
throw new Error("--require-owner-kind must be desktop-app or headless.");
|
|
84
|
+
}
|
|
85
|
+
args.requireOwnerKind = parsed.value;
|
|
86
|
+
index = parsed.nextIndex;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (arg === "--require-owner-pid" || arg?.startsWith("--require-owner-pid=")) {
|
|
90
|
+
const parsed = optionValue(argv, index, "--require-owner-pid");
|
|
91
|
+
args.requireOwnerPid = parseNumber(parsed.value, "--require-owner-pid");
|
|
92
|
+
index = parsed.nextIndex;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
throw new Error(`Unknown runtime status option: ${arg ?? ""}`);
|
|
96
|
+
}
|
|
97
|
+
return args;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const [subcommand, ...rest] = process.argv.slice(2);
|
|
101
|
+
if (subcommand === "status") {
|
|
102
|
+
await runRuntimeStatus(parseStatusArgs(rest));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
await runRuntimeForeground(parseForegroundArgs(process.argv.slice(2)));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `interf agents` — manage
|
|
2
|
+
* `interf agents` — manage execution agents + role mapping.
|
|
3
3
|
*
|
|
4
4
|
* interf agents ls # list registered + detected
|
|
5
5
|
* interf agents use <name> # set active agent
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* `~/.interf/agents.json` directly — the service is the source of truth.
|
|
13
13
|
*/
|
|
14
14
|
import chalk from "chalk";
|
|
15
|
-
import { CONNECT_OR_ERROR_HINT, readActiveConnection, } from "../../packages/
|
|
15
|
+
import { CONNECT_OR_ERROR_HINT, readActiveConnection, } from "../../packages/runtime/connection-config.js";
|
|
16
16
|
function resolveConnection(args) {
|
|
17
17
|
const conn = readActiveConnection({
|
|
18
18
|
urlOverride: args.url,
|
|
@@ -62,7 +62,7 @@ function printRegistry(registry) {
|
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
console.log();
|
|
65
|
-
console.log(chalk.bold("
|
|
65
|
+
console.log(chalk.bold(" Execution agents"));
|
|
66
66
|
for (const agent of registry.agents) {
|
|
67
67
|
console.log(formatAgentLine(agent, registry));
|
|
68
68
|
}
|
|
@@ -77,7 +77,7 @@ function printRegistry(registry) {
|
|
|
77
77
|
}
|
|
78
78
|
export const agentsCommand = {
|
|
79
79
|
command: "agents <subcommand>",
|
|
80
|
-
describe: "Manage
|
|
80
|
+
describe: "Manage execution agents and role mapping",
|
|
81
81
|
builder: (yargs) => yargs
|
|
82
82
|
.option("url", { type: "string", describe: "Override the active connection URL" })
|
|
83
83
|
.option("token", { type: "string", describe: "Override the active bearer token" })
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CommandModule } from "yargs";
|
|
2
|
+
/**
|
|
3
|
+
* `interf auth` — local user session for the service.
|
|
4
|
+
*
|
|
5
|
+
* `login` drives WorkOS AuthKit PKCE in the browser: spawns a loopback
|
|
6
|
+
* callback server, asks AuthKit for an authorize URL, opens the browser,
|
|
7
|
+
* exchanges the returned code for tokens, persists the refresh token in
|
|
8
|
+
* the system keychain, and writes `~/.interf/auth/session.json` so the
|
|
9
|
+
* service reads the identity on boot.
|
|
10
|
+
*
|
|
11
|
+
* `--dev-stub <email>` keeps the local-only fast path for CI / tests /
|
|
12
|
+
* pre-WorkOS-configuration developer machines. It writes a `local_<email>`
|
|
13
|
+
* session straight to disk without any network hop.
|
|
14
|
+
*
|
|
15
|
+
* The plan tier comes from the cloud control plane (`GET /v1/me`) in a
|
|
16
|
+
* follow-up; today every fresh PKCE login lands as `free` and the
|
|
17
|
+
* entitlements gate on local quotas. The dev stub takes `--plan` so
|
|
18
|
+
* tests can simulate Pro.
|
|
19
|
+
*/
|
|
20
|
+
export declare const authCommand: CommandModule;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { clearSession, readSession, writeSession, } from "../../packages/runtime/auth/session-store.js";
|
|
3
|
+
import { entitlementsForPlan } from "../../packages/runtime/auth/account-context.js";
|
|
4
|
+
import { defaultPkceTransport, runPkceFlow, AuthFlowError, } from "../../packages/runtime/auth/auth-flow.js";
|
|
5
|
+
import { deleteRefreshToken, setRefreshToken, } from "../../packages/runtime/auth/keychain.js";
|
|
6
|
+
import { WorkOSConfigError } from "../../packages/runtime/auth/workos-client.js";
|
|
7
|
+
/**
|
|
8
|
+
* `interf auth` — local user session for the service.
|
|
9
|
+
*
|
|
10
|
+
* `login` drives WorkOS AuthKit PKCE in the browser: spawns a loopback
|
|
11
|
+
* callback server, asks AuthKit for an authorize URL, opens the browser,
|
|
12
|
+
* exchanges the returned code for tokens, persists the refresh token in
|
|
13
|
+
* the system keychain, and writes `~/.interf/auth/session.json` so the
|
|
14
|
+
* service reads the identity on boot.
|
|
15
|
+
*
|
|
16
|
+
* `--dev-stub <email>` keeps the local-only fast path for CI / tests /
|
|
17
|
+
* pre-WorkOS-configuration developer machines. It writes a `local_<email>`
|
|
18
|
+
* session straight to disk without any network hop.
|
|
19
|
+
*
|
|
20
|
+
* The plan tier comes from the cloud control plane (`GET /v1/me`) in a
|
|
21
|
+
* follow-up; today every fresh PKCE login lands as `free` and the
|
|
22
|
+
* entitlements gate on local quotas. The dev stub takes `--plan` so
|
|
23
|
+
* tests can simulate Pro.
|
|
24
|
+
*/
|
|
25
|
+
export const authCommand = {
|
|
26
|
+
command: "auth <action>",
|
|
27
|
+
describe: "Manage Interf account session (login / logout / whoami)",
|
|
28
|
+
builder: (y) => y
|
|
29
|
+
.positional("action", {
|
|
30
|
+
type: "string",
|
|
31
|
+
choices: ["login", "logout", "whoami"],
|
|
32
|
+
demandOption: true,
|
|
33
|
+
describe: "auth action",
|
|
34
|
+
})
|
|
35
|
+
.option("dev-stub", {
|
|
36
|
+
type: "string",
|
|
37
|
+
describe: "Skip PKCE and write a local-only session for <email>",
|
|
38
|
+
})
|
|
39
|
+
.option("plan", {
|
|
40
|
+
type: "string",
|
|
41
|
+
choices: ["free", "pro", "enterprise"],
|
|
42
|
+
default: "free",
|
|
43
|
+
describe: "Tier to associate with --dev-stub sessions (dev only)",
|
|
44
|
+
})
|
|
45
|
+
.option("no-browser", {
|
|
46
|
+
type: "boolean",
|
|
47
|
+
default: false,
|
|
48
|
+
describe: "Print the AuthKit URL instead of opening the browser",
|
|
49
|
+
})
|
|
50
|
+
.option("login-hint", {
|
|
51
|
+
type: "string",
|
|
52
|
+
describe: "Prefill the AuthKit email field",
|
|
53
|
+
}),
|
|
54
|
+
handler: async (args) => {
|
|
55
|
+
const action = args.action;
|
|
56
|
+
if (action === "whoami") {
|
|
57
|
+
await handleWhoami();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (action === "logout") {
|
|
61
|
+
await handleLogout();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (action === "login") {
|
|
65
|
+
await handleLogin(args);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
async function handleWhoami() {
|
|
71
|
+
const session = readSession();
|
|
72
|
+
if (!session) {
|
|
73
|
+
console.log(chalk.dim("Not signed in. Run `interf auth login`."));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
console.log(chalk.bold(session.email));
|
|
77
|
+
console.log(chalk.dim(` user_id: ${session.user_id}`));
|
|
78
|
+
console.log(chalk.dim(` plan: ${session.plan}`));
|
|
79
|
+
const cap = session.entitlements.max_active_projects;
|
|
80
|
+
console.log(chalk.dim(` project cap: ${Number.isFinite(cap) ? cap : "unlimited"}`));
|
|
81
|
+
console.log(chalk.dim(` refreshed_at: ${session.refreshed_at}`));
|
|
82
|
+
}
|
|
83
|
+
async function handleLogout() {
|
|
84
|
+
const session = readSession();
|
|
85
|
+
if (session) {
|
|
86
|
+
try {
|
|
87
|
+
await deleteRefreshToken(session.user_id);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
91
|
+
console.warn(chalk.yellow(` Warning: could not clear keychain entry (${message}).`));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
clearSession();
|
|
95
|
+
console.log(chalk.green("Signed out. Session cleared."));
|
|
96
|
+
}
|
|
97
|
+
async function handleLogin(args) {
|
|
98
|
+
const devStubEmail = args["dev-stub"];
|
|
99
|
+
if (devStubEmail) {
|
|
100
|
+
writeStubSession(devStubEmail, args.plan ?? "free");
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const result = await runPkceFlow(defaultPkceTransport(), {
|
|
105
|
+
autoOpenBrowser: !args["no-browser"],
|
|
106
|
+
...(args["login-hint"] ? { loginHint: args["login-hint"] } : {}),
|
|
107
|
+
});
|
|
108
|
+
try {
|
|
109
|
+
await setRefreshToken(result.user.id, result.refreshToken);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
113
|
+
console.warn(chalk.yellow(` Warning: could not persist refresh token (${message}). ` +
|
|
114
|
+
"You may need to re-run `interf auth login` after the next service restart."));
|
|
115
|
+
}
|
|
116
|
+
const refreshedAt = new Date().toISOString();
|
|
117
|
+
const plan = "free";
|
|
118
|
+
const displayName = [result.user.firstName, result.user.lastName]
|
|
119
|
+
.filter((part) => typeof part === "string" && part.length > 0)
|
|
120
|
+
.join(" ") || null;
|
|
121
|
+
writeSession({
|
|
122
|
+
user_id: result.user.id,
|
|
123
|
+
email: result.user.email,
|
|
124
|
+
display_name: displayName,
|
|
125
|
+
plan,
|
|
126
|
+
entitlements: entitlementsForPlan(plan),
|
|
127
|
+
refreshed_at: refreshedAt,
|
|
128
|
+
});
|
|
129
|
+
console.log(chalk.green(`Signed in as ${result.user.email}.`));
|
|
130
|
+
console.log(chalk.dim(" Session written to ~/.interf/auth/session.json."));
|
|
131
|
+
console.log(chalk.dim(" Restart `interf runtime` to pick up the new account context."));
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
if (error instanceof WorkOSConfigError) {
|
|
136
|
+
console.error(chalk.red(error.message));
|
|
137
|
+
process.exit(2);
|
|
138
|
+
}
|
|
139
|
+
if (error instanceof AuthFlowError) {
|
|
140
|
+
console.error(chalk.red(`Sign-in failed: ${error.message}`));
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
144
|
+
console.error(chalk.red(`Sign-in failed: ${message}`));
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function writeStubSession(email, plan) {
|
|
149
|
+
const refreshedAt = new Date().toISOString();
|
|
150
|
+
writeSession({
|
|
151
|
+
user_id: `local_${email.replace(/[^a-zA-Z0-9_-]/g, "_")}`,
|
|
152
|
+
email,
|
|
153
|
+
display_name: email.split("@")[0] ?? null,
|
|
154
|
+
plan,
|
|
155
|
+
entitlements: entitlementsForPlan(plan),
|
|
156
|
+
refreshed_at: refreshedAt,
|
|
157
|
+
});
|
|
158
|
+
console.log(chalk.green(`Signed in as ${email} (${plan}) [dev stub].`));
|
|
159
|
+
console.log(chalk.dim(" Local session written to ~/.interf/auth/session.json."));
|
|
160
|
+
console.log(chalk.dim(" No network hop; this bypass is for CI / local testing only."));
|
|
161
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CommandModule } from "yargs";
|
|
2
|
+
type BenchmarkTarget = "context-graph" | "source-files" | "both";
|
|
3
|
+
interface BenchmarkArgs {
|
|
4
|
+
projectId: string;
|
|
5
|
+
target?: BenchmarkTarget;
|
|
6
|
+
url?: string;
|
|
7
|
+
token?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const benchmarkCommand: CommandModule<unknown, BenchmarkArgs>;
|
|
10
|
+
export {};
|