@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,82 @@
|
|
|
1
|
+
# Control-plane authority inventory
|
|
2
|
+
|
|
3
|
+
Status: current implementation
|
|
4
|
+
Cutover date: 2026-08-05
|
|
5
|
+
|
|
6
|
+
## Invariant
|
|
7
|
+
|
|
8
|
+
Each mutable control-plane record family has exactly one writer. For the
|
|
9
|
+
migrated families below that writer targets
|
|
10
|
+
`<durable-controller-home>/control-plane.sqlite`. Git stores source and accepted
|
|
11
|
+
documentation; artifact roots store bounded external evidence. Neither is a
|
|
12
|
+
second lifecycle writer.
|
|
13
|
+
|
|
14
|
+
## Mutable families and writers
|
|
15
|
+
|
|
16
|
+
| Family | SQLite identity | Sole writer boundary | Read/default projection |
|
|
17
|
+
| --- | --- | --- | --- |
|
|
18
|
+
| Requirement | `requirement/controller/<requirementId>` | Requirement store and Requirement facade CAS operations | Requirement Board |
|
|
19
|
+
| ExecutionPlan | `plan_contract/<repoId>/<planId>` | Plan-contract store and migrated completion transaction | Requirement Board and Execution Diagnostics |
|
|
20
|
+
| PlanStep | versioned member of its ExecutionPlan row | Plan mutation transaction; never Task JSON | Execution Diagnostics; deprecated Task alias derives from this state |
|
|
21
|
+
| Work and Requirement/Plan relationship | Work/contract namespaces scoped to repository | Work lifecycle store | Execution Diagnostics |
|
|
22
|
+
| Portfolio migration marker | `requirement_portfolio_migration/<repoId>/requirement-portfolio-20260802-v1` | one-time migration transaction | cutover guard and audit diagnostics |
|
|
23
|
+
| Revision/audit | `control_plane_records`, `control_plane_audit` | SQLite store transaction | integrity and recovery inspection |
|
|
24
|
+
| Repository identity | Git and repository registry, not Issue/Task | repository registration and Git observation paths | Work/diagnostic identity fields |
|
|
25
|
+
| Logs, binaries and large evidence | artifact files referenced by stable IDs | process/check/artifact owners | evidence references only |
|
|
26
|
+
|
|
27
|
+
## Frozen compatibility surfaces
|
|
28
|
+
|
|
29
|
+
The following surfaces have no durable runtime mutation authority after the
|
|
30
|
+
migration marker exists:
|
|
31
|
+
|
|
32
|
+
- repository Issue JSON/Markdown creation, status, archive and update;
|
|
33
|
+
- repository Task status, verification, completion and dependency mutation;
|
|
34
|
+
- `currentIssue` and legacy project-state mutation;
|
|
35
|
+
- legacy project-board mutation and default Issue/Task board;
|
|
36
|
+
- task-ledger and handoff artifact writes;
|
|
37
|
+
- governance reconciliation that mutates Issue/Task/project state;
|
|
38
|
+
- MCP aliases for legacy Issue/Task/currentIssue mutation;
|
|
39
|
+
- Local Bridge Issue/Task/currentIssue mutation routes;
|
|
40
|
+
- fallback overwrite or repository-to-SQLite reconciliation;
|
|
41
|
+
- Work-to-Task durable reverse projection.
|
|
42
|
+
|
|
43
|
+
Pre-cutover parsing helpers and ephemeral Issue support may remain for an
|
|
44
|
+
unmigrated fixture or historical tool compatibility. Every durable public entry
|
|
45
|
+
checks the migration marker before reading or writing a legacy file. This is not
|
|
46
|
+
a dual-writer allowance.
|
|
47
|
+
|
|
48
|
+
## Compatibility read contract
|
|
49
|
+
|
|
50
|
+
A historical Issue/Task alias may appear only in Execution Diagnostics or an
|
|
51
|
+
explicit legacy read API. Its state is derived from authoritative Requirement,
|
|
52
|
+
ExecutionPlan, PlanStep and Work rows. Responses identify themselves as
|
|
53
|
+
`deprecated`, `frozen`, `readOnly` and `controller-home-sqlite` authoritative.
|
|
54
|
+
Changing the source Issue/Task file after cutover cannot alter the projection.
|
|
55
|
+
|
|
56
|
+
The default user view is Requirement Board. It does not select a
|
|
57
|
+
`currentIssue`, expose a mutable legacy board or infer execution state from Git
|
|
58
|
+
JSON.
|
|
59
|
+
|
|
60
|
+
## Export contract
|
|
61
|
+
|
|
62
|
+
`requirement-portfolio-export` is SQLite-to-offline only. It includes the source
|
|
63
|
+
revision, migration fingerprint, per-record SQLite revisions and a content
|
|
64
|
+
fingerprint. Publication is staged and atomic. It cannot target `tasks/issues`,
|
|
65
|
+
has `replayAllowed: false`, and export failure does not affect the committed
|
|
66
|
+
SQLite transaction.
|
|
67
|
+
|
|
68
|
+
## Deletion verification
|
|
69
|
+
|
|
70
|
+
The final cutover tests prove:
|
|
71
|
+
|
|
72
|
+
1. all durable Issue/Task writer entry points fail at the cutover guard;
|
|
73
|
+
2. no source file contains both an authoritative SQLite writer call and a
|
|
74
|
+
legacy writer call;
|
|
75
|
+
3. no reverse export importer or stale-projection replay path exists;
|
|
76
|
+
4. late legacy writes leave SQLite-derived views unchanged;
|
|
77
|
+
5. Canonical Runtime and standalone Recovery minimum bootstrap do not depend on
|
|
78
|
+
legacy Issue/Task files.
|
|
79
|
+
|
|
80
|
+
Any later non-critical compatibility residue is recorded as a
|
|
81
|
+
MaintenanceFinding. It does not reopen a completed Requirement unless the user
|
|
82
|
+
outcome itself regresses.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Controller 与仓库解耦计划
|
|
2
|
+
|
|
3
|
+
## 背景
|
|
4
|
+
|
|
5
|
+
forge 已经具备 Repository Registry、`repoId`、`checkoutId` 和 controller home 运行态目录,但历史启动入口仍然以 `--repo` 为中心。这会让 MCP Gateway、Local Bridge 和具体仓库之间的边界变得模糊:服务看起来像是“从某个仓库启动并代表该仓库”,而不是“全局 controller 服务管理多个仓库”。
|
|
6
|
+
|
|
7
|
+
目标架构应改为:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
ChatGPT / Local UI
|
|
11
|
+
-> MCP Gateway / Local Bridge
|
|
12
|
+
-> Controller Runtime
|
|
13
|
+
-> Repository Registry
|
|
14
|
+
-> repoId + checkoutId scoped repository operation
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
`repoRoot` 只应在注册仓库、兼容旧配置、具体执行命令时出现;服务级配置和运行态应逐步迁移到 controller home。
|
|
18
|
+
|
|
19
|
+
## 命名边界
|
|
20
|
+
|
|
21
|
+
- **MCP Gateway**:ChatGPT 连接的全局工具网关,不应绑定某个仓库身份。
|
|
22
|
+
- **Local Bridge**:本机 Local Workbench/API 兼容名称,负责本地 GUI、移动 intent、本地任务入口。
|
|
23
|
+
- **Repository**:被注册、选择、执行的工作目标。
|
|
24
|
+
- **repoId / checkoutId**:所有仓库级操作的显式作用域。
|
|
25
|
+
- **repoRoot**:仓库本地路径,只在注册和执行层使用。
|
|
26
|
+
|
|
27
|
+
## 分阶段改动
|
|
28
|
+
|
|
29
|
+
### Phase 1:文档与入口语义收敛
|
|
30
|
+
|
|
31
|
+
- 将 `--repo` 描述为兼容默认仓库和配置引导入口。
|
|
32
|
+
- 文档中明确 MCP Gateway / Local Bridge 是全局 controller 服务。
|
|
33
|
+
- GUI 和用户文案避免把 Local Bridge 暴露成用户需要理解的概念。
|
|
34
|
+
|
|
35
|
+
### Phase 2:Local Bridge 支持 repoId-scoped 业务入口
|
|
36
|
+
|
|
37
|
+
先不迁移存储,降低风险。
|
|
38
|
+
|
|
39
|
+
- `LocalBridgeServerOptions` 保留 `repoRoot` 作为兼容 fallback。
|
|
40
|
+
- 新增 `controllerHome` 和 `defaultRepoId` 选项。
|
|
41
|
+
- `/api/snapshot`、`/api/user-snapshot` 支持 `?repoId=` 和 `?checkoutId=`。
|
|
42
|
+
- 新增 `/api/repositories/:repoId/snapshot`。
|
|
43
|
+
- 新增 `/api/repositories/:repoId/user-snapshot`。
|
|
44
|
+
- 仓库列表按 selected repoId 标记 current,而不是只能按启动 repoRoot 判断。
|
|
45
|
+
- completion、progress、governance、assistant readiness/intent 和 recovery probe/plan/apply 入口通过 request 解析目标仓库。
|
|
46
|
+
- assistant inbox/routines/memory、runtime cleanup、mobile devices 入口通过 request 解析目标仓库。
|
|
47
|
+
- project-state、issue focus、launch/archive/restore、task launch/verify/accept/request-changes/cancel/dependencies 和 timeline 入口通过 request 解析目标仓库。
|
|
48
|
+
- task detail、worklog export、edit session list/detail/diff/savepoint/verify/finalize/rollback 入口通过 request 解析目标仓库。
|
|
49
|
+
- plugin、GitHub sync、browser target、DeepSeek handoff/request 入口通过 request 解析目标仓库。
|
|
50
|
+
- local jobs 与 runs 的 detail/log/events/finish/diff/integrate/cancel/retry 入口通过 request 解析目标仓库。
|
|
51
|
+
|
|
52
|
+
### Phase 3:迁移服务级运行态到 controllerHome
|
|
53
|
+
|
|
54
|
+
后续迁移应拆独立任务,避免和 UI/执行逻辑混在一起。
|
|
55
|
+
|
|
56
|
+
MCP service-level 配置以 controller home 为 authority:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
controllerHome/
|
|
60
|
+
mcp/mcp.local.json
|
|
61
|
+
mcp/mcp.runtime.json
|
|
62
|
+
mcp/mcp.oauth.json
|
|
63
|
+
mcp/mcp.oauth-tokens.json
|
|
64
|
+
mcp/mcp.tokens.json
|
|
65
|
+
local-bridge/server.json
|
|
66
|
+
local-bridge/sessions.json
|
|
67
|
+
plugins/*.json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
继续 repo-scoped:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
controllerHome/repositories/<repoId>/runs
|
|
74
|
+
controllerHome/repositories/<repoId>/local-jobs
|
|
75
|
+
controllerHome/repositories/<repoId>/worktrees
|
|
76
|
+
controllerHome/repositories/<repoId>/edit-sessions
|
|
77
|
+
controllerHome/repositories/<repoId>/artifacts
|
|
78
|
+
controllerHome/repositories/<repoId>/controller-state
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
仓库目录可继续保留 repo policy、兼容 symlink / projection,以及 MCP 旧版本 fallback:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
.forge/mcp.policy.json
|
|
85
|
+
.forge/mcp.local.json # legacy service config fallback
|
|
86
|
+
.forge/mcp.tokens.json # legacy bearer fallback
|
|
87
|
+
.forge/mcp.oauth.json # legacy OAuth passphrase fallback
|
|
88
|
+
.forge/mcp.oauth-tokens.json # legacy OAuth token-store fallback
|
|
89
|
+
.forge/mcp.runtime.json # legacy runtime fallback
|
|
90
|
+
.forge/plugins/*.json
|
|
91
|
+
.forge/external-filesystem-grants.json
|
|
92
|
+
.ai/harness/* # compatibility/projection only
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 兼容策略
|
|
96
|
+
|
|
97
|
+
- 多仓库启用时,MCP 工具和 Local Bridge 写操作必须显式携带 `repoId`,不能靠启动目录猜测。
|
|
98
|
+
- 单仓库启用时可以保留 sole repository fallback。
|
|
99
|
+
- `--repo` 在迁移完成前继续可用,但不应被描述为服务身份。
|
|
100
|
+
- MCP service-level 配置读取顺序为 controllerHome 优先、repo-local `.forge/mcp.*` legacy fallback 其次;新 controller profile setup/restart/keepalive 写入 controllerHome。
|
|
101
|
+
|
|
102
|
+
## 当前完成状态
|
|
103
|
+
|
|
104
|
+
- 已新增 Local Bridge request-level repo selection helper。
|
|
105
|
+
- 已让 `/api/snapshot` 和 `/api/user-snapshot` 支持 repoId / checkoutId。
|
|
106
|
+
- 已新增 repoId-scoped snapshot 和 user-snapshot endpoints。
|
|
107
|
+
- 已将主要 Local Bridge 业务 API 改为 request-scoped repo selection,包括 completion、progress、governance、assistant、recovery、project-state、issue/task、timeline、worklog、edit-session、plugin、GitHub、toolchain、local jobs 和 runs。
|
|
108
|
+
- 已将 README 的启动说明改为 registry-first / compatibility `--repo` 语义。
|
|
109
|
+
- MCP HTTP service-level 配置、auth token、OAuth passphrase/token store、public origin 和 runtime state 已迁移到 controllerHome-backed storage,并保留 `.forge/mcp.*` legacy fallback。
|
|
110
|
+
- 当前剩余的 `options.repoRoot` 用法集中在启动默认仓库 fallback、启动时 reconcile、stream signature、runtime policy/mobile intent 兼容入口、仓库列表默认选择和 server close/cache cleanup。
|
|
111
|
+
|
|
112
|
+
## 仍未完成的架构收口
|
|
113
|
+
|
|
114
|
+
### 1. MCP Gateway 身份边界复核
|
|
115
|
+
|
|
116
|
+
已复核 MCP Gateway 的 controller profile 主路径:
|
|
117
|
+
|
|
118
|
+
- `src/cli/mcp/server.ts` 在 controller profile 下创建 multi-repository context;`--repo .` 会被降级为未指定 repo,避免把当前目录强行当作服务身份。
|
|
119
|
+
- `src/cli/mcp/multi-repository.ts` 会给工具 schema 注入 `repo_id` / `checkout_id`,并在调用时通过 Repository Registry 解析目标仓库。
|
|
120
|
+
- 未传 `repo_id` 时只允许 explicit repository fallback 或 sole-repository fallback;多仓库场景应返回解析错误。
|
|
121
|
+
- MCP tool 调用会使用目标仓库的 `repository.canonicalRoot` 构造 scoped context,并把 repository/runtimeStorage envelope 写回结果。
|
|
122
|
+
- `src/cli/mcp/repository-tools.ts` 的 repository/git/safe-patch/command tools 已按 `repo_id` / `checkout_id` 解析目标仓库,并把 command job payload 绑定到 `repoId` / `checkoutId`。
|
|
123
|
+
|
|
124
|
+
durable router 和 runtime gateway 主路径均已完成补充复核:
|
|
125
|
+
|
|
126
|
+
- `src/runtime/gateway/mcp/router.ts` 会对可持久化 MCP 调用执行 `resolveRepositorySelection`,将 `repoId` / `checkoutId` 写入 ExecutionJob,并通过 `repositoryScopedToolArgs` 注入目标仓库上下文。
|
|
127
|
+
- controller-scoped repository tools 仅限 `repository_register` 以及未指定仓库的 `repository_workbench`;其他 repository tools 会解析目标仓库。
|
|
128
|
+
- `src/runtime/gateway/mcp/runtime-tools.ts` 的 tool definitions 暴露 `repo_id`,执行 helper `selected(ctx,args)` 使用 `repo_id` / `checkout_id` / explicit repository / sole-repository fallback 统一解析目标仓库;已抽查 work/git/local-bridge/plugin/recovery/iOS/review/runtime-cleanup 等工具段,均通过目标 repository 执行。
|
|
129
|
+
|
|
130
|
+
### 2. 服务级运行态迁移
|
|
131
|
+
|
|
132
|
+
MCP Gateway 的 service-level runtime/config 已迁移到 `controllerHome/mcp/mcp.*`,并将 repo-local `.forge/mcp.*` 降级为 legacy fallback。Local Bridge 仍保留 `options.repoRoot` 用于启动级 reconcile、stream signature、runtime policy 和缓存清理。短期允许作为 compatibility default;长期应迁移为 controller-home/global runtime state,并让 `repoRoot` 只出现在 repository registration 和 repository-scoped execution 层。
|
|
133
|
+
|
|
134
|
+
### 3. 最小多仓库验收
|
|
135
|
+
|
|
136
|
+
不需要膨胀测试,但至少应做以下针对性验证:
|
|
137
|
+
|
|
138
|
+
- 注册两个仓库后,分别请求 snapshot / issue / run / plugin API,不串仓。
|
|
139
|
+
- `repoId`、`checkoutId`、默认 fallback 三条路径行为明确且可解释。
|
|
140
|
+
- GUI 切换仓库后,所有业务请求携带选中的 repoId。
|
|
141
|
+
- Local Bridge 重启后,默认仓库只影响初始选择,不影响 request-scoped API。
|
|
142
|
+
|
|
143
|
+
## 后续验收点
|
|
144
|
+
|
|
145
|
+
- GUI 切换仓库后,请求应带 `repoId`,而不是依赖启动目录。
|
|
146
|
+
- 多仓库注册时,Local Bridge 首页应能显示所有仓库,并正确标记当前选择。
|
|
147
|
+
- MCP Gateway 启动和 ChatGPT Connector 配置应逐步不再要求用户位于某个仓库目录。
|
|
148
|
+
- repo-local `.forge/mcp.*` 文件只作为 legacy fallback;后续可在迁移窗口结束后进一步降级提示或清理。
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
# Dispatch and Agent Strategy
|
|
2
|
+
|
|
3
|
+
> Status: **Runtime Authority**
|
|
4
|
+
|
|
5
|
+
## 1. Objective
|
|
6
|
+
|
|
7
|
+
Dispatch converts a user or automation objective into the smallest safe execution mechanism. The goal is not to maximize Agent use. The goal is to select the least expensive mechanism that can produce reviewable evidence without losing recoverability.
|
|
8
|
+
|
|
9
|
+
The Controller owns dispatch decisions. Workers and Agents execute scoped contracts; they do not decide whether the system should have used Direct Edit, a durable Task, or another repository.
|
|
10
|
+
|
|
11
|
+
## 2. Work Assessment
|
|
12
|
+
|
|
13
|
+
Every change request is assessed before execution using:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
objective clarity
|
|
17
|
+
known paths
|
|
18
|
+
expected files
|
|
19
|
+
expected changed lines
|
|
20
|
+
investigation depth
|
|
21
|
+
runtime or environment dependencies
|
|
22
|
+
parallelism need
|
|
23
|
+
dependency graph need
|
|
24
|
+
verification duration
|
|
25
|
+
risk
|
|
26
|
+
external side effects
|
|
27
|
+
repository count
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The assessment produces:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
recommendedMode
|
|
34
|
+
confidence
|
|
35
|
+
reasons
|
|
36
|
+
requiredScope
|
|
37
|
+
requiredClaims
|
|
38
|
+
verificationClass
|
|
39
|
+
humanBoundary
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Repository search is an information-gathering step, not by itself a reason to start an Agent or create a durable Issue.
|
|
43
|
+
|
|
44
|
+
## 3. Execution Modes
|
|
45
|
+
|
|
46
|
+
### 3.1 Direct Edit
|
|
47
|
+
|
|
48
|
+
Direct Edit is the default when the Controller understands the implementation and can bound the change precisely.
|
|
49
|
+
|
|
50
|
+
Preferred characteristics:
|
|
51
|
+
|
|
52
|
+
- objective and behavior are understood;
|
|
53
|
+
- target paths can be found with bounded search;
|
|
54
|
+
- approximately eight or fewer files;
|
|
55
|
+
- approximately one thousand or fewer changed lines;
|
|
56
|
+
- no autonomous compile/fix loop is required;
|
|
57
|
+
- risk is not destructive;
|
|
58
|
+
- focused verification exists.
|
|
59
|
+
|
|
60
|
+
Flow:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
search/read
|
|
64
|
+
-> begin Edit Session
|
|
65
|
+
-> bounded revisions
|
|
66
|
+
-> inspect aggregate diff
|
|
67
|
+
-> focused checks
|
|
68
|
+
-> finalize or rollback
|
|
69
|
+
-> Task verification when linked
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Direct Edit MUST use the same Workspace single-writer resource boundary as a Workspace Agent.
|
|
73
|
+
|
|
74
|
+
### 3.2 Quick Agent
|
|
75
|
+
|
|
76
|
+
Quick Agent is used when the objective is clear but implementation requires meaningful exploration or repeated local edit/test cycles, without needing a durable multi-Task dependency graph.
|
|
77
|
+
|
|
78
|
+
Preferred characteristics:
|
|
79
|
+
|
|
80
|
+
- one coherent objective;
|
|
81
|
+
- one reviewable result;
|
|
82
|
+
- bounded path scope;
|
|
83
|
+
- no long-lived cross-session product workflow;
|
|
84
|
+
- retry can replace the whole attempt;
|
|
85
|
+
- Agent autonomy provides clear value over Direct Edit.
|
|
86
|
+
|
|
87
|
+
Quick Agent work may use ephemeral Issue metadata, but Job and Run evidence remain durable.
|
|
88
|
+
|
|
89
|
+
### 3.3 Issue and Task
|
|
90
|
+
|
|
91
|
+
A durable Issue/Task graph is required when work has one or more of:
|
|
92
|
+
|
|
93
|
+
- multiple independently verifiable objectives;
|
|
94
|
+
- dependencies or ordered migration phases;
|
|
95
|
+
- parallel implementation opportunities;
|
|
96
|
+
- high or destructive risk;
|
|
97
|
+
- protected or release-sensitive surfaces;
|
|
98
|
+
- cross-repository work;
|
|
99
|
+
- long-running verification or environment dependencies;
|
|
100
|
+
- schedule-driven recurrence;
|
|
101
|
+
- a need for review and recovery across multiple sessions;
|
|
102
|
+
- release or rollout coordination.
|
|
103
|
+
|
|
104
|
+
A durable Task is not ceremony. It is the unit that owns scope, dependencies, evidence, retry history, and acceptance.
|
|
105
|
+
|
|
106
|
+
## 4. Decision Order
|
|
107
|
+
|
|
108
|
+
The Controller applies this order:
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
1. Is the request read-only?
|
|
112
|
+
2. Can bounded Direct Edit safely satisfy it?
|
|
113
|
+
3. Is one scoped Agent attempt sufficient?
|
|
114
|
+
4. Does the work require a durable Task graph?
|
|
115
|
+
5. Does it cross repositories or require a Schedule?
|
|
116
|
+
6. Does any external or destructive boundary require human authorization?
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
The system MUST NOT default to Agent execution merely because an Agent is available.
|
|
120
|
+
|
|
121
|
+
## 5. Agent Roles
|
|
122
|
+
|
|
123
|
+
Agent roles describe responsibility, not permanent products.
|
|
124
|
+
|
|
125
|
+
### Controller / Architect
|
|
126
|
+
|
|
127
|
+
Normally ChatGPT or a human-guided controller.
|
|
128
|
+
|
|
129
|
+
Owns:
|
|
130
|
+
|
|
131
|
+
- problem understanding;
|
|
132
|
+
- architecture decisions;
|
|
133
|
+
- Task decomposition;
|
|
134
|
+
- acceptance criteria;
|
|
135
|
+
- scope and resource declarations;
|
|
136
|
+
- Agent and execution-mode selection;
|
|
137
|
+
- review and acceptance.
|
|
138
|
+
|
|
139
|
+
The Controller SHOULD remain runtime-light and MUST NOT become the hidden owner of a long Worker process.
|
|
140
|
+
|
|
141
|
+
### Explorer
|
|
142
|
+
|
|
143
|
+
A read-only role used for:
|
|
144
|
+
|
|
145
|
+
- root-cause investigation;
|
|
146
|
+
- architecture mapping;
|
|
147
|
+
- candidate path discovery;
|
|
148
|
+
- dependency analysis;
|
|
149
|
+
- risk assessment.
|
|
150
|
+
|
|
151
|
+
Explorer output is evidence or a proposed plan. It does not authorize writes.
|
|
152
|
+
|
|
153
|
+
### Implementer
|
|
154
|
+
|
|
155
|
+
A scoped worker role used for:
|
|
156
|
+
|
|
157
|
+
- code or document changes;
|
|
158
|
+
- local compile/test/fix loops;
|
|
159
|
+
- producing a reviewable diff;
|
|
160
|
+
- reporting limitations and unresolved blockers.
|
|
161
|
+
|
|
162
|
+
An Implementer cannot accept its own Task.
|
|
163
|
+
|
|
164
|
+
### Verifier
|
|
165
|
+
|
|
166
|
+
An optional independent role for high-risk, safety-sensitive, or ambiguity-prone work.
|
|
167
|
+
|
|
168
|
+
The Verifier MUST use the Task's declared checks and acceptance criteria as its rubric. It MUST NOT invent a competing quality standard or replace authoritative repository tests.
|
|
169
|
+
|
|
170
|
+
Independent verification is not a default for every Task because extra evaluators can add cost and drift without improving acceptance alignment.
|
|
171
|
+
|
|
172
|
+
### Integrator
|
|
173
|
+
|
|
174
|
+
Integration is a deterministic system role, not an LLM role.
|
|
175
|
+
|
|
176
|
+
It validates source evidence, base revisions, target state, supported file operations, conflicts, and cleanup. An Agent may explain a conflict, but must not silently decide to overwrite it.
|
|
177
|
+
|
|
178
|
+
### Release Steward
|
|
179
|
+
|
|
180
|
+
The Release Steward evaluates the release gate, produces the release manifest, and identifies unresolved human boundaries. It cannot silently push, merge, publish, or deploy.
|
|
181
|
+
|
|
182
|
+
## 6. Runtime Agent Selection
|
|
183
|
+
|
|
184
|
+
Tasks remain executor-neutral. At dispatch time the Controller chooses among enabled providers based on capability and constraints.
|
|
185
|
+
|
|
186
|
+
General policy:
|
|
187
|
+
|
|
188
|
+
| Work characteristic | Preferred executor |
|
|
189
|
+
| --- | --- |
|
|
190
|
+
| Small understood change | Direct Edit |
|
|
191
|
+
| Broad repository exploration and repeated code/test loop | Codex or Claude local Agent |
|
|
192
|
+
| Architecture, policy, documentation, semantic cross-module review | ChatGPT, Claude, or Direct Edit after analysis |
|
|
193
|
+
| GitHub-native collaboration and draft PR | GitHub Copilot session |
|
|
194
|
+
| Deterministic check, command, integration, or release gate | Non-Agent Worker |
|
|
195
|
+
| Read-only root-cause map | Explorer role |
|
|
196
|
+
|
|
197
|
+
Agent choice considers:
|
|
198
|
+
|
|
199
|
+
```text
|
|
200
|
+
required tools
|
|
201
|
+
repository language
|
|
202
|
+
context size
|
|
203
|
+
expected autonomy
|
|
204
|
+
local availability
|
|
205
|
+
provider health
|
|
206
|
+
cost budget
|
|
207
|
+
past failure classification
|
|
208
|
+
need for GitHub collaboration
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
A Task does not permanently bind to one Agent. However, switching Agents after failure requires a reason, not reflex.
|
|
212
|
+
|
|
213
|
+
## 7. Failure Classification Before Retry
|
|
214
|
+
|
|
215
|
+
Before retry or Agent switching, classify the failure:
|
|
216
|
+
|
|
217
|
+
- `infrastructure_failure` — transport, process launch, authentication, unavailable provider;
|
|
218
|
+
- `scope_conflict` — resource or allowed-path collision;
|
|
219
|
+
- `environment_failure` — missing dependency, build service, credentials, external system;
|
|
220
|
+
- `implementation_failure` — produced change does not compile or satisfy checks;
|
|
221
|
+
- `acceptance_failure` — implementation works locally but misses declared criteria;
|
|
222
|
+
- `integration_failure` — reviewed change cannot be integrated safely;
|
|
223
|
+
- `agent_capability_mismatch` — execution requires capabilities unavailable to the selected Agent;
|
|
224
|
+
- `controller_contract_failure` — Task scope, acceptance, or prompt was insufficient or contradictory.
|
|
225
|
+
|
|
226
|
+
Response policy:
|
|
227
|
+
|
|
228
|
+
| Classification | Default response |
|
|
229
|
+
| --- | --- |
|
|
230
|
+
| Infrastructure | Retry same contract after recovery |
|
|
231
|
+
| Scope conflict | Wait, re-scope, or isolate |
|
|
232
|
+
| Environment | Block with external dependency evidence |
|
|
233
|
+
| Implementation | Request focused changes or retry same Agent |
|
|
234
|
+
| Acceptance | Refine implementation, not the criteria unless product intent changed |
|
|
235
|
+
| Integration | Preserve Worktree; repair from current target state |
|
|
236
|
+
| Capability mismatch | Select a more suitable Agent/provider |
|
|
237
|
+
| Controller contract | Re-plan Task before another Run |
|
|
238
|
+
|
|
239
|
+
## 8. Task Execution Contract
|
|
240
|
+
|
|
241
|
+
Every Agent Run receives a generated contract containing:
|
|
242
|
+
|
|
243
|
+
```text
|
|
244
|
+
repository and checkout identity
|
|
245
|
+
Issue and Task objective
|
|
246
|
+
current implementation context
|
|
247
|
+
allowed and forbidden paths
|
|
248
|
+
required outputs
|
|
249
|
+
acceptance criteria
|
|
250
|
+
named checks
|
|
251
|
+
risk and destructive boundary
|
|
252
|
+
resource placement
|
|
253
|
+
base revision
|
|
254
|
+
budget and deadline
|
|
255
|
+
result and artifact paths
|
|
256
|
+
completion and stop conditions
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
The prompt MUST state that:
|
|
260
|
+
|
|
261
|
+
- unrelated changes are forbidden;
|
|
262
|
+
- repository state is authoritative over chat memory;
|
|
263
|
+
- the Agent must not commit, merge, push, publish, deploy, reset, rebase, or remove Worktrees unless the explicit contract permits it;
|
|
264
|
+
- test failure must be reported honestly;
|
|
265
|
+
- a successful self-report does not complete the Task;
|
|
266
|
+
- user modifications outside scope must be preserved.
|
|
267
|
+
|
|
268
|
+
## 9. Budget Model
|
|
269
|
+
|
|
270
|
+
Every Agent or scheduled execution SHOULD declare bounded budgets:
|
|
271
|
+
|
|
272
|
+
```text
|
|
273
|
+
wall-clock timeout
|
|
274
|
+
maximum retries
|
|
275
|
+
maximum parallel children
|
|
276
|
+
maximum changed files
|
|
277
|
+
maximum changed lines
|
|
278
|
+
maximum output bytes
|
|
279
|
+
optional token or provider cost budget
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Budget exhaustion produces a durable outcome. It must not silently extend itself indefinitely.
|
|
283
|
+
|
|
284
|
+
## 10. Placement Decision
|
|
285
|
+
|
|
286
|
+
Placement is separate from Agent selection.
|
|
287
|
+
|
|
288
|
+
### Workspace
|
|
289
|
+
|
|
290
|
+
Use when:
|
|
291
|
+
|
|
292
|
+
- no other write owner exists;
|
|
293
|
+
- work is serial;
|
|
294
|
+
- fast local iteration is valuable;
|
|
295
|
+
- the user expects changes in the visible working tree.
|
|
296
|
+
|
|
297
|
+
### Worktree
|
|
298
|
+
|
|
299
|
+
Use when:
|
|
300
|
+
|
|
301
|
+
- another writer is active;
|
|
302
|
+
- independent Tasks should run concurrently;
|
|
303
|
+
- isolation is explicitly requested;
|
|
304
|
+
- the main Workspace is dirty and safe direct ownership cannot be established;
|
|
305
|
+
- implementation should be reviewed before integration.
|
|
306
|
+
|
|
307
|
+
### GitHub branch/provider
|
|
308
|
+
|
|
309
|
+
Use when:
|
|
310
|
+
|
|
311
|
+
- remote collaboration is requested;
|
|
312
|
+
- the provider requires a remote branch;
|
|
313
|
+
- a draft PR is a desired artifact;
|
|
314
|
+
- local execution is unavailable.
|
|
315
|
+
|
|
316
|
+
The default `auto` placement policy chooses Workspace for one local serial writer and Worktree when concurrency exists. It MUST still honor explicit claims and dirty-state safety.
|
|
317
|
+
|
|
318
|
+
## 11. Review and Continuation
|
|
319
|
+
|
|
320
|
+
After execution:
|
|
321
|
+
|
|
322
|
+
```text
|
|
323
|
+
read Run/Job outcome
|
|
324
|
+
-> inspect diff and evidence
|
|
325
|
+
-> classify defects or blockers
|
|
326
|
+
-> integrate when isolated
|
|
327
|
+
-> verify exact Revision
|
|
328
|
+
-> accept or request changes
|
|
329
|
+
-> unlock dependents
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
The Controller may use Direct Edit for a small correction after an Agent Run. This creates separate, reviewable evidence rather than asking the Agent to rerun the entire task unnecessarily.
|
|
333
|
+
|
|
334
|
+
## 12. Anti-Patterns
|
|
335
|
+
|
|
336
|
+
The dispatch layer MUST avoid:
|
|
337
|
+
|
|
338
|
+
- starting an Agent for a deterministic one-file edit;
|
|
339
|
+
- creating a durable Issue solely because file discovery is needed;
|
|
340
|
+
- binding every Task permanently to Codex;
|
|
341
|
+
- launching multiple Agents with overlapping unknown write scopes;
|
|
342
|
+
- using a Verifier with criteria different from Task acceptance;
|
|
343
|
+
- retrying on every network error without idempotency lookup;
|
|
344
|
+
- treating a successful process exit as product acceptance;
|
|
345
|
+
- allowing an automation Agent to recursively create unlimited work;
|
|
346
|
+
- using the Controller conversation as the only execution state.
|
|
347
|
+
|
|
348
|
+
## 13. Current Implementation
|
|
349
|
+
|
|
350
|
+
The repository implements Direct Edit, Quick Agent and Issue/Task assessment; runtime Agent selection; bounded Task scope; persistent Runs; Workspace/Worktree placement; and risk-adaptive verification.
|
|
351
|
+
|
|
352
|
+
The Thin Gateway keeps deterministic local commands on Direct Edit or Process Runtime paths. Agent dispatch is now an explicit external-Controller handoff; the Kernel no longer creates Execution Jobs for ordinary Agent launches. Work ownership, repository placement, and resource claims remain durable Controller state, while provider selection and model execution belong to the claimed external Controller.
|
|
353
|
+
|
|
354
|
+
Failure outcomes are retained on Work, Process, Handoff, or legacy read-only Job evidence as applicable; retries preserve the failed attempt and create a new explicit continuation attempt rather than falling back to implicit Job creation.
|