@moretea-labs/forge 1.7.2 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +121 -62
- package/CHANGELOG.md +40 -0
- package/CLAUDE.md +57 -62
- package/CONTRIBUTING.md +3 -2
- package/README.md +2 -2
- package/SKILL.md +0 -1
- package/THIRD_PARTY_NOTICES.md +5 -2
- package/adapters/browser/index.ts +2 -0
- package/adapters/chatgpt/browser-delivery-host.ts +77 -0
- package/adapters/chatgpt/browser-delivery-runtime.ts +1256 -0
- package/adapters/chatgpt/controller-binding-store.ts +134 -0
- package/adapters/chatgpt/controller-round-host.ts +68 -0
- package/adapters/chatgpt/controller-round-settlement-store.ts +99 -0
- package/adapters/chatgpt/provider-delivery.ts +340 -0
- package/adapters/chatgpt/work-conversation-binding-store.ts +218 -0
- package/adapters/chatgpt/wsl-bridge-delivery-host.ts +63 -0
- package/adapters/computer/chatgpt-extension-target.ts +463 -0
- package/adapters/computer/chatgpt-target-router.ts +103 -0
- package/adapters/computer/chrome-extension/background.js +385 -0
- package/adapters/computer/chrome-extension/content.js +378 -0
- package/adapters/computer/chrome-extension/core.js +24 -0
- package/adapters/computer/chrome-extension/manifest.json +30 -0
- package/adapters/computer/desktop-operator-contract.ts +7 -0
- package/adapters/computer/desktop-operator-discovery.ts +181 -0
- package/adapters/computer/desktop-operator-negotiation.ts +174 -0
- package/adapters/computer/desktop-operator-provider.ts +312 -0
- package/adapters/computer/index.ts +1 -0
- package/adapters/computer/interaction-target-authority.ts +1068 -0
- package/adapters/controller-process/binding-store.ts +34 -0
- package/adapters/controller-process/controller-host.ts +26 -0
- package/adapters/mcp/access-mode.ts +132 -0
- package/adapters/mcp/audit.ts +32 -0
- package/adapters/mcp/auth.ts +406 -0
- package/adapters/mcp/instructions.ts +37 -0
- package/adapters/mcp/legacy-context.ts +18 -0
- package/adapters/mcp/multi-repository.ts +421 -0
- package/adapters/mcp/oauth.ts +464 -0
- package/adapters/mcp/paths.ts +143 -0
- package/adapters/mcp/policy.ts +232 -0
- package/adapters/mcp/proxy-env.ts +62 -0
- package/adapters/mcp/readiness-projection.ts +24 -0
- package/adapters/mcp/redaction.ts +21 -0
- package/adapters/mcp/repo.ts +24 -0
- package/adapters/mcp/runtime-gateway/artifact-adapter.ts +52 -0
- package/adapters/mcp/runtime-gateway/automation-receipt-adapter.ts +87 -0
- package/adapters/mcp/runtime-gateway/bounded-result-runtime.ts +62 -0
- package/adapters/mcp/runtime-gateway/cognition-settlement.ts +201 -0
- package/adapters/mcp/runtime-gateway/context-adapter.ts +1167 -0
- package/adapters/mcp/runtime-gateway/context-pack-sidecar.ts +91 -0
- package/adapters/mcp/runtime-gateway/controller-authority-adapter.ts +206 -0
- package/adapters/mcp/runtime-gateway/core-capability-adapter.ts +258 -0
- package/adapters/mcp/runtime-gateway/engineering-preconditions.ts +130 -0
- package/adapters/mcp/runtime-gateway/engineering-tool-contract.ts +15 -0
- package/adapters/mcp/runtime-gateway/execution-control-adapter.ts +28 -0
- package/adapters/mcp/runtime-gateway/execution-tools.ts +173 -0
- package/adapters/mcp/runtime-gateway/filesystem-adapter.ts +38 -0
- package/adapters/mcp/runtime-gateway/gateway-execution-adapter.ts +412 -0
- package/adapters/mcp/runtime-gateway/legacy-ios-tool-adapter.ts +105 -0
- package/adapters/mcp/runtime-gateway/maintenance-adapter.ts +44 -0
- package/adapters/mcp/runtime-gateway/model-adapter.ts +63 -0
- package/adapters/mcp/runtime-gateway/persisted-check-process.ts +3 -0
- package/adapters/mcp/runtime-gateway/plugin-adapter.ts +380 -0
- package/adapters/mcp/runtime-gateway/process-tools.ts +457 -0
- package/adapters/mcp/runtime-gateway/protected-computer-adapter.ts +88 -0
- package/adapters/mcp/runtime-gateway/recovery-adapter.ts +285 -0
- package/adapters/mcp/runtime-gateway/recovery-client-adapter.ts +70 -0
- package/adapters/mcp/runtime-gateway/recovery-tool-contract.ts +99 -0
- package/adapters/mcp/runtime-gateway/repository-compat-adapter.ts +79 -0
- package/adapters/mcp/runtime-gateway/result-adapter.ts +114 -0
- package/adapters/mcp/runtime-gateway/router.ts +242 -0
- package/adapters/mcp/runtime-gateway/routing-policy.ts +499 -0
- package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +1200 -0
- package/adapters/mcp/runtime-gateway/runtime-readiness-observation.ts +218 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +574 -0
- package/adapters/mcp/runtime-gateway/runtime-tool-shared.ts +27 -0
- package/adapters/mcp/runtime-gateway/runtime-tools.ts +78 -0
- package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +187 -0
- package/adapters/mcp/runtime-gateway/shared-adapter.ts +45 -0
- package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +962 -0
- package/adapters/mcp/runtime-gateway/typescript-navigation-sidecar.ts +136 -0
- package/adapters/mcp/runtime-gateway/work-adapter.ts +325 -0
- package/adapters/mcp/runtime-gateway/work-controller-operations.ts +257 -0
- package/adapters/mcp/runtime-gateway/work-detail-projection.ts +60 -0
- package/adapters/mcp/runtime-gateway/work-input-wire-migration.ts +246 -0
- package/adapters/mcp/runtime-gateway/work-learning-operations.ts +145 -0
- package/adapters/mcp/runtime-gateway/work-list-projection.ts +38 -0
- package/adapters/mcp/runtime-gateway/work-plan-operations.ts +382 -0
- package/adapters/mcp/runtime-gateway/work-repair-adapter.ts +308 -0
- package/adapters/mcp/runtime-gateway/work-requirement-operations.ts +148 -0
- package/adapters/mcp/runtime-gateway/work-semantic-operations.ts +263 -0
- package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +1 -0
- package/adapters/mcp/runtime-gateway/work-workflow-operations.ts +113 -0
- package/adapters/mcp/runtime-gateway/workflow-supervisor-adapter.ts +156 -0
- package/adapters/mcp/server.ts +1092 -0
- package/adapters/mcp/setup.ts +789 -0
- package/adapters/mcp/tool-capability-cache.ts +87 -0
- package/adapters/mcp/tool-mapping/access-tools.ts +387 -0
- package/adapters/mcp/tool-mapping/legacy-tool-service.ts +5139 -0
- package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +145 -0
- package/adapters/mcp/tool-mapping/repository-tools.ts +1682 -0
- package/adapters/mcp/tool-mapping/tools.ts +9 -0
- package/adapters/mcp/tool-mapping/umbrella-tools.ts +117 -0
- package/adapters/mcp/toolset-names.ts +79 -0
- package/adapters/mcp/toolset-selection.ts +41 -0
- package/adapters/mcp/toolset.ts +337 -0
- package/adapters/mcp/transports/http-observation.ts +365 -0
- package/adapters/mcp/transports/http.ts +933 -0
- package/adapters/mcp/transports/oauth-http.ts +322 -0
- package/adapters/mcp/transports/session-registry.ts +519 -0
- package/adapters/mcp/transports/stdio.ts +8 -0
- package/adapters/mcp/tunnels/openai-secure-tunnel.ts +223 -0
- package/adapters/mcp/types.ts +41 -0
- package/assets/AGENTS.md +2 -16
- package/assets/CLAUDE.md +2 -16
- package/assets/hooks/AGENTS.md +3 -14
- package/assets/hooks/CLAUDE.md +3 -14
- package/assets/hooks/hook-input.sh +9 -2
- package/assets/hooks/lib/workflow-state.sh +28 -10
- package/assets/hooks/prompt-guard.sh +63 -37
- package/assets/hooks/security-sentinel.sh +2 -1
- package/assets/hooks/session-start-context.sh +7 -5
- package/assets/hooks/stop-orchestrator.sh +13 -3
- package/assets/initializer-question-pack.v4.json +11 -7
- package/assets/partials/05-workflow.partial.md +18 -73
- package/assets/partials/07-footer.partial.md +1 -1
- package/assets/partials-agents/02-operating-mode.partial.md +1 -2
- package/assets/partials-agents/04-task-protocol.partial.md +14 -59
- package/assets/partials-agents/06-quality-safety.partial.md +11 -16
- package/assets/partials-agents/08-deep-docs.partial.md +1 -2
- package/assets/plan-map.json +11 -11
- package/assets/plugin-registry.v1.json +11 -3
- package/assets/plugin-trust-policy.v1.json +6 -0
- package/assets/recovery/ForgeRecovery.ps1 +100 -0
- package/assets/recovery/forge-wsl-rescue +271 -0
- package/assets/reference-configs/agentic-development-flow.md +25 -0
- package/assets/reference-configs/development-protocol.md +11 -15
- package/assets/reference-configs/document-generation.md +1 -1
- package/assets/reference-configs/global-working-rules.md +28 -1
- package/assets/reference-configs/harness-overview.md +22 -112
- package/assets/reference-configs/hook-operations.md +1 -1
- package/assets/reference-configs/sprint-contracts.md +2 -2
- package/assets/skill-version.json +2 -2
- package/assets/templates/helpers/architecture-event.ts +3 -34
- package/assets/templates/helpers/architecture-queue.sh +61 -10
- package/assets/templates/helpers/archive-workflow.sh +90 -180
- package/assets/templates/helpers/capability-config.ts +8 -11
- package/assets/templates/helpers/capability-resolver.ts +37 -19
- package/assets/templates/helpers/capture-plan.sh +2 -2
- package/assets/templates/helpers/check-architecture-sync.sh +1 -9
- package/assets/templates/helpers/check-task-sync.sh +82 -11
- package/assets/templates/helpers/check-task-workflow.sh +1 -3
- package/assets/templates/helpers/context-contract-sync.sh +1 -12
- package/assets/templates/helpers/contract-worktree.sh +26 -24
- package/assets/templates/helpers/ensure-task-workflow.sh +6 -8
- package/assets/templates/helpers/inspect-project-state.ts +1 -1
- package/assets/templates/helpers/migrate-project-template.sh +1 -1
- package/assets/templates/helpers/migrate-workflow-docs.ts +53 -239
- package/assets/templates/helpers/new-plan.sh +2 -2
- package/assets/templates/helpers/plan-to-todo.sh +3 -31
- package/assets/templates/helpers/sprint-backlog.sh +1 -1
- package/assets/templates/helpers/switch-plan.sh +1 -1
- package/assets/templates/helpers/workflow-contract.ts +1 -0
- package/assets/workflow-contract.v1.json +63 -171
- package/assets/workflows/xiaohongshu/xiaohongshu.collect-metrics.v1.draft.json +118 -0
- package/assets/workflows/xiaohongshu/xiaohongshu.publish-image-note.v1.draft.json +316 -0
- package/assets/workflows/xiaohongshu/xiaohongshu.publish-long-text.v1.draft.json +324 -0
- package/docs/architecture/CURRENT.md +233 -28
- package/docs/architecture/EVOLUTION.md +13 -0
- package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +2 -1
- package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +14 -5
- package/docs/architecture/decisions/20260823-immediate-controller-relay.md +6 -3
- package/docs/architecture/decisions/20260831-independent-windows-wsl-host-rescue.md +59 -0
- package/docs/architecture/decisions/20260904-ios-device-migration-baseline.md +120 -0
- package/docs/architecture/decisions/20260904-repository-runtime-data-boundary.md +42 -0
- package/docs/architecture/decisions/20260907-assistant-learning-loop.md +37 -0
- package/docs/architecture/decisions/20260907-controller-round-transition-policy.md +311 -0
- package/docs/architecture/decisions/20260907-maintenance-diagnosis-bounded-read.md +39 -0
- package/docs/architecture/decisions/20260916-workflow-supervisor-authority.md +249 -0
- package/docs/architecture/decisions/20260917-cognitive-memory-foundation.md +82 -0
- package/docs/architecture/decisions/20260918-stable-candidate-release-lifecycle.md +221 -0
- package/docs/architecture/decisions/20260919-autonomous-work-liveness.md +62 -0
- package/docs/architecture/decisions/20260924-thin-semantic-working-context.md +72 -0
- package/docs/architecture/decisions/20261001-supervisor-turn-authority.md +237 -0
- package/docs/architecture/decisions/20261005-forge-v3-desktop-client-boundary.md +77 -0
- package/docs/architecture/domains/verification.md +8 -0
- package/docs/architecture/domains/workflow-engine.md +7 -1
- package/docs/architecture/index.md +3 -3
- package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +19 -8
- package/docs/architecture/requests/2026-09-04-computer-plugin-workflow-taxonomy.md +124 -0
- package/docs/forge-chatgpt-mcp-setup.md +5 -3
- package/docs/forge-plugin-management.md +20 -4
- package/docs/forge-runtime-self-healing-loop.md +2 -0
- package/docs/operations/benchmark-cross-version-freeze.md +38 -0
- package/docs/operations/controller-browser-plugin.md +3 -1
- package/docs/operations/controller-performance-and-502.md +17 -0
- package/docs/operations/controller-reliability-runbook.md +2 -2
- package/docs/operations/features.md +1 -1
- package/docs/operations/features.zh-CN.md +1 -1
- package/docs/operations/homebrew.md +2 -2
- package/docs/operations/mcp-tool-exposure.md +2 -0
- package/docs/operations/platform-support.md +16 -8
- package/docs/operations/platform-support.zh-CN.md +2 -2
- package/docs/operations/releasing.md +2 -0
- package/docs/operations/standalone-disaster-recovery.md +38 -5
- package/docs/operations/uu-remote-rescue.md +41 -0
- package/docs/operations/windows-wsl-host-rescue.md +133 -0
- package/docs/public-usage-guide.md +1 -1
- package/docs/public-usage-guide.zh-CN.md +1 -1
- package/docs/tutorials/01-install-and-start.md +1 -1
- package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
- package/docs/tutorials/02-connect-chatgpt.md +4 -4
- package/docs/tutorials/02-connect-chatgpt.zh-CN.md +4 -4
- package/docs/wiki/Implementation.md +1 -1
- package/package.json +46 -26
- package/packages/kernel/cognition/api/index.ts +6 -0
- package/packages/kernel/cognition/application/activation-service.ts +451 -0
- package/packages/kernel/cognition/application/consolidation-service.ts +185 -0
- package/packages/kernel/cognition/application/legacy-experience-adapter.ts +38 -0
- package/packages/kernel/cognition/application/memory-service.ts +64 -0
- package/packages/kernel/cognition/domain/learning.ts +106 -0
- package/packages/kernel/cognition/domain/memory.ts +254 -0
- package/packages/kernel/controller/api/index.ts +3 -0
- package/packages/kernel/controller/application/continuation-service.ts +281 -0
- package/packages/kernel/controller/application/controller-round-service.ts +41 -0
- package/packages/kernel/controller/application/controller-service.ts +30 -0
- package/packages/kernel/controller/domain/controller-round-transition-policy.ts +529 -0
- package/packages/kernel/controller/domain/controller-round.ts +110 -0
- package/packages/kernel/controller/domain/execution-quality.ts +135 -0
- package/packages/kernel/controller/domain/types.ts +56 -0
- package/packages/kernel/controller/index.ts +1 -0
- package/packages/kernel/controller/infrastructure/controller-binding-store.ts +84 -0
- package/packages/kernel/controller/infrastructure/controller-round-store.ts +1970 -0
- package/packages/kernel/controller/infrastructure/controller-session-store.ts +804 -0
- package/packages/kernel/controller/ports/controller-host.ts +18 -0
- package/packages/kernel/goal/api/index.ts +1 -0
- package/packages/kernel/goal/domain/types.ts +40 -0
- package/packages/kernel/goal/index.ts +1 -0
- package/packages/kernel/identity/api/index.ts +15 -0
- package/packages/kernel/identity/application/identity-service.ts +67 -0
- package/packages/kernel/identity/domain/activity-projection.ts +43 -0
- package/packages/kernel/identity/domain/capability-broker.ts +60 -0
- package/packages/kernel/identity/domain/grant.ts +72 -0
- package/packages/kernel/identity/domain/owned-resource.ts +116 -0
- package/packages/kernel/identity/domain/scope.ts +63 -0
- package/packages/kernel/identity/domain/semantic-sync.ts +81 -0
- package/packages/kernel/identity/domain/types.ts +44 -0
- package/packages/kernel/identity/domain/user-request.ts +93 -0
- package/packages/kernel/identity/domain/workspace.ts +56 -0
- package/packages/kernel/identity/index.ts +1 -0
- package/packages/kernel/identity/infrastructure/activity-projection-store.ts +77 -0
- package/packages/kernel/identity/infrastructure/capability-broker.ts +81 -0
- package/packages/kernel/identity/infrastructure/grant-store.ts +284 -0
- package/packages/kernel/identity/infrastructure/identity-store.ts +75 -0
- package/packages/kernel/identity/infrastructure/owned-resource-store.ts +259 -0
- package/packages/kernel/identity/infrastructure/user-request-store.ts +182 -0
- package/packages/kernel/memory/api/index.ts +5 -0
- package/packages/kernel/memory/application/experience-service.ts +118 -0
- package/packages/kernel/memory/application/outcome-service.ts +77 -0
- package/packages/kernel/memory/domain/experience.ts +103 -0
- package/packages/kernel/memory/domain/operational-prior.ts +92 -0
- package/packages/kernel/memory/index.ts +1 -0
- package/packages/kernel/scheduler/api/index.ts +4 -0
- package/packages/kernel/scheduler/application/eligibility.ts +252 -0
- package/packages/kernel/scheduler/application/schedule-service.ts +27 -0
- package/packages/kernel/scheduler/application/settlement.ts +182 -0
- package/packages/kernel/scheduler/domain/schedule.ts +236 -0
- package/packages/kernel/scheduler/index.ts +1 -0
- package/packages/kernel/scheduler/infrastructure/schedule-store.ts +805 -0
- package/packages/kernel/work/api/index.ts +16 -0
- package/packages/kernel/work/application/work-service.ts +123 -0
- package/packages/kernel/work/domain/check-receipt.ts +43 -0
- package/packages/kernel/work/domain/context-closure-receipt.ts +32 -0
- package/packages/kernel/work/domain/current-task-lineage.ts +104 -0
- package/packages/kernel/work/domain/engineering-contracts.ts +157 -0
- package/packages/kernel/work/domain/engineering-design.ts +286 -0
- package/packages/kernel/work/domain/engineering-profile.ts +238 -0
- package/packages/kernel/work/domain/evaluation-promotion-receipt.ts +186 -0
- package/packages/kernel/work/domain/execution-concurrency.ts +247 -0
- package/packages/kernel/work/domain/execution-snapshot.ts +2 -0
- package/packages/kernel/work/domain/implementation-review.ts +193 -0
- package/packages/kernel/work/domain/objective-graph.ts +119 -0
- package/packages/kernel/work/domain/project-engineering-contract.ts +224 -0
- package/packages/kernel/work/domain/repository-completion-receipt.ts +73 -0
- package/{src/runtime/control-plane/facade/work-state-machine.ts → packages/kernel/work/domain/state-machine.ts} +37 -66
- package/packages/kernel/work/domain/types.ts +534 -0
- package/packages/kernel/work/index.ts +1 -0
- package/packages/kernel/work/infrastructure/work-contract-store.ts +1967 -0
- package/packages/kernel/work/ports/work-contract-store.ts +21 -0
- package/packages/plugin-runtime/browser/index.ts +3 -0
- package/packages/plugin-runtime/browser/provider-registry.ts +110 -0
- package/packages/plugin-runtime/browser/runtime-contract.ts +150 -0
- package/packages/plugin-runtime/browser/session-authority.ts +62 -0
- package/packages/plugin-runtime/computer/chatgpt-identity.ts +24 -0
- package/packages/plugin-runtime/computer/conversation-target.ts +143 -0
- package/packages/plugin-runtime/computer/index.ts +8 -0
- package/packages/plugin-runtime/computer/provider-error.ts +26 -0
- package/packages/plugin-runtime/computer/provider-registration.ts +52 -0
- package/packages/plugin-runtime/computer/provider-registry.ts +63 -0
- package/packages/plugin-runtime/computer/provider.ts +19 -0
- package/packages/plugin-runtime/computer/target-authority.ts +215 -0
- package/packages/plugin-runtime/computer/target-persistence.ts +54 -0
- package/packages/plugin-runtime/external/index.ts +1 -0
- package/packages/plugin-runtime/external/unix-jsonl-transport.ts +581 -0
- package/packages/plugin-runtime/index.ts +3 -0
- package/packages/protocols/browser/index.ts +1 -0
- package/packages/protocols/browser/session.ts +98 -0
- package/packages/protocols/computer/contract.ts +225 -0
- package/packages/protocols/computer/index.ts +1 -0
- package/packages/protocols/failure/contract.ts +158 -0
- package/packages/protocols/failure/index.ts +1 -0
- package/packages/protocols/handoff/index.ts +1 -0
- package/packages/protocols/handoff/status.ts +22 -0
- package/packages/protocols/mcp/execution-context.ts +11 -0
- package/packages/protocols/mcp/index.ts +2 -0
- package/packages/protocols/mcp/tool-contract.ts +42 -0
- package/packages/workflow-runtime/api/index.ts +2 -0
- package/packages/workflow-runtime/application/interpreter.ts +342 -0
- package/packages/workflow-runtime/domain/workflow-asset.ts +223 -0
- package/packages/workflow-runtime/index.ts +1 -0
- package/scripts/activate-source-baseline.ts +7 -9
- package/scripts/assemble-template.ts +1 -1
- package/scripts/bootstrap-runtime-maintenance-recovery.sh +4 -1
- package/scripts/canary-chatgpt-provider-delivery.ts +97 -0
- package/scripts/canary-controller-semantic-wait.ts +183 -0
- package/scripts/canary-global-hook.sh +2 -2
- package/scripts/check-mcp-compatibility.ts +85 -7
- package/scripts/check-platform-support.mjs +28 -2
- package/scripts/check-public-docs.sh +1 -1
- package/scripts/check-repository-hygiene.mjs +92 -0
- package/scripts/check-runtime-architecture.mjs +1643 -127
- package/scripts/check-source-duplication.mjs +9 -1
- package/scripts/controller-ngrok-rotation.sh +5 -4
- package/scripts/create-project-dirs.sh +10 -74
- package/scripts/forge-local-recovery-helper.mjs +282 -0
- package/scripts/forge-uu-remote-rescue-helper.d.mts +31 -0
- package/scripts/forge-uu-remote-rescue-helper.mjs +409 -0
- package/scripts/forge-windows-host-recovery-helper.mjs +136 -0
- package/scripts/hook-shim.sh +2 -2
- package/scripts/init-project.sh +12 -70
- package/scripts/install-desktop-operator-registration.ts +4 -2
- package/scripts/install-independent-windows-wsl-recovery.ts +125 -0
- package/scripts/install-standalone-recovery.ts +122 -10
- package/scripts/install-uu-remote-rescue-registration.ts +74 -0
- package/scripts/install-windows-host-recovery-registration.ts +22 -0
- package/scripts/lib/controller-home-env.sh +6 -3
- package/scripts/lib/project-init-lib.sh +42 -582
- package/scripts/migrate-chatgpt-automation-schedules.ts +2 -2
- package/scripts/migrate-windows-wsl-controller-home.ts +306 -0
- package/scripts/open-source-audit-allowlist.txt +11 -1
- package/scripts/portability-bindings.mjs +70 -0
- package/scripts/run-bounded-command.mjs +60 -0
- package/scripts/run-bun-test-file.ts +22 -6
- package/scripts/run-governed-gate.ts +4 -2
- package/scripts/run-mobile-monitor-bridge.ts +0 -1
- package/scripts/smoke-control-plane-failure-domain.ts +94 -0
- package/scripts/smoke-mcp-http-runtime.ts +6 -1
- package/scripts/smoke-runtime-recovery.ts +13 -11
- package/scripts/smoke-schedule-engine.ts +24 -16
- package/scripts/smoke-unattended-transport-recovery.ts +223 -0
- package/scripts/smoke-user-request-continuation-restart.ts +232 -0
- package/scripts/smoke-workflow-supervisor-chrome-adapter.ts +92 -0
- package/scripts/smoke-workflow-supervisor-process-restart.ts +276 -0
- package/scripts/smoke-workflow-supervisor-restart-recovery.ts +150 -0
- package/scripts/smoke-workflow-supervisor.ts +103 -0
- package/scripts/test-governance.ts +51 -2
- package/scripts/verify-forge-runtime.sh +2 -1
- package/src/cli/agent-jobs/executor-health.ts +11 -34
- package/src/cli/agent-jobs/integration.ts +18 -49
- package/src/cli/agent-jobs/job-manager.ts +17 -4
- package/src/cli/chatgpt-browser/bind-server.ts +2 -1
- package/src/cli/chatgpt-browser/binding.ts +20 -10
- package/src/cli/chatgpt-browser/bridge-extension.ts +75 -0
- package/src/cli/chatgpt-browser/bridge-provider.ts +376 -11
- package/src/cli/chatgpt-browser/engine.ts +10 -11
- package/src/cli/chatgpt-browser/native-provider.ts +24 -83
- package/src/cli/chatgpt-browser/oracle-provider.ts +5 -3
- package/src/cli/chatgpt-browser/types.ts +1 -0
- package/src/cli/commands/bootstrap-control.ts +334 -0
- package/src/cli/commands/brain-assistant.ts +52 -0
- package/src/cli/commands/brain.ts +191 -40
- package/src/cli/commands/chatgpt.ts +32 -67
- package/src/cli/commands/computer.ts +437 -0
- package/src/cli/commands/doctor.ts +18 -1
- package/src/cli/commands/init-hook.ts +71 -61
- package/src/cli/commands/init.ts +3 -1
- package/src/cli/commands/mcp.ts +16 -10
- package/src/cli/commands/plugin.ts +38 -12
- package/src/cli/commands/recovery.ts +507 -80
- package/src/cli/commands/runtime.ts +12 -7
- package/src/cli/commands/setup-profile.ts +97 -39
- package/src/cli/commands/status.ts +2 -1
- package/src/cli/controller/check-runner.ts +500 -100
- package/src/cli/controller/completion-backlog.ts +3 -3
- package/src/cli/controller/completion-orchestrator.ts +4 -43
- package/src/cli/controller/completion-target.ts +3 -72
- package/src/cli/controller/context/source-materializer.ts +81 -100
- package/src/cli/controller/context/types.ts +7 -1
- package/src/cli/controller/context-pack.ts +28 -6
- package/src/cli/controller/execution-completion.ts +4 -7
- package/src/cli/controller/execution-policy.ts +36 -153
- package/src/cli/controller/governance.ts +2 -3
- package/src/cli/controller/issue-store.ts +4 -99
- package/src/cli/controller/launch-agents.ts +59 -18
- package/src/cli/controller/operational-plan.ts +24 -51
- package/src/cli/controller/runtime-config.ts +5 -1
- package/src/cli/controller/stuck-state-migration.ts +2 -3
- package/src/cli/controller/systemd-user.ts +148 -0
- package/src/cli/controller/types.ts +10 -70
- package/src/cli/controller/worklog.ts +67 -13
- package/src/cli/editing/edit-operation-contract.ts +92 -0
- package/src/cli/editing/edit-session.ts +290 -20
- package/src/cli/github/plugin.ts +17 -12
- package/src/cli/hook/route-registry.ts +3 -5
- package/src/cli/hook/runtime.ts +49 -3
- package/src/cli/index.ts +3 -0
- package/src/cli/local-bridge/connector-freshness.ts +2 -2
- package/src/cli/local-bridge/console-automations.ts +20 -15
- package/src/cli/local-bridge/console-view-models.ts +3 -12
- package/src/cli/local-bridge/facade-api.ts +105 -205
- package/src/cli/local-bridge/job-store.ts +1 -1
- package/src/cli/local-bridge/server.ts +48 -174
- package/src/cli/local-bridge/types.ts +0 -1
- package/src/cli/mcp/access-mode.ts +2 -132
- package/src/cli/mcp/access-tools.ts +2 -387
- package/src/cli/mcp/audit.ts +2 -32
- package/src/cli/mcp/auth.ts +2 -404
- package/src/cli/mcp/instructions.ts +2 -34
- package/src/cli/mcp/legacy-context.ts +2 -16
- package/src/cli/mcp/legacy-tool-service.ts +2 -5308
- package/src/cli/mcp/multi-repository.ts +2 -436
- package/src/cli/mcp/oauth-client-retirement.ts +74 -0
- package/src/cli/mcp/oauth.ts +2 -375
- package/src/cli/mcp/openai-secure-tunnel.ts +2 -0
- package/src/cli/mcp/paths.ts +2 -140
- package/src/cli/mcp/policy.ts +2 -232
- package/src/cli/mcp/post-finalize-work-attribution.ts +2 -150
- package/src/cli/mcp/proxy-env.ts +2 -62
- package/src/cli/mcp/readiness-projection.ts +2 -24
- package/src/cli/mcp/redaction.ts +2 -21
- package/src/cli/mcp/repo.ts +2 -24
- package/src/cli/mcp/repository-tools.ts +2 -1613
- package/src/cli/mcp/server.ts +2 -951
- package/src/cli/mcp/setup.ts +2 -737
- package/src/cli/mcp/tool-capability-cache.ts +2 -87
- package/src/cli/mcp/tool-contract.ts +2 -14
- package/src/cli/mcp/tools.ts +2 -9
- package/src/cli/mcp/toolset-names.ts +2 -70
- package/src/cli/mcp/toolset-selection.ts +2 -41
- package/src/cli/mcp/toolset.ts +2 -336
- package/src/cli/mcp/transports/AGENTS.md +1 -10
- package/src/cli/mcp/transports/CLAUDE.md +1 -10
- package/src/cli/mcp/transports/http.ts +2 -1414
- package/src/cli/mcp/transports/session-registry.ts +2 -490
- package/src/cli/mcp/transports/stdio.ts +2 -8
- package/src/cli/mcp/types.ts +2 -41
- package/src/cli/mcp/umbrella-tools.ts +2 -117
- package/src/cli/repositories/command-executor.ts +91 -39
- package/src/cli/repositories/command-scope.ts +139 -4
- package/src/cli/repositories/controller-home.ts +167 -1
- package/src/cli/repositories/ephemeral-workspace.ts +20 -30
- package/src/cli/repositories/git-command-executor.ts +2 -2
- package/src/cli/repositories/identity.ts +13 -0
- package/src/cli/repositories/registry.ts +145 -60
- package/src/cli/repositories/repository-snapshot.ts +53 -7
- package/src/cli/repositories/runtime-storage.ts +27 -2
- package/src/cli/repositories/safe-patch.ts +34 -38
- package/src/cli/repositories/selected-path-actions.ts +22 -2
- package/src/cli/repositories/structured-git.ts +167 -27
- package/src/cli/repository/session-cache.ts +92 -6
- package/src/cli/runtime/helper-runner.ts +7 -0
- package/src/cli/runtime-invocation.ts +8 -1
- package/src/cli/tools/codegraph.ts +44 -25
- package/src/core/adoption/manifest-templates.ts +1 -1
- package/src/core/adoption/plan.ts +3 -26
- package/src/core/adoption/workflow-contract-plan.ts +17 -9
- package/src/effects/process-runner.ts +8 -14
- package/src/runtime/context/assistant-context.ts +167 -0
- package/src/runtime/context/assistant-work-context.ts +209 -0
- package/src/runtime/context/automatic-learning.ts +565 -0
- package/src/runtime/context/codegraph-cache-boundary.ts +255 -0
- package/src/runtime/context/codegraph-read-provider.ts +55 -22
- package/src/runtime/context/codegraph-sidecar.cjs +8 -1
- package/src/runtime/context/cognitive-attention.ts +173 -0
- package/src/runtime/context/cognitive-skill-canary.ts +158 -0
- package/src/runtime/context/context-closure.ts +305 -0
- package/src/runtime/context/context-pack-process.ts +103 -0
- package/src/runtime/context/context-plane.ts +203 -0
- package/src/runtime/context/direct-controller-learning.ts +298 -0
- package/src/runtime/context/project-engineering-contract.ts +60 -0
- package/src/runtime/context/semantic-navigation-contract.ts +9 -0
- package/src/runtime/context/semantic-navigation.ts +6 -34
- package/src/runtime/context/typescript-navigation-process.ts +145 -0
- package/src/runtime/context/typescript-navigation.ts +89 -3
- package/src/runtime/control-plane/bootstrap/capability-provider.ts +74 -0
- package/src/runtime/control-plane/bootstrap/control-api.ts +57 -0
- package/src/runtime/control-plane/bootstrap/index.ts +5 -0
- package/src/runtime/control-plane/bootstrap/state-machine.ts +141 -0
- package/src/runtime/control-plane/bootstrap/store.ts +21 -0
- package/src/runtime/control-plane/bootstrap/types.ts +87 -0
- package/src/runtime/control-plane/cleanup-artifact-retention.ts +531 -0
- package/src/runtime/control-plane/codegraph-cache-retention.ts +164 -0
- package/src/runtime/control-plane/concurrency/work-execution-concurrency.ts +282 -0
- package/src/runtime/control-plane/execution/controller-authority-recovery.ts +380 -0
- package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +113 -16
- package/src/runtime/control-plane/execution/execution-identity.ts +23 -3
- package/src/runtime/control-plane/execution/implementation-review-content.ts +95 -0
- package/src/runtime/control-plane/execution/repository-work-attribution.ts +7 -30
- package/src/runtime/control-plane/execution/retained-work-resume.ts +439 -102
- package/src/runtime/control-plane/execution/session-store.ts +31 -1
- package/src/runtime/control-plane/execution/validation.ts +34 -11
- package/src/runtime/control-plane/execution/work-authority-reconciler.ts +87 -0
- package/src/runtime/control-plane/execution/work-check-evidence.ts +137 -0
- package/src/runtime/control-plane/execution/work-completion-authority.ts +31 -44
- package/src/runtime/control-plane/execution/work-delivery-service.ts +497 -0
- package/src/runtime/control-plane/execution/work-evidence-policy.ts +46 -53
- package/src/runtime/control-plane/execution/work-execution-support.ts +85 -164
- package/src/runtime/control-plane/execution/work-handle-authority.ts +349 -73
- package/src/runtime/control-plane/execution/work-handle-store.ts +55 -2
- package/src/runtime/control-plane/execution/work-head-settlement.ts +108 -0
- package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +173 -28
- package/src/runtime/control-plane/execution/work-operation-service.ts +92 -40
- package/src/runtime/control-plane/execution/work-preparation-service.ts +145 -269
- package/src/runtime/control-plane/execution/work-remote-delivery.ts +2 -3
- package/src/runtime/control-plane/execution/work-revision-diff.ts +39 -0
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +543 -225
- package/src/runtime/control-plane/execution/work-validation-reconciler.ts +59 -45
- package/src/runtime/control-plane/execution/work-verification-context.ts +1 -1
- package/src/runtime/control-plane/execution/work-verification-service.ts +662 -52
- package/src/runtime/control-plane/execution/work-verification-snapshot.ts +205 -16
- package/src/runtime/control-plane/facade/capability-registry.ts +380 -44
- package/src/runtime/control-plane/facade/check-normalization.ts +3 -9
- package/src/runtime/control-plane/facade/codex-delegation.ts +10 -11
- package/src/runtime/control-plane/facade/controller-connection.ts +135 -0
- package/src/runtime/control-plane/facade/controller-session-store.ts +2 -488
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +6 -22
- package/src/runtime/control-plane/facade/goal-workloop.ts +565 -1202
- package/src/runtime/control-plane/facade/handoff-inbox-application.ts +145 -0
- package/src/runtime/control-plane/facade/handoff-inbox-store.ts +266 -52
- package/src/runtime/control-plane/facade/index.ts +4 -3
- package/src/runtime/control-plane/facade/operation-digest.ts +34 -73
- package/src/runtime/control-plane/facade/plan-contract-store.ts +671 -245
- package/src/runtime/control-plane/facade/policy-gate.ts +0 -23
- package/src/runtime/control-plane/facade/repository-work-admission.ts +31 -23
- package/src/runtime/control-plane/facade/requirement-authority.ts +121 -0
- package/src/runtime/control-plane/facade/requirement-board.ts +9 -4
- package/src/runtime/control-plane/facade/rh-work-operation-contract.ts +85 -0
- package/src/runtime/control-plane/facade/self-healing-loop.ts +18 -53
- package/src/runtime/control-plane/facade/semantic-admission.ts +8 -16
- package/src/runtime/control-plane/facade/suggested-actions.ts +15 -15
- package/src/runtime/control-plane/facade/types.ts +218 -620
- package/src/runtime/control-plane/facade/work-continuation.ts +8 -8
- package/src/runtime/control-plane/facade/work-contract-store.ts +2 -1043
- package/src/runtime/control-plane/generated-cache-retention.ts +336 -19
- package/src/runtime/control-plane/global-scheduler/autonomous-continuation.ts +248 -0
- package/src/runtime/control-plane/global-scheduler/durable-admission.ts +13 -2
- package/src/runtime/control-plane/global-scheduler/maintenance.ts +274 -84
- package/src/runtime/control-plane/global-scheduler/periodic-cleanup-entry.ts +55 -0
- package/src/runtime/control-plane/global-scheduler/periodic-cleanup-process.ts +98 -0
- package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -2
- package/src/runtime/control-plane/global-scheduler/scheduler-worker-entry.ts +10 -0
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +227 -109
- package/src/runtime/control-plane/global-scheduler/wake-signal.ts +42 -2
- package/src/runtime/control-plane/global-scheduler/worker-launch.ts +18 -6
- package/src/runtime/control-plane/governance/access-policy.ts +19 -2
- package/src/runtime/control-plane/governance/authorization.ts +20 -3
- package/src/runtime/control-plane/launcher/chatgpt-round-continuation.ts +160 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +2 -177
- package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +139 -670
- package/src/runtime/control-plane/launcher/local-conversation-controller.ts +238 -0
- package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +25 -6
- package/src/runtime/control-plane/launcher/thin-launcher.ts +96 -194
- package/src/runtime/control-plane/lifecycle-retention-metrics.ts +60 -0
- package/src/runtime/control-plane/persistence/cognition-store.ts +820 -0
- package/src/runtime/control-plane/persistence/experience-store.ts +302 -0
- package/src/runtime/control-plane/persistence/operational-prior-store.ts +348 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +230 -80
- package/src/runtime/control-plane/persistence/sqlite-store.ts +654 -78
- package/src/runtime/control-plane/persistence/workflow-content-store.ts +98 -0
- package/src/runtime/control-plane/persistence/workflow-registry-store.ts +186 -0
- package/src/runtime/control-plane/persistence/workflow-run-store.ts +123 -0
- package/src/runtime/control-plane/release-retention.ts +154 -26
- package/src/runtime/control-plane/repository-namespace-retention.ts +208 -0
- package/src/runtime/control-plane/runtime-cleanup.ts +844 -38
- package/src/runtime/control-plane/runtime-generation.ts +6 -0
- package/src/runtime/control-plane/workspace/project-onboarding.ts +80 -0
- package/src/runtime/control-plane/workspace/semantic-sync-service.ts +479 -0
- package/src/runtime/control-plane/workspace/workspace-store.ts +249 -0
- package/src/runtime/diagnostics/incident-repair.ts +573 -0
- package/src/runtime/diagnostics/mcp-timing.ts +239 -6
- package/src/runtime/diagnostics/performance.ts +6 -14
- package/src/runtime/diagnostics/read-only-tool.ts +1 -1
- package/src/runtime/evidence/artifact-store.ts +216 -35
- package/src/runtime/evidence/evidence-store.ts +112 -8
- package/src/runtime/evidence/operational-shadow.ts +38 -0
- package/src/runtime/evidence/output-handle-index.ts +225 -0
- package/src/runtime/evidence/process-check-receipt.ts +5 -43
- package/src/runtime/evidence/result-store.ts +158 -44
- package/src/runtime/evidence/sensitive-output.ts +4 -4
- package/src/runtime/execution/jobs/receipt-recovery.ts +1 -1
- package/src/runtime/execution/jobs/store.ts +124 -6
- package/src/runtime/execution/managed-workspace.ts +112 -5
- package/src/runtime/execution/process-runtime/canary.ts +19 -5
- package/src/runtime/execution/process-runtime/check-classification.ts +48 -0
- package/src/runtime/execution/process-runtime/check-facade.ts +24 -10
- package/src/runtime/execution/process-runtime/check-receipt.ts +1 -1
- package/src/runtime/execution/process-runtime/check-result-retention.ts +132 -0
- package/src/runtime/execution/process-runtime/check-result.ts +177 -2
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +58 -9
- package/src/runtime/execution/process-runtime/check-storage.ts +187 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +117 -114
- package/src/runtime/execution/process-runtime/gc.ts +15 -2
- package/src/runtime/execution/process-runtime/handle-index.ts +176 -0
- package/src/runtime/execution/process-runtime/host-command-lane.ts +139 -0
- package/src/runtime/execution/process-runtime/index.ts +4 -0
- package/src/runtime/execution/process-runtime/interactive-admission.ts +2 -1
- package/src/runtime/execution/process-runtime/lightweight-managed.ts +283 -73
- package/src/runtime/execution/process-runtime/persisted-check.ts +130 -23
- package/src/runtime/execution/process-runtime/process-runner-entry.ts +47 -5
- package/src/runtime/execution/process-runtime/process-scope.ts +160 -0
- package/src/runtime/execution/process-runtime/resource-claims.ts +125 -64
- package/src/runtime/execution/process-runtime/runtime.ts +167 -17
- package/src/runtime/execution/process-runtime/store.ts +30 -2
- package/src/runtime/execution/process-runtime/types.ts +27 -0
- package/src/runtime/execution/workers/executor.ts +18 -19
- package/src/runtime/execution/workers/worker-entry.ts +1 -1
- package/src/runtime/gateway/mcp/execution-tools.ts +2 -207
- package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +2 -61
- package/src/runtime/gateway/mcp/persisted-check-process.ts +2 -3
- package/src/runtime/gateway/mcp/process-tools.ts +2 -289
- package/src/runtime/gateway/mcp/router.ts +2 -1125
- package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +2 -565
- package/src/runtime/gateway/mcp/runtime-tools.ts +2 -6655
- package/src/runtime/gateway/mcp/work-validation-reconciler.ts +2 -1
- package/src/runtime/maintenance/cleanup.ts +38 -24
- package/src/runtime/platform/browser-product-discovery.ts +174 -0
- package/src/runtime/platform/computer-platform.ts +14 -0
- package/src/runtime/platform/executable-discovery.ts +54 -0
- package/src/runtime/platform/fetch-http-server.ts +90 -0
- package/src/runtime/platform/service-inventory.ts +130 -0
- package/src/runtime/platform/service-manager.ts +146 -0
- package/src/runtime/platform/windows-host-discovery.ts +118 -0
- package/src/runtime/platform/windows-recovery-deployment.ts +67 -0
- package/src/runtime/plugins/action-application.ts +192 -0
- package/src/runtime/plugins/app-store-connect-adapter.ts +47 -35
- package/src/runtime/plugins/browser-adapter.ts +898 -135
- package/src/runtime/plugins/browser-automation-service.ts +33 -34
- package/src/runtime/plugins/browser-macos-bridge.ts +386 -46
- package/src/runtime/plugins/browser-manifest-surface.ts +75 -17
- package/src/runtime/plugins/browser-native-session-service.ts +64 -14
- package/src/runtime/plugins/browser-provider-registry.ts +2 -109
- package/src/runtime/plugins/browser-registration.ts +32 -0
- package/src/runtime/plugins/browser-runtime-contract.ts +2 -154
- package/src/runtime/plugins/browser-runtime.ts +55 -10
- package/src/runtime/plugins/browser-session-authority.ts +101 -291
- package/src/runtime/plugins/browser-session-legacy-migration.ts +203 -0
- package/src/runtime/plugins/browser-session-store.ts +243 -80
- package/src/runtime/plugins/browser-session-types.ts +2 -98
- package/src/runtime/plugins/capability-authorization-grants.ts +272 -59
- package/src/runtime/plugins/catalog-trust.ts +82 -0
- package/src/runtime/plugins/computer-chatgpt-browser-adapter-installer.ts +219 -0
- package/src/runtime/plugins/computer-chatgpt-macos-target.ts +891 -0
- package/src/runtime/plugins/computer-registration.ts +1050 -0
- package/src/runtime/plugins/config-store.ts +119 -0
- package/src/runtime/plugins/desktop-operator-external-policy.ts +964 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +123 -12
- package/src/runtime/plugins/errors.ts +8 -1
- package/src/runtime/plugins/external-adapter.ts +82 -323
- package/src/runtime/plugins/external-provider-policy.ts +48 -0
- package/src/runtime/plugins/external-registration.ts +30 -2
- package/src/runtime/plugins/external-unix-socket-probe.cjs +9 -3
- package/src/runtime/plugins/external-unix-socket.ts +64 -193
- package/src/runtime/plugins/first-party-external-registration.ts +163 -0
- package/src/runtime/plugins/first-party-registry.ts +3 -1
- package/src/runtime/plugins/github-adapter.ts +1 -2
- package/src/runtime/plugins/gmail-adapter.ts +29 -8
- package/src/runtime/plugins/google-calendar-adapter.ts +8 -8
- package/src/runtime/plugins/google-shared.ts +45 -53
- package/src/runtime/plugins/google-tasks-adapter.ts +8 -8
- package/src/runtime/plugins/ios-adapter.ts +2 -3
- package/src/runtime/plugins/lightweight-action.ts +208 -2
- package/src/runtime/plugins/local-system-adapter.ts +192 -2
- package/src/runtime/plugins/macos-capability-broker.ts +15 -105
- package/src/runtime/plugins/managed-process-adapter.ts +12 -5
- package/src/runtime/plugins/plugin-action-sidecar.ts +17 -13
- package/src/runtime/plugins/plugin-management-adapter.ts +1 -1
- package/src/runtime/plugins/resend-adapter.ts +15 -24
- package/src/runtime/plugins/store.ts +1003 -387
- package/src/runtime/plugins/types.ts +28 -1
- package/src/runtime/plugins/uu-remote-rescue-registration.ts +155 -0
- package/src/runtime/plugins/windows-host-recovery-install.ts +68 -0
- package/src/runtime/plugins/windows-host-recovery-registration.ts +85 -0
- package/src/runtime/plugins/xiaohongshu-publish.ts +102 -430
- package/src/runtime/projections/controller-context.ts +12 -6
- package/src/runtime/projections/git-status-sampler.ts +73 -22
- package/src/runtime/projections/invalidation.ts +7 -3
- package/src/runtime/projections/materialized-view.ts +93 -43
- package/src/runtime/recovery/actions.ts +3 -3
- package/src/runtime/recovery/capability-action-application.ts +229 -0
- package/src/runtime/recovery/index.ts +3 -0
- package/src/runtime/recovery/lifecycle-inventory.ts +338 -0
- package/src/runtime/recovery/local-jobs-repair.ts +14 -14
- package/src/runtime/recovery/maintenance-executor.ts +701 -168
- package/src/runtime/recovery/quarantine-retention.ts +256 -0
- package/src/runtime/recovery/store.ts +29 -11
- package/src/runtime/release/identity.ts +6 -0
- package/src/runtime/release/release-coordinator.ts +296 -0
- package/src/runtime/release/release-session.ts +716 -0
- package/src/runtime/release/release-state-migration.ts +25 -0
- package/src/runtime/resources/leases/store.ts +56 -25
- package/src/runtime/root/active-execution-power-assertion.ts +139 -0
- package/src/runtime/root/assistant-learning-loop.ts +45 -0
- package/src/runtime/root/browser-session-composition.ts +59 -0
- package/src/runtime/root/computer-composition.ts +376 -0
- package/src/runtime/root/computer-target-composition.ts +16 -0
- package/src/runtime/root/computer-target-persistence.ts +39 -0
- package/src/runtime/root/controller-progression-composition.ts +192 -0
- package/src/runtime/root/controller-round-composition.ts +126 -0
- package/src/runtime/root/controller-services.ts +2 -0
- package/src/runtime/root/deployment-topology.ts +106 -0
- package/src/runtime/root/entry.ts +8 -6
- package/src/runtime/root/gateway-adapter.ts +3 -3
- package/src/runtime/root/known-good-recovery.ts +184 -0
- package/src/runtime/root/local-bridge.ts +5 -3
- package/src/runtime/root/mcp-transport.ts +116 -23
- package/src/runtime/root/ownership.ts +261 -9
- package/src/runtime/root/package-connector-service.ts +212 -74
- package/src/runtime/root/package-runtime-release.ts +199 -33
- package/src/runtime/root/package-runtime-service.ts +77 -108
- package/src/runtime/root/release-execution-canary.ts +103 -0
- package/src/runtime/root/release-loader.ts +150 -0
- package/src/runtime/root/release-manifest.ts +185 -7
- package/src/runtime/root/release-materialize.ts +474 -31
- package/src/runtime/root/release-store.ts +425 -37
- package/src/runtime/root/runtime-lane.ts +191 -0
- package/src/runtime/root/runtime.ts +379 -32
- package/src/runtime/root/scheduled-controller-composition.ts +76 -0
- package/src/runtime/root/scheduler.ts +12 -4
- package/src/runtime/root/service-runner.ts +3 -3
- package/src/runtime/root/service.ts +73 -45
- package/src/runtime/root/status.ts +49 -0
- package/src/runtime/root/types.ts +55 -3
- package/src/runtime/root/workflow-supervisor-composition.ts +493 -0
- package/src/runtime/root/workflow-supervisor-runtime.ts +209 -0
- package/src/runtime/root/write-fence.ts +50 -2
- package/src/runtime/safe-tooling/google-credential-store.ts +76 -21
- package/src/runtime/safe-tooling/google-oauth-broker.ts +25 -7
- package/src/runtime/safe-tooling/workspace-auth.ts +1 -1
- package/src/runtime/shared/bounded-child-supervisor.ts +9 -1
- package/src/runtime/shared/local-bridge-surface.ts +1 -1
- package/src/runtime/shared/process-environment.ts +36 -10
- package/src/runtime/shared/response-budget.ts +1 -3
- package/src/runtime/shared/storage-capacity.ts +68 -0
- package/src/runtime/standalone-recovery/controller-home-migration.ts +1108 -0
- package/src/runtime/standalone-recovery/core.ts +4609 -495
- package/src/runtime/standalone-recovery/entry.ts +642 -81
- package/src/runtime/standalone-recovery/independent-host-rescue.ts +172 -0
- package/src/runtime/standalone-recovery/installer.ts +399 -177
- package/src/runtime/standalone-recovery/mcp-server.ts +79 -0
- package/src/runtime/standalone-recovery/mutation-identity-contract.ts +21 -0
- package/src/runtime/standalone-recovery/operation-lock.ts +160 -0
- package/src/runtime/standalone-recovery/performance.ts +173 -0
- package/src/runtime/standalone-recovery/release.ts +58 -5
- package/src/runtime/standalone-recovery/service-labels.ts +5 -2
- package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +5 -2
- package/src/runtime/watchdog/workflow-watchdog.ts +1 -1
- package/src/runtime/workflow/schedules/browser-probe.ts +17 -6
- package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +11 -4
- package/src/runtime/workflow/schedules/engine.ts +298 -484
- package/src/runtime/workflow/schedules/pending-activation.ts +1 -1
- package/src/runtime/workflow/schedules/settlement.ts +2 -191
- package/src/runtime/workflow/schedules/store.ts +2 -607
- package/src/runtime/workflow/schedules/types.ts +2 -127
- package/src/runtime/workflow/schedules/work-continuation.ts +220 -16
- package/src/runtime/workflows/first-party/xiaohongshu.ts +122 -0
- package/src/runtime/workflows/runtime.ts +482 -0
- package/src/testing/test-governance.ts +95 -30
- package/supervisor/chatgpt-conversation.ts +23 -0
- package/supervisor/client.ts +201 -0
- package/supervisor/control-plane.ts +868 -0
- package/supervisor/entry.ts +15 -0
- package/supervisor/forge-validators.ts +80 -0
- package/supervisor/index.ts +5 -0
- package/supervisor/native-browser-adapter.ts +786 -0
- package/supervisor/native-messaging/host.ts +39 -0
- package/supervisor/native-messaging/manifest.ts +26 -0
- package/supervisor/native-messaging/protocol.ts +27 -0
- package/supervisor/paths.ts +18 -0
- package/supervisor/protocol.ts +202 -0
- package/supervisor/server.ts +404 -0
- package/supervisor/store.ts +1451 -0
- package/supervisor/tsconfig.json +8 -0
- package/supervisor/types.ts +255 -0
- package/assets/templates/helpers/archive-architecture-request.sh +0 -244
- package/docs/architecture/history/README.md +0 -7
- package/docs/architecture/history/chatgpt-handoff-facade.md +0 -397
- package/docs/architecture/history/global-hook-runtime.md +0 -166
- package/docs/architecture/history/ios-semantic-automation-provider-v2.md +0 -170
- package/docs/architecture/requests/archive/2026/20260528-154740-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-154816-assets-hooks-assets-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161851-ai-harness-workflow-contract-json-ai-harness-workflow-contract-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161853-scripts-check-task-workflow-sh-scripts-check-task-workflow-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-161911-assets-workflow-contract-v1-json-assets-workflow-contract-v1-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222416-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222444-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222457-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222648-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222705-ai-hooks-ai-hooks-worktree-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222726-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-222727-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-224736-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233259-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233335-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233456-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233457-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233637-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260528-233638-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-000322-root-package-json.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-004238-ai-hooks-ai-hooks-lib-workflow-state-sh.md +0 -59
- package/docs/architecture/requests/archive/2026/20260529-020654-ai-harness-policy-json-ai-harness-policy-json.md +0 -63
- package/docs/architecture/requests/archive/2026/20260529-094236-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094323-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094331-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094339-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094430-assets-hooks-assets-hooks-session-start-context-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260529-094446-ai-hooks-ai-hooks-session-start-context-sh.md +0 -60
- package/docs/architecture/requests/archive/2026/20260613-002040-runtime-harness-hook-adapters.md +0 -68
- package/docs/architecture/requests/archive/2026/root.md +0 -68
- package/docs/architecture/requests/archive/2026/runtime-harness-hook-adapters.md +0 -76
- package/docs/architecture/requests/archive/2026/verification-evals-checks.md +0 -68
- package/docs/architecture/requests/archive/2026/workflow-engine-contract-assets.md +0 -69
- package/scripts/archive-architecture-request.sh +0 -4
- package/scripts/benchmark-background-check-overlap.ts +0 -228
- package/scripts/benchmark-controller-hotpath.ts +0 -212
- package/scripts/benchmark-controller-round2.ts +0 -139
- package/scripts/benchmark-ios-agent-device.ts +0 -514
- package/scripts/benchmark-mcp-host.sh +0 -117
- package/scripts/benchmark-mcp-transport.ts +0 -170
- package/scripts/benchmark-quality-harness.ts +0 -146
- package/scripts/benchmark-route-session-concurrency.ts +0 -915
- package/scripts/benchmark-thin-harness-gateway-ab.ts +0 -632
- package/scripts/benchmark-thin-harness-mcp-e2e.ts +0 -498
- package/scripts/benchmark-thin-harness.ts +0 -251
- package/scripts/benchmark-typescript-navigation.ts +0 -186
- package/scripts/benchmark-work-efficiency.ts +0 -334
- package/scripts/build-controller-ui.ts +0 -28
- package/scripts/check-npm-release.sh +0 -32
- package/scripts/check-public-release-surface.sh +0 -19
- package/scripts/check-release-published.sh +0 -57
- package/scripts/check-release-readiness.sh +0 -37
- package/scripts/check-release-version.mjs +0 -74
- package/scripts/check-tarball-install-smoke.sh +0 -67
- package/scripts/package-source-archive.sh +0 -147
- package/scripts/public-release-files.txt +0 -39
- package/scripts/public-release.ts +0 -174
- package/scripts/publish-release-tarball.sh +0 -27
- package/scripts/route-nl-vs-ts-eval.ts +0 -679
- package/scripts/run-skill-evals.ts +0 -1022
- package/scripts/stage-runtime-release.ts +0 -39
- package/src/cli/controller/progress.ts +0 -656
- package/src/cli/controller/work-mode.ts +0 -181
- package/src/cli/local-bridge/console-assets.ts +0 -17
- package/src/cli/local-bridge/dashboard.ts +0 -17
- package/src/cli/local-bridge/frontend/src/App.tsx +0 -10
- package/src/cli/local-bridge/frontend/src/components/Button.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/DetailPane.tsx +0 -3
- package/src/cli/local-bridge/frontend/src/components/SearchField.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/SectionHeader.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/Segmented.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/components/StatusText.tsx +0 -3
- package/src/cli/local-bridge/frontend/src/design/icons.tsx +0 -11
- package/src/cli/local-bridge/frontend/src/design/tokens.css +0 -8
- package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +0 -153
- package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +0 -37
- package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +0 -183
- package/src/cli/local-bridge/frontend/src/features/repositories/RepositoriesView.tsx +0 -2
- package/src/cli/local-bridge/frontend/src/features/system/SystemView.tsx +0 -2
- package/src/cli/local-bridge/frontend/src/features/work/WorkView.tsx +0 -4
- package/src/cli/local-bridge/frontend/src/lib/api.ts +0 -30
- package/src/cli/local-bridge/frontend/src/lib/format.ts +0 -4
- package/src/cli/local-bridge/frontend/src/lib/routes.ts +0 -7
- package/src/cli/local-bridge/frontend/src/main.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/shell/AppShell.tsx +0 -1
- package/src/cli/local-bridge/frontend/src/shell/CommandBar.tsx +0 -2
- package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +0 -4
- package/src/cli/local-bridge/frontend/src/styles.css +0 -28
- package/src/cli/local-bridge/frontend/src/types.ts +0 -15
- package/src/cli/local-bridge/frontend/src/vite-env.d.ts +0 -1
- package/src/cli/local-bridge/frontend/vite.config.ts +0 -27
- package/src/cli/local-bridge/ui-dist/app.css +0 -1
- package/src/cli/local-bridge/ui-dist/app.js +0 -11228
- package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +0 -385
- package/src/runtime/control-plane/execution/work-finalization-service.ts +0 -1913
- package/src/runtime/control-plane/execution/work-path-scope.ts +0 -37
- package/src/runtime/control-plane/execution/work-task-receipt.ts +0 -449
- package/src/runtime/control-plane/facade/controller-round-relay.ts +0 -1118
- package/src/runtime/control-plane/facade/work-admission-policy.ts +0 -93
- package/src/runtime/control-plane/facade/work-task-projection.ts +0 -66
- package/src/runtime/control-plane/routing/index.ts +0 -1
- package/src/runtime/control-plane/routing/route-policy.ts +0 -382
- package/src/runtime/control-plane/routing/workspace-admission.ts +0 -70
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
import type { McpToolDefinition } from '../../../packages/protocols/mcp/tool-contract';
|
|
2
|
+
import { CONTROLLER_CONTEXT_IMPACT_DOMAINS } from '../../../src/cli/controller/context/types';
|
|
3
|
+
import { RH_WORK_MODEL_OPERATIONS } from '../../../src/runtime/control-plane/facade/rh-work-operation-contract';
|
|
4
|
+
import { CONTROLLER_LEARNING_SIGNAL_ENVELOPE_MAX_ITEMS } from '../../../src/runtime/context/automatic-learning';
|
|
5
|
+
|
|
6
|
+
function definition(name: string, description: string, properties: Record<string, unknown>, required: string[] = [], readOnly = true): McpToolDefinition {
|
|
7
|
+
return {
|
|
8
|
+
name,
|
|
9
|
+
description,
|
|
10
|
+
inputSchema: { type: 'object', properties, ...(required.length ? { required } : {}), additionalProperties: false },
|
|
11
|
+
annotations: { readOnlyHint: readOnly, openWorldHint: false, destructiveHint: false },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const repoId = { type: 'string', description: 'Stable repository id.' };
|
|
15
|
+
export const runtimeToolDefinitions: McpToolDefinition[] = [
|
|
16
|
+
definition('rh_status', 'Preferred ChatGPT facade: bounded controller status, capability readiness, and self-healing diagnose/repair.', {
|
|
17
|
+
repo_id: repoId,
|
|
18
|
+
operation: { type: 'string', enum: ['list', 'get', 'repair'], description: 'Defaults to get.' },
|
|
19
|
+
detail_level: { type: 'string', enum: ['summary', 'detail'], description: 'Defaults to summary.' },
|
|
20
|
+
include_maintenance: { type: 'boolean', description: 'For detail reads only. Runs the explicit bounded maintenance inspection; defaults to false so status remains a hot read.' },
|
|
21
|
+
repair_operation: { type: 'string', enum: ['diagnose', 'repair', 'verify', 'handoff'] },
|
|
22
|
+
dry_run: { type: 'boolean', description: 'Defaults to true for repair/diagnose.' },
|
|
23
|
+
approval_confirmed: { type: 'boolean' },
|
|
24
|
+
chatgpt_pull_failed: { type: 'boolean' },
|
|
25
|
+
destructive: { type: 'boolean' },
|
|
26
|
+
}),
|
|
27
|
+
definition('rh_inbox', 'Preferred ChatGPT facade: instance-level UserRequest inbox for genuine human actions/decisions. Repository-scoped handoff_id remains a legacy compatibility lookup.', {
|
|
28
|
+
repo_id: { ...repoId, description: 'Optional legacy repository context. Omit for canonical instance-level UserRequest operations.' },
|
|
29
|
+
operation: { type: 'string', enum: ['list', 'get', 'ack', 'accept', 'resolve', 'dismiss', 'create'], description: 'Defaults to list (pending).' },
|
|
30
|
+
request_id: { type: 'string', description: 'Canonical instance-level UserRequest id.' },
|
|
31
|
+
handoff_id: { type: 'string', description: 'Legacy compatibility id.' },
|
|
32
|
+
work_id: { type: 'string' },
|
|
33
|
+
title: { type: 'string' },
|
|
34
|
+
reason: { type: 'string' },
|
|
35
|
+
summary: { type: 'string' },
|
|
36
|
+
recommended_decision: { type: 'string' },
|
|
37
|
+
recommended_prompt: { type: 'string' },
|
|
38
|
+
action_required: { type: 'string', enum: ['login', 'grant_permission', 'confirm_destructive', 'product_decision'] },
|
|
39
|
+
request_kind: { type: 'string', enum: ['user_action_request', 'user_decision_request'] },
|
|
40
|
+
root_cause_key: { type: 'string' },
|
|
41
|
+
decision: { type: 'string', description: 'Recorded on resolve/dismiss.' },
|
|
42
|
+
resolver: { type: 'string', description: 'Who resolved or dismissed the handoff.' },
|
|
43
|
+
detail_level: { type: 'string', enum: ['summary', 'detail'] },
|
|
44
|
+
limit: { type: 'number' },
|
|
45
|
+
}),
|
|
46
|
+
definition('rh_context', 'Preferred ChatGPT facade and default repository code-discovery/read path. Semantic task/capability queries can also recall an initial bounded, relevance-gated Cognitive advisory working set when Project/Workspace scope is available. That first pack is an attention envelope, never a claim that the top N items are cognitively complete. Reuse it through routine micro-steps; when the model judges prior context insufficient, progressively narrow/expand recall with another semantic query or explicit knowledge audit. Start broad once to combine heuristic lexical discovery, current raw source, and optional CodeGraph structural evidence with few round trips. Natural-language lexical terms are discovery hints: do not require every guessed term to match and do not repeat the same broad search merely because a heuristic term missed. After credible files or symbols are found, derive follow-up paths/symbols from the returned source and prefer known_paths, compiler semantic_navigation/@tsnav for TypeScript, or structural relationships before another broad lexical pass. Call rh_context repeatedly only when that progressive expansion can materially improve correctness; follow-ups reuse session-scoped evidence when source identity is unchanged. Shell rg/grep/sed/cat loops are fallback-only when this Context Plane cannot supply the needed evidence.', {
|
|
47
|
+
repo_id: repoId,
|
|
48
|
+
checkout_id: { type: 'string', description: 'Optional checkout identity for repositories with multiple worktrees.' },
|
|
49
|
+
operation: { type: 'string', enum: ['list', 'get', 'search'], description: 'Defaults to get. Use search as the default code-location path when an exact file is unknown.' },
|
|
50
|
+
query: { type: 'string', description: 'Code/content intent for operation=search. For operation=list, a natural-language capability intent such as "configure Xcode provisioning" returns ranked read-only capability candidates while execution remains on the capability\'s typed executor. Frozen-schema clients may append @tsnav or @swiftnav references|definition|implementations <repo-path>:<line>:<column> for compiler/LSP-backed semantic navigation.' },
|
|
51
|
+
include_learning_recall: { type: 'boolean', description: 'Defaults to true for semantic task/capability queries. Set false for routine progressive source follow-ups or micro-steps when the already recalled working set is still valid. This is a model-owned attention/cadence choice, not a Forge semantic trigger.' },
|
|
52
|
+
knowledge_query: { type: 'string', description: 'Optional explicit read-only Cognitive audit query. Ordinary code/capability intent queries already receive a bounded relevant-learning recall; use this field for deliberate memory inspection. May be used without code query. Use "*" or omit text with filters to list learned advisory memory in scopes reachable from this repo/Work.' },
|
|
53
|
+
knowledge_memory_id: { type: 'string', description: 'Optional exact Cognitive memory id for inspection.' },
|
|
54
|
+
knowledge_scope_kind: { type: 'string', enum: ['work', 'requirement', 'plan', 'plan_step', 'project', 'workspace'], description: 'Optional Cognitive scope filter; it must already be reachable from the selected repo/Work.' },
|
|
55
|
+
knowledge_scope_id: { type: 'string', description: 'Optional Cognitive scope id paired with knowledge_scope_kind.' },
|
|
56
|
+
knowledge_concept: { type: 'string', description: 'Optional exact learned concept filter.' },
|
|
57
|
+
knowledge_facet: { type: 'string', description: 'Optional exact learned facet filter.' },
|
|
58
|
+
knowledge_source_kind: { type: 'string', enum: ['experience', 'outcome', 'knowledge', 'controller', 'system', 'external'], description: 'Optional provenance source-kind filter.' },
|
|
59
|
+
knowledge_source_work_id: { type: 'string', description: 'Optional provenance source Work filter.' },
|
|
60
|
+
knowledge_limit: { type: 'number', minimum: 1, maximum: 100, description: 'Per-call read envelope for explicit Cognitive audit/expansion; defaults to 24. This is a context/transport budget, not a semantic claim that N memories are sufficient.' },
|
|
61
|
+
known_paths: { type: 'array', items: { type: 'string' }, description: 'Optional exact paths or globs that should receive highest retrieval priority.' },
|
|
62
|
+
include_globs: { type: 'array', items: { type: 'string' } },
|
|
63
|
+
exclude_globs: { type: 'array', items: { type: 'string' } },
|
|
64
|
+
retrieval_mode: { type: 'string', enum: ['implementation', 'plan', 'debug', 'review'], description: 'Defaults to implementation. Implementation returns current raw impact evidence for ChatGPT to judge; plan/debug/review intentionally widen evidence.' },
|
|
65
|
+
impact_domains: { type: 'array', items: { type: 'string', enum: [...CONTROLLER_CONTEXT_IMPACT_DOMAINS] }, description: 'Optional GPT-selected cross-cutting evidence dimensions. Forge expands these mechanically in the same retrieval call; it never treats them as proof of semantic completeness.' },
|
|
66
|
+
structural_context: { type: 'string', enum: ['off', 'auto', 'required'], description: 'Optional override. Defaults to auto for implementation/review and required for plan/debug.' },
|
|
67
|
+
semantic_navigation: {
|
|
68
|
+
type: 'array',
|
|
69
|
+
maxItems: 8,
|
|
70
|
+
description: 'Optional bounded semantic navigation through the provider registry. TypeScript uses a short-lived release-owned Language Service sidecar so compiler/project allocator growth never remains resident in the canonical Runtime; Swift uses SourceKit-LSP only with existing build settings; registered generic LSP providers currently cover Rust, Go, Python, and C/C++ when their language-server executable and project root markers already exist. Providers start lazily only for explicit semantic requests; Forge never installs a server, triggers a build, or treats language-server output as source authority.',
|
|
71
|
+
items: {
|
|
72
|
+
type: 'object',
|
|
73
|
+
required: ['navigation', 'path', 'line', 'column'],
|
|
74
|
+
additionalProperties: false,
|
|
75
|
+
properties: {
|
|
76
|
+
navigation: { type: 'string', enum: ['definition', 'references', 'implementations'] },
|
|
77
|
+
path: { type: 'string' },
|
|
78
|
+
line: { type: 'number' },
|
|
79
|
+
column: { type: 'number' },
|
|
80
|
+
tsconfig_path: { type: 'string' },
|
|
81
|
+
language: { type: 'string', description: 'Optional provider-routing hint. File extension remains the default routing signal.' },
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
max_files: { type: 'number' },
|
|
86
|
+
max_snippets: { type: 'number' },
|
|
87
|
+
requested_check_ids: { type: 'array', items: { type: 'string' }, description: 'Optional execution preflight. When supplied, returns registered checks plus dependency and resource-compatible scheduling readiness; omit for source-only retrieval.' },
|
|
88
|
+
capability_id: { type: 'string', description: 'Optional capability identity. For plugin.<pluginId>.<actionId>, returns the exact typed action schema/policy for plugin_action_execute.' },
|
|
89
|
+
work_id: { type: 'string' },
|
|
90
|
+
detail_level: { type: 'string', enum: ['summary', 'detail', 'raw'], description: 'Defaults to summary; raw is still bounded.' },
|
|
91
|
+
}),
|
|
92
|
+
definition('rh_work', 'Preferred ChatGPT facade for optional durable Requirement/Plan/Work semantic context, explicit recovery, scheduling/workflow intent, and external controller launch. Ordinary execution and validation use direct domain capabilities; provider/session binding, retries, transport recovery, dedupe, and other mechanical bookkeeping stay internal.', {
|
|
93
|
+
repo_id: repoId,
|
|
94
|
+
checkout_id: { type: 'string', description: 'Optional checkout identity for exact Work and Plan source selection.' },
|
|
95
|
+
operation: { type: 'string', enum: [...RH_WORK_MODEL_OPERATIONS], description: 'Defaults to start. list reads current semantic Work plus a bounded recent terminal history for the selected repository; start creates semantic Work context only. Requirement, Plan, and Work remain model-authored durable semantic records; execution and validation use direct capabilities. Work completion is an explicit semantic update rather than an execution phase transition.' },
|
|
96
|
+
limit: { type: 'number', minimum: 1, maximum: 100, description: 'Bounded result limit for list operations.' },
|
|
97
|
+
objective: { type: 'string' },
|
|
98
|
+
capability_id: { type: 'string', description: 'Compatibility-only carrier. Current callers should use typed rh_work fields directly. The outer adapter accepts only the bounded frozen semantic.v1 bridge and current-conversation enrollment, validates them without persistence, and routes them into the same Thin owners.' },
|
|
99
|
+
work_id: { type: 'string' },
|
|
100
|
+
workflow_id: { type: 'string', description: 'Versioned Workflow asset identity for workflow_execute/workflow_reconcile.' },
|
|
101
|
+
workflow_run_id: { type: 'string', description: 'Stable run identity. Reusing it resumes only the exact same workflow/content/input identity.' },
|
|
102
|
+
workflow_inputs: { type: 'object', description: 'Typed Workflow inputs validated against the installed asset contract.' },
|
|
103
|
+
workflow_scope_project_id: { type: 'string', description: 'Optional project-scoped Workflow registry identity. First-party Xiaohongshu assets use controller scope and still validate the owning Work project/account inputs.' },
|
|
104
|
+
workflow_reconciliation_request_id: { type: 'string', description: 'Fresh idempotency identity for one reconciliation observation. Retry the same observation with the same id; use a new id only for a later observation.' },
|
|
105
|
+
requirement_id: { type: 'string', description: 'Stable Requirement identity for requirement_get/requirement_revise/requirement_create or optional semantic context link for Work/Plan.' },
|
|
106
|
+
expected_revision: { type: 'number', minimum: 1, description: 'Expected current semantic revision for requirement_revise, plan_revise, revise, or complete. Stale writers fail and return current state; Forge never performs an implicit merge.' },
|
|
107
|
+
work_state: { type: 'string', enum: ['open', 'completed', 'cancelled'], description: 'Thin semantic Work state for revise.' },
|
|
108
|
+
work_result_refs: { type: 'array', maxItems: 100, uniqueItems: true, items: { type: 'string', maxLength: 512 }, description: 'Model/user-selected result references for thin semantic Work; separate from mechanical evidence and delivery receipts.' },
|
|
109
|
+
semantic_parent_work_id: { type: 'string', minLength: 1, maxLength: 256, description: 'Optional objective-decomposition parent for primary semantic Work. Distinct from execution parentWorkId and continuation lineage.' },
|
|
110
|
+
depends_on_work_ids: { type: 'array', maxItems: 32, uniqueItems: true, items: { type: 'string', minLength: 1, maxLength: 256 }, description: 'Explicit semantic ordering dependencies for primary Work. No edge means siblings may proceed independently; this field never dispatches or blocks Scheduler execution by itself.' },
|
|
111
|
+
requirement_revision: { type: 'number', minimum: 1, description: 'Work start defaults to selected Requirement head; Work revise explicitly adopts an existing semantic revision via expected_revision CAS, including historical revisions. For Plan, optional provenance.' },
|
|
112
|
+
plan_revision: { type: 'number', minimum: 1, description: 'Work start defaults to selected Plan head; Work revise explicitly adopts an existing semantic revision via expected_revision CAS, including historical revisions. Work get compares adopted and current heads without rebinding.' },
|
|
113
|
+
requirement_title: { type: 'string', description: 'Human-readable Requirement title for requirement_create.' },
|
|
114
|
+
requirement_outcome: { type: 'string', description: 'Durable outcome statement for requirement_create.' },
|
|
115
|
+
requirement_acceptance_criteria: { type: 'array', items: { type: 'string' }, description: 'Bounded semantic acceptance criteria for requirement_create.' },
|
|
116
|
+
requirement_delivery_references: { type: 'array', items: { type: 'string' }, description: 'Optional durable delivery/reference identifiers for requirement_create.' },
|
|
117
|
+
requirement_legacy_aliases: { type: 'array', items: { type: 'string' }, description: 'Optional migration aliases for requirement_create; not a second identity authority.' },
|
|
118
|
+
requirement_state: { type: 'string', enum: ['open', 'completed', 'cancelled'], description: 'Thin semantic Requirement state for requirement_revise.' },
|
|
119
|
+
requirement_candidate_id: { type: 'string', description: 'Exact Cognitive memory id for operation=requirement_promote_candidate.' },
|
|
120
|
+
handoff_id: { type: 'string', description: 'Optional existing HandoffItem to include as bounded context for launcher_start.' },
|
|
121
|
+
learning_signals: { type: 'array', maxItems: CONTROLLER_LEARNING_SIGNAL_ENVELOPE_MAX_ITEMS, items: { type: 'object', additionalProperties: false,
|
|
122
|
+
properties: {
|
|
123
|
+
scope_kind: { type: 'string', enum: ['work', 'requirement', 'project', 'workspace'] },
|
|
124
|
+
kind: { type: 'string', maxLength: 64, description: 'Compact model-authored descriptive kind (for example principle, procedure, product-model, architecture-pattern). This vocabulary is open and never an admission gate.' },
|
|
125
|
+
valence: { type: 'string', enum: ['positive', 'negative', 'neutral'] },
|
|
126
|
+
summary: { type: 'string', maxLength: 2000 },
|
|
127
|
+
concepts: { type: 'array', minItems: 1, maxItems: 32, uniqueItems: true, items: { type: 'string', maxLength: 256 } },
|
|
128
|
+
facets: { type: 'array', maxItems: 12, uniqueItems: true, items: { type: 'string', maxLength: 128 } },
|
|
129
|
+
admission_source: { type: 'string', enum: ['explicit_human', 'controller_observation', 'system_inference'] },
|
|
130
|
+
portability: { type: 'string', enum: ['local', 'portable'] },
|
|
131
|
+
salience: { type: 'number', minimum: 0, maximum: 1 },
|
|
132
|
+
confidence: { type: 'number', minimum: 0, maximum: 1 },
|
|
133
|
+
utility: { type: 'number', minimum: 0, maximum: 1 },
|
|
134
|
+
evidence_refs: { type: 'array', maxItems: 16, uniqueItems: true, items: { type: 'string', maxLength: 512 } },
|
|
135
|
+
counter_evidence_refs: { type: 'array', maxItems: 16, uniqueItems: true, items: { type: 'string', maxLength: 512 } },
|
|
136
|
+
expires_at: { type: 'string' },
|
|
137
|
+
},
|
|
138
|
+
required: ['scope_kind', 'kind', 'valence', 'summary', 'concepts', 'admission_source', 'portability', 'salience', 'confidence', 'utility'] },
|
|
139
|
+
description: 'Model-authored semantic deltas, never keyword/phrase-derived lessons. The array bound is only one MCP transport envelope; it is not a per-interaction learning quota. With operation=learning_record, project/workspace learning is lifecycle-free; when work_id is selected, its server-derived reachable Work/Requirement scopes are also available through the same writer. Distill reusable judgement/procedure/product/architecture knowledge rather than copying raw transcripts or source prose.' },
|
|
140
|
+
learning_feedback: { type: 'array', maxItems: 32, items: { type: 'object', additionalProperties: false,
|
|
141
|
+
properties: {
|
|
142
|
+
memory_address: { type: 'string', maxLength: 1024, description: 'Exact stable memoryId/address returned by learningRecall or Cognitive audit.' },
|
|
143
|
+
decision: { type: 'string', enum: ['used', 'rejected'] },
|
|
144
|
+
reason: { type: 'string', maxLength: 1000 },
|
|
145
|
+
rejection_kind: { type: 'string', enum: ['irrelevant', 'stale', 'contradicted'], description: 'Required only for rejected feedback. Semantic classification is model-authored, never inferred from keywords.' },
|
|
146
|
+
},
|
|
147
|
+
required: ['memory_address', 'decision', 'reason'] },
|
|
148
|
+
description: 'Lifecycle-free advisory retrieval feedback for operation=learning_feedback. The current principal/session and repository-reachable Cognitive scope are server-derived; feedback influences retrieval utility only and never factual confidence or execution authority.' },
|
|
149
|
+
outcome_observation: { type: 'object', description: 'Typed Work-specific OutcomeObservation draft for outcome_record. Work semantic provenance is derived server-side and cannot be supplied by the caller.' },
|
|
150
|
+
experience_draft: { type: 'object', description: 'Typed verified Work Experience draft for experience_record. Generic teaching/correction belongs in learning_record instead; source provenance is derived from current Work semantic context.' },
|
|
151
|
+
quality_adjustment_fingerprint: { type: 'string', description: 'Optional quality adjustment fingerprint for experience_record when backed by verified evidence.' },
|
|
152
|
+
controller_type: { type: 'string', enum: ['chatgpt', 'codex', 'grok', 'claude'], description: 'External controller kind for launcher_start.' },
|
|
153
|
+
launch_reservation_ms: { type: 'number', description: 'Short duplicate-spawn reservation TTL for launcher_start or schedule_create; does not grant Work ownership.' },
|
|
154
|
+
executable: { type: 'string', description: 'External controller executable for launcher_start. This is owned by the Launcher, not the Kernel.' },
|
|
155
|
+
launch_args: { type: 'array', items: { type: 'string' }, description: 'Provider-specific arguments for launcher_start.' },
|
|
156
|
+
browser_session_id: { type: 'string', description: 'Saved Forge ChatGPT browser session to continue when controller_type=chatgpt.' },
|
|
157
|
+
conversation_url: { type: 'string', description: 'Explicit https://chatgpt.com conversation URL used when no saved Forge browser session exists.' },
|
|
158
|
+
transport_conversation: { type: 'string', enum: ['bound', 'fresh'], description: 'ChatGPT launcher transport only. When omitted, an existing Work binding or explicit conversation_url is reused; otherwise a fresh conversation is created. bound requires an existing binding or explicit conversation_url. fresh always starts a new conversation and records transport metadata after provider delivery is observed.' },
|
|
159
|
+
continuation_prompt: { type: 'string', description: 'Bounded Work continuation instruction.' },
|
|
160
|
+
schedule_id: { type: 'string', description: 'Schedule identity for schedule_get/pause/resume/delete/trigger.' },
|
|
161
|
+
schedule_name: { type: 'string', description: 'Human-readable schedule name.' },
|
|
162
|
+
schedule_request_id: { type: 'string', description: 'Stable idempotency key for schedule_create.' },
|
|
163
|
+
schedule_mode: { type: 'string', enum: ['continuation', 'browser_watch', 'browser_keepalive'], description: 'Defaults to continuation when work_id is present. browser_keepalive may run without a durable Work; continuation and browser_watch remain Work-bound.' },
|
|
164
|
+
probe_url: { type: 'string', description: 'Allowed URL to navigate or refresh for browser_watch/browser_keepalive.' },
|
|
165
|
+
probe_browser_session_id: { type: 'string', description: 'Existing Forge browser session used as the external observation target.' },
|
|
166
|
+
probe_selector: { type: 'string', description: 'Optional selector limiting text extraction for browser_watch.' },
|
|
167
|
+
probe_max_chars: { type: 'number', description: 'Bounded extracted text size for browser_watch.' },
|
|
168
|
+
probe_timeout_ms: { type: 'number', description: 'Bounded browser probe timeout.' },
|
|
169
|
+
include_terms: { type: 'array', items: { type: 'string' }, description: 'Optional case-insensitive terms; only matching normalized lines contribute to the observation fingerprint.' },
|
|
170
|
+
ignore_patterns: { type: 'array', items: { type: 'string' }, description: 'Optional regex patterns stripped before fingerprinting volatile text such as relative timestamps.' },
|
|
171
|
+
login_url_terms: { type: 'array', items: { type: 'string' }, description: 'Configured URL markers that classify the browser observation as authentication-required.' },
|
|
172
|
+
login_text_terms: { type: 'array', items: { type: 'string' }, description: 'Configured page-text markers that classify the browser observation as authentication-required.' },
|
|
173
|
+
wake_on_first_observation: { type: 'boolean', description: 'Defaults false so the first browser_watch occurrence records a silent baseline.' },
|
|
174
|
+
wake_on_auth_required: { type: 'boolean', description: 'Defaults true for browser schedules. Standalone browser_keepalive dispatches the configured ChatGPT auth-required prompt without creating a synthetic Work.' },
|
|
175
|
+
auth_required_prompt: { type: 'string', description: 'Optional ChatGPT continuation instruction when the probe detects a login marker.' },
|
|
176
|
+
trigger_type: { type: 'string', enum: ['interval', 'cron', 'calendar', 'condition', 'repository-event', 'dependency-checkpoint', 'manual'] },
|
|
177
|
+
every_minutes: { type: 'number', description: 'Interval trigger cadence in minutes.' },
|
|
178
|
+
cron_expression: { type: 'string' },
|
|
179
|
+
schedule_timezone: { type: 'string' },
|
|
180
|
+
catch_up_minutes: { type: 'number' },
|
|
181
|
+
calendar_at: { type: 'string' },
|
|
182
|
+
condition: { type: 'object' },
|
|
183
|
+
event_name: { type: 'string' },
|
|
184
|
+
event_id: { type: 'string' },
|
|
185
|
+
event_data: { type: 'object' },
|
|
186
|
+
dependency_job_ids: { type: 'array', items: { type: 'string' } },
|
|
187
|
+
max_failures: { type: 'number' },
|
|
188
|
+
cooldown_minutes: { type: 'number' },
|
|
189
|
+
daily_budget_minutes: { type: 'number' },
|
|
190
|
+
shadow_mode: { type: 'boolean', description: 'Defaults to true. Set false only after the continuation path has been validated.' },
|
|
191
|
+
backoff_base_minutes: { type: 'number' },
|
|
192
|
+
backoff_max_minutes: { type: 'number' },
|
|
193
|
+
include_occurrences: { type: 'boolean' },
|
|
194
|
+
plan_id: { type: 'string' },
|
|
195
|
+
superseded_by: { type: 'string', description: 'For plan_revise only: record the one-way successor Plan lineage. Once set it cannot be cleared or redirected; current Plan listings exclude the predecessor without restoring legacy Plan lifecycle semantics.' },
|
|
196
|
+
scope_key: { type: 'string', description: 'Optional normalized semantic scope label for Plan discovery/lineage; it is not execution ownership or a repository mutex.' },
|
|
197
|
+
source_revision: { type: 'string', description: 'Repository revision observed during read-only planning preflight.' },
|
|
198
|
+
plan_items: { type: 'array', maxItems: 100, items: { type: 'object', required: ['id', 'objective'], additionalProperties: false, properties: { id: { type: 'string', maxLength: 200 }, objective: { type: 'string', maxLength: 2000 }, dependencies: { type: 'array', maxItems: 100, items: { type: 'string', maxLength: 200 } } } }, description: 'Thin model-authored Plan items for plan_create/plan_revise. Items are descriptive working memory only and never own paths, checks, Work, scheduling, or acceptance.' },
|
|
199
|
+
non_goals: { type: 'array', items: { type: 'string' } },
|
|
200
|
+
assumptions: { type: 'array', items: { type: 'string' } },
|
|
201
|
+
resolved_decisions: { type: 'array', items: { type: 'string' } },
|
|
202
|
+
stop_conditions: { type: 'array', items: { type: 'string' } },
|
|
203
|
+
replan_conditions: { type: 'array', items: { type: 'string' } },
|
|
204
|
+
integration_strategy: { type: 'string' },
|
|
205
|
+
approval_confirmed: { type: 'boolean' },
|
|
206
|
+
dry_run: { type: 'boolean', description: 'Defaults to true for repair.' },
|
|
207
|
+
repair_operation: { type: 'string', enum: ['diagnose', 'repair', 'verify', 'handoff'] },
|
|
208
|
+
authorize_destructive_cleanup: { type: 'boolean' },
|
|
209
|
+
detail_level: { type: 'string', enum: ['summary', 'detail'] },
|
|
210
|
+
reason: { type: 'string', description: 'Bounded reason for a work stop or repair record.' },
|
|
211
|
+
}, [], false),
|
|
212
|
+
definition('git_diff_paths', 'Return a bounded Git diff and status for explicit repository-relative paths only.', {
|
|
213
|
+
repo_id: repoId,
|
|
214
|
+
paths: { type: 'array', items: { type: 'string' } },
|
|
215
|
+
staged: { type: 'boolean' },
|
|
216
|
+
max_bytes: { type: 'number' },
|
|
217
|
+
}, ['paths']),
|
|
218
|
+
definition('git_stage_paths', 'Stage explicit repository-relative paths only using git add --all -- <paths>.', {
|
|
219
|
+
repo_id: repoId,
|
|
220
|
+
paths: { type: 'array', items: { type: 'string' } },
|
|
221
|
+
}, ['paths'], false),
|
|
222
|
+
definition('git_commit_paths', 'Stage and commit explicit repository-relative paths only, leaving unrelated staged changes untouched.', {
|
|
223
|
+
repo_id: repoId,
|
|
224
|
+
paths: { type: 'array', items: { type: 'string' } },
|
|
225
|
+
message: { type: 'string' },
|
|
226
|
+
}, ['paths', 'message'], false),
|
|
227
|
+
definition('prepare_transfer_artifacts', 'Refresh rebuildable session continuation plus a selected-path patch transfer artifact when recovery context is needed.', {
|
|
228
|
+
repo_id: repoId,
|
|
229
|
+
reason: { type: 'string' },
|
|
230
|
+
}, [], false),
|
|
231
|
+
definition('get_job', 'Read one durable Execution Job. Summary is the default; opt in to full state only when needed.', {
|
|
232
|
+
job_id: { type: 'string' },
|
|
233
|
+
repo_id: repoId,
|
|
234
|
+
include_events: { type: 'boolean' },
|
|
235
|
+
detail_level: { type: 'string', enum: ['summary', 'full'] },
|
|
236
|
+
wait: { type: 'boolean', description: 'When true, wait for terminal status before returning digest.' },
|
|
237
|
+
wait_ms: { type: 'number' },
|
|
238
|
+
}, ['job_id']),
|
|
239
|
+
definition('get_artifact', 'Read one bounded Evidence Plane artifact/evidence handle by opaque id. repo_id is optional and used only to adopt a historical repository-partitioned handle once.', { artifact_id: { type: 'string' }, repo_id: { ...repoId, description: 'Legacy repository hint only. Omit for canonical ForgeInstance output handles.' }, max_bytes: { type: 'number' } }, ['artifact_id']),
|
|
240
|
+
definition('repository_change_verify', 'Composite: verify checkout/SHA, apply bounded patch, run checks, return first failure inline without get_job/get_artifact follow-ups.', {
|
|
241
|
+
repo_id: repoId,
|
|
242
|
+
expected_branch: { type: 'string' },
|
|
243
|
+
expected_head: { type: 'string' },
|
|
244
|
+
expected_file_shas: { type: 'object', additionalProperties: { type: 'string' } },
|
|
245
|
+
patch: { type: 'string', description: 'Unified diff applied with git apply.' },
|
|
246
|
+
allowed_paths: { type: 'array', items: { type: 'string' } },
|
|
247
|
+
checks: { type: 'array', items: { type: 'string' } },
|
|
248
|
+
check_timeout_ms: { type: 'number' },
|
|
249
|
+
}, [], false),
|
|
250
|
+
definition('list_jobs', 'List durable Execution Jobs for one repository. Summary is the default.', {
|
|
251
|
+
repo_id: repoId,
|
|
252
|
+
limit: { type: 'number' },
|
|
253
|
+
detail_level: { type: 'string', enum: ['summary', 'full'] },
|
|
254
|
+
}),
|
|
255
|
+
definition('cancel_job', 'Cancel one queued or running durable Execution Job.', { job_id: { type: 'string' }, repo_id: repoId, reason: { type: 'string' } }, ['job_id'], false),
|
|
256
|
+
definition('controller_ready', 'Return one binary Runtime readiness decision with bounded diagnostic evidence.', {
|
|
257
|
+
repo_id: repoId,
|
|
258
|
+
}),
|
|
259
|
+
definition('repository_runtime_snapshot', 'Read the materialized runtime projection without scanning historical state.', { repo_id: repoId }),
|
|
260
|
+
definition('schedule_dedupe_report', 'Read-only report that groups duplicate schedules by semantic trigger/action identity.', {
|
|
261
|
+
repo_id: repoId,
|
|
262
|
+
}, ['repo_id']),
|
|
263
|
+
definition('schedule_dedupe_apply', 'Pause duplicate schedules after explicit authorization, keeping one canonical enabled schedule per semantic identity.', {
|
|
264
|
+
repo_id: repoId,
|
|
265
|
+
dry_run: { type: 'boolean', description: 'When true, only returns the proposed changes.' },
|
|
266
|
+
confirm_authorization: { type: 'boolean', description: 'Must be true unless dry_run is true.' },
|
|
267
|
+
}, ['repo_id']),
|
|
268
|
+
definition('runtime_performance_diagnostics', 'Diagnose forge host performance, orphan workers, Local Controller presence, and cleanup candidates.', {
|
|
269
|
+
repo_id: repoId,
|
|
270
|
+
include_processes: { type: 'boolean', description: 'Include bounded forge related process samples. Defaults to true.' },
|
|
271
|
+
include_temp_dirs: { type: 'boolean', description: 'Include bounded forge temporary directory scan. Defaults to true.' },
|
|
272
|
+
cleanup_preview: { type: 'boolean', description: 'Return a no-side-effect cleanup plan for orphan workers and stale temp entries.' },
|
|
273
|
+
}),
|
|
274
|
+
definition('capability_recovery_probe', 'Read-only Runtime diagnostic evidence. This tool never starts, stops, restarts, repairs, or replaces Runtime modules.', {
|
|
275
|
+
repo_id: repoId,
|
|
276
|
+
recent_errors: { type: 'array', items: { type: 'string' } },
|
|
277
|
+
command_preview_available: { type: 'boolean' },
|
|
278
|
+
command_execute_available: { type: 'boolean' },
|
|
279
|
+
issue_tools_available: { type: 'boolean' },
|
|
280
|
+
job_tools_available: { type: 'boolean' },
|
|
281
|
+
}),
|
|
282
|
+
definition('capability_recovery_plan', 'Return a diagnostic handoff plan without Runtime lifecycle actions or automatic source repair.', {
|
|
283
|
+
repo_id: repoId,
|
|
284
|
+
recent_errors: { type: 'array', items: { type: 'string' } },
|
|
285
|
+
}),
|
|
286
|
+
definition('capability_recovery_apply', 'Apply one currently supported bounded recovery action after explicit authorization. Runtime lifecycle actions are outside this surface.', {
|
|
287
|
+
repo_id: repoId,
|
|
288
|
+
action_id: { type: 'string' },
|
|
289
|
+
confirm_authorization: { type: 'boolean' },
|
|
290
|
+
authorization: { type: 'string', description: 'Must equal action_id for actions that require authorization.' },
|
|
291
|
+
reason: { type: 'string' },
|
|
292
|
+
min_age_minutes: { type: 'number' },
|
|
293
|
+
max_candidates: { type: 'number' },
|
|
294
|
+
}, ['action_id'], false),
|
|
295
|
+
definition('runtime_maintenance_status', 'Read the self-contained runtime maintenance plan without using repository_command_execute or Local Job tickets.', {
|
|
296
|
+
repo_id: repoId,
|
|
297
|
+
min_age_minutes: { type: 'number' },
|
|
298
|
+
max_candidates: { type: 'number' },
|
|
299
|
+
cancel_pending_approvals: { type: 'boolean' },
|
|
300
|
+
}),
|
|
301
|
+
definition('runtime_maintenance_apply', 'Apply one bounded runtime maintenance action without repository_command_execute or Local Job tickets.', {
|
|
302
|
+
repo_id: repoId,
|
|
303
|
+
action_id: { type: 'string', enum: ['local_jobs_reconcile', 'quarantine_unreadable_local_jobs', 'runtime_storage_finalize_relocation', 'rebuild_projection', 'full_maintenance_pass'] },
|
|
304
|
+
confirm_maintenance: { type: 'boolean' },
|
|
305
|
+
authorization: { type: 'string', description: 'Must equal action_id.' },
|
|
306
|
+
min_age_minutes: { type: 'number' },
|
|
307
|
+
max_candidates: { type: 'number' },
|
|
308
|
+
cancel_pending_approvals: { type: 'boolean' },
|
|
309
|
+
}, ['action_id', 'confirm_maintenance', 'authorization'], false),
|
|
310
|
+
definition('workspace_auth_status', 'Summarize Workspace/Gmail auth readiness without returning or persisting secrets.', {
|
|
311
|
+
repo_id: repoId,
|
|
312
|
+
}),
|
|
313
|
+
definition('workspace_auth_login_prepare', 'Prepare a state-protected local Google Workspace/Gmail OAuth login with PKCE and Keychain persistence.', {
|
|
314
|
+
repo_id: repoId,
|
|
315
|
+
service: { type: 'string', enum: ['gmail', 'calendar', 'tasks', 'google-workspace'] },
|
|
316
|
+
scopes: { type: 'array', items: { type: 'string' } },
|
|
317
|
+
redirect_uri: { type: 'string' },
|
|
318
|
+
}),
|
|
319
|
+
definition('external_filesystem_targets_list', 'List pre-authorized external filesystem targets. Does not expose arbitrary absolute-path access.', {
|
|
320
|
+
repo_id: repoId,
|
|
321
|
+
}),
|
|
322
|
+
definition('external_filesystem_grant_preview', 'Preview a read-only external filesystem grant for a narrow absolute directory without writing config.', {
|
|
323
|
+
repo_id: repoId,
|
|
324
|
+
grant_key: { type: 'string' },
|
|
325
|
+
root_path: { type: 'string' },
|
|
326
|
+
mode: { type: 'string', enum: ['read', 'copy_into_repo'] },
|
|
327
|
+
expires_in_minutes: { type: 'number', description: 'Optional expiry in minutes, capped at 24h. Defaults to 8h.' },
|
|
328
|
+
reason: { type: 'string' },
|
|
329
|
+
}, ['grant_key', 'root_path', 'reason']),
|
|
330
|
+
definition('external_filesystem_grant_apply', 'Apply a previously previewed read-only external filesystem grant with explicit authorization.', {
|
|
331
|
+
repo_id: repoId,
|
|
332
|
+
grant_key: { type: 'string' },
|
|
333
|
+
root_path: { type: 'string' },
|
|
334
|
+
mode: { type: 'string', enum: ['read', 'copy_into_repo'] },
|
|
335
|
+
expires_in_minutes: { type: 'number', description: 'Optional expiry in minutes, capped at 24h. Defaults to 8h.' },
|
|
336
|
+
reason: { type: 'string' },
|
|
337
|
+
preview_ticket_id: { type: 'string' },
|
|
338
|
+
confirm_authorization: { type: 'boolean' },
|
|
339
|
+
}, ['grant_key', 'root_path', 'reason', 'preview_ticket_id', 'confirm_authorization'], false),
|
|
340
|
+
definition('external_filesystem_text_snapshot', 'Read a bounded text/directory snapshot from a pre-authorized external filesystem target key.', {
|
|
341
|
+
repo_id: repoId,
|
|
342
|
+
target_key: { type: 'string' },
|
|
343
|
+
path: { type: 'string' },
|
|
344
|
+
max_chars: { type: 'number' },
|
|
345
|
+
}, ['target_key']),
|
|
346
|
+
definition('runtime_storage_repair_preview', 'Preview repo-scoped local-jobs runtime storage repair candidates without mutation.', {
|
|
347
|
+
repo_id: repoId,
|
|
348
|
+
min_age_minutes: { type: 'number' },
|
|
349
|
+
max_candidates: { type: 'number' },
|
|
350
|
+
}),
|
|
351
|
+
definition('runtime_storage_repair_apply', 'Apply safe repo-scoped local-jobs runtime storage repairs after explicit confirmation.', {
|
|
352
|
+
repo_id: repoId,
|
|
353
|
+
candidate_ids: { type: 'array', items: { type: 'string' } },
|
|
354
|
+
min_age_minutes: { type: 'number' },
|
|
355
|
+
max_candidates: { type: 'number' },
|
|
356
|
+
confirm_repair: { type: 'boolean' },
|
|
357
|
+
}, ['confirm_repair'], false),
|
|
358
|
+
definition('list_plugins', 'List repository plugins, or controller-scoped plugins when repo_id is omitted.', {
|
|
359
|
+
repo_id: repoId,
|
|
360
|
+
}),
|
|
361
|
+
definition('get_plugin', 'Read one repository or controller-scoped plugin manifest including action schemas and policy requirements.', {
|
|
362
|
+
repo_id: repoId,
|
|
363
|
+
plugin_id: { type: 'string' },
|
|
364
|
+
}, ['plugin_id']),
|
|
365
|
+
definition('computer_console_unlock_prepare', 'Prepare one protected console unlock without transporting a password through ChatGPT or Forge Runtime. Forge Desktop Operator displays a provider-local secure password field while the console is unlocked and returns only a short-lived opaque single-use handle. Requires confirm_authorization=true for every invocation.', {
|
|
366
|
+
confirm_authorization: { type: 'boolean', description: 'Must be true to authorize this exact one-shot local credential preparation.' },
|
|
367
|
+
timeout_ms: { type: 'number', description: 'Bounded provider/prompt timeout in milliseconds. Defaults to 15000 and is capped at 30000.' },
|
|
368
|
+
}, ['confirm_authorization'], false),
|
|
369
|
+
definition('computer_console_unlock', 'Protected one-shot console unlock through computer.console.unlock.v1 using only a provider-local opaque credential handle. Raw macOS credentials never enter MCP arguments, Forge Runtime, Plugin actions, Process/Work state, receipts, audit hashes, or replayable jobs. Requires confirm_authorization=true for every invocation.', {
|
|
370
|
+
credential_handle: { type: 'string', minLength: 36, maxLength: 64, description: 'Opaque short-lived single-use handle returned by computer_console_unlock_prepare. It is not a credential.' },
|
|
371
|
+
confirm_authorization: { type: 'boolean', description: 'Must be true to authorize this exact one-shot console unlock invocation.' },
|
|
372
|
+
timeout_ms: { type: 'number', description: 'Bounded provider/postcondition timeout in milliseconds. Defaults to 15000 and is capped at 30000.' },
|
|
373
|
+
}, ['credential_handle', 'confirm_authorization'], false),
|
|
374
|
+
definition('computer_console_unlock_enroll', 'Enroll provider-local device-only protected console recovery. Credential material never enters ChatGPT, Forge Runtime, plugin receipts, or replayable jobs. Requires confirm_authorization=true for every invocation.', {
|
|
375
|
+
confirm_authorization: { type: 'boolean', description: 'Must be true to authorize this exact provider-local enrollment invocation.' },
|
|
376
|
+
timeout_ms: { type: 'number', description: 'Bounded provider timeout in milliseconds. Defaults to 15000 and is capped at 30000.' },
|
|
377
|
+
}, ['confirm_authorization'], false),
|
|
378
|
+
definition('computer_console_unlock_status', 'Read protected console recovery enrollment and availability without exposing provider-local credential material. Requires confirm_authorization=true for every invocation.', {
|
|
379
|
+
confirm_authorization: { type: 'boolean', description: 'Must be true to authorize this exact protected status invocation.' },
|
|
380
|
+
timeout_ms: { type: 'number', description: 'Bounded provider timeout in milliseconds. Defaults to 15000 and is capped at 30000.' },
|
|
381
|
+
}, ['confirm_authorization'], false),
|
|
382
|
+
definition('computer_console_unlock_recover', 'Recover a locked macOS console using only previously enrolled provider-local device-only credential material. No credential is transported through ChatGPT or Forge Runtime. Requires confirm_authorization=true for every invocation.', {
|
|
383
|
+
confirm_authorization: { type: 'boolean', description: 'Must be true to authorize this exact one-shot recovery invocation.' },
|
|
384
|
+
timeout_ms: { type: 'number', description: 'Bounded provider/postcondition timeout in milliseconds. Defaults to 15000 and is capped at 30000.' },
|
|
385
|
+
}, ['confirm_authorization'], false),
|
|
386
|
+
definition('computer_console_unlock_revoke', 'Revoke provider-local protected console recovery enrollment. Requires confirm_authorization=true for every invocation.', {
|
|
387
|
+
confirm_authorization: { type: 'boolean', description: 'Must be true to authorize this exact provider-local revocation invocation.' },
|
|
388
|
+
timeout_ms: { type: 'number', description: 'Bounded provider timeout in milliseconds. Defaults to 15000 and is capped at 30000.' },
|
|
389
|
+
}, ['confirm_authorization'], false),
|
|
390
|
+
definition('capability_execute', 'Execute one typed Forge core capability through its canonical substrate owner. Discover the exact action schema with rh_context capability_id first. This stable facade prevents one top-level MCP tool per atomic repository operation; plugin capabilities continue to use plugin_action_execute.', {
|
|
391
|
+
repo_id: repoId,
|
|
392
|
+
checkout_id: { type: 'string', description: 'Optional exact checkout identity.' },
|
|
393
|
+
capability_id: { type: 'string', description: 'Exact core capability identity returned by rh_context.' },
|
|
394
|
+
action: { type: 'string', description: 'Exact capability action returned by rh_context.' },
|
|
395
|
+
request_id: { type: 'string', description: 'Stable idempotency identity for this invocation.' },
|
|
396
|
+
arguments: { type: 'object', description: 'Action-specific arguments validated by the capability owner.' },
|
|
397
|
+
}, ['capability_id', 'action', 'request_id'], false),
|
|
398
|
+
definition('plugin_action_execute', 'Execute one typed repository or controller-scoped plugin action through the plugin provider authority. rh_context exposes plugin schemas/policy; rh_work does not execute plugin capabilities. For confirmation=authorization, normal host permission is authoritative and an exact-target Forge capability grant may be reused; do not set confirm_authorization merely because an ordinary authorization-class action was previously allowed. Strong-confirmation actions still require their explicit confirmation contract.', {
|
|
399
|
+
repo_id: repoId,
|
|
400
|
+
plugin_id: { type: 'string' },
|
|
401
|
+
action_id: { type: 'string' },
|
|
402
|
+
request_id: { type: 'string' },
|
|
403
|
+
work_id: { type: 'string', description: 'Optional existing remote-effect Work that should own the successful typed plugin receipt.' },
|
|
404
|
+
arguments: { type: 'object' },
|
|
405
|
+
timeout_ms: { type: 'number' },
|
|
406
|
+
confirm_authorization: { type: 'boolean', description: 'Explicit confirmation flag for strong_confirmation actions. Ordinary confirmation=authorization actions follow the host permission model and do not require this field.' },
|
|
407
|
+
confirmation_text: { type: 'string', description: 'Exact confirmation text for strong_confirmation actions only.' },
|
|
408
|
+
}, ['plugin_id', 'action_id', 'request_id'], false),
|
|
409
|
+
definition('toolchain_plugin_summary', 'Return a redacted, low-interception plugin summary without raw config files or full action schemas.', {
|
|
410
|
+
repo_id: repoId,
|
|
411
|
+
plugin_id: { type: 'string' },
|
|
412
|
+
}, ['plugin_id']),
|
|
413
|
+
definition('work_result_summary', 'Return a redacted job result summary with failure class and suggested next actions. Does not return raw stdout or stderr.', {
|
|
414
|
+
repo_id: repoId,
|
|
415
|
+
job_id: { type: 'string' },
|
|
416
|
+
}, ['job_id']),
|
|
417
|
+
definition('work_status_digest', 'Return a redacted work status digest using a neutral work_ref. Does not return raw stdout or stderr.', {
|
|
418
|
+
repo_id: repoId,
|
|
419
|
+
work_ref: { type: 'string' },
|
|
420
|
+
}, ['work_ref']),
|
|
421
|
+
definition('model_clients_summary', 'List enabled model clients and DeepSeek adapter configuration state. Policy remains enforced by forge.', {
|
|
422
|
+
repo_id: repoId,
|
|
423
|
+
}),
|
|
424
|
+
definition('model_control_plane_summary', 'Summarize primary and backup model controllers, handoff modes, and concurrency policy.', {
|
|
425
|
+
repo_id: repoId,
|
|
426
|
+
}),
|
|
427
|
+
definition('deepseek_tool_manifest', 'Return DeepSeek function-calling tool manifests for the low-interception forge surface.', {
|
|
428
|
+
repo_id: repoId,
|
|
429
|
+
}),
|
|
430
|
+
definition('deepseek_tool_call_prepare', 'Translate one DeepSeek function call into a forge operation without executing it.', {
|
|
431
|
+
repo_id: repoId,
|
|
432
|
+
function_name: { type: 'string' },
|
|
433
|
+
function_arguments: { type: 'object' },
|
|
434
|
+
}, ['function_name', 'function_arguments']),
|
|
435
|
+
definition('deepseek_controller_manifest', 'Return DeepSeek backup-controller manifest, boundaries, and function tools.', {
|
|
436
|
+
repo_id: repoId,
|
|
437
|
+
}),
|
|
438
|
+
definition('deepseek_controller_handoff_prepare', 'Prepare a safe DeepSeek backup-controller handoff packet without calling the external model.', {
|
|
439
|
+
repo_id: repoId,
|
|
440
|
+
reason: { type: 'string', enum: ['manual', 'chatgpt_platform_blocked', 'chatgpt_unavailable', 'parallel_review', 'local_gui_request'] },
|
|
441
|
+
objective: { type: 'string' },
|
|
442
|
+
current_controller: { type: 'string' },
|
|
443
|
+
blocked_tool_name: { type: 'string' },
|
|
444
|
+
recent_safe_error: { type: 'string' },
|
|
445
|
+
}),
|
|
446
|
+
definition('deepseek_controller_request_prepare', 'Prepare a DeepSeek chat-completions request for backup controller mode without sending it.', {
|
|
447
|
+
repo_id: repoId,
|
|
448
|
+
reason: { type: 'string', enum: ['manual', 'chatgpt_platform_blocked', 'chatgpt_unavailable', 'parallel_review', 'local_gui_request'] },
|
|
449
|
+
objective: { type: 'string' },
|
|
450
|
+
user_message: { type: 'string' },
|
|
451
|
+
current_controller: { type: 'string' },
|
|
452
|
+
blocked_tool_name: { type: 'string' },
|
|
453
|
+
recent_safe_error: { type: 'string' },
|
|
454
|
+
model: { type: 'string' },
|
|
455
|
+
}),
|
|
456
|
+
definition('supervisor_task', 'Start, list, inspect, revise, recover, stop, or prove standalone Workflow Supervisor autonomous tasks. Supervisor task/effect state is the continuation authority; Requirement, Plan, and Work are optional and are not created by this tool.', {
|
|
457
|
+
repo_id: { ...repoId, description: 'Optional repository provenance for start/proof; never Work authority.' },
|
|
458
|
+
operation: { type: 'string', enum: ['start', 'list', 'get', 'revise', 'recover', 'stop', 'proof'] },
|
|
459
|
+
task_id: { type: 'string' },
|
|
460
|
+
objective: { type: 'string', description: 'Outcome objective for start/revise; revise never changes task or conversation identity.' },
|
|
461
|
+
expected_objective_sha256: { type: 'string', description: 'For revise: CAS hash of the exact current objective.' },
|
|
462
|
+
reason: { type: 'string', description: 'Operator reason recorded for stop/recover.' },
|
|
463
|
+
source_effect_id: { type: 'string', description: 'Optional exact source effect for operator recovery fencing.' },
|
|
464
|
+
supersede_unknown: { type: 'boolean', description: 'For recover only: explicitly retire one outcome-unknown effect instead of replaying it.' },
|
|
465
|
+
authorized_by: { type: 'string', description: 'Optional operator identity recorded by canonical recovery authority.' },
|
|
466
|
+
active_only: { type: 'boolean', description: 'For list, defaults true; exclude terminal tasks.' },
|
|
467
|
+
request_id: { type: 'string', description: 'Stable idempotency identity for start/revise/recover.' },
|
|
468
|
+
active_release_id: { type: 'string', description: 'Active Runtime release expected in proof dispatch evidence.' },
|
|
469
|
+
not_before: { type: 'string', description: 'ISO-8601 lower bound for proof completions.' },
|
|
470
|
+
}, ['operation'], false),
|
|
471
|
+
definition('review_artifacts_prepare', 'Create bounded repo-local review artifact roots for browser/iOS screenshot review workflows.', { repo_id: repoId }, [], false),
|
|
472
|
+
definition('review_artifacts_index', 'Index bounded repo-local browser/iOS screenshots, logs, and build reports for visual review.', { repo_id: repoId, limit: { type: 'number' } }),
|
|
473
|
+
definition('browser_review_packet', 'Build a browser visual review packet from indexed browser screenshots.', { repo_id: repoId, limit: { type: 'number' } }),
|
|
474
|
+
definition('ios_review_packet', 'Build or capture an iOS visual review packet from simulator screenshots and logs.', {
|
|
475
|
+
repo_id: repoId,
|
|
476
|
+
udid: { type: 'string' },
|
|
477
|
+
label: { type: 'string' },
|
|
478
|
+
capture: { type: 'boolean' },
|
|
479
|
+
limit: { type: 'number' },
|
|
480
|
+
}, [], false),
|
|
481
|
+
definition('workflow_watchdog_report', 'Diagnose stuck repository workflows across execution jobs, local bridge jobs, schedules, and runtime processes.', {
|
|
482
|
+
repo_id: repoId,
|
|
483
|
+
stale_minutes: { type: 'number' },
|
|
484
|
+
include_processes: { type: 'boolean' },
|
|
485
|
+
}),
|
|
486
|
+
definition('ios_xcode_status', 'Check local Xcode, xcodebuild, and simctl availability without mutation.', { repo_id: repoId }),
|
|
487
|
+
definition('ios_simulators_list', 'List available iOS Simulator devices using structured simctl JSON output.', {
|
|
488
|
+
repo_id: repoId,
|
|
489
|
+
runtime: { type: 'string' },
|
|
490
|
+
name: { type: 'string' },
|
|
491
|
+
}),
|
|
492
|
+
definition('ios_project_discover', 'Discover iOS workspaces, projects, Package.swift, and Info.plist files inside the repository.', { repo_id: repoId }),
|
|
493
|
+
definition('ios_schemes_list', 'List Xcode schemes for a repository-bounded workspace or project.', {
|
|
494
|
+
repo_id: repoId,
|
|
495
|
+
workspace: { type: 'string' },
|
|
496
|
+
project: { type: 'string' },
|
|
497
|
+
}),
|
|
498
|
+
definition('ios_simulator_boot', 'Boot an explicitly selected iOS Simulator UDID. Requires authorization.', {
|
|
499
|
+
repo_id: repoId,
|
|
500
|
+
udid: { type: 'string' },
|
|
501
|
+
open_simulator: { type: 'boolean' },
|
|
502
|
+
confirm_authorization: { type: 'boolean' },
|
|
503
|
+
timeout_ms: { type: 'number' },
|
|
504
|
+
}, ['udid', 'confirm_authorization'], false),
|
|
505
|
+
definition('ios_app_build', 'Build an iOS app into .forge/ios/DerivedData using xcodebuild structured arguments.', {
|
|
506
|
+
repo_id: repoId,
|
|
507
|
+
scheme: { type: 'string' },
|
|
508
|
+
udid: { type: 'string' },
|
|
509
|
+
workspace: { type: 'string' },
|
|
510
|
+
project: { type: 'string' },
|
|
511
|
+
configuration: { type: 'string' },
|
|
512
|
+
timeout_ms: { type: 'number' },
|
|
513
|
+
}, ['scheme'], false),
|
|
514
|
+
definition('ios_app_install', 'Install a bounded .app product from .forge/ios/DerivedData into a booted simulator. Requires authorization.', {
|
|
515
|
+
repo_id: repoId,
|
|
516
|
+
udid: { type: 'string' },
|
|
517
|
+
app_path: { type: 'string' },
|
|
518
|
+
confirm_authorization: { type: 'boolean' },
|
|
519
|
+
}, ['udid', 'app_path', 'confirm_authorization'], false),
|
|
520
|
+
definition('ios_app_launch', 'Launch a simulator app by bundle id with structured launch arguments. Requires authorization.', {
|
|
521
|
+
repo_id: repoId,
|
|
522
|
+
udid: { type: 'string' },
|
|
523
|
+
bundle_id: { type: 'string' },
|
|
524
|
+
arguments: { type: 'array', items: { type: 'string' } },
|
|
525
|
+
confirm_authorization: { type: 'boolean' },
|
|
526
|
+
}, ['udid', 'bundle_id', 'confirm_authorization'], false),
|
|
527
|
+
definition('ios_simulator_screenshot', 'Capture a simulator screenshot to .forge/ios/screenshots as a bounded artifact.', {
|
|
528
|
+
repo_id: repoId,
|
|
529
|
+
udid: { type: 'string' },
|
|
530
|
+
label: { type: 'string' },
|
|
531
|
+
}, ['udid'], false),
|
|
532
|
+
definition('ios_simulator_log_tail', 'Collect a bounded recent simulator log tail into .forge/ios/logs.', {
|
|
533
|
+
repo_id: repoId,
|
|
534
|
+
udid: { type: 'string' },
|
|
535
|
+
process: { type: 'string' },
|
|
536
|
+
last: { type: 'string' },
|
|
537
|
+
max_bytes: { type: 'number' },
|
|
538
|
+
}),
|
|
539
|
+
definition('ios_ui_smoke_test', 'Compose build, boot, launch, screenshot, and bounded logs for simulator UI review. Requires authorization.', {
|
|
540
|
+
repo_id: repoId,
|
|
541
|
+
udid: { type: 'string' },
|
|
542
|
+
scheme: { type: 'string' },
|
|
543
|
+
bundle_id: { type: 'string' },
|
|
544
|
+
workspace: { type: 'string' },
|
|
545
|
+
project: { type: 'string' },
|
|
546
|
+
configuration: { type: 'string' },
|
|
547
|
+
app_path: { type: 'string' },
|
|
548
|
+
screenshot_label: { type: 'string' },
|
|
549
|
+
confirm_authorization: { type: 'boolean' },
|
|
550
|
+
}, ['udid', 'scheme', 'bundle_id', 'confirm_authorization'], false),
|
|
551
|
+
definition('runtime_cleanup_preview', 'Preview stale forge temp directories, terminal local jobs, and historical attention cleanup candidates.', {
|
|
552
|
+
repo_id: repoId,
|
|
553
|
+
min_age_minutes: { type: 'number' },
|
|
554
|
+
include_temp_dirs: { type: 'boolean' },
|
|
555
|
+
include_terminal_local_jobs: { type: 'boolean' },
|
|
556
|
+
include_legacy_runs: { type: 'boolean' },
|
|
557
|
+
include_historical_attention: { type: 'boolean' },
|
|
558
|
+
max_candidates: { type: 'number' },
|
|
559
|
+
}),
|
|
560
|
+
definition('runtime_cleanup_apply', 'Apply safe cleanup candidates. Requires confirm_cleanup=true and remains limited to explicit forge candidates.', {
|
|
561
|
+
repo_id: repoId,
|
|
562
|
+
min_age_minutes: { type: 'number' },
|
|
563
|
+
include_temp_dirs: { type: 'boolean' },
|
|
564
|
+
include_terminal_local_jobs: { type: 'boolean' },
|
|
565
|
+
include_legacy_runs: { type: 'boolean' },
|
|
566
|
+
include_historical_attention: { type: 'boolean' },
|
|
567
|
+
max_candidates: { type: 'number' },
|
|
568
|
+
confirm_cleanup: { type: 'boolean' },
|
|
569
|
+
}, [], false),
|
|
570
|
+
definition('request_release_gate', 'Return an explicit external-Controller handoff for release evidence. Push, tag, and publish remain separately authorized.', { repo_id: repoId, request_id: { type: 'string' } }, [], false),
|
|
571
|
+
];
|
|
572
|
+
|
|
573
|
+
export const connectorExposedTools = runtimeToolDefinitions.map((tool) => tool.name);
|
|
574
|
+
export const currentCallableTools = new Set(connectorExposedTools);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { boundedPluginArtifactImageContent, jsonPreview, result, resultWithPluginArtifactImages } from './result-adapter';
|
|
2
|
+
import { expectedRevision, repositoryRootForRepoId, selected, stringList } from './shared-adapter';
|
|
3
|
+
import type { ExecutionJob } from '../../../src/runtime/execution/jobs/types';
|
|
4
|
+
import { readJobEvents } from '../../../src/runtime/evidence/event-ledger';
|
|
5
|
+
import {
|
|
6
|
+
summarizeExecutionJobForMcp,
|
|
7
|
+
summarizeJobResultForLowInterception,
|
|
8
|
+
summarizePluginForLowInterception,
|
|
9
|
+
} from '../../../src/runtime/safe-tooling';
|
|
10
|
+
|
|
11
|
+
export function summarizeJobEvents(controllerHome: string, repoId: string, jobId: string): Array<Record<string, unknown>> {
|
|
12
|
+
const repoRoot = repositoryRootForRepoId(controllerHome, repoId);
|
|
13
|
+
return readJobEvents(controllerHome, repoId, jobId).slice(-20).map((event) => {
|
|
14
|
+
const dataPreview = event.data && Object.keys(event.data).length > 0 ? jsonPreview(event.data, 240, repoRoot ? [repoRoot] : []) : undefined;
|
|
15
|
+
return {
|
|
16
|
+
eventId: event.eventId,
|
|
17
|
+
eventType: event.eventType,
|
|
18
|
+
occurredAt: event.occurredAt,
|
|
19
|
+
revision: event.revision,
|
|
20
|
+
...(dataPreview ? { dataPreview: dataPreview.preview, dataTruncated: dataPreview.truncated } : {}),
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function summarizeExecutionJob(job: ExecutionJob, repoRoot?: string): Record<string, unknown> {
|
|
26
|
+
return summarizeExecutionJobForMcp(job, repoRoot);
|
|
27
|
+
}
|