@moretea-labs/forge 1.8.0 → 1.8.2

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.
Files changed (695) hide show
  1. package/AGENTS.md +73 -7
  2. package/CHANGELOG.md +34 -0
  3. package/CLAUDE.md +17 -2
  4. package/CONTRIBUTING.md +3 -2
  5. package/README.en.md +24 -3
  6. package/README.md +10 -6
  7. package/README.zh-CN.md +5 -3
  8. package/THIRD_PARTY_NOTICES.md +1 -2
  9. package/adapters/chatgpt/browser-delivery-host.ts +7 -1
  10. package/adapters/chatgpt/browser-delivery-runtime.ts +531 -56
  11. package/adapters/chatgpt/controller-binding-store.ts +101 -22
  12. package/adapters/chatgpt/controller-round-host.ts +15 -25
  13. package/adapters/chatgpt/controller-round-settlement-store.ts +58 -4
  14. package/adapters/chatgpt/provider-delivery.ts +229 -2
  15. package/adapters/chatgpt/work-conversation-binding-store.ts +99 -54
  16. package/adapters/computer/chatgpt-extension-target.ts +708 -0
  17. package/adapters/computer/chrome-extension/background.js +541 -0
  18. package/adapters/computer/chrome-extension/content.js +402 -0
  19. package/adapters/computer/chrome-extension/core.js +24 -0
  20. package/adapters/computer/chrome-extension/manifest.json +32 -0
  21. package/adapters/computer/desktop-operator-discovery.ts +11 -31
  22. package/adapters/computer/desktop-operator-provider.ts +18 -6
  23. package/adapters/computer/interaction-target-authority.ts +178 -24
  24. package/adapters/mcp/access-mode.ts +18 -39
  25. package/adapters/mcp/auth.ts +2 -7
  26. package/adapters/mcp/instructions.ts +6 -5
  27. package/adapters/mcp/multi-repository.ts +10 -47
  28. package/adapters/mcp/oauth.ts +73 -0
  29. package/adapters/mcp/paths.ts +4 -1
  30. package/adapters/mcp/runtime-gateway/bounded-result-runtime.ts +62 -0
  31. package/adapters/mcp/runtime-gateway/cognition-settlement.ts +201 -0
  32. package/adapters/mcp/runtime-gateway/context-adapter.ts +490 -113
  33. package/adapters/mcp/runtime-gateway/context-pack-sidecar.ts +83 -0
  34. package/adapters/mcp/runtime-gateway/controller-authority-adapter.ts +20 -5
  35. package/adapters/mcp/runtime-gateway/core-capability-adapter.ts +258 -0
  36. package/adapters/mcp/runtime-gateway/engineering-preconditions.ts +10 -27
  37. package/adapters/mcp/runtime-gateway/engineering-tool-contract.ts +15 -0
  38. package/adapters/mcp/runtime-gateway/execution-tools.ts +14 -54
  39. package/adapters/mcp/runtime-gateway/gateway-execution-adapter.ts +2 -1
  40. package/adapters/mcp/runtime-gateway/plugin-adapter.ts +132 -47
  41. package/adapters/mcp/runtime-gateway/process-tools.ts +173 -23
  42. package/adapters/mcp/runtime-gateway/protected-computer-adapter.ts +16 -4
  43. package/adapters/mcp/runtime-gateway/recovery-adapter.ts +69 -52
  44. package/adapters/mcp/runtime-gateway/repository-compat-adapter.ts +4 -35
  45. package/adapters/mcp/runtime-gateway/result-adapter.ts +10 -4
  46. package/adapters/mcp/runtime-gateway/router.ts +19 -507
  47. package/adapters/mcp/runtime-gateway/routing-policy.ts +506 -0
  48. package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +15 -66
  49. package/adapters/mcp/runtime-gateway/runtime-readiness-observation.ts +218 -0
  50. package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +123 -178
  51. package/adapters/mcp/runtime-gateway/runtime-tools.ts +11 -5
  52. package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +37 -1
  53. package/adapters/mcp/runtime-gateway/shared-adapter.ts +20 -0
  54. package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +416 -270
  55. package/adapters/mcp/runtime-gateway/typescript-navigation-sidecar.ts +140 -0
  56. package/adapters/mcp/runtime-gateway/work-adapter.ts +262 -3123
  57. package/adapters/mcp/runtime-gateway/work-controller-operations.ts +257 -0
  58. package/adapters/mcp/runtime-gateway/work-detail-projection.ts +60 -0
  59. package/adapters/mcp/runtime-gateway/work-input-wire-migration.ts +229 -0
  60. package/adapters/mcp/runtime-gateway/work-learning-operations.ts +145 -0
  61. package/adapters/mcp/runtime-gateway/work-list-projection.ts +38 -0
  62. package/adapters/mcp/runtime-gateway/work-plan-operations.ts +382 -0
  63. package/adapters/mcp/runtime-gateway/work-repair-adapter.ts +308 -0
  64. package/adapters/mcp/runtime-gateway/work-requirement-operations.ts +148 -0
  65. package/adapters/mcp/runtime-gateway/work-semantic-operations.ts +320 -0
  66. package/adapters/mcp/runtime-gateway/work-workflow-operations.ts +113 -0
  67. package/adapters/mcp/runtime-gateway/workflow-supervisor-adapter.ts +180 -0
  68. package/adapters/mcp/server.ts +91 -26
  69. package/adapters/mcp/setup.ts +5 -13
  70. package/adapters/mcp/tool-mapping/access-tools.ts +0 -6
  71. package/adapters/mcp/tool-mapping/legacy-tool-service.ts +703 -3092
  72. package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +5 -10
  73. package/adapters/mcp/tool-mapping/repository-tools.ts +170 -213
  74. package/adapters/mcp/toolset-names.ts +11 -37
  75. package/adapters/mcp/toolset.ts +19 -92
  76. package/{src/cli → adapters}/mcp/transports/AGENTS.md +5 -5
  77. package/{src/cli → adapters}/mcp/transports/CLAUDE.md +5 -5
  78. package/adapters/mcp/transports/http-observation.ts +377 -0
  79. package/adapters/mcp/transports/http-post-lifecycle.ts +19 -0
  80. package/adapters/mcp/transports/http.ts +200 -683
  81. package/adapters/mcp/transports/oauth-http.ts +322 -0
  82. package/adapters/mcp/transports/session-registry.ts +6 -0
  83. package/adapters/mcp/tunnels/openai-secure-tunnel.ts +89 -5
  84. package/adapters/mcp/types.ts +0 -6
  85. package/assets/hooks/lib/session-state.sh +0 -38
  86. package/assets/hooks/post-bash.sh +1 -1
  87. package/assets/hooks/post-tool-observer.sh +0 -5
  88. package/assets/hooks/prompt-guard.sh +0 -55
  89. package/assets/partials/04-project-structure.partial.md +1 -1
  90. package/assets/partials/07-footer.partial.md +1 -1
  91. package/assets/partials-agents/02-operating-mode.partial.md +1 -1
  92. package/assets/partials-agents/08-deep-docs.partial.md +1 -1
  93. package/assets/plugin-registry.v1.json +6 -4
  94. package/assets/reference-configs/agentic-development-flow.md +26 -1
  95. package/assets/reference-configs/external-tooling.md +0 -76
  96. package/assets/reference-configs/global-working-rules.md +19 -0
  97. package/assets/reference-configs/release-deploy.md +1 -1
  98. package/assets/templates/helpers/architecture-queue.sh +1 -1
  99. package/assets/templates/helpers/check-agent-tooling.sh +1 -327
  100. package/assets/templates/helpers/check-task-workflow.sh +1 -1
  101. package/assets/templates/helpers/ensure-task-workflow.sh +0 -14
  102. package/assets/templates/helpers/migrate-project-template.sh +2 -2
  103. package/assets/workflow-contract.v1.json +0 -2
  104. package/docs/README.md +5 -2
  105. package/docs/architecture/CURRENT.md +205 -51
  106. package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +14 -5
  107. package/docs/architecture/decisions/20260823-immediate-controller-relay.md +6 -3
  108. package/docs/architecture/decisions/20260904-ios-device-migration-baseline.md +42 -0
  109. package/docs/architecture/decisions/20260907-assistant-learning-loop.md +2 -0
  110. package/docs/architecture/decisions/20260907-controller-round-transition-policy.md +19 -4
  111. package/docs/architecture/decisions/20260916-workflow-supervisor-authority.md +249 -0
  112. package/docs/architecture/decisions/20260917-cognitive-memory-foundation.md +82 -0
  113. package/docs/architecture/decisions/20260918-stable-candidate-release-lifecycle.md +234 -0
  114. package/docs/architecture/decisions/20260919-autonomous-work-liveness.md +62 -0
  115. package/docs/architecture/decisions/20260924-thin-semantic-working-context.md +74 -0
  116. package/docs/architecture/decisions/20261001-supervisor-turn-authority.md +342 -0
  117. package/docs/architecture/decisions/20261005-forge-v3-desktop-client-boundary.md +77 -0
  118. package/docs/architecture/decisions/20261009-exact-code-context-discovery.md +19 -0
  119. package/docs/architecture/decisions/20261009-generated-xcode-cache-retention.md +37 -0
  120. package/docs/architecture/decisions/20261011-autonomous-continuation-convergence.md +597 -0
  121. package/docs/architecture/decisions/20261017-edit-session-finalization-reconciliation.md +17 -0
  122. package/docs/architecture/decisions/20261019-retire-host-skills.md +16 -0
  123. package/docs/architecture/diagrams/agentic-dev-plugin-architecture.html +1 -1
  124. package/docs/architecture/domains/public-surface.md +3 -5
  125. package/docs/architecture/domains/verification.md +6 -5
  126. package/docs/architecture/domains/workflow-engine.md +6 -0
  127. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +3 -3
  128. package/docs/architecture/requests/2026-09-04-computer-plugin-workflow-taxonomy.md +4 -4
  129. package/docs/architecture/reviews/20261015-code-search-runtime-acceptance.md +75 -0
  130. package/docs/forge-plugin-management.md +16 -4
  131. package/docs/operations/controller-browser-plugin.md +23 -0
  132. package/docs/operations/controller-performance-and-502.md +17 -0
  133. package/docs/operations/controller-reliability-runbook.md +2 -2
  134. package/docs/operations/features.md +6 -7
  135. package/docs/operations/features.zh-CN.md +1 -1
  136. package/docs/operations/github-repository.md +4 -4
  137. package/docs/operations/github-semantic-release-projection.md +20 -0
  138. package/docs/operations/homebrew.md +2 -2
  139. package/docs/operations/mcp-tool-exposure.md +13 -52
  140. package/docs/operations/releasing.md +2 -0
  141. package/docs/operations/runtime-performance-diagnostics.md +8 -0
  142. package/docs/operations/standalone-disaster-recovery.md +15 -7
  143. package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
  144. package/docs/tutorials/03-first-repository-task.md +2 -0
  145. package/docs/wiki/Computer-and-Plugins.md +78 -0
  146. package/docs/wiki/Computer-and-Plugins.zh-CN.md +88 -0
  147. package/docs/wiki/Home.md +16 -2
  148. package/docs/wiki/Implementation.md +25 -13
  149. package/docs/wiki/Installation.md +28 -32
  150. package/docs/wiki/Integrations.md +4 -0
  151. package/docs/wiki/Quick-Start.md +35 -22
  152. package/docs/wiki/Releases-and-Upgrades.md +15 -25
  153. package/docs/wiki/_Sidebar.md +5 -1
  154. package/package.json +25 -25
  155. package/packages/kernel/cognition/api/index.ts +6 -0
  156. package/packages/kernel/cognition/application/activation-service.ts +451 -0
  157. package/packages/kernel/cognition/application/consolidation-service.ts +185 -0
  158. package/packages/kernel/cognition/application/legacy-experience-adapter.ts +38 -0
  159. package/packages/kernel/cognition/application/memory-service.ts +64 -0
  160. package/packages/kernel/cognition/domain/learning.ts +106 -0
  161. package/packages/kernel/cognition/domain/memory.ts +254 -0
  162. package/packages/kernel/controller/api/index.ts +1 -0
  163. package/packages/kernel/controller/application/continuation-service.ts +281 -0
  164. package/packages/kernel/controller/application/controller-round-service.ts +12 -0
  165. package/packages/kernel/controller/domain/controller-round-transition-policy.ts +242 -21
  166. package/packages/kernel/controller/domain/controller-round.ts +4 -1
  167. package/packages/kernel/controller/domain/execution-quality.ts +3 -1
  168. package/packages/kernel/controller/infrastructure/controller-round-store.ts +689 -103
  169. package/packages/kernel/controller/infrastructure/controller-session-store.ts +348 -97
  170. package/packages/kernel/controller/ports/controller-host.ts +2 -0
  171. package/packages/kernel/identity/api/index.ts +10 -0
  172. package/packages/kernel/identity/domain/activity-projection.ts +43 -0
  173. package/packages/kernel/identity/domain/capability-broker.ts +60 -0
  174. package/packages/kernel/identity/domain/grant.ts +72 -0
  175. package/packages/kernel/identity/domain/owned-resource.ts +116 -0
  176. package/packages/kernel/identity/domain/user-request.ts +93 -0
  177. package/packages/kernel/identity/infrastructure/activity-projection-store.ts +87 -0
  178. package/packages/kernel/identity/infrastructure/capability-broker.ts +81 -0
  179. package/packages/kernel/identity/infrastructure/grant-store.ts +284 -0
  180. package/packages/kernel/identity/infrastructure/owned-resource-store.ts +259 -0
  181. package/packages/kernel/identity/infrastructure/user-request-store.ts +182 -0
  182. package/packages/kernel/scheduler/api/index.ts +0 -2
  183. package/packages/kernel/scheduler/application/eligibility.ts +4 -1
  184. package/packages/kernel/scheduler/application/schedule-service.ts +3 -0
  185. package/packages/kernel/scheduler/application/settlement.ts +0 -15
  186. package/packages/kernel/scheduler/domain/schedule.ts +87 -0
  187. package/packages/kernel/scheduler/infrastructure/schedule-store.ts +166 -143
  188. package/packages/kernel/work/api/index.ts +3 -2
  189. package/packages/kernel/work/application/work-service.ts +18 -42
  190. package/packages/kernel/work/domain/current-task-lineage.ts +104 -0
  191. package/packages/kernel/work/domain/engineering-design.ts +10 -5
  192. package/packages/kernel/work/domain/engineering-profile.ts +8 -12
  193. package/packages/kernel/work/domain/evaluation-promotion-receipt.ts +186 -0
  194. package/packages/kernel/work/domain/execution-concurrency.ts +19 -26
  195. package/packages/kernel/work/domain/execution-snapshot.ts +0 -31
  196. package/packages/kernel/work/domain/implementation-review.ts +14 -331
  197. package/packages/kernel/work/domain/objective-graph.ts +119 -0
  198. package/packages/kernel/work/domain/project-engineering-contract.ts +23 -1
  199. package/packages/kernel/work/domain/repository-completion-receipt.ts +1 -1
  200. package/packages/kernel/work/domain/state-machine.ts +34 -65
  201. package/packages/kernel/work/domain/types.ts +57 -51
  202. package/packages/kernel/work/infrastructure/work-contract-store.ts +847 -729
  203. package/packages/kernel/work/ports/work-contract-store.ts +5 -2
  204. package/packages/plugin-runtime/browser/provider-registry.ts +12 -36
  205. package/packages/plugin-runtime/browser/session-authority.ts +2 -1
  206. package/packages/plugin-runtime/computer/chatgpt-identity.ts +24 -0
  207. package/packages/plugin-runtime/computer/conversation-target.ts +153 -0
  208. package/packages/plugin-runtime/computer/index.ts +2 -0
  209. package/packages/plugin-runtime/computer/target-authority.ts +26 -1
  210. package/packages/plugin-runtime/external/unix-jsonl-transport.ts +142 -18
  211. package/packages/protocols/computer/contract.ts +27 -1
  212. package/scripts/activate-source-baseline.ts +7 -9
  213. package/scripts/assemble-template.ts +11 -72
  214. package/scripts/canary-controller-semantic-wait.ts +12 -24
  215. package/scripts/check-mcp-compatibility.ts +94 -201
  216. package/scripts/check-package-identity.mjs +0 -5
  217. package/scripts/check-runtime-architecture.mjs +921 -239
  218. package/scripts/forge-local-recovery-helper.mjs +93 -15
  219. package/scripts/init-project.sh +0 -46
  220. package/scripts/install-ios-hid-toolchain.sh +60 -0
  221. package/scripts/install-standalone-recovery.ts +1 -1
  222. package/scripts/lib/project-init-lib.sh +6 -3
  223. package/scripts/migrate-windows-wsl-controller-home.ts +2 -0
  224. package/scripts/open-source-audit-allowlist.txt +1 -3
  225. package/scripts/run-bounded-command.mjs +5 -0
  226. package/scripts/run-governed-gate.ts +2 -1
  227. package/scripts/run-mobile-monitor-bridge.ts +0 -1
  228. package/scripts/smoke-control-plane-failure-domain.ts +94 -0
  229. package/scripts/smoke-ios-physical-device.ts +38 -10
  230. package/scripts/smoke-mcp-http-runtime.ts +12 -8
  231. package/scripts/smoke-mcp-tool-surface.ts +27 -41
  232. package/scripts/smoke-runtime-recovery.ts +12 -43
  233. package/scripts/smoke-schedule-engine.ts +23 -15
  234. package/scripts/smoke-unattended-transport-recovery.ts +223 -0
  235. package/scripts/smoke-user-request-continuation-restart.ts +232 -0
  236. package/scripts/smoke-workflow-supervisor-chrome-adapter.ts +95 -0
  237. package/scripts/smoke-workflow-supervisor-process-restart.ts +276 -0
  238. package/scripts/smoke-workflow-supervisor-restart-recovery.ts +150 -0
  239. package/scripts/smoke-workflow-supervisor.ts +103 -0
  240. package/scripts/sync-generated-authority.mjs +0 -1
  241. package/scripts/verify-forge-runtime.sh +2 -1
  242. package/src/cli/agent-jobs/executor-health.ts +12 -35
  243. package/src/cli/agent-jobs/integration.ts +20 -51
  244. package/src/cli/agent-jobs/job-manager.ts +7 -3
  245. package/src/cli/chatgpt-browser/file-policy.ts +2 -2
  246. package/src/cli/commands/brain-assistant.ts +27 -13
  247. package/src/cli/commands/brain.ts +13 -15
  248. package/src/cli/commands/chatgpt.ts +1 -163
  249. package/src/cli/commands/doctor.ts +1 -143
  250. package/src/cli/commands/global-runtime.ts +3 -196
  251. package/src/cli/commands/init-hook.ts +6 -23
  252. package/src/cli/commands/init.ts +3 -252
  253. package/src/cli/commands/mcp.ts +0 -5
  254. package/src/cli/commands/prompt-guard-decision.ts +0 -2
  255. package/src/cli/commands/recovery.ts +137 -135
  256. package/src/cli/commands/repository.ts +17 -1
  257. package/src/cli/commands/runtime.ts +3 -3
  258. package/src/cli/commands/setup-execution.ts +41 -0
  259. package/src/cli/commands/setup-profile.ts +8 -0
  260. package/src/cli/controller/check-runner.ts +13 -2
  261. package/src/cli/controller/completion-backlog.ts +3 -3
  262. package/src/cli/controller/completion-orchestrator.ts +5 -44
  263. package/src/cli/controller/completion-target.ts +3 -72
  264. package/src/cli/controller/composite-operations.ts +1 -1
  265. package/src/cli/controller/context/instruction-context.ts +1 -1
  266. package/src/cli/controller/context/known-paths.ts +2 -2
  267. package/src/cli/controller/context/query-planning.ts +11 -4
  268. package/src/cli/controller/context/rule-resolution.ts +2 -2
  269. package/src/cli/controller/context/source-materializer.ts +83 -102
  270. package/src/cli/controller/context/structural-provider.ts +84 -0
  271. package/src/cli/controller/context/structural.ts +6 -6
  272. package/src/cli/controller/context/types.ts +8 -9
  273. package/src/cli/controller/context-pack.ts +107 -84
  274. package/src/cli/controller/execution-completion.ts +4 -7
  275. package/src/cli/controller/execution-policy.ts +36 -153
  276. package/src/cli/controller/governance.ts +2 -3
  277. package/src/cli/controller/issue-store.ts +4 -99
  278. package/src/cli/controller/launch-agents.ts +59 -18
  279. package/src/cli/controller/operational-plan.ts +25 -52
  280. package/src/cli/controller/runtime-config.ts +5 -1
  281. package/src/cli/controller/stuck-state-migration.ts +2 -3
  282. package/src/cli/controller/systemd-user.ts +42 -10
  283. package/src/cli/editing/edit-session.ts +18 -12
  284. package/src/cli/github/github.ts +4 -4
  285. package/src/cli/github/semantic-projection.ts +174 -0
  286. package/src/cli/hook/prompt-intents.ts +0 -9
  287. package/src/cli/index.ts +1 -43
  288. package/src/cli/local-bridge/connector-freshness.ts +1 -12
  289. package/src/cli/local-bridge/console-automations.ts +19 -14
  290. package/src/cli/local-bridge/console-view-models.ts +4 -13
  291. package/src/cli/local-bridge/facade-api.ts +64 -193
  292. package/src/cli/local-bridge/server.ts +24 -147
  293. package/src/cli/local-bridge/types.ts +0 -1
  294. package/src/cli/mcp/oauth-client-retirement.ts +74 -0
  295. package/src/cli/repositories/command-classifier.ts +0 -9
  296. package/src/cli/repositories/command-executor.ts +29 -23
  297. package/src/cli/repositories/command-scope.ts +37 -18
  298. package/src/cli/repositories/controller-home.ts +48 -0
  299. package/src/cli/repositories/ephemeral-workspace.ts +20 -30
  300. package/src/cli/repositories/git-command-executor.ts +2 -2
  301. package/src/cli/repositories/locks.ts +20 -0
  302. package/src/cli/repositories/registry.ts +79 -12
  303. package/src/cli/repositories/safe-patch.ts +2 -12
  304. package/src/cli/repositories/structured-git.ts +101 -5
  305. package/src/cli/repository/inspector.ts +185 -343
  306. package/src/cli/repository/session-cache.ts +92 -6
  307. package/src/effects/process-runner.ts +17 -1
  308. package/src/runtime/context/assistant-context.ts +20 -7
  309. package/src/runtime/context/assistant-work-context.ts +89 -27
  310. package/src/runtime/context/automatic-learning.ts +565 -0
  311. package/src/runtime/context/cognitive-attention.ts +173 -0
  312. package/src/runtime/context/cognitive-skill-canary.ts +158 -0
  313. package/src/runtime/context/context-closure.ts +46 -9
  314. package/src/runtime/context/context-pack-process.ts +103 -0
  315. package/src/runtime/context/context-plane.ts +1 -9
  316. package/src/runtime/context/direct-controller-learning.ts +298 -0
  317. package/src/runtime/context/generic-lsp-provider.ts +1 -1
  318. package/src/runtime/context/semantic-navigation-contract.ts +16 -0
  319. package/src/runtime/context/semantic-navigation.ts +7 -35
  320. package/src/runtime/context/typescript-navigation-process.ts +145 -0
  321. package/src/runtime/context/typescript-navigation.ts +89 -3
  322. package/src/runtime/control-plane/cleanup-artifact-retention.ts +215 -12
  323. package/src/runtime/control-plane/concurrency/work-execution-concurrency.ts +9 -47
  324. package/src/runtime/control-plane/execution/controller-authority-recovery.ts +34 -4
  325. package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +29 -20
  326. package/src/runtime/control-plane/execution/execution-identity.ts +23 -3
  327. package/src/runtime/control-plane/execution/repository-work-attribution.ts +7 -30
  328. package/src/runtime/control-plane/execution/retained-work-resume.ts +206 -199
  329. package/src/runtime/control-plane/execution/session-store.ts +31 -1
  330. package/src/runtime/control-plane/execution/validation.ts +6 -8
  331. package/src/runtime/control-plane/execution/work-authority-reconciler.ts +13 -42
  332. package/src/runtime/control-plane/execution/work-check-evidence.ts +137 -0
  333. package/src/runtime/control-plane/execution/work-completion-authority.ts +30 -85
  334. package/src/runtime/control-plane/execution/work-delivery-service.ts +616 -0
  335. package/src/runtime/control-plane/execution/work-evidence-policy.ts +12 -50
  336. package/src/runtime/control-plane/execution/work-execution-support.ts +50 -149
  337. package/src/runtime/control-plane/execution/work-handle-authority.ts +197 -110
  338. package/src/runtime/control-plane/execution/work-handle-store.ts +72 -44
  339. package/src/runtime/control-plane/execution/work-head-settlement.ts +53 -20
  340. package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +52 -29
  341. package/src/runtime/control-plane/execution/work-operation-service.ts +60 -34
  342. package/src/runtime/control-plane/execution/work-preparation-service.ts +231 -267
  343. package/src/runtime/control-plane/execution/work-process-evidence.ts +2 -2
  344. package/src/runtime/control-plane/execution/work-remote-delivery.ts +2 -3
  345. package/src/runtime/control-plane/execution/work-revision-diff.ts +39 -0
  346. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +201 -199
  347. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +33 -85
  348. package/src/runtime/control-plane/execution/work-verification-service.ts +406 -50
  349. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +6 -2
  350. package/src/runtime/control-plane/facade/capability-registry.ts +364 -37
  351. package/src/runtime/control-plane/facade/check-normalization.ts +3 -9
  352. package/src/runtime/control-plane/facade/codex-delegation.ts +10 -11
  353. package/src/runtime/control-plane/facade/controller-connection.ts +135 -0
  354. package/src/runtime/control-plane/facade/goal-workloop-access.ts +1 -20
  355. package/src/runtime/control-plane/facade/goal-workloop.ts +281 -1753
  356. package/src/runtime/control-plane/facade/handoff-inbox-application.ts +12 -25
  357. package/src/runtime/control-plane/facade/handoff-inbox-store.ts +256 -52
  358. package/src/runtime/control-plane/facade/index.ts +0 -1
  359. package/src/runtime/control-plane/facade/operation-digest.ts +12 -15
  360. package/src/runtime/control-plane/facade/plan-contract-store.ts +451 -991
  361. package/src/runtime/control-plane/facade/policy-gate.ts +0 -23
  362. package/src/runtime/control-plane/facade/repository-work-admission.ts +12 -22
  363. package/src/runtime/control-plane/facade/requirement-authority.ts +102 -199
  364. package/src/runtime/control-plane/facade/requirement-board.ts +3 -3
  365. package/src/runtime/control-plane/facade/rh-work-operation-contract.ts +51 -14
  366. package/src/runtime/control-plane/facade/self-healing-loop.ts +18 -53
  367. package/src/runtime/control-plane/facade/suggested-actions.ts +15 -18
  368. package/src/runtime/control-plane/facade/types.ts +49 -108
  369. package/src/runtime/control-plane/facade/work-continuation.ts +9 -9
  370. package/src/runtime/control-plane/generated-cache-retention.ts +206 -59
  371. package/src/runtime/control-plane/global-scheduler/autonomous-continuation.ts +248 -0
  372. package/src/runtime/control-plane/global-scheduler/durable-admission.ts +1 -1
  373. package/src/runtime/control-plane/global-scheduler/maintenance.ts +256 -117
  374. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -12
  375. package/src/runtime/control-plane/global-scheduler/scheduler.ts +66 -40
  376. package/src/runtime/control-plane/global-scheduler/wake-signal.ts +42 -2
  377. package/src/runtime/control-plane/governance/access-policy.ts +19 -2
  378. package/src/runtime/control-plane/governance/authorization.ts +20 -3
  379. package/src/runtime/control-plane/governance/external-effects.ts +1 -1
  380. package/src/runtime/control-plane/launcher/chatgpt-round-continuation.ts +63 -300
  381. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +29 -300
  382. package/src/runtime/control-plane/launcher/local-conversation-controller.ts +238 -0
  383. package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +5 -2
  384. package/src/runtime/control-plane/launcher/thin-launcher.ts +96 -240
  385. package/src/runtime/control-plane/persistence/cognition-store.ts +820 -0
  386. package/src/runtime/control-plane/persistence/experience-store.ts +162 -29
  387. package/src/runtime/control-plane/persistence/requirement-store.ts +216 -74
  388. package/src/runtime/control-plane/persistence/sqlite-store.ts +113 -6
  389. package/src/runtime/control-plane/release-retention.ts +135 -47
  390. package/src/runtime/control-plane/repository-namespace-retention.ts +2 -2
  391. package/src/runtime/control-plane/runtime-cleanup.ts +295 -107
  392. package/src/runtime/control-plane/workspace/project-onboarding.ts +80 -0
  393. package/src/runtime/control-plane/workspace/semantic-sync-service.ts +19 -5
  394. package/src/runtime/control-plane/workspace/workspace-store.ts +169 -0
  395. package/src/runtime/diagnostics/incident-repair.ts +313 -146
  396. package/src/runtime/diagnostics/mcp-timing.ts +114 -0
  397. package/src/runtime/evidence/artifact-store.ts +158 -40
  398. package/src/runtime/evidence/evidence-store.ts +112 -8
  399. package/src/runtime/evidence/output-handle-index.ts +225 -0
  400. package/src/runtime/evidence/result-store.ts +158 -44
  401. package/src/runtime/evidence/sensitive-output.ts +22 -2
  402. package/src/runtime/execution/jobs/child-reference.ts +11 -0
  403. package/src/runtime/execution/jobs/receipt-recovery.ts +1 -11
  404. package/src/runtime/execution/jobs/store.ts +3 -4
  405. package/src/runtime/execution/managed-workspace.ts +57 -0
  406. package/src/runtime/execution/process-runtime/check-facade.ts +1 -1
  407. package/src/runtime/execution/process-runtime/check-result-retention.ts +2 -2
  408. package/src/runtime/execution/process-runtime/check-result.ts +105 -1
  409. package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +18 -8
  410. package/src/runtime/execution/process-runtime/command-facade.ts +82 -30
  411. package/src/runtime/execution/process-runtime/gc.ts +15 -2
  412. package/src/runtime/execution/process-runtime/handle-index.ts +176 -0
  413. package/src/runtime/execution/process-runtime/host-command-lane.ts +139 -0
  414. package/src/runtime/execution/process-runtime/index.ts +3 -0
  415. package/src/runtime/execution/process-runtime/lightweight-managed.ts +251 -72
  416. package/src/runtime/execution/process-runtime/persisted-check.ts +3 -3
  417. package/src/runtime/execution/process-runtime/process-runner-entry.ts +47 -5
  418. package/src/runtime/execution/process-runtime/process-scope.ts +160 -0
  419. package/src/runtime/execution/process-runtime/resource-claims.ts +65 -61
  420. package/src/runtime/execution/process-runtime/runtime.ts +55 -18
  421. package/src/runtime/execution/process-runtime/store.ts +30 -2
  422. package/src/runtime/execution/process-runtime/types.ts +6 -1
  423. package/src/runtime/execution/thin-harness/execution-router.ts +16 -16
  424. package/src/runtime/execution/thin-harness/fast-executor.ts +2 -2
  425. package/src/runtime/execution/thin-harness/search-worker.ts +2 -2
  426. package/src/runtime/execution/workers/executor.ts +3 -8
  427. package/src/runtime/maintenance/cleanup.ts +41 -5
  428. package/src/runtime/platform/service-inventory.ts +130 -0
  429. package/src/runtime/platform/service-manager.ts +8 -0
  430. package/src/runtime/plugins/action-application.ts +97 -29
  431. package/src/runtime/plugins/app-store-connect-adapter.ts +290 -18
  432. package/src/runtime/plugins/browser-adapter.ts +1124 -333
  433. package/src/runtime/plugins/browser-automation-service.ts +23 -3
  434. package/src/runtime/plugins/browser-macos-bridge.ts +431 -137
  435. package/src/runtime/plugins/browser-manifest-surface.ts +47 -12
  436. package/src/runtime/plugins/browser-native-session-service.ts +63 -13
  437. package/src/runtime/plugins/browser-registration.ts +18 -0
  438. package/src/runtime/plugins/browser-runtime.ts +40 -36
  439. package/src/runtime/plugins/browser-session-authority.ts +2 -2
  440. package/src/runtime/plugins/browser-session-store.ts +46 -76
  441. package/src/runtime/plugins/capability-authorization-grants.ts +258 -62
  442. package/src/runtime/plugins/computer-chatgpt-browser-adapter-installer.ts +228 -0
  443. package/src/runtime/plugins/computer-registration.ts +298 -20
  444. package/src/runtime/plugins/desktop-operator-external-policy.ts +36 -4
  445. package/src/runtime/plugins/desktop-operator-registration.ts +12 -4
  446. package/src/runtime/plugins/external-adapter.ts +42 -6
  447. package/src/runtime/plugins/external-registration.ts +21 -1
  448. package/src/runtime/plugins/github-adapter.ts +30 -3
  449. package/src/runtime/plugins/gmail-adapter.ts +189 -3
  450. package/src/runtime/plugins/google-calendar-adapter.ts +2 -2
  451. package/src/runtime/plugins/google-shared.ts +24 -12
  452. package/src/runtime/plugins/google-tasks-adapter.ts +2 -2
  453. package/src/runtime/plugins/ios/remote-xpc-hid.ts +70 -30
  454. package/src/runtime/plugins/ios-adapter.ts +46 -41
  455. package/src/runtime/plugins/ios-agent-device.ts +54 -4
  456. package/src/runtime/plugins/ios-device-ownership.ts +103 -0
  457. package/src/runtime/plugins/ios-physical-device.ts +497 -79
  458. package/src/runtime/plugins/lightweight-action.ts +208 -2
  459. package/src/runtime/plugins/local-system-adapter.ts +12 -100
  460. package/src/runtime/plugins/managed-process-adapter.ts +12 -5
  461. package/src/runtime/plugins/plugin-action-sidecar.ts +17 -13
  462. package/src/runtime/plugins/plugin-management-adapter.ts +1 -1
  463. package/src/runtime/plugins/store.ts +682 -435
  464. package/src/runtime/plugins/types.ts +24 -0
  465. package/src/runtime/plugins/xiaohongshu-publish.ts +16 -0
  466. package/src/runtime/projections/git-status-sampler.ts +2 -19
  467. package/src/runtime/projections/invalidation.ts +7 -3
  468. package/src/runtime/projections/materialized-view.ts +80 -36
  469. package/src/runtime/recovery/actions.ts +4 -4
  470. package/src/runtime/recovery/capability-action-application.ts +46 -45
  471. package/src/runtime/recovery/lifecycle-inventory.ts +30 -40
  472. package/src/runtime/recovery/maintenance-executor.ts +374 -123
  473. package/src/runtime/recovery/probe.ts +2 -2
  474. package/src/runtime/recovery/store.ts +29 -11
  475. package/src/runtime/release/release-coordinator.ts +312 -0
  476. package/src/runtime/release/release-session.ts +716 -0
  477. package/src/runtime/release/release-state-migration.ts +25 -0
  478. package/src/runtime/resources/leases/store.ts +56 -25
  479. package/src/runtime/root/computer-composition.ts +191 -6
  480. package/src/runtime/root/controller-progression-composition.ts +254 -0
  481. package/src/runtime/root/controller-round-composition.ts +20 -1
  482. package/src/runtime/root/deployment-topology.ts +106 -0
  483. package/src/runtime/root/entry.ts +4 -3
  484. package/src/runtime/root/known-good-recovery.ts +184 -0
  485. package/src/runtime/root/local-bridge.ts +0 -1
  486. package/src/runtime/root/mcp-transport.ts +111 -18
  487. package/src/runtime/root/ownership.ts +261 -9
  488. package/src/runtime/root/package-connector-service.ts +227 -29
  489. package/src/runtime/root/package-runtime-release.ts +117 -30
  490. package/src/runtime/root/package-runtime-service.ts +24 -24
  491. package/src/runtime/root/release-execution-canary.ts +57 -12
  492. package/src/runtime/root/release-loader.ts +90 -8
  493. package/src/runtime/root/release-manifest.ts +80 -40
  494. package/src/runtime/root/release-materialize.ts +372 -106
  495. package/src/runtime/root/release-store.ts +395 -36
  496. package/src/runtime/root/runtime-lane.ts +191 -0
  497. package/src/runtime/root/runtime.ts +160 -29
  498. package/src/runtime/root/scheduled-controller-composition.ts +29 -3
  499. package/src/runtime/root/service-runner.ts +2 -2
  500. package/src/runtime/root/service.ts +126 -44
  501. package/src/runtime/root/status.ts +48 -0
  502. package/src/runtime/root/types.ts +32 -9
  503. package/src/runtime/root/workflow-supervisor-composition.ts +681 -0
  504. package/src/runtime/root/workflow-supervisor-runtime.ts +564 -0
  505. package/src/runtime/root/write-fence.ts +50 -2
  506. package/src/runtime/safe-tooling/google-credential-store.ts +67 -22
  507. package/src/runtime/safe-tooling/google-oauth-broker.ts +25 -7
  508. package/src/runtime/safe-tooling/ios-development.ts +22 -8
  509. package/src/runtime/safe-tooling/job-summary.ts +1 -1
  510. package/src/runtime/safe-tooling/workspace-auth.ts +5 -2
  511. package/src/runtime/shared/atomic-text-file.ts +21 -0
  512. package/src/runtime/shared/bounded-child-supervisor.ts +9 -1
  513. package/src/runtime/shared/json-files.ts +8 -3
  514. package/src/runtime/shared/process-environment.ts +20 -9
  515. package/src/runtime/shared/response-budget.ts +1 -3
  516. package/src/runtime/standalone-recovery/controller-home-migration.ts +16 -24
  517. package/src/runtime/standalone-recovery/core.ts +3792 -417
  518. package/src/runtime/standalone-recovery/entry.ts +507 -45
  519. package/src/runtime/standalone-recovery/installer.ts +262 -148
  520. package/src/runtime/standalone-recovery/mcp-server.ts +29 -193
  521. package/src/runtime/standalone-recovery/operation-lock.ts +12 -2
  522. package/src/runtime/standalone-recovery/performance.ts +54 -16
  523. package/src/runtime/standalone-recovery/release.ts +53 -5
  524. package/src/runtime/standalone-recovery/service-labels.ts +5 -2
  525. package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +5 -2
  526. package/src/runtime/workflow/schedules/browser-probe.ts +17 -6
  527. package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +11 -3
  528. package/src/runtime/workflow/schedules/engine.ts +166 -178
  529. package/src/runtime/workflow/schedules/pending-activation.ts +11 -4
  530. package/src/runtime/workflow/schedules/work-continuation.ts +95 -11
  531. package/src/runtime/workflows/runtime.ts +15 -19
  532. package/src/testing/test-governance.ts +5 -1
  533. package/supervisor/chatgpt-conversation.ts +23 -0
  534. package/supervisor/client.ts +218 -0
  535. package/supervisor/control-plane.ts +963 -0
  536. package/supervisor/entry.ts +15 -0
  537. package/supervisor/forge-validators.ts +147 -0
  538. package/supervisor/index.ts +5 -0
  539. package/supervisor/native-browser-adapter.ts +1151 -0
  540. package/supervisor/native-messaging/host.ts +58 -0
  541. package/supervisor/native-messaging/manifest.ts +26 -0
  542. package/supervisor/native-messaging/protocol.ts +27 -0
  543. package/supervisor/paths.ts +18 -0
  544. package/supervisor/protocol.ts +250 -0
  545. package/supervisor/server.ts +412 -0
  546. package/supervisor/store.ts +1870 -0
  547. package/supervisor/tsconfig.json +8 -0
  548. package/supervisor/types.ts +261 -0
  549. package/SKILL.md +0 -427
  550. package/adapters/chatgpt/controller-host.ts +0 -119
  551. package/adapters/mcp/controller-round-compatibility.ts +0 -184
  552. package/adapters/mcp/frozen-client-semantic-compatibility.ts +0 -292
  553. package/adapters/mcp/runtime-gateway/work-compat-adapter.ts +0 -502
  554. package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +0 -1
  555. package/adapters/mcp/toolset-selection.ts +0 -41
  556. package/agents/openai.yaml +0 -4
  557. package/assets/skill-hooks.json +0 -41
  558. package/assets/skill-version.json +0 -189
  559. package/assets/skills/claude-review/SKILL.md +0 -231
  560. package/assets/skills/codex-review/SKILL.md +0 -103
  561. package/assets/templates/helpers/check-skill-version.ts +0 -193
  562. package/packages/kernel/progression/api/index.ts +0 -2
  563. package/packages/kernel/progression/application/projector.ts +0 -211
  564. package/packages/kernel/progression/domain/types.ts +0 -116
  565. package/packages/kernel/progression/index.ts +0 -1
  566. package/packages/kernel/scheduler/application/continuation-service.ts +0 -212
  567. package/packages/kernel/scheduler/domain/continuation.ts +0 -38
  568. package/packages/kernel/scheduler/infrastructure/continuation-dispatch-store.ts +0 -38
  569. package/packages/kernel/work/domain/admission-policy.ts +0 -34
  570. package/scripts/benchmark-background-check-overlap.ts +0 -228
  571. package/scripts/benchmark-computer-hotpath.ts +0 -255
  572. package/scripts/benchmark-controller-hotpath.ts +0 -212
  573. package/scripts/benchmark-controller-round2.ts +0 -191
  574. package/scripts/benchmark-ios-agent-device.ts +0 -511
  575. package/scripts/benchmark-mcp-host.sh +0 -117
  576. package/scripts/benchmark-mcp-transport.ts +0 -169
  577. package/scripts/benchmark-operational-memory-activation.ts +0 -235
  578. package/scripts/benchmark-operational-shadow.ts +0 -28
  579. package/scripts/benchmark-quality-harness.ts +0 -146
  580. package/scripts/benchmark-route-session-concurrency.ts +0 -915
  581. package/scripts/benchmark-thin-harness-gateway-ab.ts +0 -632
  582. package/scripts/benchmark-thin-harness-mcp-e2e.ts +0 -498
  583. package/scripts/benchmark-thin-harness.ts +0 -251
  584. package/scripts/benchmark-typescript-navigation.ts +0 -186
  585. package/scripts/benchmark-work-efficiency.ts +0 -334
  586. package/scripts/build-controller-ui.ts +0 -28
  587. package/scripts/check-npm-release.sh +0 -32
  588. package/scripts/check-public-release-surface.sh +0 -19
  589. package/scripts/check-release-published.sh +0 -57
  590. package/scripts/check-release-readiness.sh +0 -37
  591. package/scripts/check-release-version.mjs +0 -74
  592. package/scripts/check-skill-version.ts +0 -5
  593. package/scripts/check-tarball-install-smoke.sh +0 -150
  594. package/scripts/ensure-codegraph.sh +0 -16
  595. package/scripts/package-source-archive.sh +0 -147
  596. package/scripts/public-release-files.txt +0 -39
  597. package/scripts/public-release.ts +0 -174
  598. package/scripts/publish-release-tarball.sh +0 -27
  599. package/scripts/route-nl-vs-ts-eval.ts +0 -679
  600. package/scripts/run-skill-hook.ts +0 -244
  601. package/scripts/stage-runtime-release.ts +0 -44
  602. package/scripts/sync-codex-installed-copies.sh +0 -182
  603. package/src/cli/commands/tools.ts +0 -167
  604. package/src/cli/controller/progress.ts +0 -656
  605. package/src/cli/controller/work-mode.ts +0 -181
  606. package/src/cli/local-bridge/console-assets.ts +0 -17
  607. package/src/cli/local-bridge/dashboard.ts +0 -17
  608. package/src/cli/local-bridge/frontend/src/App.tsx +0 -10
  609. package/src/cli/local-bridge/frontend/src/components/Button.tsx +0 -1
  610. package/src/cli/local-bridge/frontend/src/components/DetailPane.tsx +0 -3
  611. package/src/cli/local-bridge/frontend/src/components/SearchField.tsx +0 -1
  612. package/src/cli/local-bridge/frontend/src/components/SectionHeader.tsx +0 -1
  613. package/src/cli/local-bridge/frontend/src/components/Segmented.tsx +0 -1
  614. package/src/cli/local-bridge/frontend/src/components/StatusText.tsx +0 -3
  615. package/src/cli/local-bridge/frontend/src/design/icons.tsx +0 -11
  616. package/src/cli/local-bridge/frontend/src/design/tokens.css +0 -8
  617. package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +0 -153
  618. package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +0 -37
  619. package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +0 -183
  620. package/src/cli/local-bridge/frontend/src/features/repositories/RepositoriesView.tsx +0 -2
  621. package/src/cli/local-bridge/frontend/src/features/system/SystemView.tsx +0 -2
  622. package/src/cli/local-bridge/frontend/src/features/work/WorkView.tsx +0 -4
  623. package/src/cli/local-bridge/frontend/src/lib/api.ts +0 -30
  624. package/src/cli/local-bridge/frontend/src/lib/format.ts +0 -4
  625. package/src/cli/local-bridge/frontend/src/lib/routes.ts +0 -7
  626. package/src/cli/local-bridge/frontend/src/main.tsx +0 -1
  627. package/src/cli/local-bridge/frontend/src/shell/AppShell.tsx +0 -1
  628. package/src/cli/local-bridge/frontend/src/shell/CommandBar.tsx +0 -2
  629. package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +0 -4
  630. package/src/cli/local-bridge/frontend/src/styles.css +0 -28
  631. package/src/cli/local-bridge/frontend/src/types.ts +0 -15
  632. package/src/cli/local-bridge/frontend/src/vite-env.d.ts +0 -1
  633. package/src/cli/local-bridge/frontend/vite.config.ts +0 -27
  634. package/src/cli/local-bridge/ui-dist/app.css +0 -1
  635. package/src/cli/local-bridge/ui-dist/app.js +0 -11228
  636. package/src/cli/mcp/access-mode.ts +0 -2
  637. package/src/cli/mcp/access-tools.ts +0 -2
  638. package/src/cli/mcp/audit.ts +0 -2
  639. package/src/cli/mcp/auth.ts +0 -2
  640. package/src/cli/mcp/instructions.ts +0 -2
  641. package/src/cli/mcp/legacy-context.ts +0 -2
  642. package/src/cli/mcp/legacy-tool-service.ts +0 -2
  643. package/src/cli/mcp/multi-repository.ts +0 -2
  644. package/src/cli/mcp/oauth.ts +0 -2
  645. package/src/cli/mcp/openai-secure-tunnel.ts +0 -2
  646. package/src/cli/mcp/paths.ts +0 -2
  647. package/src/cli/mcp/policy.ts +0 -2
  648. package/src/cli/mcp/post-finalize-work-attribution.ts +0 -2
  649. package/src/cli/mcp/proxy-env.ts +0 -2
  650. package/src/cli/mcp/readiness-projection.ts +0 -2
  651. package/src/cli/mcp/redaction.ts +0 -2
  652. package/src/cli/mcp/repo.ts +0 -2
  653. package/src/cli/mcp/repository-tools.ts +0 -2
  654. package/src/cli/mcp/server.ts +0 -2
  655. package/src/cli/mcp/setup.ts +0 -2
  656. package/src/cli/mcp/tool-capability-cache.ts +0 -2
  657. package/src/cli/mcp/tool-contract.ts +0 -2
  658. package/src/cli/mcp/tools.ts +0 -2
  659. package/src/cli/mcp/toolset-names.ts +0 -2
  660. package/src/cli/mcp/toolset-selection.ts +0 -2
  661. package/src/cli/mcp/toolset.ts +0 -2
  662. package/src/cli/mcp/transports/http.ts +0 -2
  663. package/src/cli/mcp/transports/session-registry.ts +0 -2
  664. package/src/cli/mcp/transports/stdio.ts +0 -2
  665. package/src/cli/mcp/types.ts +0 -2
  666. package/src/cli/mcp/umbrella-tools.ts +0 -2
  667. package/src/cli/tools/codegraph.ts +0 -695
  668. package/src/core/adoption/helper-wrapper-plan.ts +0 -159
  669. package/src/runtime/context/codegraph-cache-boundary.ts +0 -255
  670. package/src/runtime/context/codegraph-read-provider.ts +0 -611
  671. package/src/runtime/context/codegraph-sidecar.cjs +0 -248
  672. package/src/runtime/control-plane/codegraph-cache-retention.ts +0 -164
  673. package/src/runtime/control-plane/execution/content-equivalent-commit-authority.ts +0 -169
  674. package/src/runtime/control-plane/execution/direct-canonical-work-reconciliation.ts +0 -85
  675. package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +0 -655
  676. package/src/runtime/control-plane/execution/work-finalization-service.ts +0 -2850
  677. package/src/runtime/control-plane/execution/work-path-scope.ts +0 -37
  678. package/src/runtime/control-plane/execution/work-task-receipt.ts +0 -468
  679. package/src/runtime/control-plane/facade/controller-round-relay.ts +0 -3
  680. package/src/runtime/control-plane/facade/work-admission-policy.ts +0 -142
  681. package/src/runtime/control-plane/facade/work-implementation-review.ts +0 -2
  682. package/src/runtime/control-plane/facade/work-state-machine.ts +0 -2
  683. package/src/runtime/control-plane/facade/work-task-projection.ts +0 -66
  684. package/src/runtime/control-plane/routing/index.ts +0 -1
  685. package/src/runtime/control-plane/routing/route-policy.ts +0 -401
  686. package/src/runtime/control-plane/routing/workspace-admission.ts +0 -70
  687. package/src/runtime/gateway/mcp/execution-tools.ts +0 -2
  688. package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +0 -2
  689. package/src/runtime/gateway/mcp/persisted-check-process.ts +0 -2
  690. package/src/runtime/gateway/mcp/process-tools.ts +0 -2
  691. package/src/runtime/gateway/mcp/router.ts +0 -2
  692. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +0 -2
  693. package/src/runtime/gateway/mcp/runtime-tools.ts +0 -2
  694. package/src/runtime/gateway/mcp/work-validation-reconciler.ts +0 -2
  695. package/src/runtime/plugins/browser-provider-registry.ts +0 -2
