@moretea-labs/forge 1.5.0-rc.1
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/AGENTS.md +120 -0
- package/CHANGELOG.md +36 -0
- package/CLAUDE.md +120 -0
- package/CODE_OF_CONDUCT.md +23 -0
- package/CONTRIBUTING.md +77 -0
- package/LICENSE +22 -0
- package/NOTICE +9 -0
- package/README.en.md +5 -0
- package/README.es.md +12 -0
- package/README.fr.md +12 -0
- package/README.ja.md +12 -0
- package/README.md +132 -0
- package/README.zh-CN.md +84 -0
- package/SECURITY.md +50 -0
- package/SKILL.md +431 -0
- package/SUPPORT.md +31 -0
- package/THIRD_PARTY_NOTICES.md +18 -0
- package/agents/openai.yaml +4 -0
- package/assets/AGENTS.md +68 -0
- package/assets/CLAUDE.md +68 -0
- package/assets/branding/README.md +10 -0
- package/assets/branding/forge-controller-flow.mmd +8 -0
- package/assets/hooks/AGENTS.md +75 -0
- package/assets/hooks/CLAUDE.md +75 -0
- package/assets/hooks/anti-simplification.sh +12 -0
- package/assets/hooks/changelog-guard.sh +80 -0
- package/assets/hooks/codex.hooks.template.json +60 -0
- package/assets/hooks/first-principles-guard.sh +72 -0
- package/assets/hooks/hook-input.sh +618 -0
- package/assets/hooks/lib/session-state.sh +106 -0
- package/assets/hooks/lib/workflow-state.sh +1730 -0
- package/assets/hooks/post-bash.sh +215 -0
- package/assets/hooks/post-edit-guard.sh +256 -0
- package/assets/hooks/post-tool-observer.sh +99 -0
- package/assets/hooks/pre-edit-guard.sh +240 -0
- package/assets/hooks/prompt-guard.sh +1077 -0
- package/assets/hooks/run-hook.sh +67 -0
- package/assets/hooks/security-sentinel.sh +115 -0
- package/assets/hooks/session-start-context.sh +593 -0
- package/assets/hooks/settings.template.json +60 -0
- package/assets/hooks/stop-orchestrator.sh +171 -0
- package/assets/hooks/subagent-return-channel-guard.sh +107 -0
- package/assets/hooks/worktree-guard.sh +39 -0
- package/assets/initializer-question-pack.v1.json +132 -0
- package/assets/initializer-question-pack.v1.schema.json +46 -0
- package/assets/initializer-question-pack.v2.json +174 -0
- package/assets/initializer-question-pack.v3.json +206 -0
- package/assets/initializer-question-pack.v3.schema.json +92 -0
- package/assets/initializer-question-pack.v4.json +557 -0
- package/assets/initializer-question-pack.v4.schema.json +169 -0
- package/assets/partials/01-header.partial.md +10 -0
- package/assets/partials/02-iron-rules.partial.md +30 -0
- package/assets/partials/03-philosophy.partial.md +32 -0
- package/assets/partials/04-project-structure.partial.md +56 -0
- package/assets/partials/05-workflow.partial.md +79 -0
- package/assets/partials/06-cloudflare.partial.md +20 -0
- package/assets/partials/07-footer.partial.md +38 -0
- package/assets/partials/08-orchestration.partial.md +49 -0
- package/assets/partials/09-compact-instructions.partial.md +11 -0
- package/assets/partials/_assembly-order.md +40 -0
- package/assets/partials-agents/01-header.partial.md +8 -0
- package/assets/partials-agents/02-operating-mode.partial.md +44 -0
- package/assets/partials-agents/03-orchestration.partial.md +45 -0
- package/assets/partials-agents/04-task-protocol.partial.md +69 -0
- package/assets/partials-agents/05-coding-constraints.partial.md +20 -0
- package/assets/partials-agents/06-quality-safety.partial.md +23 -0
- package/assets/partials-agents/07-cloudflare.partial.md +9 -0
- package/assets/partials-agents/08-deep-docs.partial.md +32 -0
- package/assets/plan-map.json +301 -0
- package/assets/plugin-registry.v1.json +8 -0
- package/assets/project-structures/ai-native-collaborative-editor.txt +25 -0
- package/assets/project-structures/ai-native-product-copilot.txt +21 -0
- package/assets/project-structures/ai-native-runtime-console.txt +25 -0
- package/assets/project-structures/ai-native-sidecar-kernel.txt +19 -0
- package/assets/project-structures/astro-ssr.txt +25 -0
- package/assets/project-structures/expo-nativewind.txt +52 -0
- package/assets/project-structures/monorepo.txt +63 -0
- package/assets/project-structures/remix.txt +50 -0
- package/assets/project-structures/tanstack-start-workers.txt +51 -0
- package/assets/project-structures/vite-tanstack.txt +58 -0
- package/assets/reference-configs/AGENTS.md +13 -0
- package/assets/reference-configs/CLAUDE.md +13 -0
- package/assets/reference-configs/agentic-development-flow.md +94 -0
- package/assets/reference-configs/ai-workflows.md +14 -0
- package/assets/reference-configs/changelog-versioning.md +13 -0
- package/assets/reference-configs/coding-standards.md +14 -0
- package/assets/reference-configs/development-protocol.md +21 -0
- package/assets/reference-configs/document-generation.md +38 -0
- package/assets/reference-configs/evaluator-rubric.md +19 -0
- package/assets/reference-configs/external-tooling.md +374 -0
- package/assets/reference-configs/git-strategy.md +14 -0
- package/assets/reference-configs/global-working-rules.md +64 -0
- package/assets/reference-configs/handoff-protocol.md +38 -0
- package/assets/reference-configs/harness-overview.md +124 -0
- package/assets/reference-configs/heartbeat-triage.md +57 -0
- package/assets/reference-configs/hook-operations.md +96 -0
- package/assets/reference-configs/release-deploy.md +40 -0
- package/assets/reference-configs/spa-day-protocol.md +14 -0
- package/assets/reference-configs/sprint-contracts.md +89 -0
- package/assets/reference-configs/workflow-orchestration.md +14 -0
- package/assets/skill-hooks.json +41 -0
- package/assets/skill-version.json +189 -0
- package/assets/skills/claude-review/SKILL.md +231 -0
- package/assets/skills/codex-review/SKILL.md +103 -0
- package/assets/templates/AGENTS.md +13 -0
- package/assets/templates/CLAUDE.md +13 -0
- package/assets/templates/architecture.template.md +80 -0
- package/assets/templates/brief.template.md +38 -0
- package/assets/templates/contract.template.md +104 -0
- package/assets/templates/decisions.template.md +85 -0
- package/assets/templates/factor-factory/factor-backtest-report.template.md +36 -0
- package/assets/templates/factor-factory/factor-hypothesis.template.md +30 -0
- package/assets/templates/factor-factory/factor-registry.template.json +5 -0
- package/assets/templates/gitignore.template +53 -0
- package/assets/templates/guides/metro-esm-gotchas.template.md +46 -0
- package/assets/templates/helpers/architecture-event.ts +822 -0
- package/assets/templates/helpers/architecture-queue.sh +647 -0
- package/assets/templates/helpers/archive-architecture-request.sh +244 -0
- package/assets/templates/helpers/archive-workflow.sh +295 -0
- package/assets/templates/helpers/capability-config.ts +394 -0
- package/assets/templates/helpers/capability-resolver.ts +505 -0
- package/assets/templates/helpers/capture-plan.sh +335 -0
- package/assets/templates/helpers/check-agent-tooling.sh +1533 -0
- package/assets/templates/helpers/check-architecture-sync.sh +287 -0
- package/assets/templates/helpers/check-brain-manifest.sh +255 -0
- package/assets/templates/helpers/check-context-files.sh +49 -0
- package/assets/templates/helpers/check-deploy-sql-order.sh +117 -0
- package/assets/templates/helpers/check-skill-version.ts +193 -0
- package/assets/templates/helpers/check-task-sync.sh +65 -0
- package/assets/templates/helpers/check-task-workflow.sh +1002 -0
- package/assets/templates/helpers/codex-handoff-resume.sh +269 -0
- package/assets/templates/helpers/context-contract-sync.sh +516 -0
- package/assets/templates/helpers/contract-run.ts +465 -0
- package/assets/templates/helpers/contract-worktree.sh +725 -0
- package/assets/templates/helpers/ensure-task-workflow.sh +1218 -0
- package/assets/templates/helpers/harness-trace-grade.sh +150 -0
- package/assets/templates/helpers/heartbeat-triage.sh +361 -0
- package/assets/templates/helpers/inspect-project-state.ts +280 -0
- package/assets/templates/helpers/maintenance-triage.sh +167 -0
- package/assets/templates/helpers/migrate-project-template.sh +54 -0
- package/assets/templates/helpers/migrate-workflow-docs.ts +413 -0
- package/assets/templates/helpers/new-plan.sh +183 -0
- package/assets/templates/helpers/new-spec.sh +50 -0
- package/assets/templates/helpers/new-sprint.sh +49 -0
- package/assets/templates/helpers/plan-to-todo.sh +799 -0
- package/assets/templates/helpers/prepare-codex-handoff.sh +203 -0
- package/assets/templates/helpers/prepare-handoff.sh +81 -0
- package/assets/templates/helpers/refresh-current-status.sh +469 -0
- package/assets/templates/helpers/select-agent-context-blocks.sh +66 -0
- package/assets/templates/helpers/ship-worktrees.sh +561 -0
- package/assets/templates/helpers/sprint-backlog.sh +837 -0
- package/assets/templates/helpers/summarize-failures.sh +125 -0
- package/assets/templates/helpers/switch-plan.sh +153 -0
- package/assets/templates/helpers/sync-brain-docs.sh +381 -0
- package/assets/templates/helpers/verify-contract.sh +705 -0
- package/assets/templates/helpers/verify-sprint.sh +680 -0
- package/assets/templates/helpers/workflow-contract.ts +202 -0
- package/assets/templates/helpers/workstream-sync.sh +263 -0
- package/assets/templates/implementation-notes.template.md +37 -0
- package/assets/templates/packages.template.md +45 -0
- package/assets/templates/plan.template.md +77 -0
- package/assets/templates/prd.template.md +165 -0
- package/assets/templates/research.template.md +25 -0
- package/assets/templates/review.template.md +78 -0
- package/assets/templates/spec.template.md +31 -0
- package/assets/templates/sprint.template.md +69 -0
- package/assets/templates/tech-stack.template.md +57 -0
- package/assets/versions.json +77 -0
- package/assets/workflow-contract.v1.json +671 -0
- package/bin/forge-desktop-helper.mjs +204 -0
- package/bin/forge-hook.mjs +32 -0
- package/bin/forge-runtime-service.mjs +34 -0
- package/bin/forge-runtime.mjs +30 -0
- package/bin/forge.mjs +32 -0
- package/docs/CHANGELOG.md +978 -0
- package/docs/README.md +72 -0
- package/docs/README.zh-CN.md +58 -0
- package/docs/architecture/chatgpt-handoff-facade.md +393 -0
- package/docs/architecture/current/README.md +158 -0
- package/docs/architecture/current/approved-target-architecture.zh-CN.md +1501 -0
- package/docs/architecture/current/architecture-invariants.md +331 -0
- package/docs/architecture/current/automation-and-schedule-engine.md +453 -0
- package/docs/architecture/current/codegraph-context-provider.md +226 -0
- package/docs/architecture/current/control-plane-authority-inventory.md +82 -0
- package/docs/architecture/current/controller-repository-decoupling.md +148 -0
- package/docs/architecture/current/dispatch-and-agent-strategy.md +354 -0
- package/docs/architecture/current/entity-model.md +619 -0
- package/docs/architecture/current/external-plugin-governance.md +396 -0
- package/docs/architecture/current/failure-recovery.md +471 -0
- package/docs/architecture/current/governance.md +213 -0
- package/docs/architecture/current/human-interaction-plane.md +87 -0
- package/docs/architecture/current/implementation-status.md +128 -0
- package/docs/architecture/current/job-and-run-lifecycle.md +413 -0
- package/docs/architecture/current/local-workspace-target-grants.md +70 -0
- package/docs/architecture/current/migration-roadmap.md +105 -0
- package/docs/architecture/current/multi-repository-execution.md +371 -0
- package/docs/architecture/current/operations-runbook.md +45 -0
- package/docs/architecture/current/peer-supercontroller-runtime.md +32 -0
- package/docs/architecture/current/personal-assistant-plugin-baseline.md +207 -0
- package/docs/architecture/current/repository-access-modes.md +102 -0
- package/docs/architecture/current/route-policy.md +15 -0
- package/docs/architecture/current/route-session-concurrency.md +85 -0
- package/docs/architecture/current/runtime-architecture-simplification.md +214 -0
- package/docs/architecture/current/runtime-directory-map.md +49 -0
- package/docs/architecture/current/runtime-health-and-resource-lifecycle.md +85 -0
- package/docs/architecture/current/scheduler-and-resource-claims.md +432 -0
- package/docs/architecture/current/session-aware-execution-and-authorization.md +77 -0
- package/docs/architecture/current/system-overview.md +144 -0
- package/docs/architecture/current/target-requirements-traceability.md +202 -0
- package/docs/architecture/current/thin-harness-governance-policy.md +32 -0
- package/docs/architecture/current/thin-harness-v1.md +313 -0
- package/docs/architecture/current/verification-and-release-gates.md +391 -0
- package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +100 -0
- package/docs/architecture/decisions/20260803-canonical-skill-surface.md +40 -0
- package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +53 -0
- package/docs/architecture/diagrams/.gitkeep +1 -0
- package/docs/architecture/diagrams/agentic-dev-plugin-architecture.html +186 -0
- package/docs/architecture/domains/.gitkeep +0 -0
- package/docs/architecture/domains/public-surface.md +30 -0
- package/docs/architecture/domains/runtime-harness.md +33 -0
- package/docs/architecture/domains/verification.md +33 -0
- package/docs/architecture/domains/workflow-engine.md +30 -0
- package/docs/architecture/global-hook-runtime.md +162 -0
- package/docs/architecture/history.md +38 -0
- package/docs/architecture/index.md +114 -0
- package/docs/architecture/ios-semantic-automation-provider-v2.md +166 -0
- package/docs/architecture/modules/.gitkeep +0 -0
- package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +24 -0
- package/docs/architecture/requests/.gitkeep +1 -0
- package/docs/architecture/requests/archive/2026/20260528-154740-ai-hooks-ai-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-154816-assets-hooks-assets-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-161851-ai-harness-workflow-contract-json-ai-harness-workflow-contract-json.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-161853-scripts-check-task-workflow-sh-scripts-check-task-workflow-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-161911-assets-workflow-contract-v1-json-assets-workflow-contract-v1-json.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222416-ai-hooks-ai-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222444-ai-hooks-ai-hooks-pre-edit-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222457-ai-hooks-ai-hooks-pre-edit-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222648-ai-hooks-ai-hooks-pre-edit-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222705-ai-hooks-ai-hooks-worktree-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222726-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-222727-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-224736-ai-hooks-ai-hooks-hook-input-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233259-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233335-assets-hooks-assets-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233456-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233457-assets-hooks-assets-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233637-ai-hooks-ai-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260528-233638-assets-hooks-assets-hooks-prompt-guard-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260529-000322-root-package-json.md +59 -0
- package/docs/architecture/requests/archive/2026/20260529-004238-ai-hooks-ai-hooks-lib-workflow-state-sh.md +59 -0
- package/docs/architecture/requests/archive/2026/20260529-020654-ai-harness-policy-json-ai-harness-policy-json.md +63 -0
- package/docs/architecture/requests/archive/2026/20260529-094236-ai-hooks-ai-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094323-assets-hooks-assets-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094331-ai-hooks-ai-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094339-assets-hooks-assets-hooks-prompt-guard-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094430-assets-hooks-assets-hooks-session-start-context-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260529-094446-ai-hooks-ai-hooks-session-start-context-sh.md +60 -0
- package/docs/architecture/requests/archive/2026/20260613-002040-runtime-harness-hook-adapters.md +68 -0
- package/docs/architecture/requests/archive/2026/root.md +68 -0
- package/docs/architecture/requests/archive/2026/runtime-harness-hook-adapters.md +76 -0
- package/docs/architecture/requests/archive/2026/verification-evals-checks.md +68 -0
- package/docs/architecture/requests/archive/2026/workflow-engine-contract-assets.md +69 -0
- package/docs/architecture/reviews/2026-07-11-access-surface-review.md +99 -0
- package/docs/architecture/snapshots/.gitkeep +1 -0
- package/docs/forge-autonomous-goal-loop.md +7 -0
- package/docs/forge-chatgpt-browser-engine.md +11 -0
- package/docs/forge-chatgpt-mcp-setup.md +239 -0
- package/docs/forge-chatgpt-supervised-automation.md +11 -0
- package/docs/forge-github-issue-launcher.md +7 -0
- package/docs/forge-plugin-management.md +95 -0
- package/docs/forge-provider-configuration.md +7 -0
- package/docs/forge-runtime-self-healing-loop.md +7 -0
- package/docs/images/forge-banner-cn.svg +1 -0
- package/docs/images/forge-banner.svg +1 -0
- package/docs/images/forge-controller-flow.svg +1 -0
- package/docs/images/image.png +0 -0
- package/docs/images/repo-harness-gptpro-cn.png +0 -0
- package/docs/images/repo-harness-gptpro.png +0 -0
- package/docs/images/repo-harness-hook-carrot.png +0 -0
- package/docs/operations/chatgpt-personal-assistant-runtime.md +83 -0
- package/docs/operations/checkout-route-integrity.md +22 -0
- package/docs/operations/controller-browser-plugin.md +299 -0
- package/docs/operations/controller-desktop-plugin.md +112 -0
- package/docs/operations/controller-performance-and-502.md +126 -0
- package/docs/operations/controller-reliability-runbook.md +134 -0
- package/docs/operations/environment-hardening.md +50 -0
- package/docs/operations/features.md +45 -0
- package/docs/operations/features.zh-CN.md +45 -0
- package/docs/operations/github-repository.md +60 -0
- package/docs/operations/gmail-assistant-routines.md +186 -0
- package/docs/operations/homebrew.md +26 -0
- package/docs/operations/local-system-assistant.md +46 -0
- package/docs/operations/local-system-assistant.zh-CN.md +46 -0
- package/docs/operations/mcp-tool-exposure.md +58 -0
- package/docs/operations/mobile-intents-shortcuts.md +117 -0
- package/docs/operations/open-source-release-hygiene.md +31 -0
- package/docs/operations/personal-assistant-operator-guide.md +61 -0
- package/docs/operations/platform-support.md +62 -0
- package/docs/operations/platform-support.zh-CN.md +61 -0
- package/docs/operations/provider-configuration.md +31 -0
- package/docs/operations/releasing.md +86 -0
- package/docs/operations/releasing.zh-CN.md +86 -0
- package/docs/operations/route-session-concurrency-baseline.json +893 -0
- package/docs/operations/route-session-concurrency-baseline.md +94 -0
- package/docs/operations/runtime-performance-diagnostics.md +14 -0
- package/docs/operations/sqlite-control-plane-recovery.md +65 -0
- package/docs/operations/standalone-disaster-recovery.md +136 -0
- package/docs/operations/troubleshooting.md +72 -0
- package/docs/operations/troubleshooting.zh-CN.md +70 -0
- package/docs/public-usage-guide.md +33 -0
- package/docs/public-usage-guide.zh-CN.md +33 -0
- package/docs/tutorials/01-install-and-start.md +93 -0
- package/docs/tutorials/01-install-and-start.zh-CN.md +93 -0
- package/docs/tutorials/02-connect-chatgpt.md +82 -0
- package/docs/tutorials/02-connect-chatgpt.zh-CN.md +80 -0
- package/docs/tutorials/03-first-repository-task.md +57 -0
- package/docs/tutorials/03-first-repository-task.zh-CN.md +57 -0
- package/docs/tutorials/README.md +13 -0
- package/docs/tutorials/README.zh-CN.md +13 -0
- package/docs/wiki/Architecture.md +85 -0
- package/docs/wiki/Core-Concepts.md +27 -0
- package/docs/wiki/Home.md +36 -0
- package/docs/wiki/Implementation.md +172 -0
- package/docs/wiki/Installation.md +50 -0
- package/docs/wiki/Integrations.md +29 -0
- package/docs/wiki/Operations.md +26 -0
- package/docs/wiki/Quick-Start.md +46 -0
- package/docs/wiki/Releases-and-Upgrades.md +34 -0
- package/docs/wiki/Runtime-Architecture.md +50 -0
- package/docs/wiki/Security-Model.md +31 -0
- package/docs/wiki/Troubleshooting.md +38 -0
- package/docs/wiki/Work-Lifecycle.md +31 -0
- package/docs/wiki/_Sidebar.md +21 -0
- package/install.ps1 +48 -0
- package/install.sh +66 -0
- package/package.json +156 -0
- package/scripts/activate-source-baseline.ts +335 -0
- package/scripts/architecture-event.ts +822 -0
- package/scripts/architecture-queue.sh +647 -0
- package/scripts/archive-architecture-request.sh +244 -0
- package/scripts/archive-workflow.sh +295 -0
- package/scripts/assemble-template.ts +1172 -0
- package/scripts/benchmark-controller-hotpath.ts +212 -0
- package/scripts/benchmark-controller-round2.ts +139 -0
- package/scripts/benchmark-ios-agent-device.ts +514 -0
- package/scripts/benchmark-route-session-concurrency.ts +714 -0
- package/scripts/benchmark-thin-harness-gateway-ab.ts +632 -0
- package/scripts/benchmark-thin-harness-mcp-e2e.ts +479 -0
- package/scripts/benchmark-thin-harness.ts +251 -0
- package/scripts/bootstrap-runtime-maintenance-recovery.sh +183 -0
- package/scripts/canary-global-hook.sh +263 -0
- package/scripts/capability-config.ts +394 -0
- package/scripts/capability-resolver.ts +505 -0
- package/scripts/capture-plan.sh +335 -0
- package/scripts/check-agent-tooling.sh +1549 -0
- package/scripts/check-architecture-sync.sh +373 -0
- package/scripts/check-brain-manifest.sh +255 -0
- package/scripts/check-ci.sh +16 -0
- package/scripts/check-context-files.sh +49 -0
- package/scripts/check-deploy-sql-order.sh +117 -0
- package/scripts/check-mcp-compatibility.ts +93 -0
- package/scripts/check-npm-release.sh +32 -0
- package/scripts/check-open-source-tracked-surface.sh +146 -0
- package/scripts/check-package-identity.mjs +117 -0
- package/scripts/check-platform-support.mjs +79 -0
- package/scripts/check-public-docs.sh +105 -0
- package/scripts/check-public-release-surface.sh +19 -0
- package/scripts/check-release-published.sh +57 -0
- package/scripts/check-release-readiness.sh +43 -0
- package/scripts/check-release-version.mjs +74 -0
- package/scripts/check-runtime-architecture.mjs +593 -0
- package/scripts/check-runtime-env.mjs +89 -0
- package/scripts/check-skill-version.ts +193 -0
- package/scripts/check-tarball-install-smoke.sh +66 -0
- package/scripts/check-task-sync.sh +65 -0
- package/scripts/check-task-workflow.sh +1002 -0
- package/scripts/check-third-party-notices.mjs +36 -0
- package/scripts/codex-handoff-resume.sh +269 -0
- package/scripts/complete-control-plane-cutover.ts +126 -0
- package/scripts/context-contract-sync.sh +516 -0
- package/scripts/contract-run.ts +465 -0
- package/scripts/contract-worktree.sh +725 -0
- package/scripts/controller-ngrok-rotation.sh +678 -0
- package/scripts/create-project-dirs.sh +282 -0
- package/scripts/ensure-codegraph.sh +16 -0
- package/scripts/ensure-task-workflow.sh +1218 -0
- package/scripts/export-requirement-portfolio.ts +28 -0
- package/scripts/factor-lab-check.sh +73 -0
- package/scripts/factor-lab-new.sh +96 -0
- package/scripts/factor-lab-promote.sh +86 -0
- package/scripts/factor-lab-reject.sh +68 -0
- package/scripts/harness-trace-grade.sh +150 -0
- package/scripts/heartbeat-triage.sh +361 -0
- package/scripts/hook-dispatch-diet-report.ts +234 -0
- package/scripts/hook-shim.sh +93 -0
- package/scripts/init-project.sh +505 -0
- package/scripts/initializer-question-pack.ts +200 -0
- package/scripts/inspect-project-state.ts +280 -0
- package/scripts/install-desktop-operator-registration.ts +45 -0
- package/scripts/install-standalone-recovery.ts +74 -0
- package/scripts/lib/AGENTS.md +13 -0
- package/scripts/lib/CLAUDE.md +13 -0
- package/scripts/lib/controller-home-env.sh +69 -0
- package/scripts/lib/project-init-lib.sh +2759 -0
- package/scripts/load-standalone-recovery.sh +17 -0
- package/scripts/loop-engine-cutover-gate.ts +324 -0
- package/scripts/maintenance-triage.sh +167 -0
- package/scripts/migrate-project-template.sh +1189 -0
- package/scripts/migrate-requirement-portfolio.ts +86 -0
- package/scripts/migrate-workflow-docs.ts +413 -0
- package/scripts/new-plan.sh +183 -0
- package/scripts/new-spec.sh +50 -0
- package/scripts/new-sprint.sh +49 -0
- package/scripts/open-source-audit-allowlist.txt +46 -0
- package/scripts/package-source-archive.sh +147 -0
- package/scripts/plan-to-todo.sh +799 -0
- package/scripts/prepare-codex-handoff.sh +203 -0
- package/scripts/prepare-handoff.sh +81 -0
- package/scripts/public-release-files.txt +39 -0
- package/scripts/public-release.ts +174 -0
- package/scripts/publish-release-tarball.sh +27 -0
- package/scripts/refresh-current-status.sh +469 -0
- package/scripts/refresh-ios-physical-runtime.ts +196 -0
- package/scripts/repair-executable-modes.ts +8 -0
- package/scripts/rollout-all-registered-repos.sh +7 -0
- package/scripts/route-nl-vs-ts-eval.ts +679 -0
- package/scripts/run-bun-test-file.ts +182 -0
- package/scripts/run-governed-gate.ts +140 -0
- package/scripts/run-mobile-monitor-bridge.ts +71 -0
- package/scripts/run-skill-evals.ts +1022 -0
- package/scripts/run-skill-hook.ts +244 -0
- package/scripts/run-supervised-command.ts +24 -0
- package/scripts/run-tests-portable.sh +20 -0
- package/scripts/select-agent-context-blocks.sh +66 -0
- package/scripts/setup-plugins.sh +43 -0
- package/scripts/ship-worktrees.sh +561 -0
- package/scripts/smoke-browser-cdp-bridge.ts +93 -0
- package/scripts/smoke-chatgpt-supervised-automation.ts +208 -0
- package/scripts/smoke-ios-physical-device.ts +114 -0
- package/scripts/smoke-mcp-http-runtime.ts +216 -0
- package/scripts/smoke-mcp-tool-surface.ts +117 -0
- package/scripts/smoke-runtime-recovery.ts +220 -0
- package/scripts/smoke-schedule-engine.ts +283 -0
- package/scripts/sprint-backlog.sh +837 -0
- package/scripts/stage-runtime-release.ts +38 -0
- package/scripts/summarize-failures.sh +125 -0
- package/scripts/switch-plan.sh +153 -0
- package/scripts/sync-brain-docs.sh +381 -0
- package/scripts/sync-codex-installed-copies.sh +183 -0
- package/scripts/test-governance.ts +75 -0
- package/scripts/verify-contract.sh +705 -0
- package/scripts/verify-forge-runtime.sh +31 -0
- package/scripts/verify-sprint.sh +680 -0
- package/scripts/windows-paths.d.mts +7 -0
- package/scripts/windows-paths.mjs +28 -0
- package/scripts/workflow-contract.ts +206 -0
- package/scripts/workstream-sync.sh +263 -0
- package/src/cli/agent-jobs/executable-resolver.ts +289 -0
- package/src/cli/agent-jobs/executor-health.ts +252 -0
- package/src/cli/agent-jobs/integration.ts +963 -0
- package/src/cli/agent-jobs/job-manager.ts +2030 -0
- package/src/cli/agent-jobs/types.ts +219 -0
- package/src/cli/agent-jobs/worker-lifecycle.ts +288 -0
- package/src/cli/chatgpt-browser/bind-server.ts +504 -0
- package/src/cli/chatgpt-browser/binding.ts +140 -0
- package/src/cli/chatgpt-browser/bridge-extension.ts +221 -0
- package/src/cli/chatgpt-browser/bridge-provider.ts +268 -0
- package/src/cli/chatgpt-browser/engine.ts +569 -0
- package/src/cli/chatgpt-browser/file-policy.ts +158 -0
- package/src/cli/chatgpt-browser/native-provider.ts +553 -0
- package/src/cli/chatgpt-browser/oracle-provider.ts +437 -0
- package/src/cli/chatgpt-browser/prompt-assembler.ts +29 -0
- package/src/cli/chatgpt-browser/session-store.ts +301 -0
- package/src/cli/chatgpt-browser/types.ts +172 -0
- package/src/cli/commands/adopt-plan.ts +186 -0
- package/src/cli/commands/brain-root.ts +132 -0
- package/src/cli/commands/brain.ts +609 -0
- package/src/cli/commands/capability-context.ts +613 -0
- package/src/cli/commands/chatgpt.ts +424 -0
- package/src/cli/commands/controller.ts +680 -0
- package/src/cli/commands/docs.ts +103 -0
- package/src/cli/commands/doctor.ts +476 -0
- package/src/cli/commands/global-runtime.ts +323 -0
- package/src/cli/commands/hook.ts +34 -0
- package/src/cli/commands/init-hook.ts +870 -0
- package/src/cli/commands/init.ts +829 -0
- package/src/cli/commands/install.ts +86 -0
- package/src/cli/commands/mcp.ts +315 -0
- package/src/cli/commands/migrate.ts +154 -0
- package/src/cli/commands/plugin.ts +74 -0
- package/src/cli/commands/prompt-guard-decision.ts +238 -0
- package/src/cli/commands/recovery.ts +667 -0
- package/src/cli/commands/repository.ts +224 -0
- package/src/cli/commands/run.ts +23 -0
- package/src/cli/commands/runtime.ts +191 -0
- package/src/cli/commands/security.ts +440 -0
- package/src/cli/commands/status.ts +137 -0
- package/src/cli/commands/tools.ts +167 -0
- package/src/cli/controller/check-runner.ts +1022 -0
- package/src/cli/controller/codex-continuation.ts +153 -0
- package/src/cli/controller/completion-backlog.ts +380 -0
- package/src/cli/controller/completion-orchestrator.ts +1807 -0
- package/src/cli/controller/completion-target.ts +96 -0
- package/src/cli/controller/composite-operations.ts +196 -0
- package/src/cli/controller/composite-result.ts +130 -0
- package/src/cli/controller/context-pack.ts +652 -0
- package/src/cli/controller/execution-completion.ts +175 -0
- package/src/cli/controller/execution-policy.ts +392 -0
- package/src/cli/controller/governance.ts +594 -0
- package/src/cli/controller/issue-store.ts +1421 -0
- package/src/cli/controller/launch-agents.ts +410 -0
- package/src/cli/controller/legacy-issue-cutover.ts +415 -0
- package/src/cli/controller/lifecycle-authority.ts +16 -0
- package/src/cli/controller/migrated-issue-decision.ts +237 -0
- package/src/cli/controller/operational-plan.ts +226 -0
- package/src/cli/controller/postcondition.ts +134 -0
- package/src/cli/controller/progress.ts +656 -0
- package/src/cli/controller/project-state.ts +147 -0
- package/src/cli/controller/requirement-portfolio-export.ts +146 -0
- package/src/cli/controller/requirement-portfolio-migration.ts +613 -0
- package/src/cli/controller/run-evidence.ts +43 -0
- package/src/cli/controller/runtime-config.ts +92 -0
- package/src/cli/controller/stuck-state-migration.ts +396 -0
- package/src/cli/controller/task-ledger.ts +632 -0
- package/src/cli/controller/task-status-resolver.ts +403 -0
- package/src/cli/controller/types.ts +273 -0
- package/src/cli/controller/work-mode.ts +186 -0
- package/src/cli/controller/worklog.ts +201 -0
- package/src/cli/diagnostic-entry.ts +39 -0
- package/src/cli/editing/edit-session.ts +1606 -0
- package/src/cli/editing/executable-modes.ts +70 -0
- package/src/cli/github/github.ts +274 -0
- package/src/cli/github/plugin.ts +345 -0
- package/src/cli/github/session.ts +104 -0
- package/src/cli/hook/prompt-guard-decision.ts +238 -0
- package/src/cli/hook/prompt-intents.ts +534 -0
- package/src/cli/hook/route-registry.ts +107 -0
- package/src/cli/hook/runtime.ts +303 -0
- package/src/cli/hook/state-snapshot.ts +388 -0
- package/src/cli/hook-entry.ts +51 -0
- package/src/cli/index.ts +574 -0
- package/src/cli/installer/managed-entries.ts +78 -0
- package/src/cli/installer/shared.ts +65 -0
- package/src/cli/installer/targets/claude.ts +136 -0
- package/src/cli/installer/targets/codex.ts +174 -0
- package/src/cli/installer/targets/registry.ts +28 -0
- package/src/cli/installer/types.ts +72 -0
- package/src/cli/local-bridge/connector-freshness.ts +529 -0
- package/src/cli/local-bridge/console-view-models.ts +324 -0
- package/src/cli/local-bridge/dashboard.ts +1312 -0
- package/src/cli/local-bridge/facade-api.ts +1877 -0
- package/src/cli/local-bridge/job-store.ts +1451 -0
- package/src/cli/local-bridge/mobile-intents.ts +344 -0
- package/src/cli/local-bridge/mobile-monitor.ts +209 -0
- package/src/cli/local-bridge/server.ts +3183 -0
- package/src/cli/local-bridge/types.ts +176 -0
- package/src/cli/mcp/access-mode.ts +132 -0
- package/src/cli/mcp/access-tools.ts +387 -0
- package/src/cli/mcp/audit.ts +32 -0
- package/src/cli/mcp/auth.ts +402 -0
- package/src/cli/mcp/instructions.ts +33 -0
- package/src/cli/mcp/legacy-context.ts +16 -0
- package/src/cli/mcp/legacy-tool-service.ts +5516 -0
- package/src/cli/mcp/multi-repository.ts +423 -0
- package/src/cli/mcp/oauth.ts +226 -0
- package/src/cli/mcp/paths.ts +134 -0
- package/src/cli/mcp/policy.ts +230 -0
- package/src/cli/mcp/proxy-env.ts +62 -0
- package/src/cli/mcp/readiness-projection.ts +24 -0
- package/src/cli/mcp/redaction.ts +21 -0
- package/src/cli/mcp/repo.ts +24 -0
- package/src/cli/mcp/repository-tools.ts +1295 -0
- package/src/cli/mcp/server.ts +341 -0
- package/src/cli/mcp/setup.ts +793 -0
- package/src/cli/mcp/tool-capability-cache.ts +87 -0
- package/src/cli/mcp/tools.ts +9 -0
- package/src/cli/mcp/toolset-names.ts +70 -0
- package/src/cli/mcp/toolset-selection.ts +41 -0
- package/src/cli/mcp/toolset.ts +300 -0
- package/src/cli/mcp/transports/AGENTS.md +39 -0
- package/src/cli/mcp/transports/CLAUDE.md +39 -0
- package/src/cli/mcp/transports/http.ts +1234 -0
- package/src/cli/mcp/transports/session-registry.ts +428 -0
- package/src/cli/mcp/transports/stdio.ts +8 -0
- package/src/cli/mcp/types.ts +41 -0
- package/src/cli/mcp/umbrella-tools.ts +117 -0
- package/src/cli/repo-adoption/reclaim-runtime.ts +681 -0
- package/src/cli/repositories/branch-name-policy.ts +57 -0
- package/src/cli/repositories/command-classifier.ts +600 -0
- package/src/cli/repositories/command-executor.ts +1066 -0
- package/src/cli/repositories/command-normalization.ts +53 -0
- package/src/cli/repositories/command-scope.ts +264 -0
- package/src/cli/repositories/controller-home.ts +88 -0
- package/src/cli/repositories/entity-migration.ts +199 -0
- package/src/cli/repositories/ephemeral-workspace.ts +62 -0
- package/src/cli/repositories/git-command-executor.ts +301 -0
- package/src/cli/repositories/goal-registry.ts +239 -0
- package/src/cli/repositories/identity.ts +64 -0
- package/src/cli/repositories/local-project-onboarding.ts +539 -0
- package/src/cli/repositories/locks.ts +262 -0
- package/src/cli/repositories/registry.ts +1057 -0
- package/src/cli/repositories/runtime-storage.ts +411 -0
- package/src/cli/repositories/safe-patch.ts +421 -0
- package/src/cli/repositories/selected-path-actions.ts +341 -0
- package/src/cli/repositories/structured-git.ts +257 -0
- package/src/cli/repositories/types.ts +155 -0
- package/src/cli/repositories/umbrella.ts +134 -0
- package/src/cli/repositories/workbench.ts +140 -0
- package/src/cli/repositories/worktree-storage.ts +137 -0
- package/src/cli/repository/inspector.ts +637 -0
- package/src/cli/repository/session-cache.ts +453 -0
- package/src/cli/runtime/helper-runner.ts +172 -0
- package/src/cli/runtime-invocation.ts +318 -0
- package/src/cli/tools/codegraph.ts +676 -0
- package/src/cli/v81-entry.ts +29 -0
- package/src/core/adoption/gitignore-plan.ts +127 -0
- package/src/core/adoption/helper-wrapper-plan.ts +159 -0
- package/src/core/adoption/manifest-templates.ts +60 -0
- package/src/core/adoption/modes.ts +7 -0
- package/src/core/adoption/operations.ts +126 -0
- package/src/core/adoption/plan.ts +149 -0
- package/src/core/adoption/render.ts +70 -0
- package/src/core/adoption/rollback.ts +62 -0
- package/src/core/adoption/summary.ts +43 -0
- package/src/core/adoption/workflow-contract-asset.ts +14 -0
- package/src/core/adoption/workflow-contract-plan.ts +31 -0
- package/src/effects/fs-transaction.ts +540 -0
- package/src/effects/git-executable.ts +59 -0
- package/src/effects/managed-block.ts +86 -0
- package/src/effects/path-safety.ts +47 -0
- package/src/effects/process-runner.ts +192 -0
- package/src/runtime/assistant/action-proposals.ts +279 -0
- package/src/runtime/assistant/intent.ts +395 -0
- package/src/runtime/assistant/model-provider.ts +460 -0
- package/src/runtime/assistant/openapi.ts +223 -0
- package/src/runtime/assistant/policy.ts +89 -0
- package/src/runtime/assistant/readiness.ts +258 -0
- package/src/runtime/assistant/routine-runtime.ts +477 -0
- package/src/runtime/assistant/schedule-binding.ts +171 -0
- package/src/runtime/assistant/standing-grants.ts +375 -0
- package/src/runtime/assistant/store.ts +243 -0
- package/src/runtime/assistant/types.ts +135 -0
- package/src/runtime/context/codegraph-read-provider.ts +347 -0
- package/src/runtime/context/codegraph-sidecar.cjs +207 -0
- package/src/runtime/control-plane/dispatch-priority.ts +67 -0
- package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +151 -0
- package/src/runtime/control-plane/execution/execution-identity.ts +456 -0
- package/src/runtime/control-plane/execution/session-store.ts +175 -0
- package/src/runtime/control-plane/execution/validation.ts +117 -0
- package/src/runtime/control-plane/execution/verification-evidence.ts +191 -0
- package/src/runtime/control-plane/execution/work-handle-store.ts +225 -0
- package/src/runtime/control-plane/execution/work-prepare-request-store.ts +159 -0
- package/src/runtime/control-plane/execution/work-task-receipt.ts +445 -0
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +821 -0
- package/src/runtime/control-plane/facade/capability-registry.ts +279 -0
- package/src/runtime/control-plane/facade/check-normalization.ts +233 -0
- package/src/runtime/control-plane/facade/codex-delegation.ts +196 -0
- package/src/runtime/control-plane/facade/controller-session-store.ts +199 -0
- package/src/runtime/control-plane/facade/facade-result.ts +41 -0
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +177 -0
- package/src/runtime/control-plane/facade/goal-workloop.ts +1216 -0
- package/src/runtime/control-plane/facade/handoff-inbox-store.ts +221 -0
- package/src/runtime/control-plane/facade/index.ts +16 -0
- package/src/runtime/control-plane/facade/operation-digest.ts +528 -0
- package/src/runtime/control-plane/facade/plan-contract-store.ts +403 -0
- package/src/runtime/control-plane/facade/policy-gate.ts +149 -0
- package/src/runtime/control-plane/facade/requirement-board.ts +280 -0
- package/src/runtime/control-plane/facade/self-healing-loop.ts +555 -0
- package/src/runtime/control-plane/facade/suggested-actions.ts +108 -0
- package/src/runtime/control-plane/facade/types.ts +729 -0
- package/src/runtime/control-plane/facade/work-admission-policy.ts +93 -0
- package/src/runtime/control-plane/facade/work-continuation.ts +104 -0
- package/src/runtime/control-plane/facade/work-contract-store.ts +1118 -0
- package/src/runtime/control-plane/facade/work-task-projection.ts +66 -0
- package/src/runtime/control-plane/global-scheduler/reconciliation.ts +365 -0
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +920 -0
- package/src/runtime/control-plane/global-scheduler/wake-signal.ts +89 -0
- package/src/runtime/control-plane/goal-loop/config-facade.ts +700 -0
- package/src/runtime/control-plane/goal-loop/config-store.ts +570 -0
- package/src/runtime/control-plane/goal-loop/config-types.ts +213 -0
- package/src/runtime/control-plane/goal-loop/executor-router.ts +109 -0
- package/src/runtime/control-plane/goal-loop/failure-taxonomy.ts +149 -0
- package/src/runtime/control-plane/goal-loop/goal-contract-store.ts +304 -0
- package/src/runtime/control-plane/goal-loop/goal-loop-engine.ts +1001 -0
- package/src/runtime/control-plane/goal-loop/handoff-packet.ts +160 -0
- package/src/runtime/control-plane/goal-loop/index.ts +13 -0
- package/src/runtime/control-plane/goal-loop/local-tools.ts +290 -0
- package/src/runtime/control-plane/goal-loop/policy-gates.ts +203 -0
- package/src/runtime/control-plane/goal-loop/provider-dispatch.ts +93 -0
- package/src/runtime/control-plane/goal-loop/provider-registry.ts +545 -0
- package/src/runtime/control-plane/goal-loop/types.ts +378 -0
- package/src/runtime/control-plane/governance/access-policy.ts +147 -0
- package/src/runtime/control-plane/governance/authorization.ts +195 -0
- package/src/runtime/control-plane/governance/external-effects.ts +43 -0
- package/src/runtime/control-plane/launcher/thin-launcher.ts +97 -0
- package/src/runtime/control-plane/persistence/metadata-payload-policy.ts +53 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +241 -0
- package/src/runtime/control-plane/persistence/sqlite-store.ts +539 -0
- package/src/runtime/control-plane/release-retention.ts +447 -0
- package/src/runtime/control-plane/repo-actor/actor.ts +181 -0
- package/src/runtime/control-plane/repo-actor/registry.ts +20 -0
- package/src/runtime/control-plane/routing/index.ts +1 -0
- package/src/runtime/control-plane/routing/route-policy.ts +379 -0
- package/src/runtime/control-plane/runtime-cleanup.ts +727 -0
- package/src/runtime/control-plane/runtime-generation.ts +509 -0
- package/src/runtime/control-plane/runtime-pid-ownership.ts +11 -0
- package/src/runtime/control-plane/runtime-status-client.ts +90 -0
- package/src/runtime/control-plane/startup-recovery.ts +198 -0
- package/src/runtime/diagnostics/connectivity-observability.ts +475 -0
- package/src/runtime/diagnostics/mcp-timing.ts +64 -0
- package/src/runtime/diagnostics/performance.ts +379 -0
- package/src/runtime/diagnostics/process-facade.ts +350 -0
- package/src/runtime/diagnostics/read-only-tool.ts +226 -0
- package/src/runtime/evidence/artifact-store.ts +154 -0
- package/src/runtime/evidence/event-ledger.ts +80 -0
- package/src/runtime/evidence/evidence-store.ts +68 -0
- package/src/runtime/evidence/process-check-receipt.ts +43 -0
- package/src/runtime/evidence/result-store.ts +209 -0
- package/src/runtime/evidence/sensitive-output.ts +353 -0
- package/src/runtime/execution/jobs/child-reference.ts +124 -0
- package/src/runtime/execution/jobs/legacy-adapter.ts +22 -0
- package/src/runtime/execution/jobs/receipt-recovery.ts +119 -0
- package/src/runtime/execution/jobs/receipt-store.ts +243 -0
- package/src/runtime/execution/jobs/store.ts +737 -0
- package/src/runtime/execution/jobs/timeouts.ts +109 -0
- package/src/runtime/execution/jobs/types.ts +230 -0
- package/src/runtime/execution/jobs/wait.ts +45 -0
- package/src/runtime/execution/process-runtime/canary.ts +26 -0
- package/src/runtime/execution/process-runtime/check-facade.ts +272 -0
- package/src/runtime/execution/process-runtime/check-receipt.ts +185 -0
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +60 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +321 -0
- package/src/runtime/execution/process-runtime/gc.ts +171 -0
- package/src/runtime/execution/process-runtime/index.ts +9 -0
- package/src/runtime/execution/process-runtime/interactive-admission.ts +23 -0
- package/src/runtime/execution/process-runtime/process-runner-entry.ts +466 -0
- package/src/runtime/execution/process-runtime/resource-claims.ts +440 -0
- package/src/runtime/execution/process-runtime/runtime.ts +1816 -0
- package/src/runtime/execution/process-runtime/store.ts +687 -0
- package/src/runtime/execution/process-runtime/types.ts +352 -0
- package/src/runtime/execution/thin-harness/async-process.ts +181 -0
- package/src/runtime/execution/thin-harness/batch-executor.ts +671 -0
- package/src/runtime/execution/thin-harness/execution-router.ts +700 -0
- package/src/runtime/execution/thin-harness/fast-executor.ts +1263 -0
- package/src/runtime/execution/thin-harness/fast-receipt.ts +235 -0
- package/src/runtime/execution/thin-harness/fingerprint-worker.ts +191 -0
- package/src/runtime/execution/thin-harness/index.ts +13 -0
- package/src/runtime/execution/thin-harness/latency-trace.ts +107 -0
- package/src/runtime/execution/thin-harness/lightweight-lanes.ts +745 -0
- package/src/runtime/execution/thin-harness/mutation-gate.ts +578 -0
- package/src/runtime/execution/thin-harness/proposal-store.ts +409 -0
- package/src/runtime/execution/thin-harness/request-ledger.ts +595 -0
- package/src/runtime/execution/thin-harness/search-worker.ts +114 -0
- package/src/runtime/execution/thin-harness/types.ts +313 -0
- package/src/runtime/execution/thin-harness/workspace-savepoint.ts +333 -0
- package/src/runtime/execution/workers/executor.ts +687 -0
- package/src/runtime/execution/workers/ownership.ts +94 -0
- package/src/runtime/execution/workers/worker-entry.ts +277 -0
- package/src/runtime/gateway/mcp/execution-tools.ts +2009 -0
- package/src/runtime/gateway/mcp/persisted-check-process.ts +255 -0
- package/src/runtime/gateway/mcp/process-tools.ts +230 -0
- package/src/runtime/gateway/mcp/resource-policy.ts +195 -0
- package/src/runtime/gateway/mcp/router.ts +1088 -0
- package/src/runtime/gateway/mcp/runtime-tools.ts +5994 -0
- package/src/runtime/gateway/mcp/work-validation-reconciler.ts +219 -0
- package/src/runtime/health/evaluator.ts +474 -0
- package/src/runtime/health/index.ts +2 -0
- package/src/runtime/health/operational-view.ts +198 -0
- package/src/runtime/maintenance/cleanup.ts +419 -0
- package/src/runtime/model-clients/deepseek-adapter.ts +312 -0
- package/src/runtime/model-clients/index.ts +2 -0
- package/src/runtime/model-clients/types.ts +101 -0
- package/src/runtime/observability/gateway-contention-metrics.ts +129 -0
- package/src/runtime/observability/route-session-benchmark.ts +110 -0
- package/src/runtime/personal-assistant/gmail-triage-manager.ts +231 -0
- package/src/runtime/personal-assistant/reporting-runtime.ts +344 -0
- package/src/runtime/personal-assistant/triage-runtime.ts +748 -0
- package/src/runtime/plugins/app-store-connect-adapter.ts +868 -0
- package/src/runtime/plugins/browser-adapter.ts +2812 -0
- package/src/runtime/plugins/browser-automation-service.ts +46 -0
- package/src/runtime/plugins/browser-handoff-host.ts +304 -0
- package/src/runtime/plugins/browser-handoff.ts +371 -0
- package/src/runtime/plugins/browser-macos-bridge.ts +865 -0
- package/src/runtime/plugins/browser-node-bridge-host.ts +64 -0
- package/src/runtime/plugins/browser-node-bridge.ts +249 -0
- package/src/runtime/plugins/desktop-adapter.ts +374 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +418 -0
- package/src/runtime/plugins/errors.ts +39 -0
- package/src/runtime/plugins/execution-origin.ts +26 -0
- package/src/runtime/plugins/external-adapter.ts +322 -0
- package/src/runtime/plugins/external-registration.ts +308 -0
- package/src/runtime/plugins/external-unix-socket-probe.cjs +79 -0
- package/src/runtime/plugins/external-unix-socket.ts +238 -0
- package/src/runtime/plugins/first-party-registry.ts +37 -0
- package/src/runtime/plugins/github-adapter.ts +266 -0
- package/src/runtime/plugins/gmail-adapter.ts +729 -0
- package/src/runtime/plugins/google-calendar-adapter.ts +468 -0
- package/src/runtime/plugins/google-shared.ts +578 -0
- package/src/runtime/plugins/google-tasks-adapter.ts +535 -0
- package/src/runtime/plugins/interaction-session.ts +252 -0
- package/src/runtime/plugins/ios/agent-device-capabilities.ts +258 -0
- package/src/runtime/plugins/ios/agent-device-failures.ts +95 -0
- package/src/runtime/plugins/ios/agent-device-provider.ts +63 -0
- package/src/runtime/plugins/ios/agent-device-typed-provider.ts +268 -0
- package/src/runtime/plugins/ios/app-adapters.ts +122 -0
- package/src/runtime/plugins/ios-adapter.ts +509 -0
- package/src/runtime/plugins/ios-agent-device.ts +2311 -0
- package/src/runtime/plugins/ios-physical-device.ts +955 -0
- package/src/runtime/plugins/local-system-adapter.ts +1016 -0
- package/src/runtime/plugins/macos-capability-broker.ts +73 -0
- package/src/runtime/plugins/managed-process-adapter.ts +366 -0
- package/src/runtime/plugins/resend-adapter.ts +506 -0
- package/src/runtime/plugins/store.ts +1025 -0
- package/src/runtime/plugins/types.ts +138 -0
- package/src/runtime/projections/controller-context.ts +596 -0
- package/src/runtime/projections/git-status-sampler.ts +84 -0
- package/src/runtime/projections/invalidation.ts +250 -0
- package/src/runtime/projections/materialized-view.ts +694 -0
- package/src/runtime/recovery/actions.ts +158 -0
- package/src/runtime/recovery/audit.ts +38 -0
- package/src/runtime/recovery/classifier.ts +163 -0
- package/src/runtime/recovery/index.ts +9 -0
- package/src/runtime/recovery/local-jobs-repair.ts +393 -0
- package/src/runtime/recovery/maintenance-executor.ts +822 -0
- package/src/runtime/recovery/patch-handoff.ts +50 -0
- package/src/runtime/recovery/probe.ts +308 -0
- package/src/runtime/recovery/store.ts +35 -0
- package/src/runtime/recovery/types.ts +175 -0
- package/src/runtime/release/identity.ts +101 -0
- package/src/runtime/release/release-gate.ts +137 -0
- package/src/runtime/resources/claims/conflicts.ts +205 -0
- package/src/runtime/resources/index.ts +1 -0
- package/src/runtime/resources/leases/store.ts +539 -0
- package/src/runtime/resources/leases/types.ts +50 -0
- package/src/runtime/resources/ownership.ts +72 -0
- package/src/runtime/root/controller-services.ts +42 -0
- package/src/runtime/root/entry.ts +70 -0
- package/src/runtime/root/gateway-adapter.ts +46 -0
- package/src/runtime/root/local-bridge.ts +72 -0
- package/src/runtime/root/mcp-transport.ts +198 -0
- package/src/runtime/root/ownership.ts +94 -0
- package/src/runtime/root/readiness.ts +69 -0
- package/src/runtime/root/release-manifest.ts +147 -0
- package/src/runtime/root/release-materialize.ts +509 -0
- package/src/runtime/root/release-store.ts +236 -0
- package/src/runtime/root/runtime.ts +318 -0
- package/src/runtime/root/scheduler.ts +58 -0
- package/src/runtime/root/service-runner-entry.ts +20 -0
- package/src/runtime/root/service-runner.ts +69 -0
- package/src/runtime/root/service.ts +291 -0
- package/src/runtime/root/status.ts +127 -0
- package/src/runtime/root/types.ts +112 -0
- package/src/runtime/root/write-fence.ts +309 -0
- package/src/runtime/safe-tooling/browser-safe.ts +133 -0
- package/src/runtime/safe-tooling/external-filesystem.ts +304 -0
- package/src/runtime/safe-tooling/google-credential-store.ts +95 -0
- package/src/runtime/safe-tooling/google-oauth-broker.ts +286 -0
- package/src/runtime/safe-tooling/index.ts +11 -0
- package/src/runtime/safe-tooling/ios-development.ts +1039 -0
- package/src/runtime/safe-tooling/job-summary.ts +361 -0
- package/src/runtime/safe-tooling/plugin-summary.ts +53 -0
- package/src/runtime/safe-tooling/resend-oauth.ts +387 -0
- package/src/runtime/safe-tooling/review-artifacts.ts +133 -0
- package/src/runtime/safe-tooling/types.ts +103 -0
- package/src/runtime/safe-tooling/workspace-auth.ts +116 -0
- package/src/runtime/shared/bounded-child-supervisor.ts +235 -0
- package/src/runtime/shared/idempotent-retry.ts +128 -0
- package/src/runtime/shared/json-files.ts +43 -0
- package/src/runtime/shared/local-bridge-surface.ts +231 -0
- package/src/runtime/shared/managed-env.ts +154 -0
- package/src/runtime/shared/node-ts-loader.mjs +50 -0
- package/src/runtime/shared/process-environment.ts +97 -0
- package/src/runtime/shared/process-identity.ts +72 -0
- package/src/runtime/shared/process-tree.ts +227 -0
- package/src/runtime/shared/response-budget.ts +246 -0
- package/src/runtime/standalone-recovery/core.ts +2275 -0
- package/src/runtime/standalone-recovery/entry.ts +686 -0
- package/src/runtime/standalone-recovery/http-transport.ts +317 -0
- package/src/runtime/standalone-recovery/installer.ts +747 -0
- package/src/runtime/standalone-recovery/release.ts +241 -0
- package/src/runtime/watchdog/workflow-watchdog.ts +118 -0
- package/src/runtime/workflow/campaigns/cleanup.ts +263 -0
- package/src/runtime/workflow/campaigns/engine.ts +112 -0
- package/src/runtime/workflow/campaigns/normalize.ts +100 -0
- package/src/runtime/workflow/campaigns/review.ts +315 -0
- package/src/runtime/workflow/campaigns/store.ts +526 -0
- package/src/runtime/workflow/campaigns/supervisor.ts +112 -0
- package/src/runtime/workflow/campaigns/types.ts +290 -0
- package/src/runtime/workflow/campaigns/workspace-agent.ts +155 -0
- package/src/runtime/workflow/campaigns/workspace.ts +200 -0
- package/src/runtime/workflow/findings/store.ts +165 -0
- package/src/runtime/workflow/findings/types.ts +36 -0
- package/src/runtime/workflow/portfolio/engine.ts +20 -0
- package/src/runtime/workflow/portfolio/store.ts +185 -0
- package/src/runtime/workflow/portfolio/types.ts +29 -0
- package/src/runtime/workflow/schedules/engine.ts +620 -0
- package/src/runtime/workflow/schedules/settlement.ts +144 -0
- package/src/runtime/workflow/schedules/store.ts +417 -0
- package/src/runtime/workflow/schedules/types.ts +124 -0
- package/src/runtime/workspace-targets/index.ts +24 -0
- package/src/runtime/workspace-targets/target-grant.ts +721 -0
- package/src/testing/test-governance.ts +626 -0
- package/src/version.ts +21 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Route and Session Concurrency Baseline
|
|
2
|
+
|
|
3
|
+
Baseline date: 2026-08-09
|
|
4
|
+
|
|
5
|
+
This baseline is generated by the repository benchmark rather than hand-authored:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
bun run benchmark:route-session-concurrency --iterations 7 \
|
|
9
|
+
--output docs/operations/route-session-concurrency-baseline.json
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
The JSON output contains every measured phase for every scenario, p50/p95/p99, success rate, timeout rate, contention rate, failure rate, and the derived threshold. The threshold policy is:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
max(1 ms, observed p99 * 1.25, observed p95 * 1.5)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The one-millisecond floor means an unused or sub-millisecond phase still has a non-zero governance value. Thresholds are a baseline comparison signal, not a reason to add waiting or to hide contention.
|
|
19
|
+
|
|
20
|
+
## Measured scenario summary
|
|
21
|
+
|
|
22
|
+
All values are milliseconds. `threshold` is the derived wall-clock threshold except where a phase is explicitly named.
|
|
23
|
+
|
|
24
|
+
| Scenario | p50 | p95 | p99 | Threshold | Result |
|
|
25
|
+
| --- | ---: | ---: | ---: | ---: | --- |
|
|
26
|
+
| Context cold read | 0.13 | 26.26 | 26.26 | 40 | 100% success, 0% timeout |
|
|
27
|
+
| Context warm read | 0.07 | 0.11 | 0.11 | 1 | 100% success, 0% timeout |
|
|
28
|
+
| Requirement Board read | 1.72 | 13.17 | 13.17 | 20 | 100% success, 0% timeout |
|
|
29
|
+
| Work prepare | 1.05 | 1.77 | 1.77 | 3 | 100% success, 0% timeout |
|
|
30
|
+
| Direct Edit claim | 9.52 | 12.23 | 12.23 | 19 | 100% success, 0% contention |
|
|
31
|
+
| Durable Process submit | 36.51 | 41.32 | 41.32 | 62 | 100% success, 0% timeout |
|
|
32
|
+
| Process start | 66.22 | 74.74 | 74.74 | 113 | 100% success, 0% timeout |
|
|
33
|
+
| Check completion | 80.99 | 112.45 | 112.45 | 169 | 100% success, 0% timeout |
|
|
34
|
+
| Concurrent two-repository Process writes | 199.09 | 217.13 | 217.13 | 326 | 100% success, 0% timeout |
|
|
35
|
+
| Same repository, real different-checkout writes | 200.89 | 217.73 | 217.73 | 327 | 100% success, 0% contention |
|
|
36
|
+
| Same checkout real Process contention | 288.41 | 293.64 | 293.64 | 441 | 100% contention, 0% failure |
|
|
37
|
+
| Check coalescing/reuse/invalidation cycle | 435.95 | 475.88 | 475.88 | 714 | 100% success, 0% timeout |
|
|
38
|
+
| Gateway restart recovery | 97.58 | 98.43 | 98.43 | 148 | 100% success, 0% timeout |
|
|
39
|
+
|
|
40
|
+
The cold-read distribution includes the initial Git/projection observation: Git observation and projection p95/p99 were 26.24 ms, with a 40 ms derived phase threshold. Warm projection p95/p99 was 0.10 ms. Requirement Board storage p95/p99 was 13.17 ms. Work prepare storage p95/p99 was 1.77 ms. Direct Edit lock wait p95/p99 was 12.23 ms. Same-checkout contention rejected the second physical Process with `PROCESS_LEASE_CONFLICT`; bounded end-to-end Lease admission was p50 39.02 ms and p95/p99 43.84 ms. Gateway restart storage re-read p50 was 0.18 ms and p95/p99 was 0.67 ms.
|
|
41
|
+
|
|
42
|
+
## Physical concurrency and cache evidence
|
|
43
|
+
|
|
44
|
+
The benchmark now uses two temporary Git repositories plus one real `git worktree`, registered as two checkouts of the same repository. Every concurrency sample launches Process Runners and writes an ignored marker in the intended checkout; it no longer substitutes context reads or invented checkout ids for physical work.
|
|
45
|
+
|
|
46
|
+
Across seven iterations:
|
|
47
|
+
|
|
48
|
+
- two-repository concurrency: 14 logical subscribers, 14 physical executions, 14 independently verified repo identities;
|
|
49
|
+
- same-repository/different-checkout concurrency: 14 logical subscribers, 14 physical executions, 14 independently verified checkout identities;
|
|
50
|
+
- same-checkout contention: 14 logical submissions, 7 physical executions, and 7 bounded Lease conflicts; no blocked marker was written;
|
|
51
|
+
- Check cache: 28 logical subscribers, 14 physical executions, 7 active coalesces, 7 completed cache hits across the clean worktree, and 7 dirty-workspace invalidations.
|
|
52
|
+
|
|
53
|
+
The Check identity is repository-scoped in the durable binding and content-bound by the workspace revision, check definition digest, environment/toolchain fingerprint, timeout contract, and safe reuse scope. Dependency lockfiles and relevant repository config participate through the content revision. Session and request ids are deliberately subscriber identity, not cache-key inputs. Cross-checkout reuse is enabled only when both checkouts are clean and the check declares fingerprintable read-only effects; the dirty-workspace sample changes the content fingerprint, narrows reuse to checkout scope, and forces a new Process.
|
|
54
|
+
|
|
55
|
+
`durable_job_submit` measures durable Process admission and persistence because new ExecutionJob creation is retired. `gateway_restart_recovery` reads the persisted Process handle from a fresh store access before terminal completion.
|
|
56
|
+
|
|
57
|
+
## Required interpretation
|
|
58
|
+
|
|
59
|
+
- Same-checkout contention is successful behavior when it returns a bounded contention result. It is therefore reported with contention rate 1.0 and failure rate 0.
|
|
60
|
+
- Different checkouts and different repositories must retain success rate 1.0 in the baseline matrix.
|
|
61
|
+
- Cache accounting must retain the invariant `physicalExecutions < logicalSubscribers` only when the report also proves coalescing/reuse and explicit invalidation with distinct Process ids.
|
|
62
|
+
- An increase must be investigated by phase. Raising a timeout or adding a global lock is not an acceptable remediation.
|
|
63
|
+
- A new baseline must be generated from the benchmark on the candidate committed HEAD. Do not manually edit percentile or threshold values.
|
|
64
|
+
- The benchmark uses temporary controller homes and temporary Git repositories, so it does not mutate registered production repositories.
|
|
65
|
+
|
|
66
|
+
## T2 prior failure classification
|
|
67
|
+
|
|
68
|
+
The previous T2 Work failed verification before commit because its isolated worktree had not materialized Bun type dependencies. `tsc` reported `TS2688: Cannot find type definition file for 'bun'`; the fallback command also resolved dependencies during verification and changed its input state. This was an infrastructure/dependency-materialization failure, not evidence that the resolver implementation was invalid.
|
|
69
|
+
|
|
70
|
+
The corrected procedure is:
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
bun install --frozen-lockfile
|
|
74
|
+
./node_modules/.bin/tsc --noEmit
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The frozen install prevents verification from silently changing the lockfile or selecting a different dependency graph.
|
|
78
|
+
|
|
79
|
+
## Validation set
|
|
80
|
+
|
|
81
|
+
Run the following on the candidate HEAD:
|
|
82
|
+
|
|
83
|
+
```sh
|
|
84
|
+
bun test tests/runtime/diagnostic-process-invocation.test.ts
|
|
85
|
+
bun test tests/runtime/thin-harness.test.ts
|
|
86
|
+
bun test tests/runtime/thin-harness-gateway-routing.test.ts
|
|
87
|
+
bun run benchmark:route-session-concurrency --iterations 7
|
|
88
|
+
bun run check:type
|
|
89
|
+
bun run check:runtime-architecture
|
|
90
|
+
bun run check:forge-runtime
|
|
91
|
+
bun run test
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Also run the focused projection/source-identity tests selected by the test manifest. The committed benchmark JSON and all validation receipts must identify the same final HEAD.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Runtime performance diagnostics
|
|
2
|
+
|
|
3
|
+
Forge exposes a read-only runtime_performance_diagnostics MCP tool for host-level performance inspection.
|
|
4
|
+
|
|
5
|
+
It is intended for questions such as:
|
|
6
|
+
|
|
7
|
+
- Why is Forge using CPU while the queue is empty?
|
|
8
|
+
- Are there orphan job-worker processes?
|
|
9
|
+
- Is the Local Controller actually running even if persisted runtime state is stale?
|
|
10
|
+
- Which temporary Forge directories are stale cleanup candidates?
|
|
11
|
+
|
|
12
|
+
The tool returns controller queue state, bounded Forge process samples, orphan worker detection, Local Controller process inference, temporary directory accumulation, and a no-side-effect cleanup preview.
|
|
13
|
+
|
|
14
|
+
The cleanup preview is intentionally non-destructive. Terminating processes or deleting temporary directories must remain a separate explicit operation.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# SQLite control-plane backup and recovery
|
|
2
|
+
|
|
3
|
+
Status: current runbook
|
|
4
|
+
Authority: `<durable-controller-home>/control-plane.sqlite`
|
|
5
|
+
|
|
6
|
+
## Safety boundary
|
|
7
|
+
|
|
8
|
+
Recovery restores only a verified SQLite backup. Do not copy, replay or merge
|
|
9
|
+
repository Issue/Task JSON, Markdown, project-state, task-ledger output or an
|
|
10
|
+
offline export into an existing control-plane database. Those files are frozen
|
|
11
|
+
compatibility material and may be stale.
|
|
12
|
+
|
|
13
|
+
Canonical Runtime bootstrap and standalone Recovery retain their minimum
|
|
14
|
+
capability without consulting legacy Issue/Task files. If the database is
|
|
15
|
+
unavailable, Recovery may diagnose, require the Runtime to be stopped, inspect
|
|
16
|
+
local backups and restore a verified database; it must not synthesize authority
|
|
17
|
+
from Git JSON.
|
|
18
|
+
|
|
19
|
+
## Backup
|
|
20
|
+
|
|
21
|
+
1. Resolve the durable Controller home and exact repository/check-out identity.
|
|
22
|
+
2. Create a new backup path; never overwrite an earlier backup.
|
|
23
|
+
3. Use the control-plane backup API, which snapshots through SQLite and then
|
|
24
|
+
verifies `quick_check`, the required schema, required tables, record count and
|
|
25
|
+
audit continuity.
|
|
26
|
+
4. Record the repository ID, checkout ID, branch and HEAD associated with the
|
|
27
|
+
backup evidence. Do not place secrets, credentials, logs or binaries in the
|
|
28
|
+
database or backup metadata.
|
|
29
|
+
|
|
30
|
+
A backup is not restorable merely because it is a readable file. It must pass
|
|
31
|
+
the same supported-schema and audit-continuity validation as the live database.
|
|
32
|
+
The database and every backup are local project-execution data below Controller
|
|
33
|
+
Home. They are never committed, packaged, embedded in a Runtime release, listed
|
|
34
|
+
as manifest payload, or sent to another user; only schema compatibility metadata
|
|
35
|
+
belongs to the distributed release contract.
|
|
36
|
+
|
|
37
|
+
## Restore
|
|
38
|
+
|
|
39
|
+
1. Fence normal control-plane writers.
|
|
40
|
+
2. Verify the candidate backup before changing the live path.
|
|
41
|
+
3. Copy it to a staging path under the durable Controller home.
|
|
42
|
+
4. Re-run integrity, schema and audit-continuity checks against staging.
|
|
43
|
+
5. Remove stale WAL/SHM sidecars and atomically rename staging into the live
|
|
44
|
+
`control-plane.sqlite` path.
|
|
45
|
+
6. Reopen the database and verify Requirement, Plan, PlanStep and Work
|
|
46
|
+
relationships, revisions and exact repository/check-out/branch/HEAD
|
|
47
|
+
identity.
|
|
48
|
+
7. Restart the daemon and compare Requirement Board plus Execution Diagnostics
|
|
49
|
+
with the pre-restart inspection.
|
|
50
|
+
|
|
51
|
+
A failed staging verification leaves the current authority untouched. Never
|
|
52
|
+
replace corruption with an empty database and never downgrade an unknown
|
|
53
|
+
required schema version.
|
|
54
|
+
|
|
55
|
+
## Acceptance checks
|
|
56
|
+
|
|
57
|
+
A recovery is accepted only when:
|
|
58
|
+
|
|
59
|
+
- SQLite integrity is `ok`;
|
|
60
|
+
- the schema version is supported;
|
|
61
|
+
- every current record revision has a matching audit event;
|
|
62
|
+
- Requirement-to-Plan and Plan-to-Work relationships are preserved;
|
|
63
|
+
- repository, checkout, branch and HEAD identity are unchanged;
|
|
64
|
+
- daemon restart produces the same authoritative state;
|
|
65
|
+
- no Issue/Task, `currentIssue`, legacy board or export file was used as input.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Standalone disaster recovery
|
|
2
|
+
|
|
3
|
+
`forge-recovery` is an independent, fixed-command recovery service family. It is not a second primary Runtime owner and it does not start, stop, restart, repair, or roll out individual core components.
|
|
4
|
+
|
|
5
|
+
## Authority boundaries
|
|
6
|
+
|
|
7
|
+
The primary application has three relevant records under Controller Home:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
runtime/active-runtime-owner.json live Canonical Runtime ownership
|
|
11
|
+
runtime/status.json read-only Runtime status projection
|
|
12
|
+
runtime/releases/authority.json atomic active/previous whole-release authority
|
|
13
|
+
runtime/releases/backups/*.sqlite local pre-upgrade database backups
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Recovery reads those records and probes the configured Runtime MCP endpoint. It does not connect to a Supervisor socket, select a blue/green slot, submit component operations, or infer authority from a source checkout.
|
|
17
|
+
|
|
18
|
+
SQLite rows are local project-execution state. Database files and backups remain below Controller Home and are never included in source control, a package, an immutable release, a release manifest, or data distributed to another user. The release manifest carries only SQLite schema compatibility metadata.
|
|
19
|
+
|
|
20
|
+
## Recovery service state
|
|
21
|
+
|
|
22
|
+
Recovery-owned configuration, evidence, locks and audit records remain below:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
controller-home/recovery/
|
|
26
|
+
├── config/
|
|
27
|
+
├── releases/
|
|
28
|
+
├── state/
|
|
29
|
+
├── locks/
|
|
30
|
+
├── audit/
|
|
31
|
+
├── tmp/
|
|
32
|
+
└── launchd/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Recovery release binaries may be installed independently so diagnostics remain available when the primary Runtime is down. That independent installation does not grant primary Runtime lifecycle authority.
|
|
36
|
+
|
|
37
|
+
## Fixed recovery surface
|
|
38
|
+
|
|
39
|
+
The CLI and Recovery MCP surface expose bounded operations:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
runtime_status
|
|
43
|
+
verify_stable_runtime
|
|
44
|
+
verify_external_runtime
|
|
45
|
+
list_releases
|
|
46
|
+
attest_known_good
|
|
47
|
+
restart_primary_runtime
|
|
48
|
+
recover_primary_runtime
|
|
49
|
+
rollback_previous
|
|
50
|
+
activate_runtime_release
|
|
51
|
+
restart_public_tunnel
|
|
52
|
+
reconnect_primary_connector
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`restart_primary_runtime` restarts only the installed canonical Forge Runtime service and requires whole-Runtime verification. `recover_primary_runtime` is the complete failure transaction: stop the canonical service, restore the attested previous whole release and its SQLite backup, restart the service, and require verification.
|
|
56
|
+
|
|
57
|
+
`activate_runtime_release` is the controlled bootstrap/upgrade escape hatch. It accepts an already staged and validated immutable Runtime release manifest and executes the same bounded transaction without depending on the primary Runtime execution plane: stop the complete canonical service, atomically switch active/previous whole-release authority with a local SQLite backup, start the one Runtime service, require whole-Runtime verification, and on failure restore the previous whole release and its SQLite backup before restarting. The candidate must match its manifest artifact identity and database schema compatibility; a fenced or stale primary Runtime is never required to stage, validate, or activate the release.
|
|
58
|
+
|
|
59
|
+
`runtime_status` reads canonical Runtime observation. `list_releases` reads the whole-release authority. `attest_known_good` succeeds only after Runtime status, release identity, authenticated MCP initialization, tools/list, and the configured read-only MCP call pass together.
|
|
60
|
+
|
|
61
|
+
The Recovery Gateway listens on loopback, uses a separate scoped credential, bounds request/output size, and stores no primary MCP credential in logs. External HTTPS verification uses the trusted system curl transport; temporary headers, MCP payloads and session identifiers are written only to bounded mode-0600 files below `recovery/tmp` and are removed after each request.
|
|
62
|
+
|
|
63
|
+
## Whole-Runtime rollback
|
|
64
|
+
|
|
65
|
+
The rollback primitive is deliberately offline, while `recover_primary_runtime` owns the complete bounded service transaction:
|
|
66
|
+
|
|
67
|
+
1. acquire the cross-process Recovery mutation lock;
|
|
68
|
+
2. boot out the canonical Forge Runtime launchd service;
|
|
69
|
+
3. prove the active Runtime owner is no longer running;
|
|
70
|
+
4. require an independently attested previous whole release with a verified local SQLite backup;
|
|
71
|
+
5. back up the current local SQLite database;
|
|
72
|
+
6. restore the previous local backup;
|
|
73
|
+
7. atomically switch active/previous whole-release authority;
|
|
74
|
+
8. start the same canonical Forge Runtime service, which reads the newly selected active release;
|
|
75
|
+
9. require whole-Runtime verification;
|
|
76
|
+
10. if the restored release fails verification, stop the service to prevent an automatic restart loop.
|
|
77
|
+
|
|
78
|
+
Recovery never rolls back Gateway, Controller Services, Scheduler, MCP Transport, Worker code, configuration, or database independently. They move as one release compatibility set. If the authority commit fails after database restoration, the rollback implementation restores the just-created current backup.
|
|
79
|
+
|
|
80
|
+
## Watchdog rules
|
|
81
|
+
|
|
82
|
+
One watchdog tick performs at most one mutation under the cross-process Recovery lock.
|
|
83
|
+
|
|
84
|
+
Allowed self-repair is narrow and ordered:
|
|
85
|
+
|
|
86
|
+
1. restart the standalone Recovery Gateway when only its own loopback health fails;
|
|
87
|
+
2. restart the explicitly configured Recovery public tunnel when local Runtime and Recovery health are good but that external endpoint fails;
|
|
88
|
+
3. after a sustained local whole-Runtime failure, restart the canonical Forge Runtime service with a bounded attempt count and cooldown;
|
|
89
|
+
4. only after those restart attempts are exhausted, require sustained multi-signal evidence, an unattested active release, and an independently attested previous release before executing automatic whole-Runtime recovery;
|
|
90
|
+
5. stop, roll back, restart, and verify under one Recovery mutation lock.
|
|
91
|
+
|
|
92
|
+
The watchdog cannot launch an Agent, edit a source checkout, generate repair scripts, mutate repository files, restart an individual core module, or select a Runtime slot. A brief outage remains diagnostic evidence and does not trigger rollback. Default policy permits at most three primary Runtime restart attempts before rollback eligibility is evaluated. Failed recovery transactions are independently cooldown-bounded; `rollbackUsed` becomes permanent only after the previous whole-release authority actually commits, so a transient lock or service-stop failure neither causes a retry storm nor suppresses recovery forever.
|
|
93
|
+
|
|
94
|
+
## Installation
|
|
95
|
+
|
|
96
|
+
Build, canary, and activate the immutable Recovery release with the public CLI:
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
forge recovery install \
|
|
100
|
+
--controller-home /absolute/controller-home \
|
|
101
|
+
--public-mcp-url https://mcp.example.com/mcp \
|
|
102
|
+
--recovery-public-url https://recovery.example.com/recovery/mcp \
|
|
103
|
+
--recovery-tunnel-service-label com.example.forge-recovery-tunnel \
|
|
104
|
+
--recovery-tunnel-service-plist /absolute/path/com.example.forge-recovery-tunnel.plist
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Use `--stage-only` to build and canary without activating Gateway or Watchdog services. The source-level `bun scripts/install-standalone-recovery.ts` entry remains an internal packaging primitive, not a second operator surface.
|
|
108
|
+
|
|
109
|
+
A public Recovery endpoint is optional for local-only operations. A ChatGPT Recovery Connector requires an explicit HTTPS Recovery URL and its dedicated tunnel service owner. Print the exact non-secret connector descriptor with:
|
|
110
|
+
|
|
111
|
+
```sh
|
|
112
|
+
forge recovery connector --controller-home /absolute/controller-home
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The installer owns publication and activation. Before registering `com.moretea.forge-recovery-gateway` and `com.moretea.forge-recovery-watchdog`, it exits and removes stale Recovery services discovered under the Recovery-owned launchd directory. Configuration is rewritten from the current schema and does not preserve retired ingress, agent-repair, or legacy tunnel fields. Direct reload scripts are not a second mutation path.
|
|
116
|
+
|
|
117
|
+
Forge deliberately has no blue-green Runtime topology. There is one active whole-release authority and one canonical service. Candidate validation happens before activation; activation stops the complete Runtime, switches the atomic active release, starts one Runtime, and gates on whole-Runtime readiness. Failure restores the previous whole release and its bound SQLite backup.
|
|
118
|
+
|
|
119
|
+
No rollout, service installation, or live restart is implied by source changes. Activating a new primary Runtime release still requires separate explicit authorization and exact release evidence.
|
|
120
|
+
|
|
121
|
+
## Operator CLI
|
|
122
|
+
|
|
123
|
+
The `forge recovery` command exposes the same bounded lifecycle surface as the Recovery Gateway tools, so routine maintenance never requires hand-written `launchctl`:
|
|
124
|
+
|
|
125
|
+
```sh
|
|
126
|
+
forge recovery status --controller-home /absolute/controller-home
|
|
127
|
+
forge recovery verify --controller-home /absolute/controller-home
|
|
128
|
+
forge recovery restart-runtime --controller-home /absolute/controller-home
|
|
129
|
+
forge recovery recover --controller-home /absolute/controller-home
|
|
130
|
+
forge recovery rollback --controller-home /absolute/controller-home
|
|
131
|
+
forge recovery restart --controller-home /absolute/controller-home
|
|
132
|
+
forge recovery install --controller-home /absolute/controller-home
|
|
133
|
+
forge recovery activate-runtime --controller-home /absolute/controller-home --release-manifest /absolute/staged-release/manifest.json
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
`forge runtime status --controller-home /absolute/controller-home` reads the canonical Runtime status projection. `forge runtime service install --stage-only` builds and validates an immutable Runtime release without publishing it; the staged manifest can then be activated through `forge recovery activate-runtime` when the primary Runtime is fenced or unavailable.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Installation and Connection Troubleshooting
|
|
2
|
+
|
|
3
|
+
## `forge` is not found after installation
|
|
4
|
+
|
|
5
|
+
Reopen the terminal first. With npm, inspect the global prefix with `npm config get prefix`; its executable directory must be on `PATH`. With Bun, ensure the Bun bin directory is on `PATH`.
|
|
6
|
+
|
|
7
|
+
Verify the runtimes:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node --version
|
|
11
|
+
npm --version
|
|
12
|
+
bun --version # optional
|
|
13
|
+
forge --version
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Doctor reports missing Git or Node
|
|
17
|
+
|
|
18
|
+
Install Git and Node.js 20.10 or newer, then open a new terminal. Node is required even when the package was installed with Bun because the published launcher uses Node.
|
|
19
|
+
|
|
20
|
+
## Native Windows stops at a shell-owned step
|
|
21
|
+
|
|
22
|
+
Use WSL2 for repository adoption, Bash hooks, source release checks, or shell lifecycle scripts. Native Windows intentionally skips the Bash skill-sync and automatic CodeGraph steps.
|
|
23
|
+
|
|
24
|
+
## MCP works locally but ChatGPT cannot connect
|
|
25
|
+
|
|
26
|
+
`http://127.0.0.1:8765/mcp` is local-only. ChatGPT needs a stable public HTTPS URL ending in `/mcp`. Check the tunnel, the exact path, and `forge mcp doctor`. Do not expose the local Controller UI port publicly.
|
|
27
|
+
|
|
28
|
+
## MCP config seems to be in the wrong place
|
|
29
|
+
|
|
30
|
+
Current service-level MCP config lives under Controller Home, not as the primary repo-local source:
|
|
31
|
+
|
|
32
|
+
- `controllerHome/mcp/mcp.local.json`
|
|
33
|
+
- `controllerHome/mcp/mcp.tokens.json`
|
|
34
|
+
- `controllerHome/mcp/mcp.oauth.json`
|
|
35
|
+
- `controllerHome/mcp/mcp.oauth-tokens.json`
|
|
36
|
+
- `controllerHome/mcp/mcp.runtime.json`
|
|
37
|
+
|
|
38
|
+
Controller Home is the sole authority for service-level MCP configuration. Repository-scoped `.forge/mcp.policy.json` remains the repository access policy; repository-local service configuration is unsupported. Rerun `forge mcp setup chatgpt --repo /path/to/your-project`, then verify the active endpoint and server name from Controller Home.
|
|
39
|
+
|
|
40
|
+
## Only some tools appear in ChatGPT
|
|
41
|
+
|
|
42
|
+
The default controller uses a stable repair-capable schema (normally 100–128 tools). Request/Full Access never changes that schema. Compare `expectedToolCount`, `actualToolCount`, `missingTools`, `unexpectedTools`, and the fingerprint from `rh_status` or `controller_ready`. Reconnect only when the Connector snapshot itself is stale, not after a permission change.
|
|
43
|
+
|
|
44
|
+
## Runtime storage is not ready or the Local UI looks stale
|
|
45
|
+
|
|
46
|
+
Do not delete `.ai/harness`, `.forge`, or Controller Home state as a first response. Start with bounded diagnostics:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
forge mcp doctor --repo /path/to/your-project
|
|
50
|
+
forge repo list --json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If you are using the operator surfaces, inspect the runtime-maintenance path before restarting or replaying writes. The self-healing and reliability docs describe the safe recovery flow:
|
|
54
|
+
|
|
55
|
+
- `runtime_maintenance_status`
|
|
56
|
+
- `runtime_maintenance_apply`
|
|
57
|
+
- [Self-healing loop](../forge-runtime-self-healing-loop.md)
|
|
58
|
+
- [Controller reliability runbook](controller-reliability-runbook.md)
|
|
59
|
+
|
|
60
|
+
A `502`, reconnect, or truncated response does not prove a durable write failed. Confirm the Job, Run, or evidence summary before retrying the mutation.
|
|
61
|
+
|
|
62
|
+
## Agent delegation is unavailable
|
|
63
|
+
|
|
64
|
+
Core Direct Edit and repository workflows still work. Install and authenticate Codex or Claude, then restart MCP with the dev runner explicitly enabled. Do not enable agent flags in the basic setup unless the CLI is present.
|
|
65
|
+
|
|
66
|
+
## Repository paths behave differently between Windows and WSL2
|
|
67
|
+
|
|
68
|
+
Do not share one active checkout between native Windows and WSL2. Clone inside the environment that runs Forge and register that path. This avoids file-mode, line-ending, symlink, and performance problems.
|
|
69
|
+
|
|
70
|
+
## Release checks fail on personal paths or logs
|
|
71
|
+
|
|
72
|
+
Remove tracked runtime state, absolute home paths, credentials, logs, PID files, and generated artifacts. Do not add broad allowlist entries to silence genuine findings.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# 安装与连接故障排查
|
|
2
|
+
|
|
3
|
+
## 安装后找不到 `forge`
|
|
4
|
+
|
|
5
|
+
先重新打开终端。npm 用户可执行 `npm config get prefix`,确认其可执行目录已加入 `PATH`;Bun 用户确认 Bun bin 目录已加入 `PATH`。
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node --version
|
|
9
|
+
npm --version
|
|
10
|
+
bun --version # 可选
|
|
11
|
+
forge --version
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Doctor 提示缺少 Git 或 Node
|
|
15
|
+
|
|
16
|
+
安装 Git 和 Node.js 20.10+ 后重新打开终端。即使 package 由 Bun 安装,发布后的启动器仍由 Node 执行,因此 Node 是基础依赖。
|
|
17
|
+
|
|
18
|
+
## Windows 原生流程停在 shell 步骤
|
|
19
|
+
|
|
20
|
+
仓库接入、Bash Hook、源码发布检查或 shell 生命周期脚本请使用 WSL2。Windows 原生会主动跳过 Bash skill 同步和 CodeGraph 自动配置。
|
|
21
|
+
|
|
22
|
+
## 本机 MCP 正常,但 ChatGPT 无法连接
|
|
23
|
+
|
|
24
|
+
`http://127.0.0.1:8765/mcp` 只能本机访问。ChatGPT 需要稳定的公网 HTTPS `/mcp` 地址。检查隧道、路径和 `forge mcp doctor`。不要把本地 Controller UI 端口暴露到公网。
|
|
25
|
+
|
|
26
|
+
## MCP 配置看起来写到了错误的位置
|
|
27
|
+
|
|
28
|
+
当前 service-level MCP 配置以 Controller Home 为主,不再以仓库内文件作为新安装主路径:
|
|
29
|
+
|
|
30
|
+
- `controllerHome/mcp/mcp.local.json`
|
|
31
|
+
- `controllerHome/mcp/mcp.tokens.json`
|
|
32
|
+
- `controllerHome/mcp/mcp.oauth.json`
|
|
33
|
+
- `controllerHome/mcp/mcp.oauth-tokens.json`
|
|
34
|
+
- `controllerHome/mcp/mcp.runtime.json`
|
|
35
|
+
|
|
36
|
+
Controller Home 是 service-level MCP 配置的唯一权威来源;仓库级 `.forge/mcp.policy.json` 仍是仓库访问策略。仓库内的 service 配置不再受支持。重新执行 `forge mcp setup chatgpt --repo /path/to/your-project` 后,从 Controller Home 核对当前 endpoint 与 server name。
|
|
37
|
+
|
|
38
|
+
## ChatGPT 只显示少量工具
|
|
39
|
+
|
|
40
|
+
默认 Controller 使用固定、可修复的工具 schema(通常 100–128 个工具)。Request/Full Access 不会改变 schema。请从 `rh_status` 或 `controller_ready` 对比 `expectedToolCount`、`actualToolCount`、缺失/意外工具和 fingerprint;只有 Connector 快照本身过期时才需要重连,权限切换不需要。
|
|
41
|
+
|
|
42
|
+
## runtime storage 未就绪,或本地 UI 看起来是旧状态
|
|
43
|
+
|
|
44
|
+
不要把删除 `.ai/harness`、`.forge` 或 Controller Home 状态当成第一反应。先做有界诊断:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
forge mcp doctor --repo /path/to/your-project
|
|
48
|
+
forge repo list --json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
如果你正在使用运维/高级工具面,先走 runtime maintenance 路径,再决定是否重启或重放写操作。安全恢复流程见:
|
|
52
|
+
|
|
53
|
+
- `runtime_maintenance_status`
|
|
54
|
+
- `runtime_maintenance_apply`
|
|
55
|
+
- [自修复闭环](../forge-runtime-self-healing-loop.md)
|
|
56
|
+
- [Controller 可靠性 runbook](controller-reliability-runbook.md)
|
|
57
|
+
|
|
58
|
+
看到 `502`、重连或大结果截断,不代表 durable 写入一定失败;先回到 Job、Run 或证据摘要确认真实状态。
|
|
59
|
+
|
|
60
|
+
## 无法委派 Agent
|
|
61
|
+
|
|
62
|
+
核心 Direct Edit 和仓库工作流仍可使用。安装并登录 Codex 或 Claude 后,再显式开启 dev runner。基础配置不应默认加入 Agent 参数。
|
|
63
|
+
|
|
64
|
+
## Windows 与 WSL2 路径行为不一致
|
|
65
|
+
|
|
66
|
+
不要让一个 checkout 同时由 Windows 和 WSL2 操作。在哪个环境运行 Forge,就在该环境内 clone 并注册仓库,避免文件 mode、换行、symlink 和性能问题。
|
|
67
|
+
|
|
68
|
+
## 发布检查发现个人路径或日志
|
|
69
|
+
|
|
70
|
+
应删除被跟踪的运行态、绝对用户目录、凭据、日志、PID 和生成物,不要用大范围 allowlist 掩盖真实问题。
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Public Usage Guide
|
|
2
|
+
|
|
3
|
+
Use this page when you want the shortest current path through Forge without reading the entire docs tree first.
|
|
4
|
+
|
|
5
|
+
## Fast path
|
|
6
|
+
|
|
7
|
+
1. [Install and start](tutorials/01-install-and-start.md)
|
|
8
|
+
2. [Connect ChatGPT](tutorials/02-connect-chatgpt.md)
|
|
9
|
+
3. [Complete the first repository task](tutorials/03-first-repository-task.md)
|
|
10
|
+
|
|
11
|
+
## What Forge is
|
|
12
|
+
|
|
13
|
+
Forge is a local execution bridge that lets ChatGPT work on one or more repositories through a stable, bounded tool schema. The preferred orchestration tools are `rh_status`, `rh_access`, `rh_context`, `rh_work`, and `rh_inbox`, while the default schema also exposes practical Direct Edit, command, Git, Agent, Campaign, iOS, plugin, artifact, and recovery entry points.
|
|
14
|
+
|
|
15
|
+
Direct Edit is the default for small known changes. `quick_agent_session` provides a direct local Codex/Claude path without requiring an Issue or Task. Durable Issue → Task → Run flows remain available for work that must survive sessions, carry dependencies, or preserve formal review evidence. Request/Full Access changes approval behavior only and never requires reconnecting the MCP Connector.
|
|
16
|
+
|
|
17
|
+
## Current runtime facts
|
|
18
|
+
|
|
19
|
+
- Controller Home is primary for MCP service config, authentication, and runtime state under `controllerHome/mcp/`: `mcp.local.json`, `mcp.tokens.json`, `mcp.oauth.json`, `mcp.oauth-tokens.json`, and `mcp.runtime.json`.
|
|
20
|
+
- The matching repo-local `.Forge/mcp.local.json`, `.Forge/mcp.tokens.json`, `.Forge/mcp.oauth.json`, `.Forge/mcp.oauth-tokens.json`, and `.Forge/mcp.runtime.json` files are legacy fallback only. Repository-scoped `.Forge/mcp.policy.json` remains the access policy.
|
|
21
|
+
- The controller is global across registered repositories, but repository work still routes by explicit `repoId` and `checkoutId`.
|
|
22
|
+
- The public MCP endpoint is separate from the localhost-only Local Controller UI on `127.0.0.1:8766`. The UI is an execution-assistant console with Command Center, Approvals and Decisions, Current Work, Capabilities / Plugins, Models / Tools, System Status, Repositories, and Advanced Diagnostics.
|
|
23
|
+
- Long-running work returns durable Jobs/Runs with bounded previews. Check those records before assuming a `502`, reconnect, or truncated response means the write failed.
|
|
24
|
+
|
|
25
|
+
## Choose the next guide by goal
|
|
26
|
+
|
|
27
|
+
- Need install and connector setup: [Tutorials](tutorials/README.md)
|
|
28
|
+
- Need manual MCP/tunnel details: [Forge ChatGPT MCP setup](Forge-chatgpt-mcp-setup.md)
|
|
29
|
+
- Need provider or executor routing: [Provider configuration and routing](operations/provider-configuration.md)
|
|
30
|
+
- Need browser, Gmail/Calendar, or other plugins: [Documentation hub](README.md)
|
|
31
|
+
- Need troubleshooting or runtime-storage recovery: [Troubleshooting](operations/troubleshooting.md), [Self-healing loop](Forge-runtime-self-healing-loop.md)
|
|
32
|
+
|
|
33
|
+
For the broader map, use the maintained [documentation hub](README.md).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 公开使用指南
|
|
2
|
+
|
|
3
|
+
如果你只想用最短路径理解并开始使用 Forge,先看这一页。
|
|
4
|
+
|
|
5
|
+
## 最短路径
|
|
6
|
+
|
|
7
|
+
1. [安装并启动](tutorials/01-install-and-start.zh-CN.md)
|
|
8
|
+
2. [连接 ChatGPT](tutorials/02-connect-chatgpt.zh-CN.md)
|
|
9
|
+
3. [完成第一个仓库任务](tutorials/03-first-repository-task.zh-CN.md)
|
|
10
|
+
|
|
11
|
+
## Forge 是什么
|
|
12
|
+
|
|
13
|
+
Forge 是一个本地执行桥,让 ChatGPT 通过固定且有边界的工具 schema 处理一个或多个仓库。日常编排优先使用 `rh_status`、`rh_access`、`rh_context`、`rh_work` 和 `rh_inbox`;默认工具面同时提供 Direct Edit、命令、Git、Agent、Campaign、iOS、插件、artifact 和恢复能力。
|
|
14
|
+
|
|
15
|
+
小而确定的修改默认走 Direct Edit;`quick_agent_session` 可以直接调用本地 Codex/Claude,不强制先创建 Issue 或 Task。需要跨会话恢复、带依赖拆分或保留正式审查证据的工作,仍可进入 durable 的 Issue → Task → Run 路径。Request/Full Access 只改变审批行为,不会要求重连 MCP Connector。
|
|
16
|
+
|
|
17
|
+
## 当前运行时事实
|
|
18
|
+
|
|
19
|
+
- Controller Home 是 MCP service 配置、认证和运行态的主存储位置;`controllerHome/mcp/` 下保存 `mcp.local.json`、`mcp.tokens.json`、`mcp.oauth.json`、`mcp.oauth-tokens.json` 和 `mcp.runtime.json`。
|
|
20
|
+
- 对应的 repo-local `.Forge/mcp.local.json`、`.Forge/mcp.tokens.json`、`.Forge/mcp.oauth.json`、`.Forge/mcp.oauth-tokens.json`、`.Forge/mcp.runtime.json` 只用于 legacy fallback;仓库级 `.Forge/mcp.policy.json` 仍是访问策略文件。
|
|
21
|
+
- Controller 是跨已注册仓库的全局服务,但仓库工作仍通过显式 `repoId` 和 `checkoutId` 路由。
|
|
22
|
+
- 公网 MCP endpoint 与 `127.0.0.1:8766` 上仅限本机访问的 Local Controller UI 是不同入口。当前 UI 是执行助手控制台,包含指挥中心、审批与决定、当前任务、能力 / 插件、模型与工具、系统状态、仓库和高级诊断。
|
|
23
|
+
- 长任务默认返回 durable Job / Run 的摘要和有界预览;看到 `502`、重连或大结果截断时,先确认 Job / Run 状态,不要直接假定写入失败。
|
|
24
|
+
|
|
25
|
+
## 按目标继续阅读
|
|
26
|
+
|
|
27
|
+
- 需要安装和 Connector 细节:看 [教程目录](tutorials/README.zh-CN.md)
|
|
28
|
+
- 需要 MCP / 隧道 / OAuth 手动配置:看 [Forge ChatGPT MCP 配置](Forge-chatgpt-mcp-setup.md)
|
|
29
|
+
- 需要 provider 或 executor 路由:看 [Provider 配置与路由](operations/provider-configuration.md)
|
|
30
|
+
- 需要浏览器、Gmail/Calendar 或其他插件:看持续维护的 [文档中心](README.md)
|
|
31
|
+
- 需要故障排查或 runtime-storage 恢复:看 [故障排查](operations/troubleshooting.zh-CN.md) 和 [自修复闭环](Forge-runtime-self-healing-loop.md)
|
|
32
|
+
|
|
33
|
+
更完整的导航请回到持续维护的[文档中心](README.md)。
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Tutorial 1: Install and start
|
|
2
|
+
|
|
3
|
+
This tutorial installs the CLI, initializes the user-level runtime, checks the host, and registers one repository.
|
|
4
|
+
|
|
5
|
+
## 1. Platform and prerequisites
|
|
6
|
+
|
|
7
|
+
- macOS or Linux: full supported workflow.
|
|
8
|
+
- Windows: use WSL2 for the full workflow.
|
|
9
|
+
- Native Windows PowerShell: preview support for installation, doctor, repository registration/inspection, and portable controller operations.
|
|
10
|
+
|
|
11
|
+
Install Git, Node.js 20.10 or newer, npm, and a writable home directory. Bun 1.0+ is optional and recommended for source development and the complete test suite.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
git --version
|
|
15
|
+
node --version
|
|
16
|
+
npm --version
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
See [Platform Support](../operations/platform-support.md) for the exact matrix.
|
|
20
|
+
|
|
21
|
+
## 2. Install the CLI
|
|
22
|
+
|
|
23
|
+
Release candidates are published on npm's `next` channel:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g @moretea-labs/forge@next
|
|
27
|
+
# or
|
|
28
|
+
bun add -g @moretea-labs/forge@next
|
|
29
|
+
forge --version
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
For Forge source development, install from the repository instead:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git clone https://github.com/moretea-labs/forge.git
|
|
36
|
+
cd forge
|
|
37
|
+
npm ci --ignore-scripts --no-audit --no-fund
|
|
38
|
+
npm install -g . --omit=optional --no-audit --no-fund
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The package exposes exactly `forge`, `forge-hook`, and `forge-runtime`. Release candidates use `next`; stable releases use `latest`.
|
|
42
|
+
|
|
43
|
+
## 3. Open the guided setup session
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
forge --version
|
|
47
|
+
forge setup open --target both
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`forge setup open` creates or resumes one user-level setup session below `~/.forge/setup/`. It runs the readiness checks and prints exactly one next configuration action. Complete that action, then continue with the same command loop:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
forge setup next
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Repeat `forge setup next` until the session reports `ready`, then close it:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
forge setup close
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Use `forge setup status` to inspect the persisted session and `forge setup check` for a one-shot read-only report. `--target codex` or `--target claude` limits host-specific configuration. The setup session never silently performs remote, secret-bearing, destructive, or service-installing actions.
|
|
63
|
+
|
|
64
|
+
## 4. Adopt or register a repository
|
|
65
|
+
|
|
66
|
+
For macOS, Linux, or WSL2, preview adoption first:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
forge adopt --repo /path/to/your-project --dry-run
|
|
70
|
+
forge adopt --repo /path/to/your-project
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
All platforms can register explicitly:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
forge repo register /path/to/your-project --name my-project --json
|
|
77
|
+
forge repo list --json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Keep the returned `repoId`; it is the stable repository identity used by ChatGPT and the Controller.
|
|
81
|
+
|
|
82
|
+
## 5. Confirm readiness
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
forge setup status
|
|
86
|
+
forge doctor
|
|
87
|
+
forge status --json
|
|
88
|
+
forge repo list --json
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Runtime state belongs in Controller Home and ignored repository links, not in public source control. Never commit tokens, MCP runtime files, local jobs, logs, or generated worktrees.
|
|
92
|
+
|
|
93
|
+
Continue with [Tutorial 2: Connect ChatGPT](02-connect-chatgpt.md). For errors, use [Troubleshooting](../operations/troubleshooting.md).
|