@moretea-labs/forge 1.7.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +58 -62
- package/CHANGELOG.md +39 -0
- package/CLAUDE.md +42 -62
- package/README.md +2 -2
- package/SKILL.md +0 -1
- package/THIRD_PARTY_NOTICES.md +5 -2
- package/adapters/browser/index.ts +2 -0
- package/adapters/chatgpt/browser-delivery-host.ts +71 -0
- package/adapters/chatgpt/browser-delivery-runtime.ts +783 -0
- package/adapters/chatgpt/controller-binding-store.ts +55 -0
- package/adapters/chatgpt/controller-host.ts +119 -0
- package/adapters/chatgpt/controller-round-host.ts +78 -0
- package/adapters/chatgpt/controller-round-settlement-store.ts +45 -0
- package/adapters/chatgpt/provider-delivery.ts +113 -0
- package/adapters/chatgpt/work-conversation-binding-store.ts +192 -0
- package/adapters/chatgpt/wsl-bridge-delivery-host.ts +63 -0
- package/adapters/computer/desktop-operator-contract.ts +7 -0
- package/adapters/computer/desktop-operator-discovery.ts +201 -0
- package/adapters/computer/desktop-operator-negotiation.ts +174 -0
- package/adapters/computer/desktop-operator-provider.ts +312 -0
- package/adapters/computer/index.ts +1 -0
- package/adapters/computer/interaction-target-authority.ts +944 -0
- package/adapters/controller-process/binding-store.ts +34 -0
- package/adapters/controller-process/controller-host.ts +26 -0
- package/adapters/mcp/access-mode.ts +132 -0
- package/adapters/mcp/audit.ts +32 -0
- package/adapters/mcp/auth.ts +407 -0
- package/adapters/mcp/controller-round-compatibility.ts +184 -0
- package/adapters/mcp/frozen-client-semantic-compatibility.ts +292 -0
- package/adapters/mcp/instructions.ts +36 -0
- package/adapters/mcp/legacy-context.ts +18 -0
- package/adapters/mcp/multi-repository.ts +437 -0
- package/adapters/mcp/oauth.ts +391 -0
- package/adapters/mcp/paths.ts +140 -0
- package/adapters/mcp/policy.ts +232 -0
- package/adapters/mcp/proxy-env.ts +62 -0
- package/adapters/mcp/readiness-projection.ts +24 -0
- package/adapters/mcp/redaction.ts +21 -0
- package/adapters/mcp/repo.ts +24 -0
- package/adapters/mcp/runtime-gateway/artifact-adapter.ts +52 -0
- package/adapters/mcp/runtime-gateway/context-adapter.ts +829 -0
- package/adapters/mcp/runtime-gateway/controller-authority-adapter.ts +191 -0
- package/adapters/mcp/runtime-gateway/engineering-preconditions.ts +147 -0
- package/adapters/mcp/runtime-gateway/execution-control-adapter.ts +28 -0
- package/adapters/mcp/runtime-gateway/execution-tools.ts +207 -0
- package/adapters/mcp/runtime-gateway/filesystem-adapter.ts +38 -0
- package/adapters/mcp/runtime-gateway/gateway-execution-adapter.ts +411 -0
- package/adapters/mcp/runtime-gateway/legacy-ios-tool-adapter.ts +105 -0
- package/adapters/mcp/runtime-gateway/maintenance-adapter.ts +44 -0
- package/adapters/mcp/runtime-gateway/model-adapter.ts +63 -0
- package/adapters/mcp/runtime-gateway/persisted-check-process.ts +3 -0
- package/adapters/mcp/runtime-gateway/plugin-adapter.ts +308 -0
- package/adapters/mcp/runtime-gateway/process-tools.ts +289 -0
- package/adapters/mcp/runtime-gateway/protected-computer-adapter.ts +76 -0
- package/adapters/mcp/runtime-gateway/recovery-adapter.ts +268 -0
- package/adapters/mcp/runtime-gateway/recovery-client-adapter.ts +70 -0
- package/adapters/mcp/runtime-gateway/recovery-tool-contract.ts +99 -0
- package/adapters/mcp/runtime-gateway/repository-compat-adapter.ts +110 -0
- package/adapters/mcp/runtime-gateway/result-adapter.ts +108 -0
- package/adapters/mcp/runtime-gateway/router.ts +728 -0
- package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +1251 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +634 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-shared.ts +27 -0
- package/adapters/mcp/runtime-gateway/runtime-tools.ts +68 -0
- package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +186 -0
- package/adapters/mcp/runtime-gateway/shared-adapter.ts +25 -0
- package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +870 -0
- package/adapters/mcp/runtime-gateway/work-adapter.ts +3186 -0
- package/adapters/mcp/runtime-gateway/work-compat-adapter.ts +502 -0
- package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +1 -0
- package/adapters/mcp/server.ts +1048 -0
- package/adapters/mcp/setup.ts +791 -0
- package/adapters/mcp/tool-capability-cache.ts +87 -0
- package/adapters/mcp/tool-mapping/access-tools.ts +387 -0
- package/adapters/mcp/tool-mapping/legacy-tool-service.ts +5265 -0
- package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +150 -0
- package/adapters/mcp/tool-mapping/repository-tools.ts +1691 -0
- package/adapters/mcp/tool-mapping/tools.ts +9 -0
- package/adapters/mcp/tool-mapping/umbrella-tools.ts +117 -0
- package/adapters/mcp/toolset-names.ts +74 -0
- package/adapters/mcp/toolset-selection.ts +41 -0
- package/adapters/mcp/toolset.ts +336 -0
- package/adapters/mcp/transports/http.ts +1456 -0
- package/adapters/mcp/transports/session-registry.ts +513 -0
- package/adapters/mcp/transports/stdio.ts +8 -0
- package/adapters/mcp/tunnels/openai-secure-tunnel.ts +139 -0
- package/adapters/mcp/types.ts +41 -0
- package/assets/AGENTS.md +2 -16
- package/assets/CLAUDE.md +2 -16
- package/assets/hooks/AGENTS.md +3 -14
- package/assets/hooks/CLAUDE.md +3 -14
- package/assets/hooks/hook-input.sh +9 -2
- package/assets/hooks/lib/workflow-state.sh +28 -10
- package/assets/hooks/prompt-guard.sh +63 -37
- package/assets/hooks/security-sentinel.sh +2 -1
- package/assets/hooks/session-start-context.sh +7 -5
- package/assets/hooks/stop-orchestrator.sh +13 -3
- package/assets/initializer-question-pack.v4.json +11 -7
- package/assets/partials/05-workflow.partial.md +18 -73
- package/assets/partials/07-footer.partial.md +1 -1
- package/assets/partials-agents/02-operating-mode.partial.md +1 -2
- package/assets/partials-agents/04-task-protocol.partial.md +14 -59
- package/assets/partials-agents/06-quality-safety.partial.md +11 -16
- package/assets/partials-agents/08-deep-docs.partial.md +1 -2
- package/assets/plan-map.json +11 -11
- package/assets/plugin-registry.v1.json +9 -3
- package/assets/plugin-trust-policy.v1.json +6 -0
- package/assets/recovery/ForgeRecovery.ps1 +100 -0
- package/assets/recovery/forge-wsl-rescue +271 -0
- package/assets/reference-configs/development-protocol.md +11 -15
- package/assets/reference-configs/document-generation.md +1 -1
- package/assets/reference-configs/global-working-rules.md +9 -1
- package/assets/reference-configs/harness-overview.md +22 -112
- package/assets/reference-configs/hook-operations.md +1 -1
- package/assets/reference-configs/sprint-contracts.md +2 -2
- package/assets/skill-version.json +2 -2
- package/assets/templates/helpers/architecture-event.ts +3 -34
- package/assets/templates/helpers/architecture-queue.sh +61 -10
- package/assets/templates/helpers/archive-workflow.sh +90 -180
- package/assets/templates/helpers/capability-config.ts +8 -11
- package/assets/templates/helpers/capability-resolver.ts +37 -19
- package/assets/templates/helpers/capture-plan.sh +2 -2
- package/assets/templates/helpers/check-architecture-sync.sh +1 -9
- package/assets/templates/helpers/check-task-sync.sh +82 -11
- package/assets/templates/helpers/check-task-workflow.sh +1 -3
- package/assets/templates/helpers/context-contract-sync.sh +1 -12
- package/assets/templates/helpers/contract-worktree.sh +26 -24
- package/assets/templates/helpers/ensure-task-workflow.sh +6 -8
- package/assets/templates/helpers/inspect-project-state.ts +1 -1
- package/assets/templates/helpers/migrate-project-template.sh +1 -1
- package/assets/templates/helpers/migrate-workflow-docs.ts +53 -239
- package/assets/templates/helpers/new-plan.sh +2 -2
- package/assets/templates/helpers/plan-to-todo.sh +3 -31
- package/assets/templates/helpers/sprint-backlog.sh +1 -1
- package/assets/templates/helpers/switch-plan.sh +1 -1
- package/assets/templates/helpers/workflow-contract.ts +1 -0
- package/assets/workflow-contract.v1.json +63 -171
- package/assets/workflows/xiaohongshu/xiaohongshu.collect-metrics.v1.draft.json +118 -0
- package/assets/workflows/xiaohongshu/xiaohongshu.publish-image-note.v1.draft.json +316 -0
- package/assets/workflows/xiaohongshu/xiaohongshu.publish-long-text.v1.draft.json +324 -0
- package/docs/architecture/CURRENT.md +148 -13
- package/docs/architecture/EVOLUTION.md +13 -0
- package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +2 -1
- package/docs/architecture/decisions/20260831-independent-windows-wsl-host-rescue.md +59 -0
- package/docs/architecture/decisions/20260904-ios-device-migration-baseline.md +120 -0
- package/docs/architecture/decisions/20260904-repository-runtime-data-boundary.md +42 -0
- package/docs/architecture/decisions/20260907-assistant-learning-loop.md +35 -0
- package/docs/architecture/decisions/20260907-controller-round-transition-policy.md +296 -0
- package/docs/architecture/decisions/20260907-maintenance-diagnosis-bounded-read.md +39 -0
- package/docs/architecture/domains/verification.md +7 -0
- package/docs/architecture/domains/workflow-engine.md +1 -1
- package/docs/architecture/index.md +3 -3
- package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +19 -8
- package/docs/architecture/requests/2026-09-04-computer-plugin-workflow-taxonomy.md +124 -0
- package/docs/forge-chatgpt-mcp-setup.md +5 -3
- package/docs/forge-plugin-management.md +20 -4
- package/docs/forge-runtime-self-healing-loop.md +2 -0
- package/docs/operations/benchmark-cross-version-freeze.md +38 -0
- package/docs/operations/controller-browser-plugin.md +3 -1
- package/docs/operations/homebrew.md +2 -2
- package/docs/operations/platform-support.md +16 -8
- package/docs/operations/platform-support.zh-CN.md +2 -2
- package/docs/operations/standalone-disaster-recovery.md +26 -1
- package/docs/operations/uu-remote-rescue.md +41 -0
- package/docs/operations/windows-wsl-host-rescue.md +133 -0
- package/docs/public-usage-guide.md +1 -1
- package/docs/public-usage-guide.zh-CN.md +1 -1
- package/docs/tutorials/01-install-and-start.md +1 -1
- package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
- package/docs/tutorials/02-connect-chatgpt.md +4 -4
- package/docs/tutorials/02-connect-chatgpt.zh-CN.md +4 -4
- package/docs/wiki/Implementation.md +1 -1
- package/package.json +23 -14
- package/packages/kernel/controller/api/index.ts +2 -0
- package/packages/kernel/controller/application/controller-round-service.ts +29 -0
- package/packages/kernel/controller/application/controller-service.ts +30 -0
- package/packages/kernel/controller/domain/controller-round-transition-policy.ts +308 -0
- package/packages/kernel/controller/domain/controller-round.ts +107 -0
- package/packages/kernel/controller/domain/execution-quality.ts +133 -0
- package/packages/kernel/controller/domain/types.ts +56 -0
- package/packages/kernel/controller/index.ts +1 -0
- package/packages/kernel/controller/infrastructure/controller-binding-store.ts +84 -0
- package/packages/kernel/controller/infrastructure/controller-round-store.ts +1384 -0
- package/packages/kernel/controller/infrastructure/controller-session-store.ts +578 -0
- package/packages/kernel/controller/ports/controller-host.ts +16 -0
- package/packages/kernel/goal/api/index.ts +1 -0
- package/packages/kernel/goal/domain/types.ts +40 -0
- package/packages/kernel/goal/index.ts +1 -0
- package/packages/kernel/identity/api/index.ts +5 -0
- package/packages/kernel/identity/application/identity-service.ts +67 -0
- package/packages/kernel/identity/domain/scope.ts +63 -0
- package/packages/kernel/identity/domain/semantic-sync.ts +81 -0
- package/packages/kernel/identity/domain/types.ts +44 -0
- package/packages/kernel/identity/domain/workspace.ts +56 -0
- package/packages/kernel/identity/index.ts +1 -0
- package/packages/kernel/identity/infrastructure/identity-store.ts +75 -0
- package/packages/kernel/memory/api/index.ts +5 -0
- package/packages/kernel/memory/application/experience-service.ts +118 -0
- package/packages/kernel/memory/application/outcome-service.ts +77 -0
- package/packages/kernel/memory/domain/experience.ts +103 -0
- package/packages/kernel/memory/domain/operational-prior.ts +92 -0
- package/packages/kernel/memory/index.ts +1 -0
- package/packages/kernel/progression/api/index.ts +2 -0
- package/packages/kernel/progression/application/projector.ts +211 -0
- package/packages/kernel/progression/domain/types.ts +116 -0
- package/packages/kernel/progression/index.ts +1 -0
- package/packages/kernel/scheduler/api/index.ts +6 -0
- package/packages/kernel/scheduler/application/continuation-service.ts +212 -0
- package/packages/kernel/scheduler/application/eligibility.ts +252 -0
- package/packages/kernel/scheduler/application/schedule-service.ts +24 -0
- package/packages/kernel/scheduler/application/settlement.ts +197 -0
- package/packages/kernel/scheduler/domain/continuation.ts +38 -0
- package/packages/kernel/scheduler/domain/schedule.ts +149 -0
- package/packages/kernel/scheduler/index.ts +1 -0
- package/packages/kernel/scheduler/infrastructure/continuation-dispatch-store.ts +38 -0
- package/packages/kernel/scheduler/infrastructure/schedule-store.ts +785 -0
- package/packages/kernel/work/api/index.ts +15 -0
- package/packages/kernel/work/application/work-service.ts +148 -0
- package/packages/kernel/work/domain/admission-policy.ts +34 -0
- package/packages/kernel/work/domain/check-receipt.ts +43 -0
- package/packages/kernel/work/domain/context-closure-receipt.ts +32 -0
- package/packages/kernel/work/domain/engineering-contracts.ts +157 -0
- package/packages/kernel/work/domain/engineering-design.ts +281 -0
- package/packages/kernel/work/domain/engineering-profile.ts +242 -0
- package/packages/kernel/work/domain/execution-concurrency.ts +254 -0
- package/packages/kernel/work/domain/execution-snapshot.ts +33 -0
- package/packages/kernel/work/domain/implementation-review.ts +510 -0
- package/packages/kernel/work/domain/project-engineering-contract.ts +202 -0
- package/packages/kernel/work/domain/repository-completion-receipt.ts +73 -0
- package/packages/kernel/work/domain/state-machine.ts +259 -0
- package/packages/kernel/work/domain/types.ts +528 -0
- package/packages/kernel/work/index.ts +1 -0
- package/packages/kernel/work/infrastructure/work-contract-store.ts +1876 -0
- package/packages/kernel/work/ports/work-contract-store.ts +18 -0
- package/packages/plugin-runtime/browser/index.ts +3 -0
- package/packages/plugin-runtime/browser/provider-registry.ts +110 -0
- package/packages/plugin-runtime/browser/runtime-contract.ts +150 -0
- package/packages/plugin-runtime/browser/session-authority.ts +61 -0
- package/packages/plugin-runtime/computer/index.ts +6 -0
- package/packages/plugin-runtime/computer/provider-error.ts +26 -0
- package/packages/plugin-runtime/computer/provider-registration.ts +52 -0
- package/packages/plugin-runtime/computer/provider-registry.ts +63 -0
- package/packages/plugin-runtime/computer/provider.ts +19 -0
- package/packages/plugin-runtime/computer/target-authority.ts +190 -0
- package/packages/plugin-runtime/computer/target-persistence.ts +54 -0
- package/packages/plugin-runtime/external/index.ts +1 -0
- package/packages/plugin-runtime/external/unix-jsonl-transport.ts +457 -0
- package/packages/plugin-runtime/index.ts +3 -0
- package/packages/protocols/browser/index.ts +1 -0
- package/packages/protocols/browser/session.ts +98 -0
- package/packages/protocols/computer/contract.ts +199 -0
- package/packages/protocols/computer/index.ts +1 -0
- package/packages/protocols/failure/contract.ts +158 -0
- package/packages/protocols/failure/index.ts +1 -0
- package/packages/protocols/handoff/index.ts +1 -0
- package/packages/protocols/handoff/status.ts +22 -0
- package/packages/protocols/mcp/execution-context.ts +11 -0
- package/packages/protocols/mcp/index.ts +2 -0
- package/packages/protocols/mcp/tool-contract.ts +42 -0
- package/packages/workflow-runtime/api/index.ts +2 -0
- package/packages/workflow-runtime/application/interpreter.ts +342 -0
- package/packages/workflow-runtime/domain/workflow-asset.ts +223 -0
- package/packages/workflow-runtime/index.ts +1 -0
- package/scripts/assemble-template.ts +1 -1
- package/scripts/benchmark-computer-hotpath.ts +255 -0
- package/scripts/benchmark-controller-round2.ts +54 -2
- package/scripts/benchmark-ios-agent-device.ts +3 -6
- package/scripts/benchmark-mcp-transport.ts +3 -4
- package/scripts/benchmark-operational-memory-activation.ts +235 -0
- package/scripts/benchmark-operational-shadow.ts +28 -0
- package/scripts/bootstrap-runtime-maintenance-recovery.sh +4 -1
- package/scripts/canary-chatgpt-provider-delivery.ts +97 -0
- package/scripts/canary-controller-semantic-wait.ts +195 -0
- package/scripts/canary-global-hook.sh +2 -2
- package/scripts/check-mcp-compatibility.ts +173 -7
- package/scripts/check-platform-support.mjs +28 -2
- package/scripts/check-public-docs.sh +1 -1
- package/scripts/check-release-readiness.sh +1 -1
- package/scripts/check-repository-hygiene.mjs +92 -0
- package/scripts/check-runtime-architecture.mjs +1206 -95
- package/scripts/check-source-duplication.mjs +9 -1
- package/scripts/check-tarball-install-smoke.sh +98 -15
- package/scripts/controller-ngrok-rotation.sh +5 -4
- package/scripts/create-project-dirs.sh +10 -74
- package/scripts/forge-local-recovery-helper.mjs +204 -0
- package/scripts/forge-uu-remote-rescue-helper.d.mts +31 -0
- package/scripts/forge-uu-remote-rescue-helper.mjs +409 -0
- package/scripts/forge-windows-host-recovery-helper.mjs +136 -0
- package/scripts/hook-shim.sh +2 -2
- package/scripts/init-project.sh +12 -70
- package/scripts/install-desktop-operator-registration.ts +4 -2
- package/scripts/install-independent-windows-wsl-recovery.ts +125 -0
- package/scripts/install-standalone-recovery.ts +122 -10
- package/scripts/install-uu-remote-rescue-registration.ts +74 -0
- package/scripts/install-windows-host-recovery-registration.ts +22 -0
- package/scripts/lib/controller-home-env.sh +6 -3
- package/scripts/lib/project-init-lib.sh +39 -582
- package/scripts/migrate-chatgpt-automation-schedules.ts +2 -2
- package/scripts/migrate-windows-wsl-controller-home.ts +306 -0
- package/scripts/open-source-audit-allowlist.txt +12 -1
- package/scripts/portability-bindings.mjs +70 -0
- package/scripts/run-bounded-command.mjs +55 -0
- package/scripts/run-bun-test-file.ts +22 -6
- package/scripts/run-governed-gate.ts +4 -1
- package/scripts/smoke-mcp-http-runtime.ts +1 -1
- package/scripts/smoke-runtime-recovery.ts +34 -1
- package/scripts/smoke-schedule-engine.ts +1 -1
- package/scripts/stage-runtime-release.ts +6 -1
- package/scripts/test-governance.ts +51 -2
- package/src/cli/agent-jobs/job-manager.ts +10 -1
- package/src/cli/chatgpt-browser/bind-server.ts +2 -1
- package/src/cli/chatgpt-browser/binding.ts +20 -10
- package/src/cli/chatgpt-browser/bridge-extension.ts +75 -0
- package/src/cli/chatgpt-browser/bridge-provider.ts +376 -11
- package/src/cli/chatgpt-browser/engine.ts +10 -11
- package/src/cli/chatgpt-browser/native-provider.ts +24 -83
- package/src/cli/chatgpt-browser/oracle-provider.ts +5 -3
- package/src/cli/chatgpt-browser/types.ts +1 -0
- package/src/cli/commands/bootstrap-control.ts +334 -0
- package/src/cli/commands/brain-assistant.ts +38 -0
- package/src/cli/commands/brain.ts +193 -40
- package/src/cli/commands/chatgpt.ts +127 -0
- package/src/cli/commands/computer.ts +437 -0
- package/src/cli/commands/doctor.ts +18 -1
- package/src/cli/commands/init-hook.ts +71 -61
- package/src/cli/commands/init.ts +3 -1
- package/src/cli/commands/mcp.ts +16 -10
- package/src/cli/commands/plugin.ts +38 -12
- package/src/cli/commands/recovery.ts +493 -80
- package/src/cli/commands/runtime.ts +9 -4
- package/src/cli/commands/setup-profile.ts +89 -39
- package/src/cli/commands/status.ts +2 -1
- package/src/cli/controller/check-runner.ts +487 -98
- package/src/cli/controller/context/types.ts +7 -1
- package/src/cli/controller/context-pack.ts +23 -3
- package/src/cli/controller/issue-store.ts +1 -1
- package/src/cli/controller/systemd-user.ts +110 -0
- package/src/cli/controller/types.ts +10 -70
- package/src/cli/controller/worklog.ts +67 -13
- package/src/cli/editing/edit-operation-contract.ts +92 -0
- package/src/cli/editing/edit-session.ts +289 -13
- package/src/cli/github/plugin.ts +17 -12
- package/src/cli/hook/route-registry.ts +3 -5
- package/src/cli/hook/runtime.ts +49 -3
- package/src/cli/index.ts +3 -0
- package/src/cli/local-bridge/connector-freshness.ts +2 -2
- package/src/cli/local-bridge/console-automations.ts +2 -2
- package/src/cli/local-bridge/facade-api.ts +41 -14
- package/src/cli/local-bridge/job-store.ts +1 -1
- package/src/cli/local-bridge/server.ts +24 -27
- package/src/cli/mcp/access-mode.ts +2 -132
- package/src/cli/mcp/access-tools.ts +2 -387
- package/src/cli/mcp/audit.ts +2 -32
- package/src/cli/mcp/auth.ts +2 -404
- package/src/cli/mcp/instructions.ts +2 -34
- package/src/cli/mcp/legacy-context.ts +2 -16
- package/src/cli/mcp/legacy-tool-service.ts +2 -5308
- package/src/cli/mcp/multi-repository.ts +2 -436
- package/src/cli/mcp/oauth.ts +2 -375
- package/src/cli/mcp/openai-secure-tunnel.ts +2 -0
- package/src/cli/mcp/paths.ts +2 -140
- package/src/cli/mcp/policy.ts +2 -232
- package/src/cli/mcp/post-finalize-work-attribution.ts +2 -150
- package/src/cli/mcp/proxy-env.ts +2 -62
- package/src/cli/mcp/readiness-projection.ts +2 -24
- package/src/cli/mcp/redaction.ts +2 -21
- package/src/cli/mcp/repo.ts +2 -24
- package/src/cli/mcp/repository-tools.ts +2 -1585
- package/src/cli/mcp/server.ts +2 -951
- package/src/cli/mcp/setup.ts +2 -737
- package/src/cli/mcp/tool-capability-cache.ts +2 -87
- package/src/cli/mcp/tool-contract.ts +2 -14
- package/src/cli/mcp/tools.ts +2 -9
- package/src/cli/mcp/toolset-names.ts +2 -70
- package/src/cli/mcp/toolset-selection.ts +2 -41
- package/src/cli/mcp/toolset.ts +2 -336
- package/src/cli/mcp/transports/AGENTS.md +1 -10
- package/src/cli/mcp/transports/CLAUDE.md +1 -10
- package/src/cli/mcp/transports/http.ts +2 -1414
- package/src/cli/mcp/transports/session-registry.ts +2 -490
- package/src/cli/mcp/transports/stdio.ts +2 -8
- package/src/cli/mcp/types.ts +2 -41
- package/src/cli/mcp/umbrella-tools.ts +2 -117
- package/src/cli/repositories/command-executor.ts +64 -18
- package/src/cli/repositories/command-scope.ts +117 -1
- package/src/cli/repositories/controller-home.ts +119 -1
- package/src/cli/repositories/identity.ts +13 -0
- package/src/cli/repositories/registry.ts +68 -49
- package/src/cli/repositories/repository-snapshot.ts +53 -7
- package/src/cli/repositories/runtime-storage.ts +27 -2
- package/src/cli/repositories/safe-patch.ts +34 -38
- package/src/cli/repositories/selected-path-actions.ts +22 -2
- package/src/cli/repositories/structured-git.ts +105 -25
- package/src/cli/runtime/helper-runner.ts +7 -0
- package/src/cli/runtime-invocation.ts +8 -1
- package/src/cli/tools/codegraph.ts +44 -25
- package/src/core/adoption/manifest-templates.ts +1 -1
- package/src/core/adoption/plan.ts +3 -26
- package/src/core/adoption/workflow-contract-plan.ts +17 -9
- package/src/effects/process-runner.ts +8 -14
- package/src/runtime/context/assistant-context.ts +154 -0
- package/src/runtime/context/assistant-work-context.ts +147 -0
- package/src/runtime/context/codegraph-cache-boundary.ts +255 -0
- package/src/runtime/context/codegraph-read-provider.ts +55 -22
- package/src/runtime/context/codegraph-sidecar.cjs +8 -1
- package/src/runtime/context/context-closure.ts +268 -0
- package/src/runtime/context/context-plane.ts +211 -0
- package/src/runtime/context/project-engineering-contract.ts +60 -0
- package/src/runtime/control-plane/bootstrap/capability-provider.ts +74 -0
- package/src/runtime/control-plane/bootstrap/control-api.ts +57 -0
- package/src/runtime/control-plane/bootstrap/index.ts +5 -0
- package/src/runtime/control-plane/bootstrap/state-machine.ts +141 -0
- package/src/runtime/control-plane/bootstrap/store.ts +21 -0
- package/src/runtime/control-plane/bootstrap/types.ts +87 -0
- package/src/runtime/control-plane/cleanup-artifact-retention.ts +328 -0
- package/src/runtime/control-plane/codegraph-cache-retention.ts +164 -0
- package/src/runtime/control-plane/concurrency/work-execution-concurrency.ts +320 -0
- package/src/runtime/control-plane/execution/content-equivalent-commit-authority.ts +169 -0
- package/src/runtime/control-plane/execution/controller-authority-recovery.ts +350 -0
- package/src/runtime/control-plane/execution/direct-canonical-work-reconciliation.ts +85 -0
- package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +417 -100
- package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +103 -15
- package/src/runtime/control-plane/execution/implementation-review-content.ts +95 -0
- package/src/runtime/control-plane/execution/repository-work-attribution.ts +2 -2
- package/src/runtime/control-plane/execution/retained-work-resume.ts +336 -6
- package/src/runtime/control-plane/execution/validation.ts +28 -3
- package/src/runtime/control-plane/execution/work-authority-reconciler.ts +116 -0
- package/src/runtime/control-plane/execution/work-completion-authority.ts +44 -2
- package/src/runtime/control-plane/execution/work-evidence-policy.ts +34 -3
- package/src/runtime/control-plane/execution/work-execution-support.ts +42 -22
- package/src/runtime/control-plane/execution/work-finalization-service.ts +1103 -166
- package/src/runtime/control-plane/execution/work-handle-authority.ts +267 -16
- package/src/runtime/control-plane/execution/work-handle-store.ts +77 -0
- package/src/runtime/control-plane/execution/work-head-settlement.ts +75 -0
- package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +145 -23
- package/src/runtime/control-plane/execution/work-operation-service.ts +49 -13
- package/src/runtime/control-plane/execution/work-preparation-service.ts +31 -15
- package/src/runtime/control-plane/execution/work-remote-delivery.ts +1 -1
- package/src/runtime/control-plane/execution/work-task-receipt.ts +20 -1
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +407 -76
- package/src/runtime/control-plane/execution/work-validation-reconciler.ts +88 -18
- package/src/runtime/control-plane/execution/work-verification-context.ts +1 -1
- package/src/runtime/control-plane/execution/work-verification-service.ts +258 -4
- package/src/runtime/control-plane/execution/work-verification-snapshot.ts +200 -15
- package/src/runtime/control-plane/facade/capability-registry.ts +21 -10
- package/src/runtime/control-plane/facade/controller-round-relay.ts +3 -1118
- package/src/runtime/control-plane/facade/controller-session-store.ts +2 -488
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +6 -3
- package/src/runtime/control-plane/facade/goal-workloop.ts +972 -137
- package/src/runtime/control-plane/facade/handoff-inbox-application.ts +158 -0
- package/src/runtime/control-plane/facade/handoff-inbox-store.ts +10 -0
- package/src/runtime/control-plane/facade/index.ts +4 -2
- package/src/runtime/control-plane/facade/operation-digest.ts +22 -58
- package/src/runtime/control-plane/facade/plan-contract-store.ts +1004 -38
- package/src/runtime/control-plane/facade/repository-work-admission.ts +19 -1
- package/src/runtime/control-plane/facade/requirement-authority.ts +218 -0
- package/src/runtime/control-plane/facade/requirement-board.ts +6 -1
- package/src/runtime/control-plane/facade/rh-work-operation-contract.ts +48 -0
- package/src/runtime/control-plane/facade/semantic-admission.ts +8 -16
- package/src/runtime/control-plane/facade/suggested-actions.ts +4 -1
- package/src/runtime/control-plane/facade/types.ts +189 -532
- package/src/runtime/control-plane/facade/work-admission-policy.ts +84 -35
- package/src/runtime/control-plane/facade/work-contract-store.ts +2 -1043
- package/src/runtime/control-plane/facade/work-implementation-review.ts +2 -0
- package/src/runtime/control-plane/facade/work-state-machine.ts +2 -250
- package/src/runtime/control-plane/generated-cache-retention.ts +239 -18
- package/src/runtime/control-plane/global-scheduler/durable-admission.ts +12 -1
- package/src/runtime/control-plane/global-scheduler/maintenance.ts +76 -13
- package/src/runtime/control-plane/global-scheduler/periodic-cleanup-entry.ts +55 -0
- package/src/runtime/control-plane/global-scheduler/periodic-cleanup-process.ts +98 -0
- package/src/runtime/control-plane/global-scheduler/reconciliation.ts +1 -1
- package/src/runtime/control-plane/global-scheduler/scheduler-worker-entry.ts +10 -0
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +173 -81
- package/src/runtime/control-plane/global-scheduler/worker-launch.ts +18 -6
- package/src/runtime/control-plane/launcher/chatgpt-round-continuation.ts +397 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +2 -177
- package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +301 -560
- package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +20 -4
- package/src/runtime/control-plane/launcher/thin-launcher.ts +50 -4
- package/src/runtime/control-plane/lifecycle-retention-metrics.ts +60 -0
- package/src/runtime/control-plane/persistence/experience-store.ts +169 -0
- package/src/runtime/control-plane/persistence/operational-prior-store.ts +348 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +30 -22
- package/src/runtime/control-plane/persistence/sqlite-store.ts +545 -76
- package/src/runtime/control-plane/persistence/workflow-content-store.ts +98 -0
- package/src/runtime/control-plane/persistence/workflow-registry-store.ts +186 -0
- package/src/runtime/control-plane/persistence/workflow-run-store.ts +123 -0
- package/src/runtime/control-plane/release-retention.ts +56 -16
- package/src/runtime/control-plane/repository-namespace-retention.ts +208 -0
- package/src/runtime/control-plane/routing/route-policy.ts +19 -0
- package/src/runtime/control-plane/runtime-cleanup.ts +574 -37
- package/src/runtime/control-plane/runtime-generation.ts +6 -0
- package/src/runtime/control-plane/workspace/semantic-sync-service.ts +465 -0
- package/src/runtime/control-plane/workspace/workspace-store.ts +80 -0
- package/src/runtime/diagnostics/incident-repair.ts +406 -0
- package/src/runtime/diagnostics/mcp-timing.ts +125 -6
- package/src/runtime/diagnostics/performance.ts +6 -14
- package/src/runtime/diagnostics/read-only-tool.ts +1 -1
- package/src/runtime/evidence/artifact-store.ts +65 -2
- package/src/runtime/evidence/operational-shadow.ts +38 -0
- package/src/runtime/evidence/process-check-receipt.ts +5 -43
- package/src/runtime/evidence/sensitive-output.ts +4 -4
- package/src/runtime/execution/jobs/receipt-recovery.ts +1 -1
- package/src/runtime/execution/jobs/store.ts +121 -2
- package/src/runtime/execution/managed-workspace.ts +55 -5
- package/src/runtime/execution/process-runtime/canary.ts +19 -5
- package/src/runtime/execution/process-runtime/check-classification.ts +48 -0
- package/src/runtime/execution/process-runtime/check-facade.ts +23 -9
- package/src/runtime/execution/process-runtime/check-receipt.ts +1 -1
- package/src/runtime/execution/process-runtime/check-result-retention.ts +132 -0
- package/src/runtime/execution/process-runtime/check-result.ts +73 -2
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +42 -3
- package/src/runtime/execution/process-runtime/check-storage.ts +187 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +38 -87
- package/src/runtime/execution/process-runtime/index.ts +1 -0
- package/src/runtime/execution/process-runtime/interactive-admission.ts +2 -1
- package/src/runtime/execution/process-runtime/lightweight-managed.ts +32 -1
- package/src/runtime/execution/process-runtime/persisted-check.ts +128 -21
- package/src/runtime/execution/process-runtime/resource-claims.ts +60 -3
- package/src/runtime/execution/process-runtime/runtime.ts +132 -15
- package/src/runtime/execution/process-runtime/types.ts +22 -0
- package/src/runtime/execution/workers/executor.ts +16 -13
- package/src/runtime/execution/workers/worker-entry.ts +1 -1
- package/src/runtime/gateway/mcp/execution-tools.ts +2 -207
- package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +2 -61
- package/src/runtime/gateway/mcp/persisted-check-process.ts +2 -3
- package/src/runtime/gateway/mcp/process-tools.ts +2 -289
- package/src/runtime/gateway/mcp/router.ts +2 -1125
- package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +2 -565
- package/src/runtime/gateway/mcp/runtime-tools.ts +2 -6651
- package/src/runtime/gateway/mcp/work-validation-reconciler.ts +2 -1
- package/src/runtime/maintenance/cleanup.ts +38 -24
- package/src/runtime/platform/browser-product-discovery.ts +174 -0
- package/src/runtime/platform/computer-platform.ts +14 -0
- package/src/runtime/platform/executable-discovery.ts +54 -0
- package/src/runtime/platform/fetch-http-server.ts +90 -0
- package/src/runtime/platform/service-manager.ts +138 -0
- package/src/runtime/platform/windows-host-discovery.ts +118 -0
- package/src/runtime/platform/windows-recovery-deployment.ts +67 -0
- package/src/runtime/plugins/action-application.ts +135 -0
- package/src/runtime/plugins/app-store-connect-adapter.ts +9 -21
- package/src/runtime/plugins/browser-adapter.ts +140 -100
- package/src/runtime/plugins/browser-automation-service.ts +15 -36
- package/src/runtime/plugins/browser-macos-bridge.ts +69 -21
- package/src/runtime/plugins/browser-manifest-surface.ts +30 -6
- package/src/runtime/plugins/browser-native-session-service.ts +1 -1
- package/src/runtime/plugins/browser-provider-registry.ts +2 -109
- package/src/runtime/plugins/browser-registration.ts +16 -0
- package/src/runtime/plugins/browser-runtime-contract.ts +2 -154
- package/src/runtime/plugins/browser-runtime.ts +41 -9
- package/src/runtime/plugins/browser-session-authority.ts +101 -291
- package/src/runtime/plugins/browser-session-legacy-migration.ts +203 -0
- package/src/runtime/plugins/browser-session-store.ts +229 -36
- package/src/runtime/plugins/browser-session-types.ts +2 -98
- package/src/runtime/plugins/capability-authorization-grants.ts +17 -0
- package/src/runtime/plugins/catalog-trust.ts +82 -0
- package/src/runtime/plugins/computer-registration.ts +839 -0
- package/src/runtime/plugins/config-store.ts +119 -0
- package/src/runtime/plugins/desktop-operator-external-policy.ts +932 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +111 -8
- package/src/runtime/plugins/errors.ts +8 -1
- package/src/runtime/plugins/external-adapter.ts +45 -322
- package/src/runtime/plugins/external-provider-policy.ts +48 -0
- package/src/runtime/plugins/external-registration.ts +9 -1
- package/src/runtime/plugins/external-unix-socket-probe.cjs +9 -3
- package/src/runtime/plugins/external-unix-socket.ts +64 -193
- package/src/runtime/plugins/first-party-external-registration.ts +163 -0
- package/src/runtime/plugins/first-party-registry.ts +3 -1
- package/src/runtime/plugins/github-adapter.ts +1 -2
- package/src/runtime/plugins/gmail-adapter.ts +6 -6
- package/src/runtime/plugins/google-calendar-adapter.ts +6 -6
- package/src/runtime/plugins/google-shared.ts +31 -46
- package/src/runtime/plugins/google-tasks-adapter.ts +6 -6
- package/src/runtime/plugins/ios-adapter.ts +1 -2
- package/src/runtime/plugins/local-system-adapter.ts +180 -0
- package/src/runtime/plugins/macos-capability-broker.ts +15 -105
- package/src/runtime/plugins/resend-adapter.ts +15 -24
- package/src/runtime/plugins/store.ts +493 -51
- package/src/runtime/plugins/types.ts +8 -1
- package/src/runtime/plugins/uu-remote-rescue-registration.ts +155 -0
- package/src/runtime/plugins/windows-host-recovery-install.ts +68 -0
- package/src/runtime/plugins/windows-host-recovery-registration.ts +85 -0
- package/src/runtime/plugins/xiaohongshu-publish.ts +86 -430
- package/src/runtime/projections/controller-context.ts +12 -6
- package/src/runtime/projections/git-status-sampler.ts +73 -22
- package/src/runtime/projections/materialized-view.ts +14 -8
- package/src/runtime/recovery/capability-action-application.ts +228 -0
- package/src/runtime/recovery/index.ts +3 -0
- package/src/runtime/recovery/lifecycle-inventory.ts +338 -0
- package/src/runtime/recovery/local-jobs-repair.ts +14 -14
- package/src/runtime/recovery/maintenance-executor.ts +358 -76
- package/src/runtime/recovery/quarantine-retention.ts +256 -0
- package/src/runtime/release/identity.ts +6 -0
- package/src/runtime/resources/leases/store.ts +1 -1
- package/src/runtime/root/active-execution-power-assertion.ts +139 -0
- package/src/runtime/root/assistant-learning-loop.ts +45 -0
- package/src/runtime/root/browser-session-composition.ts +59 -0
- package/src/runtime/root/computer-composition.ts +191 -0
- package/src/runtime/root/computer-target-composition.ts +16 -0
- package/src/runtime/root/computer-target-persistence.ts +39 -0
- package/src/runtime/root/controller-round-composition.ts +107 -0
- package/src/runtime/root/controller-services.ts +2 -0
- package/src/runtime/root/entry.ts +4 -3
- package/src/runtime/root/gateway-adapter.ts +3 -3
- package/src/runtime/root/local-bridge.ts +5 -2
- package/src/runtime/root/mcp-transport.ts +5 -5
- package/src/runtime/root/package-connector-service.ts +108 -56
- package/src/runtime/root/package-runtime-release.ts +86 -18
- package/src/runtime/root/package-runtime-service.ts +63 -86
- package/src/runtime/root/release-execution-canary.ts +71 -0
- package/src/runtime/root/release-loader.ts +68 -0
- package/src/runtime/root/release-manifest.ts +106 -2
- package/src/runtime/root/release-materialize.ts +103 -4
- package/src/runtime/root/release-store.ts +31 -2
- package/src/runtime/root/runtime.ts +240 -25
- package/src/runtime/root/scheduled-controller-composition.ts +51 -0
- package/src/runtime/root/scheduler.ts +12 -4
- package/src/runtime/root/service-runner.ts +1 -1
- package/src/runtime/root/service.ts +41 -16
- package/src/runtime/root/status.ts +1 -0
- package/src/runtime/root/types.ts +24 -1
- package/src/runtime/shared/local-bridge-surface.ts +1 -1
- package/src/runtime/shared/process-environment.ts +19 -4
- package/src/runtime/shared/storage-capacity.ts +68 -0
- package/src/runtime/standalone-recovery/controller-home-migration.ts +1116 -0
- package/src/runtime/standalone-recovery/core.ts +984 -230
- package/src/runtime/standalone-recovery/entry.ts +182 -51
- package/src/runtime/standalone-recovery/independent-host-rescue.ts +172 -0
- package/src/runtime/standalone-recovery/installer.ts +212 -104
- package/src/runtime/standalone-recovery/mcp-server.ts +243 -0
- package/src/runtime/standalone-recovery/mutation-identity-contract.ts +21 -0
- package/src/runtime/standalone-recovery/operation-lock.ts +160 -0
- package/src/runtime/standalone-recovery/performance.ts +135 -0
- package/src/runtime/standalone-recovery/release.ts +5 -0
- package/src/runtime/watchdog/workflow-watchdog.ts +1 -1
- package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +1 -1
- package/src/runtime/workflow/schedules/engine.ts +191 -343
- package/src/runtime/workflow/schedules/pending-activation.ts +1 -1
- package/src/runtime/workflow/schedules/settlement.ts +2 -191
- package/src/runtime/workflow/schedules/store.ts +2 -607
- package/src/runtime/workflow/schedules/types.ts +2 -127
- package/src/runtime/workflow/schedules/work-continuation.ts +180 -15
- package/src/runtime/workflows/first-party/xiaohongshu.ts +122 -0
- package/src/runtime/workflows/runtime.ts +486 -0
- package/src/testing/test-governance.ts +90 -29
- package/assets/templates/helpers/archive-architecture-request.sh +0 -244
- package/docs/architecture/history/README.md +0 -7
- package/docs/architecture/history/chatgpt-handoff-facade.md +0 -397
- package/docs/architecture/history/global-hook-runtime.md +0 -166
- package/docs/architecture/history/ios-semantic-automation-provider-v2.md +0 -170
- package/docs/architecture/requests/archive/2026/20260528-154740-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-154816-assets-hooks-assets-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161851-ai-harness-workflow-contract-json-ai-harness-workflow-contract-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161853-scripts-check-task-workflow-sh-scripts-check-task-workflow-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161911-assets-workflow-contract-v1-json-assets-workflow-contract-v1-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222416-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222444-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222457-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222648-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222705-ai-hooks-ai-hooks-worktree-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222726-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222727-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-224736-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233259-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233335-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233456-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233457-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233637-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233638-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-000322-root-package-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-004238-ai-hooks-ai-hooks-lib-workflow-state-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-020654-ai-harness-policy-json-ai-harness-policy-json.md +0 -63
- package/docs/architecture/requests/archive/2026/20260529-094236-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094323-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094331-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094339-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094430-assets-hooks-assets-hooks-session-start-context-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094446-ai-hooks-ai-hooks-session-start-context-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260613-002040-runtime-harness-hook-adapters.md +0 -68
- package/docs/architecture/requests/archive/2026/root.md +0 -68
- package/docs/architecture/requests/archive/2026/runtime-harness-hook-adapters.md +0 -76
- package/docs/architecture/requests/archive/2026/verification-evals-checks.md +0 -68
- package/docs/architecture/requests/archive/2026/workflow-engine-contract-assets.md +0 -69
- package/scripts/archive-architecture-request.sh +0 -4
- package/scripts/run-skill-evals.ts +0 -1022
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type McpProfileName = 'planner' | 'executor' | 'orchestrator' | 'controller';
|
|
2
|
+
export type McpPathIntent = 'read' | 'write';
|
|
3
|
+
export type McpAgentRunnerName = 'codex' | 'claude';
|
|
4
|
+
/** Controller MCP tools/list exposure profile.
|
|
5
|
+
* - facade: explicit five-tool ChatGPT orchestration surface
|
|
6
|
+
* - core/advanced (default compatibility labels): bounded stable controller surface
|
|
7
|
+
* - full: compatibility mode — all legacy + runtime tools
|
|
8
|
+
*/
|
|
9
|
+
export type McpToolset = 'facade' | 'core' | 'advanced' | 'full';
|
|
10
|
+
|
|
11
|
+
export interface McpPolicy {
|
|
12
|
+
profile: McpProfileName;
|
|
13
|
+
readGlobs: string[];
|
|
14
|
+
writeGlobs: string[];
|
|
15
|
+
denyGlobs: string[];
|
|
16
|
+
maxFileBytes: number;
|
|
17
|
+
execution: {
|
|
18
|
+
fixedWorkflowCheck: boolean;
|
|
19
|
+
codexRunner: boolean;
|
|
20
|
+
agentRunner: boolean;
|
|
21
|
+
allowedAgents: McpAgentRunnerName[];
|
|
22
|
+
runnerTimeoutMs: number;
|
|
23
|
+
runnerMaxTimeoutMs: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface McpPathDecision {
|
|
28
|
+
ok: boolean;
|
|
29
|
+
relativePath?: string;
|
|
30
|
+
absolutePath?: string;
|
|
31
|
+
reason?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface McpAuditEntry {
|
|
35
|
+
timestamp: string;
|
|
36
|
+
tool: string;
|
|
37
|
+
status: 'ok' | 'blocked' | 'failed';
|
|
38
|
+
targetPath?: string;
|
|
39
|
+
inputHash?: string;
|
|
40
|
+
error?: string;
|
|
41
|
+
}
|
package/assets/AGENTS.md
CHANGED
|
@@ -10,17 +10,15 @@ Keep this file focused on the local contract for this primary functional block.
|
|
|
10
10
|
- Name: `contract-assets`
|
|
11
11
|
- Primary prefix: `assets/workflow-contract.v1.json`
|
|
12
12
|
- Architecture module: `docs/architecture/modules/workflow-engine/contract-assets.md`
|
|
13
|
-
- Workstream: `tasks/workstreams/workflow-engine/contract-assets`
|
|
14
13
|
|
|
15
14
|
## Positioning
|
|
16
15
|
|
|
17
|
-
Owns
|
|
16
|
+
Owns packaged workflow/compatibility contract assets. Mutable execution lifecycle is Controller Home authority; assets must not reintroduce repo-local machine workflow state.
|
|
18
17
|
|
|
19
18
|
## Source Map
|
|
20
19
|
|
|
21
20
|
- Primary prefix: `assets/workflow-contract.v1.json` (entrypoint)
|
|
22
21
|
- Architecture module: `docs/architecture/modules/workflow-engine/contract-assets.md` (design-source)
|
|
23
|
-
- Workstream: `tasks/workstreams/workflow-engine/contract-assets` (durable-progress)
|
|
24
22
|
|
|
25
23
|
## Refresh Hints
|
|
26
24
|
|
|
@@ -52,17 +50,5 @@ Owns the workflow-engine-contract-assets capability boundary declared in .ai/con
|
|
|
52
50
|
- Semantic diagram source: `docs/architecture/modules/workflow-engine/contract-assets.md`
|
|
53
51
|
- Latest human diagram: `(none yet)`
|
|
54
52
|
- Pending architecture request: `(none)`
|
|
55
|
-
|
|
56
|
-
## Active Workstreams
|
|
57
|
-
|
|
58
|
-
- `tasks/workstreams/workflow-engine/contract-assets/cleanup-script-policy.md`
|
|
59
|
-
- status: completed
|
|
60
|
-
- current_slice: todo-01
|
|
61
|
-
- source_plan: (none)
|
|
62
|
-
|
|
63
|
-
## Current Session Projection
|
|
64
|
-
|
|
65
|
-
- Durable progress lives under `tasks/workstreams/workflow-engine/contract-assets`.
|
|
66
|
-
- `tasks/current.md` is a tracked derived status snapshot, not a live lock or task source.
|
|
67
|
-
- `tasks/todos.md` is the deferred-goal ledger; current execution slices stay in the active plan's `## Task Breakdown`.
|
|
53
|
+
- Runtime progress authority: Forge Controller Home Requirement/Plan/Work/Evidence; this repository block contains authored architecture context only.
|
|
68
54
|
<!-- END ARCHITECTURE CONTRACT -->
|
package/assets/CLAUDE.md
CHANGED
|
@@ -10,17 +10,15 @@ Keep this file focused on the local contract for this primary functional block.
|
|
|
10
10
|
- Name: `contract-assets`
|
|
11
11
|
- Primary prefix: `assets/workflow-contract.v1.json`
|
|
12
12
|
- Architecture module: `docs/architecture/modules/workflow-engine/contract-assets.md`
|
|
13
|
-
- Workstream: `tasks/workstreams/workflow-engine/contract-assets`
|
|
14
13
|
|
|
15
14
|
## Positioning
|
|
16
15
|
|
|
17
|
-
Owns
|
|
16
|
+
Owns packaged workflow/compatibility contract assets. Mutable execution lifecycle is Controller Home authority; assets must not reintroduce repo-local machine workflow state.
|
|
18
17
|
|
|
19
18
|
## Source Map
|
|
20
19
|
|
|
21
20
|
- Primary prefix: `assets/workflow-contract.v1.json` (entrypoint)
|
|
22
21
|
- Architecture module: `docs/architecture/modules/workflow-engine/contract-assets.md` (design-source)
|
|
23
|
-
- Workstream: `tasks/workstreams/workflow-engine/contract-assets` (durable-progress)
|
|
24
22
|
|
|
25
23
|
## Refresh Hints
|
|
26
24
|
|
|
@@ -52,17 +50,5 @@ Owns the workflow-engine-contract-assets capability boundary declared in .ai/con
|
|
|
52
50
|
- Semantic diagram source: `docs/architecture/modules/workflow-engine/contract-assets.md`
|
|
53
51
|
- Latest human diagram: `(none yet)`
|
|
54
52
|
- Pending architecture request: `(none)`
|
|
55
|
-
|
|
56
|
-
## Active Workstreams
|
|
57
|
-
|
|
58
|
-
- `tasks/workstreams/workflow-engine/contract-assets/cleanup-script-policy.md`
|
|
59
|
-
- status: completed
|
|
60
|
-
- current_slice: todo-01
|
|
61
|
-
- source_plan: (none)
|
|
62
|
-
|
|
63
|
-
## Current Session Projection
|
|
64
|
-
|
|
65
|
-
- Durable progress lives under `tasks/workstreams/workflow-engine/contract-assets`.
|
|
66
|
-
- `tasks/current.md` is a tracked derived status snapshot, not a live lock or task source.
|
|
67
|
-
- `tasks/todos.md` is the deferred-goal ledger; current execution slices stay in the active plan's `## Task Breakdown`.
|
|
53
|
+
- Runtime progress authority: Forge Controller Home Requirement/Plan/Work/Evidence; this repository block contains authored architecture context only.
|
|
68
54
|
<!-- END ARCHITECTURE CONTRACT -->
|
package/assets/hooks/AGENTS.md
CHANGED
|
@@ -10,7 +10,7 @@ Keep this file focused on the local contract for this primary functional block.
|
|
|
10
10
|
- Route deep implementation detail into nearby docs instead of inflating root agent context files.
|
|
11
11
|
- Treat `.ai/context/context-map.json` as the index of discoverable context files.
|
|
12
12
|
- Do not keep pushing context files deeper by default; add lower-level files only for a separately owned functional block with its own commands and invariants.
|
|
13
|
-
- Prefer
|
|
13
|
+
- Prefer authored repository context for durable source knowledge and Controller Home for mutable workflow state; tool-specific chat memory is never authority.
|
|
14
14
|
|
|
15
15
|
<!-- BEGIN CAPABILITY CONTEXT -->
|
|
16
16
|
## Capability Context
|
|
@@ -20,7 +20,6 @@ Keep this file focused on the local contract for this primary functional block.
|
|
|
20
20
|
- Name: `hook-adapters`
|
|
21
21
|
- Primary prefix: `assets/hooks`
|
|
22
22
|
- Architecture module: `docs/architecture/modules/runtime-harness/hook-adapters.md`
|
|
23
|
-
- Workstream: `tasks/workstreams/runtime-harness/hook-adapters`
|
|
24
23
|
|
|
25
24
|
## Positioning
|
|
26
25
|
|
|
@@ -30,12 +29,11 @@ Owns the runtime-harness-hook-adapters capability boundary declared in .ai/conte
|
|
|
30
29
|
|
|
31
30
|
- Primary prefix: `assets/hooks` (entrypoint)
|
|
32
31
|
- Architecture module: `docs/architecture/modules/runtime-harness/hook-adapters.md` (design-source)
|
|
33
|
-
- Workstream: `tasks/workstreams/runtime-harness/hook-adapters` (durable-progress)
|
|
34
32
|
|
|
35
33
|
## Refresh Hints
|
|
36
34
|
|
|
37
35
|
- `bun test tests/hook-runtime.test.ts tests/hook-contracts.test.ts tests/workflow-contract.test.ts`
|
|
38
|
-
- `
|
|
36
|
+
- `forge run check-task-workflow --strict`
|
|
39
37
|
<!-- END CAPABILITY CONTEXT -->
|
|
40
38
|
|
|
41
39
|
<!-- BEGIN ARCHITECTURE CONTRACT -->
|
|
@@ -62,14 +60,5 @@ Owns the runtime-harness-hook-adapters capability boundary declared in .ai/conte
|
|
|
62
60
|
- Semantic diagram source: `docs/architecture/modules/runtime-harness/hook-adapters.md`
|
|
63
61
|
- Latest human diagram: `(none yet)`
|
|
64
62
|
- Pending architecture request: `(none)`
|
|
65
|
-
|
|
66
|
-
## Active Workstreams
|
|
67
|
-
|
|
68
|
-
- (none yet)
|
|
69
|
-
|
|
70
|
-
## Current Session Projection
|
|
71
|
-
|
|
72
|
-
- Durable progress lives under `tasks/workstreams/runtime-harness/hook-adapters`.
|
|
73
|
-
- `tasks/current.md` is the tracked derived status snapshot; it is not a live lock or task source.
|
|
74
|
-
- `tasks/todos.md` is the deferred-goal ledger; current execution slices stay in the active plan's `## Task Breakdown`.
|
|
63
|
+
- Runtime progress authority: Forge Controller Home Requirement/Plan/Work/Evidence; this repository block contains authored architecture context only.
|
|
75
64
|
<!-- END ARCHITECTURE CONTRACT -->
|
package/assets/hooks/CLAUDE.md
CHANGED
|
@@ -10,7 +10,7 @@ Keep this file focused on the local contract for this primary functional block.
|
|
|
10
10
|
- Route deep implementation detail into nearby docs instead of inflating root agent context files.
|
|
11
11
|
- Treat `.ai/context/context-map.json` as the index of discoverable context files.
|
|
12
12
|
- Do not keep pushing context files deeper by default; add lower-level files only for a separately owned functional block with its own commands and invariants.
|
|
13
|
-
- Prefer
|
|
13
|
+
- Prefer authored repository context for durable source knowledge and Controller Home for mutable workflow state; tool-specific chat memory is never authority.
|
|
14
14
|
|
|
15
15
|
<!-- BEGIN CAPABILITY CONTEXT -->
|
|
16
16
|
## Capability Context
|
|
@@ -20,7 +20,6 @@ Keep this file focused on the local contract for this primary functional block.
|
|
|
20
20
|
- Name: `hook-adapters`
|
|
21
21
|
- Primary prefix: `assets/hooks`
|
|
22
22
|
- Architecture module: `docs/architecture/modules/runtime-harness/hook-adapters.md`
|
|
23
|
-
- Workstream: `tasks/workstreams/runtime-harness/hook-adapters`
|
|
24
23
|
|
|
25
24
|
## Positioning
|
|
26
25
|
|
|
@@ -30,12 +29,11 @@ Owns the runtime-harness-hook-adapters capability boundary declared in .ai/conte
|
|
|
30
29
|
|
|
31
30
|
- Primary prefix: `assets/hooks` (entrypoint)
|
|
32
31
|
- Architecture module: `docs/architecture/modules/runtime-harness/hook-adapters.md` (design-source)
|
|
33
|
-
- Workstream: `tasks/workstreams/runtime-harness/hook-adapters` (durable-progress)
|
|
34
32
|
|
|
35
33
|
## Refresh Hints
|
|
36
34
|
|
|
37
35
|
- `bun test tests/hook-runtime.test.ts tests/hook-contracts.test.ts tests/workflow-contract.test.ts`
|
|
38
|
-
- `
|
|
36
|
+
- `forge run check-task-workflow --strict`
|
|
39
37
|
<!-- END CAPABILITY CONTEXT -->
|
|
40
38
|
|
|
41
39
|
<!-- BEGIN ARCHITECTURE CONTRACT -->
|
|
@@ -62,14 +60,5 @@ Owns the runtime-harness-hook-adapters capability boundary declared in .ai/conte
|
|
|
62
60
|
- Semantic diagram source: `docs/architecture/modules/runtime-harness/hook-adapters.md`
|
|
63
61
|
- Latest human diagram: `(none yet)`
|
|
64
62
|
- Pending architecture request: `(none)`
|
|
65
|
-
|
|
66
|
-
## Active Workstreams
|
|
67
|
-
|
|
68
|
-
- (none yet)
|
|
69
|
-
|
|
70
|
-
## Current Session Projection
|
|
71
|
-
|
|
72
|
-
- Durable progress lives under `tasks/workstreams/runtime-harness/hook-adapters`.
|
|
73
|
-
- `tasks/current.md` is the tracked derived status snapshot; it is not a live lock or task source.
|
|
74
|
-
- `tasks/todos.md` is the deferred-goal ledger; current execution slices stay in the active plan's `## Task Breakdown`.
|
|
63
|
+
- Runtime progress authority: Forge Controller Home Requirement/Plan/Work/Evidence; this repository block contains authored architecture context only.
|
|
75
64
|
<!-- END ARCHITECTURE CONTRACT -->
|
|
@@ -14,9 +14,12 @@ if [[ -z "${HOOK_REPO_ROOT:-}" ]]; then
|
|
|
14
14
|
export HOOK_REPO_ROOT
|
|
15
15
|
fi
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
HOOK_BUNDLE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
|
18
|
+
if [[ -f "$HOOK_BUNDLE_DIR/lib/workflow-state.sh" ]]; then
|
|
19
|
+
# Source workflow helpers from the same selected hook bundle. A central hook
|
|
20
|
+
# must never fall back to a stale repo-local lib and silently change authority.
|
|
18
21
|
# shellcheck source=/dev/null
|
|
19
|
-
. "$
|
|
22
|
+
. "$HOOK_BUNDLE_DIR/lib/workflow-state.sh"
|
|
20
23
|
fi
|
|
21
24
|
|
|
22
25
|
hook_read_stdin_once() {
|
|
@@ -546,6 +549,10 @@ hook_failure_log_file() {
|
|
|
546
549
|
workflow_failure_log_file
|
|
547
550
|
return 0
|
|
548
551
|
fi
|
|
552
|
+
if [[ -n "${FORGE_HOOK_STATE_ROOT:-}" && "${FORGE_HOOK_STATE_ROOT}" == /* ]]; then
|
|
553
|
+
printf '%s/failures/latest.jsonl' "${FORGE_HOOK_STATE_ROOT%/}"
|
|
554
|
+
return 0
|
|
555
|
+
fi
|
|
549
556
|
printf '.ai/harness/failures/latest.jsonl'
|
|
550
557
|
}
|
|
551
558
|
|
|
@@ -70,44 +70,62 @@ workflow_repo_relative_path() {
|
|
|
70
70
|
esac
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
workflow_machine_state_path() {
|
|
74
|
+
local value="$1"
|
|
75
|
+
local default_value="$2"
|
|
76
|
+
local relative_path
|
|
77
|
+
|
|
78
|
+
value="$(workflow_repo_relative_path "$value" "$default_value" '.ai/harness/')"
|
|
79
|
+
if [[ -n "${FORGE_HOOK_STATE_ROOT:-}" && "${FORGE_HOOK_STATE_ROOT}" == /* ]]; then
|
|
80
|
+
relative_path="${value#.ai/harness/}"
|
|
81
|
+
printf '%s/%s' "${FORGE_HOOK_STATE_ROOT%/}" "$relative_path"
|
|
82
|
+
return 0
|
|
83
|
+
fi
|
|
84
|
+
printf '%s' "$value"
|
|
85
|
+
}
|
|
86
|
+
|
|
73
87
|
workflow_context_map_file() {
|
|
74
88
|
workflow_repo_relative_path "$(workflow_policy_get '.context.map_file' '.ai/context/context-map.json')" '.ai/context/context-map.json' '.ai/context/'
|
|
75
89
|
}
|
|
76
90
|
|
|
77
91
|
workflow_failure_log_file() {
|
|
78
|
-
|
|
92
|
+
workflow_machine_state_path "$(workflow_policy_get '.harness.failure_log_file' '.ai/harness/failures/latest.jsonl')" '.ai/harness/failures/latest.jsonl'
|
|
79
93
|
}
|
|
80
94
|
|
|
81
95
|
workflow_events_file() {
|
|
82
|
-
|
|
96
|
+
workflow_machine_state_path "$(workflow_policy_get '.harness.events_file' '.ai/harness/events.jsonl')" '.ai/harness/events.jsonl'
|
|
83
97
|
}
|
|
84
98
|
|
|
85
99
|
workflow_trace_file() {
|
|
100
|
+
if [[ -n "${FORGE_HOOK_STATE_ROOT:-}" && "${FORGE_HOOK_STATE_ROOT}" == /* ]]; then
|
|
101
|
+
printf '%s/trace.jsonl' "${FORGE_HOOK_STATE_ROOT%/}"
|
|
102
|
+
return 0
|
|
103
|
+
fi
|
|
86
104
|
printf '%s' ".claude/.trace.jsonl"
|
|
87
105
|
}
|
|
88
106
|
|
|
89
107
|
workflow_runs_dir() {
|
|
90
|
-
|
|
108
|
+
workflow_machine_state_path "$(workflow_policy_get '.harness.runs_dir' '.ai/harness/runs')" '.ai/harness/runs'
|
|
91
109
|
}
|
|
92
110
|
|
|
93
111
|
workflow_resume_packet_file() {
|
|
94
|
-
|
|
112
|
+
workflow_machine_state_path "$(workflow_policy_get '.session.resume_file' '.ai/harness/session/resume.md')" '.ai/harness/session/resume.md'
|
|
95
113
|
}
|
|
96
114
|
|
|
97
115
|
workflow_pending_orchestration_file() {
|
|
116
|
+
# Legacy read/migration surface only. Modern controller-home repositories do
|
|
117
|
+
# not create a second file-backed Plan/pending authority from hooks.
|
|
98
118
|
workflow_repo_relative_path "$(workflow_policy_get '.planning.pending_orchestration_file' '.ai/harness/planning/pending.json')" '.ai/harness/planning/pending.json' '.ai/harness/'
|
|
99
119
|
}
|
|
100
120
|
|
|
101
121
|
workflow_ensure_harness_surface() {
|
|
122
|
+
# Hooks initialize only rebuildable machine diagnostics. Authored task/context
|
|
123
|
+
# directories and semantic Plan state remain repository/Controller concerns.
|
|
102
124
|
mkdir -p \
|
|
103
|
-
"tasks/notes" \
|
|
104
|
-
"$(dirname "$(workflow_context_map_file)")" \
|
|
105
|
-
"$(dirname "$(workflow_policy_file)")" \
|
|
106
125
|
"$(dirname "$(workflow_checks_file)")" \
|
|
107
126
|
"$(dirname "$(workflow_session_continuation_file)")" \
|
|
108
127
|
"$(dirname "$(workflow_resume_packet_file)")" \
|
|
109
128
|
"$(dirname "$(workflow_failure_log_file)")" \
|
|
110
|
-
"$(dirname "$(workflow_pending_orchestration_file)")" \
|
|
111
129
|
"$(workflow_runs_dir)"
|
|
112
130
|
|
|
113
131
|
[[ -f "$(workflow_checks_file)" ]] || printf "{}\n" > "$(workflow_checks_file)"
|
|
@@ -1094,11 +1112,11 @@ workflow_active_notes() {
|
|
|
1094
1112
|
}
|
|
1095
1113
|
|
|
1096
1114
|
workflow_checks_file() {
|
|
1097
|
-
|
|
1115
|
+
workflow_machine_state_path "$(workflow_policy_get '.harness.checks_file' '.ai/harness/checks/latest.json')" '.ai/harness/checks/latest.json'
|
|
1098
1116
|
}
|
|
1099
1117
|
|
|
1100
1118
|
workflow_session_continuation_file() {
|
|
1101
|
-
|
|
1119
|
+
workflow_machine_state_path "$(workflow_policy_get '.session.continuation_file' '.ai/harness/session/continuation.md')" '.ai/harness/session/continuation.md'
|
|
1102
1120
|
}
|
|
1103
1121
|
|
|
1104
1122
|
# mkdir-based mutual exclusion (macOS ships no flock). Spins ~2s, breaks locks
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Prompt Guard Hook — UserPromptSubmit
|
|
3
|
-
# Shell layer:
|
|
4
|
-
#
|
|
3
|
+
# Shell layer: compatibility reads for legacy plan/contract/worktree state plus
|
|
4
|
+
# host-safe rendering. Modern controller-home repositories never create or use
|
|
5
|
+
# repo-local Plan/Work files as authority. All prompt-text intent classification
|
|
5
6
|
# lives in the TypeScript engine behind `prompt-guard-decide`, which receives
|
|
6
7
|
# {"prompt": ...} on stdin plus PROMPT_GUARD_*_STATE env vars and returns a
|
|
7
8
|
# single-line verdict JSON (action + intent facts + derived strings).
|
|
@@ -392,6 +393,15 @@ pg_fact() {
|
|
|
392
393
|
[[ "${!var:-0}" == "1" ]]
|
|
393
394
|
}
|
|
394
395
|
|
|
396
|
+
modern_controller_home_runtime() {
|
|
397
|
+
[[ -f "forge.config.json" ]] || return 1
|
|
398
|
+
if command -v jq >/dev/null 2>&1; then
|
|
399
|
+
[[ "$(jq -r '.runtimeState // empty' forge.config.json 2>/dev/null || true)" == "controller-home" ]]
|
|
400
|
+
return
|
|
401
|
+
fi
|
|
402
|
+
grep -Eq '"runtimeState"[[:space:]]*:[[:space:]]*"controller-home"' forge.config.json 2>/dev/null
|
|
403
|
+
}
|
|
404
|
+
|
|
395
405
|
# --- Side effects and hints (driven by engine facts) ---
|
|
396
406
|
|
|
397
407
|
emit_pending_orchestration_discussion() {
|
|
@@ -603,38 +613,26 @@ run_codegraph_init_command() {
|
|
|
603
613
|
return "$status"
|
|
604
614
|
}
|
|
605
615
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
[[ -f ".codegraph/codegraph.db" ]] && return 0
|
|
610
|
-
|
|
611
|
-
output="$(run_codegraph_init_command 2>&1)"
|
|
612
|
-
status=$?
|
|
613
|
-
|
|
614
|
-
if [[ "$status" -eq 0 && -f ".codegraph/codegraph.db" ]]; then
|
|
615
|
-
echo "[CodegraphRoute] Initialized missing CodeGraph index before routing hint."
|
|
616
|
-
elif [[ "$status" -ne 127 ]]; then
|
|
617
|
-
echo "[CodegraphRoute] CodeGraph index init skipped or failed; run codegraph init -i . if structural tools are unavailable."
|
|
616
|
+
emit_codegraph_route_hint() {
|
|
617
|
+
if pg_fact CODEGRAPH_ROUTE || pg_fact NONTRIVIAL_CODE_TASK; then
|
|
618
|
+
echo "[CodegraphRoute] Structural code-navigation intent detected. Prefer Forge rh_context/semantic navigation or an already-configured structural provider; do not initialize repo-local .codegraph state from a prompt hook."
|
|
618
619
|
fi
|
|
619
620
|
}
|
|
620
621
|
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
mkdir -p .claude
|
|
625
|
-
session_key="$(session_state_resolve_key "$session_file" "${1:-}")"
|
|
622
|
+
modern_controller_home_workflow() {
|
|
623
|
+
[[ -f "forge.config.json" ]]
|
|
624
|
+
}
|
|
626
625
|
|
|
627
|
-
|
|
628
|
-
|
|
626
|
+
emit_modern_controller_home_guidance() {
|
|
627
|
+
if pg_fact THINK_PLAN_START || pg_fact PLAN_START; then
|
|
628
|
+
echo "[ForgeRoute] Planning intent detected. Keep repo files for authored product/architecture content only; use Forge Plan/Work authority when durable execution state is needed."
|
|
629
|
+
echo "[ArchitectureCompleteness] For high-risk or architecture-changing work, Context Closure + Engineering Design receipts are correctness gates; prompt guidance is advisory only."
|
|
629
630
|
fi
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
elif pg_fact NONTRIVIAL_CODE_TASK; then
|
|
636
|
-
echo "[CodegraphRoute] Structural code-navigation intent detected. Prefer CodeGraph context/search/callers/impact before grep/read when available."
|
|
637
|
-
session_state_mark_codegraph_nudged "$session_key" || true
|
|
631
|
+
if pg_fact IMPLEMENT; then
|
|
632
|
+
echo "[ArchitectureCompleteness] Implementation intent detected. Preserve the approved authority/lifecycle/authorization/resource/replay/retention contract; Forge admission and implementation review own enforcement."
|
|
633
|
+
fi
|
|
634
|
+
if pg_fact DONE; then
|
|
635
|
+
echo "[Review] Completion intent detected. Use current Forge verification/review evidence; do not materialize repo-local task/check/session closeout state."
|
|
638
636
|
fi
|
|
639
637
|
}
|
|
640
638
|
|
|
@@ -834,6 +832,18 @@ PROMPT_INTENT_TEXT="$(prompt_intent_text)"
|
|
|
834
832
|
prompt_guard_refresh_state
|
|
835
833
|
prompt_guard_engine_call
|
|
836
834
|
|
|
835
|
+
# Kernel V2 cutover: forge.config.json selects the Controller Home workflow.
|
|
836
|
+
# Prompt hooks are advisory only in this mode and MUST NOT materialize repo-local
|
|
837
|
+
# Plan/Work/check/session/cache state. Legacy .ai/harness projects continue below
|
|
838
|
+
# only so they can be migrated without breaking their existing workflow.
|
|
839
|
+
if modern_controller_home_workflow; then
|
|
840
|
+
emit_agentic_packaging_hint
|
|
841
|
+
emit_forge_route_hint
|
|
842
|
+
emit_codegraph_route_hint
|
|
843
|
+
emit_modern_controller_home_guidance
|
|
844
|
+
exit 0
|
|
845
|
+
fi
|
|
846
|
+
|
|
837
847
|
if [[ "$PG_ENGINE_STATE" != "ok" ]]; then
|
|
838
848
|
if [[ "$PG_ENGINE_STATE" == "legacy" ]]; then
|
|
839
849
|
echo "[PromptGuard] Advisory: the installed forge CLI predates the prompt-verdict protocol; prompt intent gates are degraded to advisory for this prompt."
|
|
@@ -858,6 +868,22 @@ pg_fact DONE && done_intent=1
|
|
|
858
868
|
plan_start_intent=0
|
|
859
869
|
pg_fact PLAN_START && plan_start_intent=1
|
|
860
870
|
|
|
871
|
+
if modern_controller_home_runtime; then
|
|
872
|
+
if [ "$plan_start_intent" -eq 1 ]; then
|
|
873
|
+
echo "[PlanStartGate] Planning intent detected. Durable decomposition belongs to Forge Controller Plan/Work; no repo-local Draft plan or pending marker will be created."
|
|
874
|
+
fi
|
|
875
|
+
if [ "$implement_intent" -eq 1 ] && [ "$PG_ACTION" = "spec_block" ]; then
|
|
876
|
+
echo "[SpecGuard] Advisory: docs/spec.md is missing. Create or update authored product truth before implementation when the change needs a durable specification."
|
|
877
|
+
fi
|
|
878
|
+
if [ "$done_intent" -eq 1 ]; then
|
|
879
|
+
echo "[PlanStatusGuard] Controller Home owns completion authority; legacy active-plan/task-contract files are ignored for modern repositories."
|
|
880
|
+
fi
|
|
881
|
+
if [ "$implement_intent" -eq 0 ]; then
|
|
882
|
+
emit_workflow_file_guards
|
|
883
|
+
fi
|
|
884
|
+
exit 0
|
|
885
|
+
fi
|
|
886
|
+
|
|
861
887
|
plan_research_ready=1
|
|
862
888
|
if [ "$plan_start_intent" -eq 1 ]; then
|
|
863
889
|
if ! has_research_for_new_plan; then
|
|
@@ -944,9 +970,9 @@ if [ "$done_intent" -eq 1 ]; then
|
|
|
944
970
|
IFS=$'\t' read -r total_tasks done_tasks next_task <<< "$task_state"
|
|
945
971
|
remaining_tasks=$(( ${total_tasks:-0} - ${done_tasks:-0} ))
|
|
946
972
|
if [ "${remaining_tasks:-0}" -gt 0 ]; then
|
|
947
|
-
echo "[
|
|
973
|
+
echo "[WorkflowCloseoutGuard] Done intent detected but active plan still has $remaining_tasks unchecked item(s). Refusing workflow closeout."
|
|
948
974
|
hook_structured_error \
|
|
949
|
-
"
|
|
975
|
+
"WorkflowCloseoutGuard" \
|
|
950
976
|
"Done intent with $remaining_tasks unchecked active-plan task(s)." \
|
|
951
977
|
"Finish the remaining Task Breakdown item: ${next_task:-see $active_plan}." \
|
|
952
978
|
"state_violation"
|
|
@@ -968,22 +994,22 @@ if [ "$done_intent" -eq 1 ]; then
|
|
|
968
994
|
fi
|
|
969
995
|
|
|
970
996
|
if [ ! -x scripts/archive-workflow.sh ]; then
|
|
971
|
-
echo "[
|
|
997
|
+
echo "[WorkflowCloseout] scripts/archive-workflow.sh compatibility helper is missing or not executable. Skipping closeout."
|
|
972
998
|
hook_structured_error \
|
|
973
|
-
"
|
|
999
|
+
"WorkflowCloseout" \
|
|
974
1000
|
"scripts/archive-workflow.sh is missing or not executable." \
|
|
975
|
-
"Install the workflow helper before relying on
|
|
1001
|
+
"Install the workflow closeout helper before relying on automatic terminal cleanup." \
|
|
976
1002
|
"missing_artifact"
|
|
977
1003
|
exit 1
|
|
978
1004
|
fi
|
|
979
1005
|
|
|
980
1006
|
outcome="${PG_DONE_OUTCOME:-Completed}"
|
|
981
|
-
echo "[
|
|
1007
|
+
echo "[WorkflowCloseout] All quality gates passed. Closing $active_plan as outcome=$outcome"
|
|
982
1008
|
if ! archive_output="$(bash scripts/archive-workflow.sh --plan "$active_plan" --outcome "$outcome" 2>&1)"; then
|
|
983
1009
|
printf '%s\n' "$archive_output"
|
|
984
1010
|
hook_structured_error \
|
|
985
|
-
"
|
|
986
|
-
"Automatic
|
|
1011
|
+
"WorkflowCloseout" \
|
|
1012
|
+
"Automatic workflow closeout failed for $active_plan." \
|
|
987
1013
|
"Run bash scripts/archive-workflow.sh --plan $active_plan --outcome $outcome and resolve the error." \
|
|
988
1014
|
"contract_failure"
|
|
989
1015
|
exit 1
|
|
@@ -6,7 +6,8 @@ set -euo pipefail
|
|
|
6
6
|
# SessionStart context reminder if forge security scan finds anything.
|
|
7
7
|
|
|
8
8
|
REPO_ROOT="${HOOK_REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"
|
|
9
|
-
|
|
9
|
+
HOOK_STATE_ROOT="${FORGE_HOOK_STATE_ROOT:-$REPO_ROOT/.ai/harness}"
|
|
10
|
+
SECURITY_DIR="${HOOK_STATE_ROOT%/}/security"
|
|
10
11
|
STATE_FILE="$SECURITY_DIR/state.sha256"
|
|
11
12
|
LATEST_FILE="$SECURITY_DIR/latest.json"
|
|
12
13
|
|
|
@@ -9,9 +9,10 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
9
9
|
# shellcheck source=/dev/null
|
|
10
10
|
. "$SCRIPT_DIR/lib/workflow-state.sh"
|
|
11
11
|
|
|
12
|
-
# Cold-path housekeeping:
|
|
12
|
+
# Cold-path housekeeping: machine event logs grow unbounded otherwise. Both
|
|
13
|
+
# paths resolve below Controller Home hook-state for modern forge-hook runs.
|
|
13
14
|
workflow_rotate_events_file "$(workflow_events_file)" 2>/dev/null || true
|
|
14
|
-
workflow_rotate_events_file ".ai/harness/architecture/events.jsonl" 2>/dev/null || true
|
|
15
|
+
workflow_rotate_events_file "$(workflow_machine_state_path '.ai/harness/architecture/events.jsonl' '.ai/harness/architecture/events.jsonl')" 2>/dev/null || true
|
|
15
16
|
|
|
16
17
|
resume_file="$(workflow_resume_packet_file)"
|
|
17
18
|
|
|
@@ -209,11 +210,11 @@ render_tooling_update_context_once() {
|
|
|
209
210
|
tooling_update_advisory_context() {
|
|
210
211
|
local target state_dir report_file marker_file lock_dir tmp_report
|
|
211
212
|
|
|
212
|
-
[[ -f ".ai/harness/workflow-contract.json" ]] || return 1
|
|
213
|
+
[[ -f "forge.config.json" || -f ".ai/harness/workflow-contract.json" ]] || return 1
|
|
213
214
|
[[ "${FORGE_TOOLING_ADVISORY:-1}" != "0" ]] || return 1
|
|
214
215
|
|
|
215
216
|
target="$(tooling_update_target)"
|
|
216
|
-
state_dir=".ai/harness/security"
|
|
217
|
+
state_dir="$(workflow_machine_state_path '.ai/harness/security' '.ai/harness/security')"
|
|
217
218
|
report_file="$state_dir/tooling-update-advisory-${target}.json"
|
|
218
219
|
marker_file="$state_dir/tooling-update-advisory-${target}.rendered"
|
|
219
220
|
lock_dir="$state_dir/tooling-update-advisory-${target}.lock"
|
|
@@ -269,7 +270,8 @@ continuation_section_has_signal() {
|
|
|
269
270
|
}
|
|
270
271
|
|
|
271
272
|
capability_context_pending() {
|
|
272
|
-
local queue_file
|
|
273
|
+
local queue_file
|
|
274
|
+
queue_file="$(workflow_machine_state_path '.ai/harness/capability-context/requests.jsonl' '.ai/harness/capability-context/requests.jsonl')"
|
|
273
275
|
local pending_lines=""
|
|
274
276
|
local pending_count="0"
|
|
275
277
|
|
|
@@ -12,10 +12,9 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
12
12
|
. "$SCRIPT_DIR/lib/workflow-state.sh"
|
|
13
13
|
|
|
14
14
|
plan_completeness_state_file() {
|
|
15
|
-
|
|
15
|
+
workflow_machine_state_path \
|
|
16
16
|
"$(workflow_policy_get '.planning.completeness_state_file' '.ai/harness/planning/plan-completeness.json')" \
|
|
17
|
-
'.ai/harness/planning/plan-completeness.json'
|
|
18
|
-
'.ai/harness/'
|
|
17
|
+
'.ai/harness/planning/plan-completeness.json'
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
plan_completeness_signature() {
|
|
@@ -155,6 +154,17 @@ should_run_plan_completeness_gate() {
|
|
|
155
154
|
|
|
156
155
|
refresh_handoff
|
|
157
156
|
|
|
157
|
+
# Modern V2 delegates semantic Plan/Work completion to Controller Home. Keep the
|
|
158
|
+
# rebuildable session continuation above, but never revive repo-local pending
|
|
159
|
+
# orchestration or PlanCompleteness as a second completion authority.
|
|
160
|
+
if [[ -f "forge.config.json" ]]; then
|
|
161
|
+
if command -v jq >/dev/null 2>&1; then
|
|
162
|
+
[[ "$(jq -r '.runtimeState // empty' forge.config.json 2>/dev/null || true)" != "controller-home" ]] || exit 0
|
|
163
|
+
elif grep -Eq '"runtimeState"[[:space:]]*:[[:space:]]*"controller-home"' forge.config.json 2>/dev/null; then
|
|
164
|
+
exit 0
|
|
165
|
+
fi
|
|
166
|
+
fi
|
|
167
|
+
|
|
158
168
|
stop_hook_active="$(hook_json_get '.stop_hook_active' 'false')"
|
|
159
169
|
last_assistant_message="$(hook_json_get '.last_assistant_message' '')"
|
|
160
170
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"version": "initializer-question-pack.v4",
|
|
4
|
-
"goal": "Infer strong harness defaults first, then confirm only
|
|
4
|
+
"goal": "Infer strong harness defaults first, then confirm only decisions that materially change authored repository structure or Controller-owned workflow behavior.",
|
|
5
5
|
"decisionPoints": [
|
|
6
6
|
{
|
|
7
7
|
"id": "project_identity",
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
"evaluationProfile": "browser-qa",
|
|
186
186
|
"handoffProfile": "artifact-aware",
|
|
187
187
|
"recoveryProfile": "hybrid",
|
|
188
|
-
"stateProfile": "
|
|
188
|
+
"stateProfile": "controller-home",
|
|
189
189
|
"contextProfile": "stable-root-progressive-subdir",
|
|
190
190
|
"documentationProfile": "minimal-agentic",
|
|
191
191
|
"aiNativeProfile": "none",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"orchestrationProfiles": {
|
|
212
212
|
"shared-long-running-harness": {
|
|
213
213
|
"label": "Shared long-running harness",
|
|
214
|
-
"description": "Default
|
|
214
|
+
"description": "Default Controller-guided planning -> implementation -> verification loop with durable Runtime authority in Controller Home and authored repository evidence only."
|
|
215
215
|
},
|
|
216
216
|
"lightweight-collaboration": {
|
|
217
217
|
"label": "Lightweight collaboration",
|
|
@@ -253,13 +253,17 @@
|
|
|
253
253
|
}
|
|
254
254
|
},
|
|
255
255
|
"stateProfiles": {
|
|
256
|
-
"
|
|
257
|
-
"label": "
|
|
258
|
-
"description": "Persist execution, verification,
|
|
256
|
+
"controller-home": {
|
|
257
|
+
"label": "Controller Home",
|
|
258
|
+
"description": "Persist mutable execution, verification, authorization, handoff, and lifecycle state under the Forge Controller Home; keep the repository limited to authored/declarative content."
|
|
259
259
|
},
|
|
260
260
|
"context-light": {
|
|
261
261
|
"label": "Context-light",
|
|
262
|
-
"description": "Use
|
|
262
|
+
"description": "Use Controller Home only when durable continuity is required; keep bounded direct work ephemeral."
|
|
263
|
+
},
|
|
264
|
+
"file-backed": {
|
|
265
|
+
"label": "Legacy file-backed (migration only)",
|
|
266
|
+
"description": "Compatibility input for older adopted repositories. Do not select for new projects or create new repo-local Runtime state."
|
|
263
267
|
}
|
|
264
268
|
},
|
|
265
269
|
"contextProfiles": {
|