@@ -2,10 +2,9 @@ import { existsSync, readFileSync } from "fs";
2
2
  import { dirname, join, resolve } from "path";
3
3
  import { fileURLToPath } from "url";
4
4
  import { configureBrainRoot, defaultBrainRootChoice, expandHomePath } from "./brain-root";
5
- import { syncCrossReviewSkills } from "./init";
6
5
  import { runInstall, type InstallTargetSpec } from "./install";
7
- import { configureCodegraph } from "../tools/codegraph";
8
6
  import { runProcess as runBoundedProcess } from "../../effects/process-runner";
7
+ import { runSetupProcess as runProcess, withProcessEnv, type SetupExecutionStep } from './setup-execution';
9
8
 
10
9
  export interface GlobalRuntimeOptions {
11
10
  sourceRoot?: string;
@@ -14,22 +13,11 @@ export interface GlobalRuntimeOptions {
14
13
  target?: InstallTargetSpec;
15
14
  installCli?: boolean;
16
15
  installSpec?: string;
17
- syncSkill?: boolean;
18
16
  hostAdapters?: boolean;
19
- externalSkills?: boolean;
20
- codegraph?: boolean;
21
17
  brainRoot?: string;
22
- platform?: NodeJS.Platform;
23
18
  }
24
19
 
25
- export interface GlobalRuntimeStep {
26
- step: string;
27
- status: "ok" | "skipped" | "failed";
28
- command?: string[];
29
- detail?: string;
30
- stdout?: string;
31
- stderr?: string;
32
- }
20
+ export type GlobalRuntimeStep = SetupExecutionStep;
33
21
 
34
22
  export interface GlobalRuntimeResult {
35
23
  exitCode: number;
@@ -40,25 +28,11 @@ export interface GlobalRuntimeResult {
40
28
  }
41
29
 
42
30
  const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url));
