@moretea-labs/forge 1.7.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +58 -62
- package/CHANGELOG.md +39 -0
- package/CLAUDE.md +42 -62
- package/README.md +2 -2
- package/SKILL.md +0 -1
- package/THIRD_PARTY_NOTICES.md +5 -2
- package/adapters/browser/index.ts +2 -0
- package/adapters/chatgpt/browser-delivery-host.ts +71 -0
- package/adapters/chatgpt/browser-delivery-runtime.ts +783 -0
- package/adapters/chatgpt/controller-binding-store.ts +55 -0
- package/adapters/chatgpt/controller-host.ts +119 -0
- package/adapters/chatgpt/controller-round-host.ts +78 -0
- package/adapters/chatgpt/controller-round-settlement-store.ts +45 -0
- package/adapters/chatgpt/provider-delivery.ts +113 -0
- package/adapters/chatgpt/work-conversation-binding-store.ts +192 -0
- package/adapters/chatgpt/wsl-bridge-delivery-host.ts +63 -0
- package/adapters/computer/desktop-operator-contract.ts +7 -0
- package/adapters/computer/desktop-operator-discovery.ts +201 -0
- package/adapters/computer/desktop-operator-negotiation.ts +174 -0
- package/adapters/computer/desktop-operator-provider.ts +312 -0
- package/adapters/computer/index.ts +1 -0
- package/adapters/computer/interaction-target-authority.ts +944 -0
- package/adapters/controller-process/binding-store.ts +34 -0
- package/adapters/controller-process/controller-host.ts +26 -0
- package/adapters/mcp/access-mode.ts +132 -0
- package/adapters/mcp/audit.ts +32 -0
- package/adapters/mcp/auth.ts +407 -0
- package/adapters/mcp/controller-round-compatibility.ts +184 -0
- package/adapters/mcp/frozen-client-semantic-compatibility.ts +292 -0
- package/adapters/mcp/instructions.ts +36 -0
- package/adapters/mcp/legacy-context.ts +18 -0
- package/adapters/mcp/multi-repository.ts +437 -0
- package/adapters/mcp/oauth.ts +391 -0
- package/adapters/mcp/paths.ts +140 -0
- package/adapters/mcp/policy.ts +232 -0
- package/adapters/mcp/proxy-env.ts +62 -0
- package/adapters/mcp/readiness-projection.ts +24 -0
- package/adapters/mcp/redaction.ts +21 -0
- package/adapters/mcp/repo.ts +24 -0
- package/adapters/mcp/runtime-gateway/artifact-adapter.ts +52 -0
- package/adapters/mcp/runtime-gateway/context-adapter.ts +829 -0
- package/adapters/mcp/runtime-gateway/controller-authority-adapter.ts +191 -0
- package/adapters/mcp/runtime-gateway/engineering-preconditions.ts +147 -0
- package/adapters/mcp/runtime-gateway/execution-control-adapter.ts +28 -0
- package/adapters/mcp/runtime-gateway/execution-tools.ts +207 -0
- package/adapters/mcp/runtime-gateway/filesystem-adapter.ts +38 -0
- package/adapters/mcp/runtime-gateway/gateway-execution-adapter.ts +411 -0
- package/adapters/mcp/runtime-gateway/legacy-ios-tool-adapter.ts +105 -0
- package/adapters/mcp/runtime-gateway/maintenance-adapter.ts +44 -0
- package/adapters/mcp/runtime-gateway/model-adapter.ts +63 -0
- package/adapters/mcp/runtime-gateway/persisted-check-process.ts +3 -0
- package/adapters/mcp/runtime-gateway/plugin-adapter.ts +308 -0
- package/adapters/mcp/runtime-gateway/process-tools.ts +289 -0
- package/adapters/mcp/runtime-gateway/protected-computer-adapter.ts +76 -0
- package/adapters/mcp/runtime-gateway/recovery-adapter.ts +268 -0
- package/adapters/mcp/runtime-gateway/recovery-client-adapter.ts +70 -0
- package/adapters/mcp/runtime-gateway/recovery-tool-contract.ts +99 -0
- package/adapters/mcp/runtime-gateway/repository-compat-adapter.ts +110 -0
- package/adapters/mcp/runtime-gateway/result-adapter.ts +108 -0
- package/adapters/mcp/runtime-gateway/router.ts +728 -0
- package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +1251 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +634 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-shared.ts +27 -0
- package/adapters/mcp/runtime-gateway/runtime-tools.ts +68 -0
- package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +186 -0
- package/adapters/mcp/runtime-gateway/shared-adapter.ts +25 -0
- package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +870 -0
- package/adapters/mcp/runtime-gateway/work-adapter.ts +3186 -0
- package/adapters/mcp/runtime-gateway/work-compat-adapter.ts +502 -0
- package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +1 -0
- package/adapters/mcp/server.ts +1048 -0
- package/adapters/mcp/setup.ts +791 -0
- package/adapters/mcp/tool-capability-cache.ts +87 -0
- package/adapters/mcp/tool-mapping/access-tools.ts +387 -0
- package/adapters/mcp/tool-mapping/legacy-tool-service.ts +5265 -0
- package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +150 -0
- package/adapters/mcp/tool-mapping/repository-tools.ts +1691 -0
- package/adapters/mcp/tool-mapping/tools.ts +9 -0
- package/adapters/mcp/tool-mapping/umbrella-tools.ts +117 -0
- package/adapters/mcp/toolset-names.ts +74 -0
- package/adapters/mcp/toolset-selection.ts +41 -0
- package/adapters/mcp/toolset.ts +336 -0
- package/adapters/mcp/transports/http.ts +1456 -0
- package/adapters/mcp/transports/session-registry.ts +513 -0
- package/adapters/mcp/transports/stdio.ts +8 -0
- package/adapters/mcp/tunnels/openai-secure-tunnel.ts +139 -0
- package/adapters/mcp/types.ts +41 -0
- package/assets/AGENTS.md +2 -16
- package/assets/CLAUDE.md +2 -16
- package/assets/hooks/AGENTS.md +3 -14
- package/assets/hooks/CLAUDE.md +3 -14
- package/assets/hooks/hook-input.sh +9 -2
- package/assets/hooks/lib/workflow-state.sh +28 -10
- package/assets/hooks/prompt-guard.sh +63 -37
- package/assets/hooks/security-sentinel.sh +2 -1
- package/assets/hooks/session-start-context.sh +7 -5
- package/assets/hooks/stop-orchestrator.sh +13 -3
- package/assets/initializer-question-pack.v4.json +11 -7
- package/assets/partials/05-workflow.partial.md +18 -73
- package/assets/partials/07-footer.partial.md +1 -1
- package/assets/partials-agents/02-operating-mode.partial.md +1 -2
- package/assets/partials-agents/04-task-protocol.partial.md +14 -59
- package/assets/partials-agents/06-quality-safety.partial.md +11 -16
- package/assets/partials-agents/08-deep-docs.partial.md +1 -2
- package/assets/plan-map.json +11 -11
- package/assets/plugin-registry.v1.json +9 -3
- package/assets/plugin-trust-policy.v1.json +6 -0
- package/assets/recovery/ForgeRecovery.ps1 +100 -0
- package/assets/recovery/forge-wsl-rescue +271 -0
- package/assets/reference-configs/development-protocol.md +11 -15
- package/assets/reference-configs/document-generation.md +1 -1
- package/assets/reference-configs/global-working-rules.md +9 -1
- package/assets/reference-configs/harness-overview.md +22 -112
- package/assets/reference-configs/hook-operations.md +1 -1
- package/assets/reference-configs/sprint-contracts.md +2 -2
- package/assets/skill-version.json +2 -2
- package/assets/templates/helpers/architecture-event.ts +3 -34
- package/assets/templates/helpers/architecture-queue.sh +61 -10
- package/assets/templates/helpers/archive-workflow.sh +90 -180
- package/assets/templates/helpers/capability-config.ts +8 -11
- package/assets/templates/helpers/capability-resolver.ts +37 -19
- package/assets/templates/helpers/capture-plan.sh +2 -2
- package/assets/templates/helpers/check-architecture-sync.sh +1 -9
- package/assets/templates/helpers/check-task-sync.sh +82 -11
- package/assets/templates/helpers/check-task-workflow.sh +1 -3
- package/assets/templates/helpers/context-contract-sync.sh +1 -12
- package/assets/templates/helpers/contract-worktree.sh +26 -24
- package/assets/templates/helpers/ensure-task-workflow.sh +6 -8
- package/assets/templates/helpers/inspect-project-state.ts +1 -1
- package/assets/templates/helpers/migrate-project-template.sh +1 -1
- package/assets/templates/helpers/migrate-workflow-docs.ts +53 -239
- package/assets/templates/helpers/new-plan.sh +2 -2
- package/assets/templates/helpers/plan-to-todo.sh +3 -31
- package/assets/templates/helpers/sprint-backlog.sh +1 -1
- package/assets/templates/helpers/switch-plan.sh +1 -1
- package/assets/templates/helpers/workflow-contract.ts +1 -0
- package/assets/workflow-contract.v1.json +63 -171
- package/assets/workflows/xiaohongshu/xiaohongshu.collect-metrics.v1.draft.json +118 -0
- package/assets/workflows/xiaohongshu/xiaohongshu.publish-image-note.v1.draft.json +316 -0
- package/assets/workflows/xiaohongshu/xiaohongshu.publish-long-text.v1.draft.json +324 -0
- package/docs/architecture/CURRENT.md +148 -13
- package/docs/architecture/EVOLUTION.md +13 -0
- package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +2 -1
- package/docs/architecture/decisions/20260831-independent-windows-wsl-host-rescue.md +59 -0
- package/docs/architecture/decisions/20260904-ios-device-migration-baseline.md +120 -0
- package/docs/architecture/decisions/20260904-repository-runtime-data-boundary.md +42 -0
- package/docs/architecture/decisions/20260907-assistant-learning-loop.md +35 -0
- package/docs/architecture/decisions/20260907-controller-round-transition-policy.md +296 -0
- package/docs/architecture/decisions/20260907-maintenance-diagnosis-bounded-read.md +39 -0
- package/docs/architecture/domains/verification.md +7 -0
- package/docs/architecture/domains/workflow-engine.md +1 -1
- package/docs/architecture/index.md +3 -3
- package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +19 -8
- package/docs/architecture/requests/2026-09-04-computer-plugin-workflow-taxonomy.md +124 -0
- package/docs/forge-chatgpt-mcp-setup.md +5 -3
- package/docs/forge-plugin-management.md +20 -4
- package/docs/forge-runtime-self-healing-loop.md +2 -0
- package/docs/operations/benchmark-cross-version-freeze.md +38 -0
- package/docs/operations/controller-browser-plugin.md +3 -1
- package/docs/operations/homebrew.md +2 -2
- package/docs/operations/platform-support.md +16 -8
- package/docs/operations/platform-support.zh-CN.md +2 -2
- package/docs/operations/standalone-disaster-recovery.md +26 -1
- package/docs/operations/uu-remote-rescue.md +41 -0
- package/docs/operations/windows-wsl-host-rescue.md +133 -0
- package/docs/public-usage-guide.md +1 -1
- package/docs/public-usage-guide.zh-CN.md +1 -1
- package/docs/tutorials/01-install-and-start.md +1 -1
- package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
- package/docs/tutorials/02-connect-chatgpt.md +4 -4
- package/docs/tutorials/02-connect-chatgpt.zh-CN.md +4 -4
- package/docs/wiki/Implementation.md +1 -1
- package/package.json +23 -14
- package/packages/kernel/controller/api/index.ts +2 -0
- package/packages/kernel/controller/application/controller-round-service.ts +29 -0
- package/packages/kernel/controller/application/controller-service.ts +30 -0
- package/packages/kernel/controller/domain/controller-round-transition-policy.ts +308 -0
- package/packages/kernel/controller/domain/controller-round.ts +107 -0
- package/packages/kernel/controller/domain/execution-quality.ts +133 -0
- package/packages/kernel/controller/domain/types.ts +56 -0
- package/packages/kernel/controller/index.ts +1 -0
- package/packages/kernel/controller/infrastructure/controller-binding-store.ts +84 -0
- package/packages/kernel/controller/infrastructure/controller-round-store.ts +1384 -0
- package/packages/kernel/controller/infrastructure/controller-session-store.ts +578 -0
- package/packages/kernel/controller/ports/controller-host.ts +16 -0
- package/packages/kernel/goal/api/index.ts +1 -0
- package/packages/kernel/goal/domain/types.ts +40 -0
- package/packages/kernel/goal/index.ts +1 -0
- package/packages/kernel/identity/api/index.ts +5 -0
- package/packages/kernel/identity/application/identity-service.ts +67 -0
- package/packages/kernel/identity/domain/scope.ts +63 -0
- package/packages/kernel/identity/domain/semantic-sync.ts +81 -0
- package/packages/kernel/identity/domain/types.ts +44 -0
- package/packages/kernel/identity/domain/workspace.ts +56 -0
- package/packages/kernel/identity/index.ts +1 -0
- package/packages/kernel/identity/infrastructure/identity-store.ts +75 -0
- package/packages/kernel/memory/api/index.ts +5 -0
- package/packages/kernel/memory/application/experience-service.ts +118 -0
- package/packages/kernel/memory/application/outcome-service.ts +77 -0
- package/packages/kernel/memory/domain/experience.ts +103 -0
- package/packages/kernel/memory/domain/operational-prior.ts +92 -0
- package/packages/kernel/memory/index.ts +1 -0
- package/packages/kernel/progression/api/index.ts +2 -0
- package/packages/kernel/progression/application/projector.ts +211 -0
- package/packages/kernel/progression/domain/types.ts +116 -0
- package/packages/kernel/progression/index.ts +1 -0
- package/packages/kernel/scheduler/api/index.ts +6 -0
- package/packages/kernel/scheduler/application/continuation-service.ts +212 -0
- package/packages/kernel/scheduler/application/eligibility.ts +252 -0
- package/packages/kernel/scheduler/application/schedule-service.ts +24 -0
- package/packages/kernel/scheduler/application/settlement.ts +197 -0
- package/packages/kernel/scheduler/domain/continuation.ts +38 -0
- package/packages/kernel/scheduler/domain/schedule.ts +149 -0
- package/packages/kernel/scheduler/index.ts +1 -0
- package/packages/kernel/scheduler/infrastructure/continuation-dispatch-store.ts +38 -0
- package/packages/kernel/scheduler/infrastructure/schedule-store.ts +785 -0
- package/packages/kernel/work/api/index.ts +15 -0
- package/packages/kernel/work/application/work-service.ts +148 -0
- package/packages/kernel/work/domain/admission-policy.ts +34 -0
- package/packages/kernel/work/domain/check-receipt.ts +43 -0
- package/packages/kernel/work/domain/context-closure-receipt.ts +32 -0
- package/packages/kernel/work/domain/engineering-contracts.ts +157 -0
- package/packages/kernel/work/domain/engineering-design.ts +281 -0
- package/packages/kernel/work/domain/engineering-profile.ts +242 -0
- package/packages/kernel/work/domain/execution-concurrency.ts +254 -0
- package/packages/kernel/work/domain/execution-snapshot.ts +33 -0
- package/packages/kernel/work/domain/implementation-review.ts +510 -0
- package/packages/kernel/work/domain/project-engineering-contract.ts +202 -0
- package/packages/kernel/work/domain/repository-completion-receipt.ts +73 -0
- package/packages/kernel/work/domain/state-machine.ts +259 -0
- package/packages/kernel/work/domain/types.ts +528 -0
- package/packages/kernel/work/index.ts +1 -0
- package/packages/kernel/work/infrastructure/work-contract-store.ts +1876 -0
- package/packages/kernel/work/ports/work-contract-store.ts +18 -0
- package/packages/plugin-runtime/browser/index.ts +3 -0
- package/packages/plugin-runtime/browser/provider-registry.ts +110 -0
- package/packages/plugin-runtime/browser/runtime-contract.ts +150 -0
- package/packages/plugin-runtime/browser/session-authority.ts +61 -0
- package/packages/plugin-runtime/computer/index.ts +6 -0
- package/packages/plugin-runtime/computer/provider-error.ts +26 -0
- package/packages/plugin-runtime/computer/provider-registration.ts +52 -0
- package/packages/plugin-runtime/computer/provider-registry.ts +63 -0
- package/packages/plugin-runtime/computer/provider.ts +19 -0
- package/packages/plugin-runtime/computer/target-authority.ts +190 -0
- package/packages/plugin-runtime/computer/target-persistence.ts +54 -0
- package/packages/plugin-runtime/external/index.ts +1 -0
- package/packages/plugin-runtime/external/unix-jsonl-transport.ts +457 -0
- package/packages/plugin-runtime/index.ts +3 -0
- package/packages/protocols/browser/index.ts +1 -0
- package/packages/protocols/browser/session.ts +98 -0
- package/packages/protocols/computer/contract.ts +199 -0
- package/packages/protocols/computer/index.ts +1 -0
- package/packages/protocols/failure/contract.ts +158 -0
- package/packages/protocols/failure/index.ts +1 -0
- package/packages/protocols/handoff/index.ts +1 -0
- package/packages/protocols/handoff/status.ts +22 -0
- package/packages/protocols/mcp/execution-context.ts +11 -0
- package/packages/protocols/mcp/index.ts +2 -0
- package/packages/protocols/mcp/tool-contract.ts +42 -0
- package/packages/workflow-runtime/api/index.ts +2 -0
- package/packages/workflow-runtime/application/interpreter.ts +342 -0
- package/packages/workflow-runtime/domain/workflow-asset.ts +223 -0
- package/packages/workflow-runtime/index.ts +1 -0
- package/scripts/assemble-template.ts +1 -1
- package/scripts/benchmark-computer-hotpath.ts +255 -0
- package/scripts/benchmark-controller-round2.ts +54 -2
- package/scripts/benchmark-ios-agent-device.ts +3 -6
- package/scripts/benchmark-mcp-transport.ts +3 -4
- package/scripts/benchmark-operational-memory-activation.ts +235 -0
- package/scripts/benchmark-operational-shadow.ts +28 -0
- package/scripts/bootstrap-runtime-maintenance-recovery.sh +4 -1
- package/scripts/canary-chatgpt-provider-delivery.ts +97 -0
- package/scripts/canary-controller-semantic-wait.ts +195 -0
- package/scripts/canary-global-hook.sh +2 -2
- package/scripts/check-mcp-compatibility.ts +173 -7
- package/scripts/check-platform-support.mjs +28 -2
- package/scripts/check-public-docs.sh +1 -1
- package/scripts/check-release-readiness.sh +1 -1
- package/scripts/check-repository-hygiene.mjs +92 -0
- package/scripts/check-runtime-architecture.mjs +1206 -95
- package/scripts/check-source-duplication.mjs +9 -1
- package/scripts/check-tarball-install-smoke.sh +98 -15
- package/scripts/controller-ngrok-rotation.sh +5 -4
- package/scripts/create-project-dirs.sh +10 -74
- package/scripts/forge-local-recovery-helper.mjs +204 -0
- package/scripts/forge-uu-remote-rescue-helper.d.mts +31 -0
- package/scripts/forge-uu-remote-rescue-helper.mjs +409 -0
- package/scripts/forge-windows-host-recovery-helper.mjs +136 -0
- package/scripts/hook-shim.sh +2 -2
- package/scripts/init-project.sh +12 -70
- package/scripts/install-desktop-operator-registration.ts +4 -2
- package/scripts/install-independent-windows-wsl-recovery.ts +125 -0
- package/scripts/install-standalone-recovery.ts +122 -10
- package/scripts/install-uu-remote-rescue-registration.ts +74 -0
- package/scripts/install-windows-host-recovery-registration.ts +22 -0
- package/scripts/lib/controller-home-env.sh +6 -3
- package/scripts/lib/project-init-lib.sh +39 -582
- package/scripts/migrate-chatgpt-automation-schedules.ts +2 -2
- package/scripts/migrate-windows-wsl-controller-home.ts +306 -0
- package/scripts/open-source-audit-allowlist.txt +12 -1
- package/scripts/portability-bindings.mjs +70 -0
- package/scripts/run-bounded-command.mjs +55 -0
- package/scripts/run-bun-test-file.ts +22 -6
- package/scripts/run-governed-gate.ts +4 -1
- package/scripts/smoke-mcp-http-runtime.ts +1 -1
- package/scripts/smoke-runtime-recovery.ts +34 -1
- package/scripts/smoke-schedule-engine.ts +1 -1
- package/scripts/stage-runtime-release.ts +6 -1
- package/scripts/test-governance.ts +51 -2
- package/src/cli/agent-jobs/job-manager.ts +10 -1
- package/src/cli/chatgpt-browser/bind-server.ts +2 -1
- package/src/cli/chatgpt-browser/binding.ts +20 -10
- package/src/cli/chatgpt-browser/bridge-extension.ts +75 -0
- package/src/cli/chatgpt-browser/bridge-provider.ts +376 -11
- package/src/cli/chatgpt-browser/engine.ts +10 -11
- package/src/cli/chatgpt-browser/native-provider.ts +24 -83
- package/src/cli/chatgpt-browser/oracle-provider.ts +5 -3
- package/src/cli/chatgpt-browser/types.ts +1 -0
- package/src/cli/commands/bootstrap-control.ts +334 -0
- package/src/cli/commands/brain-assistant.ts +38 -0
- package/src/cli/commands/brain.ts +193 -40
- package/src/cli/commands/chatgpt.ts +127 -0
- package/src/cli/commands/computer.ts +437 -0
- package/src/cli/commands/doctor.ts +18 -1
- package/src/cli/commands/init-hook.ts +71 -61
- package/src/cli/commands/init.ts +3 -1
- package/src/cli/commands/mcp.ts +16 -10
- package/src/cli/commands/plugin.ts +38 -12
- package/src/cli/commands/recovery.ts +493 -80
- package/src/cli/commands/runtime.ts +9 -4
- package/src/cli/commands/setup-profile.ts +89 -39
- package/src/cli/commands/status.ts +2 -1
- package/src/cli/controller/check-runner.ts +487 -98
- package/src/cli/controller/context/types.ts +7 -1
- package/src/cli/controller/context-pack.ts +23 -3
- package/src/cli/controller/issue-store.ts +1 -1
- package/src/cli/controller/systemd-user.ts +110 -0
- package/src/cli/controller/types.ts +10 -70
- package/src/cli/controller/worklog.ts +67 -13
- package/src/cli/editing/edit-operation-contract.ts +92 -0
- package/src/cli/editing/edit-session.ts +289 -13
- package/src/cli/github/plugin.ts +17 -12
- package/src/cli/hook/route-registry.ts +3 -5
- package/src/cli/hook/runtime.ts +49 -3
- package/src/cli/index.ts +3 -0
- package/src/cli/local-bridge/connector-freshness.ts +2 -2
- package/src/cli/local-bridge/console-automations.ts +2 -2
- package/src/cli/local-bridge/facade-api.ts +41 -14
- package/src/cli/local-bridge/job-store.ts +1 -1
- package/src/cli/local-bridge/server.ts +24 -27
- package/src/cli/mcp/access-mode.ts +2 -132
- package/src/cli/mcp/access-tools.ts +2 -387
- package/src/cli/mcp/audit.ts +2 -32
- package/src/cli/mcp/auth.ts +2 -404
- package/src/cli/mcp/instructions.ts +2 -34
- package/src/cli/mcp/legacy-context.ts +2 -16
- package/src/cli/mcp/legacy-tool-service.ts +2 -5308
- package/src/cli/mcp/multi-repository.ts +2 -436
- package/src/cli/mcp/oauth.ts +2 -375
- package/src/cli/mcp/openai-secure-tunnel.ts +2 -0
- package/src/cli/mcp/paths.ts +2 -140
- package/src/cli/mcp/policy.ts +2 -232
- package/src/cli/mcp/post-finalize-work-attribution.ts +2 -150
- package/src/cli/mcp/proxy-env.ts +2 -62
- package/src/cli/mcp/readiness-projection.ts +2 -24
- package/src/cli/mcp/redaction.ts +2 -21
- package/src/cli/mcp/repo.ts +2 -24
- package/src/cli/mcp/repository-tools.ts +2 -1585
- package/src/cli/mcp/server.ts +2 -951
- package/src/cli/mcp/setup.ts +2 -737
- package/src/cli/mcp/tool-capability-cache.ts +2 -87
- package/src/cli/mcp/tool-contract.ts +2 -14
- package/src/cli/mcp/tools.ts +2 -9
- package/src/cli/mcp/toolset-names.ts +2 -70
- package/src/cli/mcp/toolset-selection.ts +2 -41
- package/src/cli/mcp/toolset.ts +2 -336
- package/src/cli/mcp/transports/AGENTS.md +1 -10
- package/src/cli/mcp/transports/CLAUDE.md +1 -10
- package/src/cli/mcp/transports/http.ts +2 -1414
- package/src/cli/mcp/transports/session-registry.ts +2 -490
- package/src/cli/mcp/transports/stdio.ts +2 -8
- package/src/cli/mcp/types.ts +2 -41
- package/src/cli/mcp/umbrella-tools.ts +2 -117
- package/src/cli/repositories/command-executor.ts +64 -18
- package/src/cli/repositories/command-scope.ts +117 -1
- package/src/cli/repositories/controller-home.ts +119 -1
- package/src/cli/repositories/identity.ts +13 -0
- package/src/cli/repositories/registry.ts +68 -49
- package/src/cli/repositories/repository-snapshot.ts +53 -7
- package/src/cli/repositories/runtime-storage.ts +27 -2
- package/src/cli/repositories/safe-patch.ts +34 -38
- package/src/cli/repositories/selected-path-actions.ts +22 -2
- package/src/cli/repositories/structured-git.ts +105 -25
- package/src/cli/runtime/helper-runner.ts +7 -0
- package/src/cli/runtime-invocation.ts +8 -1
- package/src/cli/tools/codegraph.ts +44 -25
- package/src/core/adoption/manifest-templates.ts +1 -1
- package/src/core/adoption/plan.ts +3 -26
- package/src/core/adoption/workflow-contract-plan.ts +17 -9
- package/src/effects/process-runner.ts +8 -14
- package/src/runtime/context/assistant-context.ts +154 -0
- package/src/runtime/context/assistant-work-context.ts +147 -0
- package/src/runtime/context/codegraph-cache-boundary.ts +255 -0
- package/src/runtime/context/codegraph-read-provider.ts +55 -22
- package/src/runtime/context/codegraph-sidecar.cjs +8 -1
- package/src/runtime/context/context-closure.ts +268 -0
- package/src/runtime/context/context-plane.ts +211 -0
- package/src/runtime/context/project-engineering-contract.ts +60 -0
- package/src/runtime/control-plane/bootstrap/capability-provider.ts +74 -0
- package/src/runtime/control-plane/bootstrap/control-api.ts +57 -0
- package/src/runtime/control-plane/bootstrap/index.ts +5 -0
- package/src/runtime/control-plane/bootstrap/state-machine.ts +141 -0
- package/src/runtime/control-plane/bootstrap/store.ts +21 -0
- package/src/runtime/control-plane/bootstrap/types.ts +87 -0
- package/src/runtime/control-plane/cleanup-artifact-retention.ts +328 -0
- package/src/runtime/control-plane/codegraph-cache-retention.ts +164 -0
- package/src/runtime/control-plane/concurrency/work-execution-concurrency.ts +320 -0
- package/src/runtime/control-plane/execution/content-equivalent-commit-authority.ts +169 -0
- package/src/runtime/control-plane/execution/controller-authority-recovery.ts +350 -0
- package/src/runtime/control-plane/execution/direct-canonical-work-reconciliation.ts +85 -0
- package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +417 -100
- package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +103 -15
- package/src/runtime/control-plane/execution/implementation-review-content.ts +95 -0
- package/src/runtime/control-plane/execution/repository-work-attribution.ts +2 -2
- package/src/runtime/control-plane/execution/retained-work-resume.ts +336 -6
- package/src/runtime/control-plane/execution/validation.ts +28 -3
- package/src/runtime/control-plane/execution/work-authority-reconciler.ts +116 -0
- package/src/runtime/control-plane/execution/work-completion-authority.ts +44 -2
- package/src/runtime/control-plane/execution/work-evidence-policy.ts +34 -3
- package/src/runtime/control-plane/execution/work-execution-support.ts +42 -22
- package/src/runtime/control-plane/execution/work-finalization-service.ts +1103 -166
- package/src/runtime/control-plane/execution/work-handle-authority.ts +267 -16
- package/src/runtime/control-plane/execution/work-handle-store.ts +77 -0
- package/src/runtime/control-plane/execution/work-head-settlement.ts +75 -0
- package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +145 -23
- package/src/runtime/control-plane/execution/work-operation-service.ts +49 -13
- package/src/runtime/control-plane/execution/work-preparation-service.ts +31 -15
- package/src/runtime/control-plane/execution/work-remote-delivery.ts +1 -1
- package/src/runtime/control-plane/execution/work-task-receipt.ts +20 -1
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +407 -76
- package/src/runtime/control-plane/execution/work-validation-reconciler.ts +88 -18
- package/src/runtime/control-plane/execution/work-verification-context.ts +1 -1
- package/src/runtime/control-plane/execution/work-verification-service.ts +258 -4
- package/src/runtime/control-plane/execution/work-verification-snapshot.ts +200 -15
- package/src/runtime/control-plane/facade/capability-registry.ts +21 -10
- package/src/runtime/control-plane/facade/controller-round-relay.ts +3 -1118
- package/src/runtime/control-plane/facade/controller-session-store.ts +2 -488
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +6 -3
- package/src/runtime/control-plane/facade/goal-workloop.ts +972 -137
- package/src/runtime/control-plane/facade/handoff-inbox-application.ts +158 -0
- package/src/runtime/control-plane/facade/handoff-inbox-store.ts +10 -0
- package/src/runtime/control-plane/facade/index.ts +4 -2
- package/src/runtime/control-plane/facade/operation-digest.ts +22 -58
- package/src/runtime/control-plane/facade/plan-contract-store.ts +1004 -38
- package/src/runtime/control-plane/facade/repository-work-admission.ts +19 -1
- package/src/runtime/control-plane/facade/requirement-authority.ts +218 -0
- package/src/runtime/control-plane/facade/requirement-board.ts +6 -1
- package/src/runtime/control-plane/facade/rh-work-operation-contract.ts +48 -0
- package/src/runtime/control-plane/facade/semantic-admission.ts +8 -16
- package/src/runtime/control-plane/facade/suggested-actions.ts +4 -1
- package/src/runtime/control-plane/facade/types.ts +189 -532
- package/src/runtime/control-plane/facade/work-admission-policy.ts +84 -35
- package/src/runtime/control-plane/facade/work-contract-store.ts +2 -1043
- package/src/runtime/control-plane/facade/work-implementation-review.ts +2 -0
- package/src/runtime/control-plane/facade/work-state-machine.ts +2 -250
- package/src/runtime/control-plane/generated-cache-retention.ts +239 -18
- package/src/runtime/control-plane/global-scheduler/durable-admission.ts +12 -1
- package/src/runtime/control-plane/global-scheduler/maintenance.ts +76 -13
- package/src/runtime/control-plane/global-scheduler/periodic-cleanup-entry.ts +55 -0
- package/src/runtime/control-plane/global-scheduler/periodic-cleanup-process.ts +98 -0
- package/src/runtime/control-plane/global-scheduler/reconciliation.ts +1 -1
- package/src/runtime/control-plane/global-scheduler/scheduler-worker-entry.ts +10 -0
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +173 -81
- package/src/runtime/control-plane/global-scheduler/worker-launch.ts +18 -6
- package/src/runtime/control-plane/launcher/chatgpt-round-continuation.ts +397 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +2 -177
- package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +301 -560
- package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +20 -4
- package/src/runtime/control-plane/launcher/thin-launcher.ts +50 -4
- package/src/runtime/control-plane/lifecycle-retention-metrics.ts +60 -0
- package/src/runtime/control-plane/persistence/experience-store.ts +169 -0
- package/src/runtime/control-plane/persistence/operational-prior-store.ts +348 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +30 -22
- package/src/runtime/control-plane/persistence/sqlite-store.ts +545 -76
- package/src/runtime/control-plane/persistence/workflow-content-store.ts +98 -0
- package/src/runtime/control-plane/persistence/workflow-registry-store.ts +186 -0
- package/src/runtime/control-plane/persistence/workflow-run-store.ts +123 -0
- package/src/runtime/control-plane/release-retention.ts +56 -16
- package/src/runtime/control-plane/repository-namespace-retention.ts +208 -0
- package/src/runtime/control-plane/routing/route-policy.ts +19 -0
- package/src/runtime/control-plane/runtime-cleanup.ts +574 -37
- package/src/runtime/control-plane/runtime-generation.ts +6 -0
- package/src/runtime/control-plane/workspace/semantic-sync-service.ts +465 -0
- package/src/runtime/control-plane/workspace/workspace-store.ts +80 -0
- package/src/runtime/diagnostics/incident-repair.ts +406 -0
- package/src/runtime/diagnostics/mcp-timing.ts +125 -6
- package/src/runtime/diagnostics/performance.ts +6 -14
- package/src/runtime/diagnostics/read-only-tool.ts +1 -1
- package/src/runtime/evidence/artifact-store.ts +65 -2
- package/src/runtime/evidence/operational-shadow.ts +38 -0
- package/src/runtime/evidence/process-check-receipt.ts +5 -43
- package/src/runtime/evidence/sensitive-output.ts +4 -4
- package/src/runtime/execution/jobs/receipt-recovery.ts +1 -1
- package/src/runtime/execution/jobs/store.ts +121 -2
- package/src/runtime/execution/managed-workspace.ts +55 -5
- package/src/runtime/execution/process-runtime/canary.ts +19 -5
- package/src/runtime/execution/process-runtime/check-classification.ts +48 -0
- package/src/runtime/execution/process-runtime/check-facade.ts +23 -9
- package/src/runtime/execution/process-runtime/check-receipt.ts +1 -1
- package/src/runtime/execution/process-runtime/check-result-retention.ts +132 -0
- package/src/runtime/execution/process-runtime/check-result.ts +73 -2
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +42 -3
- package/src/runtime/execution/process-runtime/check-storage.ts +187 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +38 -87
- package/src/runtime/execution/process-runtime/index.ts +1 -0
- package/src/runtime/execution/process-runtime/interactive-admission.ts +2 -1
- package/src/runtime/execution/process-runtime/lightweight-managed.ts +32 -1
- package/src/runtime/execution/process-runtime/persisted-check.ts +128 -21
- package/src/runtime/execution/process-runtime/resource-claims.ts +60 -3
- package/src/runtime/execution/process-runtime/runtime.ts +132 -15
- package/src/runtime/execution/process-runtime/types.ts +22 -0
- package/src/runtime/execution/workers/executor.ts +16 -13
- package/src/runtime/execution/workers/worker-entry.ts +1 -1
- package/src/runtime/gateway/mcp/execution-tools.ts +2 -207
- package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +2 -61
- package/src/runtime/gateway/mcp/persisted-check-process.ts +2 -3
- package/src/runtime/gateway/mcp/process-tools.ts +2 -289
- package/src/runtime/gateway/mcp/router.ts +2 -1125
- package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +2 -565
- package/src/runtime/gateway/mcp/runtime-tools.ts +2 -6651
- package/src/runtime/gateway/mcp/work-validation-reconciler.ts +2 -1
- package/src/runtime/maintenance/cleanup.ts +38 -24
- package/src/runtime/platform/browser-product-discovery.ts +174 -0
- package/src/runtime/platform/computer-platform.ts +14 -0
- package/src/runtime/platform/executable-discovery.ts +54 -0
- package/src/runtime/platform/fetch-http-server.ts +90 -0
- package/src/runtime/platform/service-manager.ts +138 -0
- package/src/runtime/platform/windows-host-discovery.ts +118 -0
- package/src/runtime/platform/windows-recovery-deployment.ts +67 -0
- package/src/runtime/plugins/action-application.ts +135 -0
- package/src/runtime/plugins/app-store-connect-adapter.ts +9 -21
- package/src/runtime/plugins/browser-adapter.ts +140 -100
- package/src/runtime/plugins/browser-automation-service.ts +15 -36
- package/src/runtime/plugins/browser-macos-bridge.ts +69 -21
- package/src/runtime/plugins/browser-manifest-surface.ts +30 -6
- package/src/runtime/plugins/browser-native-session-service.ts +1 -1
- package/src/runtime/plugins/browser-provider-registry.ts +2 -109
- package/src/runtime/plugins/browser-registration.ts +16 -0
- package/src/runtime/plugins/browser-runtime-contract.ts +2 -154
- package/src/runtime/plugins/browser-runtime.ts +41 -9
- package/src/runtime/plugins/browser-session-authority.ts +101 -291
- package/src/runtime/plugins/browser-session-legacy-migration.ts +203 -0
- package/src/runtime/plugins/browser-session-store.ts +229 -36
- package/src/runtime/plugins/browser-session-types.ts +2 -98
- package/src/runtime/plugins/capability-authorization-grants.ts +17 -0
- package/src/runtime/plugins/catalog-trust.ts +82 -0
- package/src/runtime/plugins/computer-registration.ts +839 -0
- package/src/runtime/plugins/config-store.ts +119 -0
- package/src/runtime/plugins/desktop-operator-external-policy.ts +932 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +111 -8
- package/src/runtime/plugins/errors.ts +8 -1
- package/src/runtime/plugins/external-adapter.ts +45 -322
- package/src/runtime/plugins/external-provider-policy.ts +48 -0
- package/src/runtime/plugins/external-registration.ts +9 -1
- package/src/runtime/plugins/external-unix-socket-probe.cjs +9 -3
- package/src/runtime/plugins/external-unix-socket.ts +64 -193
- package/src/runtime/plugins/first-party-external-registration.ts +163 -0
- package/src/runtime/plugins/first-party-registry.ts +3 -1
- package/src/runtime/plugins/github-adapter.ts +1 -2
- package/src/runtime/plugins/gmail-adapter.ts +6 -6
- package/src/runtime/plugins/google-calendar-adapter.ts +6 -6
- package/src/runtime/plugins/google-shared.ts +31 -46
- package/src/runtime/plugins/google-tasks-adapter.ts +6 -6
- package/src/runtime/plugins/ios-adapter.ts +1 -2
- package/src/runtime/plugins/local-system-adapter.ts +180 -0
- package/src/runtime/plugins/macos-capability-broker.ts +15 -105
- package/src/runtime/plugins/resend-adapter.ts +15 -24
- package/src/runtime/plugins/store.ts +493 -51
- package/src/runtime/plugins/types.ts +8 -1
- package/src/runtime/plugins/uu-remote-rescue-registration.ts +155 -0
- package/src/runtime/plugins/windows-host-recovery-install.ts +68 -0
- package/src/runtime/plugins/windows-host-recovery-registration.ts +85 -0
- package/src/runtime/plugins/xiaohongshu-publish.ts +86 -430
- package/src/runtime/projections/controller-context.ts +12 -6
- package/src/runtime/projections/git-status-sampler.ts +73 -22
- package/src/runtime/projections/materialized-view.ts +14 -8
- package/src/runtime/recovery/capability-action-application.ts +228 -0
- package/src/runtime/recovery/index.ts +3 -0
- package/src/runtime/recovery/lifecycle-inventory.ts +338 -0
- package/src/runtime/recovery/local-jobs-repair.ts +14 -14
- package/src/runtime/recovery/maintenance-executor.ts +358 -76
- package/src/runtime/recovery/quarantine-retention.ts +256 -0
- package/src/runtime/release/identity.ts +6 -0
- package/src/runtime/resources/leases/store.ts +1 -1
- package/src/runtime/root/active-execution-power-assertion.ts +139 -0
- package/src/runtime/root/assistant-learning-loop.ts +45 -0
- package/src/runtime/root/browser-session-composition.ts +59 -0
- package/src/runtime/root/computer-composition.ts +191 -0
- package/src/runtime/root/computer-target-composition.ts +16 -0
- package/src/runtime/root/computer-target-persistence.ts +39 -0
- package/src/runtime/root/controller-round-composition.ts +107 -0
- package/src/runtime/root/controller-services.ts +2 -0
- package/src/runtime/root/entry.ts +4 -3
- package/src/runtime/root/gateway-adapter.ts +3 -3
- package/src/runtime/root/local-bridge.ts +5 -2
- package/src/runtime/root/mcp-transport.ts +5 -5
- package/src/runtime/root/package-connector-service.ts +108 -56
- package/src/runtime/root/package-runtime-release.ts +86 -18
- package/src/runtime/root/package-runtime-service.ts +63 -86
- package/src/runtime/root/release-execution-canary.ts +71 -0
- package/src/runtime/root/release-loader.ts +68 -0
- package/src/runtime/root/release-manifest.ts +106 -2
- package/src/runtime/root/release-materialize.ts +103 -4
- package/src/runtime/root/release-store.ts +31 -2
- package/src/runtime/root/runtime.ts +240 -25
- package/src/runtime/root/scheduled-controller-composition.ts +51 -0
- package/src/runtime/root/scheduler.ts +12 -4
- package/src/runtime/root/service-runner.ts +1 -1
- package/src/runtime/root/service.ts +41 -16
- package/src/runtime/root/status.ts +1 -0
- package/src/runtime/root/types.ts +24 -1
- package/src/runtime/shared/local-bridge-surface.ts +1 -1
- package/src/runtime/shared/process-environment.ts +19 -4
- package/src/runtime/shared/storage-capacity.ts +68 -0
- package/src/runtime/standalone-recovery/controller-home-migration.ts +1116 -0
- package/src/runtime/standalone-recovery/core.ts +984 -230
- package/src/runtime/standalone-recovery/entry.ts +182 -51
- package/src/runtime/standalone-recovery/independent-host-rescue.ts +172 -0
- package/src/runtime/standalone-recovery/installer.ts +212 -104
- package/src/runtime/standalone-recovery/mcp-server.ts +243 -0
- package/src/runtime/standalone-recovery/mutation-identity-contract.ts +21 -0
- package/src/runtime/standalone-recovery/operation-lock.ts +160 -0
- package/src/runtime/standalone-recovery/performance.ts +135 -0
- package/src/runtime/standalone-recovery/release.ts +5 -0
- package/src/runtime/watchdog/workflow-watchdog.ts +1 -1
- package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +1 -1
- package/src/runtime/workflow/schedules/engine.ts +191 -343
- package/src/runtime/workflow/schedules/pending-activation.ts +1 -1
- package/src/runtime/workflow/schedules/settlement.ts +2 -191
- package/src/runtime/workflow/schedules/store.ts +2 -607
- package/src/runtime/workflow/schedules/types.ts +2 -127
- package/src/runtime/workflow/schedules/work-continuation.ts +180 -15
- package/src/runtime/workflows/first-party/xiaohongshu.ts +122 -0
- package/src/runtime/workflows/runtime.ts +486 -0
- package/src/testing/test-governance.ts +90 -29
- package/assets/templates/helpers/archive-architecture-request.sh +0 -244
- package/docs/architecture/history/README.md +0 -7
- package/docs/architecture/history/chatgpt-handoff-facade.md +0 -397
- package/docs/architecture/history/global-hook-runtime.md +0 -166
- package/docs/architecture/history/ios-semantic-automation-provider-v2.md +0 -170
- package/docs/architecture/requests/archive/2026/20260528-154740-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-154816-assets-hooks-assets-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161851-ai-harness-workflow-contract-json-ai-harness-workflow-contract-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161853-scripts-check-task-workflow-sh-scripts-check-task-workflow-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161911-assets-workflow-contract-v1-json-assets-workflow-contract-v1-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222416-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222444-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222457-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222648-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222705-ai-hooks-ai-hooks-worktree-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222726-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222727-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-224736-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233259-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233335-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233456-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233457-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233637-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233638-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-000322-root-package-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-004238-ai-hooks-ai-hooks-lib-workflow-state-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-020654-ai-harness-policy-json-ai-harness-policy-json.md +0 -63
- package/docs/architecture/requests/archive/2026/20260529-094236-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094323-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094331-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094339-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094430-assets-hooks-assets-hooks-session-start-context-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094446-ai-hooks-ai-hooks-session-start-context-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260613-002040-runtime-harness-hook-adapters.md +0 -68
- package/docs/architecture/requests/archive/2026/root.md +0 -68
- package/docs/architecture/requests/archive/2026/runtime-harness-hook-adapters.md +0 -76
- package/docs/architecture/requests/archive/2026/verification-evals-checks.md +0 -68
- package/docs/architecture/requests/archive/2026/workflow-engine-contract-assets.md +0 -69
- package/scripts/archive-architecture-request.sh +0 -4
- package/scripts/run-skill-evals.ts +0 -1022
|
@@ -1,10 +1,35 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type {
|
|
2
|
+
WorkContract,
|
|
3
|
+
VerificationOutcome,
|
|
4
|
+
ExecutionMode,
|
|
5
|
+
FacadeDetailLevel,
|
|
6
|
+
EvidenceRef,
|
|
7
|
+
SuggestedNextAction,
|
|
8
|
+
PolicyDecision,
|
|
9
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
10
|
+
export type {
|
|
11
|
+
ExecutionMode,
|
|
12
|
+
FacadeDetailLevel,
|
|
13
|
+
EvidenceRef,
|
|
14
|
+
SuggestedNextAction,
|
|
15
|
+
PolicyDecision,
|
|
16
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
17
|
+
import { applyRouteContextHints, decideRoute, type ExplicitTaskMode, type RouteContextHints, type RouteDecision, type RoutePolicyInput } from '../routing/route-policy';
|
|
18
|
+
import {
|
|
19
|
+
TERMINAL_PLAN_CONTRACT_STATUSES,
|
|
20
|
+
type PlanContractStatus,
|
|
21
|
+
type PlanStepStatus,
|
|
22
|
+
} from '../../../../packages/kernel/goal/api/index';
|
|
23
|
+
export {
|
|
24
|
+
PLAN_CONTRACT_STATUSES,
|
|
25
|
+
TERMINAL_PLAN_CONTRACT_STATUSES,
|
|
26
|
+
PLAN_STEP_STATUSES,
|
|
27
|
+
type PlanContractStatus,
|
|
28
|
+
type PlanStepStatus,
|
|
29
|
+
} from '../../../../packages/kernel/goal/api/index';
|
|
5
30
|
|
|
6
31
|
export const EXECUTION_MODES = ['direct_control', 'goal_workloop', 'handoff_only'] as const;
|
|
7
|
-
|
|
32
|
+
const _executionModesTypeCheck: readonly ExecutionMode[] = EXECUTION_MODES;
|
|
8
33
|
|
|
9
34
|
export const FACADE_TOOLS = ['rh_access', 'rh_status', 'rh_inbox', 'rh_context', 'rh_work'] as const;
|
|
10
35
|
export type FacadeTool = (typeof FACADE_TOOLS)[number];
|
|
@@ -13,7 +38,6 @@ export type CapabilityExecutionSurface = FacadeTool | 'plugin_action_execute';
|
|
|
13
38
|
export const FACADE_STATUSES = ['ok', 'blocked', 'failed', 'approval_required', 'not_found'] as const;
|
|
14
39
|
export type FacadeStatus = (typeof FACADE_STATUSES)[number];
|
|
15
40
|
|
|
16
|
-
export type FacadeDetailLevel = 'summary' | 'detail' | 'raw';
|
|
17
41
|
|
|
18
42
|
export const CAPABILITY_DOMAINS = ['repository', 'plugin', 'controller', 'evidence', 'maintenance'] as const;
|
|
19
43
|
export type CapabilityDomain = (typeof CAPABILITY_DOMAINS)[number];
|
|
@@ -55,236 +79,62 @@ export type PolicyDecisionKind = (typeof POLICY_DECISIONS)[number];
|
|
|
55
79
|
export const HANDOFF_SEVERITIES = ['info', 'needs_review', 'blocked', 'failed', 'ready_to_continue'] as const;
|
|
56
80
|
export type HandoffSeverity = (typeof HANDOFF_SEVERITIES)[number];
|
|
57
81
|
|
|
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
|
-
|
|
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
|
-
|
|
82
|
+
export { HANDOFF_STATUSES, TERMINAL_HANDOFF_STATUSES, isTerminalHandoffStatus, type HandoffStatus } from '../../../../packages/protocols/handoff/index';
|
|
83
|
+
import type { HandoffStatus } from '../../../../packages/protocols/handoff/index';
|
|
84
|
+
|
|
85
|
+
// Kernel V2: Work domain contracts are owned by packages/kernel/work/domain.
|
|
86
|
+
export {
|
|
87
|
+
WORK_CONTRACT_STATUSES,
|
|
88
|
+
WORK_PHASES,
|
|
89
|
+
WORK_PHASE_EVIDENCE_STATES,
|
|
90
|
+
WORK_RISKS,
|
|
91
|
+
TERMINAL_WORK_CONTRACT_STATUSES,
|
|
92
|
+
WORK_KINDS,
|
|
93
|
+
DISPATCH_STATES,
|
|
94
|
+
EVIDENCE_STATES,
|
|
95
|
+
COMPLETION_OUTCOMES,
|
|
96
|
+
WORK_RECONCILIATION_METHODS,
|
|
97
|
+
WORK_RECONCILIATION_OUTCOMES,
|
|
98
|
+
VERIFICATION_OUTCOMES,
|
|
99
|
+
isRepositoryCompletionReceipt,
|
|
100
|
+
isReadOnlyReviewCompletionReceipt,
|
|
101
|
+
isRemoteEffectCompletionReceipt,
|
|
102
|
+
isDirectEditWorkCompletionReceipt,
|
|
103
|
+
isTerminalWorkContractStatus,
|
|
104
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
105
|
+
export type {
|
|
106
|
+
WorkContractStatus,
|
|
107
|
+
WorkPhase,
|
|
108
|
+
WorkPhaseEvidenceState,
|
|
109
|
+
WorkPhaseEvidence,
|
|
110
|
+
WorkPhaseEvidenceMap,
|
|
111
|
+
WorkRisk,
|
|
112
|
+
WorkKind,
|
|
113
|
+
DispatchState,
|
|
114
|
+
EvidenceState,
|
|
115
|
+
CompletionOutcome,
|
|
116
|
+
ReadOnlyReviewEvidence,
|
|
117
|
+
WorkSemanticAcceptanceEvidence,
|
|
118
|
+
ReadOnlyReviewCompletionReceipt,
|
|
119
|
+
LocalEffectCompletionReceipt,
|
|
120
|
+
RemoteEffectCompletionReceipt,
|
|
121
|
+
DirectEditWorkCompletionReceipt,
|
|
122
|
+
WorkCompletionReceipt,
|
|
123
|
+
WorkReconciliationMethod,
|
|
124
|
+
WorkReconciliationOutcome,
|
|
125
|
+
VerificationOutcome,
|
|
126
|
+
WorkContractConstraints,
|
|
127
|
+
WorkContractDriverPolicy,
|
|
128
|
+
WorktreePolicy,
|
|
129
|
+
EvidencePolicy,
|
|
130
|
+
ApprovalPolicy,
|
|
131
|
+
RecoveryPolicy,
|
|
132
|
+
VerificationRecord,
|
|
133
|
+
WorkReconciliationRecord,
|
|
134
|
+
WorkContract,
|
|
135
|
+
SubmittedWorkOperation,
|
|
136
|
+
WorkContractStore,
|
|
137
|
+
} from '../../../../packages/kernel/work/domain/types';
|
|
288
138
|
export const HANDOFF_CREATION_REASONS = [
|
|
289
139
|
'policy_approval_required',
|
|
290
140
|
'ambiguous_outcome',
|
|
@@ -296,25 +146,6 @@ export const HANDOFF_CREATION_REASONS = [
|
|
|
296
146
|
] as const;
|
|
297
147
|
export type HandoffCreationReason = (typeof HANDOFF_CREATION_REASONS)[number];
|
|
298
148
|
|
|
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
149
|
export interface FacadeResult<TData = Record<string, unknown>> {
|
|
319
150
|
schemaVersion: 1;
|
|
320
151
|
status: FacadeStatus;
|
|
@@ -386,263 +217,15 @@ export interface HandoffInboxStore {
|
|
|
386
217
|
items: HandoffItem[];
|
|
387
218
|
}
|
|
388
219
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
accessMode?: AccessMode;
|
|
399
|
-
/** current is the stability-first default; isolated is opt-in or used for explicit parallelism. */
|
|
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;
|
|
502
|
-
objective: string;
|
|
503
|
-
acceptanceCriteria: string[];
|
|
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;
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
export interface ControllerSessionStore {
|
|
615
|
-
schemaVersion: 1;
|
|
616
|
-
updatedAt: string;
|
|
617
|
-
sessions: ControllerSession[];
|
|
618
|
-
}
|
|
619
|
-
|
|
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
|
-
|
|
220
|
+
// Kernel V2: Controller session contracts are owned by packages/kernel/controller/domain.
|
|
221
|
+
export type {
|
|
222
|
+
ControllerType,
|
|
223
|
+
ControllerSession,
|
|
224
|
+
ControllerSessionStore,
|
|
225
|
+
ControllerBinding,
|
|
226
|
+
ControllerLease,
|
|
227
|
+
ControllerRoundContext,
|
|
228
|
+
} from '../../../../packages/kernel/controller/domain/types';
|
|
646
229
|
export interface PlanStep {
|
|
647
230
|
id: string;
|
|
648
231
|
objective: string;
|
|
@@ -662,9 +245,86 @@ export interface PlanStep {
|
|
|
662
245
|
* A durable pre-execution decision record. WorkContract remains the unit that
|
|
663
246
|
* owns dispatch, workspace, worker, and verification lifecycle.
|
|
664
247
|
*/
|
|
248
|
+
export const PLAN_OBLIGATION_DISPOSITIONS = ['keep', 'change', 'defer', 'drop'] as const;
|
|
249
|
+
export type PlanObligationDispositionKind = (typeof PLAN_OBLIGATION_DISPOSITIONS)[number];
|
|
250
|
+
|
|
251
|
+
export interface PlanObligationDisposition {
|
|
252
|
+
predecessorPlanId: string;
|
|
253
|
+
obligationId: string;
|
|
254
|
+
disposition: PlanObligationDispositionKind;
|
|
255
|
+
/** Successor locations such as step:<id>, acceptance:<id>:<index>, resolved_decision:<index>. */
|
|
256
|
+
successorRefs: string[];
|
|
257
|
+
/** Required for CHANGE/DEFER/DROP. KEEP may omit it. */
|
|
258
|
+
rationale?: string;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Immutable provenance for one predecessor delivery that may be reused by a
|
|
263
|
+
* successor Plan after approval. The Work itself remains historical and bound
|
|
264
|
+
* to the predecessor Plan; this record never transfers execution authority.
|
|
265
|
+
*/
|
|
266
|
+
export interface PlanStepDeliveryCarry {
|
|
267
|
+
predecessorPlanId: string;
|
|
268
|
+
predecessorStepId: string;
|
|
269
|
+
successorStepId: string;
|
|
270
|
+
workId: string;
|
|
271
|
+
completionReceiptId: string;
|
|
272
|
+
deliveredSourceRevision: string;
|
|
273
|
+
recordedAt: string;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/** Mutable only until approval. A stable Plan may stage at most one next revision;
|
|
277
|
+
* the currently committed Plan fields remain authoritative until this draft is approved. */
|
|
278
|
+
export interface PlanRevisionDraft {
|
|
279
|
+
revision: number;
|
|
280
|
+
requestedRevisionLabel?: string;
|
|
281
|
+
sourceRevision: string;
|
|
282
|
+
goal: string;
|
|
283
|
+
nonGoals: string[];
|
|
284
|
+
assumptions: string[];
|
|
285
|
+
resolvedDecisions: string[];
|
|
286
|
+
stopConditions: string[];
|
|
287
|
+
replanConditions: string[];
|
|
288
|
+
integrationStrategy?: string;
|
|
289
|
+
steps: PlanStep[];
|
|
290
|
+
obligationDispositions?: PlanObligationDisposition[];
|
|
291
|
+
deliveryCarries?: PlanStepDeliveryCarry[];
|
|
292
|
+
createdAt: string;
|
|
293
|
+
updatedAt: string;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/** Immutable audit snapshot of one committed Plan revision. Historical revisions
|
|
297
|
+
* never own active scope, Work, scheduling, or admission authority. */
|
|
298
|
+
export interface PlanRevisionRecord {
|
|
299
|
+
schemaVersion: 1;
|
|
300
|
+
repoId: string;
|
|
301
|
+
planId: string;
|
|
302
|
+
revision: number;
|
|
303
|
+
requirementId?: string;
|
|
304
|
+
scopeKey: string;
|
|
305
|
+
sourceRevision: string;
|
|
306
|
+
goal: string;
|
|
307
|
+
nonGoals: string[];
|
|
308
|
+
assumptions: string[];
|
|
309
|
+
resolvedDecisions: string[];
|
|
310
|
+
stopConditions: string[];
|
|
311
|
+
replanConditions: string[];
|
|
312
|
+
integrationStrategy?: string;
|
|
313
|
+
status: PlanContractStatus;
|
|
314
|
+
steps: PlanStep[];
|
|
315
|
+
evidenceRefs: EvidenceRef[];
|
|
316
|
+
obligationDispositions?: PlanObligationDisposition[];
|
|
317
|
+
recordedAt: string;
|
|
318
|
+
reason?: string;
|
|
319
|
+
/** Compatibility label supplied by older successor-Plan clients. It is not a Plan identity. */
|
|
320
|
+
requestedRevisionLabel?: string;
|
|
321
|
+
}
|
|
322
|
+
|
|
665
323
|
export interface PlanContract {
|
|
666
324
|
schemaVersion: 1;
|
|
667
325
|
planId: string;
|
|
326
|
+
/** Current committed semantic revision. Legacy rows without this field normalize to revision 1. */
|
|
327
|
+
revision?: number;
|
|
668
328
|
repoId: string;
|
|
669
329
|
/** Stable Requirement owner. Legacy plans may omit this until portfolio migration. */
|
|
670
330
|
requirementId?: string;
|
|
@@ -680,7 +340,17 @@ export interface PlanContract {
|
|
|
680
340
|
status: PlanContractStatus;
|
|
681
341
|
steps: PlanStep[];
|
|
682
342
|
evidenceRefs: EvidenceRef[];
|
|
343
|
+
/** Historical predecessor Plans explicitly replaced by this Plan. */
|
|
344
|
+
supersedes?: string[];
|
|
683
345
|
supersededBy?: string;
|
|
346
|
+
/** Bounded durable reason for the supersession edge. */
|
|
347
|
+
supersessionReason?: string;
|
|
348
|
+
/** Explicit reconciliation of unresolved predecessor obligations. */
|
|
349
|
+
obligationDispositions?: PlanObligationDisposition[];
|
|
350
|
+
/** Trusted, bounded delivery provenance derived only during canonical successor admission. */
|
|
351
|
+
deliveryCarries?: PlanStepDeliveryCarry[];
|
|
352
|
+
/** At most one staged next revision. It is not another active Plan authority. */
|
|
353
|
+
pendingRevision?: PlanRevisionDraft;
|
|
684
354
|
createdAt: string;
|
|
685
355
|
updatedAt: string;
|
|
686
356
|
}
|
|
@@ -704,6 +374,8 @@ export interface CapabilityDescriptor {
|
|
|
704
374
|
exposedVia: CapabilityExecutionSurface;
|
|
705
375
|
schemaExposure: CapabilitySchemaExposure;
|
|
706
376
|
summary: string;
|
|
377
|
+
/** Provider-declared semantic capabilities implemented by this executable action. */
|
|
378
|
+
semanticCapabilities?: string[];
|
|
707
379
|
}
|
|
708
380
|
|
|
709
381
|
export interface CapabilityGroupSummary {
|
|
@@ -717,16 +389,6 @@ export interface CapabilityGroupSummary {
|
|
|
717
389
|
schemaExposures: CapabilitySchemaExposure[];
|
|
718
390
|
}
|
|
719
391
|
|
|
720
|
-
export interface PolicyDecision {
|
|
721
|
-
decision: PolicyDecisionKind;
|
|
722
|
-
reason: string;
|
|
723
|
-
capabilityId?: string;
|
|
724
|
-
approvalRequestId?: string;
|
|
725
|
-
requiredConfirmationText?: string;
|
|
726
|
-
warnings: string[];
|
|
727
|
-
suggestedNextActions: SuggestedNextAction[];
|
|
728
|
-
}
|
|
729
|
-
|
|
730
392
|
export interface ExecutionModeSelectionInput {
|
|
731
393
|
objective?: string;
|
|
732
394
|
expectedFiles?: number;
|
|
@@ -757,6 +419,8 @@ export interface ExecutionModeSelectionInput {
|
|
|
757
419
|
secretAccess?: boolean;
|
|
758
420
|
mutation?: boolean;
|
|
759
421
|
risk?: CapabilityRisk;
|
|
422
|
+
/** Advisory Context Plane routing hints. Explicit request fields still win. */
|
|
423
|
+
contextRouteHints?: RouteContextHints;
|
|
760
424
|
/** Migration/testing escape hatch: adapters must return this exact policy decision. */
|
|
761
425
|
routePolicyInput?: RoutePolicyInput;
|
|
762
426
|
}
|
|
@@ -771,20 +435,12 @@ export interface ExecutionModeSelection {
|
|
|
771
435
|
routeDecision: RouteDecision;
|
|
772
436
|
}
|
|
773
437
|
|
|
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
438
|
/** @deprecated Compatibility adapter. Route Policy is the sole routing authority. */
|
|
783
439
|
export function selectExecutionMode(input: ExecutionModeSelectionInput): ExecutionModeSelection {
|
|
784
440
|
const missingContractFields: string[] = [];
|
|
785
441
|
if (!input.scopeClear) missingContractFields.push('scopeSummary', 'acceptanceCriteria', 'allowedPaths');
|
|
786
442
|
if (input.objective !== undefined && input.objective.trim().length === 0) missingContractFields.push('objective');
|
|
787
|
-
const
|
|
443
|
+
const baseRoutePolicyInput: RoutePolicyInput = input.routePolicyInput ?? {
|
|
788
444
|
intent: {
|
|
789
445
|
objective: input.objective ?? (input.scopeClear ? 'bounded repository work' : ''),
|
|
790
446
|
scopeClear: input.scopeClear,
|
|
@@ -822,7 +478,8 @@ export function selectExecutionMode(input: ExecutionModeSelectionInput): Executi
|
|
|
822
478
|
recovery: {
|
|
823
479
|
required: input.requiresRecovery,
|
|
824
480
|
},
|
|
825
|
-
}
|
|
481
|
+
};
|
|
482
|
+
const routeDecision = decideRoute(applyRouteContextHints(baseRoutePolicyInput, input.contextRouteHints));
|
|
826
483
|
return {
|
|
827
484
|
mode: routeDecision.executionMode,
|
|
828
485
|
reason: routeDecision.reasons.map((reason) => reason.message).join(' '),
|