@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,58 @@
|
|
|
1
|
+
# MCP tool exposure profiles
|
|
2
|
+
|
|
3
|
+
Controller MCP uses one stable default schema so ChatGPT can reliably read, edit, run checks, use Git, delegate to local Agents, operate Campaigns, capture iOS evidence, and recover from failures without a permission switch hiding tools.
|
|
4
|
+
|
|
5
|
+
## Profiles
|
|
6
|
+
|
|
7
|
+
| Toolset | CLI | Behavior |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| **advanced** (default) | `--toolset advanced` | Stable repair-capable surface, capped at 128 tools. Includes the five `rh_*` facades plus high-value repository, Direct Edit, command, Git, Work/Job, Agent, Campaign, plugin, browser, iOS, artifact, and recovery tools. |
|
|
10
|
+
| **core** | `--toolset core` | Compatibility label for the same stable default schema. It does not reduce capability or require reconnecting. |
|
|
11
|
+
| **full** | `--toolset full` | Every historical legacy and runtime definition. Use only for old integrations or deep compatibility diagnosis because the much larger schema can reduce tool-selection quality. |
|
|
12
|
+
|
|
13
|
+
Configure via CLI flags, `FORGE_MCP_TOOLSET`, or Controller Home MCP config. Empty/default controller configuration resolves to `advanced`.
|
|
14
|
+
|
|
15
|
+
## Single source of truth
|
|
16
|
+
|
|
17
|
+
`src/cli/mcp/toolset-names.ts` owns the dependency-free stable name list. `src/cli/mcp/toolset.ts` joins that list with the actual definition registry and returns one exposure snapshot containing:
|
|
18
|
+
|
|
19
|
+
- expected and actual tool names/counts;
|
|
20
|
+
- missing, unexpected, and duplicate names;
|
|
21
|
+
- schema fingerprint;
|
|
22
|
+
- readiness.
|
|
23
|
+
|
|
24
|
+
MCP `tools/list`, call validation, `/health`, `controller_ready`, `rh_status`, Connector freshness, and the Local Controller UI derive from this contract. Readiness cannot be `ready` while required tools are missing.
|
|
25
|
+
|
|
26
|
+
## Three-layer tool contract
|
|
27
|
+
|
|
28
|
+
The current implementation separates orchestration from capability without deleting product functions:
|
|
29
|
+
|
|
30
|
+
1. **Workflow facade:** `rh_status`, `rh_access`, `rh_inbox`, `rh_context`, and `rh_work` are the preferred ChatGPT control-plane entry points.
|
|
31
|
+
2. **Typed atomic tools:** repository inspection, Direct Edit, command, Git, Work/Job, Issue/Task, Campaign, plugin, browser, iOS, artifact, and recovery handlers remain public because their schemas preserve operation-specific validation and evidence.
|
|
32
|
+
3. **Internal handlers and capability registry:** capabilities are grouped as `controller`, `repository-core`, `git`, `issue-task`, `campaign`, `browser`, `ios`, `plugin`, `evidence`, and `runtime-maintenance`. `rh_status`, `rh_context`, and `controller_capabilities` expose this metadata.
|
|
33
|
+
|
|
34
|
+
The MCP transport currently publishes a static stable schema. It does **not** support loading a domain schema only after ChatGPT selects that domain. Therefore capability grouping improves selection and documentation, but it must not be described as dynamic tool loading. A future transport-level implementation may reduce the discovered schema while retaining the same internal handlers.
|
|
35
|
+
|
|
36
|
+
Capability metadata changes do not change `tools/list`; restart the Controller to load new code, but reconnect/rescan ChatGPT only when tool names or input schemas change.
|
|
37
|
+
|
|
38
|
+
## Permissions
|
|
39
|
+
|
|
40
|
+
Request/Full Access is an execution-policy decision below tool discovery. Switching access mode does not change the schema, does not require an MCP restart, and does not require reconnecting ChatGPT.
|
|
41
|
+
|
|
42
|
+
Remote writes, destructive actions, outside-repository paths, and secret access remain independently gated.
|
|
43
|
+
|
|
44
|
+
## Guidance
|
|
45
|
+
|
|
46
|
+
- Prefer `rh_status`, `rh_access`, `rh_context`, `rh_work`, and `rh_inbox` for normal orchestration.
|
|
47
|
+
- Use first-class Direct Edit, command, Git, `quick_agent_session`, Campaign, iOS, plugin, and artifact tools when the facade is not the shortest reliable path.
|
|
48
|
+
- Keep the stable surface unique and at or below 128 tools.
|
|
49
|
+
- Add new public tools only when they unlock a real end-to-end workflow; otherwise route capabilities through an existing facade or plugin action.
|
|
50
|
+
|
|
51
|
+
## Related checks
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
bun test tests/cli/mcp-tool-exposure-profiles.test.ts
|
|
55
|
+
bun test tests/cli/connector-freshness.test.ts
|
|
56
|
+
bun test tests/runtime/facade-mcp-surface.test.ts
|
|
57
|
+
bun run check:mcp-compatibility
|
|
58
|
+
```
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Mobile Intent and iPhone Shortcuts Entry Point
|
|
2
|
+
|
|
3
|
+
forge exposes a narrowly-scoped mobile intent endpoint for local voice/text automation, including iPhone Shortcuts and Siri phrases.
|
|
4
|
+
|
|
5
|
+
## Server Mode
|
|
6
|
+
|
|
7
|
+
The normal Controller UI remains loopback-only:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
forge controller ui --repo .
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
To allow a phone on the same trusted LAN to reach only the mobile intent endpoint, bind the server to a wildcard address and explicitly enable the LAN gate:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
forge controller ui --repo . --host 0.0.0.0 --mobile-lan
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
When `--mobile-lan` is enabled, non-loopback requests are still rejected for `/`, `/api/*`, and the visual dashboard. Only `/mobile/intent` may be called from a non-loopback host, and every request must pass device-token authentication plus replay checks.
|
|
20
|
+
|
|
21
|
+
## Device Enrollment
|
|
22
|
+
|
|
23
|
+
Create device tokens from the local UI API. The returned token is shown once; forge stores only its SHA-256 hash in `.forge/mobile-intents.json`.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
curl -sS \
|
|
27
|
+
-H "x-forge-local-token: <local-ui-token>" \
|
|
28
|
+
-H "content-type: application/json" \
|
|
29
|
+
-d '{
|
|
30
|
+
"name": "Greyson iPhone",
|
|
31
|
+
"scopes": ["plugins:read", "jobs:read", "plugin:gmail:configure", "plugin:gmail:send_message"]
|
|
32
|
+
}' \
|
|
33
|
+
http://127.0.0.1:8766/api/mobile/devices
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Device scopes are intentionally explicit:
|
|
37
|
+
|
|
38
|
+
- `plugins:read` lists plugin status and action schemas.
|
|
39
|
+
- `jobs:read` polls a submitted durable Execution Job.
|
|
40
|
+
- `plugin:*:*` permits all plugin actions.
|
|
41
|
+
- `plugin:<plugin-id>:*` permits all actions for one plugin.
|
|
42
|
+
- `plugin:<plugin-id>:<action-id>` permits one action.
|
|
43
|
+
|
|
44
|
+
Revoke a device immediately when a phone or Shortcut is no longer trusted:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
curl -sS \
|
|
48
|
+
-X POST \
|
|
49
|
+
-H "x-forge-local-token: <local-ui-token>" \
|
|
50
|
+
http://127.0.0.1:8766/api/mobile/devices/<device-id>/revoke
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Shortcut Request Contract
|
|
54
|
+
|
|
55
|
+
Every `/mobile/intent` request must include these headers:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
Authorization: Bearer <one-time-returned-device-token>
|
|
59
|
+
x-forge-device-id: <device-id>
|
|
60
|
+
x-forge-timestamp: <ISO-8601 timestamp>
|
|
61
|
+
x-forge-nonce: <unique random nonce, 8-128 safe characters>
|
|
62
|
+
x-forge-signature: <optional HMAC-SHA256>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The timestamp must be within five minutes of the Controller clock. Each nonce may be used once within the ten-minute nonce window. The optional signature is computed over:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
<timestamp>.<nonce>.<raw-json-body>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
using the device token as the HMAC key. Hex, base64url, and `sha256=<hex>` signatures are accepted. If the signature header is present, it must match the raw body or the request is rejected.
|
|
72
|
+
|
|
73
|
+
## Intent Bodies
|
|
74
|
+
|
|
75
|
+
List plugins:
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{ "intent": "list_plugins" }
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Submit a plugin action:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"intent": "plugin_action",
|
|
86
|
+
"pluginId": "gmail",
|
|
87
|
+
"actionId": "configure",
|
|
88
|
+
"requestId": "shortcut-gmail-config-1",
|
|
89
|
+
"confirmAuthorization": true,
|
|
90
|
+
"arguments": {
|
|
91
|
+
"enabled": true,
|
|
92
|
+
"provider": "mock",
|
|
93
|
+
"account_email": "assistant@example.com"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Poll a durable Execution Job:
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{ "intent": "poll_job", "jobId": "JOB-..." }
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Write actions still follow the plugin confirmation policy. If a Shortcut calls a strong-confirmation action without confirmation, the endpoint returns `409` with `approvalRequired: true`, the action risk, and the required confirmation text.
|
|
105
|
+
|
|
106
|
+
## iPhone Shortcuts Shape
|
|
107
|
+
|
|
108
|
+
A Shortcut should:
|
|
109
|
+
|
|
110
|
+
1. Dictate or receive text.
|
|
111
|
+
2. Build the JSON body for one allowed plugin action.
|
|
112
|
+
3. Generate a timestamp and random nonce.
|
|
113
|
+
4. Optionally compute HMAC-SHA256 over `<timestamp>.<nonce>.<raw-json-body>`.
|
|
114
|
+
5. POST to `http://<mac-lan-ip>:8766/mobile/intent`.
|
|
115
|
+
6. Speak the `approvalRequired` message or store the returned `job.jobId` for polling.
|
|
116
|
+
|
|
117
|
+
Tokens are scoped per device and can be revoked without changing the Local Controller token.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Open-source release hygiene
|
|
2
|
+
|
|
3
|
+
Short checklist before publishing source or npm artifacts from this repository.
|
|
4
|
+
|
|
5
|
+
## Do not ship
|
|
6
|
+
|
|
7
|
+
- `_ops/`, `.ai/harness` runtime state, controller home checkouts
|
|
8
|
+
- `.forge/*.local.json`, tokens, OAuth, grants, plugin runtime JSON
|
|
9
|
+
- Personal absolute paths (`/Users/<name>/…`, `/home/<name>/…`)
|
|
10
|
+
- Real `repo_*` / `checkout_*` binding ids
|
|
11
|
+
- Real Tailscale hostnames or CGNAT addresses bound to a maintainer machine
|
|
12
|
+
- Credentials, private keys, `.env` files
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Tracked-file audit (paths + finding class only; match values never printed)
|
|
18
|
+
bash scripts/check-open-source-tracked-surface.sh
|
|
19
|
+
|
|
20
|
+
# Public allowlist export + content scanners
|
|
21
|
+
bun run check:public-export
|
|
22
|
+
|
|
23
|
+
# Combined release-readiness gate for tool surface + hygiene
|
|
24
|
+
bash scripts/check-release-readiness.sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Justified historical hits can be listed in `scripts/open-source-audit-allowlist.txt`. Prefer scrubbing new files over expanding the allowlist.
|
|
28
|
+
|
|
29
|
+
## Package exclusions
|
|
30
|
+
|
|
31
|
+
`.gitignore` and `.npmignore` exclude runtime/plugin grants, tokens, `_ops`, research/tasks/plans noise, and key material patterns. Re-run the audit after adding new paths under `.forge/` or docs with machine-local examples.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Personal assistant operator guide
|
|
2
|
+
|
|
3
|
+
This runtime is intended to be used with ChatGPT as the primary control plane. The Local Controller is the execution, policy, audit, and persistence layer.
|
|
4
|
+
|
|
5
|
+
## Recommended daily path
|
|
6
|
+
|
|
7
|
+
1. Ask ChatGPT for the goal in natural language.
|
|
8
|
+
2. ChatGPT calls the high-level assistant API or MCP tools.
|
|
9
|
+
3. The runtime plans safe plugin actions, submits durable jobs, and writes results into Assistant Inbox.
|
|
10
|
+
4. High-risk actions stay blocked until explicit human confirmation.
|
|
11
|
+
|
|
12
|
+
## Readiness check
|
|
13
|
+
|
|
14
|
+
Use `assistant_readiness` or `GET /api/assistant/readiness` before relying on the assistant.
|
|
15
|
+
|
|
16
|
+
The report separates:
|
|
17
|
+
|
|
18
|
+
- live Google capability
|
|
19
|
+
- mock-only capability
|
|
20
|
+
- disabled plugins
|
|
21
|
+
- routine, inbox, and memory state
|
|
22
|
+
- recommended next actions
|
|
23
|
+
|
|
24
|
+
Mock mode proves the execution path only. It does not read real Gmail, Calendar, or Tasks data.
|
|
25
|
+
|
|
26
|
+
## Gmail read self-test
|
|
27
|
+
|
|
28
|
+
A low-risk Gmail read test can be submitted through either:
|
|
29
|
+
|
|
30
|
+
- `plugin_action_execute` with `gmail.list_messages`
|
|
31
|
+
- `POST /api/assistant/self-test/gmail-read`
|
|
32
|
+
- `POST /api/assistant/intent` with an utterance such as `测试读取最近一周 Gmail`
|
|
33
|
+
|
|
34
|
+
When Gmail is in mock mode, the test returns deterministic mock messages. For real Gmail, configure the plugin with provider `google-workspace` and set one of the supported token environment variables documented by the plugin health message.
|
|
35
|
+
|
|
36
|
+
## Cleanup workflow
|
|
37
|
+
|
|
38
|
+
Use `runtime_cleanup_preview` or `POST /api/assistant/maintenance/cleanup-preview` first. It is non-destructive.
|
|
39
|
+
|
|
40
|
+
Use cleanup apply only after reviewing the preview:
|
|
41
|
+
|
|
42
|
+
- `runtime_cleanup_apply` with `confirm_cleanup=true`
|
|
43
|
+
- `POST /api/assistant/maintenance/cleanup-apply` with `confirmCleanup=true`
|
|
44
|
+
|
|
45
|
+
Cleanup is limited to explicit Forge candidates:
|
|
46
|
+
|
|
47
|
+
- old `Forge-*` temp directories that are not referenced by running processes
|
|
48
|
+
- terminal local jobs, when explicitly included
|
|
49
|
+
- historical attention acknowledgements, when explicitly included
|
|
50
|
+
|
|
51
|
+
Do not use cleanup apply as a substitute for reviewing active jobs, active leases, or running workers.
|
|
52
|
+
|
|
53
|
+
## What still needs real productization
|
|
54
|
+
|
|
55
|
+
The current runtime can route assistant intents and run safe data collection jobs. A full personal-assistant product still needs:
|
|
56
|
+
|
|
57
|
+
- real OAuth/token broker and refresh support
|
|
58
|
+
- wall-clock routine scheduling
|
|
59
|
+
- model-backed summarization of collected data
|
|
60
|
+
- approval summaries for risky actions
|
|
61
|
+
- cleanup apply integration in a dedicated maintenance UI
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Platform Support
|
|
2
|
+
|
|
3
|
+
This document defines what the project currently supports. It is intentionally narrower than “the code contains Windows branches.” A platform is called supported only when the installation path, primary workflow, and release checks are covered.
|
|
4
|
+
|
|
5
|
+
## Support matrix
|
|
6
|
+
|
|
7
|
+
| Platform | Status | Recommended use |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| macOS | Supported | Full local Controller, repository adoption, MCP, Direct Edit, agents, browser tooling, and release checks. |
|
|
10
|
+
| Modern Linux | Supported | Full local Controller workflow. A system with Bash, Git, Node.js, and standard process tools is expected. |
|
|
11
|
+
| WSL2 on Windows | Supported and recommended for Windows | Run the Linux workflow inside WSL2. Keep the repository inside the WSL filesystem for predictable permissions and performance. |
|
|
12
|
+
| Native Windows | Preview | PowerShell installation, CLI loading, doctor, repository registration/inspection, and the portable runtime paths are supported. Shell-heavy workflow helpers remain limited. |
|
|
13
|
+
|
|
14
|
+
## Required environment
|
|
15
|
+
|
|
16
|
+
All installations require:
|
|
17
|
+
|
|
18
|
+
- Git available on `PATH`;
|
|
19
|
+
- Node.js 20.10 or newer, because the published `forge` launcher is a Node executable;
|
|
20
|
+
- either npm, which ships with Node.js, or Bun 1.0 or newer as the package installer;
|
|
21
|
+
- a writable user home directory.
|
|
22
|
+
|
|
23
|
+
Bun is recommended for development and the full test suite, but it is not the only supported package installer.
|
|
24
|
+
|
|
25
|
+
The following dependencies are optional and enable additional capabilities:
|
|
26
|
+
|
|
27
|
+
- Codex or Claude CLI for delegated implementation;
|
|
28
|
+
- GitHub CLI (`gh`) for GitHub Issue, Project, and cloud-agent operations;
|
|
29
|
+
- Tailscale Funnel or `cloudflared` for a stable public HTTPS `/mcp` endpoint;
|
|
30
|
+
- Playwright browser dependencies for browser automation;
|
|
31
|
+
- CodeGraph for additional repository navigation;
|
|
32
|
+
- Google Workspace credentials for Gmail or Calendar plugins.
|
|
33
|
+
|
|
34
|
+
## Native Windows scope
|
|
35
|
+
|
|
36
|
+
The native PowerShell path is release-tested for:
|
|
37
|
+
|
|
38
|
+
- prerequisite checks and CLI package installation;
|
|
39
|
+
- `forge --version` and command loading;
|
|
40
|
+
- `forge doctor`;
|
|
41
|
+
- repository registry operations;
|
|
42
|
+
- Windows path, process, junction, and command handling covered by the portable test suite;
|
|
43
|
+
- the default MCP facade and bounded repository operations that do not depend on Bash helpers.
|
|
44
|
+
|
|
45
|
+
The following are not yet claimed as complete native Windows workflows:
|
|
46
|
+
|
|
47
|
+
- Bash-owned repository migration and hook scripts;
|
|
48
|
+
- the full source-release Bash gate;
|
|
49
|
+
- automatic CodeGraph configuration;
|
|
50
|
+
- every external agent CLI and tunnel combination.
|
|
51
|
+
|
|
52
|
+
For those workflows, use WSL2. The native installer intentionally skips Bash skill synchronization and automatic CodeGraph setup instead of failing the whole installation.
|
|
53
|
+
|
|
54
|
+
## WSL2 guidance
|
|
55
|
+
|
|
56
|
+
Install Git, Node.js, and optionally Bun inside WSL2, then clone repositories under the Linux home directory, for example `~/src/project`. Avoid running one checkout alternately from Windows and WSL because file modes, symlinks, line endings, and runtime paths can diverge.
|
|
57
|
+
|
|
58
|
+
The Windows host can still provide the browser and ChatGPT client. The Controller and MCP process run inside WSL2; expose only the MCP endpoint through a controlled HTTPS tunnel.
|
|
59
|
+
|
|
60
|
+
## Verification boundary
|
|
61
|
+
|
|
62
|
+
The repository contains a `windows-latest` smoke workflow covering the PowerShell dry run, installer contracts, native-Windows policy behavior, and portable Node tests. That smoke workflow is evidence for the bounded native scope above; it is not evidence that every Bash- or provider-dependent integration works natively.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 平台支持说明
|
|
2
|
+
|
|
3
|
+
本文定义项目当前真正承诺的平台范围。代码中存在 Windows 分支并不等于所有流程都已在 Windows 原生环境验证;只有安装、主要工作流和发布检查均覆盖的范围才称为支持。
|
|
4
|
+
|
|
5
|
+
## 支持矩阵
|
|
6
|
+
|
|
7
|
+
| 平台 | 状态 | 建议用途 |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| macOS | 支持 | 完整本地 Controller、仓库接入、MCP、Direct Edit、Agent、浏览器能力和发布检查。 |
|
|
10
|
+
| 现代 Linux | 支持 | 完整本地 Controller 工作流,需要 Bash、Git、Node.js 和常见进程工具。 |
|
|
11
|
+
| Windows + WSL2 | 支持,且是 Windows 推荐方案 | 在 WSL2 内按 Linux 流程运行,仓库建议放在 WSL 文件系统。 |
|
|
12
|
+
| Windows 原生 PowerShell | 预览支持 | 支持安装、CLI、doctor、仓库注册/读取和可移植运行时路径;依赖 Bash 的流程仍有限制。 |
|
|
13
|
+
|
|
14
|
+
## 基础环境
|
|
15
|
+
|
|
16
|
+
所有安装方式都需要:
|
|
17
|
+
|
|
18
|
+
- Git 已加入 `PATH`;
|
|
19
|
+
- Node.js 20.10 或更高版本,因为发布后的 `forge` 启动器由 Node 执行;
|
|
20
|
+
- npm(随 Node.js 安装)或 Bun 1.0+,用于安装 package;
|
|
21
|
+
- 可写的用户主目录。
|
|
22
|
+
|
|
23
|
+
Bun 是开发和完整测试的推荐执行器,但不再是唯一安装器。
|
|
24
|
+
|
|
25
|
+
以下环境按功能选装:
|
|
26
|
+
|
|
27
|
+
- Codex 或 Claude CLI:委派复杂代码实现;
|
|
28
|
+
- GitHub CLI `gh`:GitHub Issue、Project 和云端 Agent;
|
|
29
|
+
- Tailscale Funnel 或 `cloudflared`:稳定公网 HTTPS `/mcp` 地址;
|
|
30
|
+
- Playwright 浏览器依赖:浏览器自动化;
|
|
31
|
+
- CodeGraph:额外代码导航;
|
|
32
|
+
- Google Workspace 凭据:Gmail、Calendar 插件。
|
|
33
|
+
|
|
34
|
+
## Windows 原生支持范围
|
|
35
|
+
|
|
36
|
+
Windows PowerShell 路径当前发布验证覆盖:
|
|
37
|
+
|
|
38
|
+
- 前置环境检查和 CLI 安装;
|
|
39
|
+
- `forge --version`、命令加载与 `forge doctor`;
|
|
40
|
+
- 仓库注册表;
|
|
41
|
+
- 可移植测试覆盖的 Windows 路径、进程、junction 和命令处理;
|
|
42
|
+
- 不依赖 Bash helper 的默认 MCP facade 与有边界仓库操作。
|
|
43
|
+
|
|
44
|
+
暂不宣称完整原生支持:
|
|
45
|
+
|
|
46
|
+
- Bash 编写的仓库迁移和 Hook 脚本;
|
|
47
|
+
- 完整源码发布 Bash 门禁;
|
|
48
|
+
- CodeGraph 自动配置;
|
|
49
|
+
- 所有 Agent CLI 与隧道组合。
|
|
50
|
+
|
|
51
|
+
这些场景请使用 WSL2。原生安装流程会主动跳过 Bash skill 同步和未验证的 CodeGraph 自动配置,而不是让整体安装失败。
|
|
52
|
+
|
|
53
|
+
## WSL2 使用建议
|
|
54
|
+
|
|
55
|
+
在 WSL2 内安装 Git、Node.js 和可选的 Bun,并将仓库放在 Linux 主目录,例如 `~/src/project`。不要让同一个 checkout 交替由 Windows 和 WSL 操作,否则文件权限、符号链接、换行符和运行时路径可能漂移。
|
|
56
|
+
|
|
57
|
+
ChatGPT 客户端和浏览器仍可运行在 Windows 主机;Controller 与 MCP 运行在 WSL2,只通过受控 HTTPS 隧道公开 MCP endpoint。
|
|
58
|
+
|
|
59
|
+
## 验证边界
|
|
60
|
+
|
|
61
|
+
仓库提供 `windows-latest` smoke workflow,验证 PowerShell dry-run、安装契约、Windows 默认策略和 Node 可移植测试。它证明的是上述有边界范围,不代表所有 Bash 或外部 Provider 集成都已原生 Windows 验证。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Provider configuration and routing
|
|
2
|
+
|
|
3
|
+
Forge does not require or privilege a specific model vendor. A fresh installation builds neutral routing from provider kind, declared capabilities, health, and the configured provider priority. Providers with the same priority use the provider id only as a deterministic tie-breaker.
|
|
4
|
+
|
|
5
|
+
## Where configuration lives
|
|
6
|
+
|
|
7
|
+
The Controller GUI and the JSON files below edit the same controller-scoped configuration:
|
|
8
|
+
|
|
9
|
+
- `<controllerHome>/global/provider-config.json`: enable/disable providers, priority, model and non-secret API settings.
|
|
10
|
+
- `<controllerHome>/global/executor-routing.json`: explicit provider order for each task intent.
|
|
11
|
+
- `<controllerHome>/global/provider-secrets.json`: locally stored API credentials. This file is outside the repository and must never be committed.
|
|
12
|
+
|
|
13
|
+
Opening the GUI or reading configuration does not rewrite these files. Existing routing and priority choices remain authoritative across upgrades.
|
|
14
|
+
|
|
15
|
+
## Precedence
|
|
16
|
+
|
|
17
|
+
Provider selection applies these rules in order:
|
|
18
|
+
|
|
19
|
+
1. Per-request provider preferences and allow/deny constraints.
|
|
20
|
+
2. An explicit order or default in `executor-routing.json`, including changes made in the GUI routing editor.
|
|
21
|
+
3. Neutral generated defaults based on provider kind and `provider-config.json` priority.
|
|
22
|
+
4. Availability, enablement, authentication, live-call policy, safety gates, and required capabilities.
|
|
23
|
+
5. A ChatGPT handoff packet when no direct provider can safely run.
|
|
24
|
+
|
|
25
|
+
An explicit routing order intentionally overrides the general provider priority. The GUI shows both controls so users can decide whether task types follow a specific route or the general provider preference. Use **Use automatic routing** in the routing panel to remove explicit overrides and resume generated priority-based routing; do not delete the whole controller configuration.
|
|
26
|
+
|
|
27
|
+
## Personal preferences
|
|
28
|
+
|
|
29
|
+
Maintainers and users may place Grok, Codex, Claude, an API provider, or another registered provider first in their own Controller configuration. Those preferences belong under `controllerHome`; they are not open-source defaults and are not copied into the repository.
|
|
30
|
+
|
|
31
|
+
Remote API calls remain double-gated: the provider must be enabled/configured in the GUI and `FORGE_ENABLE_LIVE_MODEL_PROVIDERS` must explicitly allow live calls. Without both, the API provider is proposal-only.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Releasing Forge
|
|
2
|
+
|
|
3
|
+
The public package is `@moretea-labs/forge`. It exposes exactly `forge`, `forge-hook`, and `forge-runtime`; previous product aliases are not published.
|
|
4
|
+
|
|
5
|
+
## Release model
|
|
6
|
+
|
|
7
|
+
`@moretea-labs/forge` publishes release candidates to npm `next` and stable releases to `latest`. Release documentation does not hard-code the “next version”; package version, Git tag, npm channel, and GitHub Release must be derived from the current `package.json` and agree exactly.
|
|
8
|
+
|
|
9
|
+
## Distribution model
|
|
10
|
+
|
|
11
|
+
1. **npm** is the primary package registry and version authority for the CLI artifact.
|
|
12
|
+
2. **Bun** installs or executes the same npm package; no separate Bun publication is required.
|
|
13
|
+
3. **GitHub Releases** publish release notes and immutable release identity for the matching Git tag.
|
|
14
|
+
4. **Homebrew** is added through a Moretea Labs tap only after a stable release exists.
|
|
15
|
+
|
|
16
|
+
RC versions use npm dist-tag `next`. Stable versions use `latest`. `publishConfig.provenance` remains enabled, while the channel is selected explicitly by the release command or workflow.
|
|
17
|
+
|
|
18
|
+
## Required local gate
|
|
19
|
+
|
|
20
|
+
From a clean checkout at the intended release commit:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
bun install --frozen-lockfile
|
|
24
|
+
bun run check:main
|
|
25
|
+
bun run check:release
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Also verify both supported launch paths:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
node bin/forge.mjs --help
|
|
32
|
+
bun bin/forge.mjs --help
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The main gate reuses the focused task receipt and does not run the full suite. The release gate reuses that receipt, verifies package identity, documentation, licenses and notices, tracked-file hygiene and public export contents, then creates one tarball under `.ai/harness/artifacts/release/`. Isolated installation and publication consume that same tarball. `test:full` is a manual diagnostic only.
|
|
36
|
+
|
|
37
|
+
## Bootstrap npm publication (only while the package does not exist)
|
|
38
|
+
|
|
39
|
+
npm Trusted Publishing cannot be configured for a package that does not exist yet. The bootstrap publication therefore requires an npm maintainer for the `@moretea-labs` scope with two-factor authentication. Because this one-time local path has no OIDC provider, `NPM_RELEASE_BOOTSTRAP=1` disables provenance only for that bootstrap publish; `publishConfig.provenance` remains `true` for normal GitHub OIDC releases.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm login
|
|
43
|
+
npm whoami
|
|
44
|
+
npm access ls-packages @moretea-labs
|
|
45
|
+
|
|
46
|
+
# Create and inspect the local tag, but do not push it before publication succeeds.
|
|
47
|
+
VERSION="$(node -p "require('./package.json').version")"
|
|
48
|
+
git tag -a "v${VERSION}" -m "Forge ${VERSION}"
|
|
49
|
+
NPM_RELEASE_BOOTSTRAP=1 RELEASE_TAG="v${VERSION}" npm run release:rc
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If publication fails, remove the unpushed local tag, correct the problem, rerun the focused and release gates, and create a new release commit when repository content changes. Never reuse a published package version or move a pushed release tag.
|
|
53
|
+
|
|
54
|
+
After npm confirms the package:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
git push origin "v${VERSION}"
|
|
58
|
+
gh release create "v${VERSION}" --verify-tag --generate-notes --prerelease
|
|
59
|
+
npm run check:release-published
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Trusted Publishing after bootstrap
|
|
63
|
+
|
|
64
|
+
After the package exists:
|
|
65
|
+
|
|
66
|
+
1. Configure npm Trusted Publishing for `moretea-labs/forge` and `.github/workflows/release.yml`.
|
|
67
|
+
2. Configure the GitHub environment `npm-publish` with required maintainer approval.
|
|
68
|
+
3. Protect release tags and the `main` branch.
|
|
69
|
+
4. Push only an exact `v<package-version>` tag after the release gate passes.
|
|
70
|
+
|
|
71
|
+
The tag workflow uses GitHub OIDC and does not require `NODE_AUTH_TOKEN` or a stored npm token. It validates the exact tag and channel. If the exact version was already published by the one-time bootstrap path, the workflow skips duplicate npm publication and still creates the matching GitHub Release; later versions publish normally through Trusted Publishing.
|
|
72
|
+
|
|
73
|
+
## Stable release
|
|
74
|
+
|
|
75
|
+
Before `1.4.0`:
|
|
76
|
+
|
|
77
|
+
- install the exact packed artifact on macOS, Linux, WSL2, and the supported Windows path;
|
|
78
|
+
- verify `forge init`, `forge doctor`, repository registration/adoption, and the ChatGPT MCP connection;
|
|
79
|
+
- confirm no RC-only warning or unstable install command remains in the stable docs;
|
|
80
|
+
- change `package.json` from an RC version to the intended stable `X.Y.Z`; the package identity gate will require `latest`;
|
|
81
|
+
- publish from tag `v1.4.0` through the protected environment;
|
|
82
|
+
- only then create or update the Homebrew tap formula.
|
|
83
|
+
|
|
84
|
+
## Rollback and incident rule
|
|
85
|
+
|
|
86
|
+
npm versions and pushed release tags are immutable. A bad release is not overwritten: deprecate the affected npm version when appropriate, document the incident, restore the previous dist-tag if needed, and publish a new patch or RC version.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# 发布 Forge
|
|
2
|
+
|
|
3
|
+
公开 npm 包名为 `@moretea-labs/forge`,只发布 `forge`、`forge-hook` 与 `forge-runtime`,不再发布此前产品的命令别名。
|
|
4
|
+
|
|
5
|
+
## 当前发布模型
|
|
6
|
+
|
|
7
|
+
`@moretea-labs/forge` 的候选版本发布到 npm `next`,稳定版本发布到 `latest`。发布文档不硬编码“下一版本”;版本、Git tag、npm channel 和 GitHub Release 必须从 `package.json` 的当前版本推导并保持一致。
|
|
8
|
+
|
|
9
|
+
## 分发模型
|
|
10
|
+
|
|
11
|
+
1. **npm** 是 CLI artifact 的主要 registry 和版本权威。
|
|
12
|
+
2. **Bun** 直接安装或执行同一个 npm 包,不需要单独发布 Bun 包。
|
|
13
|
+
3. **GitHub Releases** 为对应 Git tag 提供发布说明和不可变发布身份。
|
|
14
|
+
4. **Homebrew** 只在稳定版存在后,通过 Moretea Labs tap 提供。
|
|
15
|
+
|
|
16
|
+
RC 使用 npm dist-tag `next`,稳定版使用 `latest`。`publishConfig.provenance` 始终保持启用;发布 channel 由受保护的命令或 workflow 显式选择。
|
|
17
|
+
|
|
18
|
+
## 本地发布门禁
|
|
19
|
+
|
|
20
|
+
在目标 release commit 的干净 checkout 中执行:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
bun install --frozen-lockfile
|
|
24
|
+
bun run check:main
|
|
25
|
+
bun run check:release
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
同时验证两种启动路径:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
node bin/forge.mjs --help
|
|
32
|
+
bun bin/forge.mjs --help
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
main 门禁复用 focused task receipt,不执行全量测试。release 门禁复用该 receipt,检查 package 身份、公开文档、许可证与 notices、tracked 文件卫生和公开导出内容,然后只在 `.ai/harness/artifacts/release/` 生成一个 tarball;隔离安装与发布都复用这个 tarball。`test:full` 仅作为人工诊断命令。
|
|
36
|
+
|
|
37
|
+
## npm 首次发布(仅 package 尚不存在时)
|
|
38
|
+
|
|
39
|
+
一个尚不存在的 package 不能预先配置 npm Trusted Publishing。因此首次发布需要拥有 `@moretea-labs` scope 权限并开启双因素认证的 npm maintainer。由于这条一次性的本机 bootstrap 路径没有 OIDC provider,`NPM_RELEASE_BOOTSTRAP=1` 只对这次首发关闭 provenance;正常 GitHub OIDC 发布仍保持 `publishConfig.provenance=true`。
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm login
|
|
43
|
+
npm whoami
|
|
44
|
+
npm access ls-packages @moretea-labs
|
|
45
|
+
|
|
46
|
+
# 先创建并检查本地 tag,发布成功前不要 push。
|
|
47
|
+
VERSION="$(node -p "require('./package.json').version")"
|
|
48
|
+
git tag -a "v${VERSION}" -m "Forge ${VERSION}"
|
|
49
|
+
NPM_RELEASE_BOOTSTRAP=1 RELEASE_TAG="v${VERSION}" npm run release:rc
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
发布失败时,删除尚未 push 的本地 tag,修复后重新跑完整门禁。仓库内容变化后必须产生新的 release commit。已经发布的 npm 版本不能覆盖,已经 push 的 release tag 不能移动。
|
|
53
|
+
|
|
54
|
+
npm 确认发布成功后:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
git push origin "v${VERSION}"
|
|
58
|
+
gh release create "v${VERSION}" --verify-tag --generate-notes --prerelease
|
|
59
|
+
npm run check:release-published
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Bootstrap 后启用 Trusted Publishing
|
|
63
|
+
|
|
64
|
+
首个 package 存在后:
|
|
65
|
+
|
|
66
|
+
1. 在 npm 中为 `moretea-labs/forge` 与 `.github/workflows/release.yml` 配置 Trusted Publishing。
|
|
67
|
+
2. 创建 GitHub environment `npm-publish`,设置 maintainer 审批。
|
|
68
|
+
3. 保护 `main` 与 release tags。
|
|
69
|
+
4. 只有完整门禁通过后,才 push 精确的 `v<package-version>` tag。
|
|
70
|
+
|
|
71
|
+
Tag workflow 使用 GitHub OIDC,不需要 `NODE_AUTH_TOKEN` 或仓库内 npm token。它会校验 tag、RC 到 `next`、稳定版到 `latest`。如果精确版本已经由首次 bootstrap 发布到 npm,workflow 会跳过重复 publish 并继续创建 GitHub Release;后续新版本则通过 Trusted Publishing 正常发布。
|
|
72
|
+
|
|
73
|
+
## 稳定版要求
|
|
74
|
+
|
|
75
|
+
发布 `1.4.0` 前:
|
|
76
|
+
|
|
77
|
+
- 在 macOS、Linux、WSL2 和已声明的 Windows 路径安装精确 packed artifact;
|
|
78
|
+
- 验证 `forge init`、`forge doctor`、仓库注册/接入和 ChatGPT MCP 连接;
|
|
79
|
+
- 确认稳定文档中没有 RC 专属警告或不稳定安装命令;
|
|
80
|
+
- 把 `package.json` 从 RC 版本改为目标稳定版 `X.Y.Z`,package identity gate 会要求 `latest`;
|
|
81
|
+
- 从受保护环境发布 tag `v1.4.0`;
|
|
82
|
+
- 完成后才创建或更新 Homebrew tap formula。
|
|
83
|
+
|
|
84
|
+
## 回滚与事故规则
|
|
85
|
+
|
|
86
|
+
npm 版本和已 push 的 release tag 都是不可变的。错误版本不能覆盖发布:必要时 deprecate 该 npm 版本、记录事故、恢复之前的 dist-tag,并发布新的 patch 或 RC。
|