43
- const CODEGRAPH_PACKAGE = "@colbymchenry/codegraph";
44
- const WAZA_SKILLS = ["think", "hunt", "check", "health"] as const;
45
31
 
46
32
  function defaultSourceRoot(): string {
47
33
  return join(SCRIPT_DIR, "..", "..", "..");
48
34
  }
49
35
 
50
- function runProcess(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv): GlobalRuntimeStep {
51
- const result = runBoundedProcess(command, args, { cwd, env });
52
-
53
- return {
54
- step: "",
55
- status: result.ok ? "ok" : "failed",
56
- command: [...result.command],
57
- stdout: result.stdout,
58
- stderr: result.stderr || result.error,
59
- };
60
- }
61
-
62
36
  function withStepName(step: GlobalRuntimeStep, name: string, detail?: string): GlobalRuntimeStep {
63
37
  return { ...step, step: name, detail: detail ?? step.detail };
64
38
  }
@@ -69,42 +43,6 @@ function renderStep(step: GlobalRuntimeStep): string[] {
69
43
  return lines;
70
44
  }
71
45
 
72
- function withProcessEnv<T>(env: NodeJS.ProcessEnv | undefined, fn: () => T): T {
73
- if (!env) return fn();
74
- const previous = new Map<string, string | undefined>();
75
- for (const [key, value] of Object.entries(env)) {
76
- previous.set(key, process.env[key]);
77
- if (value === undefined) delete process.env[key];
78
- else process.env[key] = value;
79
- }
80
- try {
81
- return fn();
82
- } finally {
83
- for (const [key, value] of previous) {
84
- if (value === undefined) delete process.env[key];
85
- else process.env[key] = value;
86
- }
87
- }
88
- }
89
-
90
- function hostAgents(target: InstallTargetSpec): string[] {
91
- if (target === "codex") return ["codex"];
92
- if (target === "claude") return ["claude-code"];
93
- return ["claude-code", "codex"];
94
- }
95
-
96
- function isNpxCacheSource(sourceRoot: string): boolean {
97
- return /[\\/]_npx[\\/]/.test(sourceRoot);
98
- }
99
-
100
- function commandEnv(sourceRoot: string, env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv | undefined {
101
- const next = { ...(env ?? {}) };
102
- if (isNpxCacheSource(sourceRoot) && next.AGENTIC_DEV_LINK_INSTALLED_COPIES === undefined) {
103
- next.AGENTIC_DEV_LINK_INSTALLED_COPIES = "0";
104
- }
105
- return Object.keys(next).length > 0 ? next : env;
106
- }
107
-
108
46
  function packageVersion(sourceRoot: string): string | null {
109
47
  try {
110
48
  const pkg = JSON.parse(readFileSync(join(sourceRoot, "package.json"), "utf-8"));
@@ -136,28 +74,6 @@ function installCli(sourceRoot: string, cwd: string, env?: NodeJS.ProcessEnv, in
136
74
  );
137
75
  }
138
76
 
139
- function syncRuntimeSkill(sourceRoot: string, env?: NodeJS.ProcessEnv, platform: NodeJS.Platform = process.platform): GlobalRuntimeStep {
140
- const script = join(sourceRoot, "scripts", "sync-codex-installed-copies.sh");
141
- if (!existsSync(script)) {
142
- return {
143
- step: "sync forge skill runtime",
144
- status: "skipped",
145
- detail: `script not found: ${script}`,
146
- };
147
- }
148
- if (platform === "win32") {
149
- return {
150
- step: "sync forge skill runtime",
151
- status: "skipped",
152
- detail: "native Windows skips the Bash-owned skill sync; use WSL2 for the complete shell workflow",
153
- };
154
- }
155
- return withStepName(
156
- runProcess("bash", [script], sourceRoot, env),
157
- "sync forge skill runtime",
158
- );
159
- }
160
-
161
77
  function installHostAdapters(target: InstallTargetSpec, env?: NodeJS.ProcessEnv): GlobalRuntimeStep {
162
78
  const installed = withProcessEnv(env, () => runInstall({ target, location: "global" }));
163
79
  return {
@@ -167,50 +83,6 @@ function installHostAdapters(target: InstallTargetSpec, env?: NodeJS.ProcessEnv)
167
83
  };
168
84
  }
169
85
 
170
- function installWazaSkills(sourceRoot: string, target: InstallTargetSpec, env?: NodeJS.ProcessEnv): GlobalRuntimeStep {
171
- const agents = hostAgents(target);
172
- const step = runProcess(
173
- "npx",
174
- [
175
- "-y",
176
- "skills",
177
- "add",
178
- "tw93/Waza",
179
- "-g",
180
- "-a",
181
- ...agents,
182
- "-s",
183
- ...WAZA_SKILLS,
184
- "-y",
185
- ],
186
- sourceRoot,
187
- env,
188
- );
189
- return withStepName(step, "configure Waza skills", `target=${target}`);
190
- }
191
-
192
- function installMermaidSkill(sourceRoot: string, target: InstallTargetSpec, env?: NodeJS.ProcessEnv): GlobalRuntimeStep {
193
- const agents = hostAgents(target);
194
- const step = runProcess(
195
- "npx",
196
- [
197
- "-y",
198
- "skills",
199
- "add",
200
- "BfdCampos/dotfiles",
201
- "-g",
202
- "-a",
203
- ...agents,
204
- "-s",
205
- "mermaid",
206
- "-y",
207
- ],
208
- sourceRoot,
209
- env,
210
- );
211
- return withStepName(step, "configure Mermaid skill", `target=${target}`);
212
- }
213
-
214
86
  function configureBrain(root: string | undefined, env?: NodeJS.ProcessEnv): GlobalRuntimeStep {
215
87
  try {
216
88
  const selected = root
@@ -231,86 +103,21 @@ function configureBrain(root: string | undefined, env?: NodeJS.ProcessEnv): Glob
231
103
  }
232
104
  }
233
105
 
234
- function ensureCodegraphCli(cwd: string, env?: NodeJS.ProcessEnv): GlobalRuntimeStep {
235
- const check = runProcess("codegraph", ["--version"], cwd, env);
236
- if (check.status === "ok") return withStepName(check, "ensure CodeGraph CLI", "present");
237
- const install = commandAvailable("bun", cwd, env)
238
- ? runProcess("bun", ["add", "-g", CODEGRAPH_PACKAGE], cwd, env)
239
- : runProcess("npm", ["install", "-g", CODEGRAPH_PACKAGE, "--omit=optional", "--no-audit", "--no-fund"], cwd, env);
240
- if (install.status !== "ok") return withStepName(install, "ensure CodeGraph CLI", CODEGRAPH_PACKAGE);
241
- const recheck = runProcess("codegraph", ["--version"], cwd, env);
242
- if (recheck.status === "ok") return withStepName(recheck, "ensure CodeGraph CLI", "installed");
243
- return {
244
- ...recheck,
245
- step: "ensure CodeGraph CLI",
246
- status: "failed",
247
- detail: `${CODEGRAPH_PACKAGE} installed, but codegraph is not on PATH`,
248
- };
249
- }
250
-
251
- function configureCodegraphMcp(cwd: string, target: InstallTargetSpec, env?: NodeJS.ProcessEnv): GlobalRuntimeStep {
252
- try {
253
- const result = configureCodegraph({ repoRoot: cwd, target, location: "global", env });
254
- return {
255
- step: "configure CodeGraph MCP",
256
- status: result.actions.some((entry) => entry.status === "failed") ? "failed" : "ok",
257
- detail: result.actions.map((entry) => `${entry.action}:${entry.status}`).join(", "),
258
- };
259
- } catch (error) {
260
- return {
261
- step: "configure CodeGraph MCP",
262
- status: "failed",
263
- stderr: String((error as Error).message ?? error),
264
- };
265
- }
266
- }
267
-
268
106
  export function runGlobalRuntimeSetup(opts: GlobalRuntimeOptions = {}): GlobalRuntimeResult {
269
107
  const sourceRoot = opts.sourceRoot ?? defaultSourceRoot();
270
108
  const cwd = opts.cwd ?? process.cwd();
271
109
  const target = opts.target ?? "both";
272
- const env = commandEnv(sourceRoot, opts.env);
273
- const platform = opts.platform ?? process.platform;
110
+ const env = opts.env;
274
111
  const steps: GlobalRuntimeStep[] = [];
275
112
 
276
113
  if (opts.installCli !== false) steps.push(installCli(sourceRoot, cwd, env, opts.installSpec));
277
114
  else steps.push({ step: "install forge CLI", status: "skipped", detail: "disabled" });
278
115
 
279
- if (opts.syncSkill !== false) steps.push(syncRuntimeSkill(sourceRoot, env, platform));
280
- else steps.push({ step: "sync forge skill runtime", status: "skipped", detail: "disabled" });
281
-
282
116
  if (opts.hostAdapters !== false) steps.push(installHostAdapters(target, env));
283
117
  else steps.push({ step: "install host adapters", status: "skipped", detail: "disabled" });
284
118
 
285
- if (opts.externalSkills !== false) {
286
- steps.push(installWazaSkills(sourceRoot, target, env));
287
- steps.push(installMermaidSkill(sourceRoot, target, env));
288
- steps.push(...syncCrossReviewSkills(sourceRoot, target, env));
289
- } else {
290
- steps.push({ step: "configure Waza skills", status: "skipped", detail: "disabled" });
291
- steps.push({ step: "configure Mermaid skill", status: "skipped", detail: "disabled" });
292
- steps.push({ step: "cross-review skills", status: "skipped", detail: "disabled" });
293
- }
294
-
295
119
  steps.push(configureBrain(opts.brainRoot, env));
296
120
 
297
- if (platform === "win32" && opts.codegraph !== false) {
298
- steps.push({
299
- step: "ensure CodeGraph CLI",
300
- status: "skipped",
301
- detail: "native Windows automatic CodeGraph setup is not release-validated; use WSL2 or configure it manually",
302
- });
303
- steps.push({ step: "configure CodeGraph MCP", status: "skipped", detail: "native Windows default" });
304
- } else if (opts.codegraph !== false) {
305
- const ensure = ensureCodegraphCli(cwd, env);
306
- steps.push(ensure);
307
- if (ensure.status === "ok") steps.push(configureCodegraphMcp(cwd, target, env));
308
- else steps.push({ step: "configure CodeGraph MCP", status: "skipped", detail: "CodeGraph CLI install failed" });
309
- } else {
310
- steps.push({ step: "ensure CodeGraph CLI", status: "skipped", detail: "disabled" });
311
- steps.push({ step: "configure CodeGraph MCP", status: "skipped", detail: "disabled" });
312
- }
313
-
314
121
  const lines = steps.flatMap(renderStep);
315
122
  const failed = steps.some((step) => step.status === "failed");
316
123
  return {
@@ -15,6 +15,7 @@ import { dirname, join, resolve } from 'path';
15
15
  import { fileURLToPath } from 'url';
16
16
  import { Command } from 'commander';
17
17
  import { runDoctor, type CheckStatus, type DoctorReport } from './doctor';
18
+ import { withProcessEnv } from './setup-execution';
18
19
  import { runStatus, type StatusReport } from './status';
19
20
  import { runMcpSetupChatgpt } from '../../../adapters/mcp/setup';
20
21
  import { resolveControllerHome } from '../repositories/controller-home';
@@ -124,24 +125,6 @@ const UPDATE_CHECK_ENV = 'FORGE_CHECK_UPDATES';
124
125
  const GLOBAL_RULES_BEGIN = '<!-- BEGIN: forge global-working-rules -->';
125
126
  const VALID_TARGETS: readonly InitHookTarget[] = ['none', 'codex', 'claude', 'both'];
126
127
 
127
- function withProcessEnv<T>(env: NodeJS.ProcessEnv | undefined, fn: () => T): T {
128
- if (!env) return fn();
129
- const previous = new Map<string, string | undefined>();
130
- for (const [key, value] of Object.entries(env)) {
131
- previous.set(key, process.env[key]);
132
- if (value === undefined) delete process.env[key];
133
- else process.env[key] = value;
134
- }
135
- try {
136
- return fn();
137
- } finally {
138
- for (const [key, value] of previous) {
139
- if (value === undefined) delete process.env[key];
140
- else process.env[key] = value;
141
- }
142
- }
143
- }
144
-
145
128
  function selectedTargets(target: InitHookTarget): Array<'codex' | 'claude'> {
146
129
  if (target === 'none') return [];
147
130
  if (target === 'both') return ['codex', 'claude'];
@@ -248,12 +231,12 @@ function parseActionCommand(detail: string): string | undefined {
248
231
  function doctorEntryRelevant(id: string, target: InitHookTarget): boolean {
249
232
  if (id === 'cli-on-path' || id === 'cli-version' || id === 'cli-update' || id === 'security-config') return true;
250
233
  if (target === 'none') return false;
251
- if (id === 'repo-hook-scripts' || id === 'codegraph-readiness' || id === 'codegraph-index') return true;
234
+ if (id === 'repo-hook-scripts') return true;
252
235
  if (target === 'codex' || target === 'both') {
253
- if (id === 'codex-adapter' || id === 'codex-trust-state' || id === 'codex-codegraph-mcp') return true;
236
+ if (id === 'codex-adapter' || id === 'codex-trust-state') return true;
254
237
  }
255
238
  if (target === 'claude' || target === 'both') {
256
- if (id === 'claude-adapter' || id === 'claude-codegraph-mcp') return true;
239
+ if (id === 'claude-adapter') return true;
257
240
  }
258
241
  return false;
259
242
  }
@@ -296,7 +279,7 @@ function doctorChecks(
296
279
  verification: 'forge security scan --json',
297
280
  });
298
281
  } else if (
299
- (entry.id === 'repo-hook-scripts' || entry.id.startsWith('codegraph-')) &&
282
+ entry.id === 'repo-hook-scripts' &&
300
283
  (entry.status === 'warn' || entry.status === 'fail')
301
284
  ) {
302
285
  const command = parseActionCommand(entry.detail);
@@ -454,7 +437,7 @@ function commandForToolGap(toolName: string, tool: ToolingTool, target: InitHook
454
437
  return normalizeToolCommand(tool.install_command, target);
455
438
  }
456
439
  if (toolName === 'codex_automation_profile') {
457
- return 'forge install --target codex --no-cli --no-hooks --no-codegraph';
440
+ return 'forge install --target codex --no-cli --no-hooks';
458
441
  }
459
442
  return normalizeToolCommand(
460
443
  tool.sync_command ?? tool.ensure_command ?? tool.mcp_install_command ?? tool.install_command ?? tool.upgrade_command,
@@ -10,12 +10,10 @@ import { createInterface } from "readline/promises";
10
10
  import { stdin, stdout } from "process";
11
11
  import { homedir } from "os";
12
12
  import {
13
- cpSync,
14
13
  existsSync,
15
14
  mkdirSync,
16
15
  readFileSync,
17
16
  realpathSync,
18
- rmSync,
19
17
  writeFileSync,
20
18
  } from "fs";
21
19
  import { dirname, join, resolve } from "path";
@@ -28,12 +26,11 @@ import {
28
26
  expandHomePath,
29
27
  type BrainRootChoice,
30
28
  } from "./brain-root";
31
- import { configureCodegraph, ensureCodegraph } from "../tools/codegraph";
32
29
  import { runProcess as runBoundedProcess } from "../../effects/process-runner";
30
+ import { runSetupProcess as runProcess, withProcessEnv, type SetupExecutionStep } from './setup-execution';
33
31
 
34
32
  const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url));
35
33
  const REPO_ROOT = resolve(SCRIPT_DIR, "..", "..", "..");
36
- const WAZA_SKILLS = ["think", "hunt", "check", "health"];
37
34
  const GBRAIN_INSTALL_ARGS = ["install", "-g", "github:garrytan/gbrain"] as const;
38
35
  const GLOBAL_RULES_BEGIN = "<!-- BEGIN: forge global-working-rules -->";
39
36
  const GLOBAL_RULES_END = "<!-- END: forge global-working-rules -->";
@@ -45,30 +42,12 @@ export interface GlobalContextOptions {
45
42
  reportLanguageInstruction: string;
46
43
  }
47
44
 
48
- /**
49
- * Cross-review skills bundled in this package under `assets/skills/<skill>` and
50
- * installed host-aware: `codex-review` (Claude host) lets a Claude session get an
51
- * independent Codex review; `claude-review` (Codex host) lets a Codex session get
52
- * an independent Claude review. They are self-contained (no gstack runtime), so
53
- * init bootstraps them as workflow-owned runtime skills alongside Waza and
54
- * Mermaid, not as an unrelated plugin marketplace stack.
55
- */
56
- const CROSS_REVIEW_SKILLS: ReadonlyArray<{ skill: string; host: "claude" | "codex" }> = [
57
- { skill: "codex-review", host: "claude" },
58
- { skill: "claude-review", host: "codex" },
59
- ];
60
-
61
45
  export interface InitCommandOptions {
62
46
  repo?: string;
63
47
  sourceRoot?: string;
64
48
  apply?: boolean;
65
49
  verify?: boolean;
66
- syncSkill?: boolean;
67
50
  hostAdapters?: boolean;
68
- externalSkills?: boolean;
69
- codegraph?: boolean;
70
- configureCodegraphMcp?: boolean;
71
- syncCodegraph?: boolean;
72
51
  globalContext?: GlobalContextOptions;
73
52
  brainRoot?: string;
74
53
  brainMode?: InitBrainMode;
@@ -76,14 +55,7 @@ export interface InitCommandOptions {
76
55
  env?: NodeJS.ProcessEnv;
77
56
  }
78
57
 
79
- export interface InitStep {
80
- step: string;
81
- status: "ok" | "skipped" | "failed";
82
- command?: string[];
83
- detail?: string;
84
- stdout?: string;
85
- stderr?: string;
86
- }
58
+ export type InitStep = SetupExecutionStep;
87
59
 
88
60
  export interface InitCommandResult {
89
61
  exitCode: number;
@@ -103,28 +75,6 @@ interface Choice<T> {
103
75
  detail?: string;
104
76
  }
105
77
 
106
- function runProcess(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv): InitStep {
107
- const result = runBoundedProcess(command, args, { cwd, env });
108
-
109
- return {
110
- step: "",
111
- status: result.ok ? "ok" : "failed",
112
- command: [...result.command],
113
- stdout: result.stdout,
114
- stderr: result.stderr || result.error,
115
- };
116
- }
117
-
118
- function isNpxCacheSource(sourceRoot: string): boolean {
119
- return /[\\/]_npx[\\/]/.test(sourceRoot);
120
- }
121
-
122
- function initCommandEnv(sourceRoot: string, env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv | undefined {
123
- if (!isNpxCacheSource(sourceRoot)) return env;
124
- if (env?.AGENTIC_DEV_LINK_INSTALLED_COPIES !== undefined) return env;
125
- return { ...(env ?? {}), AGENTIC_DEV_LINK_INSTALLED_COPIES: "0" };
126
- }
127
-
128
78
  function withStepName(step: InitStep, name: string, detail?: string): InitStep {
129
79
  return { ...step, step: name, detail: detail ?? step.detail };
130
80
  }
@@ -137,24 +87,6 @@ function renderStep(step: InitStep): string[] {
137
87
  return lines;
138
88
  }
139
89
 
140
- function withProcessEnv<T>(env: NodeJS.ProcessEnv | undefined, fn: () => T): T {
141
- if (!env) return fn();
142
- const previous = new Map<string, string | undefined>();
143
- for (const [key, value] of Object.entries(env)) {
144
- previous.set(key, process.env[key]);
145
- if (value === undefined) delete process.env[key];
146
- else process.env[key] = value;
147
- }
148
- try {
149
- return fn();
150
- } finally {
151
- for (const [key, value] of previous) {
152
- if (value === undefined) delete process.env[key];
153
- else process.env[key] = value;
154
- }
155
- }
156
- }
157
-
158
90
  function hostAgents(target: InstallTargetSpec): string[] {
159
91
  if (target === "codex") return ["codex"];
160
92
  if (target === "claude") return ["claude-code"];
@@ -282,111 +214,13 @@ export function writeGlobalContextFiles(
282
214
  return { step: "global working rules", status: "ok", detail: changes.join(", ") };
283
215
  }
284
216
 
285
- /**
286
- * Install the bundled cross-review skills, each into the host where it is useful:
287
- * `codex-review` → `~/.claude/skills` (Claude calls Codex), `claude-review` →
288
- * `~/.codex/skills` (Codex calls Claude). Respects `target`, is idempotent
289
- * (identical SKILL.md → "already present"), and treats a missing bundled source
290
- * as `skipped` (never fails init).
291
- */
292
- export function syncCrossReviewSkills(
293
- sourceRoot: string,
294
- target: InstallTargetSpec,
295
- env?: NodeJS.ProcessEnv,
296
- ): InitStep[] {
297
- const home = homeDir(env);
298
- const steps: InitStep[] = [];
299
- for (const { skill, host } of CROSS_REVIEW_SKILLS) {
300
- const step = `cross-review skill ${skill}`;
301
- if (target !== "both" && target !== host) continue;
302
- if (!home) {
303
- steps.push({ step, status: "failed", detail: "HOME is required to resolve host skill roots" });
304
- continue;
305
- }
306
- const source = join(sourceRoot, "assets", "skills", skill);
307
- const srcSkill = join(source, "SKILL.md");
308
- if (!existsSync(srcSkill)) {
309
- steps.push({ step, status: "skipped", detail: `bundled source not found at ${source}` });
310
- continue;
311
- }
312
- const root = join(home, host === "claude" ? ".claude" : ".codex", "skills");
313
- const dest = join(root, skill);
314
- const destSkill = join(dest, "SKILL.md");
315
- mkdirSync(root, { recursive: true });
316
- if (
317
- existsSync(dest) &&
318
- (samePath(source, dest) ||
319
- (existsSync(destSkill) && readFileSync(destSkill, "utf-8") === readFileSync(srcSkill, "utf-8")))
320
- ) {
321
- steps.push({ step, status: "ok", detail: "already present" });
322
- continue;
323
- }
324
- if (existsSync(dest)) {
325
- rmSync(dest, { recursive: true, force: true });
326
- }
327
- cpSync(source, dest, { recursive: true });
328
- steps.push({ step, status: "ok", detail: `synced ${dest}` });
329
- }
330
- return steps;
331
- }
332
-
333
- function installExternalSkills(sourceRoot: string, target: InstallTargetSpec, env?: NodeJS.ProcessEnv): InitStep[] {
334
- const steps: InitStep[] = [];
335
- const agents = hostAgents(target);
336
- const waza = runProcess(
337
- "npx",
338
- [
339
- "-y",
340
- "skills",
341
- "add",
342
- "tw93/Waza",
343
- "-g",
344
- "-a",
345
- ...agents,
346
- "-s",
347
- ...WAZA_SKILLS,
348
- "-y",
349
- ],
350
- sourceRoot,
351
- env,
352
- );
353
- steps.push(withStepName(waza, "external skills Waza", `target=${target}`));
354
- const mermaid = runProcess(
355
- "npx",
356
- [
357
- "-y",
358
- "skills",
359
- "add",
360
- "BfdCampos/dotfiles",
361
- "-g",
362
- "-a",
363
- ...agents,
364
- "-s",
365
- "mermaid",
366
- "-y",
367
- ],
368
- sourceRoot,
369
- env,
370
- );
371
- steps.push(withStepName(mermaid, "external skill mermaid", `target=${target}`));
372
- steps.push(...syncCrossReviewSkills(sourceRoot, target, env));
373
- return steps;
374
- }
375
-
376
217
  export function runInit(opts: InitCommandOptions = {}): InitCommandResult {
377
218
  const sourceRoot = resolve(opts.sourceRoot ?? REPO_ROOT);
378
219
  const repoRoot = resolve(opts.repo ?? process.cwd());
379
- let commandEnv = initCommandEnv(sourceRoot, opts.env);
220
+ let commandEnv = opts.env;
380
221
  const apply = opts.apply !== false;
381
222
  const verify = opts.verify !== false;
382
- const syncSkill = opts.syncSkill !== false;
383
223
  const hostAdapters = opts.hostAdapters !== false;
384
- const externalSkills = opts.externalSkills === true;
385
- const configureCgMcp = opts.configureCodegraphMcp === true;
386
- const syncCodegraph = opts.syncCodegraph === true;
387
- // CodeGraph is an optional rebuildable tool cache. Ordinary adoption leaves it
388
- // disabled; any explicit CodeGraph operation opts in and uses the Controller Home-backed compatibility link.
389
- const codegraph = opts.codegraph === true || configureCgMcp || syncCodegraph;
390
224
  const brainMode = opts.brainMode ?? "skip";
391
225
  const target = opts.target ?? "both";
392
226
  const steps: InitStep[] = [];
@@ -406,17 +240,6 @@ export function runInit(opts: InitCommandOptions = {}): InitCommandResult {
406
240
  };
407
241
  }
408
242
 
409
- if (syncSkill && apply) {
410
- const step = runProcess("bash", [join(sourceRoot, "scripts", "sync-codex-installed-copies.sh")], sourceRoot, commandEnv);
411
- steps.push(withStepName(step, "sync forge skills", `target=${target}`));
412
- } else {
413
- steps.push({
414
- step: "sync forge skills",
415
- status: "skipped",
416
- detail: syncSkill ? "dry-run" : "disabled",
417
- });
418
- }
419
-
420
243
  if (hostAdapters && apply) {
421
244
  const installed = withProcessEnv(commandEnv, () => runInstall({ target, location: "global" }));
422
245
  steps.push({
@@ -463,74 +286,6 @@ export function runInit(opts: InitCommandOptions = {}): InitCommandResult {
463
286
  );
464
287
  steps.push(withStepName(migrate, apply ? "apply Forge" : "plan Forge", repoRoot));
465
288
 
466
- if (externalSkills && apply && migrate.status === "ok") {
467
- steps.push(...installExternalSkills(sourceRoot, target, commandEnv));
468
- } else {
469
- steps.push({
470
- step: "external skills",
471
- status: "skipped",
472
- detail: !externalSkills
473
- ? "disabled"
474
- : apply
475
- ? "Forge did not apply cleanly"
476
- : "dry-run",
477
- });
478
- }
479
-
480
- if (codegraph && apply) {
481
- try {
482
- const cg = ensureCodegraph({ repoRoot, init: true, sync: syncCodegraph, env: commandEnv, host: target });
483
- const cgFailed = cg.actions.some((entry) => entry.status === "failed");
484
- steps.push({
485
- step: "ensure codegraph index",
486
- status: cg.actions.length === 0 ? "skipped" : cgFailed ? "failed" : "ok",
487
- detail:
488
- cg.resolution.source === "missing"
489
- ? "codegraph CLI not found; skipped (install via: forge tools ensure codegraph)"
490
- : cg.actions.length > 0
491
- ? cg.actions.map((entry) => `${entry.action}:${entry.status}`).join(", ")
492
- : `index ${cg.status}`,
493
- });
494
-
495
- const mcpHosts =
496
- (cg.raw as { mcp_hosts?: Record<string, { status?: string }> }).mcp_hosts ?? {};
497
- const mcpConfigured =
498
- cg.resolution.source !== "missing" &&
499
- ["codex", "claude"].every((host) => mcpHosts[host]?.status === "configured");
500
-
501
- if (cg.resolution.source !== "missing" && !mcpConfigured) {
502
- if (configureCgMcp) {
503
- const conf = configureCodegraph({ repoRoot, target, location: "global", env: commandEnv });
504
- steps.push({
505
- step: "configure codegraph mcp",
506
- status: conf.actions.some((entry) => entry.status === "failed") ? "failed" : "ok",
507
- detail: conf.actions.map((entry) => `${entry.action}:${entry.status}`).join(", "),
508
- });
509
- } else {
510
- steps.push({
511
- step: "codegraph mcp",
512
- status: "skipped",
513
- detail:
514
- "not registered; run: forge tools configure codegraph --target both --location global",
515
- });
516
- }
517
- }
518
- } catch (error) {
519
- steps.push({
520
- step: "ensure codegraph index",
521
- status: "failed",
522
- detail: "CodeGraph readiness check failed",
523
- stderr: error instanceof Error ? error.message : String(error),
524
- });
525
- }
526
- } else {
527
- steps.push({
528
- step: "ensure codegraph index",
529
- status: "skipped",
530
- detail: codegraph ? "dry-run" : "disabled",
531
- });
532
- }
533
-
534
289
  if (brainMode !== "skip" && apply && migrate.status === "ok") {
535
290
  const root = opts.brainRoot ?? commandEnv?.FORGE_BRAIN_ROOT;
536
291
  if (root) {
@@ -795,7 +550,6 @@ export async function runInteractiveInit(opts: InteractiveInitOptions = {}): Pro
795
550
  `reporting=${reportLanguageInstruction}`,
796
551
  `brainRoot=${resolvedBrainChoice.root}`,
797
552
  `brainMode=${brainMode}`,
798
- "CodeGraph=required ensure --init --sync plus global MCP configure",
799
553
  `apply=${opts.apply === false ? "false" : "true"}`,
800
554
  `verify=${opts.verify === false ? "false" : "true"}`,
801
555
  ]));
@@ -817,9 +571,6 @@ export async function runInteractiveInit(opts: InteractiveInitOptions = {}): Pro
817
571
  repo: repoRoot,
818
572
  sourceRoot,
819
573
  target,
820
- codegraph: true,
821
- configureCodegraphMcp: true,
822
- syncCodegraph: true,
823
574
  globalContext: { reportLanguageInstruction },
824
575
  brainRoot: resolvedBrainChoice.root,
825
576
  brainMode,