@moretea-labs/forge 1.7.2 → 1.8.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 +121 -62
- package/CHANGELOG.md +40 -0
- package/CLAUDE.md +57 -62
- package/CONTRIBUTING.md +3 -2
- 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 +77 -0
- package/adapters/chatgpt/browser-delivery-runtime.ts +1256 -0
- package/adapters/chatgpt/controller-binding-store.ts +134 -0
- package/adapters/chatgpt/controller-round-host.ts +68 -0
- package/adapters/chatgpt/controller-round-settlement-store.ts +99 -0
- package/adapters/chatgpt/provider-delivery.ts +340 -0
- package/adapters/chatgpt/work-conversation-binding-store.ts +218 -0
- package/adapters/chatgpt/wsl-bridge-delivery-host.ts +63 -0
- package/adapters/computer/chatgpt-extension-target.ts +463 -0
- package/adapters/computer/chatgpt-target-router.ts +103 -0
- package/adapters/computer/chrome-extension/background.js +385 -0
- package/adapters/computer/chrome-extension/content.js +378 -0
- package/adapters/computer/chrome-extension/core.js +24 -0
- package/adapters/computer/chrome-extension/manifest.json +30 -0
- package/adapters/computer/desktop-operator-contract.ts +7 -0
- package/adapters/computer/desktop-operator-discovery.ts +181 -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 +1068 -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 +406 -0
- package/adapters/mcp/instructions.ts +37 -0
- package/adapters/mcp/legacy-context.ts +18 -0
- package/adapters/mcp/multi-repository.ts +421 -0
- package/adapters/mcp/oauth.ts +464 -0
- package/adapters/mcp/paths.ts +143 -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/automation-receipt-adapter.ts +87 -0
- package/adapters/mcp/runtime-gateway/bounded-result-runtime.ts +62 -0
- package/adapters/mcp/runtime-gateway/cognition-settlement.ts +201 -0
- package/adapters/mcp/runtime-gateway/context-adapter.ts +1167 -0
- package/adapters/mcp/runtime-gateway/context-pack-sidecar.ts +91 -0
- package/adapters/mcp/runtime-gateway/controller-authority-adapter.ts +206 -0
- package/adapters/mcp/runtime-gateway/core-capability-adapter.ts +258 -0
- package/adapters/mcp/runtime-gateway/engineering-preconditions.ts +130 -0
- package/adapters/mcp/runtime-gateway/engineering-tool-contract.ts +15 -0
- package/adapters/mcp/runtime-gateway/execution-control-adapter.ts +28 -0
- package/adapters/mcp/runtime-gateway/execution-tools.ts +173 -0
- package/adapters/mcp/runtime-gateway/filesystem-adapter.ts +38 -0
- package/adapters/mcp/runtime-gateway/gateway-execution-adapter.ts +412 -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 +380 -0
- package/adapters/mcp/runtime-gateway/process-tools.ts +457 -0
- package/adapters/mcp/runtime-gateway/protected-computer-adapter.ts +88 -0
- package/adapters/mcp/runtime-gateway/recovery-adapter.ts +285 -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 +79 -0
- package/adapters/mcp/runtime-gateway/result-adapter.ts +114 -0
- package/adapters/mcp/runtime-gateway/router.ts +242 -0
- package/adapters/mcp/runtime-gateway/routing-policy.ts +499 -0
- package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +1200 -0
- package/adapters/mcp/runtime-gateway/runtime-readiness-observation.ts +218 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +574 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-shared.ts +27 -0
- package/adapters/mcp/runtime-gateway/runtime-tools.ts +78 -0
- package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +187 -0
- package/adapters/mcp/runtime-gateway/shared-adapter.ts +45 -0
- package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +962 -0
- package/adapters/mcp/runtime-gateway/typescript-navigation-sidecar.ts +136 -0
- package/adapters/mcp/runtime-gateway/work-adapter.ts +325 -0
- package/adapters/mcp/runtime-gateway/work-controller-operations.ts +257 -0
- package/adapters/mcp/runtime-gateway/work-detail-projection.ts +60 -0
- package/adapters/mcp/runtime-gateway/work-input-wire-migration.ts +246 -0
- package/adapters/mcp/runtime-gateway/work-learning-operations.ts +145 -0
- package/adapters/mcp/runtime-gateway/work-list-projection.ts +38 -0
- package/adapters/mcp/runtime-gateway/work-plan-operations.ts +382 -0
- package/adapters/mcp/runtime-gateway/work-repair-adapter.ts +308 -0
- package/adapters/mcp/runtime-gateway/work-requirement-operations.ts +148 -0
- package/adapters/mcp/runtime-gateway/work-semantic-operations.ts +263 -0
- package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +1 -0
- package/adapters/mcp/runtime-gateway/work-workflow-operations.ts +113 -0
- package/adapters/mcp/runtime-gateway/workflow-supervisor-adapter.ts +156 -0
- package/adapters/mcp/server.ts +1092 -0
- package/adapters/mcp/setup.ts +789 -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 +5139 -0
- package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +145 -0
- package/adapters/mcp/tool-mapping/repository-tools.ts +1682 -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 +79 -0
- package/adapters/mcp/toolset-selection.ts +41 -0
- package/adapters/mcp/toolset.ts +337 -0
- package/adapters/mcp/transports/http-observation.ts +365 -0
- package/adapters/mcp/transports/http.ts +933 -0
- package/adapters/mcp/transports/oauth-http.ts +322 -0
- package/adapters/mcp/transports/session-registry.ts +519 -0
- package/adapters/mcp/transports/stdio.ts +8 -0
- package/adapters/mcp/tunnels/openai-secure-tunnel.ts +223 -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 +11 -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/agentic-development-flow.md +25 -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 +28 -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 +233 -28
- package/docs/architecture/EVOLUTION.md +13 -0
- package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +2 -1
- package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +14 -5
- package/docs/architecture/decisions/20260823-immediate-controller-relay.md +6 -3
- 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 +37 -0
- package/docs/architecture/decisions/20260907-controller-round-transition-policy.md +311 -0
- package/docs/architecture/decisions/20260907-maintenance-diagnosis-bounded-read.md +39 -0
- package/docs/architecture/decisions/20260916-workflow-supervisor-authority.md +249 -0
- package/docs/architecture/decisions/20260917-cognitive-memory-foundation.md +82 -0
- package/docs/architecture/decisions/20260918-stable-candidate-release-lifecycle.md +221 -0
- package/docs/architecture/decisions/20260919-autonomous-work-liveness.md +62 -0
- package/docs/architecture/decisions/20260924-thin-semantic-working-context.md +72 -0
- package/docs/architecture/decisions/20261001-supervisor-turn-authority.md +237 -0
- package/docs/architecture/decisions/20261005-forge-v3-desktop-client-boundary.md +77 -0
- package/docs/architecture/domains/verification.md +8 -0
- package/docs/architecture/domains/workflow-engine.md +7 -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/controller-performance-and-502.md +17 -0
- package/docs/operations/controller-reliability-runbook.md +2 -2
- package/docs/operations/features.md +1 -1
- package/docs/operations/features.zh-CN.md +1 -1
- package/docs/operations/homebrew.md +2 -2
- package/docs/operations/mcp-tool-exposure.md +2 -0
- package/docs/operations/platform-support.md +16 -8
- package/docs/operations/platform-support.zh-CN.md +2 -2
- package/docs/operations/releasing.md +2 -0
- package/docs/operations/standalone-disaster-recovery.md +38 -5
- 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 +46 -26
- package/packages/kernel/cognition/api/index.ts +6 -0
- package/packages/kernel/cognition/application/activation-service.ts +451 -0
- package/packages/kernel/cognition/application/consolidation-service.ts +185 -0
- package/packages/kernel/cognition/application/legacy-experience-adapter.ts +38 -0
- package/packages/kernel/cognition/application/memory-service.ts +64 -0
- package/packages/kernel/cognition/domain/learning.ts +106 -0
- package/packages/kernel/cognition/domain/memory.ts +254 -0
- package/packages/kernel/controller/api/index.ts +3 -0
- package/packages/kernel/controller/application/continuation-service.ts +281 -0
- package/packages/kernel/controller/application/controller-round-service.ts +41 -0
- package/packages/kernel/controller/application/controller-service.ts +30 -0
- package/packages/kernel/controller/domain/controller-round-transition-policy.ts +529 -0
- package/packages/kernel/controller/domain/controller-round.ts +110 -0
- package/packages/kernel/controller/domain/execution-quality.ts +135 -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 +1970 -0
- package/packages/kernel/controller/infrastructure/controller-session-store.ts +804 -0
- package/packages/kernel/controller/ports/controller-host.ts +18 -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 +15 -0
- package/packages/kernel/identity/application/identity-service.ts +67 -0
- package/packages/kernel/identity/domain/activity-projection.ts +43 -0
- package/packages/kernel/identity/domain/capability-broker.ts +60 -0
- package/packages/kernel/identity/domain/grant.ts +72 -0
- package/packages/kernel/identity/domain/owned-resource.ts +116 -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/user-request.ts +93 -0
- package/packages/kernel/identity/domain/workspace.ts +56 -0
- package/packages/kernel/identity/index.ts +1 -0
- package/packages/kernel/identity/infrastructure/activity-projection-store.ts +77 -0
- package/packages/kernel/identity/infrastructure/capability-broker.ts +81 -0
- package/packages/kernel/identity/infrastructure/grant-store.ts +284 -0
- package/packages/kernel/identity/infrastructure/identity-store.ts +75 -0
- package/packages/kernel/identity/infrastructure/owned-resource-store.ts +259 -0
- package/packages/kernel/identity/infrastructure/user-request-store.ts +182 -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/scheduler/api/index.ts +4 -0
- package/packages/kernel/scheduler/application/eligibility.ts +252 -0
- package/packages/kernel/scheduler/application/schedule-service.ts +27 -0
- package/packages/kernel/scheduler/application/settlement.ts +182 -0
- package/packages/kernel/scheduler/domain/schedule.ts +236 -0
- package/packages/kernel/scheduler/index.ts +1 -0
- package/packages/kernel/scheduler/infrastructure/schedule-store.ts +805 -0
- package/packages/kernel/work/api/index.ts +16 -0
- package/packages/kernel/work/application/work-service.ts +123 -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/current-task-lineage.ts +104 -0
- package/packages/kernel/work/domain/engineering-contracts.ts +157 -0
- package/packages/kernel/work/domain/engineering-design.ts +286 -0
- package/packages/kernel/work/domain/engineering-profile.ts +238 -0
- package/packages/kernel/work/domain/evaluation-promotion-receipt.ts +186 -0
- package/packages/kernel/work/domain/execution-concurrency.ts +247 -0
- package/packages/kernel/work/domain/execution-snapshot.ts +2 -0
- package/packages/kernel/work/domain/implementation-review.ts +193 -0
- package/packages/kernel/work/domain/objective-graph.ts +119 -0
- package/packages/kernel/work/domain/project-engineering-contract.ts +224 -0
- package/packages/kernel/work/domain/repository-completion-receipt.ts +73 -0
- package/{src/runtime/control-plane/facade/work-state-machine.ts → packages/kernel/work/domain/state-machine.ts} +37 -66
- package/packages/kernel/work/domain/types.ts +534 -0
- package/packages/kernel/work/index.ts +1 -0
- package/packages/kernel/work/infrastructure/work-contract-store.ts +1967 -0
- package/packages/kernel/work/ports/work-contract-store.ts +21 -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 +62 -0
- package/packages/plugin-runtime/computer/chatgpt-identity.ts +24 -0
- package/packages/plugin-runtime/computer/conversation-target.ts +143 -0
- package/packages/plugin-runtime/computer/index.ts +8 -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 +215 -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 +581 -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 +225 -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/activate-source-baseline.ts +7 -9
- package/scripts/assemble-template.ts +1 -1
- 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 +183 -0
- package/scripts/canary-global-hook.sh +2 -2
- package/scripts/check-mcp-compatibility.ts +85 -7
- package/scripts/check-platform-support.mjs +28 -2
- package/scripts/check-public-docs.sh +1 -1
- package/scripts/check-repository-hygiene.mjs +92 -0
- package/scripts/check-runtime-architecture.mjs +1643 -127
- package/scripts/check-source-duplication.mjs +9 -1
- package/scripts/controller-ngrok-rotation.sh +5 -4
- package/scripts/create-project-dirs.sh +10 -74
- package/scripts/forge-local-recovery-helper.mjs +282 -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 +42 -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 +11 -1
- package/scripts/portability-bindings.mjs +70 -0
- package/scripts/run-bounded-command.mjs +60 -0
- package/scripts/run-bun-test-file.ts +22 -6
- package/scripts/run-governed-gate.ts +4 -2
- package/scripts/run-mobile-monitor-bridge.ts +0 -1
- package/scripts/smoke-control-plane-failure-domain.ts +94 -0
- package/scripts/smoke-mcp-http-runtime.ts +6 -1
- package/scripts/smoke-runtime-recovery.ts +13 -11
- package/scripts/smoke-schedule-engine.ts +24 -16
- package/scripts/smoke-unattended-transport-recovery.ts +223 -0
- package/scripts/smoke-user-request-continuation-restart.ts +232 -0
- package/scripts/smoke-workflow-supervisor-chrome-adapter.ts +92 -0
- package/scripts/smoke-workflow-supervisor-process-restart.ts +276 -0
- package/scripts/smoke-workflow-supervisor-restart-recovery.ts +150 -0
- package/scripts/smoke-workflow-supervisor.ts +103 -0
- package/scripts/test-governance.ts +51 -2
- package/scripts/verify-forge-runtime.sh +2 -1
- package/src/cli/agent-jobs/executor-health.ts +11 -34
- package/src/cli/agent-jobs/integration.ts +18 -49
- package/src/cli/agent-jobs/job-manager.ts +17 -4
- 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 +52 -0
- package/src/cli/commands/brain.ts +191 -40
- package/src/cli/commands/chatgpt.ts +32 -67
- 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 +507 -80
- package/src/cli/commands/runtime.ts +12 -7
- package/src/cli/commands/setup-profile.ts +97 -39
- package/src/cli/commands/status.ts +2 -1
- package/src/cli/controller/check-runner.ts +500 -100
- package/src/cli/controller/completion-backlog.ts +3 -3
- package/src/cli/controller/completion-orchestrator.ts +4 -43
- package/src/cli/controller/completion-target.ts +3 -72
- package/src/cli/controller/context/source-materializer.ts +81 -100
- package/src/cli/controller/context/types.ts +7 -1
- package/src/cli/controller/context-pack.ts +28 -6
- package/src/cli/controller/execution-completion.ts +4 -7
- package/src/cli/controller/execution-policy.ts +36 -153
- package/src/cli/controller/governance.ts +2 -3
- package/src/cli/controller/issue-store.ts +4 -99
- package/src/cli/controller/launch-agents.ts +59 -18
- package/src/cli/controller/operational-plan.ts +24 -51
- package/src/cli/controller/runtime-config.ts +5 -1
- package/src/cli/controller/stuck-state-migration.ts +2 -3
- package/src/cli/controller/systemd-user.ts +148 -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 +290 -20
- 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 +20 -15
- package/src/cli/local-bridge/console-view-models.ts +3 -12
- package/src/cli/local-bridge/facade-api.ts +105 -205
- package/src/cli/local-bridge/job-store.ts +1 -1
- package/src/cli/local-bridge/server.ts +48 -174
- package/src/cli/local-bridge/types.ts +0 -1
- 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-client-retirement.ts +74 -0
- 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 -1613
- 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 +91 -39
- package/src/cli/repositories/command-scope.ts +139 -4
- package/src/cli/repositories/controller-home.ts +167 -1
- package/src/cli/repositories/ephemeral-workspace.ts +20 -30
- package/src/cli/repositories/git-command-executor.ts +2 -2
- package/src/cli/repositories/identity.ts +13 -0
- package/src/cli/repositories/registry.ts +145 -60
- 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 +167 -27
- package/src/cli/repository/session-cache.ts +92 -6
- 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 +167 -0
- package/src/runtime/context/assistant-work-context.ts +209 -0
- package/src/runtime/context/automatic-learning.ts +565 -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/cognitive-attention.ts +173 -0
- package/src/runtime/context/cognitive-skill-canary.ts +158 -0
- package/src/runtime/context/context-closure.ts +305 -0
- package/src/runtime/context/context-pack-process.ts +103 -0
- package/src/runtime/context/context-plane.ts +203 -0
- package/src/runtime/context/direct-controller-learning.ts +298 -0
- package/src/runtime/context/project-engineering-contract.ts +60 -0
- package/src/runtime/context/semantic-navigation-contract.ts +9 -0
- package/src/runtime/context/semantic-navigation.ts +6 -34
- package/src/runtime/context/typescript-navigation-process.ts +145 -0
- package/src/runtime/context/typescript-navigation.ts +89 -3
- 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 +531 -0
- package/src/runtime/control-plane/codegraph-cache-retention.ts +164 -0
- package/src/runtime/control-plane/concurrency/work-execution-concurrency.ts +282 -0
- package/src/runtime/control-plane/execution/controller-authority-recovery.ts +380 -0
- package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +113 -16
- package/src/runtime/control-plane/execution/execution-identity.ts +23 -3
- package/src/runtime/control-plane/execution/implementation-review-content.ts +95 -0
- package/src/runtime/control-plane/execution/repository-work-attribution.ts +7 -30
- package/src/runtime/control-plane/execution/retained-work-resume.ts +439 -102
- package/src/runtime/control-plane/execution/session-store.ts +31 -1
- package/src/runtime/control-plane/execution/validation.ts +34 -11
- package/src/runtime/control-plane/execution/work-authority-reconciler.ts +87 -0
- package/src/runtime/control-plane/execution/work-check-evidence.ts +137 -0
- package/src/runtime/control-plane/execution/work-completion-authority.ts +31 -44
- package/src/runtime/control-plane/execution/work-delivery-service.ts +497 -0
- package/src/runtime/control-plane/execution/work-evidence-policy.ts +46 -53
- package/src/runtime/control-plane/execution/work-execution-support.ts +85 -164
- package/src/runtime/control-plane/execution/work-handle-authority.ts +349 -73
- package/src/runtime/control-plane/execution/work-handle-store.ts +55 -2
- package/src/runtime/control-plane/execution/work-head-settlement.ts +108 -0
- package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +173 -28
- package/src/runtime/control-plane/execution/work-operation-service.ts +92 -40
- package/src/runtime/control-plane/execution/work-preparation-service.ts +145 -269
- package/src/runtime/control-plane/execution/work-remote-delivery.ts +2 -3
- package/src/runtime/control-plane/execution/work-revision-diff.ts +39 -0
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +543 -225
- package/src/runtime/control-plane/execution/work-validation-reconciler.ts +59 -45
- package/src/runtime/control-plane/execution/work-verification-context.ts +1 -1
- package/src/runtime/control-plane/execution/work-verification-service.ts +662 -52
- package/src/runtime/control-plane/execution/work-verification-snapshot.ts +205 -16
- package/src/runtime/control-plane/facade/capability-registry.ts +380 -44
- package/src/runtime/control-plane/facade/check-normalization.ts +3 -9
- package/src/runtime/control-plane/facade/codex-delegation.ts +10 -11
- package/src/runtime/control-plane/facade/controller-connection.ts +135 -0
- package/src/runtime/control-plane/facade/controller-session-store.ts +2 -488
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +6 -22
- package/src/runtime/control-plane/facade/goal-workloop.ts +565 -1202
- package/src/runtime/control-plane/facade/handoff-inbox-application.ts +145 -0
- package/src/runtime/control-plane/facade/handoff-inbox-store.ts +266 -52
- package/src/runtime/control-plane/facade/index.ts +4 -3
- package/src/runtime/control-plane/facade/operation-digest.ts +34 -73
- package/src/runtime/control-plane/facade/plan-contract-store.ts +671 -245
- package/src/runtime/control-plane/facade/policy-gate.ts +0 -23
- package/src/runtime/control-plane/facade/repository-work-admission.ts +31 -23
- package/src/runtime/control-plane/facade/requirement-authority.ts +121 -0
- package/src/runtime/control-plane/facade/requirement-board.ts +9 -4
- package/src/runtime/control-plane/facade/rh-work-operation-contract.ts +85 -0
- package/src/runtime/control-plane/facade/self-healing-loop.ts +18 -53
- package/src/runtime/control-plane/facade/semantic-admission.ts +8 -16
- package/src/runtime/control-plane/facade/suggested-actions.ts +15 -15
- package/src/runtime/control-plane/facade/types.ts +218 -620
- package/src/runtime/control-plane/facade/work-continuation.ts +8 -8
- package/src/runtime/control-plane/facade/work-contract-store.ts +2 -1043
- package/src/runtime/control-plane/generated-cache-retention.ts +336 -19
- package/src/runtime/control-plane/global-scheduler/autonomous-continuation.ts +248 -0
- package/src/runtime/control-plane/global-scheduler/durable-admission.ts +13 -2
- package/src/runtime/control-plane/global-scheduler/maintenance.ts +274 -84
- 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 +3 -2
- package/src/runtime/control-plane/global-scheduler/scheduler-worker-entry.ts +10 -0
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +227 -109
- package/src/runtime/control-plane/global-scheduler/wake-signal.ts +42 -2
- package/src/runtime/control-plane/global-scheduler/worker-launch.ts +18 -6
- package/src/runtime/control-plane/governance/access-policy.ts +19 -2
- package/src/runtime/control-plane/governance/authorization.ts +20 -3
- package/src/runtime/control-plane/launcher/chatgpt-round-continuation.ts +160 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +2 -177
- package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +139 -670
- package/src/runtime/control-plane/launcher/local-conversation-controller.ts +238 -0
- package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +25 -6
- package/src/runtime/control-plane/launcher/thin-launcher.ts +96 -194
- package/src/runtime/control-plane/lifecycle-retention-metrics.ts +60 -0
- package/src/runtime/control-plane/persistence/cognition-store.ts +820 -0
- package/src/runtime/control-plane/persistence/experience-store.ts +302 -0
- package/src/runtime/control-plane/persistence/operational-prior-store.ts +348 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +230 -80
- package/src/runtime/control-plane/persistence/sqlite-store.ts +654 -78
- 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 +154 -26
- package/src/runtime/control-plane/repository-namespace-retention.ts +208 -0
- package/src/runtime/control-plane/runtime-cleanup.ts +844 -38
- package/src/runtime/control-plane/runtime-generation.ts +6 -0
- package/src/runtime/control-plane/workspace/project-onboarding.ts +80 -0
- package/src/runtime/control-plane/workspace/semantic-sync-service.ts +479 -0
- package/src/runtime/control-plane/workspace/workspace-store.ts +249 -0
- package/src/runtime/diagnostics/incident-repair.ts +573 -0
- package/src/runtime/diagnostics/mcp-timing.ts +239 -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 +216 -35
- package/src/runtime/evidence/evidence-store.ts +112 -8
- package/src/runtime/evidence/operational-shadow.ts +38 -0
- package/src/runtime/evidence/output-handle-index.ts +225 -0
- package/src/runtime/evidence/process-check-receipt.ts +5 -43
- package/src/runtime/evidence/result-store.ts +158 -44
- 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 +124 -6
- package/src/runtime/execution/managed-workspace.ts +112 -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 +24 -10
- 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 +177 -2
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +58 -9
- package/src/runtime/execution/process-runtime/check-storage.ts +187 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +117 -114
- package/src/runtime/execution/process-runtime/gc.ts +15 -2
- package/src/runtime/execution/process-runtime/handle-index.ts +176 -0
- package/src/runtime/execution/process-runtime/host-command-lane.ts +139 -0
- package/src/runtime/execution/process-runtime/index.ts +4 -0
- package/src/runtime/execution/process-runtime/interactive-admission.ts +2 -1
- package/src/runtime/execution/process-runtime/lightweight-managed.ts +283 -73
- package/src/runtime/execution/process-runtime/persisted-check.ts +130 -23
- package/src/runtime/execution/process-runtime/process-runner-entry.ts +47 -5
- package/src/runtime/execution/process-runtime/process-scope.ts +160 -0
- package/src/runtime/execution/process-runtime/resource-claims.ts +125 -64
- package/src/runtime/execution/process-runtime/runtime.ts +167 -17
- package/src/runtime/execution/process-runtime/store.ts +30 -2
- package/src/runtime/execution/process-runtime/types.ts +27 -0
- package/src/runtime/execution/workers/executor.ts +18 -19
- 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 -6655
- 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-inventory.ts +130 -0
- package/src/runtime/platform/service-manager.ts +146 -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 +192 -0
- package/src/runtime/plugins/app-store-connect-adapter.ts +47 -35
- package/src/runtime/plugins/browser-adapter.ts +898 -135
- package/src/runtime/plugins/browser-automation-service.ts +33 -34
- package/src/runtime/plugins/browser-macos-bridge.ts +386 -46
- package/src/runtime/plugins/browser-manifest-surface.ts +75 -17
- package/src/runtime/plugins/browser-native-session-service.ts +64 -14
- package/src/runtime/plugins/browser-provider-registry.ts +2 -109
- package/src/runtime/plugins/browser-registration.ts +32 -0
- package/src/runtime/plugins/browser-runtime-contract.ts +2 -154
- package/src/runtime/plugins/browser-runtime.ts +55 -10
- 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 +243 -80
- package/src/runtime/plugins/browser-session-types.ts +2 -98
- package/src/runtime/plugins/capability-authorization-grants.ts +272 -59
- package/src/runtime/plugins/catalog-trust.ts +82 -0
- package/src/runtime/plugins/computer-chatgpt-browser-adapter-installer.ts +219 -0
- package/src/runtime/plugins/computer-chatgpt-macos-target.ts +891 -0
- package/src/runtime/plugins/computer-registration.ts +1050 -0
- package/src/runtime/plugins/config-store.ts +119 -0
- package/src/runtime/plugins/desktop-operator-external-policy.ts +964 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +123 -12
- package/src/runtime/plugins/errors.ts +8 -1
- package/src/runtime/plugins/external-adapter.ts +82 -323
- package/src/runtime/plugins/external-provider-policy.ts +48 -0
- package/src/runtime/plugins/external-registration.ts +30 -2
- 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 +29 -8
- package/src/runtime/plugins/google-calendar-adapter.ts +8 -8
- package/src/runtime/plugins/google-shared.ts +45 -53
- package/src/runtime/plugins/google-tasks-adapter.ts +8 -8
- package/src/runtime/plugins/ios-adapter.ts +2 -3
- package/src/runtime/plugins/lightweight-action.ts +208 -2
- package/src/runtime/plugins/local-system-adapter.ts +192 -2
- package/src/runtime/plugins/macos-capability-broker.ts +15 -105
- package/src/runtime/plugins/managed-process-adapter.ts +12 -5
- package/src/runtime/plugins/plugin-action-sidecar.ts +17 -13
- package/src/runtime/plugins/plugin-management-adapter.ts +1 -1
- package/src/runtime/plugins/resend-adapter.ts +15 -24
- package/src/runtime/plugins/store.ts +1003 -387
- package/src/runtime/plugins/types.ts +28 -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 +102 -430
- package/src/runtime/projections/controller-context.ts +12 -6
- package/src/runtime/projections/git-status-sampler.ts +73 -22
- package/src/runtime/projections/invalidation.ts +7 -3
- package/src/runtime/projections/materialized-view.ts +93 -43
- package/src/runtime/recovery/actions.ts +3 -3
- package/src/runtime/recovery/capability-action-application.ts +229 -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 +701 -168
- package/src/runtime/recovery/quarantine-retention.ts +256 -0
- package/src/runtime/recovery/store.ts +29 -11
- package/src/runtime/release/identity.ts +6 -0
- package/src/runtime/release/release-coordinator.ts +296 -0
- package/src/runtime/release/release-session.ts +716 -0
- package/src/runtime/release/release-state-migration.ts +25 -0
- package/src/runtime/resources/leases/store.ts +56 -25
- 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 +376 -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-progression-composition.ts +192 -0
- package/src/runtime/root/controller-round-composition.ts +126 -0
- package/src/runtime/root/controller-services.ts +2 -0
- package/src/runtime/root/deployment-topology.ts +106 -0
- package/src/runtime/root/entry.ts +8 -6
- package/src/runtime/root/gateway-adapter.ts +3 -3
- package/src/runtime/root/known-good-recovery.ts +184 -0
- package/src/runtime/root/local-bridge.ts +5 -3
- package/src/runtime/root/mcp-transport.ts +116 -23
- package/src/runtime/root/ownership.ts +261 -9
- package/src/runtime/root/package-connector-service.ts +212 -74
- package/src/runtime/root/package-runtime-release.ts +199 -33
- package/src/runtime/root/package-runtime-service.ts +77 -108
- package/src/runtime/root/release-execution-canary.ts +103 -0
- package/src/runtime/root/release-loader.ts +150 -0
- package/src/runtime/root/release-manifest.ts +185 -7
- package/src/runtime/root/release-materialize.ts +474 -31
- package/src/runtime/root/release-store.ts +425 -37
- package/src/runtime/root/runtime-lane.ts +191 -0
- package/src/runtime/root/runtime.ts +379 -32
- package/src/runtime/root/scheduled-controller-composition.ts +76 -0
- package/src/runtime/root/scheduler.ts +12 -4
- package/src/runtime/root/service-runner.ts +3 -3
- package/src/runtime/root/service.ts +73 -45
- package/src/runtime/root/status.ts +49 -0
- package/src/runtime/root/types.ts +55 -3
- package/src/runtime/root/workflow-supervisor-composition.ts +493 -0
- package/src/runtime/root/workflow-supervisor-runtime.ts +209 -0
- package/src/runtime/root/write-fence.ts +50 -2
- package/src/runtime/safe-tooling/google-credential-store.ts +76 -21
- package/src/runtime/safe-tooling/google-oauth-broker.ts +25 -7
- package/src/runtime/safe-tooling/workspace-auth.ts +1 -1
- package/src/runtime/shared/bounded-child-supervisor.ts +9 -1
- package/src/runtime/shared/local-bridge-surface.ts +1 -1
- package/src/runtime/shared/process-environment.ts +36 -10
- package/src/runtime/shared/response-budget.ts +1 -3
- package/src/runtime/shared/storage-capacity.ts +68 -0
- package/src/runtime/standalone-recovery/controller-home-migration.ts +1108 -0
- package/src/runtime/standalone-recovery/core.ts +4609 -495
- package/src/runtime/standalone-recovery/entry.ts +642 -81
- package/src/runtime/standalone-recovery/independent-host-rescue.ts +172 -0
- package/src/runtime/standalone-recovery/installer.ts +399 -177
- package/src/runtime/standalone-recovery/mcp-server.ts +79 -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 +173 -0
- package/src/runtime/standalone-recovery/release.ts +58 -5
- package/src/runtime/standalone-recovery/service-labels.ts +5 -2
- package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +5 -2
- package/src/runtime/watchdog/workflow-watchdog.ts +1 -1
- package/src/runtime/workflow/schedules/browser-probe.ts +17 -6
- package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +11 -4
- package/src/runtime/workflow/schedules/engine.ts +298 -484
- 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 +220 -16
- package/src/runtime/workflows/first-party/xiaohongshu.ts +122 -0
- package/src/runtime/workflows/runtime.ts +482 -0
- package/src/testing/test-governance.ts +95 -30
- package/supervisor/chatgpt-conversation.ts +23 -0
- package/supervisor/client.ts +201 -0
- package/supervisor/control-plane.ts +868 -0
- package/supervisor/entry.ts +15 -0
- package/supervisor/forge-validators.ts +80 -0
- package/supervisor/index.ts +5 -0
- package/supervisor/native-browser-adapter.ts +786 -0
- package/supervisor/native-messaging/host.ts +39 -0
- package/supervisor/native-messaging/manifest.ts +26 -0
- package/supervisor/native-messaging/protocol.ts +27 -0
- package/supervisor/paths.ts +18 -0
- package/supervisor/protocol.ts +202 -0
- package/supervisor/server.ts +404 -0
- package/supervisor/store.ts +1451 -0
- package/supervisor/tsconfig.json +8 -0
- package/supervisor/types.ts +255 -0
- 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/benchmark-background-check-overlap.ts +0 -228
- package/scripts/benchmark-controller-hotpath.ts +0 -212
- package/scripts/benchmark-controller-round2.ts +0 -139
- package/scripts/benchmark-ios-agent-device.ts +0 -514
- package/scripts/benchmark-mcp-host.sh +0 -117
- package/scripts/benchmark-mcp-transport.ts +0 -170
- package/scripts/benchmark-quality-harness.ts +0 -146
- package/scripts/benchmark-route-session-concurrency.ts +0 -915
- package/scripts/benchmark-thin-harness-gateway-ab.ts +0 -632
- package/scripts/benchmark-thin-harness-mcp-e2e.ts +0 -498
- package/scripts/benchmark-thin-harness.ts +0 -251
- package/scripts/benchmark-typescript-navigation.ts +0 -186
- package/scripts/benchmark-work-efficiency.ts +0 -334
- package/scripts/build-controller-ui.ts +0 -28
- package/scripts/check-npm-release.sh +0 -32
- package/scripts/check-public-release-surface.sh +0 -19
- package/scripts/check-release-published.sh +0 -57
- package/scripts/check-release-readiness.sh +0 -37
- package/scripts/check-release-version.mjs +0 -74
- package/scripts/check-tarball-install-smoke.sh +0 -67
- package/scripts/package-source-archive.sh +0 -147
- package/scripts/public-release-files.txt +0 -39
- package/scripts/public-release.ts +0 -174
- package/scripts/publish-release-tarball.sh +0 -27
- package/scripts/route-nl-vs-ts-eval.ts +0 -679
- package/scripts/run-skill-evals.ts +0 -1022
- package/scripts/stage-runtime-release.ts +0 -39
- package/src/cli/controller/progress.ts +0 -656
- package/src/cli/controller/work-mode.ts +0 -181
- package/src/cli/local-bridge/console-assets.ts +0 -17
- package/src/cli/local-bridge/dashboard.ts +0 -17
- package/src/cli/local-bridge/frontend/src/App.tsx +0 -10
- package/src/cli/local-bridge/frontend/src/components/Button.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/DetailPane.tsx +0 -3
- package/src/cli/local-bridge/frontend/src/components/SearchField.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/SectionHeader.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/Segmented.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/StatusText.tsx +0 -3
- package/src/cli/local-bridge/frontend/src/design/icons.tsx +0 -11
- package/src/cli/local-bridge/frontend/src/design/tokens.css +0 -8
- package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +0 -153
- package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +0 -37
- package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +0 -183
- package/src/cli/local-bridge/frontend/src/features/repositories/RepositoriesView.tsx +0 -2
- package/src/cli/local-bridge/frontend/src/features/system/SystemView.tsx +0 -2
- package/src/cli/local-bridge/frontend/src/features/work/WorkView.tsx +0 -4
- package/src/cli/local-bridge/frontend/src/lib/api.ts +0 -30
- package/src/cli/local-bridge/frontend/src/lib/format.ts +0 -4
- package/src/cli/local-bridge/frontend/src/lib/routes.ts +0 -7
- package/src/cli/local-bridge/frontend/src/main.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/shell/AppShell.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/shell/CommandBar.tsx +0 -2
- package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +0 -4
- package/src/cli/local-bridge/frontend/src/styles.css +0 -28
- package/src/cli/local-bridge/frontend/src/types.ts +0 -15
- package/src/cli/local-bridge/frontend/src/vite-env.d.ts +0 -1
- package/src/cli/local-bridge/frontend/vite.config.ts +0 -27
- package/src/cli/local-bridge/ui-dist/app.css +0 -1
- package/src/cli/local-bridge/ui-dist/app.js +0 -11228
- package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +0 -385
- package/src/runtime/control-plane/execution/work-finalization-service.ts +0 -1913
- package/src/runtime/control-plane/execution/work-path-scope.ts +0 -37
- package/src/runtime/control-plane/execution/work-task-receipt.ts +0 -449
- package/src/runtime/control-plane/facade/controller-round-relay.ts +0 -1118
- package/src/runtime/control-plane/facade/work-admission-policy.ts +0 -93
- package/src/runtime/control-plane/facade/work-task-projection.ts +0 -66
- package/src/runtime/control-plane/routing/index.ts +0 -1
- package/src/runtime/control-plane/routing/route-policy.ts +0 -382
- package/src/runtime/control-plane/routing/workspace-admission.ts +0 -70
|
@@ -1,19 +1,37 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
1
|
+
import type {
|
|
2
|
+
WorkContract,
|
|
3
|
+
VerificationOutcome,
|
|
4
|
+
FacadeDetailLevel,
|
|
5
|
+
EvidenceRef,
|
|
6
|
+
SuggestedNextAction,
|
|
7
|
+
PolicyDecision,
|
|
8
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
9
|
+
export type {
|
|
10
|
+
FacadeDetailLevel,
|
|
11
|
+
EvidenceRef,
|
|
12
|
+
SuggestedNextAction,
|
|
13
|
+
PolicyDecision,
|
|
14
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
15
|
+
import {
|
|
16
|
+
TERMINAL_PLAN_CONTRACT_STATUSES,
|
|
17
|
+
type PlanContractStatus,
|
|
18
|
+
type PlanStepStatus,
|
|
19
|
+
} from '../../../../packages/kernel/goal/api/index';
|
|
20
|
+
export {
|
|
21
|
+
PLAN_CONTRACT_STATUSES,
|
|
22
|
+
TERMINAL_PLAN_CONTRACT_STATUSES,
|
|
23
|
+
PLAN_STEP_STATUSES,
|
|
24
|
+
type PlanContractStatus,
|
|
25
|
+
type PlanStepStatus,
|
|
26
|
+
} from '../../../../packages/kernel/goal/api/index';
|
|
27
|
+
|
|
28
|
+
export const FACADE_TOOLS = ['rh_access', 'rh_status', 'rh_inbox', 'rh_context', 'rh_work', 'capability_execute'] as const;
|
|
10
29
|
export type FacadeTool = (typeof FACADE_TOOLS)[number];
|
|
11
30
|
export type CapabilityExecutionSurface = FacadeTool | 'plugin_action_execute';
|
|
12
31
|
|
|
13
32
|
export const FACADE_STATUSES = ['ok', 'blocked', 'failed', 'approval_required', 'not_found'] as const;
|
|
14
33
|
export type FacadeStatus = (typeof FACADE_STATUSES)[number];
|
|
15
34
|
|
|
16
|
-
export type FacadeDetailLevel = 'summary' | 'detail' | 'raw';
|
|
17
35
|
|
|
18
36
|
export const CAPABILITY_DOMAINS = ['repository', 'plugin', 'controller', 'evidence', 'maintenance'] as const;
|
|
19
37
|
export type CapabilityDomain = (typeof CAPABILITY_DOMAINS)[number];
|
|
@@ -55,266 +73,70 @@ export type PolicyDecisionKind = (typeof POLICY_DECISIONS)[number];
|
|
|
55
73
|
export const HANDOFF_SEVERITIES = ['info', 'needs_review', 'blocked', 'failed', 'ready_to_continue'] as const;
|
|
56
74
|
export type HandoffSeverity = (typeof HANDOFF_SEVERITIES)[number];
|
|
57
75
|
|
|
58
|
-
export
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
export const TERMINAL_WORK_CONTRACT_STATUSES: readonly WorkContractStatus[] = [
|
|
114
|
-
'completed',
|
|
115
|
-
'failed',
|
|
116
|
-
'cancelled',
|
|
117
|
-
] as const;
|
|
118
|
-
|
|
119
|
-
/** Independent semantic axes; `status` remains a compatibility projection. */
|
|
120
|
-
export const WORK_KINDS = [
|
|
121
|
-
'repository_change',
|
|
122
|
-
'completed_no_change',
|
|
123
|
-
'read_only_review',
|
|
124
|
-
'investigation',
|
|
125
|
-
'local_effect',
|
|
126
|
-
'remote_effect',
|
|
127
|
-
'reconciliation',
|
|
128
|
-
'superseded',
|
|
129
|
-
] as const;
|
|
130
|
-
export type WorkKind = (typeof WORK_KINDS)[number];
|
|
131
|
-
|
|
132
|
-
export const DISPATCH_STATES = ['not_dispatched', 'claimed', 'launching', 'running', 'blocked', 'terminal'] as const;
|
|
133
|
-
export type DispatchState = (typeof DISPATCH_STATES)[number];
|
|
134
|
-
|
|
135
|
-
export const EVIDENCE_STATES = ['none', 'partial', 'valid', 'stale', 'contradictory', 'failed'] as const;
|
|
136
|
-
export type EvidenceState = (typeof EVIDENCE_STATES)[number];
|
|
137
|
-
|
|
138
|
-
export const COMPLETION_OUTCOMES = ['completed_changed', 'completed_no_change', 'completed_local', 'completed_remote', 'superseded'] as const;
|
|
139
|
-
export type CompletionOutcome = (typeof COMPLETION_OUTCOMES)[number];
|
|
140
|
-
|
|
141
|
-
/** Source-bound semantic evidence accumulated by a recoverable read-only review. */
|
|
142
|
-
export interface ReadOnlyReviewEvidence {
|
|
143
|
-
sourceRevision: string;
|
|
144
|
-
workspaceFingerprint?: string;
|
|
145
|
-
inspectedPaths: string[];
|
|
146
|
-
findings: string[];
|
|
147
|
-
recordedAt: string;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/** Controller-reviewed binding from one exact Work acceptance criterion to durable evidence. */
|
|
151
|
-
export interface WorkSemanticAcceptanceEvidence {
|
|
152
|
-
criterion: string;
|
|
153
|
-
evidenceIds: string[];
|
|
154
|
-
rationale: string;
|
|
155
|
-
recordedAt: string;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Terminal authority for a clean read-only review. This deliberately does not
|
|
160
|
-
* impersonate repository delivery: it proves the reviewed source stayed at the
|
|
161
|
-
* frozen base revision with no workspace delta and records the bounded review
|
|
162
|
-
* scope that justified completed_no_change.
|
|
163
|
-
*/
|
|
164
|
-
export interface ReadOnlyReviewCompletionReceipt {
|
|
165
|
-
schemaVersion: 1;
|
|
166
|
-
receiptId: string;
|
|
167
|
-
source: 'read_only_review';
|
|
168
|
-
workId: string;
|
|
169
|
-
baseRevision: string;
|
|
170
|
-
sourceRevision: string;
|
|
171
|
-
workspaceFingerprint?: string;
|
|
172
|
-
/** Explicit unchanged-workspace proof captured by the trusted finalizer. Must be empty. */
|
|
173
|
-
workspaceChangedPaths: string[];
|
|
174
|
-
inspectedPaths: string[];
|
|
175
|
-
findingCount: 0;
|
|
176
|
-
recordedAt: string;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Terminal receipt for a bounded Controller-local side effect that is not a
|
|
181
|
-
* repository delivery. Repository Task/Issue completion keeps using the
|
|
182
|
-
* historical Git-oriented CompletionReceipt unchanged.
|
|
183
|
-
*/
|
|
184
|
-
export interface LocalEffectCompletionReceipt {
|
|
185
|
-
schemaVersion: 1;
|
|
186
|
-
receiptId: string;
|
|
187
|
-
source: 'local_effect';
|
|
188
|
-
workId: string;
|
|
189
|
-
operation: string;
|
|
190
|
-
target: {
|
|
191
|
-
kind: 'workspace_target' | 'controller_local';
|
|
192
|
-
id: string;
|
|
193
|
-
identityFingerprint?: string;
|
|
194
|
-
};
|
|
195
|
-
changed: boolean;
|
|
196
|
-
recordedAt: string;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/** Durable completion authority for one typed remote effect. */
|
|
200
|
-
export interface RemoteEffectCompletionReceipt {
|
|
201
|
-
schemaVersion: 1;
|
|
202
|
-
/** Plugin receipts retain their PLG-* id; repository Process effects use their canonical Process id. */
|
|
203
|
-
receiptId: string;
|
|
204
|
-
source: 'remote_effect';
|
|
205
|
-
workId: string;
|
|
206
|
-
/** Historical receipts omit this field and are interpreted as plugin_action. */
|
|
207
|
-
authority?: 'plugin_action' | 'repository_process';
|
|
208
|
-
pluginId?: string;
|
|
209
|
-
actionId: string;
|
|
210
|
-
requestId: string;
|
|
211
|
-
semanticKey: string;
|
|
212
|
-
resultDigest: string;
|
|
213
|
-
processId?: string;
|
|
214
|
-
recordedAt: string;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Completion authority for a standalone Direct Edit that is not bound to the
|
|
219
|
-
* retired Issue/Task completion model. Normal completion proves one finalized
|
|
220
|
-
* edit session at an exact reachable Git revision. Historical completion may
|
|
221
|
-
* instead reference one explicit reviewed reconciliation after exact revision,
|
|
222
|
-
* path-scope, verification, reachability, and cleanup proof checks.
|
|
223
|
-
*/
|
|
224
|
-
export interface DirectEditWorkCompletionReceipt {
|
|
225
|
-
schemaVersion: 1;
|
|
226
|
-
receiptId: string;
|
|
227
|
-
source: 'direct_edit_work';
|
|
228
|
-
workId: string;
|
|
229
|
-
editSessionId?: string;
|
|
230
|
-
reconciliationId?: string;
|
|
231
|
-
targetBranch: string;
|
|
232
|
-
targetRevision: string;
|
|
233
|
-
sourceRevision?: string;
|
|
234
|
-
baseRevision?: string;
|
|
235
|
-
changedPaths: string[];
|
|
236
|
-
delivery: RepositoryCompletionReceipt['delivery'];
|
|
237
|
-
cleanup: RepositoryCompletionReceipt['cleanup'];
|
|
238
|
-
verifiedAt: string;
|
|
239
|
-
recordedAt: string;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
export type WorkCompletionReceipt = RepositoryCompletionReceipt | DirectEditWorkCompletionReceipt | ReadOnlyReviewCompletionReceipt | LocalEffectCompletionReceipt | RemoteEffectCompletionReceipt;
|
|
243
|
-
|
|
244
|
-
export function isRepositoryCompletionReceipt(
|
|
245
|
-
receipt: WorkCompletionReceipt,
|
|
246
|
-
): receipt is RepositoryCompletionReceipt {
|
|
247
|
-
return receipt.source !== 'local_effect'
|
|
248
|
-
&& receipt.source !== 'remote_effect'
|
|
249
|
-
&& receipt.source !== 'direct_edit_work'
|
|
250
|
-
&& receipt.source !== 'read_only_review';
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export function isReadOnlyReviewCompletionReceipt(
|
|
254
|
-
receipt: WorkCompletionReceipt,
|
|
255
|
-
): receipt is ReadOnlyReviewCompletionReceipt {
|
|
256
|
-
return receipt.source === 'read_only_review';
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
export function isRemoteEffectCompletionReceipt(
|
|
260
|
-
receipt: WorkCompletionReceipt,
|
|
261
|
-
): receipt is RemoteEffectCompletionReceipt {
|
|
262
|
-
return receipt.source === 'remote_effect';
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
export function isDirectEditWorkCompletionReceipt(
|
|
266
|
-
receipt: WorkCompletionReceipt,
|
|
267
|
-
): receipt is DirectEditWorkCompletionReceipt {
|
|
268
|
-
return receipt.source === 'direct_edit_work';
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/** A reviewed exception for historical/manual integration; never inferred automatically. */
|
|
272
|
-
export const WORK_RECONCILIATION_METHODS = ['exact_commit', 'owned_path_tree', 'reviewed_patch_identity'] as const;
|
|
273
|
-
export type WorkReconciliationMethod = (typeof WORK_RECONCILIATION_METHODS)[number];
|
|
274
|
-
|
|
275
|
-
export const WORK_RECONCILIATION_OUTCOMES = ['accepted_equivalence', 'rejected_equivalence', 'superseded'] as const;
|
|
276
|
-
export type WorkReconciliationOutcome = (typeof WORK_RECONCILIATION_OUTCOMES)[number];
|
|
277
|
-
|
|
278
|
-
export const VERIFICATION_OUTCOMES = [
|
|
279
|
-
'valid_pass',
|
|
280
|
-
'valid_fail',
|
|
281
|
-
'invalid_check_id',
|
|
282
|
-
'infrastructure_failure',
|
|
283
|
-
'skipped',
|
|
284
|
-
'superseded',
|
|
285
|
-
] as const;
|
|
286
|
-
export type VerificationOutcome = (typeof VERIFICATION_OUTCOMES)[number];
|
|
287
|
-
|
|
76
|
+
export { HANDOFF_STATUSES, TERMINAL_HANDOFF_STATUSES, isTerminalHandoffStatus, type HandoffStatus } from '../../../../packages/protocols/handoff/index';
|
|
77
|
+
import type { HandoffStatus } from '../../../../packages/protocols/handoff/index';
|
|
78
|
+
|
|
79
|
+
// Kernel V2: Work domain contracts are owned by packages/kernel/work/domain.
|
|
80
|
+
export {
|
|
81
|
+
SEMANTIC_WORK_STATES,
|
|
82
|
+
WORK_PHASES,
|
|
83
|
+
WORK_PHASE_EVIDENCE_STATES,
|
|
84
|
+
WORK_RISKS,
|
|
85
|
+
TERMINAL_SEMANTIC_WORK_STATES,
|
|
86
|
+
WORK_KINDS,
|
|
87
|
+
DISPATCH_STATES,
|
|
88
|
+
EVIDENCE_STATES,
|
|
89
|
+
COMPLETION_OUTCOMES,
|
|
90
|
+
WORK_RECONCILIATION_METHODS,
|
|
91
|
+
WORK_RECONCILIATION_OUTCOMES,
|
|
92
|
+
VERIFICATION_OUTCOMES,
|
|
93
|
+
isRepositoryCompletionReceipt,
|
|
94
|
+
isReadOnlyReviewCompletionReceipt,
|
|
95
|
+
isRemoteEffectCompletionReceipt,
|
|
96
|
+
isDirectEditWorkCompletionReceipt,
|
|
97
|
+
isTerminalSemanticWorkState,
|
|
98
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
99
|
+
export type {
|
|
100
|
+
SemanticWorkState,
|
|
101
|
+
WorkPhase,
|
|
102
|
+
WorkPhaseEvidenceState,
|
|
103
|
+
WorkPhaseEvidence,
|
|
104
|
+
WorkPhaseEvidenceMap,
|
|
105
|
+
WorkRisk,
|
|
106
|
+
WorkKind,
|
|
107
|
+
DispatchState,
|
|
108
|
+
EvidenceState,
|
|
109
|
+
CompletionOutcome,
|
|
110
|
+
ReadOnlyReviewEvidence,
|
|
111
|
+
WorkSemanticAcceptanceEvidence,
|
|
112
|
+
ReadOnlyReviewCompletionReceipt,
|
|
113
|
+
LocalEffectCompletionReceipt,
|
|
114
|
+
RemoteEffectCompletionReceipt,
|
|
115
|
+
DirectEditWorkCompletionReceipt,
|
|
116
|
+
WorkCompletionReceipt,
|
|
117
|
+
WorkReconciliationMethod,
|
|
118
|
+
WorkReconciliationOutcome,
|
|
119
|
+
VerificationOutcome,
|
|
120
|
+
WorkContractConstraints,
|
|
121
|
+
WorktreePolicy,
|
|
122
|
+
EvidencePolicy,
|
|
123
|
+
ApprovalPolicy,
|
|
124
|
+
RecoveryPolicy,
|
|
125
|
+
VerificationRecord,
|
|
126
|
+
WorkReconciliationRecord,
|
|
127
|
+
WorkContract,
|
|
128
|
+
SubmittedWorkOperation,
|
|
129
|
+
WorkContractStore,
|
|
130
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
288
131
|
export const HANDOFF_CREATION_REASONS = [
|
|
289
132
|
'policy_approval_required',
|
|
290
133
|
'ambiguous_outcome',
|
|
291
134
|
'missing_authorization',
|
|
292
135
|
'invalid_objective',
|
|
293
|
-
'repeated_infrastructure_failure',
|
|
294
|
-
'codex_worker_requires_review',
|
|
295
136
|
'destructive_action_requires_confirmation',
|
|
296
137
|
] as const;
|
|
297
138
|
export type HandoffCreationReason = (typeof HANDOFF_CREATION_REASONS)[number];
|
|
298
139
|
|
|
299
|
-
export interface EvidenceRef {
|
|
300
|
-
evidenceId?: string;
|
|
301
|
-
artifactId?: string;
|
|
302
|
-
title: string;
|
|
303
|
-
summary?: string;
|
|
304
|
-
detailLevel?: FacadeDetailLevel;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
export interface SuggestedNextAction {
|
|
308
|
-
label: string;
|
|
309
|
-
tool: FacadeTool;
|
|
310
|
-
operation: string;
|
|
311
|
-
payload?: Record<string, unknown>;
|
|
312
|
-
risk: CapabilityRisk;
|
|
313
|
-
confidence?: 'low' | 'medium' | 'high';
|
|
314
|
-
reason?: string;
|
|
315
|
-
fallback?: string;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
140
|
export interface FacadeResult<TData = Record<string, unknown>> {
|
|
319
141
|
schemaVersion: 1;
|
|
320
142
|
status: FacadeStatus;
|
|
@@ -332,13 +154,12 @@ export interface HandoffCurrentState {
|
|
|
332
154
|
issueId?: string;
|
|
333
155
|
taskId?: string;
|
|
334
156
|
workId?: string;
|
|
335
|
-
mode?: ExecutionMode;
|
|
336
157
|
statusSummary: string;
|
|
337
158
|
blockedBy?: string[];
|
|
338
159
|
changedFiles?: string[];
|
|
339
160
|
checks?: Array<{ checkId: string; ok: boolean; summary?: string; outcome?: VerificationOutcome }>;
|
|
340
161
|
/** Bounded durable Work semantics for a fresh controller session. */
|
|
341
|
-
workSemantics?: Pick<WorkContract, '
|
|
162
|
+
workSemantics?: Pick<WorkContract, 'semanticState' | 'phase' | 'workKind' | 'dispatchState' | 'evidenceState' | 'completionOutcome'>;
|
|
342
163
|
reconciliationRequired?: boolean;
|
|
343
164
|
nextSafeAction?: string;
|
|
344
165
|
}
|
|
@@ -356,6 +177,8 @@ export interface HandoffItem {
|
|
|
356
177
|
id: string;
|
|
357
178
|
repoId: string;
|
|
358
179
|
workId?: string;
|
|
180
|
+
/** Canonical person-only blocker/decision authority when this legacy Handoff projects one. */
|
|
181
|
+
canonicalUserRequestId?: string;
|
|
359
182
|
issueId?: string;
|
|
360
183
|
taskId?: string;
|
|
361
184
|
title: string;
|
|
@@ -386,263 +209,35 @@ export interface HandoffInboxStore {
|
|
|
386
209
|
items: HandoffItem[];
|
|
387
210
|
}
|
|
388
211
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
workspaceMode?: 'current' | 'isolated' | 'auto';
|
|
401
|
-
requireWorktree?: boolean;
|
|
402
|
-
/** Admission fence: repository mutation must not use the Direct Control/current-main lane. */
|
|
403
|
-
directMainProhibited?: boolean;
|
|
404
|
-
/** True when a change alters the agreed architecture direction rather than only implementation details. */
|
|
405
|
-
architectureStrategyChange?: boolean;
|
|
406
|
-
/** True when the proposed change weakens the thin-harness / high-performance execution policy. */
|
|
407
|
-
conflictsWithThinHarnessPolicy?: boolean;
|
|
408
|
-
/** True when the change alters the default routing or execution mode visible to users. */
|
|
409
|
-
changesDefaultExecutionStrategy?: boolean;
|
|
410
|
-
/** Repository-change delivery must publish the exact integrated revision before Work terminalization. */
|
|
411
|
-
remoteDeliveryRequired?: boolean;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
export interface WorkContractDriverPolicy {
|
|
415
|
-
preferred: 'direct_edit' | 'isolated_worktree' | 'external_controller' | 'handoff_only';
|
|
416
|
-
allowWorker: boolean;
|
|
417
|
-
allowDirectEdit: boolean;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
export interface WorktreePolicy {
|
|
421
|
-
required: boolean;
|
|
422
|
-
reason?: string;
|
|
423
|
-
ref?: string;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
export interface EvidencePolicy {
|
|
427
|
-
defaultDetailLevel: FacadeDetailLevel;
|
|
428
|
-
allowRawOptIn: boolean;
|
|
429
|
-
maxEvidenceRefs: number;
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
export interface ApprovalPolicy {
|
|
433
|
-
required: boolean;
|
|
434
|
-
reasons: string[];
|
|
435
|
-
confirmed: boolean;
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
export interface RecoveryPolicy {
|
|
439
|
-
allowSelfHealing: boolean;
|
|
440
|
-
maxInfrastructureRetries: number;
|
|
441
|
-
handoffOnAmbiguity: boolean;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
export interface VerificationRecord {
|
|
445
|
-
checkId: string;
|
|
446
|
-
outcome: VerificationOutcome;
|
|
447
|
-
summary: string;
|
|
448
|
-
recordedAt: string;
|
|
449
|
-
/** Exact checked revision. Absence denotes legacy/non-authoritative evidence. */
|
|
450
|
-
sourceRevision?: string;
|
|
451
|
-
/** Exact dirty-workspace content identity observed by the check. */
|
|
452
|
-
workspaceFingerprint?: string;
|
|
453
|
-
/** Hash of the check inputs that must match before this result can be reused. */
|
|
454
|
-
verificationInputFingerprint?: string;
|
|
455
|
-
/** Bounded identity of the command/configuration that produced the result. */
|
|
456
|
-
commandFingerprint?: string;
|
|
457
|
-
resultArtifactId?: string;
|
|
458
|
-
startedAt?: string;
|
|
459
|
-
completedAt?: string;
|
|
460
|
-
supersedes?: string;
|
|
461
|
-
staleReason?: string;
|
|
462
|
-
evidenceRef?: EvidenceRef;
|
|
463
|
-
receipt?: ProcessCheckReceiptEvidence;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
/**
|
|
467
|
-
* Durable human-reviewed reconciliation for a Work whose original finalization
|
|
468
|
-
* facts cannot be recovered. It records an exception; it is not completion
|
|
469
|
-
* evidence by itself.
|
|
470
|
-
*/
|
|
471
|
-
export interface WorkReconciliationRecord {
|
|
472
|
-
schemaVersion: 1;
|
|
473
|
-
reconciliationId: string;
|
|
474
|
-
originalExpectedRevision: string;
|
|
475
|
-
observedTargetRevision: string;
|
|
476
|
-
baseRevision: string;
|
|
477
|
-
targetBranch: string;
|
|
478
|
-
reachable: boolean;
|
|
479
|
-
method: WorkReconciliationMethod;
|
|
480
|
-
comparedPaths: string[];
|
|
481
|
-
reviewer: string;
|
|
482
|
-
reviewedAt: string;
|
|
483
|
-
unrecoverableStages: string[];
|
|
484
|
-
cleanupOwnershipProof: string;
|
|
485
|
-
rationale: string;
|
|
486
|
-
outcome: WorkReconciliationOutcome;
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
export interface WorkContract {
|
|
490
|
-
schemaVersion: 1 | 2;
|
|
491
|
-
workId: string;
|
|
492
|
-
repoId: string;
|
|
493
|
-
/** Execution identity snapshot. Optional only for legacy records. */
|
|
494
|
-
checkoutId?: string;
|
|
495
|
-
principalId?: string;
|
|
496
|
-
controllerInstanceId?: string;
|
|
497
|
-
baseRevision?: string;
|
|
498
|
-
workspaceFingerprint?: string;
|
|
499
|
-
routeDecisionFingerprint?: string;
|
|
500
|
-
routeDecision?: RouteDecision;
|
|
501
|
-
mode: ExecutionMode;
|
|
212
|
+
// Kernel V2: Controller session contracts are owned by packages/kernel/controller/domain.
|
|
213
|
+
export type {
|
|
214
|
+
ControllerType,
|
|
215
|
+
ControllerSession,
|
|
216
|
+
ControllerSessionStore,
|
|
217
|
+
ControllerBinding,
|
|
218
|
+
ControllerLease,
|
|
219
|
+
ControllerRoundContext,
|
|
220
|
+
} from '../../../../packages/kernel/controller/domain/types';
|
|
221
|
+
export interface PlanSemanticItem {
|
|
222
|
+
id: string;
|
|
502
223
|
objective: string;
|
|
503
|
-
|
|
504
|
-
constraints: WorkContractConstraints;
|
|
505
|
-
/** Risk is immutable contract input and is projected to legacy Task reads. */
|
|
506
|
-
risk: WorkRisk;
|
|
507
|
-
/** Technical phase; Requirement owns the user lifecycle. */
|
|
508
|
-
phase: WorkPhase;
|
|
509
|
-
/** Work-owned phase checkpoints. Task/Run/Process records may contribute evidence but cannot write this map directly. */
|
|
510
|
-
phaseEvidence: WorkPhaseEvidenceMap;
|
|
511
|
-
/** Explicit v2 execution semantics. `status` is retained for compatibility. */
|
|
512
|
-
workKind: WorkKind;
|
|
513
|
-
/** Primary is an objective-level business execution lane; execution_child is a resumable low-level operation handle owned by a primary Work or standalone caller. */
|
|
514
|
-
lifecycleRole?: 'primary' | 'execution_child';
|
|
515
|
-
/** Optional objective-level parent when this Work is only an execution child. */
|
|
516
|
-
parentWorkId?: string;
|
|
517
|
-
dispatchState: DispatchState;
|
|
518
|
-
evidenceState: EvidenceState;
|
|
519
|
-
completionOutcome?: CompletionOutcome;
|
|
520
|
-
status: WorkContractStatus;
|
|
521
|
-
createdAt: string;
|
|
522
|
-
updatedAt: string;
|
|
523
|
-
/** @deprecated Prefer Requirement/Plan/Work links; kept for compatibility reads only. */
|
|
524
|
-
issueId?: string;
|
|
525
|
-
taskId?: string;
|
|
526
|
-
/** Stable Requirement authority that this Work may complete. */
|
|
527
|
-
requirementId?: string;
|
|
528
|
-
/** Work-owned completion receipt. Legacy Task receipts are projections only. */
|
|
529
|
-
completionReceipt?: WorkCompletionReceipt;
|
|
530
|
-
/** Provenance for complex work dispatched from a durable PlanContract step. */
|
|
531
|
-
planId?: string;
|
|
532
|
-
planStepId?: string;
|
|
533
|
-
planSourceRevision?: string;
|
|
534
|
-
scopeSummary?: string;
|
|
535
|
-
/**
|
|
536
|
-
* Discovery evidence, never an authorization boundary. Initial guesses,
|
|
537
|
-
* inspected paths, and observed changes remain distinct so early retrieval
|
|
538
|
-
* cannot masquerade as complete implementation scope.
|
|
539
|
-
*/
|
|
540
|
-
scopeEvidence?: {
|
|
541
|
-
initialLikelyPaths: string[];
|
|
542
|
-
inspectedPaths: string[];
|
|
543
|
-
actualChangedPaths: string[];
|
|
544
|
-
recordedAt: string;
|
|
545
|
-
};
|
|
546
|
-
/** Source-bound semantic findings/scope for first-class recoverable read-only review Work. */
|
|
547
|
-
readOnlyReviewEvidence?: ReadOnlyReviewEvidence;
|
|
548
|
-
/** Explicit Controller-reviewed acceptance bindings. Mechanical evidence attribution alone never writes this field. */
|
|
549
|
-
semanticAcceptanceEvidence?: WorkSemanticAcceptanceEvidence[];
|
|
550
|
-
/** Explicit policy fence. This is not semantic completeness evidence. */
|
|
551
|
-
allowedPaths: string[];
|
|
552
|
-
forbiddenPaths: string[];
|
|
553
|
-
checks: string[];
|
|
554
|
-
driver: WorkContractDriverPolicy;
|
|
555
|
-
worktreePolicy: WorktreePolicy;
|
|
556
|
-
evidencePolicy: EvidencePolicy;
|
|
557
|
-
approvalPolicy: ApprovalPolicy;
|
|
558
|
-
recoveryPolicy: RecoveryPolicy;
|
|
559
|
-
requestedBy: 'chatgpt' | 'user' | 'system' | 'scheduler';
|
|
560
|
-
evidenceRefs: EvidenceRef[];
|
|
561
|
-
handoffRefs: string[];
|
|
562
|
-
suggestedNextActions: SuggestedNextAction[];
|
|
563
|
-
policyDecisions: PolicyDecision[];
|
|
564
|
-
checkRefs: VerificationRecord[];
|
|
565
|
-
/** Reviewed historical/manual integration exceptions, retained for audit. */
|
|
566
|
-
reconciliations: WorkReconciliationRecord[];
|
|
567
|
-
continuationPrompt?: string;
|
|
568
|
-
worktreeRef?: string;
|
|
569
|
-
workerRef?: string;
|
|
570
|
-
requestId?: string;
|
|
571
|
-
/** Typed execution metadata; it does not imply ExecutionJob creation. */
|
|
572
|
-
submittedOperation?: SubmittedWorkOperation;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
/** Typed execution metadata retained on execution-child WorkContracts. */
|
|
576
|
-
export interface SubmittedWorkOperation {
|
|
577
|
-
name: string;
|
|
578
|
-
semanticKey: string;
|
|
579
|
-
argumentHash: string;
|
|
580
|
-
mode: 'readonly' | 'mutating' | 'remote_write' | 'destructive';
|
|
581
|
-
idempotent: boolean;
|
|
582
|
-
replayable: boolean;
|
|
583
|
-
resourceClaims: Array<{
|
|
584
|
-
resourceKey: string;
|
|
585
|
-
mode: string;
|
|
586
|
-
quantity?: number;
|
|
587
|
-
}>;
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
export interface WorkContractStore {
|
|
591
|
-
schemaVersion: 1 | 2;
|
|
592
|
-
updatedAt: string;
|
|
593
|
-
contracts: WorkContract[];
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
export type ControllerType = 'chatgpt' | 'codex' | 'grok' | 'claude' | 'human';
|
|
597
|
-
|
|
598
|
-
export interface ControllerSession {
|
|
599
|
-
schemaVersion: 1;
|
|
600
|
-
workId: string;
|
|
601
|
-
controllerId: string;
|
|
602
|
-
controllerType: ControllerType;
|
|
603
|
-
sessionId: string;
|
|
604
|
-
/** Authenticated authority that owned the claim; legacy records may omit it. */
|
|
605
|
-
principalId?: string;
|
|
606
|
-
/** Controller process/epoch that admitted the transport session. */
|
|
607
|
-
controllerInstanceId?: string;
|
|
608
|
-
/** Monotonic ownership fence. It changes only when ownership moves. */
|
|
609
|
-
claimGeneration?: number;
|
|
610
|
-
claimedAt: string;
|
|
611
|
-
leaseExpiresAt: string;
|
|
224
|
+
dependencies: string[];
|
|
612
225
|
}
|
|
613
226
|
|
|
614
|
-
export interface
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
227
|
+
export interface PlanSemanticContext {
|
|
228
|
+
/** Requirement semantic revision used as planning provenance; never an execution gate. */
|
|
229
|
+
requirementBasisRevision?: number;
|
|
230
|
+
sourceBasisRevision: string;
|
|
231
|
+
goal: string;
|
|
232
|
+
nonGoals: string[];
|
|
233
|
+
assumptions: string[];
|
|
234
|
+
resolvedDecisions: string[];
|
|
235
|
+
stopConditions: string[];
|
|
236
|
+
replanConditions: string[];
|
|
237
|
+
integrationStrategy?: string;
|
|
238
|
+
items: PlanSemanticItem[];
|
|
618
239
|
}
|
|
619
240
|
|
|
620
|
-
export const PLAN_CONTRACT_STATUSES = [
|
|
621
|
-
'draft',
|
|
622
|
-
'inspecting',
|
|
623
|
-
'reviewing',
|
|
624
|
-
'approved',
|
|
625
|
-
'executing',
|
|
626
|
-
'replanning',
|
|
627
|
-
'verifying',
|
|
628
|
-
'ready_to_finalize',
|
|
629
|
-
'finalized',
|
|
630
|
-
'superseded',
|
|
631
|
-
'cancelled',
|
|
632
|
-
'invalidated_by_drift',
|
|
633
|
-
] as const;
|
|
634
|
-
export type PlanContractStatus = (typeof PLAN_CONTRACT_STATUSES)[number];
|
|
635
|
-
|
|
636
|
-
export const TERMINAL_PLAN_CONTRACT_STATUSES: readonly PlanContractStatus[] = [
|
|
637
|
-
'finalized',
|
|
638
|
-
'superseded',
|
|
639
|
-
'cancelled',
|
|
640
|
-
'invalidated_by_drift',
|
|
641
|
-
];
|
|
642
|
-
|
|
643
|
-
export const PLAN_STEP_STATUSES = ['pending', 'ready', 'executing', 'validating', 'completed'] as const;
|
|
644
|
-
export type PlanStepStatus = (typeof PLAN_STEP_STATUSES)[number];
|
|
645
|
-
|
|
646
241
|
export interface PlanStep {
|
|
647
242
|
id: string;
|
|
648
243
|
objective: string;
|
|
@@ -662,10 +257,95 @@ export interface PlanStep {
|
|
|
662
257
|
* A durable pre-execution decision record. WorkContract remains the unit that
|
|
663
258
|
* owns dispatch, workspace, worker, and verification lifecycle.
|
|
664
259
|
*/
|
|
260
|
+
export const PLAN_OBLIGATION_DISPOSITIONS = ['keep', 'change', 'defer', 'drop'] as const;
|
|
261
|
+
export type PlanObligationDispositionKind = (typeof PLAN_OBLIGATION_DISPOSITIONS)[number];
|
|
262
|
+
|
|
263
|
+
export interface PlanObligationDisposition {
|
|
264
|
+
predecessorPlanId: string;
|
|
265
|
+
obligationId: string;
|
|
266
|
+
disposition: PlanObligationDispositionKind;
|
|
267
|
+
/** Successor locations such as step:<id>, acceptance:<id>:<index>, resolved_decision:<index>. */
|
|
268
|
+
successorRefs: string[];
|
|
269
|
+
/** Required for CHANGE/DEFER/DROP. KEEP may omit it. */
|
|
270
|
+
rationale?: string;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Immutable provenance for one predecessor delivery that may be reused by a
|
|
275
|
+
* successor Plan after approval. The Work itself remains historical and bound
|
|
276
|
+
* to the predecessor Plan; this record never transfers execution authority.
|
|
277
|
+
*/
|
|
278
|
+
export interface PlanStepDeliveryCarry {
|
|
279
|
+
predecessorPlanId: string;
|
|
280
|
+
predecessorStepId: string;
|
|
281
|
+
successorStepId: string;
|
|
282
|
+
workId: string;
|
|
283
|
+
completionReceiptId: string;
|
|
284
|
+
deliveredSourceRevision: string;
|
|
285
|
+
recordedAt: string;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/** Mutable only until approval. A stable Plan may stage at most one next revision;
|
|
289
|
+
* the currently committed Plan fields remain authoritative until this draft is approved. */
|
|
290
|
+
export interface PlanRevisionDraft {
|
|
291
|
+
revision: number;
|
|
292
|
+
requestedRevisionLabel?: string;
|
|
293
|
+
sourceRevision: string;
|
|
294
|
+
goal: string;
|
|
295
|
+
nonGoals: string[];
|
|
296
|
+
assumptions: string[];
|
|
297
|
+
resolvedDecisions: string[];
|
|
298
|
+
stopConditions: string[];
|
|
299
|
+
replanConditions: string[];
|
|
300
|
+
integrationStrategy?: string;
|
|
301
|
+
steps: PlanStep[];
|
|
302
|
+
obligationDispositions?: PlanObligationDisposition[];
|
|
303
|
+
deliveryCarries?: PlanStepDeliveryCarry[];
|
|
304
|
+
createdAt: string;
|
|
305
|
+
updatedAt: string;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/** Immutable audit snapshot of one committed Plan revision. Historical revisions
|
|
309
|
+
* never own active scope, Work, scheduling, or admission authority. */
|
|
310
|
+
export interface PlanRevisionRecord {
|
|
311
|
+
schemaVersion: 1;
|
|
312
|
+
/** Node-local placement provenance; absent for a ForgeInstance-scoped Plan. */
|
|
313
|
+
repoId?: string;
|
|
314
|
+
planId: string;
|
|
315
|
+
revision: number;
|
|
316
|
+
requirementId?: string;
|
|
317
|
+
scopeKey: string;
|
|
318
|
+
sourceRevision: string;
|
|
319
|
+
goal: string;
|
|
320
|
+
nonGoals: string[];
|
|
321
|
+
assumptions: string[];
|
|
322
|
+
resolvedDecisions: string[];
|
|
323
|
+
stopConditions: string[];
|
|
324
|
+
replanConditions: string[];
|
|
325
|
+
integrationStrategy?: string;
|
|
326
|
+
status: PlanContractStatus;
|
|
327
|
+
steps: PlanStep[];
|
|
328
|
+
evidenceRefs: EvidenceRef[];
|
|
329
|
+
obligationDispositions?: PlanObligationDisposition[];
|
|
330
|
+
recordedAt: string;
|
|
331
|
+
reason?: string;
|
|
332
|
+
/** Compatibility label supplied by older successor-Plan clients. It is not a Plan identity. */
|
|
333
|
+
requestedRevisionLabel?: string;
|
|
334
|
+
}
|
|
335
|
+
|
|
665
336
|
export interface PlanContract {
|
|
666
337
|
schemaVersion: 1;
|
|
667
338
|
planId: string;
|
|
668
|
-
|
|
339
|
+
/** Legacy PlanContract lifecycle revision retained during authority migration. */
|
|
340
|
+
revision?: number;
|
|
341
|
+
/** Thin model-authored Plan revision, independent from lifecycle/step execution updates. */
|
|
342
|
+
semanticRevision?: number;
|
|
343
|
+
/** Timestamp of the model-authored Plan content; lifecycle/step updates must not change it. */
|
|
344
|
+
semanticUpdatedAt?: string;
|
|
345
|
+
/** Thin model-authored working memory. Once present, legacy steps/status cannot rewrite semantic Plan content. */
|
|
346
|
+
semanticContext?: PlanSemanticContext;
|
|
347
|
+
/** @deprecated Node-local placement compatibility field; absent for a ForgeInstance-scoped Plan. */
|
|
348
|
+
repoId?: string;
|
|
669
349
|
/** Stable Requirement owner. Legacy plans may omit this until portfolio migration. */
|
|
670
350
|
requirementId?: string;
|
|
671
351
|
scopeKey: string;
|
|
@@ -680,7 +360,17 @@ export interface PlanContract {
|
|
|
680
360
|
status: PlanContractStatus;
|
|
681
361
|
steps: PlanStep[];
|
|
682
362
|
evidenceRefs: EvidenceRef[];
|
|
363
|
+
/** Historical predecessor Plans explicitly replaced by this Plan. */
|
|
364
|
+
supersedes?: string[];
|
|
683
365
|
supersededBy?: string;
|
|
366
|
+
/** Bounded durable reason for the supersession edge. */
|
|
367
|
+
supersessionReason?: string;
|
|
368
|
+
/** Explicit reconciliation of unresolved predecessor obligations. */
|
|
369
|
+
obligationDispositions?: PlanObligationDisposition[];
|
|
370
|
+
/** Trusted, bounded delivery provenance derived only during canonical successor admission. */
|
|
371
|
+
deliveryCarries?: PlanStepDeliveryCarry[];
|
|
372
|
+
/** At most one staged next revision. It is not another active Plan authority. */
|
|
373
|
+
pendingRevision?: PlanRevisionDraft;
|
|
684
374
|
createdAt: string;
|
|
685
375
|
updatedAt: string;
|
|
686
376
|
}
|
|
@@ -704,6 +394,8 @@ export interface CapabilityDescriptor {
|
|
|
704
394
|
exposedVia: CapabilityExecutionSurface;
|
|
705
395
|
schemaExposure: CapabilitySchemaExposure;
|
|
706
396
|
summary: string;
|
|
397
|
+
/** Provider-declared semantic capabilities implemented by this executable action. */
|
|
398
|
+
semanticCapabilities?: string[];
|
|
707
399
|
}
|
|
708
400
|
|
|
709
401
|
export interface CapabilityGroupSummary {
|
|
@@ -717,37 +409,18 @@ export interface CapabilityGroupSummary {
|
|
|
717
409
|
schemaExposures: CapabilitySchemaExposure[];
|
|
718
410
|
}
|
|
719
411
|
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
suggestedNextActions: SuggestedNextAction[];
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
export interface ExecutionModeSelectionInput {
|
|
412
|
+
/**
|
|
413
|
+
* Concrete mechanical facts about one Work start request. Forge validates and
|
|
414
|
+
* persists these; it never derives engineering method, worker/provider choice,
|
|
415
|
+
* verification, review, or completion from them. Choosing durable Work at all
|
|
416
|
+
* is the caller's explicit decision to invoke this capability.
|
|
417
|
+
*/
|
|
418
|
+
export interface WorkStartFacts {
|
|
731
419
|
objective?: string;
|
|
732
|
-
expectedFiles?: number;
|
|
733
|
-
expectedChangedLines?: number;
|
|
734
420
|
scopeClear: boolean;
|
|
735
|
-
|
|
736
|
-
workspaceDirty?: boolean;
|
|
737
|
-
workspaceFingerprint?: string;
|
|
738
|
-
checkoutId?: string;
|
|
739
|
-
/** Canonical typed placement constraint; never inferred from objective text. */
|
|
740
|
-
workspacePlacement?: 'current' | 'isolated' | 'auto';
|
|
741
|
-
/** Admission fence that has precedence over explicit Direct routing. */
|
|
742
|
-
directMainProhibited?: boolean;
|
|
743
|
-
requiresInvestigation?: boolean;
|
|
744
|
-
requiresLongRunningChecks?: boolean;
|
|
745
|
-
requiresParallelism?: boolean;
|
|
746
|
-
explicitMode?: ExplicitTaskMode;
|
|
747
|
-
needsDependencies?: boolean;
|
|
421
|
+
mutation?: boolean;
|
|
748
422
|
requiresRecovery?: boolean;
|
|
749
|
-
/** True
|
|
750
|
-
requiresWorker?: boolean;
|
|
423
|
+
/** True when the request causes an effect outside the checkout (plugin action, remote publish). */
|
|
751
424
|
requiresExternalEffect?: boolean;
|
|
752
425
|
requiresApproval?: boolean;
|
|
753
426
|
requiresUserApproval?: boolean;
|
|
@@ -755,81 +428,6 @@ export interface ExecutionModeSelectionInput {
|
|
|
755
428
|
destructive?: boolean;
|
|
756
429
|
remoteWrite?: boolean;
|
|
757
430
|
secretAccess?: boolean;
|
|
758
|
-
mutation?: boolean;
|
|
759
431
|
risk?: CapabilityRisk;
|
|
760
|
-
|
|
761
|
-
routePolicyInput?: RoutePolicyInput;
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
export interface ExecutionModeSelection {
|
|
765
|
-
mode: ExecutionMode;
|
|
766
|
-
reason: string;
|
|
767
|
-
missingContractFields: string[];
|
|
768
|
-
createWorkContract: boolean;
|
|
769
|
-
createHandoff: boolean;
|
|
770
|
-
requiresWork: boolean;
|
|
771
|
-
routeDecision: RouteDecision;
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
export function isTerminalHandoffStatus(status: HandoffStatus): boolean {
|
|
775
|
-
return TERMINAL_HANDOFF_STATUSES.includes(status);
|
|
776
|
-
}
|
|
777
|
-
|
|
778
|
-
export function isTerminalWorkContractStatus(status: WorkContractStatus): boolean {
|
|
779
|
-
return TERMINAL_WORK_CONTRACT_STATUSES.includes(status);
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
/** @deprecated Compatibility adapter. Route Policy is the sole routing authority. */
|
|
783
|
-
export function selectExecutionMode(input: ExecutionModeSelectionInput): ExecutionModeSelection {
|
|
784
|
-
const missingContractFields: string[] = [];
|
|
785
|
-
if (!input.scopeClear) missingContractFields.push('scopeSummary', 'acceptanceCriteria', 'allowedPaths');
|
|
786
|
-
if (input.objective !== undefined && input.objective.trim().length === 0) missingContractFields.push('objective');
|
|
787
|
-
const routeDecision = decideRoute(input.routePolicyInput ?? {
|
|
788
|
-
intent: {
|
|
789
|
-
objective: input.objective ?? (input.scopeClear ? 'bounded repository work' : ''),
|
|
790
|
-
scopeClear: input.scopeClear,
|
|
791
|
-
mutation: input.mutation ?? input.risk !== 'readonly',
|
|
792
|
-
expectedFiles: input.expectedFiles,
|
|
793
|
-
expectedChangedLines: input.expectedChangedLines,
|
|
794
|
-
requiresInvestigation: input.requiresInvestigation,
|
|
795
|
-
requiresLongRunningChecks: input.requiresLongRunningChecks,
|
|
796
|
-
requiresParallelism: input.requiresParallelism,
|
|
797
|
-
explicitMode: input.explicitMode,
|
|
798
|
-
needsDependencies: input.needsDependencies,
|
|
799
|
-
agentRequested: input.requiresWorker,
|
|
800
|
-
},
|
|
801
|
-
workspace: {
|
|
802
|
-
knownPaths: input.knownPaths,
|
|
803
|
-
dirty: input.workspaceDirty,
|
|
804
|
-
checkoutId: input.checkoutId,
|
|
805
|
-
fingerprint: input.workspaceFingerprint,
|
|
806
|
-
placement: input.workspacePlacement,
|
|
807
|
-
directMainProhibited: input.directMainProhibited,
|
|
808
|
-
},
|
|
809
|
-
policy: {
|
|
810
|
-
risk: input.risk,
|
|
811
|
-
requiresApproval: input.requiresApproval,
|
|
812
|
-
requiresUserApproval: input.requiresUserApproval,
|
|
813
|
-
approvalConfirmed: input.approvalConfirmed,
|
|
814
|
-
destructive: input.destructive,
|
|
815
|
-
remoteWrite: input.remoteWrite,
|
|
816
|
-
secretAccess: input.secretAccess,
|
|
817
|
-
},
|
|
818
|
-
capabilities: {
|
|
819
|
-
requiresWorker: input.requiresWorker,
|
|
820
|
-
requiresExternalEffect: input.requiresExternalEffect,
|
|
821
|
-
},
|
|
822
|
-
recovery: {
|
|
823
|
-
required: input.requiresRecovery,
|
|
824
|
-
},
|
|
825
|
-
});
|
|
826
|
-
return {
|
|
827
|
-
mode: routeDecision.executionMode,
|
|
828
|
-
reason: routeDecision.reasons.map((reason) => reason.message).join(' '),
|
|
829
|
-
missingContractFields: routeDecision.executionMode === 'handoff_only' && missingContractFields.length > 0 ? missingContractFields : [],
|
|
830
|
-
createWorkContract: routeDecision.requiresWork,
|
|
831
|
-
createHandoff: routeDecision.createHandoff,
|
|
832
|
-
requiresWork: routeDecision.requiresWork,
|
|
833
|
-
routeDecision,
|
|
834
|
-
};
|
|
432
|
+
workspaceDirty?: boolean;
|
|
835
433
|
}
|