@interf/compiler 0.22.2 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +119 -282
- package/dist/bin-mcp.d.ts +2 -0
- package/dist/bin-mcp.js +63 -0
- package/dist/bin-runtime.d.ts +2 -0
- package/dist/bin-runtime.js +111 -0
- package/dist/cli/commands/agents.js +4 -35
- package/dist/cli/commands/auth.d.ts +20 -0
- package/dist/cli/commands/auth.js +161 -0
- package/dist/cli/commands/benchmark.d.ts +9 -0
- package/dist/cli/commands/benchmark.js +58 -0
- package/dist/cli/commands/build-plan.js +107 -139
- package/dist/cli/commands/build.d.ts +3 -4
- package/dist/cli/commands/build.js +16 -45
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/graphs.d.ts +2 -0
- package/dist/cli/commands/graphs.js +344 -0
- package/dist/cli/commands/login.js +4 -6
- package/dist/cli/commands/logout.js +1 -1
- package/dist/cli/commands/mcp.d.ts +4 -2
- package/dist/cli/commands/mcp.js +846 -232
- package/dist/cli/commands/project.d.ts +2 -0
- package/dist/cli/commands/project.js +176 -0
- package/dist/cli/commands/reset.d.ts +3 -4
- package/dist/cli/commands/reset.js +10 -31
- package/dist/cli/commands/runs.js +136 -57
- package/dist/cli/commands/runtime.d.ts +24 -0
- package/dist/cli/commands/runtime.js +373 -0
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.js +35 -45
- package/dist/cli/commands/traces.d.ts +2 -0
- package/dist/cli/commands/traces.js +97 -0
- package/dist/cli/commands/wizard.js +171 -178
- package/dist/cli/index.d.ts +7 -4
- package/dist/cli/index.js +13 -7
- package/dist/cli/lib/http-client.d.ts +39 -0
- package/dist/cli/lib/http-client.js +73 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/packages/build-plans/authoring/brief.d.ts +538 -0
- package/dist/packages/build-plans/authoring/brief.js +89 -0
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +52 -11
- package/dist/packages/build-plans/authoring/build-plan-authoring.js +493 -46
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +10 -1
- package/dist/packages/build-plans/authoring/build-plan-edit-session.js +27 -4
- package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +97 -46
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.d.ts +1 -0
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
- package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
- package/dist/packages/build-plans/build-plan-resolution.js +3 -3
- package/dist/packages/build-plans/index.d.ts +1 -1
- package/dist/packages/build-plans/index.js +1 -1
- package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -13
- package/dist/packages/build-plans/package/build-plan-definitions.js +45 -42
- package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
- package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
- package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
- package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
- package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +5 -4
- package/dist/packages/build-plans/package/build-plan-stage-runner.js +23 -11
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +7 -8
- package/dist/packages/build-plans/package/builtin-build-plan.js +10 -11
- package/dist/packages/build-plans/package/context-interface.d.ts +14 -9
- package/dist/packages/build-plans/package/context-interface.js +14 -33
- package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
- package/dist/packages/build-plans/package/interf-build-plan-package.js +68 -64
- package/dist/packages/build-plans/package/local-build-plans.d.ts +21 -14
- package/dist/packages/build-plans/package/local-build-plans.js +105 -55
- package/dist/packages/build-plans/package/user-build-plans.js +1 -1
- package/dist/packages/contracts/index.d.ts +5 -2
- package/dist/packages/contracts/index.js +3 -1
- package/dist/packages/contracts/lib/context-graph-layer.d.ts +161 -0
- package/dist/packages/contracts/lib/context-graph-layer.js +216 -0
- package/dist/packages/contracts/lib/project-paths.d.ts +144 -0
- package/dist/packages/contracts/lib/project-paths.js +220 -0
- package/dist/packages/contracts/lib/project-schema.d.ts +423 -0
- package/dist/packages/contracts/lib/project-schema.js +138 -0
- package/dist/packages/contracts/lib/schema.d.ts +1273 -81
- package/dist/packages/contracts/lib/schema.js +675 -79
- package/dist/packages/contracts/utils/filesystem.d.ts +1 -0
- package/dist/packages/contracts/utils/filesystem.js +29 -1
- package/dist/packages/contracts/utils/parse.js +67 -0
- package/dist/packages/projects/index.d.ts +6 -0
- package/dist/packages/{project → projects}/index.js +0 -3
- package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
- package/dist/packages/{project → projects}/interf-detect.js +56 -50
- package/dist/packages/projects/interf.d.ts +2 -0
- package/dist/packages/projects/interf.js +1 -0
- package/dist/packages/projects/lib/schema.d.ts +77 -0
- package/dist/packages/projects/lib/schema.js +91 -0
- package/dist/packages/projects/source-config.d.ts +53 -0
- package/dist/packages/projects/source-config.js +339 -0
- package/dist/packages/projects/source-folders.d.ts +11 -0
- package/dist/packages/{project → projects}/source-folders.js +26 -26
- package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
- package/dist/packages/{engine → runtime}/action-planner.js +20 -22
- package/dist/packages/runtime/action-values.d.ts +1 -0
- package/dist/packages/runtime/action-values.js +1 -0
- package/dist/packages/runtime/actions/errors.d.ts +2 -0
- package/dist/packages/runtime/actions/errors.js +12 -0
- package/dist/packages/runtime/actions/fields.d.ts +86 -0
- package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
- package/dist/packages/runtime/actions/form-builders.js +667 -0
- package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
- package/dist/packages/runtime/actions/form-validators.js +134 -0
- package/dist/packages/runtime/actions/helpers.d.ts +11 -0
- package/dist/packages/runtime/actions/helpers.js +80 -0
- package/dist/packages/runtime/actions/index.d.ts +8 -0
- package/dist/packages/runtime/actions/index.js +11 -0
- package/dist/packages/runtime/actions/registry.d.ts +64 -0
- package/dist/packages/runtime/actions/registry.js +62 -0
- package/dist/packages/runtime/actions/requests.d.ts +45 -0
- package/dist/packages/runtime/actions/requests.js +164 -0
- package/dist/packages/runtime/actions/schemas.d.ts +161 -0
- package/dist/packages/runtime/actions/schemas.js +37 -0
- package/dist/packages/runtime/agent-handoff.d.ts +11 -0
- package/dist/packages/runtime/agent-handoff.js +102 -0
- package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
- package/dist/packages/{engine → runtime}/agents/index.js +1 -2
- package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
- package/dist/packages/runtime/agents/lib/args.js +24 -0
- package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
- package/dist/packages/runtime/agents/lib/constants.js +13 -0
- package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
- package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
- package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
- package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
- package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +14 -0
- package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +31 -14
- package/dist/packages/{engine → runtime}/agents/lib/execution.js +22 -6
- package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +1 -0
- package/dist/packages/{engine → runtime}/agents/lib/executors.js +11 -2
- package/dist/packages/runtime/agents/lib/logs.d.ts +12 -0
- package/dist/packages/runtime/agents/lib/logs.js +41 -0
- package/dist/packages/{engine → runtime}/agents/lib/preflight.js +19 -14
- package/dist/packages/runtime/agents/lib/render.d.ts +26 -0
- package/dist/packages/{engine → runtime}/agents/lib/render.js +48 -22
- package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
- package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
- package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
- package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
- package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
- package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
- package/dist/packages/runtime/agents/lib/shell-templates.js +494 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
- package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
- package/dist/packages/runtime/agents/lib/shells.d.ts +92 -0
- package/dist/packages/runtime/agents/lib/shells.js +509 -0
- package/dist/packages/runtime/agents/lib/source-context-scan.d.ts +10 -0
- package/dist/packages/runtime/agents/lib/source-context-scan.js +388 -0
- package/dist/packages/{engine → runtime}/agents/lib/status.js +1 -14
- package/dist/packages/runtime/agents/lib/string-utils.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/string-utils.js +36 -0
- package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +1 -0
- package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
- package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
- package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
- package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
- package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
- package/dist/packages/runtime/agents/providers/codex.js +66 -0
- package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/cursor.js +24 -0
- package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
- package/dist/packages/runtime/agents/providers/index.js +31 -0
- package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
- package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
- package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
- package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
- package/dist/packages/{engine → runtime}/agents/role-executors.js +9 -7
- package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
- package/dist/packages/runtime/auth/account-context.d.ts +52 -0
- package/dist/packages/runtime/auth/account-context.js +68 -0
- package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
- package/dist/packages/runtime/auth/auth-flow.js +189 -0
- package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
- package/dist/packages/runtime/auth/jwt-validator.js +86 -0
- package/dist/packages/runtime/auth/keychain.d.ts +35 -0
- package/dist/packages/runtime/auth/keychain.js +85 -0
- package/dist/packages/runtime/auth/session-store.d.ts +38 -0
- package/dist/packages/runtime/auth/session-store.js +96 -0
- package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
- package/dist/packages/runtime/auth/workos-client.js +87 -0
- package/dist/packages/runtime/benchmark-question-draft.d.ts +23 -0
- package/dist/packages/runtime/benchmark-question-draft.js +153 -0
- package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
- package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
- package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +6 -6
- package/dist/packages/{engine → runtime}/build/artifact-status.js +26 -24
- package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
- package/dist/packages/runtime/build/atomic-fs.js +95 -0
- package/dist/packages/runtime/build/billing-events.d.ts +78 -0
- package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
- package/dist/packages/runtime/build/build-evidence.d.ts +16 -0
- package/dist/packages/runtime/build/build-evidence.js +179 -0
- package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
- package/dist/packages/runtime/build/build-pipeline.js +388 -0
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
- package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
- package/dist/packages/runtime/build/build-plan-runs.js +31 -0
- package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
- package/dist/packages/runtime/build/build-stage-plan.js +101 -0
- package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
- package/dist/packages/runtime/build/build-stage-runner.js +302 -0
- package/dist/packages/{engine → runtime}/build/build-target.d.ts +7 -4
- package/dist/packages/runtime/build/build-target.js +40 -0
- package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
- package/dist/packages/runtime/build/check-evaluator.js +1226 -0
- package/dist/packages/runtime/build/context-graph-paths.d.ts +64 -0
- package/dist/packages/runtime/build/context-graph-paths.js +160 -0
- package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
- package/dist/packages/runtime/build/context-graph-schema.js +39 -0
- package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
- package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
- package/dist/packages/{engine → runtime}/build/index.d.ts +7 -5
- package/dist/packages/{engine → runtime}/build/index.js +7 -5
- package/dist/packages/runtime/build/inspect-map.d.ts +10 -0
- package/dist/packages/runtime/build/inspect-map.js +270 -0
- package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +449 -123
- package/dist/packages/runtime/build/lib/schema.js +494 -0
- package/dist/packages/runtime/build/native-entrypoint.d.ts +2 -0
- package/dist/packages/runtime/build/native-entrypoint.js +286 -0
- package/dist/packages/runtime/build/reset.d.ts +2 -0
- package/dist/packages/runtime/build/reset.js +62 -0
- package/dist/packages/{engine → runtime}/build/runtime-contracts.js +13 -7
- package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
- package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
- package/dist/packages/runtime/build/runtime-log-paths.d.ts +3 -0
- package/dist/packages/runtime/build/runtime-log-paths.js +16 -0
- package/dist/packages/{engine → runtime}/build/runtime-prompt.js +12 -9
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
- package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
- package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
- package/dist/packages/runtime/build/runtime-runs.js +318 -0
- package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +9 -6
- package/dist/packages/runtime/build/runtime-types.js +1 -0
- package/dist/packages/runtime/build/runtime.d.ts +8 -0
- package/dist/packages/runtime/build/runtime.js +7 -0
- package/dist/packages/runtime/build/source-files.d.ts +58 -0
- package/dist/packages/runtime/build/source-files.js +193 -0
- package/dist/packages/runtime/build/source-inventory.d.ts +28 -0
- package/dist/packages/runtime/build/source-inventory.js +512 -0
- package/dist/packages/runtime/build/source-manifest.d.ts +63 -0
- package/dist/packages/runtime/build/source-manifest.js +220 -0
- package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
- package/dist/packages/runtime/build/stage-evidence.js +386 -0
- package/dist/packages/runtime/build/stage-manifest.d.ts +45 -0
- package/dist/packages/runtime/build/stage-manifest.js +1125 -0
- package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
- package/dist/packages/runtime/build/stage-reuse.js +154 -0
- package/dist/packages/runtime/build/stage-session.d.ts +81 -0
- package/dist/packages/runtime/build/stage-session.js +308 -0
- package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
- package/dist/packages/runtime/build/state-artifacts.js +14 -0
- package/dist/packages/runtime/build/state-health.d.ts +4 -0
- package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
- package/dist/packages/runtime/build/state-io.d.ts +12 -0
- package/dist/packages/runtime/build/state-io.js +118 -0
- package/dist/packages/runtime/build/state-view.d.ts +5 -0
- package/dist/packages/runtime/build/state-view.js +121 -0
- package/dist/packages/runtime/build/state.d.ts +7 -0
- package/dist/packages/runtime/build/state.js +12 -0
- package/dist/packages/runtime/build/summary-coverage-index.d.ts +21 -0
- package/dist/packages/runtime/build/summary-coverage-index.js +189 -0
- package/dist/packages/runtime/build/traces.d.ts +30 -0
- package/dist/packages/runtime/build/traces.js +133 -0
- package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
- package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +49 -36
- package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
- package/dist/packages/{engine → runtime}/build/validate.js +26 -26
- package/dist/packages/{engine → runtime}/client.d.ts +18 -18
- package/dist/packages/{engine → runtime}/client.js +48 -36
- package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
- package/dist/packages/{engine → runtime}/connection-config.js +9 -8
- package/dist/packages/runtime/context-checks.d.ts +10 -0
- package/dist/packages/runtime/context-checks.js +127 -0
- package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
- package/dist/packages/runtime/context-graph-scaffold.js +135 -0
- package/dist/packages/runtime/context-graph-semantic-graph.d.ts +9 -0
- package/dist/packages/runtime/context-graph-semantic-graph.js +416 -0
- package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
- package/dist/packages/runtime/entitlement-guard.js +70 -0
- package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/execution/index.js +1 -1
- package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +272 -191
- package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
- package/dist/packages/runtime/index.d.ts +29 -0
- package/dist/packages/runtime/index.js +21 -0
- package/dist/packages/runtime/instance-paths.d.ts +30 -0
- package/dist/packages/runtime/instance-paths.js +29 -0
- package/dist/packages/runtime/native-run-handlers.d.ts +63 -0
- package/dist/packages/{engine → runtime}/native-run-handlers.js +217 -166
- package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
- package/dist/packages/runtime/plan-artifact-contract.js +42 -0
- package/dist/packages/runtime/project-entries.d.ts +11 -0
- package/dist/packages/runtime/project-entries.js +49 -0
- package/dist/packages/runtime/project-source-state.d.ts +26 -0
- package/dist/packages/runtime/project-source-state.js +56 -0
- package/dist/packages/runtime/project-store.d.ts +90 -0
- package/dist/packages/runtime/project-store.js +195 -0
- package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
- package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
- package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
- package/dist/packages/{engine → runtime}/run-observability.js +174 -87
- package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
- package/dist/packages/runtime/runtime-action-proposals.js +542 -0
- package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
- package/dist/packages/runtime/runtime-build-plans.js +175 -0
- package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
- package/dist/packages/runtime/runtime-build-runs.js +555 -0
- package/dist/packages/runtime/runtime-caches.d.ts +117 -0
- package/dist/packages/runtime/runtime-caches.js +266 -0
- package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
- package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
- package/dist/packages/runtime/runtime-executor.d.ts +22 -0
- package/dist/packages/runtime/runtime-executor.js +131 -0
- package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
- package/dist/packages/runtime/runtime-jobs.js +463 -0
- package/dist/packages/runtime/runtime-observability.d.ts +11 -0
- package/dist/packages/runtime/runtime-observability.js +39 -0
- package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
- package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
- package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
- package/dist/packages/runtime/runtime-project-mutations.js +65 -0
- package/dist/packages/runtime/runtime-project-reads.d.ts +18 -0
- package/dist/packages/runtime/runtime-project-reads.js +574 -0
- package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
- package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
- package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +23 -16
- package/dist/packages/{engine → runtime}/runtime-resource-builders.js +58 -46
- package/dist/packages/runtime/runtime-status.d.ts +14 -0
- package/dist/packages/runtime/runtime-status.js +15 -0
- package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
- package/dist/packages/runtime/runtime-verify-runs.js +296 -0
- package/dist/packages/runtime/runtime.d.ts +1582 -0
- package/dist/packages/runtime/runtime.js +431 -0
- package/dist/packages/runtime/schemas/actions.d.ts +1206 -0
- package/dist/packages/runtime/schemas/actions.js +117 -0
- package/dist/packages/runtime/schemas/agents.d.ts +104 -0
- package/dist/packages/runtime/schemas/agents.js +74 -0
- package/dist/packages/runtime/schemas/build-plans.d.ts +1132 -0
- package/dist/packages/runtime/schemas/build-plans.js +141 -0
- package/dist/packages/runtime/schemas/context-graphs.d.ts +1522 -0
- package/dist/packages/runtime/schemas/context-graphs.js +110 -0
- package/dist/packages/runtime/schemas/files.d.ts +227 -0
- package/dist/packages/runtime/schemas/files.js +28 -0
- package/dist/packages/runtime/schemas/index.d.ts +9 -0
- package/dist/packages/runtime/schemas/index.js +13 -0
- package/dist/packages/runtime/schemas/instance.d.ts +141 -0
- package/dist/packages/runtime/schemas/instance.js +143 -0
- package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
- package/dist/packages/runtime/schemas/jobs.js +107 -0
- package/dist/packages/runtime/schemas/projects.d.ts +366 -0
- package/dist/packages/runtime/schemas/projects.js +160 -0
- package/dist/packages/runtime/schemas/runs.d.ts +3445 -0
- package/dist/packages/runtime/schemas/runs.js +115 -0
- package/dist/packages/runtime/service/index.d.ts +3 -0
- package/dist/packages/runtime/service/index.js +3 -0
- package/dist/packages/runtime/service/openapi.d.ts +7 -0
- package/dist/packages/runtime/service/openapi.js +118 -0
- package/dist/packages/runtime/service/operations.d.ts +3011 -0
- package/dist/packages/runtime/service/operations.js +375 -0
- package/dist/packages/runtime/service/routes.d.ts +114 -0
- package/dist/packages/runtime/service/routes.js +128 -0
- package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
- package/dist/packages/runtime/service/server-api-files.js +85 -0
- package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
- package/dist/packages/runtime/service/server-app-boot.js +46 -0
- package/dist/packages/runtime/service/server-guards.d.ts +63 -0
- package/dist/packages/runtime/service/server-guards.js +181 -0
- package/dist/packages/runtime/service/server-helpers.d.ts +38 -0
- package/dist/packages/runtime/service/server-helpers.js +108 -0
- package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
- package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.js +45 -0
- package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-agents.js +132 -0
- package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
- package/dist/packages/runtime/service/server-routes-auth.js +138 -0
- package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-build-plans.js +86 -0
- package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
- package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
- package/dist/packages/runtime/service/server-routes-events.js +99 -0
- package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-context.js +287 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
- package/dist/packages/runtime/service/server-routes-project-jobs.js +137 -0
- package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
- package/dist/packages/runtime/service/server-routes-project-runs.js +88 -0
- package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
- package/dist/packages/runtime/service/server-routes-projects.js +96 -0
- package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
- package/dist/packages/runtime/service/server-routes-runs.js +119 -0
- package/dist/packages/runtime/service/server.d.ts +37 -0
- package/dist/packages/runtime/service/server.js +300 -0
- package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
- package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
- package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
- package/dist/packages/runtime/verify/benchmark-run.js +303 -0
- package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
- package/dist/packages/{engine → runtime}/verify/index.js +1 -1
- package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
- package/dist/packages/{engine → runtime}/verify/lib/schema.js +38 -18
- package/dist/packages/runtime/verify/test-file-guard.d.ts +2 -0
- package/dist/packages/runtime/verify/test-file-guard.js +29 -0
- package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +7 -0
- package/dist/packages/{engine → runtime}/verify/verify-execution.js +119 -45
- package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +5 -4
- package/dist/packages/runtime/verify/verify-paths.js +65 -0
- package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
- package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
- package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
- package/dist/packages/runtime/verify/verify-specs.js +126 -0
- package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
- package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
- package/dist/packages/runtime/verify/verify-types.js +1 -0
- package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
- package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
- package/dist/packages/runtime/wire-schemas.d.ts +18 -0
- package/dist/packages/runtime/wire-schemas.js +27 -0
- package/package.json +32 -30
- package/public-repo/CONTRIBUTING.md +16 -18
- package/public-repo/README.md +119 -282
- package/public-repo/SECURITY.md +3 -4
- package/public-repo/build-plans/interf-default/README.md +24 -16
- package/public-repo/build-plans/interf-default/build/stages/entrypoint/SKILL.md +74 -0
- package/public-repo/build-plans/interf-default/build/stages/knowledge/SKILL.md +95 -0
- package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +49 -4
- package/public-repo/build-plans/interf-default/build-plan.json +49 -39
- package/public-repo/build-plans/interf-default/build-plan.schema.json +59 -33
- package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
- package/public-repo/build-plans/interf-default/use/query/SKILL.md +18 -11
- package/public-repo/openapi/local-service.openapi.json +14227 -0
- package/public-repo/skills/interf/SKILL.md +508 -187
- package/dist/cli/commands/prep.d.ts +0 -2
- package/dist/cli/commands/prep.js +0 -240
- package/dist/cli/commands/test.d.ts +0 -10
- package/dist/cli/commands/test.js +0 -85
- package/dist/cli/commands/web.d.ts +0 -2
- package/dist/cli/commands/web.js +0 -286
- package/dist/interf-ui/404.html +0 -1
- package/dist/interf-ui/__next.__PAGE__.txt +0 -10
- package/dist/interf-ui/__next._full.txt +0 -20
- package/dist/interf-ui/__next._head.txt +0 -5
- package/dist/interf-ui/__next._index.txt +0 -5
- package/dist/interf-ui/__next._tree.txt +0 -5
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_buildManifest.js +0 -11
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_clientMiddlewareManifest.js +0 -1
- package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_ssgManifest.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
- package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
- package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
- package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
- package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
- package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
- package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
- package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
- package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
- package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
- package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
- package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
- package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
- package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
- package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
- package/dist/interf-ui/_not-found/__next._full.txt +0 -15
- package/dist/interf-ui/_not-found/__next._head.txt +0 -5
- package/dist/interf-ui/_not-found/__next._index.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
- package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
- package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
- package/dist/interf-ui/_not-found.html +0 -1
- package/dist/interf-ui/_not-found.txt +0 -15
- package/dist/interf-ui/index.html +0 -1
- package/dist/interf-ui/index.txt +0 -20
- package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
- package/dist/packages/contracts/lib/preparation-paths.js +0 -177
- package/dist/packages/engine/action-definitions.d.ts +0 -407
- package/dist/packages/engine/action-definitions.js +0 -1158
- package/dist/packages/engine/action-values.d.ts +0 -1
- package/dist/packages/engine/action-values.js +0 -1
- package/dist/packages/engine/agents/lib/args.d.ts +0 -4
- package/dist/packages/engine/agents/lib/args.js +0 -52
- package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
- package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
- package/dist/packages/engine/agents/lib/constants.js +0 -28
- package/dist/packages/engine/agents/lib/logs.d.ts +0 -2
- package/dist/packages/engine/agents/lib/logs.js +0 -17
- package/dist/packages/engine/agents/lib/render.d.ts +0 -8
- package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
- package/dist/packages/engine/agents/lib/schema.js +0 -7
- package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
- package/dist/packages/engine/agents/lib/shells.js +0 -1052
- package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
- package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
- package/dist/packages/engine/build/billing-events.d.ts +0 -89
- package/dist/packages/engine/build/build-pipeline.js +0 -175
- package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
- package/dist/packages/engine/build/build-plan-runs.js +0 -31
- package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
- package/dist/packages/engine/build/build-stage-plan.js +0 -100
- package/dist/packages/engine/build/build-stage-runner.js +0 -94
- package/dist/packages/engine/build/build-target.js +0 -16
- package/dist/packages/engine/build/check-evaluator.js +0 -298
- package/dist/packages/engine/build/lib/schema.js +0 -316
- package/dist/packages/engine/build/reset.d.ts +0 -2
- package/dist/packages/engine/build/reset.js +0 -74
- package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
- package/dist/packages/engine/build/runtime-paths.d.ts +0 -8
- package/dist/packages/engine/build/runtime-paths.js +0 -26
- package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
- package/dist/packages/engine/build/runtime-runs.js +0 -224
- package/dist/packages/engine/build/runtime.d.ts +0 -5
- package/dist/packages/engine/build/runtime.js +0 -4
- package/dist/packages/engine/build/source-files.d.ts +0 -46
- package/dist/packages/engine/build/source-files.js +0 -149
- package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
- package/dist/packages/engine/build/state-artifacts.js +0 -14
- package/dist/packages/engine/build/state-health.d.ts +0 -4
- package/dist/packages/engine/build/state-io.d.ts +0 -11
- package/dist/packages/engine/build/state-io.js +0 -82
- package/dist/packages/engine/build/state-paths.d.ts +0 -5
- package/dist/packages/engine/build/state-paths.js +0 -16
- package/dist/packages/engine/build/state-view.d.ts +0 -5
- package/dist/packages/engine/build/state-view.js +0 -94
- package/dist/packages/engine/build/state.d.ts +0 -7
- package/dist/packages/engine/build/state.js +0 -12
- package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
- package/dist/packages/engine/build/validate-helpers.js +0 -41
- package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
- package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
- package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
- package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
- package/dist/packages/engine/cloud-seams.d.ts +0 -115
- package/dist/packages/engine/cloud-seams.js +0 -84
- package/dist/packages/engine/index.d.ts +0 -22
- package/dist/packages/engine/index.js +0 -15
- package/dist/packages/engine/instance-paths.d.ts +0 -106
- package/dist/packages/engine/instance-paths.js +0 -171
- package/dist/packages/engine/lib/schema.d.ts +0 -6304
- package/dist/packages/engine/lib/schema.js +0 -730
- package/dist/packages/engine/native-run-handlers.d.ts +0 -25
- package/dist/packages/engine/preparation-store.d.ts +0 -105
- package/dist/packages/engine/preparation-store.js +0 -213
- package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
- package/dist/packages/engine/readiness-check-draft.js +0 -111
- package/dist/packages/engine/requested-artifacts.d.ts +0 -5
- package/dist/packages/engine/routes.d.ts +0 -85
- package/dist/packages/engine/routes.js +0 -99
- package/dist/packages/engine/runtime-caches.d.ts +0 -76
- package/dist/packages/engine/runtime-caches.js +0 -191
- package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
- package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
- package/dist/packages/engine/runtime.d.ts +0 -371
- package/dist/packages/engine/runtime.js +0 -2463
- package/dist/packages/engine/server.d.ts +0 -58
- package/dist/packages/engine/server.js +0 -1399
- package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
- package/dist/packages/engine/verify/readiness-check-run.js +0 -265
- package/dist/packages/engine/verify/verify-paths.js +0 -61
- package/dist/packages/engine/verify/verify-sandbox.js +0 -88
- package/dist/packages/engine/verify/verify-specs.js +0 -114
- package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
- package/dist/packages/engine/wire-schemas.d.ts +0 -547
- package/dist/packages/engine/wire-schemas.js +0 -59
- package/dist/packages/project/index.d.ts +0 -9
- package/dist/packages/project/interf-bootstrap.d.ts +0 -1
- package/dist/packages/project/interf-bootstrap.js +0 -1
- package/dist/packages/project/interf-scaffold.d.ts +0 -3
- package/dist/packages/project/interf-scaffold.js +0 -136
- package/dist/packages/project/interf.d.ts +0 -4
- package/dist/packages/project/interf.js +0 -3
- package/dist/packages/project/lib/schema.d.ts +0 -328
- package/dist/packages/project/lib/schema.js +0 -136
- package/dist/packages/project/preparation-entries.d.ts +0 -11
- package/dist/packages/project/preparation-entries.js +0 -49
- package/dist/packages/project/source-config.d.ts +0 -46
- package/dist/packages/project/source-config.js +0 -394
- package/dist/packages/project/source-folders.d.ts +0 -11
- package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +0 -27
- package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +0 -21
- package/public-repo/plugins/README.md +0 -9
- package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
- package/public-repo/plugins/interf/.mcp.json +0 -12
- package/public-repo/plugins/interf/README.md +0 -32
- package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
- /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
- /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
- /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
- /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
- /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* The Context Graph layer model — defined ONCE here and imported by every
|
|
4
|
+
* consumer (Build Plan authoring validation, package validation, StageManifest
|
|
5
|
+
* role inference, the graph-relative link scanner, and the deterministic check
|
|
6
|
+
* defaults). This is the single source of truth for "what are the canonical
|
|
7
|
+
* top-level layers of a Context Graph, and how does a path classify into one."
|
|
8
|
+
*
|
|
9
|
+
* The architecture is FIXED top-level layers / FLEXIBLE interior:
|
|
10
|
+
* - `summaries/` — the grounding/coverage layer (one folder per Source file).
|
|
11
|
+
* - `knowledge/` — the knowledge graph layer; its interior is free
|
|
12
|
+
* (`knowledge/claims/`, `knowledge/entities/`, `knowledge/timelines/`, …).
|
|
13
|
+
* - `artifacts/` — task handoffs / supplemental entrypoints.
|
|
14
|
+
* - `home.md` — the primary entrypoint spine file (exact, no children).
|
|
15
|
+
*
|
|
16
|
+
* Two faces, one definition:
|
|
17
|
+
* - The canonical lowercase set (`CANONICAL_LAYER_DIRS`, `CanonicalLayerSchema`,
|
|
18
|
+
* `isCanonicalLayerDeclaration`) is what a Build Plan may DECLARE. Authoring
|
|
19
|
+
* is strict: a layer must be declared in exact lowercase (`knowledge/`, not
|
|
20
|
+
* `Knowledge/`).
|
|
21
|
+
* - The tolerant classifier (`layerForPath`, `roleForLayerPath`) is DEFENSIVE
|
|
22
|
+
* POLICING of already-built (possibly hand-edited or bad) outputs. It is
|
|
23
|
+
* case-insensitive so a graph that shipped `Knowledge/` notes is still
|
|
24
|
+
* routed into the knowledge layer and still policed by the orphan / web
|
|
25
|
+
* gates — casing can never be used to dodge a gate. Classification only ever
|
|
26
|
+
* widens membership; it never narrows it.
|
|
27
|
+
*/
|
|
28
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
29
|
+
// Canonical directory layers
|
|
30
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
31
|
+
/**
|
|
32
|
+
* The three canonical top-level DIRECTORY layers, in lockstep lowercase. These
|
|
33
|
+
* are the only top-level folders a Build Plan may declare for core derived
|
|
34
|
+
* content. `home.md` is the spine FILE and is handled separately (it is not a
|
|
35
|
+
* directory layer).
|
|
36
|
+
*/
|
|
37
|
+
export const CANONICAL_LAYER_DIRS = ["summaries", "knowledge", "artifacts"];
|
|
38
|
+
/**
|
|
39
|
+
* Set form of the canonical directory layers, for membership tests at call
|
|
40
|
+
* sites (authoring guard, package validation) that previously hand-rolled their
|
|
41
|
+
* own `new Set(["summaries", "knowledge", "artifacts"])`.
|
|
42
|
+
*/
|
|
43
|
+
export const CANONICAL_LAYER_DIR_SET = new Set(CANONICAL_LAYER_DIRS);
|
|
44
|
+
/**
|
|
45
|
+
* The canonical layer "label" a path resolves to. Mirrors the directory layers
|
|
46
|
+
* plus `home` (the spine) and `other` (anything outside the canonical
|
|
47
|
+
* skeleton). This is the layer identity used for role inference and per-layer
|
|
48
|
+
* rollups.
|
|
49
|
+
*/
|
|
50
|
+
export const CanonicalLayerSchema = z.enum([
|
|
51
|
+
"summaries",
|
|
52
|
+
"knowledge",
|
|
53
|
+
"artifacts",
|
|
54
|
+
"home",
|
|
55
|
+
"other",
|
|
56
|
+
]);
|
|
57
|
+
/**
|
|
58
|
+
* The exact spine file name. Canonical only as the top-level file `home.md`
|
|
59
|
+
* with no children.
|
|
60
|
+
*/
|
|
61
|
+
export const HOME_SPINE_FILE = "home.md";
|
|
62
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
63
|
+
// Path normalization
|
|
64
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
65
|
+
/**
|
|
66
|
+
* Normalize a path to forward slashes with no leading `./` and no trailing
|
|
67
|
+
* slashes. Shared so every consumer normalizes identically before classifying
|
|
68
|
+
* — a layer must not depend on `\` vs `/` or a stray trailing separator.
|
|
69
|
+
*/
|
|
70
|
+
export function normalizeLayerPath(value) {
|
|
71
|
+
return value
|
|
72
|
+
.replaceAll("\\", "/")
|
|
73
|
+
.replace(/^\.\/+/, "")
|
|
74
|
+
.replace(/\/+$/g, "");
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The FIRST path segment of a normalized path (the top-level folder, or the
|
|
78
|
+
* file name when the path is a bare top-level file). Empty string for an empty
|
|
79
|
+
* path. Layer membership keys off this segment only, so the entire interior of
|
|
80
|
+
* `knowledge/` is unconstrained.
|
|
81
|
+
*/
|
|
82
|
+
export function topLevelSegment(value) {
|
|
83
|
+
const normalized = normalizeLayerPath(value);
|
|
84
|
+
if (normalized.length === 0)
|
|
85
|
+
return "";
|
|
86
|
+
return normalized.split("/")[0] ?? "";
|
|
87
|
+
}
|
|
88
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
89
|
+
// Authoring face — strict, exact-lowercase declarations
|
|
90
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
91
|
+
/**
|
|
92
|
+
* Is `segment` an EXACT canonical layer declaration a Build Plan may use? Used
|
|
93
|
+
* by authoring validation. Strict: `knowledge` passes, `Knowledge` does NOT.
|
|
94
|
+
* The mixed-case form is rejected at authoring so a declaration can never pass
|
|
95
|
+
* authoring and then break the lowercase-path-based package validators and
|
|
96
|
+
* runtime scanners downstream.
|
|
97
|
+
*/
|
|
98
|
+
export function isCanonicalLayerDeclaration(segment) {
|
|
99
|
+
return CANONICAL_LAYER_DIRS.includes(segment);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Is this normalized top-level path a legal canonical DECLARATION? Accepts the
|
|
103
|
+
* exact lowercase layer dirs (and their interiors, since only the first segment
|
|
104
|
+
* is checked) and the exact spine file `home.md`. Strict on case. A non-path
|
|
105
|
+
* artifact (no folder) is the caller's concern; this only judges path shape.
|
|
106
|
+
*/
|
|
107
|
+
export function isCanonicalDeclarationPath(rawPath) {
|
|
108
|
+
const normalized = normalizeLayerPath(rawPath);
|
|
109
|
+
if (normalized.length === 0)
|
|
110
|
+
return false;
|
|
111
|
+
const segment = topLevelSegment(normalized);
|
|
112
|
+
// `home.md` is canonical only as the exact top-level spine file (no children).
|
|
113
|
+
if (segment === HOME_SPINE_FILE && normalized === segment)
|
|
114
|
+
return true;
|
|
115
|
+
return isCanonicalLayerDeclaration(segment);
|
|
116
|
+
}
|
|
117
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
118
|
+
// Policing face — tolerant, case-insensitive classification
|
|
119
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
120
|
+
/**
|
|
121
|
+
* Classify any path into its canonical layer. Case-INSENSITIVE on the top-level
|
|
122
|
+
* segment: a custom plan (or a hand-edited output) writing notes into
|
|
123
|
+
* `Knowledge/` (or `Summaries/`/`Artifacts/`) still classifies into the right
|
|
124
|
+
* layer, so the orphan + web + connectivity gates can't be dodged by path
|
|
125
|
+
* casing. Canonical layers are lowercase; this only WIDENS membership, never
|
|
126
|
+
* narrows it, and is the single classifier every consumer (note role, stage
|
|
127
|
+
* role, disconnected/web checks, metrics) routes through.
|
|
128
|
+
*
|
|
129
|
+
* Returns `home` for the spine file, a directory layer for `summaries/`,
|
|
130
|
+
* `knowledge/`, `artifacts/`, and `other` for anything else.
|
|
131
|
+
*/
|
|
132
|
+
export function layerForPath(rawPath) {
|
|
133
|
+
const lower = normalizeLayerPath(rawPath).toLowerCase();
|
|
134
|
+
if (lower.length === 0)
|
|
135
|
+
return "other";
|
|
136
|
+
if (lower === HOME_SPINE_FILE)
|
|
137
|
+
return "home";
|
|
138
|
+
const segment = lower.split("/")[0] ?? "";
|
|
139
|
+
if (CANONICAL_LAYER_DIRS.includes(segment)) {
|
|
140
|
+
return segment;
|
|
141
|
+
}
|
|
142
|
+
return "other";
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The directory layer (or `null`) a check should scan for a given artifact
|
|
146
|
+
* target path. `home` and `other` have no scannable directory layer, so they
|
|
147
|
+
* return `null`; the three directory layers return their lowercase dir name.
|
|
148
|
+
* Used by the deterministic checks to derive their scan root from the artifact
|
|
149
|
+
* they are attached to instead of hardcoding a layer dir.
|
|
150
|
+
*/
|
|
151
|
+
export function layerDirForPath(rawPath) {
|
|
152
|
+
const layer = layerForPath(rawPath);
|
|
153
|
+
return layer === "home" || layer === "other" ? null : layer;
|
|
154
|
+
}
|
|
155
|
+
export function knowledgeNoteKind(rawPath) {
|
|
156
|
+
const normalized = normalizeLayerPath(rawPath).toLowerCase();
|
|
157
|
+
const leaf = normalized.split("/").pop() ?? "";
|
|
158
|
+
if (normalized.startsWith("knowledge/claims/") || leaf.startsWith("claim-"))
|
|
159
|
+
return "claim";
|
|
160
|
+
if (normalized.startsWith("knowledge/entities/") || leaf.startsWith("entity-"))
|
|
161
|
+
return "entity";
|
|
162
|
+
if (normalized.startsWith("knowledge/indexes/") || leaf.startsWith("index-"))
|
|
163
|
+
return "index";
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
export function roleForLayer(layer) {
|
|
167
|
+
switch (layer) {
|
|
168
|
+
case "summaries":
|
|
169
|
+
return "summary";
|
|
170
|
+
case "knowledge":
|
|
171
|
+
return "knowledge";
|
|
172
|
+
case "artifacts":
|
|
173
|
+
case "home":
|
|
174
|
+
return "entrypoint";
|
|
175
|
+
case "other":
|
|
176
|
+
return "other";
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Role for a produced-note path (or any graph-relative path), via the tolerant
|
|
181
|
+
* classifier. This is the single mapping `roleForPath` callers route through.
|
|
182
|
+
*/
|
|
183
|
+
export function roleForLayerPath(rawPath) {
|
|
184
|
+
return roleForLayer(layerForPath(rawPath));
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Role for a Build Plan artifact's WRITE path. A directory artifact declared as
|
|
188
|
+
* a bare layer token (`knowledge`, `summaries`, `artifacts`) carries no
|
|
189
|
+
* trailing segment; it is still classified as that layer because classification
|
|
190
|
+
* keys off the (case-insensitive) first segment. The `home`/`home.md` spine is
|
|
191
|
+
* the entrypoint. This makes a custom plan that writes artifact id "claims" to
|
|
192
|
+
* path `knowledge/` (or the bare token `knowledge`) still classify as the
|
|
193
|
+
* knowledge layer, with no reliance on stringly ids.
|
|
194
|
+
*/
|
|
195
|
+
export function roleForWritePath(rawPath) {
|
|
196
|
+
const path = normalizeLayerPath(rawPath);
|
|
197
|
+
if (path === "home" || path === HOME_SPINE_FILE)
|
|
198
|
+
return "entrypoint";
|
|
199
|
+
return roleForLayerPath(path);
|
|
200
|
+
}
|
|
201
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
202
|
+
// Graph-relative link scanner
|
|
203
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
204
|
+
/**
|
|
205
|
+
* Matches a graph-relative reference to a canonical layer note inside free text
|
|
206
|
+
* (note bodies): `summaries/…`, `knowledge/…`, `artifacts/…` (optionally ending
|
|
207
|
+
* `.md`), or the exact `home.md`, when bounded by whitespace/brackets/quotes.
|
|
208
|
+
* Derived from `CANONICAL_LAYER_DIRS` so the scanner and the layer model can
|
|
209
|
+
* never list different folders. A fresh RegExp is returned each call because the
|
|
210
|
+
* pattern is stateful (`/g`) and reusing one instance across `matchAll` loops
|
|
211
|
+
* would carry `lastIndex` between callers.
|
|
212
|
+
*/
|
|
213
|
+
export function graphRelativePathPattern() {
|
|
214
|
+
const dirs = CANONICAL_LAYER_DIRS.join("|");
|
|
215
|
+
return new RegExp(`(?:^|[\\s"'([{<])((?:${dirs})\\/[A-Za-z0-9._~!$&*+,;=:@%/-]+(?:\\.md)?|${HOME_SPINE_FILE.replace(".", "\\.")})(?=$|[\\s"'\`)\\]}>.,;:])`, "g");
|
|
216
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source of truth for every Interf path on disk.
|
|
3
|
+
*
|
|
4
|
+
* Two roots, one helper per named location. Code never string-concatenates
|
|
5
|
+
* path segments to product locations; it calls the helper here.
|
|
6
|
+
*
|
|
7
|
+
* Branded string types catch "passed a Source Folder where I expected a
|
|
8
|
+
* Project Data Dir" at the type-checker level instead of at runtime.
|
|
9
|
+
*
|
|
10
|
+
* Two roots:
|
|
11
|
+
* - **Interf Home** (`~/.interf/`): per-user, cross-Project state. Holds
|
|
12
|
+
* the user-level Build Plan library and the central service registry.
|
|
13
|
+
* - **Project Data Dir**: a directory that IS a Project's state
|
|
14
|
+
* root. Holds `interf.json`, `build-plans/`, the Context Graph output, and
|
|
15
|
+
* the service-internal `.service/` scratch dir. The user's Source Folders
|
|
16
|
+
* are passed as `--source <path>` — they are inputs, not part of the
|
|
17
|
+
* Project data dir.
|
|
18
|
+
*
|
|
19
|
+
* No nested `interf/` namespace. The data dir IS the state root, full stop.
|
|
20
|
+
*/
|
|
21
|
+
/** Absolute path to `~/.interf/` (overridable via `INTERF_USER_HOME`). */
|
|
22
|
+
export type InterfHomeRoot = string & {
|
|
23
|
+
readonly __brand: "InterfHomeRoot";
|
|
24
|
+
};
|
|
25
|
+
/** Absolute path to a directory that IS a Project's state root. */
|
|
26
|
+
export type ProjectDataDir = string & {
|
|
27
|
+
readonly __brand: "ProjectDataDir";
|
|
28
|
+
};
|
|
29
|
+
/** Absolute path to a Source Folder — the user's input. Read-only by default. */
|
|
30
|
+
export type SourceFolderPath = string & {
|
|
31
|
+
readonly __brand: "SourceFolderPath";
|
|
32
|
+
};
|
|
33
|
+
/** Absolute path to a Context Graph output directory. */
|
|
34
|
+
export type ContextGraphPath = string & {
|
|
35
|
+
readonly __brand: "ContextGraphPath";
|
|
36
|
+
};
|
|
37
|
+
/** Project config filename. */
|
|
38
|
+
export declare const PROJECT_CONFIG_FILENAME = "interf.json";
|
|
39
|
+
/** The Context Graph state directory name (lives at `<context-graph>/.interf/`). */
|
|
40
|
+
export declare const CONTEXT_GRAPH_STATE_DIR = ".interf";
|
|
41
|
+
/** Build Plan packages directory name (Project drafts and user library). */
|
|
42
|
+
export declare const BUILD_PLANS_DIR = "build-plans";
|
|
43
|
+
/** Service-internal directory inside a Project data dir. */
|
|
44
|
+
export declare const SERVICE_DIR = ".service";
|
|
45
|
+
/** Service registry filename inside Interf Home. */
|
|
46
|
+
export declare const SERVICE_REGISTRY_FILENAME = "services.json";
|
|
47
|
+
/** Service jobs subdir. */
|
|
48
|
+
export declare const SERVICE_JOBS_DIR = "jobs";
|
|
49
|
+
/** Service action-proposals subdir. */
|
|
50
|
+
export declare const SERVICE_ACTION_PROPOSALS_DIR = "action-proposals";
|
|
51
|
+
/** Service action-plans subdir. */
|
|
52
|
+
export declare const SERVICE_ACTION_PLANS_DIR = "action-plans";
|
|
53
|
+
/** Tests directory inside a Project data dir. */
|
|
54
|
+
export declare const PROJECT_TESTS_DIR = "tests";
|
|
55
|
+
/** Per-run Context Graph output directory inside a Project data dir. */
|
|
56
|
+
export declare const CONTEXT_GRAPHS_DIR = "graphs";
|
|
57
|
+
/** Tests-spec subdir. */
|
|
58
|
+
export declare const PROJECT_TESTS_SPECS_DIR = "specs";
|
|
59
|
+
/** Per-Context Graph tests directory. */
|
|
60
|
+
export declare const CONTEXT_GRAPH_TESTS_DIR = "tests";
|
|
61
|
+
/** Per-Context Graph runtime directory. */
|
|
62
|
+
export declare const CONTEXT_GRAPH_RUNTIME_DIR = "runtime";
|
|
63
|
+
/** Per-Context Graph Build Plan package directory. */
|
|
64
|
+
export declare const CONTEXT_GRAPH_BUILD_PLAN_DIR = "build-plan";
|
|
65
|
+
/** Environment variable that overrides Interf Home for tests. */
|
|
66
|
+
export declare const INTERF_USER_HOME_ENV = "INTERF_USER_HOME";
|
|
67
|
+
/** Interf Home directory name under the OS home dir. */
|
|
68
|
+
export declare const INTERF_HOME_DIR = ".interf";
|
|
69
|
+
/** Projects directory inside Interf Home. */
|
|
70
|
+
export declare const PROJECTS_DIR = "projects";
|
|
71
|
+
/** CLI connection record filename inside Interf Home. */
|
|
72
|
+
export declare const CONNECTION_CONFIG_FILENAME = "connection.json";
|
|
73
|
+
export declare function asProjectDataDir(path: string): ProjectDataDir;
|
|
74
|
+
export declare function asSourceFolderPath(path: string): SourceFolderPath;
|
|
75
|
+
export declare function asContextGraphPath(path: string): ContextGraphPath;
|
|
76
|
+
/** `~/.interf/` (or `INTERF_USER_HOME` override). */
|
|
77
|
+
export declare function interfHomeRoot(): InterfHomeRoot;
|
|
78
|
+
/** `~/.interf/connection.json` — single CLI connection record. */
|
|
79
|
+
export declare function connectionConfigPath(): string;
|
|
80
|
+
/** `~/.interf/build-plans/` — user-level Build Plan library root. */
|
|
81
|
+
export declare function userBuildPlansRoot(): string;
|
|
82
|
+
/** `~/.interf/build-plans/<id>/` — a specific user-library Build Plan package. */
|
|
83
|
+
export declare function userBuildPlanPackagePath(buildPlanId: string): string;
|
|
84
|
+
/** `~/.interf/services.json` — central service registry. */
|
|
85
|
+
export declare function serviceRegistryPath(): string;
|
|
86
|
+
/** `~/.interf/projects/` — root for all Project state. */
|
|
87
|
+
export declare function projectsRoot(): string;
|
|
88
|
+
/** `~/.interf/projects/<project-id>/` — one Project state dir. */
|
|
89
|
+
export declare function projectDataDir(projectId: string): ProjectDataDir;
|
|
90
|
+
/** `<project-data>/interf.json` — Project config source of truth. */
|
|
91
|
+
export declare function projectConfigPath(projectDataDir: ProjectDataDir): string;
|
|
92
|
+
/** `<project-data>/build-plans/` — Project-draft Build Plan packages root. */
|
|
93
|
+
export declare function projectBuildPlansRoot(projectDataDir: ProjectDataDir): string;
|
|
94
|
+
/** `<project-data>/build-plans/<id>/` — a Project-draft Build Plan package. */
|
|
95
|
+
export declare function projectBuildPlanPackagePath(projectDataDir: ProjectDataDir, buildPlanId: string): string;
|
|
96
|
+
/** `<project-data>/<project-id>/` — legacy Project-level Context Graph root. */
|
|
97
|
+
export declare function projectContextGraphPath(projectDataDir: ProjectDataDir, projectName: string): ContextGraphPath;
|
|
98
|
+
/** `<project-data>/graphs/` — per-run Context Graph outputs root. */
|
|
99
|
+
export declare function projectContextGraphsRoot(projectDataDir: ProjectDataDir): string;
|
|
100
|
+
/** `<project-data>/graphs/<run-id>/` — one Build Run's Context Graph output. */
|
|
101
|
+
export declare function projectRunContextGraphPath(projectDataDir: ProjectDataDir, runId: string): ContextGraphPath;
|
|
102
|
+
/** `<project-data>/.service/` — service-owned scratch dir for jobs and proposals. */
|
|
103
|
+
export declare function projectServiceRoot(projectDataDir: ProjectDataDir): string;
|
|
104
|
+
/** `<project-data>/.service/jobs/`. */
|
|
105
|
+
export declare function projectServiceJobsRoot(projectDataDir: ProjectDataDir): string;
|
|
106
|
+
/**
|
|
107
|
+
* `<project-data>/.service/jobs/shells/` — preserved, inspectable execution
|
|
108
|
+
* shells for graph-less agent jobs (Build Plan draft/improve, benchmark-question
|
|
109
|
+
* draft). Each `LocalJobRun.result.shell_path` points at one frozen shell here,
|
|
110
|
+
* the graph-less analogue of a Context Graph's stage execution shells.
|
|
111
|
+
*/
|
|
112
|
+
export declare function projectServiceJobShellsRoot(projectDataDir: ProjectDataDir): string;
|
|
113
|
+
/** `<project-data>/.service/action-proposals/`. */
|
|
114
|
+
export declare function projectServiceActionProposalsRoot(projectDataDir: ProjectDataDir): string;
|
|
115
|
+
/** `<project-data>/.service/action-plans/`. */
|
|
116
|
+
export declare function projectServiceActionPlansRoot(projectDataDir: ProjectDataDir): string;
|
|
117
|
+
/** `<project-data>/.service/build-runs/` — Project activity index for Build Runs. */
|
|
118
|
+
export declare function projectServiceBuildRunsRoot(projectDataDir: ProjectDataDir): string;
|
|
119
|
+
/** `<project-data>/tests/specs/` — saved benchmark specs. */
|
|
120
|
+
export declare function projectTestsSpecsRoot(projectDataDir: ProjectDataDir): string;
|
|
121
|
+
/** `<context-graph>/.interf/`. */
|
|
122
|
+
export declare function contextGraphStateRoot(contextGraph: ContextGraphPath): string;
|
|
123
|
+
/** `<context-graph>/.interf/interf.json` — runtime contract. */
|
|
124
|
+
export declare function contextGraphConfigPath(contextGraph: ContextGraphPath): string;
|
|
125
|
+
/** `<context-graph>/.interf/build-plan/` — active Build Plan package inside Context Graph. */
|
|
126
|
+
export declare function contextGraphBuildPlanPath(contextGraph: ContextGraphPath): string;
|
|
127
|
+
/** `<context-graph>/.interf/runtime/`. */
|
|
128
|
+
export declare function contextGraphRuntimeRoot(contextGraph: ContextGraphPath): string;
|
|
129
|
+
/** `<context-graph>/.interf/tests/`. */
|
|
130
|
+
export declare function contextGraphTestsRoot(contextGraph: ContextGraphPath): string;
|
|
131
|
+
/** Test target labels: source-files (raw input) vs Context Graph. */
|
|
132
|
+
export type ProjectTestTargetLabel = "source-files" | "context-graph";
|
|
133
|
+
/** `<project-data>/<project>/.interf/tests/`. */
|
|
134
|
+
export declare function projectTestsRoot(projectDataDir: ProjectDataDir, projectName: string): string;
|
|
135
|
+
/** `<project-data>/<project>/.interf/tests/<target>/runs/`. */
|
|
136
|
+
export declare function projectTestRunsRoot(projectDataDir: ProjectDataDir, projectName: string, target: ProjectTestTargetLabel): string;
|
|
137
|
+
/** `<project-data>/<project>/.interf/tests/latest.json`. */
|
|
138
|
+
export declare function projectLatestBenchmarkRunPath(projectDataDir: ProjectDataDir, projectName: string): string;
|
|
139
|
+
/** `<project-data>/<project>/.interf/tests/latest.md`. */
|
|
140
|
+
export declare function projectLatestBenchmarkSummaryPath(projectDataDir: ProjectDataDir, projectName: string): string;
|
|
141
|
+
/** Normalize a free-form string into a stable, kebab-cased id (≤80 chars). */
|
|
142
|
+
export declare function normalizeProjectTestRunId(input: string): string;
|
|
143
|
+
/** `<project-data>/<project>/.interf/tests/<target>/runs/<timestamp>-<run-id>[-<suffix>].json`. */
|
|
144
|
+
export declare function projectTestRunPath(projectDataDir: ProjectDataDir, projectName: string, target: ProjectTestTargetLabel, generatedAt: string, runId: string, runSuffix?: string | null): string;
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source of truth for every Interf path on disk.
|
|
3
|
+
*
|
|
4
|
+
* Two roots, one helper per named location. Code never string-concatenates
|
|
5
|
+
* path segments to product locations; it calls the helper here.
|
|
6
|
+
*
|
|
7
|
+
* Branded string types catch "passed a Source Folder where I expected a
|
|
8
|
+
* Project Data Dir" at the type-checker level instead of at runtime.
|
|
9
|
+
*
|
|
10
|
+
* Two roots:
|
|
11
|
+
* - **Interf Home** (`~/.interf/`): per-user, cross-Project state. Holds
|
|
12
|
+
* the user-level Build Plan library and the central service registry.
|
|
13
|
+
* - **Project Data Dir**: a directory that IS a Project's state
|
|
14
|
+
* root. Holds `interf.json`, `build-plans/`, the Context Graph output, and
|
|
15
|
+
* the service-internal `.service/` scratch dir. The user's Source Folders
|
|
16
|
+
* are passed as `--source <path>` — they are inputs, not part of the
|
|
17
|
+
* Project data dir.
|
|
18
|
+
*
|
|
19
|
+
* No nested `interf/` namespace. The data dir IS the state root, full stop.
|
|
20
|
+
*/
|
|
21
|
+
import { homedir } from "node:os";
|
|
22
|
+
import { join } from "node:path";
|
|
23
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
24
|
+
// Constants — every named segment lives here, nowhere else
|
|
25
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
26
|
+
/** Project config filename. */
|
|
27
|
+
export const PROJECT_CONFIG_FILENAME = "interf.json";
|
|
28
|
+
/** The Context Graph state directory name (lives at `<context-graph>/.interf/`). */
|
|
29
|
+
export const CONTEXT_GRAPH_STATE_DIR = ".interf";
|
|
30
|
+
/** Build Plan packages directory name (Project drafts and user library). */
|
|
31
|
+
export const BUILD_PLANS_DIR = "build-plans";
|
|
32
|
+
/** Service-internal directory inside a Project data dir. */
|
|
33
|
+
export const SERVICE_DIR = ".service";
|
|
34
|
+
/** Service registry filename inside Interf Home. */
|
|
35
|
+
export const SERVICE_REGISTRY_FILENAME = "services.json";
|
|
36
|
+
/** Service jobs subdir. */
|
|
37
|
+
export const SERVICE_JOBS_DIR = "jobs";
|
|
38
|
+
/** Service action-proposals subdir. */
|
|
39
|
+
export const SERVICE_ACTION_PROPOSALS_DIR = "action-proposals";
|
|
40
|
+
/** Service action-plans subdir. */
|
|
41
|
+
export const SERVICE_ACTION_PLANS_DIR = "action-plans";
|
|
42
|
+
/** Tests directory inside a Project data dir. */
|
|
43
|
+
export const PROJECT_TESTS_DIR = "tests";
|
|
44
|
+
/** Per-run Context Graph output directory inside a Project data dir. */
|
|
45
|
+
export const CONTEXT_GRAPHS_DIR = "graphs";
|
|
46
|
+
/** Tests-spec subdir. */
|
|
47
|
+
export const PROJECT_TESTS_SPECS_DIR = "specs";
|
|
48
|
+
/** Per-Context Graph tests directory. */
|
|
49
|
+
export const CONTEXT_GRAPH_TESTS_DIR = "tests";
|
|
50
|
+
/** Per-Context Graph runtime directory. */
|
|
51
|
+
export const CONTEXT_GRAPH_RUNTIME_DIR = "runtime";
|
|
52
|
+
/** Per-Context Graph Build Plan package directory. */
|
|
53
|
+
export const CONTEXT_GRAPH_BUILD_PLAN_DIR = "build-plan";
|
|
54
|
+
/** Environment variable that overrides Interf Home for tests. */
|
|
55
|
+
export const INTERF_USER_HOME_ENV = "INTERF_USER_HOME";
|
|
56
|
+
/** Interf Home directory name under the OS home dir. */
|
|
57
|
+
export const INTERF_HOME_DIR = ".interf";
|
|
58
|
+
/** Projects directory inside Interf Home. */
|
|
59
|
+
export const PROJECTS_DIR = "projects";
|
|
60
|
+
/** CLI connection record filename inside Interf Home. */
|
|
61
|
+
export const CONNECTION_CONFIG_FILENAME = "connection.json";
|
|
62
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
63
|
+
// Brand constructors — convert untyped strings at boundaries
|
|
64
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
65
|
+
export function asProjectDataDir(path) {
|
|
66
|
+
return path;
|
|
67
|
+
}
|
|
68
|
+
export function asSourceFolderPath(path) {
|
|
69
|
+
return path;
|
|
70
|
+
}
|
|
71
|
+
export function asContextGraphPath(path) {
|
|
72
|
+
return path;
|
|
73
|
+
}
|
|
74
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
75
|
+
// Interf Home (~/.interf/) paths
|
|
76
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
77
|
+
/** `~/.interf/` (or `INTERF_USER_HOME` override). */
|
|
78
|
+
export function interfHomeRoot() {
|
|
79
|
+
const override = process.env[INTERF_USER_HOME_ENV]?.trim();
|
|
80
|
+
if (override && override.length > 0)
|
|
81
|
+
return override;
|
|
82
|
+
return join(homedir(), INTERF_HOME_DIR);
|
|
83
|
+
}
|
|
84
|
+
/** `~/.interf/connection.json` — single CLI connection record. */
|
|
85
|
+
export function connectionConfigPath() {
|
|
86
|
+
return join(interfHomeRoot(), CONNECTION_CONFIG_FILENAME);
|
|
87
|
+
}
|
|
88
|
+
/** `~/.interf/build-plans/` — user-level Build Plan library root. */
|
|
89
|
+
export function userBuildPlansRoot() {
|
|
90
|
+
return join(interfHomeRoot(), BUILD_PLANS_DIR);
|
|
91
|
+
}
|
|
92
|
+
/** `~/.interf/build-plans/<id>/` — a specific user-library Build Plan package. */
|
|
93
|
+
export function userBuildPlanPackagePath(buildPlanId) {
|
|
94
|
+
return join(userBuildPlansRoot(), buildPlanId);
|
|
95
|
+
}
|
|
96
|
+
/** `~/.interf/services.json` — central service registry. */
|
|
97
|
+
export function serviceRegistryPath() {
|
|
98
|
+
return join(interfHomeRoot(), SERVICE_REGISTRY_FILENAME);
|
|
99
|
+
}
|
|
100
|
+
/** `~/.interf/projects/` — root for all Project state. */
|
|
101
|
+
export function projectsRoot() {
|
|
102
|
+
return join(interfHomeRoot(), PROJECTS_DIR);
|
|
103
|
+
}
|
|
104
|
+
/** `~/.interf/projects/<project-id>/` — one Project state dir. */
|
|
105
|
+
export function projectDataDir(projectId) {
|
|
106
|
+
return asProjectDataDir(join(projectsRoot(), projectId));
|
|
107
|
+
}
|
|
108
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
109
|
+
// Project Data Dir paths (the data dir IS the state root)
|
|
110
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
111
|
+
/** `<project-data>/interf.json` — Project config source of truth. */
|
|
112
|
+
export function projectConfigPath(projectDataDir) {
|
|
113
|
+
return join(projectDataDir, PROJECT_CONFIG_FILENAME);
|
|
114
|
+
}
|
|
115
|
+
/** `<project-data>/build-plans/` — Project-draft Build Plan packages root. */
|
|
116
|
+
export function projectBuildPlansRoot(projectDataDir) {
|
|
117
|
+
return join(projectDataDir, BUILD_PLANS_DIR);
|
|
118
|
+
}
|
|
119
|
+
/** `<project-data>/build-plans/<id>/` — a Project-draft Build Plan package. */
|
|
120
|
+
export function projectBuildPlanPackagePath(projectDataDir, buildPlanId) {
|
|
121
|
+
return join(projectBuildPlansRoot(projectDataDir), buildPlanId);
|
|
122
|
+
}
|
|
123
|
+
/** `<project-data>/<project-id>/` — legacy Project-level Context Graph root. */
|
|
124
|
+
export function projectContextGraphPath(projectDataDir, projectName) {
|
|
125
|
+
return join(projectDataDir, projectName);
|
|
126
|
+
}
|
|
127
|
+
/** `<project-data>/graphs/` — per-run Context Graph outputs root. */
|
|
128
|
+
export function projectContextGraphsRoot(projectDataDir) {
|
|
129
|
+
return join(projectDataDir, CONTEXT_GRAPHS_DIR);
|
|
130
|
+
}
|
|
131
|
+
/** `<project-data>/graphs/<run-id>/` — one Build Run's Context Graph output. */
|
|
132
|
+
export function projectRunContextGraphPath(projectDataDir, runId) {
|
|
133
|
+
return join(projectContextGraphsRoot(projectDataDir), runId);
|
|
134
|
+
}
|
|
135
|
+
/** `<project-data>/.service/` — service-owned scratch dir for jobs and proposals. */
|
|
136
|
+
export function projectServiceRoot(projectDataDir) {
|
|
137
|
+
return join(projectDataDir, SERVICE_DIR);
|
|
138
|
+
}
|
|
139
|
+
/** `<project-data>/.service/jobs/`. */
|
|
140
|
+
export function projectServiceJobsRoot(projectDataDir) {
|
|
141
|
+
return join(projectServiceRoot(projectDataDir), SERVICE_JOBS_DIR);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* `<project-data>/.service/jobs/shells/` — preserved, inspectable execution
|
|
145
|
+
* shells for graph-less agent jobs (Build Plan draft/improve, benchmark-question
|
|
146
|
+
* draft). Each `LocalJobRun.result.shell_path` points at one frozen shell here,
|
|
147
|
+
* the graph-less analogue of a Context Graph's stage execution shells.
|
|
148
|
+
*/
|
|
149
|
+
export function projectServiceJobShellsRoot(projectDataDir) {
|
|
150
|
+
return join(projectServiceJobsRoot(projectDataDir), "shells");
|
|
151
|
+
}
|
|
152
|
+
/** `<project-data>/.service/action-proposals/`. */
|
|
153
|
+
export function projectServiceActionProposalsRoot(projectDataDir) {
|
|
154
|
+
return join(projectServiceRoot(projectDataDir), SERVICE_ACTION_PROPOSALS_DIR);
|
|
155
|
+
}
|
|
156
|
+
/** `<project-data>/.service/action-plans/`. */
|
|
157
|
+
export function projectServiceActionPlansRoot(projectDataDir) {
|
|
158
|
+
return join(projectServiceRoot(projectDataDir), SERVICE_ACTION_PLANS_DIR);
|
|
159
|
+
}
|
|
160
|
+
/** `<project-data>/.service/build-runs/` — Project activity index for Build Runs. */
|
|
161
|
+
export function projectServiceBuildRunsRoot(projectDataDir) {
|
|
162
|
+
return join(projectServiceRoot(projectDataDir), "build-runs");
|
|
163
|
+
}
|
|
164
|
+
/** `<project-data>/tests/specs/` — saved benchmark specs. */
|
|
165
|
+
export function projectTestsSpecsRoot(projectDataDir) {
|
|
166
|
+
return join(projectDataDir, PROJECT_TESTS_DIR, PROJECT_TESTS_SPECS_DIR);
|
|
167
|
+
}
|
|
168
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
169
|
+
// Context Graph paths (generated graph outputs)
|
|
170
|
+
// ───────────────────────────────────────────────────────────────────────────
|
|
171
|
+
/** `<context-graph>/.interf/`. */
|
|
172
|
+
export function contextGraphStateRoot(contextGraph) {
|
|
173
|
+
return join(contextGraph, CONTEXT_GRAPH_STATE_DIR);
|
|
174
|
+
}
|
|
175
|
+
/** `<context-graph>/.interf/interf.json` — runtime contract. */
|
|
176
|
+
export function contextGraphConfigPath(contextGraph) {
|
|
177
|
+
return join(contextGraphStateRoot(contextGraph), PROJECT_CONFIG_FILENAME);
|
|
178
|
+
}
|
|
179
|
+
/** `<context-graph>/.interf/build-plan/` — active Build Plan package inside Context Graph. */
|
|
180
|
+
export function contextGraphBuildPlanPath(contextGraph) {
|
|
181
|
+
return join(contextGraphStateRoot(contextGraph), CONTEXT_GRAPH_BUILD_PLAN_DIR);
|
|
182
|
+
}
|
|
183
|
+
/** `<context-graph>/.interf/runtime/`. */
|
|
184
|
+
export function contextGraphRuntimeRoot(contextGraph) {
|
|
185
|
+
return join(contextGraphStateRoot(contextGraph), CONTEXT_GRAPH_RUNTIME_DIR);
|
|
186
|
+
}
|
|
187
|
+
/** `<context-graph>/.interf/tests/`. */
|
|
188
|
+
export function contextGraphTestsRoot(contextGraph) {
|
|
189
|
+
return join(contextGraphStateRoot(contextGraph), CONTEXT_GRAPH_TESTS_DIR);
|
|
190
|
+
}
|
|
191
|
+
/** `<project-data>/<project>/.interf/tests/`. */
|
|
192
|
+
export function projectTestsRoot(projectDataDir, projectName) {
|
|
193
|
+
return contextGraphTestsRoot(projectContextGraphPath(projectDataDir, projectName));
|
|
194
|
+
}
|
|
195
|
+
/** `<project-data>/<project>/.interf/tests/<target>/runs/`. */
|
|
196
|
+
export function projectTestRunsRoot(projectDataDir, projectName, target) {
|
|
197
|
+
return join(projectTestsRoot(projectDataDir, projectName), target, "runs");
|
|
198
|
+
}
|
|
199
|
+
/** `<project-data>/<project>/.interf/tests/latest.json`. */
|
|
200
|
+
export function projectLatestBenchmarkRunPath(projectDataDir, projectName) {
|
|
201
|
+
return join(projectTestsRoot(projectDataDir, projectName), "latest.json");
|
|
202
|
+
}
|
|
203
|
+
/** `<project-data>/<project>/.interf/tests/latest.md`. */
|
|
204
|
+
export function projectLatestBenchmarkSummaryPath(projectDataDir, projectName) {
|
|
205
|
+
return join(projectTestsRoot(projectDataDir, projectName), "latest.md");
|
|
206
|
+
}
|
|
207
|
+
/** Normalize a free-form string into a stable, kebab-cased id (≤80 chars). */
|
|
208
|
+
export function normalizeProjectTestRunId(input) {
|
|
209
|
+
return input
|
|
210
|
+
.toLowerCase()
|
|
211
|
+
.trim()
|
|
212
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
213
|
+
.replace(/^-+|-+$/g, "")
|
|
214
|
+
.slice(0, 80);
|
|
215
|
+
}
|
|
216
|
+
/** `<project-data>/<project>/.interf/tests/<target>/runs/<timestamp>-<run-id>[-<suffix>].json`. */
|
|
217
|
+
export function projectTestRunPath(projectDataDir, projectName, target, generatedAt, runId, runSuffix) {
|
|
218
|
+
const suffix = runSuffix ? `-${normalizeProjectTestRunId(runSuffix)}` : "";
|
|
219
|
+
return join(projectTestRunsRoot(projectDataDir, projectName, target), `${generatedAt.replace(/[:.]/g, "-")}-${runId}${suffix}.json`);
|
|
220
|
+
}
|