@moretea-labs/forge 1.7.2 → 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 +26 -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 -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 +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 +369 -99
- 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 +219 -22
- 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 -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-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 +85 -18
- package/src/runtime/root/package-runtime-service.ts +60 -97
- 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,79 +1,24 @@
|
|
|
1
|
-
###
|
|
2
|
-
|
|
3
|
-
Use `docs/researches/` for deep codebase understanding, `docs/spec.md` for stable intent, `plans/` for timestamped execution plans, and `tasks/todos.md` for deferred medium/long-term goals with tradeoffs and revisit triggers.
|
|
1
|
+
### Forge Workflow Protocol
|
|
4
2
|
|
|
5
3
|
```yaml
|
|
6
|
-
|
|
7
|
-
MODE: {{RUNTIME_PROFILE}}
|
|
8
|
-
RECOVERY: {{RECOVERY_PROFILE}}
|
|
4
|
+
FORGE_WORKFLOW:
|
|
9
5
|
STATE: {{STATE_PROFILE}}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
DEFERRED_LEDGER: tasks/todos.md
|
|
19
|
-
TODO_ARCHIVE: tasks/archive/
|
|
20
|
-
CONTRACT_DIR: tasks/contracts/
|
|
21
|
-
REVIEW_DIR: tasks/reviews/
|
|
22
|
-
NOTES_DIR: tasks/notes/
|
|
23
|
-
POLICY_FILE: .ai/harness/policy.json
|
|
24
|
-
CHECKS_FILE: .ai/harness/checks/latest.json
|
|
25
|
-
HANDOFF_FILE: .ai/harness/session/continuation.md
|
|
26
|
-
EVENTS_FILE: .ai/harness/events.jsonl
|
|
27
|
-
RUNS_DIR: .ai/harness/runs/
|
|
28
|
-
LESSONS_FILE: tasks/lessons.md
|
|
29
|
-
CONTEXT_MAP: .ai/context/context-map.json
|
|
30
|
-
ANNOTATION_GUARD: do not implement until plan Status is "Approved"
|
|
31
|
-
CONTRACT_GUARD: do not mark done until contract exit criteria pass; then perform a fresh semantic impact review
|
|
32
|
-
EXECUTION_CONTEXT: contract-level work starts in a linked codex/<slug> worktree when policy enables it; primary worktree warning by default; enforce via .claude/.require-worktree
|
|
33
|
-
CONTRACT_WORKTREE_FINISH: run Forge /review, fill the review artifact from that verdict, then .ai/harness/scripts/contract-worktree.sh finish
|
|
34
|
-
COMMIT_POLICY: explicit commits after green checks; no automatic checkpoint hook
|
|
6
|
+
PHASES: understand -> design -> execute -> verify -> review -> terminalize
|
|
7
|
+
REPO_AUTHORED:
|
|
8
|
+
- docs/spec.md
|
|
9
|
+
- docs/researches/
|
|
10
|
+
- tasks/todos.md
|
|
11
|
+
- tasks/lessons.md
|
|
12
|
+
- forge.config.json
|
|
13
|
+
RUNTIME_AUTHORITY: Controller Home
|
|
35
14
|
```
|
|
36
15
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
- Product discovery, early demand shaping, or "is this worth building" -> gstack `office-hours`.
|
|
40
|
-
- Complex engineering plans, architecture lock-in, or cross-module refactors -> gstack `plan-eng-review`.
|
|
41
|
-
- UI/UX or design-system plans -> gstack `plan-design-review`.
|
|
42
|
-
- Small or medium feature plans -> Forge `/plan`.
|
|
43
|
-
- Bugs, regressions, crashes, errors, or failing tests -> Forge `/debug`.
|
|
44
|
-
- Implemented diffs, pre-merge checks, or release follow-through -> Forge `/review`.
|
|
45
|
-
- Architecture diagrams or system-flow diagrams -> Markdown Mermaid first, `mermaid` for optional human HTML.
|
|
46
|
-
- Use P1/P2/P3 as the shared due-diligence protocol; report it explicitly for `plan-eng-review`, `/hunt`, risky refactors, deployments, auth/payment/data work, and shared contracts.
|
|
47
|
-
- Hooks may emit advisory Forge `/review` and `/health` route hints, but must not auto-run skills or vendor skill bodies.
|
|
48
|
-
|
|
49
|
-
### Task Management Protocol
|
|
50
|
-
|
|
51
|
-
Core rules (canonical source: see Workflow Orchestration section below):
|
|
52
|
-
- `docs/spec.md` is product truth; `plans/` is execution truth.
|
|
53
|
-
- `tasks/contracts/`, `tasks/reviews/`, and `tasks/notes/` are done gates; hooks are accelerators only.
|
|
54
|
-
- Treat `.ai/harness/active-plan` as authoritative only for its owning worktree; `.ai/harness/active-worktree` records that owner; `.claude/.active-plan` is a legacy fallback during transition.
|
|
55
|
-
- Require plan/contract workflow inventory before implementation: active plan, owning worktree, contract, review, notes, deferred ledger, checks, runs, scope owner, switching rule, and worktree path.
|
|
56
|
-
- Mark done only with verification evidence.
|
|
57
|
-
- Durable progress lives in `tasks/workstreams/`; release history belongs in `docs/CHANGELOG.md`.
|
|
58
|
-
|
|
59
|
-
### Harness References
|
|
60
|
-
|
|
61
|
-
- `docs/reference-configs/harness-overview.md`
|
|
62
|
-
- `docs/reference-configs/sprint-contracts.md`
|
|
63
|
-
- `docs/reference-configs/evaluator-rubric.md`
|
|
64
|
-
- `docs/reference-configs/handoff-protocol.md`
|
|
65
|
-
- `docs/reference-configs/changelog-versioning.md`
|
|
66
|
-
- `docs/reference-configs/git-strategy.md`
|
|
67
|
-
- `docs/reference-configs/release-deploy.md`
|
|
68
|
-
- `docs/reference-configs/agentic-development-flow.md`
|
|
69
|
-
- `docs/reference-configs/external-tooling.md`
|
|
70
|
-
|
|
71
|
-
{{#IF FACTOR_FACTORY_ENABLED}}
|
|
72
|
-
### Factor Research Protocol
|
|
16
|
+
Rules:
|
|
73
17
|
|
|
74
|
-
-
|
|
75
|
-
- Use
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
|
|
18
|
+
- Prompt/agent files explain intent; they are not execution, authorization, lifecycle, or completion authority.
|
|
19
|
+
- Use direct execution for bounded understood work. Create durable Requirement/Plan/Work only when decomposition, continuity, isolation, scheduling, recovery, or external effects justify it.
|
|
20
|
+
- Before high-risk or architecture-changing mutation, close the cross-cutting Engineering Design contract instead of reviewing only the touched module.
|
|
21
|
+
- A successor Plan must explicitly reconcile every unfinished predecessor obligation as KEEP/CHANGE/DEFER/DROP.
|
|
22
|
+
- Mutable checks, sessions, leases, Work/Plan state, Plugin config, run receipts, and caches belong to Controller Home, never new repo-local `.ai/harness` or generated `tasks/*` lifecycle files.
|
|
23
|
+
- Human-authored research, stable product intent, deferred goals, lessons, and intentionally maintained planning documents may remain in Git.
|
|
24
|
+
- Completion requires exact verification/review evidence and terminal cleanup; no prompt text or generated status Markdown may declare semantic success.
|
|
@@ -18,7 +18,7 @@ CLAUDE.md is a routing card. Keep context minimal and load only what the current
|
|
|
18
18
|
| Evaluator verdict | `tasks/reviews/<plan-stem>.review.md` |
|
|
19
19
|
| Implementation notes | `tasks/notes/<plan-stem>.notes.md` |
|
|
20
20
|
| Latest verification evidence | `.ai/harness/checks/latest.json` |
|
|
21
|
-
| Historical implementation context |
|
|
21
|
+
| Historical implementation context | Git history and durable Control Plane Plan/Work/Verification evidence |
|
|
22
22
|
| Agentic skill routing | `docs/reference-configs/agentic-development-flow.md` |
|
|
23
23
|
| Harness runtime model | `docs/reference-configs/harness-overview.md` |
|
|
24
24
|
| Sprint contract rules | `docs/reference-configs/sprint-contracts.md` |
|
|
@@ -23,8 +23,7 @@
|
|
|
23
23
|
- Lessons contract: `tasks/lessons.md`.
|
|
24
24
|
- Plan directory: `plans/` (timestamped plans).
|
|
25
25
|
- Active plan rule: `.ai/harness/active-plan` for this worktree when present, `.ai/harness/active-worktree` as owner marker, and `.claude/.active-plan` legacy fallback during transition. Do not infer active execution from the latest plan.
|
|
26
|
-
-
|
|
27
|
-
- Todo archive: `tasks/archive/`.
|
|
26
|
+
- Terminal repo-local workflow artifacts are deleted only after their exact final state is represented by Git; do not maintain plan/todo archive directories.
|
|
28
27
|
- Shared automation layer: `.ai/hooks/`.
|
|
29
28
|
- Host adapters: user-level `~/.claude/settings.json` and `~/.codex/hooks.json` call `forge-hook`, falling back to `forge hook`, which dispatches into opted-in repos.
|
|
30
29
|
- External reference cache: `_ref/` is an occasional ignored external checkout cache, read/refresh-only comparison material, and must stay out of commits; decisions based on it must cite repo+commit/tag+path in notes or research.
|
|
@@ -1,69 +1,24 @@
|
|
|
1
|
-
##
|
|
1
|
+
## Work Management Protocol
|
|
2
2
|
|
|
3
3
|
```yaml
|
|
4
|
-
|
|
4
|
+
AUTHORED_REPO_SOURCES:
|
|
5
5
|
- docs/spec.md
|
|
6
6
|
- docs/researches/
|
|
7
7
|
- tasks/todos.md
|
|
8
|
-
- tasks/contracts/
|
|
9
|
-
- tasks/reviews/
|
|
10
|
-
- tasks/notes/
|
|
11
8
|
- tasks/lessons.md
|
|
12
|
-
- .
|
|
13
|
-
- .ai/harness/session/continuation.md
|
|
14
|
-
- plans/
|
|
9
|
+
- forge.config.json
|
|
15
10
|
|
|
16
|
-
|
|
11
|
+
DURABLE_RUNTIME_AUTHORITY:
|
|
12
|
+
- Controller Home Requirement / Plan / Work / ControllerRound
|
|
13
|
+
- Process / Schedule / resource claims / authorization / evidence / review
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
PLAN: plans/archive/
|
|
20
|
-
TODO: tasks/archive/
|
|
21
|
-
|
|
22
|
-
RULES:
|
|
23
|
-
- Treat repo-local artifact files as the primary cross-agent workflow contract
|
|
24
|
-
- For non-chat tasks, sync tasks/ whenever substantive work changes the repo
|
|
25
|
-
- Research first for unfamiliar areas and persist findings in docs/researches/
|
|
26
|
-
- Keep stable product intent in docs/spec.md
|
|
27
|
-
- Plan with trade-offs in plans/plan-{timestamp}-{slug}.md
|
|
28
|
-
- Treat .ai/harness/active-plan as authoritative only for this worktree; .ai/harness/active-worktree records the owner; .claude/.active-plan is a legacy fallback during transition
|
|
29
|
-
- Keep multiple active plans in parallel worktrees when tasks diverge; fill workflow inventory before implementation: active plan, owning worktree, contract, review, notes, deferred ledger, checks, runs, scope owner, switching rule, and worktree path
|
|
30
|
-
- Process annotation notes before implementing
|
|
31
|
-
- Project approved plans with .ai/harness/scripts/plan-to-todo.sh; the execution checklist stays in the plan ## Task Breakdown
|
|
32
|
-
- Define task contracts in tasks/contracts/{plan-stem}.contract.md
|
|
33
|
-
- Fill tasks/reviews/{plan-stem}.review.md from Forge /review after verification
|
|
34
|
-
- Record only non-obvious implementation decisions, deviations, tradeoffs, and open questions in tasks/notes/{plan-stem}.notes.md
|
|
35
|
-
- Verify contracts before claiming completion
|
|
36
|
-
- Require review pass before claiming completion
|
|
37
|
-
- Keep tasks/todos.md limited to deferred medium/long-term goals, with tradeoff and revisit trigger; do not duplicate plan Task Breakdown
|
|
38
|
-
- Record correction-derived prevention rules in tasks/lessons.md
|
|
39
|
-
- Distill repeated corrections into tasks/lessons.md instead of keeping them in tasks/todos.md
|
|
40
|
-
- Capture deep findings and hidden contracts in docs/researches/
|
|
41
|
-
- Keep sprint-level verification notes, behavior diffs, and residual risks in tasks/reviews/{plan-stem}.review.md
|
|
42
|
-
- Do not use implementation notes as durable memory or task logs; archive them on close and promote only after evidence shows the rule should outlive the sprint
|
|
43
|
-
- Promote implementation-ready follow-up work into a new plans/plan-{timestamp}-{slug}.md file; keep deferred goals in tasks/todos.md only when intentionally postponed
|
|
44
|
-
- Treat `.ai/hooks/` as the shared automation entrypoint when repo scripts reference hook-backed workflow checks
|
|
45
|
-
- Treat user-level `~/.claude/settings.json` and `~/.codex/hooks.json` as host adapters; do not add repo-local project hook adapters unless explicitly migrating legacy config
|
|
46
|
-
- For Codex sessions, treat `bash .ai/harness/scripts/check-task-sync.sh` and `bash .ai/harness/scripts/check-task-workflow.sh --strict` as required repo-local checks
|
|
47
|
-
- Before ending a session, refresh `.ai/harness/session/continuation.md` when the task state changed
|
|
48
|
-
- Update `tasks/workstreams/` only when durable capability progress changes
|
|
49
|
-
- Archive completed/abandoned plans and todos with metadata
|
|
50
|
-
{{#IF FACTOR_FACTORY_ENABLED}}
|
|
51
|
-
- Treat `tasks/factors/registry.json` as the source of truth for factor lifecycle state
|
|
52
|
-
- Create factor candidates with `bash .ai/harness/scripts/factor-lab-new.sh --name <slug>`
|
|
53
|
-
- Promote factors only after hypothesis and backtest summary artifacts exist
|
|
54
|
-
- Run `bash .ai/harness/scripts/factor-lab-check.sh` before claiming factor-lab work is complete
|
|
55
|
-
{{/IF}}
|
|
56
|
-
|
|
57
|
-
ACTIVE_PLAN:
|
|
58
|
-
- .ai/harness/active-plan selects the current active plan only for its owning worktree; .ai/harness/active-worktree records that owner; .claude/.active-plan is a legacy fallback during transition
|
|
59
|
-
|
|
60
|
-
STATUS:
|
|
61
|
-
ENUM: [Draft, Annotating, Approved, Executing, Archived]
|
|
62
|
-
LOCATION: "> **Status**: {value}" line in plan file (must be exact, no trailing whitespace)
|
|
63
|
-
TRANSITIONS:
|
|
64
|
-
- Draft -> Annotating -> Approved -> Executing -> Archived
|
|
65
|
-
- Annotating -> Draft (rollback when plan direction needs rethinking)
|
|
66
|
-
GUARD: do not implement when status is Draft or Annotating
|
|
15
|
+
PHASES: understand -> design -> implement -> verify -> review -> cleanup
|
|
67
16
|
```
|
|
68
17
|
|
|
69
|
-
|
|
18
|
+
Rules:
|
|
19
|
+
|
|
20
|
+
- Do not recreate `tasks/contracts`, `tasks/reviews`, `tasks/current.md`, `tasks/workstreams`, or `.ai/harness` as current machine authority. They are legacy migration inputs only.
|
|
21
|
+
- Plan is a late semantic commitment, not ceremony for every non-trivial edit.
|
|
22
|
+
- High-risk/cross-cutting work must have current Context Closure and Engineering Design evidence before mutation.
|
|
23
|
+
- Successor Plans cannot silently drop unresolved predecessor objectives, acceptance criteria, non-goals, decisions, stop conditions, or replan conditions.
|
|
24
|
+
- Work completion is bound to exact implementation review and verification evidence; a chat or Markdown status claim is never enough.
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
## Quality & Safety
|
|
2
2
|
|
|
3
3
|
### Verification Gate
|
|
4
|
-
- Never mark work done without verification
|
|
5
|
-
- Run impact-based checks
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
- Require the matching `tasks/reviews/<plan-stem>.review.md` to recommend pass before claiming completion.
|
|
9
|
-
- Require the matching `tasks/notes/<plan-stem>.notes.md` to capture material implementation decisions before review.
|
|
4
|
+
- Never mark work done without current verification evidence for the exact candidate.
|
|
5
|
+
- Run impact-based type/tests/lint/build checks through Forge Process Runtime.
|
|
6
|
+
- High-risk or architecture-changing work requires the current Engineering Design contract and independent implementation review evidence.
|
|
7
|
+
- If a Plan is involved, verify its declared acceptance criteria and predecessor-obligation continuity; do not infer semantic acceptance from passing commands alone.
|
|
10
8
|
|
|
11
9
|
### Safety Rules
|
|
12
|
-
- Do not silently expand scope beyond
|
|
13
|
-
-
|
|
14
|
-
-
|
|
10
|
+
- Do not silently expand scope beyond the user/Work/Plan authority.
|
|
11
|
+
- Preserve single-writer, authorization, resource fencing, replay/idempotency, and lifecycle cleanup boundaries.
|
|
12
|
+
- Unexpected unrelated dirty work is placement/ownership evidence: isolate or reconcile it rather than absorbing it.
|
|
13
|
+
- Prefer strengthening an existing general capability over adding incident-specific helpers or parallel lifecycle owners.
|
|
15
14
|
|
|
16
15
|
### Final Response Contract
|
|
17
|
-
1. What changed
|
|
18
|
-
2. Verification
|
|
19
|
-
3.
|
|
20
|
-
4. Known risks/gaps — bullet list with severity tag: `[HIGH]`, `[MEDIUM]`, `[LOW]`
|
|
21
|
-
5. Optional next steps — actionable items the next session or user should address
|
|
22
|
-
|
|
23
|
-
---
|
|
16
|
+
1. What changed
|
|
17
|
+
2. Verification actually run
|
|
18
|
+
3. Residual blockers/risks
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
- `.ai/harness/checks/latest.json`: structured verification evidence
|
|
16
16
|
- `.ai/harness/runs/`: immutable run snapshots for verification audit
|
|
17
17
|
- `.ai/context/context-map.json`: progressive context index for primary functional-block `CLAUDE.md` and `AGENTS.md` files
|
|
18
|
-
-
|
|
19
|
-
- `tasks/archive/`: archived todo snapshots
|
|
18
|
+
- Terminal plan/task history: Git history plus durable Control Plane evidence; do not create repository archive directories.
|
|
20
19
|
- `docs/reference-configs/agentic-development-flow.md`: gstack/Waza routing, P1/P2/P3 reporting triggers, and daily flow
|
|
21
20
|
- `docs/reference-configs/harness-overview.md`: orchestration playbook
|
|
22
21
|
- `docs/reference-configs/external-tooling.md`: gstack/Waza/gbrain routing, Codex-first Waza sync, and required CodeGraph readiness commands
|
package/assets/plan-map.json
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"evaluation": "browser-qa",
|
|
35
35
|
"handoff": "artifact-aware",
|
|
36
36
|
"recovery": "hybrid",
|
|
37
|
-
"state": "
|
|
37
|
+
"state": "controller-home"
|
|
38
38
|
},
|
|
39
39
|
"defaultLsp": "typescript-lsp",
|
|
40
40
|
"defaultTemplateVariables": {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"evaluation": "browser-qa",
|
|
61
61
|
"handoff": "artifact-aware",
|
|
62
62
|
"recovery": "hybrid",
|
|
63
|
-
"state": "
|
|
63
|
+
"state": "controller-home"
|
|
64
64
|
},
|
|
65
65
|
"defaultLsp": "typescript-lsp",
|
|
66
66
|
"defaultTemplateVariables": {
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"evaluation": "browser-qa",
|
|
87
87
|
"handoff": "artifact-aware",
|
|
88
88
|
"recovery": "hybrid",
|
|
89
|
-
"state": "
|
|
89
|
+
"state": "controller-home"
|
|
90
90
|
},
|
|
91
91
|
"defaultLsp": "typescript-lsp",
|
|
92
92
|
"defaultTemplateVariables": {
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"evaluation": "command-qa",
|
|
113
113
|
"handoff": "artifact-aware",
|
|
114
114
|
"recovery": "hybrid",
|
|
115
|
-
"state": "
|
|
115
|
+
"state": "controller-home"
|
|
116
116
|
},
|
|
117
117
|
"defaultLsp": "typescript-lsp",
|
|
118
118
|
"defaultTemplateVariables": {
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"evaluation": "browser-qa",
|
|
139
139
|
"handoff": "artifact-aware",
|
|
140
140
|
"recovery": "hybrid",
|
|
141
|
-
"state": "
|
|
141
|
+
"state": "controller-home"
|
|
142
142
|
},
|
|
143
143
|
"defaultLsp": "typescript-lsp",
|
|
144
144
|
"defaultTemplateVariables": {
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
"evaluation": "browser-qa",
|
|
164
164
|
"handoff": "artifact-aware",
|
|
165
165
|
"recovery": "hybrid",
|
|
166
|
-
"state": "
|
|
166
|
+
"state": "controller-home"
|
|
167
167
|
},
|
|
168
168
|
"defaultLsp": "typescript-lsp",
|
|
169
169
|
"defaultTemplateVariables": {
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
"evaluation": "command-qa",
|
|
191
191
|
"handoff": "artifact-aware",
|
|
192
192
|
"recovery": "hybrid",
|
|
193
|
-
"state": "
|
|
193
|
+
"state": "controller-home"
|
|
194
194
|
},
|
|
195
195
|
"defaultLsp": "pyright-lsp",
|
|
196
196
|
"defaultTemplateVariables": {
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
"evaluation": "command-qa",
|
|
216
216
|
"handoff": "artifact-aware",
|
|
217
217
|
"recovery": "hybrid",
|
|
218
|
-
"state": "
|
|
218
|
+
"state": "controller-home"
|
|
219
219
|
},
|
|
220
220
|
"defaultLsp": "gopls-lsp",
|
|
221
221
|
"defaultTemplateVariables": {
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
"evaluation": "browser-qa",
|
|
241
241
|
"handoff": "artifact-aware",
|
|
242
242
|
"recovery": "hybrid",
|
|
243
|
-
"state": "
|
|
243
|
+
"state": "controller-home"
|
|
244
244
|
},
|
|
245
245
|
"defaultLsp": "typescript-lsp",
|
|
246
246
|
"defaultTemplateVariables": {
|
|
@@ -265,7 +265,7 @@
|
|
|
265
265
|
"evaluation": "command-qa",
|
|
266
266
|
"handoff": "artifact-aware",
|
|
267
267
|
"recovery": "hybrid",
|
|
268
|
-
"state": "
|
|
268
|
+
"state": "controller-home"
|
|
269
269
|
},
|
|
270
270
|
"defaultLsp": "rust-analyzer-lsp",
|
|
271
271
|
"defaultTemplateVariables": {
|
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
"evaluation": "command-qa",
|
|
291
291
|
"handoff": "artifact-aware",
|
|
292
292
|
"recovery": "hybrid",
|
|
293
|
-
"state": "
|
|
293
|
+
"state": "controller-home"
|
|
294
294
|
},
|
|
295
295
|
"defaultLsp": "typescript-lsp",
|
|
296
296
|
"defaultTemplateVariables": {
|
|
@@ -4,15 +4,21 @@
|
|
|
4
4
|
{
|
|
5
5
|
"id": "desktop_operator",
|
|
6
6
|
"name": "Forge Desktop Operator",
|
|
7
|
-
"version": "0.2
|
|
7
|
+
"version": "0.3.2",
|
|
8
8
|
"description": "Native macOS desktop automation provider for Forge.",
|
|
9
9
|
"repository": "https://github.com/moretea-labs/forge-desktop-operator.git",
|
|
10
|
-
"ref": "v0.2
|
|
10
|
+
"ref": "v0.3.2",
|
|
11
11
|
"installer": "forge-plugin-install.mjs",
|
|
12
|
-
"providerVersion": "0.2
|
|
12
|
+
"providerVersion": "0.3.2",
|
|
13
13
|
"protocolVersion": "1.0",
|
|
14
14
|
"platforms": [
|
|
15
15
|
"darwin"
|
|
16
|
+
],
|
|
17
|
+
"semanticCapabilities": [
|
|
18
|
+
"computer.observe.v1",
|
|
19
|
+
"computer.input.v1",
|
|
20
|
+
"computer.capture.v1",
|
|
21
|
+
"computer.browser_automation.v1"
|
|
16
22
|
]
|
|
17
23
|
},
|
|
18
24
|
{
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
[CmdletBinding()]
|
|
2
|
+
param(
|
|
3
|
+
[Parameter(Mandatory = $true, Position = 0)]
|
|
4
|
+
[ValidateSet(
|
|
5
|
+
'host_status', 'task_status', 'task_install', 'task_run',
|
|
6
|
+
'wsl_status', 'wsl_start',
|
|
7
|
+
'forge_source_status', 'controller_status',
|
|
8
|
+
'runtime_status', 'runtime_start', 'runtime_restart',
|
|
9
|
+
'connector_status', 'connector_start', 'connector_restart',
|
|
10
|
+
'recovery_status', 'recovery_start', 'recovery_restart',
|
|
11
|
+
'tunnel_status', 'tunnel_start', 'tunnel_restart',
|
|
12
|
+
'forge_cloud_verify', 'full_recover'
|
|
13
|
+
)]
|
|
14
|
+
[string]$Action
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
$ErrorActionPreference = 'Stop'
|
|
18
|
+
$Root = Split-Path -Parent $PSCommandPath
|
|
19
|
+
$ConfigPath = Join-Path $Root 'config.json'
|
|
20
|
+
if (-not (Test-Path -LiteralPath $ConfigPath -PathType Leaf)) {
|
|
21
|
+
throw "FORGE_RESCUE_CONFIG_MISSING: $ConfigPath"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
$Config = Get-Content -LiteralPath $ConfigPath -Raw -Encoding UTF8 | ConvertFrom-Json
|
|
25
|
+
if ($Config.schemaVersion -ne 1 -or [string]::IsNullOrWhiteSpace($Config.distro) -or [string]::IsNullOrWhiteSpace($Config.wslRescuePath)) {
|
|
26
|
+
throw 'FORGE_RESCUE_CONFIG_INVALID'
|
|
27
|
+
}
|
|
28
|
+
$WslRescuePathPattern = '^/' + 'home/[A-Za-z0-9._-]+/\.forge-recovery/bin/forge-wsl-rescue$'
|
|
29
|
+
if ($Config.distro -match "[\r\n'`"`$;&|<>]" -or $Config.wslRescuePath -notmatch $WslRescuePathPattern) {
|
|
30
|
+
throw 'FORGE_RESCUE_CONFIG_UNSAFE'
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
$Wsl = Join-Path $env:WINDIR 'System32\wsl.exe'
|
|
34
|
+
$PowerShell = Join-Path $env:WINDIR 'System32\WindowsPowerShell\v1.0\powershell.exe'
|
|
35
|
+
$TaskName = 'Forge Independent Recovery WSL'
|
|
36
|
+
$RunKey = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run'
|
|
37
|
+
$RunValueName = 'ForgeIndependentRecoveryWSL'
|
|
38
|
+
$RunCommand = ('"' + $PowerShell + '" -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "' + $PSCommandPath + '" full_recover')
|
|
39
|
+
if (-not (Test-Path -LiteralPath $Wsl -PathType Leaf)) {
|
|
40
|
+
throw "FORGE_RESCUE_WSL_MISSING: $Wsl"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function Invoke-WslRescue([string]$WslAction) {
|
|
44
|
+
& $Wsl --distribution $Config.distro --exec $Config.wslRescuePath $WslAction
|
|
45
|
+
if ($LASTEXITCODE -ne 0) {
|
|
46
|
+
throw "FORGE_RESCUE_WSL_ACTION_FAILED: action=$WslAction exitCode=$LASTEXITCODE"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
switch ($Action) {
|
|
51
|
+
'host_status' {
|
|
52
|
+
[PSCustomObject]@{
|
|
53
|
+
executionEnvironment = 'WINDOWS_WSL'
|
|
54
|
+
hostname = $env:COMPUTERNAME
|
|
55
|
+
user = [Security.Principal.WindowsIdentity]::GetCurrent().Name
|
|
56
|
+
distro = $Config.distro
|
|
57
|
+
wslRescuePath = $Config.wslRescuePath
|
|
58
|
+
} | ConvertTo-Json -Depth 3
|
|
59
|
+
}
|
|
60
|
+
'task_status' {
|
|
61
|
+
$Task = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
|
62
|
+
if ($null -ne $Task) {
|
|
63
|
+
[PSCustomObject]@{ installed = $true; method = 'scheduled_task'; taskName = $TaskName; state = [string]$Task.State; execute = $Task.Actions[0].Execute; arguments = $Task.Actions[0].Arguments } | ConvertTo-Json -Depth 4
|
|
64
|
+
} else {
|
|
65
|
+
$RunValue = (Get-ItemProperty -LiteralPath $RunKey -Name $RunValueName -ErrorAction SilentlyContinue).$RunValueName
|
|
66
|
+
[PSCustomObject]@{ installed = ($RunValue -eq $RunCommand); method = $(if ($RunValue) { 'hkcu_run' } else { 'none' }); taskName = $TaskName; runValueName = $RunValueName; identityMatches = ($RunValue -eq $RunCommand) } | ConvertTo-Json -Depth 4
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
'task_install' {
|
|
70
|
+
$ActionObject = New-ScheduledTaskAction -Execute $PowerShell -Argument ('-NoProfile -NonInteractive -ExecutionPolicy Bypass -File "' + $PSCommandPath + '" full_recover')
|
|
71
|
+
$Trigger = New-ScheduledTaskTrigger -AtLogOn
|
|
72
|
+
try {
|
|
73
|
+
$null = Register-ScheduledTask -TaskName $TaskName -Action $ActionObject -Trigger $Trigger -Description 'Forge independent Windows/WSL rescue cold-start trigger.' -Force -ErrorAction Stop
|
|
74
|
+
[PSCustomObject]@{ installed = $true; method = 'scheduled_task'; taskName = $TaskName } | ConvertTo-Json -Depth 3
|
|
75
|
+
} catch {
|
|
76
|
+
if (-not (Test-Path -LiteralPath $RunKey)) { $null = New-Item -Path $RunKey -Force }
|
|
77
|
+
Set-ItemProperty -LiteralPath $RunKey -Name $RunValueName -Value $RunCommand -Type String -Force
|
|
78
|
+
$InstalledValue = (Get-ItemProperty -LiteralPath $RunKey -Name $RunValueName -ErrorAction Stop).$RunValueName
|
|
79
|
+
if ($InstalledValue -ne $RunCommand) { throw 'FORGE_RESCUE_LOGON_TRIGGER_IDENTITY_MISMATCH' }
|
|
80
|
+
[PSCustomObject]@{ installed = $true; method = 'hkcu_run'; taskName = $TaskName; schedulerError = $_.Exception.HResult } | ConvertTo-Json -Depth 3
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
'task_run' {
|
|
84
|
+
$Task = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
|
85
|
+
if ($null -ne $Task) {
|
|
86
|
+
Start-ScheduledTask -InputObject $Task
|
|
87
|
+
[PSCustomObject]@{ started = $true; method = 'scheduled_task'; taskName = $TaskName } | ConvertTo-Json -Depth 3
|
|
88
|
+
} else {
|
|
89
|
+
& $PowerShell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File $PSCommandPath full_recover
|
|
90
|
+
if ($LASTEXITCODE -ne 0) { throw "FORGE_RESCUE_DIRECT_TRIGGER_FAILED: exitCode=$LASTEXITCODE" }
|
|
91
|
+
[PSCustomObject]@{ started = $true; method = 'direct_fixed_action'; taskName = $TaskName } | ConvertTo-Json -Depth 3
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
'wsl_start' {
|
|
95
|
+
& $Wsl --distribution $Config.distro --exec /bin/true
|
|
96
|
+
if ($LASTEXITCODE -ne 0) { throw "FORGE_RESCUE_WSL_START_FAILED: exitCode=$LASTEXITCODE" }
|
|
97
|
+
Invoke-WslRescue 'wsl_status'
|
|
98
|
+
}
|
|
99
|
+
default { Invoke-WslRescue $Action }
|
|
100
|
+
}
|