@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.
Files changed (900) hide show
  1. package/AGENTS.md +121 -62
  2. package/CHANGELOG.md +40 -0
  3. package/CLAUDE.md +57 -62
  4. package/CONTRIBUTING.md +3 -2
  5. package/README.md +2 -2
  6. package/SKILL.md +0 -1
  7. package/THIRD_PARTY_NOTICES.md +5 -2
  8. package/adapters/browser/index.ts +2 -0
  9. package/adapters/chatgpt/browser-delivery-host.ts +77 -0
  10. package/adapters/chatgpt/browser-delivery-runtime.ts +1256 -0
  11. package/adapters/chatgpt/controller-binding-store.ts +134 -0
  12. package/adapters/chatgpt/controller-round-host.ts +68 -0
  13. package/adapters/chatgpt/controller-round-settlement-store.ts +99 -0
  14. package/adapters/chatgpt/provider-delivery.ts +340 -0
  15. package/adapters/chatgpt/work-conversation-binding-store.ts +218 -0
  16. package/adapters/chatgpt/wsl-bridge-delivery-host.ts +63 -0
  17. package/adapters/computer/chatgpt-extension-target.ts +463 -0
  18. package/adapters/computer/chatgpt-target-router.ts +103 -0
  19. package/adapters/computer/chrome-extension/background.js +385 -0
  20. package/adapters/computer/chrome-extension/content.js +378 -0
  21. package/adapters/computer/chrome-extension/core.js +24 -0
  22. package/adapters/computer/chrome-extension/manifest.json +30 -0
  23. package/adapters/computer/desktop-operator-contract.ts +7 -0
  24. package/adapters/computer/desktop-operator-discovery.ts +181 -0
  25. package/adapters/computer/desktop-operator-negotiation.ts +174 -0
  26. package/adapters/computer/desktop-operator-provider.ts +312 -0
  27. package/adapters/computer/index.ts +1 -0
  28. package/adapters/computer/interaction-target-authority.ts +1068 -0
  29. package/adapters/controller-process/binding-store.ts +34 -0
  30. package/adapters/controller-process/controller-host.ts +26 -0
  31. package/adapters/mcp/access-mode.ts +132 -0
  32. package/adapters/mcp/audit.ts +32 -0
  33. package/adapters/mcp/auth.ts +406 -0
  34. package/adapters/mcp/instructions.ts +37 -0
  35. package/adapters/mcp/legacy-context.ts +18 -0
  36. package/adapters/mcp/multi-repository.ts +421 -0
  37. package/adapters/mcp/oauth.ts +464 -0
  38. package/adapters/mcp/paths.ts +143 -0
  39. package/adapters/mcp/policy.ts +232 -0
  40. package/adapters/mcp/proxy-env.ts +62 -0
  41. package/adapters/mcp/readiness-projection.ts +24 -0
  42. package/adapters/mcp/redaction.ts +21 -0
  43. package/adapters/mcp/repo.ts +24 -0
  44. package/adapters/mcp/runtime-gateway/artifact-adapter.ts +52 -0
  45. package/adapters/mcp/runtime-gateway/automation-receipt-adapter.ts +87 -0
  46. package/adapters/mcp/runtime-gateway/bounded-result-runtime.ts +62 -0
  47. package/adapters/mcp/runtime-gateway/cognition-settlement.ts +201 -0
  48. package/adapters/mcp/runtime-gateway/context-adapter.ts +1167 -0
  49. package/adapters/mcp/runtime-gateway/context-pack-sidecar.ts +91 -0
  50. package/adapters/mcp/runtime-gateway/controller-authority-adapter.ts +206 -0
  51. package/adapters/mcp/runtime-gateway/core-capability-adapter.ts +258 -0
  52. package/adapters/mcp/runtime-gateway/engineering-preconditions.ts +130 -0
  53. package/adapters/mcp/runtime-gateway/engineering-tool-contract.ts +15 -0
  54. package/adapters/mcp/runtime-gateway/execution-control-adapter.ts +28 -0
  55. package/adapters/mcp/runtime-gateway/execution-tools.ts +173 -0
  56. package/adapters/mcp/runtime-gateway/filesystem-adapter.ts +38 -0
  57. package/adapters/mcp/runtime-gateway/gateway-execution-adapter.ts +412 -0
  58. package/adapters/mcp/runtime-gateway/legacy-ios-tool-adapter.ts +105 -0
  59. package/adapters/mcp/runtime-gateway/maintenance-adapter.ts +44 -0
  60. package/adapters/mcp/runtime-gateway/model-adapter.ts +63 -0
  61. package/adapters/mcp/runtime-gateway/persisted-check-process.ts +3 -0
  62. package/adapters/mcp/runtime-gateway/plugin-adapter.ts +380 -0
  63. package/adapters/mcp/runtime-gateway/process-tools.ts +457 -0
  64. package/adapters/mcp/runtime-gateway/protected-computer-adapter.ts +88 -0
  65. package/adapters/mcp/runtime-gateway/recovery-adapter.ts +285 -0
  66. package/adapters/mcp/runtime-gateway/recovery-client-adapter.ts +70 -0
  67. package/adapters/mcp/runtime-gateway/recovery-tool-contract.ts +99 -0
  68. package/adapters/mcp/runtime-gateway/repository-compat-adapter.ts +79 -0
  69. package/adapters/mcp/runtime-gateway/result-adapter.ts +114 -0
  70. package/adapters/mcp/runtime-gateway/router.ts +242 -0
  71. package/adapters/mcp/runtime-gateway/routing-policy.ts +499 -0
  72. package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +1200 -0
  73. package/adapters/mcp/runtime-gateway/runtime-readiness-observation.ts +218 -0
  74. package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +574 -0
  75. package/adapters/mcp/runtime-gateway/runtime-tool-shared.ts +27 -0
  76. package/adapters/mcp/runtime-gateway/runtime-tools.ts +78 -0
  77. package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +187 -0
  78. package/adapters/mcp/runtime-gateway/shared-adapter.ts +45 -0
  79. package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +962 -0
  80. package/adapters/mcp/runtime-gateway/typescript-navigation-sidecar.ts +136 -0
  81. package/adapters/mcp/runtime-gateway/work-adapter.ts +325 -0
  82. package/adapters/mcp/runtime-gateway/work-controller-operations.ts +257 -0
  83. package/adapters/mcp/runtime-gateway/work-detail-projection.ts +60 -0
  84. package/adapters/mcp/runtime-gateway/work-input-wire-migration.ts +246 -0
  85. package/adapters/mcp/runtime-gateway/work-learning-operations.ts +145 -0
  86. package/adapters/mcp/runtime-gateway/work-list-projection.ts +38 -0
  87. package/adapters/mcp/runtime-gateway/work-plan-operations.ts +382 -0
  88. package/adapters/mcp/runtime-gateway/work-repair-adapter.ts +308 -0
  89. package/adapters/mcp/runtime-gateway/work-requirement-operations.ts +148 -0
  90. package/adapters/mcp/runtime-gateway/work-semantic-operations.ts +263 -0
  91. package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +1 -0
  92. package/adapters/mcp/runtime-gateway/work-workflow-operations.ts +113 -0
  93. package/adapters/mcp/runtime-gateway/workflow-supervisor-adapter.ts +156 -0
  94. package/adapters/mcp/server.ts +1092 -0
  95. package/adapters/mcp/setup.ts +789 -0
  96. package/adapters/mcp/tool-capability-cache.ts +87 -0
  97. package/adapters/mcp/tool-mapping/access-tools.ts +387 -0
  98. package/adapters/mcp/tool-mapping/legacy-tool-service.ts +5139 -0
  99. package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +145 -0
  100. package/adapters/mcp/tool-mapping/repository-tools.ts +1682 -0
  101. package/adapters/mcp/tool-mapping/tools.ts +9 -0
  102. package/adapters/mcp/tool-mapping/umbrella-tools.ts +117 -0
  103. package/adapters/mcp/toolset-names.ts +79 -0
  104. package/adapters/mcp/toolset-selection.ts +41 -0
  105. package/adapters/mcp/toolset.ts +337 -0
  106. package/adapters/mcp/transports/http-observation.ts +365 -0
  107. package/adapters/mcp/transports/http.ts +933 -0
  108. package/adapters/mcp/transports/oauth-http.ts +322 -0
  109. package/adapters/mcp/transports/session-registry.ts +519 -0
  110. package/adapters/mcp/transports/stdio.ts +8 -0
  111. package/adapters/mcp/tunnels/openai-secure-tunnel.ts +223 -0
  112. package/adapters/mcp/types.ts +41 -0
  113. package/assets/AGENTS.md +2 -16
  114. package/assets/CLAUDE.md +2 -16
  115. package/assets/hooks/AGENTS.md +3 -14
  116. package/assets/hooks/CLAUDE.md +3 -14
  117. package/assets/hooks/hook-input.sh +9 -2
  118. package/assets/hooks/lib/workflow-state.sh +28 -10
  119. package/assets/hooks/prompt-guard.sh +63 -37
  120. package/assets/hooks/security-sentinel.sh +2 -1
  121. package/assets/hooks/session-start-context.sh +7 -5
  122. package/assets/hooks/stop-orchestrator.sh +13 -3
  123. package/assets/initializer-question-pack.v4.json +11 -7
  124. package/assets/partials/05-workflow.partial.md +18 -73
  125. package/assets/partials/07-footer.partial.md +1 -1
  126. package/assets/partials-agents/02-operating-mode.partial.md +1 -2
  127. package/assets/partials-agents/04-task-protocol.partial.md +14 -59
  128. package/assets/partials-agents/06-quality-safety.partial.md +11 -16
  129. package/assets/partials-agents/08-deep-docs.partial.md +1 -2
  130. package/assets/plan-map.json +11 -11
  131. package/assets/plugin-registry.v1.json +11 -3
  132. package/assets/plugin-trust-policy.v1.json +6 -0
  133. package/assets/recovery/ForgeRecovery.ps1 +100 -0
  134. package/assets/recovery/forge-wsl-rescue +271 -0
  135. package/assets/reference-configs/agentic-development-flow.md +25 -0
  136. package/assets/reference-configs/development-protocol.md +11 -15
  137. package/assets/reference-configs/document-generation.md +1 -1
  138. package/assets/reference-configs/global-working-rules.md +28 -1
  139. package/assets/reference-configs/harness-overview.md +22 -112
  140. package/assets/reference-configs/hook-operations.md +1 -1
  141. package/assets/reference-configs/sprint-contracts.md +2 -2
  142. package/assets/skill-version.json +2 -2
  143. package/assets/templates/helpers/architecture-event.ts +3 -34
  144. package/assets/templates/helpers/architecture-queue.sh +61 -10
  145. package/assets/templates/helpers/archive-workflow.sh +90 -180
  146. package/assets/templates/helpers/capability-config.ts +8 -11
  147. package/assets/templates/helpers/capability-resolver.ts +37 -19
  148. package/assets/templates/helpers/capture-plan.sh +2 -2
  149. package/assets/templates/helpers/check-architecture-sync.sh +1 -9
  150. package/assets/templates/helpers/check-task-sync.sh +82 -11
  151. package/assets/templates/helpers/check-task-workflow.sh +1 -3
  152. package/assets/templates/helpers/context-contract-sync.sh +1 -12
  153. package/assets/templates/helpers/contract-worktree.sh +26 -24
  154. package/assets/templates/helpers/ensure-task-workflow.sh +6 -8
  155. package/assets/templates/helpers/inspect-project-state.ts +1 -1
  156. package/assets/templates/helpers/migrate-project-template.sh +1 -1
  157. package/assets/templates/helpers/migrate-workflow-docs.ts +53 -239
  158. package/assets/templates/helpers/new-plan.sh +2 -2
  159. package/assets/templates/helpers/plan-to-todo.sh +3 -31
  160. package/assets/templates/helpers/sprint-backlog.sh +1 -1
  161. package/assets/templates/helpers/switch-plan.sh +1 -1
  162. package/assets/templates/helpers/workflow-contract.ts +1 -0
  163. package/assets/workflow-contract.v1.json +63 -171
  164. package/assets/workflows/xiaohongshu/xiaohongshu.collect-metrics.v1.draft.json +118 -0
  165. package/assets/workflows/xiaohongshu/xiaohongshu.publish-image-note.v1.draft.json +316 -0
  166. package/assets/workflows/xiaohongshu/xiaohongshu.publish-long-text.v1.draft.json +324 -0
  167. package/docs/architecture/CURRENT.md +233 -28
  168. package/docs/architecture/EVOLUTION.md +13 -0
  169. package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +2 -1
  170. package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +14 -5
  171. package/docs/architecture/decisions/20260823-immediate-controller-relay.md +6 -3
  172. package/docs/architecture/decisions/20260831-independent-windows-wsl-host-rescue.md +59 -0
  173. package/docs/architecture/decisions/20260904-ios-device-migration-baseline.md +120 -0
  174. package/docs/architecture/decisions/20260904-repository-runtime-data-boundary.md +42 -0
  175. package/docs/architecture/decisions/20260907-assistant-learning-loop.md +37 -0
  176. package/docs/architecture/decisions/20260907-controller-round-transition-policy.md +311 -0
  177. package/docs/architecture/decisions/20260907-maintenance-diagnosis-bounded-read.md +39 -0
  178. package/docs/architecture/decisions/20260916-workflow-supervisor-authority.md +249 -0
  179. package/docs/architecture/decisions/20260917-cognitive-memory-foundation.md +82 -0
  180. package/docs/architecture/decisions/20260918-stable-candidate-release-lifecycle.md +221 -0
  181. package/docs/architecture/decisions/20260919-autonomous-work-liveness.md +62 -0
  182. package/docs/architecture/decisions/20260924-thin-semantic-working-context.md +72 -0
  183. package/docs/architecture/decisions/20261001-supervisor-turn-authority.md +237 -0
  184. package/docs/architecture/decisions/20261005-forge-v3-desktop-client-boundary.md +77 -0
  185. package/docs/architecture/domains/verification.md +8 -0
  186. package/docs/architecture/domains/workflow-engine.md +7 -1
  187. package/docs/architecture/index.md +3 -3
  188. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +19 -8
  189. package/docs/architecture/requests/2026-09-04-computer-plugin-workflow-taxonomy.md +124 -0
  190. package/docs/forge-chatgpt-mcp-setup.md +5 -3
  191. package/docs/forge-plugin-management.md +20 -4
  192. package/docs/forge-runtime-self-healing-loop.md +2 -0
  193. package/docs/operations/benchmark-cross-version-freeze.md +38 -0
  194. package/docs/operations/controller-browser-plugin.md +3 -1
  195. package/docs/operations/controller-performance-and-502.md +17 -0
  196. package/docs/operations/controller-reliability-runbook.md +2 -2
  197. package/docs/operations/features.md +1 -1
  198. package/docs/operations/features.zh-CN.md +1 -1
  199. package/docs/operations/homebrew.md +2 -2
  200. package/docs/operations/mcp-tool-exposure.md +2 -0
  201. package/docs/operations/platform-support.md +16 -8
  202. package/docs/operations/platform-support.zh-CN.md +2 -2
  203. package/docs/operations/releasing.md +2 -0
  204. package/docs/operations/standalone-disaster-recovery.md +38 -5
  205. package/docs/operations/uu-remote-rescue.md +41 -0
  206. package/docs/operations/windows-wsl-host-rescue.md +133 -0
  207. package/docs/public-usage-guide.md +1 -1
  208. package/docs/public-usage-guide.zh-CN.md +1 -1
  209. package/docs/tutorials/01-install-and-start.md +1 -1
  210. package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
  211. package/docs/tutorials/02-connect-chatgpt.md +4 -4
  212. package/docs/tutorials/02-connect-chatgpt.zh-CN.md +4 -4
  213. package/docs/wiki/Implementation.md +1 -1
  214. package/package.json +46 -26
  215. package/packages/kernel/cognition/api/index.ts +6 -0
  216. package/packages/kernel/cognition/application/activation-service.ts +451 -0
  217. package/packages/kernel/cognition/application/consolidation-service.ts +185 -0
  218. package/packages/kernel/cognition/application/legacy-experience-adapter.ts +38 -0
  219. package/packages/kernel/cognition/application/memory-service.ts +64 -0
  220. package/packages/kernel/cognition/domain/learning.ts +106 -0
  221. package/packages/kernel/cognition/domain/memory.ts +254 -0
  222. package/packages/kernel/controller/api/index.ts +3 -0
  223. package/packages/kernel/controller/application/continuation-service.ts +281 -0
  224. package/packages/kernel/controller/application/controller-round-service.ts +41 -0
  225. package/packages/kernel/controller/application/controller-service.ts +30 -0
  226. package/packages/kernel/controller/domain/controller-round-transition-policy.ts +529 -0
  227. package/packages/kernel/controller/domain/controller-round.ts +110 -0
  228. package/packages/kernel/controller/domain/execution-quality.ts +135 -0
  229. package/packages/kernel/controller/domain/types.ts +56 -0
  230. package/packages/kernel/controller/index.ts +1 -0
  231. package/packages/kernel/controller/infrastructure/controller-binding-store.ts +84 -0
  232. package/packages/kernel/controller/infrastructure/controller-round-store.ts +1970 -0
  233. package/packages/kernel/controller/infrastructure/controller-session-store.ts +804 -0
  234. package/packages/kernel/controller/ports/controller-host.ts +18 -0
  235. package/packages/kernel/goal/api/index.ts +1 -0
  236. package/packages/kernel/goal/domain/types.ts +40 -0
  237. package/packages/kernel/goal/index.ts +1 -0
  238. package/packages/kernel/identity/api/index.ts +15 -0
  239. package/packages/kernel/identity/application/identity-service.ts +67 -0
  240. package/packages/kernel/identity/domain/activity-projection.ts +43 -0
  241. package/packages/kernel/identity/domain/capability-broker.ts +60 -0
  242. package/packages/kernel/identity/domain/grant.ts +72 -0
  243. package/packages/kernel/identity/domain/owned-resource.ts +116 -0
  244. package/packages/kernel/identity/domain/scope.ts +63 -0
  245. package/packages/kernel/identity/domain/semantic-sync.ts +81 -0
  246. package/packages/kernel/identity/domain/types.ts +44 -0
  247. package/packages/kernel/identity/domain/user-request.ts +93 -0
  248. package/packages/kernel/identity/domain/workspace.ts +56 -0
  249. package/packages/kernel/identity/index.ts +1 -0
  250. package/packages/kernel/identity/infrastructure/activity-projection-store.ts +77 -0
  251. package/packages/kernel/identity/infrastructure/capability-broker.ts +81 -0
  252. package/packages/kernel/identity/infrastructure/grant-store.ts +284 -0
  253. package/packages/kernel/identity/infrastructure/identity-store.ts +75 -0
  254. package/packages/kernel/identity/infrastructure/owned-resource-store.ts +259 -0
  255. package/packages/kernel/identity/infrastructure/user-request-store.ts +182 -0
  256. package/packages/kernel/memory/api/index.ts +5 -0
  257. package/packages/kernel/memory/application/experience-service.ts +118 -0
  258. package/packages/kernel/memory/application/outcome-service.ts +77 -0
  259. package/packages/kernel/memory/domain/experience.ts +103 -0
  260. package/packages/kernel/memory/domain/operational-prior.ts +92 -0
  261. package/packages/kernel/memory/index.ts +1 -0
  262. package/packages/kernel/scheduler/api/index.ts +4 -0
  263. package/packages/kernel/scheduler/application/eligibility.ts +252 -0
  264. package/packages/kernel/scheduler/application/schedule-service.ts +27 -0
  265. package/packages/kernel/scheduler/application/settlement.ts +182 -0
  266. package/packages/kernel/scheduler/domain/schedule.ts +236 -0
  267. package/packages/kernel/scheduler/index.ts +1 -0
  268. package/packages/kernel/scheduler/infrastructure/schedule-store.ts +805 -0
  269. package/packages/kernel/work/api/index.ts +16 -0
  270. package/packages/kernel/work/application/work-service.ts +123 -0
  271. package/packages/kernel/work/domain/check-receipt.ts +43 -0
  272. package/packages/kernel/work/domain/context-closure-receipt.ts +32 -0
  273. package/packages/kernel/work/domain/current-task-lineage.ts +104 -0
  274. package/packages/kernel/work/domain/engineering-contracts.ts +157 -0
  275. package/packages/kernel/work/domain/engineering-design.ts +286 -0
  276. package/packages/kernel/work/domain/engineering-profile.ts +238 -0
  277. package/packages/kernel/work/domain/evaluation-promotion-receipt.ts +186 -0
  278. package/packages/kernel/work/domain/execution-concurrency.ts +247 -0
  279. package/packages/kernel/work/domain/execution-snapshot.ts +2 -0
  280. package/packages/kernel/work/domain/implementation-review.ts +193 -0
  281. package/packages/kernel/work/domain/objective-graph.ts +119 -0
  282. package/packages/kernel/work/domain/project-engineering-contract.ts +224 -0
  283. package/packages/kernel/work/domain/repository-completion-receipt.ts +73 -0
  284. package/{src/runtime/control-plane/facade/work-state-machine.ts → packages/kernel/work/domain/state-machine.ts} +37 -66
  285. package/packages/kernel/work/domain/types.ts +534 -0
  286. package/packages/kernel/work/index.ts +1 -0
  287. package/packages/kernel/work/infrastructure/work-contract-store.ts +1967 -0
  288. package/packages/kernel/work/ports/work-contract-store.ts +21 -0
  289. package/packages/plugin-runtime/browser/index.ts +3 -0
  290. package/packages/plugin-runtime/browser/provider-registry.ts +110 -0
  291. package/packages/plugin-runtime/browser/runtime-contract.ts +150 -0
  292. package/packages/plugin-runtime/browser/session-authority.ts +62 -0
  293. package/packages/plugin-runtime/computer/chatgpt-identity.ts +24 -0
  294. package/packages/plugin-runtime/computer/conversation-target.ts +143 -0
  295. package/packages/plugin-runtime/computer/index.ts +8 -0
  296. package/packages/plugin-runtime/computer/provider-error.ts +26 -0
  297. package/packages/plugin-runtime/computer/provider-registration.ts +52 -0
  298. package/packages/plugin-runtime/computer/provider-registry.ts +63 -0
  299. package/packages/plugin-runtime/computer/provider.ts +19 -0
  300. package/packages/plugin-runtime/computer/target-authority.ts +215 -0
  301. package/packages/plugin-runtime/computer/target-persistence.ts +54 -0
  302. package/packages/plugin-runtime/external/index.ts +1 -0
  303. package/packages/plugin-runtime/external/unix-jsonl-transport.ts +581 -0
  304. package/packages/plugin-runtime/index.ts +3 -0
  305. package/packages/protocols/browser/index.ts +1 -0
  306. package/packages/protocols/browser/session.ts +98 -0
  307. package/packages/protocols/computer/contract.ts +225 -0
  308. package/packages/protocols/computer/index.ts +1 -0
  309. package/packages/protocols/failure/contract.ts +158 -0
  310. package/packages/protocols/failure/index.ts +1 -0
  311. package/packages/protocols/handoff/index.ts +1 -0
  312. package/packages/protocols/handoff/status.ts +22 -0
  313. package/packages/protocols/mcp/execution-context.ts +11 -0
  314. package/packages/protocols/mcp/index.ts +2 -0
  315. package/packages/protocols/mcp/tool-contract.ts +42 -0
  316. package/packages/workflow-runtime/api/index.ts +2 -0
  317. package/packages/workflow-runtime/application/interpreter.ts +342 -0
  318. package/packages/workflow-runtime/domain/workflow-asset.ts +223 -0
  319. package/packages/workflow-runtime/index.ts +1 -0
  320. package/scripts/activate-source-baseline.ts +7 -9
  321. package/scripts/assemble-template.ts +1 -1
  322. package/scripts/bootstrap-runtime-maintenance-recovery.sh +4 -1
  323. package/scripts/canary-chatgpt-provider-delivery.ts +97 -0
  324. package/scripts/canary-controller-semantic-wait.ts +183 -0
  325. package/scripts/canary-global-hook.sh +2 -2
  326. package/scripts/check-mcp-compatibility.ts +85 -7
  327. package/scripts/check-platform-support.mjs +28 -2
  328. package/scripts/check-public-docs.sh +1 -1
  329. package/scripts/check-repository-hygiene.mjs +92 -0
  330. package/scripts/check-runtime-architecture.mjs +1643 -127
  331. package/scripts/check-source-duplication.mjs +9 -1
  332. package/scripts/controller-ngrok-rotation.sh +5 -4
  333. package/scripts/create-project-dirs.sh +10 -74
  334. package/scripts/forge-local-recovery-helper.mjs +282 -0
  335. package/scripts/forge-uu-remote-rescue-helper.d.mts +31 -0
  336. package/scripts/forge-uu-remote-rescue-helper.mjs +409 -0
  337. package/scripts/forge-windows-host-recovery-helper.mjs +136 -0
  338. package/scripts/hook-shim.sh +2 -2
  339. package/scripts/init-project.sh +12 -70
  340. package/scripts/install-desktop-operator-registration.ts +4 -2
  341. package/scripts/install-independent-windows-wsl-recovery.ts +125 -0
  342. package/scripts/install-standalone-recovery.ts +122 -10
  343. package/scripts/install-uu-remote-rescue-registration.ts +74 -0
  344. package/scripts/install-windows-host-recovery-registration.ts +22 -0
  345. package/scripts/lib/controller-home-env.sh +6 -3
  346. package/scripts/lib/project-init-lib.sh +42 -582
  347. package/scripts/migrate-chatgpt-automation-schedules.ts +2 -2
  348. package/scripts/migrate-windows-wsl-controller-home.ts +306 -0
  349. package/scripts/open-source-audit-allowlist.txt +11 -1
  350. package/scripts/portability-bindings.mjs +70 -0
  351. package/scripts/run-bounded-command.mjs +60 -0
  352. package/scripts/run-bun-test-file.ts +22 -6
  353. package/scripts/run-governed-gate.ts +4 -2
  354. package/scripts/run-mobile-monitor-bridge.ts +0 -1
  355. package/scripts/smoke-control-plane-failure-domain.ts +94 -0
  356. package/scripts/smoke-mcp-http-runtime.ts +6 -1
  357. package/scripts/smoke-runtime-recovery.ts +13 -11
  358. package/scripts/smoke-schedule-engine.ts +24 -16
  359. package/scripts/smoke-unattended-transport-recovery.ts +223 -0
  360. package/scripts/smoke-user-request-continuation-restart.ts +232 -0
  361. package/scripts/smoke-workflow-supervisor-chrome-adapter.ts +92 -0
  362. package/scripts/smoke-workflow-supervisor-process-restart.ts +276 -0
  363. package/scripts/smoke-workflow-supervisor-restart-recovery.ts +150 -0
  364. package/scripts/smoke-workflow-supervisor.ts +103 -0
  365. package/scripts/test-governance.ts +51 -2
  366. package/scripts/verify-forge-runtime.sh +2 -1
  367. package/src/cli/agent-jobs/executor-health.ts +11 -34
  368. package/src/cli/agent-jobs/integration.ts +18 -49
  369. package/src/cli/agent-jobs/job-manager.ts +17 -4
  370. package/src/cli/chatgpt-browser/bind-server.ts +2 -1
  371. package/src/cli/chatgpt-browser/binding.ts +20 -10
  372. package/src/cli/chatgpt-browser/bridge-extension.ts +75 -0
  373. package/src/cli/chatgpt-browser/bridge-provider.ts +376 -11
  374. package/src/cli/chatgpt-browser/engine.ts +10 -11
  375. package/src/cli/chatgpt-browser/native-provider.ts +24 -83
  376. package/src/cli/chatgpt-browser/oracle-provider.ts +5 -3
  377. package/src/cli/chatgpt-browser/types.ts +1 -0
  378. package/src/cli/commands/bootstrap-control.ts +334 -0
  379. package/src/cli/commands/brain-assistant.ts +52 -0
  380. package/src/cli/commands/brain.ts +191 -40
  381. package/src/cli/commands/chatgpt.ts +32 -67
  382. package/src/cli/commands/computer.ts +437 -0
  383. package/src/cli/commands/doctor.ts +18 -1
  384. package/src/cli/commands/init-hook.ts +71 -61
  385. package/src/cli/commands/init.ts +3 -1
  386. package/src/cli/commands/mcp.ts +16 -10
  387. package/src/cli/commands/plugin.ts +38 -12
  388. package/src/cli/commands/recovery.ts +507 -80
  389. package/src/cli/commands/runtime.ts +12 -7
  390. package/src/cli/commands/setup-profile.ts +97 -39
  391. package/src/cli/commands/status.ts +2 -1
  392. package/src/cli/controller/check-runner.ts +500 -100
  393. package/src/cli/controller/completion-backlog.ts +3 -3
  394. package/src/cli/controller/completion-orchestrator.ts +4 -43
  395. package/src/cli/controller/completion-target.ts +3 -72
  396. package/src/cli/controller/context/source-materializer.ts +81 -100
  397. package/src/cli/controller/context/types.ts +7 -1
  398. package/src/cli/controller/context-pack.ts +28 -6
  399. package/src/cli/controller/execution-completion.ts +4 -7
  400. package/src/cli/controller/execution-policy.ts +36 -153
  401. package/src/cli/controller/governance.ts +2 -3
  402. package/src/cli/controller/issue-store.ts +4 -99
  403. package/src/cli/controller/launch-agents.ts +59 -18
  404. package/src/cli/controller/operational-plan.ts +24 -51
  405. package/src/cli/controller/runtime-config.ts +5 -1
  406. package/src/cli/controller/stuck-state-migration.ts +2 -3
  407. package/src/cli/controller/systemd-user.ts +148 -0
  408. package/src/cli/controller/types.ts +10 -70
  409. package/src/cli/controller/worklog.ts +67 -13
  410. package/src/cli/editing/edit-operation-contract.ts +92 -0
  411. package/src/cli/editing/edit-session.ts +290 -20
  412. package/src/cli/github/plugin.ts +17 -12
  413. package/src/cli/hook/route-registry.ts +3 -5
  414. package/src/cli/hook/runtime.ts +49 -3
  415. package/src/cli/index.ts +3 -0
  416. package/src/cli/local-bridge/connector-freshness.ts +2 -2
  417. package/src/cli/local-bridge/console-automations.ts +20 -15
  418. package/src/cli/local-bridge/console-view-models.ts +3 -12
  419. package/src/cli/local-bridge/facade-api.ts +105 -205
  420. package/src/cli/local-bridge/job-store.ts +1 -1
  421. package/src/cli/local-bridge/server.ts +48 -174
  422. package/src/cli/local-bridge/types.ts +0 -1
  423. package/src/cli/mcp/access-mode.ts +2 -132
  424. package/src/cli/mcp/access-tools.ts +2 -387
  425. package/src/cli/mcp/audit.ts +2 -32
  426. package/src/cli/mcp/auth.ts +2 -404
  427. package/src/cli/mcp/instructions.ts +2 -34
  428. package/src/cli/mcp/legacy-context.ts +2 -16
  429. package/src/cli/mcp/legacy-tool-service.ts +2 -5308
  430. package/src/cli/mcp/multi-repository.ts +2 -436
  431. package/src/cli/mcp/oauth-client-retirement.ts +74 -0
  432. package/src/cli/mcp/oauth.ts +2 -375
  433. package/src/cli/mcp/openai-secure-tunnel.ts +2 -0
  434. package/src/cli/mcp/paths.ts +2 -140
  435. package/src/cli/mcp/policy.ts +2 -232
  436. package/src/cli/mcp/post-finalize-work-attribution.ts +2 -150
  437. package/src/cli/mcp/proxy-env.ts +2 -62
  438. package/src/cli/mcp/readiness-projection.ts +2 -24
  439. package/src/cli/mcp/redaction.ts +2 -21
  440. package/src/cli/mcp/repo.ts +2 -24
  441. package/src/cli/mcp/repository-tools.ts +2 -1613
  442. package/src/cli/mcp/server.ts +2 -951
  443. package/src/cli/mcp/setup.ts +2 -737
  444. package/src/cli/mcp/tool-capability-cache.ts +2 -87
  445. package/src/cli/mcp/tool-contract.ts +2 -14
  446. package/src/cli/mcp/tools.ts +2 -9
  447. package/src/cli/mcp/toolset-names.ts +2 -70
  448. package/src/cli/mcp/toolset-selection.ts +2 -41
  449. package/src/cli/mcp/toolset.ts +2 -336
  450. package/src/cli/mcp/transports/AGENTS.md +1 -10
  451. package/src/cli/mcp/transports/CLAUDE.md +1 -10
  452. package/src/cli/mcp/transports/http.ts +2 -1414
  453. package/src/cli/mcp/transports/session-registry.ts +2 -490
  454. package/src/cli/mcp/transports/stdio.ts +2 -8
  455. package/src/cli/mcp/types.ts +2 -41
  456. package/src/cli/mcp/umbrella-tools.ts +2 -117
  457. package/src/cli/repositories/command-executor.ts +91 -39
  458. package/src/cli/repositories/command-scope.ts +139 -4
  459. package/src/cli/repositories/controller-home.ts +167 -1
  460. package/src/cli/repositories/ephemeral-workspace.ts +20 -30
  461. package/src/cli/repositories/git-command-executor.ts +2 -2
  462. package/src/cli/repositories/identity.ts +13 -0
  463. package/src/cli/repositories/registry.ts +145 -60
  464. package/src/cli/repositories/repository-snapshot.ts +53 -7
  465. package/src/cli/repositories/runtime-storage.ts +27 -2
  466. package/src/cli/repositories/safe-patch.ts +34 -38
  467. package/src/cli/repositories/selected-path-actions.ts +22 -2
  468. package/src/cli/repositories/structured-git.ts +167 -27
  469. package/src/cli/repository/session-cache.ts +92 -6
  470. package/src/cli/runtime/helper-runner.ts +7 -0
  471. package/src/cli/runtime-invocation.ts +8 -1
  472. package/src/cli/tools/codegraph.ts +44 -25
  473. package/src/core/adoption/manifest-templates.ts +1 -1
  474. package/src/core/adoption/plan.ts +3 -26
  475. package/src/core/adoption/workflow-contract-plan.ts +17 -9
  476. package/src/effects/process-runner.ts +8 -14
  477. package/src/runtime/context/assistant-context.ts +167 -0
  478. package/src/runtime/context/assistant-work-context.ts +209 -0
  479. package/src/runtime/context/automatic-learning.ts +565 -0
  480. package/src/runtime/context/codegraph-cache-boundary.ts +255 -0
  481. package/src/runtime/context/codegraph-read-provider.ts +55 -22
  482. package/src/runtime/context/codegraph-sidecar.cjs +8 -1
  483. package/src/runtime/context/cognitive-attention.ts +173 -0
  484. package/src/runtime/context/cognitive-skill-canary.ts +158 -0
  485. package/src/runtime/context/context-closure.ts +305 -0
  486. package/src/runtime/context/context-pack-process.ts +103 -0
  487. package/src/runtime/context/context-plane.ts +203 -0
  488. package/src/runtime/context/direct-controller-learning.ts +298 -0
  489. package/src/runtime/context/project-engineering-contract.ts +60 -0
  490. package/src/runtime/context/semantic-navigation-contract.ts +9 -0
  491. package/src/runtime/context/semantic-navigation.ts +6 -34
  492. package/src/runtime/context/typescript-navigation-process.ts +145 -0
  493. package/src/runtime/context/typescript-navigation.ts +89 -3
  494. package/src/runtime/control-plane/bootstrap/capability-provider.ts +74 -0
  495. package/src/runtime/control-plane/bootstrap/control-api.ts +57 -0
  496. package/src/runtime/control-plane/bootstrap/index.ts +5 -0
  497. package/src/runtime/control-plane/bootstrap/state-machine.ts +141 -0
  498. package/src/runtime/control-plane/bootstrap/store.ts +21 -0
  499. package/src/runtime/control-plane/bootstrap/types.ts +87 -0
  500. package/src/runtime/control-plane/cleanup-artifact-retention.ts +531 -0
  501. package/src/runtime/control-plane/codegraph-cache-retention.ts +164 -0
  502. package/src/runtime/control-plane/concurrency/work-execution-concurrency.ts +282 -0
  503. package/src/runtime/control-plane/execution/controller-authority-recovery.ts +380 -0
  504. package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +113 -16
  505. package/src/runtime/control-plane/execution/execution-identity.ts +23 -3
  506. package/src/runtime/control-plane/execution/implementation-review-content.ts +95 -0
  507. package/src/runtime/control-plane/execution/repository-work-attribution.ts +7 -30
  508. package/src/runtime/control-plane/execution/retained-work-resume.ts +439 -102
  509. package/src/runtime/control-plane/execution/session-store.ts +31 -1
  510. package/src/runtime/control-plane/execution/validation.ts +34 -11
  511. package/src/runtime/control-plane/execution/work-authority-reconciler.ts +87 -0
  512. package/src/runtime/control-plane/execution/work-check-evidence.ts +137 -0
  513. package/src/runtime/control-plane/execution/work-completion-authority.ts +31 -44
  514. package/src/runtime/control-plane/execution/work-delivery-service.ts +497 -0
  515. package/src/runtime/control-plane/execution/work-evidence-policy.ts +46 -53
  516. package/src/runtime/control-plane/execution/work-execution-support.ts +85 -164
  517. package/src/runtime/control-plane/execution/work-handle-authority.ts +349 -73
  518. package/src/runtime/control-plane/execution/work-handle-store.ts +55 -2
  519. package/src/runtime/control-plane/execution/work-head-settlement.ts +108 -0
  520. package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +173 -28
  521. package/src/runtime/control-plane/execution/work-operation-service.ts +92 -40
  522. package/src/runtime/control-plane/execution/work-preparation-service.ts +145 -269
  523. package/src/runtime/control-plane/execution/work-remote-delivery.ts +2 -3
  524. package/src/runtime/control-plane/execution/work-revision-diff.ts +39 -0
  525. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +543 -225
  526. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +59 -45
  527. package/src/runtime/control-plane/execution/work-verification-context.ts +1 -1
  528. package/src/runtime/control-plane/execution/work-verification-service.ts +662 -52
  529. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +205 -16
  530. package/src/runtime/control-plane/facade/capability-registry.ts +380 -44
  531. package/src/runtime/control-plane/facade/check-normalization.ts +3 -9
  532. package/src/runtime/control-plane/facade/codex-delegation.ts +10 -11
  533. package/src/runtime/control-plane/facade/controller-connection.ts +135 -0
  534. package/src/runtime/control-plane/facade/controller-session-store.ts +2 -488
  535. package/src/runtime/control-plane/facade/goal-workloop-access.ts +6 -22
  536. package/src/runtime/control-plane/facade/goal-workloop.ts +565 -1202
  537. package/src/runtime/control-plane/facade/handoff-inbox-application.ts +145 -0
  538. package/src/runtime/control-plane/facade/handoff-inbox-store.ts +266 -52
  539. package/src/runtime/control-plane/facade/index.ts +4 -3
  540. package/src/runtime/control-plane/facade/operation-digest.ts +34 -73
  541. package/src/runtime/control-plane/facade/plan-contract-store.ts +671 -245
  542. package/src/runtime/control-plane/facade/policy-gate.ts +0 -23
  543. package/src/runtime/control-plane/facade/repository-work-admission.ts +31 -23
  544. package/src/runtime/control-plane/facade/requirement-authority.ts +121 -0
  545. package/src/runtime/control-plane/facade/requirement-board.ts +9 -4
  546. package/src/runtime/control-plane/facade/rh-work-operation-contract.ts +85 -0
  547. package/src/runtime/control-plane/facade/self-healing-loop.ts +18 -53
  548. package/src/runtime/control-plane/facade/semantic-admission.ts +8 -16
  549. package/src/runtime/control-plane/facade/suggested-actions.ts +15 -15
  550. package/src/runtime/control-plane/facade/types.ts +218 -620
  551. package/src/runtime/control-plane/facade/work-continuation.ts +8 -8
  552. package/src/runtime/control-plane/facade/work-contract-store.ts +2 -1043
  553. package/src/runtime/control-plane/generated-cache-retention.ts +336 -19
  554. package/src/runtime/control-plane/global-scheduler/autonomous-continuation.ts +248 -0
  555. package/src/runtime/control-plane/global-scheduler/durable-admission.ts +13 -2
  556. package/src/runtime/control-plane/global-scheduler/maintenance.ts +274 -84
  557. package/src/runtime/control-plane/global-scheduler/periodic-cleanup-entry.ts +55 -0
  558. package/src/runtime/control-plane/global-scheduler/periodic-cleanup-process.ts +98 -0
  559. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -2
  560. package/src/runtime/control-plane/global-scheduler/scheduler-worker-entry.ts +10 -0
  561. package/src/runtime/control-plane/global-scheduler/scheduler.ts +227 -109
  562. package/src/runtime/control-plane/global-scheduler/wake-signal.ts +42 -2
  563. package/src/runtime/control-plane/global-scheduler/worker-launch.ts +18 -6
  564. package/src/runtime/control-plane/governance/access-policy.ts +19 -2
  565. package/src/runtime/control-plane/governance/authorization.ts +20 -3
  566. package/src/runtime/control-plane/launcher/chatgpt-round-continuation.ts +160 -0
  567. package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +2 -177
  568. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +139 -670
  569. package/src/runtime/control-plane/launcher/local-conversation-controller.ts +238 -0
  570. package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +25 -6
  571. package/src/runtime/control-plane/launcher/thin-launcher.ts +96 -194
  572. package/src/runtime/control-plane/lifecycle-retention-metrics.ts +60 -0
  573. package/src/runtime/control-plane/persistence/cognition-store.ts +820 -0
  574. package/src/runtime/control-plane/persistence/experience-store.ts +302 -0
  575. package/src/runtime/control-plane/persistence/operational-prior-store.ts +348 -0
  576. package/src/runtime/control-plane/persistence/requirement-store.ts +230 -80
  577. package/src/runtime/control-plane/persistence/sqlite-store.ts +654 -78
  578. package/src/runtime/control-plane/persistence/workflow-content-store.ts +98 -0
  579. package/src/runtime/control-plane/persistence/workflow-registry-store.ts +186 -0
  580. package/src/runtime/control-plane/persistence/workflow-run-store.ts +123 -0
  581. package/src/runtime/control-plane/release-retention.ts +154 -26
  582. package/src/runtime/control-plane/repository-namespace-retention.ts +208 -0
  583. package/src/runtime/control-plane/runtime-cleanup.ts +844 -38
  584. package/src/runtime/control-plane/runtime-generation.ts +6 -0
  585. package/src/runtime/control-plane/workspace/project-onboarding.ts +80 -0
  586. package/src/runtime/control-plane/workspace/semantic-sync-service.ts +479 -0
  587. package/src/runtime/control-plane/workspace/workspace-store.ts +249 -0
  588. package/src/runtime/diagnostics/incident-repair.ts +573 -0
  589. package/src/runtime/diagnostics/mcp-timing.ts +239 -6
  590. package/src/runtime/diagnostics/performance.ts +6 -14
  591. package/src/runtime/diagnostics/read-only-tool.ts +1 -1
  592. package/src/runtime/evidence/artifact-store.ts +216 -35
  593. package/src/runtime/evidence/evidence-store.ts +112 -8
  594. package/src/runtime/evidence/operational-shadow.ts +38 -0
  595. package/src/runtime/evidence/output-handle-index.ts +225 -0
  596. package/src/runtime/evidence/process-check-receipt.ts +5 -43
  597. package/src/runtime/evidence/result-store.ts +158 -44
  598. package/src/runtime/evidence/sensitive-output.ts +4 -4
  599. package/src/runtime/execution/jobs/receipt-recovery.ts +1 -1
  600. package/src/runtime/execution/jobs/store.ts +124 -6
  601. package/src/runtime/execution/managed-workspace.ts +112 -5
  602. package/src/runtime/execution/process-runtime/canary.ts +19 -5
  603. package/src/runtime/execution/process-runtime/check-classification.ts +48 -0
  604. package/src/runtime/execution/process-runtime/check-facade.ts +24 -10
  605. package/src/runtime/execution/process-runtime/check-receipt.ts +1 -1
  606. package/src/runtime/execution/process-runtime/check-result-retention.ts +132 -0
  607. package/src/runtime/execution/process-runtime/check-result.ts +177 -2
  608. package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +58 -9
  609. package/src/runtime/execution/process-runtime/check-storage.ts +187 -0
  610. package/src/runtime/execution/process-runtime/command-facade.ts +117 -114
  611. package/src/runtime/execution/process-runtime/gc.ts +15 -2
  612. package/src/runtime/execution/process-runtime/handle-index.ts +176 -0
  613. package/src/runtime/execution/process-runtime/host-command-lane.ts +139 -0
  614. package/src/runtime/execution/process-runtime/index.ts +4 -0
  615. package/src/runtime/execution/process-runtime/interactive-admission.ts +2 -1
  616. package/src/runtime/execution/process-runtime/lightweight-managed.ts +283 -73
  617. package/src/runtime/execution/process-runtime/persisted-check.ts +130 -23
  618. package/src/runtime/execution/process-runtime/process-runner-entry.ts +47 -5
  619. package/src/runtime/execution/process-runtime/process-scope.ts +160 -0
  620. package/src/runtime/execution/process-runtime/resource-claims.ts +125 -64
  621. package/src/runtime/execution/process-runtime/runtime.ts +167 -17
  622. package/src/runtime/execution/process-runtime/store.ts +30 -2
  623. package/src/runtime/execution/process-runtime/types.ts +27 -0
  624. package/src/runtime/execution/workers/executor.ts +18 -19
  625. package/src/runtime/execution/workers/worker-entry.ts +1 -1
  626. package/src/runtime/gateway/mcp/execution-tools.ts +2 -207
  627. package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +2 -61
  628. package/src/runtime/gateway/mcp/persisted-check-process.ts +2 -3
  629. package/src/runtime/gateway/mcp/process-tools.ts +2 -289
  630. package/src/runtime/gateway/mcp/router.ts +2 -1125
  631. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +2 -565
  632. package/src/runtime/gateway/mcp/runtime-tools.ts +2 -6655
  633. package/src/runtime/gateway/mcp/work-validation-reconciler.ts +2 -1
  634. package/src/runtime/maintenance/cleanup.ts +38 -24
  635. package/src/runtime/platform/browser-product-discovery.ts +174 -0
  636. package/src/runtime/platform/computer-platform.ts +14 -0
  637. package/src/runtime/platform/executable-discovery.ts +54 -0
  638. package/src/runtime/platform/fetch-http-server.ts +90 -0
  639. package/src/runtime/platform/service-inventory.ts +130 -0
  640. package/src/runtime/platform/service-manager.ts +146 -0
  641. package/src/runtime/platform/windows-host-discovery.ts +118 -0
  642. package/src/runtime/platform/windows-recovery-deployment.ts +67 -0
  643. package/src/runtime/plugins/action-application.ts +192 -0
  644. package/src/runtime/plugins/app-store-connect-adapter.ts +47 -35
  645. package/src/runtime/plugins/browser-adapter.ts +898 -135
  646. package/src/runtime/plugins/browser-automation-service.ts +33 -34
  647. package/src/runtime/plugins/browser-macos-bridge.ts +386 -46
  648. package/src/runtime/plugins/browser-manifest-surface.ts +75 -17
  649. package/src/runtime/plugins/browser-native-session-service.ts +64 -14
  650. package/src/runtime/plugins/browser-provider-registry.ts +2 -109
  651. package/src/runtime/plugins/browser-registration.ts +32 -0
  652. package/src/runtime/plugins/browser-runtime-contract.ts +2 -154
  653. package/src/runtime/plugins/browser-runtime.ts +55 -10
  654. package/src/runtime/plugins/browser-session-authority.ts +101 -291
  655. package/src/runtime/plugins/browser-session-legacy-migration.ts +203 -0
  656. package/src/runtime/plugins/browser-session-store.ts +243 -80
  657. package/src/runtime/plugins/browser-session-types.ts +2 -98
  658. package/src/runtime/plugins/capability-authorization-grants.ts +272 -59
  659. package/src/runtime/plugins/catalog-trust.ts +82 -0
  660. package/src/runtime/plugins/computer-chatgpt-browser-adapter-installer.ts +219 -0
  661. package/src/runtime/plugins/computer-chatgpt-macos-target.ts +891 -0
  662. package/src/runtime/plugins/computer-registration.ts +1050 -0
  663. package/src/runtime/plugins/config-store.ts +119 -0
  664. package/src/runtime/plugins/desktop-operator-external-policy.ts +964 -0
  665. package/src/runtime/plugins/desktop-operator-registration.ts +123 -12
  666. package/src/runtime/plugins/errors.ts +8 -1
  667. package/src/runtime/plugins/external-adapter.ts +82 -323
  668. package/src/runtime/plugins/external-provider-policy.ts +48 -0
  669. package/src/runtime/plugins/external-registration.ts +30 -2
  670. package/src/runtime/plugins/external-unix-socket-probe.cjs +9 -3
  671. package/src/runtime/plugins/external-unix-socket.ts +64 -193
  672. package/src/runtime/plugins/first-party-external-registration.ts +163 -0
  673. package/src/runtime/plugins/first-party-registry.ts +3 -1
  674. package/src/runtime/plugins/github-adapter.ts +1 -2
  675. package/src/runtime/plugins/gmail-adapter.ts +29 -8
  676. package/src/runtime/plugins/google-calendar-adapter.ts +8 -8
  677. package/src/runtime/plugins/google-shared.ts +45 -53
  678. package/src/runtime/plugins/google-tasks-adapter.ts +8 -8
  679. package/src/runtime/plugins/ios-adapter.ts +2 -3
  680. package/src/runtime/plugins/lightweight-action.ts +208 -2
  681. package/src/runtime/plugins/local-system-adapter.ts +192 -2
  682. package/src/runtime/plugins/macos-capability-broker.ts +15 -105
  683. package/src/runtime/plugins/managed-process-adapter.ts +12 -5
  684. package/src/runtime/plugins/plugin-action-sidecar.ts +17 -13
  685. package/src/runtime/plugins/plugin-management-adapter.ts +1 -1
  686. package/src/runtime/plugins/resend-adapter.ts +15 -24
  687. package/src/runtime/plugins/store.ts +1003 -387
  688. package/src/runtime/plugins/types.ts +28 -1
  689. package/src/runtime/plugins/uu-remote-rescue-registration.ts +155 -0
  690. package/src/runtime/plugins/windows-host-recovery-install.ts +68 -0
  691. package/src/runtime/plugins/windows-host-recovery-registration.ts +85 -0
  692. package/src/runtime/plugins/xiaohongshu-publish.ts +102 -430
  693. package/src/runtime/projections/controller-context.ts +12 -6
  694. package/src/runtime/projections/git-status-sampler.ts +73 -22
  695. package/src/runtime/projections/invalidation.ts +7 -3
  696. package/src/runtime/projections/materialized-view.ts +93 -43
  697. package/src/runtime/recovery/actions.ts +3 -3
  698. package/src/runtime/recovery/capability-action-application.ts +229 -0
  699. package/src/runtime/recovery/index.ts +3 -0
  700. package/src/runtime/recovery/lifecycle-inventory.ts +338 -0
  701. package/src/runtime/recovery/local-jobs-repair.ts +14 -14
  702. package/src/runtime/recovery/maintenance-executor.ts +701 -168
  703. package/src/runtime/recovery/quarantine-retention.ts +256 -0
  704. package/src/runtime/recovery/store.ts +29 -11
  705. package/src/runtime/release/identity.ts +6 -0
  706. package/src/runtime/release/release-coordinator.ts +296 -0
  707. package/src/runtime/release/release-session.ts +716 -0
  708. package/src/runtime/release/release-state-migration.ts +25 -0
  709. package/src/runtime/resources/leases/store.ts +56 -25
  710. package/src/runtime/root/active-execution-power-assertion.ts +139 -0
  711. package/src/runtime/root/assistant-learning-loop.ts +45 -0
  712. package/src/runtime/root/browser-session-composition.ts +59 -0
  713. package/src/runtime/root/computer-composition.ts +376 -0
  714. package/src/runtime/root/computer-target-composition.ts +16 -0
  715. package/src/runtime/root/computer-target-persistence.ts +39 -0
  716. package/src/runtime/root/controller-progression-composition.ts +192 -0
  717. package/src/runtime/root/controller-round-composition.ts +126 -0
  718. package/src/runtime/root/controller-services.ts +2 -0
  719. package/src/runtime/root/deployment-topology.ts +106 -0
  720. package/src/runtime/root/entry.ts +8 -6
  721. package/src/runtime/root/gateway-adapter.ts +3 -3
  722. package/src/runtime/root/known-good-recovery.ts +184 -0
  723. package/src/runtime/root/local-bridge.ts +5 -3
  724. package/src/runtime/root/mcp-transport.ts +116 -23
  725. package/src/runtime/root/ownership.ts +261 -9
  726. package/src/runtime/root/package-connector-service.ts +212 -74
  727. package/src/runtime/root/package-runtime-release.ts +199 -33
  728. package/src/runtime/root/package-runtime-service.ts +77 -108
  729. package/src/runtime/root/release-execution-canary.ts +103 -0
  730. package/src/runtime/root/release-loader.ts +150 -0
  731. package/src/runtime/root/release-manifest.ts +185 -7
  732. package/src/runtime/root/release-materialize.ts +474 -31
  733. package/src/runtime/root/release-store.ts +425 -37
  734. package/src/runtime/root/runtime-lane.ts +191 -0
  735. package/src/runtime/root/runtime.ts +379 -32
  736. package/src/runtime/root/scheduled-controller-composition.ts +76 -0
  737. package/src/runtime/root/scheduler.ts +12 -4
  738. package/src/runtime/root/service-runner.ts +3 -3
  739. package/src/runtime/root/service.ts +73 -45
  740. package/src/runtime/root/status.ts +49 -0
  741. package/src/runtime/root/types.ts +55 -3
  742. package/src/runtime/root/workflow-supervisor-composition.ts +493 -0
  743. package/src/runtime/root/workflow-supervisor-runtime.ts +209 -0
  744. package/src/runtime/root/write-fence.ts +50 -2
  745. package/src/runtime/safe-tooling/google-credential-store.ts +76 -21
  746. package/src/runtime/safe-tooling/google-oauth-broker.ts +25 -7
  747. package/src/runtime/safe-tooling/workspace-auth.ts +1 -1
  748. package/src/runtime/shared/bounded-child-supervisor.ts +9 -1
  749. package/src/runtime/shared/local-bridge-surface.ts +1 -1
  750. package/src/runtime/shared/process-environment.ts +36 -10
  751. package/src/runtime/shared/response-budget.ts +1 -3
  752. package/src/runtime/shared/storage-capacity.ts +68 -0
  753. package/src/runtime/standalone-recovery/controller-home-migration.ts +1108 -0
  754. package/src/runtime/standalone-recovery/core.ts +4609 -495
  755. package/src/runtime/standalone-recovery/entry.ts +642 -81
  756. package/src/runtime/standalone-recovery/independent-host-rescue.ts +172 -0
  757. package/src/runtime/standalone-recovery/installer.ts +399 -177
  758. package/src/runtime/standalone-recovery/mcp-server.ts +79 -0
  759. package/src/runtime/standalone-recovery/mutation-identity-contract.ts +21 -0
  760. package/src/runtime/standalone-recovery/operation-lock.ts +160 -0
  761. package/src/runtime/standalone-recovery/performance.ts +173 -0
  762. package/src/runtime/standalone-recovery/release.ts +58 -5
  763. package/src/runtime/standalone-recovery/service-labels.ts +5 -2
  764. package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +5 -2
  765. package/src/runtime/watchdog/workflow-watchdog.ts +1 -1
  766. package/src/runtime/workflow/schedules/browser-probe.ts +17 -6
  767. package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +11 -4
  768. package/src/runtime/workflow/schedules/engine.ts +298 -484
  769. package/src/runtime/workflow/schedules/pending-activation.ts +1 -1
  770. package/src/runtime/workflow/schedules/settlement.ts +2 -191
  771. package/src/runtime/workflow/schedules/store.ts +2 -607
  772. package/src/runtime/workflow/schedules/types.ts +2 -127
  773. package/src/runtime/workflow/schedules/work-continuation.ts +220 -16
  774. package/src/runtime/workflows/first-party/xiaohongshu.ts +122 -0
  775. package/src/runtime/workflows/runtime.ts +482 -0
  776. package/src/testing/test-governance.ts +95 -30
  777. package/supervisor/chatgpt-conversation.ts +23 -0
  778. package/supervisor/client.ts +201 -0
  779. package/supervisor/control-plane.ts +868 -0
  780. package/supervisor/entry.ts +15 -0
  781. package/supervisor/forge-validators.ts +80 -0
  782. package/supervisor/index.ts +5 -0
  783. package/supervisor/native-browser-adapter.ts +786 -0
  784. package/supervisor/native-messaging/host.ts +39 -0
  785. package/supervisor/native-messaging/manifest.ts +26 -0
  786. package/supervisor/native-messaging/protocol.ts +27 -0
  787. package/supervisor/paths.ts +18 -0
  788. package/supervisor/protocol.ts +202 -0
  789. package/supervisor/server.ts +404 -0
  790. package/supervisor/store.ts +1451 -0
  791. package/supervisor/tsconfig.json +8 -0
  792. package/supervisor/types.ts +255 -0
  793. package/assets/templates/helpers/archive-architecture-request.sh +0 -244
  794. package/docs/architecture/history/README.md +0 -7
  795. package/docs/architecture/history/chatgpt-handoff-facade.md +0 -397
  796. package/docs/architecture/history/global-hook-runtime.md +0 -166
  797. package/docs/architecture/history/ios-semantic-automation-provider-v2.md +0 -170
  798. package/docs/architecture/requests/archive/2026/20260528-154740-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
  799. package/docs/architecture/requests/archive/2026/20260528-154816-assets-hooks-assets-hooks-hook-input-sh.md +0 -59
  800. package/docs/architecture/requests/archive/2026/20260528-161851-ai-harness-workflow-contract-json-ai-harness-workflow-contract-json.md +0 -59
  801. package/docs/architecture/requests/archive/2026/20260528-161853-scripts-check-task-workflow-sh-scripts-check-task-workflow-sh.md +0 -59
  802. package/docs/architecture/requests/archive/2026/20260528-161911-assets-workflow-contract-v1-json-assets-workflow-contract-v1-json.md +0 -59
  803. package/docs/architecture/requests/archive/2026/20260528-222416-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
  804. package/docs/architecture/requests/archive/2026/20260528-222444-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
  805. package/docs/architecture/requests/archive/2026/20260528-222457-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
  806. package/docs/architecture/requests/archive/2026/20260528-222648-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
  807. package/docs/architecture/requests/archive/2026/20260528-222705-ai-hooks-ai-hooks-worktree-guard-sh.md +0 -59
  808. package/docs/architecture/requests/archive/2026/20260528-222726-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  809. package/docs/architecture/requests/archive/2026/20260528-222727-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  810. package/docs/architecture/requests/archive/2026/20260528-224736-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
  811. package/docs/architecture/requests/archive/2026/20260528-233259-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  812. package/docs/architecture/requests/archive/2026/20260528-233335-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
  813. package/docs/architecture/requests/archive/2026/20260528-233456-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  814. package/docs/architecture/requests/archive/2026/20260528-233457-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
  815. package/docs/architecture/requests/archive/2026/20260528-233637-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  816. package/docs/architecture/requests/archive/2026/20260528-233638-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
  817. package/docs/architecture/requests/archive/2026/20260529-000322-root-package-json.md +0 -59
  818. package/docs/architecture/requests/archive/2026/20260529-004238-ai-hooks-ai-hooks-lib-workflow-state-sh.md +0 -59
  819. package/docs/architecture/requests/archive/2026/20260529-020654-ai-harness-policy-json-ai-harness-policy-json.md +0 -63
  820. package/docs/architecture/requests/archive/2026/20260529-094236-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
  821. package/docs/architecture/requests/archive/2026/20260529-094323-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
  822. package/docs/architecture/requests/archive/2026/20260529-094331-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
  823. package/docs/architecture/requests/archive/2026/20260529-094339-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
  824. package/docs/architecture/requests/archive/2026/20260529-094430-assets-hooks-assets-hooks-session-start-context-sh.md +0 -60
  825. package/docs/architecture/requests/archive/2026/20260529-094446-ai-hooks-ai-hooks-session-start-context-sh.md +0 -60
  826. package/docs/architecture/requests/archive/2026/20260613-002040-runtime-harness-hook-adapters.md +0 -68
  827. package/docs/architecture/requests/archive/2026/root.md +0 -68
  828. package/docs/architecture/requests/archive/2026/runtime-harness-hook-adapters.md +0 -76
  829. package/docs/architecture/requests/archive/2026/verification-evals-checks.md +0 -68
  830. package/docs/architecture/requests/archive/2026/workflow-engine-contract-assets.md +0 -69
  831. package/scripts/archive-architecture-request.sh +0 -4
  832. package/scripts/benchmark-background-check-overlap.ts +0 -228
  833. package/scripts/benchmark-controller-hotpath.ts +0 -212
  834. package/scripts/benchmark-controller-round2.ts +0 -139
  835. package/scripts/benchmark-ios-agent-device.ts +0 -514
  836. package/scripts/benchmark-mcp-host.sh +0 -117
  837. package/scripts/benchmark-mcp-transport.ts +0 -170
  838. package/scripts/benchmark-quality-harness.ts +0 -146
  839. package/scripts/benchmark-route-session-concurrency.ts +0 -915
  840. package/scripts/benchmark-thin-harness-gateway-ab.ts +0 -632
  841. package/scripts/benchmark-thin-harness-mcp-e2e.ts +0 -498
  842. package/scripts/benchmark-thin-harness.ts +0 -251
  843. package/scripts/benchmark-typescript-navigation.ts +0 -186
  844. package/scripts/benchmark-work-efficiency.ts +0 -334
  845. package/scripts/build-controller-ui.ts +0 -28
  846. package/scripts/check-npm-release.sh +0 -32
  847. package/scripts/check-public-release-surface.sh +0 -19
  848. package/scripts/check-release-published.sh +0 -57
  849. package/scripts/check-release-readiness.sh +0 -37
  850. package/scripts/check-release-version.mjs +0 -74
  851. package/scripts/check-tarball-install-smoke.sh +0 -67
  852. package/scripts/package-source-archive.sh +0 -147
  853. package/scripts/public-release-files.txt +0 -39
  854. package/scripts/public-release.ts +0 -174
  855. package/scripts/publish-release-tarball.sh +0 -27
  856. package/scripts/route-nl-vs-ts-eval.ts +0 -679
  857. package/scripts/run-skill-evals.ts +0 -1022
  858. package/scripts/stage-runtime-release.ts +0 -39
  859. package/src/cli/controller/progress.ts +0 -656
  860. package/src/cli/controller/work-mode.ts +0 -181
  861. package/src/cli/local-bridge/console-assets.ts +0 -17
  862. package/src/cli/local-bridge/dashboard.ts +0 -17
  863. package/src/cli/local-bridge/frontend/src/App.tsx +0 -10
  864. package/src/cli/local-bridge/frontend/src/components/Button.tsx +0 -1
  865. package/src/cli/local-bridge/frontend/src/components/DetailPane.tsx +0 -3
  866. package/src/cli/local-bridge/frontend/src/components/SearchField.tsx +0 -1
  867. package/src/cli/local-bridge/frontend/src/components/SectionHeader.tsx +0 -1
  868. package/src/cli/local-bridge/frontend/src/components/Segmented.tsx +0 -1
  869. package/src/cli/local-bridge/frontend/src/components/StatusText.tsx +0 -3
  870. package/src/cli/local-bridge/frontend/src/design/icons.tsx +0 -11
  871. package/src/cli/local-bridge/frontend/src/design/tokens.css +0 -8
  872. package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +0 -153
  873. package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +0 -37
  874. package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +0 -183
  875. package/src/cli/local-bridge/frontend/src/features/repositories/RepositoriesView.tsx +0 -2
  876. package/src/cli/local-bridge/frontend/src/features/system/SystemView.tsx +0 -2
  877. package/src/cli/local-bridge/frontend/src/features/work/WorkView.tsx +0 -4
  878. package/src/cli/local-bridge/frontend/src/lib/api.ts +0 -30
  879. package/src/cli/local-bridge/frontend/src/lib/format.ts +0 -4
  880. package/src/cli/local-bridge/frontend/src/lib/routes.ts +0 -7
  881. package/src/cli/local-bridge/frontend/src/main.tsx +0 -1
  882. package/src/cli/local-bridge/frontend/src/shell/AppShell.tsx +0 -1
  883. package/src/cli/local-bridge/frontend/src/shell/CommandBar.tsx +0 -2
  884. package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +0 -4
  885. package/src/cli/local-bridge/frontend/src/styles.css +0 -28
  886. package/src/cli/local-bridge/frontend/src/types.ts +0 -15
  887. package/src/cli/local-bridge/frontend/src/vite-env.d.ts +0 -1
  888. package/src/cli/local-bridge/frontend/vite.config.ts +0 -27
  889. package/src/cli/local-bridge/ui-dist/app.css +0 -1
  890. package/src/cli/local-bridge/ui-dist/app.js +0 -11228
  891. package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +0 -385
  892. package/src/runtime/control-plane/execution/work-finalization-service.ts +0 -1913
  893. package/src/runtime/control-plane/execution/work-path-scope.ts +0 -37
  894. package/src/runtime/control-plane/execution/work-task-receipt.ts +0 -449
  895. package/src/runtime/control-plane/facade/controller-round-relay.ts +0 -1118
  896. package/src/runtime/control-plane/facade/work-admission-policy.ts +0 -93
  897. package/src/runtime/control-plane/facade/work-task-projection.ts +0 -66
  898. package/src/runtime/control-plane/routing/index.ts +0 -1
  899. package/src/runtime/control-plane/routing/route-policy.ts +0 -382
  900. package/src/runtime/control-plane/routing/workspace-admission.ts +0 -70
@@ -15,10 +15,15 @@ coverage/
15
15
 
16
16
  # External references
17
17
  _ref/
18
+ .codegraph
18
19
  .codegraph/
19
20
 
20
21
  # Local operations state
21
22
  _ops/
23
+ .repo-harness/
24
+ .forge/browser
25
+ .forge/interactions
26
+ .forge/plugins
22
27
 
23
28
  # Environment
24
29
  .env
@@ -195,7 +200,7 @@ Complete this inventory before implementation. If any line is unknown, keep the
195
200
  - Implementation notes file: `tasks/notes/{{ARTIFACT_STEM}}.notes.md`
196
201
  - Template: `.claude/templates/contract.template.md`
197
202
  - Verification command: `bash .ai/harness/scripts/verify-contract.sh --contract tasks/contracts/{{ARTIFACT_STEM}}.contract.md --strict`
198
- - Active plan rule: `.ai/harness/active-plan` is authoritative for this worktree when present; `.ai/harness/active-worktree` records the owning worktree; `.claude/.active-plan` is a legacy fallback during transition. Do not infer active execution from the latest non-archived plan.
203
+ - Active plan rule: `.ai/harness/active-plan` is authoritative for this worktree when present; `.ai/harness/active-worktree` records the owning worktree; `.claude/.active-plan` is a legacy fallback during transition. Do not infer active execution from plan filename order, recency, or mere presence.
199
204
 
200
205
  ## Handoff
201
206
 
@@ -408,7 +413,7 @@ EOF_TEMPLATE_IMPLEMENTATION_NOTES
408
413
  )
409
414
  PI_CONTEXT_PROFILE_DEFAULT="stable-root-progressive-subdir"
410
415
  PI_RECOVERY_PROFILE_DEFAULT="hybrid"
411
- PI_STATE_PROFILE_DEFAULT="file-backed"
416
+ PI_STATE_PROFILE_DEFAULT="controller-home"
412
417
  PI_ORCHESTRATION_PROFILE_DEFAULT="shared-long-running-harness"
413
418
  PI_EVALUATION_PROFILE_DEFAULT="browser-qa"
414
419
  PI_HANDOFF_PROFILE_DEFAULT="artifact-aware"
@@ -565,9 +570,8 @@ user-level and central-first:
565
570
  `~/.codex/hooks.json` / `~/.claude/settings.json` -> `forge-hook` ->
566
571
  packaged hooks from the installed forge runtime.
567
572
 
568
- The files under `.ai/hooks/lib/` are kept only for repo workflow helper scripts
569
- that source shared shell utilities. Full hook runtime scripts are not vendored
570
- here by default because stale copies can be mistaken for the active hook path.
573
+ No hook runtime or shared hook libraries are vendored here by default because
574
+ stale copies can be mistaken for the active hook path. Only this README remains.
571
575
 
572
576
  Set `"hook_source": "repo"` in `.ai/harness/policy.json` only for self-hosted
573
577
  hook development or an explicitly reviewed repo-local hook override.
@@ -595,6 +599,7 @@ pi_prune_repo_local_hook_runtime() {
595
599
  -o -name 'codex.hooks.template.json' \
596
600
  -o -name '.version' \) \
597
601
  -delete
602
+ rm -rf "$hooks_dir/lib"
598
603
  }
599
604
 
600
605
  pi_install_hook_assets() {
@@ -639,26 +644,6 @@ pi_install_hook_assets() {
639
644
  fi
640
645
 
641
646
  pi_prune_repo_local_hook_runtime "$hooks_dir" "$mode"
642
-
643
- if [[ "$mode" != "apply" ]]; then
644
- echo "[dry-run] mkdir -p \"$hooks_dir/lib\""
645
- else
646
- mkdir -p "$hooks_dir/lib"
647
- fi
648
-
649
- if [[ -d "$hooks_assets_dir/lib" ]]; then
650
- while IFS= read -r hook_lib; do
651
- local lib_name
652
- lib_name="$(basename "$hook_lib")"
653
- if [[ "$mode" != "apply" ]]; then
654
- echo "[dry-run] cp \"$hook_lib\" \"$hooks_dir/lib/$lib_name\""
655
- continue
656
- fi
657
- cp "$hook_lib" "$hooks_dir/lib/$lib_name"
658
- chmod +x "$hooks_dir/lib/$lib_name" 2>/dev/null || true
659
- done < <(find "$hooks_assets_dir/lib" -maxdepth 1 -type f -name '*.sh' | sort)
660
- fi
661
-
662
647
  pi_write_hook_runtime_readme "$hooks_dir" "$mode"
663
648
  }
664
649
 
@@ -964,15 +949,20 @@ pi_install_workflow_contract() {
964
949
  local target_dir="$1"
965
950
  local contract_asset="$2"
966
951
  local mode="${3:-apply}"
967
- local output_path="$target_dir/.ai/harness/workflow-contract.json"
952
+ local output_path="$target_dir/forge.config.json"
968
953
 
969
954
  if [[ "$mode" != "apply" ]]; then
970
- echo "[dry-run] install workflow contract into $output_path"
955
+ echo "[dry-run] install declarative Forge project marker into $output_path"
971
956
  return 0
972
957
  fi
973
958
 
974
- mkdir -p "$(dirname "$output_path")"
975
- cp "$contract_asset" "$output_path"
959
+ cat > "$output_path" <<'EOF_FORGE_PROJECT_CONFIG'
960
+ {
961
+ "schemaVersion": 1,
962
+ "forge": { "enabled": true },
963
+ "runtimeState": "controller-home"
964
+ }
965
+ EOF_FORGE_PROJECT_CONFIG
976
966
  }
977
967
 
978
968
  pi_install_templates() {
@@ -1039,7 +1029,7 @@ pi_install_helpers() {
1039
1029
  local target_dir="$1"
1040
1030
  local helpers_dir="$2"
1041
1031
  local mode="${3:-apply}"
1042
- local helper_names="${4:-new-spec.sh new-sprint.sh new-plan.sh capture-plan.sh plan-to-todo.sh contract-run.ts contract-worktree.sh ship-worktrees.sh archive-workflow.sh refresh-current-status.sh prepare-handoff.sh verify-contract.sh summarize-failures.sh verify-sprint.sh sprint-backlog.sh check-task-sync.sh check-deploy-sql-order.sh check-architecture-sync.sh check-agent-tooling.sh check-context-files.sh check-brain-manifest.sh sync-brain-docs.sh check-skill-version.ts select-agent-context-blocks.sh ensure-task-workflow.sh check-task-workflow.sh switch-plan.sh workflow-contract.ts inspect-project-state.ts migrate-workflow-docs.ts migrate-project-template.sh capability-resolver.ts architecture-event.ts capability-config.ts architecture-queue.sh archive-architecture-request.sh context-contract-sync.sh workstream-sync.sh prepare-codex-handoff.sh codex-handoff-resume.sh}"
1032
+ local helper_names="${4:-new-spec.sh new-sprint.sh new-plan.sh capture-plan.sh plan-to-todo.sh contract-run.ts contract-worktree.sh ship-worktrees.sh archive-workflow.sh refresh-current-status.sh prepare-handoff.sh verify-contract.sh summarize-failures.sh verify-sprint.sh sprint-backlog.sh check-task-sync.sh check-deploy-sql-order.sh check-architecture-sync.sh check-agent-tooling.sh check-context-files.sh check-brain-manifest.sh sync-brain-docs.sh check-skill-version.ts select-agent-context-blocks.sh ensure-task-workflow.sh check-task-workflow.sh switch-plan.sh workflow-contract.ts inspect-project-state.ts migrate-workflow-docs.ts migrate-project-template.sh capability-resolver.ts architecture-event.ts capability-config.ts architecture-queue.sh context-contract-sync.sh workstream-sync.sh prepare-codex-handoff.sh codex-handoff-resume.sh}"
1043
1033
  local scripts_dir="$target_dir/scripts"
1044
1034
  local runtime_dir="$target_dir/.ai/harness/scripts"
1045
1035
  local helper_name
@@ -1066,7 +1056,7 @@ pi_install_helpers() {
1066
1056
  fi
1067
1057
 
1068
1058
  mkdir -p "$scripts_dir"
1069
- mkdir -p "$runtime_dir"
1059
+ if pi_repo_pins_helper_source "$target_dir"; then mkdir -p "$runtime_dir"; fi
1070
1060
 
1071
1061
  if [[ -d "$helpers_dir" ]]; then
1072
1062
  for helper_name in $helper_names; do
@@ -1490,10 +1480,11 @@ $PI_REFERENCE_CONFIG_STUB_MARKER
1490
1480
  > **Version**: $version
1491
1481
  > **Source Command**: \`forge docs path $doc_id\`
1492
1482
 
1493
- This repo keeps workflow facts and runtime artifacts locally under \`.ai/\`.
1494
- The full generic runtime guide is supplied by the installed forge
1495
- package/user-level runtime so each repository does not need to refresh a full
1496
- copy of shared documentation.
1483
+ This repo keeps authored project documentation and declarative configuration in Git.
1484
+ Mutable Requirement/Plan/Work, verification/evidence, session, plugin, and cache state
1485
+ belongs to Forge Controller Home. The full generic runtime guide is supplied by the
1486
+ installed forge package/user-level runtime so each repository does not need to refresh
1487
+ a full copy of shared documentation.
1497
1488
 
1498
1489
  Use:
1499
1490
 
@@ -1710,7 +1701,6 @@ pi_write_capability_registry() {
1710
1701
  "claude": "$rel_dir/CLAUDE.md"
1711
1702
  },
1712
1703
  "architecture_module": "docs/architecture/modules/$domain/$name.md",
1713
- "workstream_dir": "tasks/workstreams/$domain/$name",
1714
1704
  "lsp_profile": "$(pi_lsp_profile)",
1715
1705
  "verification_hints": ["record local commands here before implementation"]
1716
1706
  }
@@ -1774,12 +1764,6 @@ JS_EOF
1774
1764
  "priority": "low",
1775
1765
  "char_budget": 900,
1776
1766
  "purpose": "deep-doc"
1777
- },
1778
- {
1779
- "path": "tasks/workstreams/**/*.md",
1780
- "priority": "high",
1781
- "char_budget": 1200,
1782
- "purpose": "capability-workstream"
1783
1767
  }
1784
1768
  EOF_CONTEXT_ENTRY
1785
1769
  return 0
@@ -1820,435 +1804,10 @@ EOF_CONTEXT_ENTRY
1820
1804
  "priority": "low",
1821
1805
  "char_budget": 900,
1822
1806
  "purpose": "deep-doc"
1823
- },
1824
- {
1825
- "path": "tasks/workstreams/**/*.md",
1826
- "priority": "high",
1827
- "char_budget": 1200,
1828
- "purpose": "capability-workstream"
1829
1807
  }
1830
1808
  EOF_CONTEXT_ENTRY
1831
1809
  }
1832
1810
 
1833
- pi_write_harness_policy() {
1834
- local target_dir="$1"
1835
- local mode="${2:-apply}"
1836
- local output_file="$target_dir/.ai/harness/policy.json"
1837
- local default_file
1838
- local merged_file
1839
-
1840
- if [[ "$mode" != "apply" ]]; then
1841
- echo "[dry-run] write $output_file"
1842
- return 0
1843
- fi
1844
-
1845
- mkdir -p "$(dirname "$output_file")"
1846
- default_file="$(mktemp)"
1847
- merged_file="$(mktemp)"
1848
- cat > "$default_file" <<EOF_POLICY
1849
- {
1850
- "version": 1,
1851
- "active_plan": {
1852
- "marker_file": ".ai/harness/active-plan",
1853
- "legacy_marker_file": ".claude/.active-plan",
1854
- "directory": "plans",
1855
- "archive_directory": "plans/archive",
1856
- "glob": "plan-*.md",
1857
- "active_worktree_marker_file": ".ai/harness/active-worktree",
1858
- "source_of_truth": "per-worktree explicit marker with active-worktree owner; legacy Claude marker fallback only"
1859
- },
1860
- "tasks": {
1861
- "todo_file": "tasks/todos.md",
1862
- "current_status_file": "tasks/current.md",
1863
- "lessons_file": "tasks/lessons.md",
1864
- "research_dir": "docs/researches",
1865
- "workstreams_dir": "tasks/workstreams",
1866
- "contracts_dir": "tasks/contracts",
1867
- "reviews_dir": "tasks/reviews",
1868
- "notes_dir": "tasks/notes"
1869
- },
1870
- "prds": {
1871
- "dir": "plans/prds",
1872
- "template_file": ".claude/templates/prd.template.md",
1873
- "statuses": ["Draft", "Approved", "Superseded"],
1874
- "rule": "PRDs live in plans/prds as the upper planning layer. They decompose docs/spec.md intent into product direction, acceptance scenarios, module behavior, data model, performance targets, and developer handoff. Sprints reference PRDs through Source PRD and decompose them into ordered execution backlogs."
1875
- },
1876
- "sprints": {
1877
- "dir": "plans/sprints",
1878
- "active_marker_file": ".ai/harness/sprint/active-sprint",
1879
- "template_file": ".claude/templates/sprint.template.md",
1880
- "helper_script": "scripts/sprint-backlog.sh",
1881
- "statuses": ["Draft", "Approved", "Executing", "Done", "Archived"],
1882
- "rule": "PRDs live in plans/prds as the upper planning layer. Sprints live in plans/sprints as long-task execution backlogs; each sprint row is expanded with Waza \$think into a detailed plans/plan-*.md before the plan -> contract -> worktree flow; tasks/todos.md stays the deferred-goal ledger"
1883
- },
1884
- "reference_material": {
1885
- "dir": "_ref",
1886
- "mode": "external-ignored",
1887
- "commit_policy": "never commit _ref contents",
1888
- "rule": "use _ref as an occasional ignored external reference checkout cache for upstream/source comparison only; refresh from external sources instead of editing as product code; when it influences a decision, cite the source repo plus commit/tag and path in tasks/notes/ or docs/researches/"
1889
- },
1890
- "operations": {
1891
- "dir": "deploy",
1892
- "private_dir": "_ops",
1893
- "tracked": ["deploy/README.md", "deploy/scripts/", "deploy/submissions/", "deploy/runbooks/", "deploy/release-checklists/", "deploy/sql/", "deploy/*.md", "deploy/env/.env.example"],
1894
- "ignored": ["_ops/"],
1895
- "rule": "commit deployment runbooks, submission materials, release checklists, helper scripts, ordered SQL files, and env examples under deploy/; keep deploy SQL in deploy/sql/ with 4-digit ascending prefixes; keep keys, tokens, real env values, provider state, artifacts, logs, and scratch files in ignored _ops/ only"
1896
- },
1897
- "context": {
1898
- "profile": "$(pi_context_profile)",
1899
- "map_file": ".ai/context/context-map.json",
1900
- "capability_registry_file": ".ai/context/capabilities.json",
1901
- "capability_resolver": "scripts/capability-resolver.ts",
1902
- "capability_config": "scripts/capability-config.ts",
1903
- "capability_match_rule": "longest-prefix; same-length ambiguity fails",
1904
- "functional_block_selector": {
1905
- "script": "scripts/select-agent-context-blocks.sh",
1906
- "config_file": ".ai/context/agent-context-blocks.txt",
1907
- "env": "FORGE_CONTEXT_BLOCKS",
1908
- "rule": "compatibility selector; capability registry is the source of truth"
1909
- }
1910
- },
1911
- "harness": {
1912
- "policy_file": ".ai/harness/policy.json",
1913
- "checks_file": ".ai/harness/checks/latest.json",
1914
- "failure_log_file": ".ai/harness/failures/latest.jsonl",
1915
- "events_file": ".ai/harness/events.jsonl",
1916
- "architecture_events_file": ".ai/harness/architecture/events.jsonl",
1917
- "runs_dir": ".ai/harness/runs",
1918
- "helper_runtime_dir": ".ai/harness/scripts",
1919
- "helper_compat_dir": "scripts",
1920
- "helper_source": "package",
1921
- "helper_package_dir": "assets/templates/helpers"
1922
- },
1923
- "architecture": {
1924
- "index_file": "docs/architecture/index.md",
1925
- "requests_dir": "docs/architecture/requests",
1926
- "snapshots_dir": "docs/architecture/snapshots",
1927
- "diagrams_dir": "docs/architecture/diagrams",
1928
- "domains_dir": "docs/architecture/domains",
1929
- "modules_dir": "docs/architecture/modules",
1930
- "diagram_skill": "mermaid",
1931
- "diagram_skill_source": "~/.codex/skills/mermaid",
1932
- "vendoring_policy": "do-not-vendor-diagram-skill-assets",
1933
- "freshness_gate": "advisory",
1934
- "gate_min_severity": "medium",
1935
- "pending_card_scope": "capability",
1936
- "pending_block_begin": "<!-- BEGIN ARCHITECTURE PENDING REQUESTS -->",
1937
- "pending_block_end": "<!-- END ARCHITECTURE PENDING REQUESTS -->",
1938
- "queue_script": ".ai/harness/scripts/architecture-queue.sh",
1939
- "contract_block_begin": "<!-- BEGIN ARCHITECTURE CONTRACT -->",
1940
- "contract_block_end": "<!-- END ARCHITECTURE CONTRACT -->",
1941
- "rule": "hooks record architecture queue cards and sync controlled local context blocks; agents author semantic snapshots and diagrams"
1942
- },
1943
- "workstreams": {
1944
- "dir": "tasks/workstreams",
1945
- "scope": "capability",
1946
- "projection": "local-contract-active-pointer-and-current-slice",
1947
- "todo_projection": "tasks/todos.md",
1948
- "rule": "durable multi-session progress lives under tasks/workstreams/<domain>/<capability>; current plan execution lives in the plan Task Breakdown; tasks/todos.md records deferred goals only"
1949
- },
1950
- "information_lifecycle": {
1951
- "notes": {
1952
- "dir": "tasks/notes",
1953
- "purpose": "task-local implementation decisions, deviations, tradeoffs, and open questions",
1954
- "promotion": "archive on workflow close; promote only repeated or durable findings"
1955
- },
1956
- "evidence": {
1957
- "latest": ".ai/harness/checks/latest.json",
1958
- "snapshots_dir": ".ai/harness/runs",
1959
- "purpose": "raw verification records used to audit notes, reviews, and future promotion"
1960
- },
1961
- "assets": {
1962
- "sources": [".ai/harness/policy.json", ".ai/harness/workflow-contract.json", ".ai/hooks/", "scripts/", "docs/reference-configs/"],
1963
- "promotion_rule": "only promote patterns after verified reuse across tasks or fixtures"
1964
- },
1965
- "memory": {
1966
- "sources": ["docs/researches/", "tasks/lessons.md", "gbrain"],
1967
- "rule": "memory is advisory; current repo state and evidence override summaries"
1968
- },
1969
- "external_knowledge": {
1970
- "default_brain_path": "brain/<project>/*",
1971
- "project_path": "brain/<project>/*",
1972
- "manifest_file": ".ai/harness/brain-manifest.json",
1973
- "drift_check": "scripts/check-brain-manifest.sh",
1974
- "sync_script": "scripts/sync-brain-docs.sh",
1975
- "hook_trigger": "PostToolUse Edit|Write for manifest entries with sync.direction=repo-to-brain",
1976
- "rule": "external knowledge stores long-lived explanations, runbooks, and patterns only; repo-local contracts, hooks, scripts, checks, and evidence remain authoritative",
1977
- "sync_rule": "only explicitly opted-in repo-to-brain manifest entries may be written to the default brain vault; pointer-only externalized stubs remain check-only"
1978
- }
1979
- },
1980
- "session": {
1981
- "continuation_file": ".ai/harness/session/continuation.md",
1982
- "resume_file": ".ai/harness/session/resume.md",
1983
- "global_resume_dir": "~/.codex/handoffs",
1984
- "auto_start_new_session": false,
1985
- "authority": "rebuildable-host-session-cache-only"
1986
- },
1987
- "plan_capture": {
1988
- "script": "scripts/capture-plan.sh",
1989
- "sources": ["host-plan-mode", "forge-plan", "forge-sprint"],
1990
- "rule": "Forge /plan or host planning mode may capture decision-complete source plans into plans/plan-*.md; migrated lifecycle execution remains owned by Runtime Plan/Work state"
1991
- },
1992
- "planning": {
1993
- "pending_orchestration_file": ".ai/harness/planning/pending.json",
1994
- "source_of_truth": "transient host planning bridge only; captured plans are source artifacts, while migrated Runtime Plan/Work lifecycle state is authoritative in the Canonical Runtime"
1995
- },
1996
- "guards": {
1997
- "edit_plan_gate": "advice",
1998
- "edit_plan_gate_modes": ["enforce", "advice", "off"],
1999
- "rule": "pre-edit-guard advises when implementation lacks an active plan; execution remains available unless a real safety boundary blocks it"
2000
- },
2001
- "sidecar_research": {
2002
- "default": true,
2003
- "output_dir": "docs/researches",
2004
- "preferred_runners": ["subagent", "codex exec --json", "main-thread trace"],
2005
- "spawn_decision": "main agent decides from task breadth, context impact, raw-log volume, and callable runner availability; do not ask the user for spawn confirmation",
2006
- "fallback_runner": "main-thread trace",
2007
- "main_thread_policy": "if spawning is not worthwhile or no sidecar runner is callable, perform bounded research in the main thread; consume conclusions and evidence paths, not raw logs"
2008
- },
2009
- "documentation": {
2010
- "profile": "$(pi_documentation_profile)",
2011
- "reference_source": "user-level-runtime-docs",
2012
- "reference_stub_marker": "$PI_REFERENCE_CONFIG_STUB_MARKER",
2013
- "reference_resolver": "forge docs path <doc-id>",
2014
- "required": ["docs/spec.md", "docs/architecture/index.md"],
2015
- "on_demand": ["docs/brief.md", "docs/tech-stack.md", "docs/decisions.md", "docs/architecture.md", "docs/packages.md"],
2016
- "reference_configs": [$(pi_policy_reference_config_names | pi_json_string_array_from_lines)],
2017
- "rule": "create optional docs only when the agent has concrete repo evidence or the user asks; docs/reference-configs contains repo-local pointer stubs while full generic runtime docs live in the user-level/package forge install"
2018
- },
2019
- "lsp_profiles": {
2020
- "default": "$(pi_lsp_profile)",
2021
- "selection": "functional-block-first",
2022
- "rule": "use block-level LSP/tooling hints before broad repo assumptions"
2023
- },
2024
- "worktree_strategy": {
2025
- "auto_on_conflict": true,
2026
- "auto_for_contract_tasks": true,
2027
- "branch_prefix": "codex/",
2028
- "base_branch": "main",
2029
- "worktree_dir_template": "../{{repo}}-wt-{{slug}}",
2030
- "start_script": "scripts/contract-worktree.sh start --plan <plan-file>",
2031
- "finish_script": "scripts/contract-worktree.sh finish",
2032
- "cleanup_script": "scripts/contract-worktree.sh cleanup --slug <slug>",
2033
- "conflict_signals": [
2034
- "dirty_worktree_overlaps_task_files",
2035
- "current_branch_not_suitable_for_task",
2036
- "existing_changes_unrelated_but_would_block_review",
2037
- "task_requires_clean_validation_surface"
2038
- ],
2039
- "validation_route": "forge:/review",
2040
- "merge_back": {
2041
- "target": "main",
2042
- "requires_clean_check": true,
2043
- "preserve_unrelated_changes": true
2044
- }
2045
- },
2046
- "upgrade": {
2047
- "strategy_version": 1,
2048
- "supported_legacy_versions": ["pre-tasks-first", "tasks-first-without-contract-manifest", "current-v1"],
2049
- "action_classes": {
2050
- "preserve": "keep user-authored hooks, ignored reference material, private operations state, secrets, and local env files unchanged",
2051
- "archive": "move user-authored legacy workflow documents or checklists into archive/research surfaces before refresh",
2052
- "reconfigure": "merge managed config defaults without overwriting explicit repo overrides",
2053
- "remove": "delete only workflow-contract actions marked ownership=known_generated"
2054
- },
2055
- "cleanup": {
2056
- "source": ".ai/harness/workflow-contract.json#migrations.upgrade.actions",
2057
- "remove_only_ownership": "known_generated",
2058
- "unknown_files": "preserve-or-archive",
2059
- "custom_hooks": "preserve",
2060
- "ignored_reference_material": "preserve",
2061
- "local_operations_state": "preserve",
2062
- "local_secrets": "preserve"
2063
- },
2064
- "reporting": {
2065
- "inspector_field": "upgrade_plan",
2066
- "dry_run_required": true
2067
- }
2068
- },
2069
- "profiles": {
2070
- "orchestration": "$(pi_orchestration_profile)",
2071
- "evaluation": "$(pi_evaluation_profile)",
2072
- "handoff": "$(pi_handoff_profile)",
2073
- "recovery": "$(pi_recovery_profile)",
2074
- "state": "$(pi_state_profile)"
2075
- },
2076
- "external_tooling": {
2077
- "routing": {
2078
- "primary": "forge",
2079
- "optional_complex_helper": "gstack",
2080
- "optional_daily_helper": "waza",
2081
- "optional_knowledge_helper": "gbrain"
2082
- },
2083
- "hosts": $(pi_external_tooling_hosts_json),
2084
- "mode": "optional-enhancements",
2085
- "detection": "init-migrate",
2086
- "readiness_report": "forge run check-agent-tooling --host codex",
2087
- "waza": {
2088
- "source_repo": "tw93/Waza",
2089
- "source_url": "https://github.com/tw93/Waza.git",
2090
- "managed_skills": ["think", "hunt", "check", "health"],
2091
- "primary_host": "codex",
2092
- "codex_primary_path": "~/.codex/skills",
2093
- "staging_cache_path": "~/.agents/skills",
2094
- "sync_mode": "stage-upstream-then-copy-to-codex",
2095
- "host_drift_policy": "report-per-host-version-staging-and-upstream-drift"
2096
- },
2097
- "codex_automation_profile": {
2098
- "required_skills": [],
2099
- "optional_skills": ["health", "check", "mermaid"],
2100
- "mode": "optional-codex-runtime-reference",
2101
- "source": "~/.codex/skills",
2102
- "routes": {
2103
- "workflow_health_optional": "waza:health",
2104
- "review_helper_optional": "waza:check",
2105
- "architecture_diagram_optional": "mermaid"
2106
- },
2107
- "vendoring_policy": "do-not-vendor-skill-body"
2108
- },
2109
- "diagram_design": {
2110
- "skill_name": "mermaid",
2111
- "primary_host": "codex",
2112
- "codex_primary_path": "~/.codex/skills/mermaid",
2113
- "sync_mode": "external-installed-skill",
2114
- "vendoring_policy": "do-not-vendor"
2115
- },
2116
- "gbrain": {
2117
- "mcp": "$(pi_external_tooling_gbrain_mcp)"
2118
- },
2119
- "codegraph": {
2120
- "package": "@colbymchenry/codegraph",
2121
- "primary_host": "both",
2122
- "install_mode": "target-aware-mcp",
2123
- "codex_config_path": "~/.codex/config.toml",
2124
- "claude_config_path": "~/.claude.json",
2125
- "index_dir": ".codegraph",
2126
- "readiness": "forge-bundled-backend; host-mcp-optional",
2127
- "hook_policy": "do-not-block-hooks",
2128
- "install_command": "bun add -g @colbymchenry/codegraph && forge tools configure codegraph --target codex --location global",
2129
- "project_init_command": "codegraph init -i .",
2130
- "sync_command": "codegraph sync .",
2131
- "vendoring_policy": "do-not-add-package-dependency"
2132
- }
2133
- },
2134
- "agentic_development": {
2135
- "routing": {
2136
- "direct": "forge:/direct",
2137
- "plan": "forge:/plan",
2138
- "debug": "forge:/debug",
2139
- "review": "forge:/review",
2140
- "release": "forge:/release",
2141
- "scale": "forge:/scale"
2142
- },
2143
- "due_diligence": {
2144
- "levels": ["P1_GLOBAL_ARCHITECTURE", "P2_DATA_FLOW_TRACE", "P3_DESIGN_DECISION"],
2145
- "explicit_report_required_for": ["architecture", "debug", "risky_refactor", "deployment", "auth_payment_data", "shared_contract"]
2146
- }
2147
- },
2148
- "enforcement": {
2149
- "worktree_guard": "warn-by-default",
2150
- "verification_gate": "contract-and-review",
2151
- "completion_requires_checks": true
2152
- }
2153
- }
2154
- EOF_POLICY
2155
-
2156
- if [[ -f "$output_file" ]]; then
2157
- if ! pi_merge_json_defaults "$default_file" "$output_file" "$merged_file"; then
2158
- cp "$default_file" "$merged_file"
2159
- fi
2160
- elif ! pi_merge_json_defaults "$default_file" "$default_file" "$merged_file"; then
2161
- cp "$default_file" "$merged_file"
2162
- else
2163
- :
2164
- fi
2165
-
2166
- mv "$merged_file" "$output_file"
2167
- rm -f "$default_file"
2168
- }
2169
-
2170
- pi_write_brain_manifest() {
2171
- local target_dir="$1"
2172
- local mode="${2:-apply}"
2173
- local output_file="$target_dir/.ai/harness/brain-manifest.json"
2174
- local project_name
2175
-
2176
- if [[ "$mode" != "apply" ]]; then
2177
- echo "[dry-run] write $output_file if missing"
2178
- return 0
2179
- fi
2180
-
2181
- if [[ -f "$output_file" ]]; then
2182
- return 0
2183
- fi
2184
-
2185
- project_name="$(basename "$target_dir")"
2186
- mkdir -p "$(dirname "$output_file")"
2187
- cat > "$output_file" <<EOF_BRAIN_MANIFEST
2188
- {
2189
- "version": 1,
2190
- "project": "${project_name}",
2191
- "mode": "repo-contract-external-knowledge",
2192
- "default_brain_path": "brain/<project>/*",
2193
- "rules": [
2194
- "repo-local contracts, hooks, scripts, checks, and evidence remain authoritative",
2195
- "default brain stores long-lived explanations, runbooks, decisions, references, and patterns",
2196
- "hook runtime may sync explicitly opted-in repo-to-brain entries only; it must not query gbrain, MCP, or unregistered default brain paths"
2197
- ],
2198
- "entries": []
2199
- }
2200
- EOF_BRAIN_MANIFEST
2201
- }
2202
-
2203
- pi_write_context_map() {
2204
- local target_dir="$1"
2205
- local mode="${2:-apply}"
2206
- local output_file="$target_dir/.ai/context/context-map.json"
2207
- local discoverable_entries
2208
-
2209
- discoverable_entries="$(pi_context_map_discoverable_entries "$target_dir")"
2210
-
2211
- if [[ "$mode" != "apply" ]]; then
2212
- echo "[dry-run] write $output_file"
2213
- return 0
2214
- fi
2215
-
2216
- mkdir -p "$(dirname "$output_file")"
2217
- cat > "$output_file" <<EOF_CONTEXT
2218
- {
2219
- "version": 1,
2220
- "profile": "$(pi_context_profile)",
2221
- "functional_block_selector": {
2222
- "script": "scripts/select-agent-context-blocks.sh",
2223
- "config_file": ".ai/context/agent-context-blocks.txt",
2224
- "env": "FORGE_CONTEXT_BLOCKS",
2225
- "rule": "compatibility selector; capability registry is the source of truth"
2226
- },
2227
- "lsp_profiles": {
2228
- "default": "$(pi_lsp_profile)",
2229
- "selection": "functional-block-first"
2230
- },
2231
- "root_context_files": [
2232
- "CLAUDE.md",
2233
- "AGENTS.md",
2234
- "docs/spec.md",
2235
- "tasks/current.md",
2236
- "tasks/todos.md",
2237
- "tasks/lessons.md",
2238
- ".ai/context/capabilities.json",
2239
- ".ai/harness/policy.json"
2240
- ],
2241
- "discoverable_contexts": [
2242
- ${discoverable_entries}
2243
- ],
2244
- "budgets": {
2245
- "root_total_chars": 12000,
2246
- "per_discoverable_file_chars": 1200
2247
- }
2248
- }
2249
- EOF_CONTEXT
2250
- }
2251
-
2252
1811
  pi_root_context_content() {
2253
1812
  cat <<'EOF_ROOT_CONTEXT'
2254
1813
  # Repo Agent Context
@@ -2258,14 +1817,17 @@ This is the root routing contract for Claude Code and Codex.
2258
1817
  ## Root Workflow Contract
2259
1818
 
2260
1819
  - Keep sibling `CLAUDE.md` and `AGENTS.md` files aligned. Claude Code consumes `CLAUDE.md`; Codex consumes `AGENTS.md`.
2261
- - Treat `docs/spec.md` as stable product truth, `tasks/current.md` as a derived status snapshot, and `tasks/todos.md` as the deferred-goal ledger; current execution stays in the active plan's `## Task Breakdown`.
2262
- - Treat `docs/researches/`, `tasks/lessons.md`, and `.ai/harness/policy.json` as durable workflow context.
2263
- - Use `.ai/context/context-map.json` and `.ai/context/capabilities.json` to discover functional-block contracts.
1820
+ - Treat `docs/spec.md`, `docs/researches/`, `tasks/todos.md`, `tasks/lessons.md`, and intentional architecture/project documents as repository-authored truth.
1821
+ - Mutable Requirement/Plan/Work/Controller, verification/evidence, session/lease, plugin state, and generated Runtime projections live in Forge Controller Home, not repo-local lifecycle files.
1822
+ - `.ai/context/context-map.json` and `.ai/context/capabilities.json`, when present, are declarative context metadata only; they are not execution authority.
2264
1823
  - Do not infer local `CLAUDE.md` or `AGENTS.md` files from broad physical layouts such as `apps/*`, `packages/*`, or `services/*`.
2265
1824
  - Put capability-specific ownership, entrypoints, and verification commands in explicitly selected functional-block contracts.
2266
- - Keep root context concise; route deep implementation detail into plans, task notes, research, workstreams, or architecture docs.
2267
- - Treat `_ref/` as ignored external reference material and `_ops/` as ignored local operations state.
2268
- - Prefer repo-local workflow artifacts over tool-specific chat memory.
1825
+ - Keep root context concise; route durable human-authored detail into product, architecture, research, or intentional project documents.
1826
+ - Treat `_ref/` as ignored external reference material and `_ops/` as ignored local operations residue.
1827
+ - Use Controller Home for mutable workflow state instead of recreating repo-local task/workstream/session projections.
1828
+ - For architecture migrations, use one bounded Delivery Transaction: batch discovery -> architecture/root-cause decision -> freeze scope -> coherent implementation -> whole-diff review -> focused validation wave -> canonical gates -> one delivery/cleanup.
1829
+ - Do not create sibling Work, per-file commits, repeated broad validation, or release/canary cycles for same-root-cause discoveries while the current candidate is still moving.
1830
+ - Treat release as a source-complete candidate boundary. Defer workflow/lifecycle machinery improvements to a post-release Plan when they are not required to converge the current version safely.
2269
1831
  EOF_ROOT_CONTEXT
2270
1832
  }
2271
1833
 
@@ -2328,7 +1890,7 @@ Keep this file focused on the local contract for this primary functional block.
2328
1890
  - Route deep implementation detail into nearby docs instead of inflating root agent context files.
2329
1891
  - Treat `.ai/context/context-map.json` as the index of discoverable context files.
2330
1892
  - Do not keep pushing context files deeper by default; add lower-level files only for a separately owned functional block with its own commands and invariants.
2331
- - Prefer repo-local workflow artifacts over tool-specific chat memory.
1893
+ - Keep mutable workflow state in Controller Home; repository context files describe authored code and capability boundaries only.
2332
1894
  EOF_DIRECTORY_AGENTS
2333
1895
  )
2334
1896
 
@@ -2368,121 +1930,19 @@ pi_ensure_harness_state_surface() {
2368
1930
  local mode="${2:-apply}"
2369
1931
 
2370
1932
  if [[ "$mode" != "apply" ]]; then
2371
- echo "[dry-run] ensure harness policy/context/events/runs/worktrees/local-jobs/controller/triage/planning in $target_dir"
1933
+ echo "[dry-run] ensure authored Forge knowledge surface in $target_dir; Runtime state remains in Controller Home"
2372
1934
  return 0
2373
1935
  fi
2374
1936
 
2375
- mkdir -p \
2376
- "$target_dir/tasks/notes" \
2377
- "$target_dir/tasks/workstreams" \
2378
- "$target_dir/.ai/context" \
2379
- "$target_dir/.ai/harness/checks" \
2380
- "$target_dir/.ai/harness/session" \
2381
- "$target_dir/.ai/harness/controller/packets" \
2382
- "$target_dir/.ai/harness/projections" \
2383
- "$target_dir/.ai/harness/transfers" \
2384
- "$target_dir/.ai/harness/scripts" \
2385
- "$target_dir/.ai/harness/failures" \
2386
- "$target_dir/.ai/harness/security" \
2387
- "$target_dir/.ai/harness/planning" \
2388
- "$target_dir/.ai/harness/architecture" \
2389
- "$target_dir/.ai/harness/worktrees" \
2390
- "$target_dir/.ai/harness/controller" \
2391
- "$target_dir/.ai/harness/local-jobs" \
2392
- "$target_dir/docs/researches" \
2393
- "$target_dir/docs/architecture/domains" \
2394
- "$target_dir/docs/architecture/modules" \
2395
- "$target_dir/docs/architecture/requests" \
2396
- "$target_dir/docs/architecture/snapshots" \
2397
- "$target_dir/docs/architecture/diagrams" \
2398
- "$target_dir/.ai/harness/runs"
2399
-
2400
- [[ -f "$target_dir/.ai/harness/checks/latest.json" ]] || printf "{}\n" > "$target_dir/.ai/harness/checks/latest.json"
2401
- [[ -f "$target_dir/.ai/harness/session/continuation.md" ]] || printf "# Forge Session Continuation Snapshot\n\n> **Reason**: bootstrap\n" > "$target_dir/.ai/harness/session/continuation.md"
2402
- [[ -f "$target_dir/.ai/harness/session/resume.md" ]] || printf "# Codex Resume Packet\n\n> **Reason**: bootstrap\n" > "$target_dir/.ai/harness/session/resume.md"
2403
- [[ -f "$target_dir/.ai/context/capability-source-map.json" ]] || printf '{\n "version": 1,\n "capabilities": {}\n}\n' > "$target_dir/.ai/context/capability-source-map.json"
2404
- [[ -f "$target_dir/.ai/harness/events.jsonl" ]] || : > "$target_dir/.ai/harness/events.jsonl"
2405
- [[ -f "$target_dir/.ai/harness/architecture/events.jsonl" ]] || : > "$target_dir/.ai/harness/architecture/events.jsonl"
2406
- [[ -f "$target_dir/.ai/harness/architecture/.gitkeep" ]] || : > "$target_dir/.ai/harness/architecture/.gitkeep"
2407
- [[ -f "$target_dir/.ai/harness/failures/latest.jsonl" ]] || : > "$target_dir/.ai/harness/failures/latest.jsonl"
2408
- [[ -f "$target_dir/.ai/harness/security/.gitkeep" ]] || : > "$target_dir/.ai/harness/security/.gitkeep"
2409
- [[ -f "$target_dir/.ai/harness/scripts/.gitkeep" ]] || : > "$target_dir/.ai/harness/scripts/.gitkeep"
2410
- [[ -f "$target_dir/.ai/harness/planning/.gitkeep" ]] || : > "$target_dir/.ai/harness/planning/.gitkeep"
2411
- [[ -f "$target_dir/.ai/harness/worktrees/.gitkeep" ]] || : > "$target_dir/.ai/harness/worktrees/.gitkeep"
2412
- [[ -f "$target_dir/.ai/harness/runs/.gitkeep" ]] || : > "$target_dir/.ai/harness/runs/.gitkeep"
2413
- [[ -f "$target_dir/tasks/workstreams/.gitkeep" ]] || : > "$target_dir/tasks/workstreams/.gitkeep"
1937
+ mkdir -p "$target_dir/tasks" "$target_dir/docs/researches"
2414
1938
  if [[ ! -f "$target_dir/docs/researches/README.md" ]]; then
2415
1939
  cat > "$target_dir/docs/researches/README.md" <<'RESEARCH_README_EOF'
2416
1940
  # Research Reports
2417
1941
 
2418
- Durable research reports live in this directory as topic-scoped Markdown files.
2419
-
2420
- Use `YYYYMMDD-topic.md` names when chronology matters, or `<topic>.md` for
2421
- stable subject reports. Keep task-local implementation decisions in
2422
- `tasks/notes/`, and keep repeated correction-derived rules in `tasks/lessons.md`.
1942
+ Durable, human-reviewable research conclusions live here. Machine execution state,
1943
+ receipts, sessions, caches, and generated reports belong to Forge Controller Home.
2423
1944
  RESEARCH_README_EOF
2424
1945
  fi
2425
- if [[ ! -f "$target_dir/tasks/current.md" ]]; then
2426
- cat > "$target_dir/tasks/current.md" <<'CURRENT_STATUS_EOF'
2427
- # Current Status Snapshot
2428
-
2429
- <!-- generated-by: forge refresh-current-status v1 -->
2430
- <!-- updated_at: bootstrap -->
2431
- <!-- stale_after: 24h -->
2432
-
2433
- > **Status**: Idle
2434
- > **Updated At**: bootstrap
2435
- > **Source Branch**: main
2436
- > **Source Commit**: bootstrap
2437
- > **Target Branch**: main
2438
- > **Stale After**: 24h
2439
- > **Reason**: bootstrap
2440
- > **Derived From**: active-plan, active-sprint, workstreams, handoff, checks, git status
2441
-
2442
- This file is a tracked mainline snapshot derived from repo artifacts. It is not a live lock, not a kanban board, and not an implementation gate. If it is stale, read the source artifacts below.
2443
- CURRENT_STATUS_EOF
2444
- fi
2445
- [[ -f "$target_dir/docs/architecture/domains/.gitkeep" ]] || : > "$target_dir/docs/architecture/domains/.gitkeep"
2446
- [[ -f "$target_dir/docs/architecture/modules/.gitkeep" ]] || : > "$target_dir/docs/architecture/modules/.gitkeep"
2447
- [[ -f "$target_dir/docs/architecture/requests/.gitkeep" ]] || : > "$target_dir/docs/architecture/requests/.gitkeep"
2448
- [[ -f "$target_dir/docs/architecture/snapshots/.gitkeep" ]] || : > "$target_dir/docs/architecture/snapshots/.gitkeep"
2449
- [[ -f "$target_dir/docs/architecture/diagrams/.gitkeep" ]] || : > "$target_dir/docs/architecture/diagrams/.gitkeep"
2450
- if [[ ! -f "$target_dir/docs/architecture/index.md" ]]; then
2451
- cat > "$target_dir/docs/architecture/index.md" <<'ARCHITECTURE_INDEX_EOF'
2452
- # Architecture Index
2453
-
2454
- > Umbrella architecture ledger for current boundaries, drift requests, snapshots, and diagrams.
2455
-
2456
- ## Current Snapshot
2457
-
2458
- - Latest snapshot: (none yet)
2459
- - Semantic diagram source: (none yet)
2460
- - Latest human diagram: (none yet)
2461
-
2462
- ## Architecture Drift Flow
2463
-
2464
- - `.ai/harness/scripts/architecture-queue.sh` records architecture-sensitive edits as requests.
2465
- - `.ai/harness/scripts/archive-architecture-request.sh` archives handled requests after an agent records the resolution status and linked artifacts.
2466
- - `.ai/harness/scripts/context-contract-sync.sh` keeps only the controlled architecture block in functional-block `AGENTS.md` and `CLAUDE.md` files aligned.
2467
- - `.ai/harness/scripts/workstream-sync.sh` keeps durable multi-session progress under `tasks/workstreams/<domain>/<capability>/` and projects only pointers into local contracts.
2468
- - Semantic architecture diagrams live as Mermaid fenced blocks in the relevant module or snapshot Markdown.
2469
- - Human-readable architecture diagrams are optional `mermaid` HTML files in `docs/architecture/diagrams/` and should link back to the Markdown semantic source.
2470
-
2471
- ## Pending Requests
2472
-
2473
- <!-- BEGIN ARCHITECTURE PENDING REQUESTS -->
2474
- - (none)
2475
- <!-- END ARCHITECTURE PENDING REQUESTS -->
2476
-
2477
- ARCHITECTURE_INDEX_EOF
2478
- fi
2479
-
2480
- pi_write_capability_registry "$target_dir" "$mode"
2481
- pi_write_harness_policy "$target_dir" "$mode"
2482
- pi_write_brain_manifest "$target_dir" "$mode"
2483
- pi_write_context_map "$target_dir" "$mode"
2484
- pi_install_root_context_files "$target_dir" "$mode"
2485
- pi_install_directory_context_files "$target_dir" "$mode"
2486
1946
  }
2487
1947
 
2488
1948
  pi_resolve_js_runtime() {
@@ -2642,7 +2102,7 @@ pi_ensure_task_sync() {
2642
2102
  "check:context-files": "forge run check-context-files",
2643
2103
  "check:deploy-sql": "forge run check-deploy-sql-order",
2644
2104
  "check:architecture-sync": "forge run check-architecture-sync",
2645
- "check:task": "bash scripts/check-task-workflow.sh --strict",
2105
+ "check:task": "forge run check-task-workflow --strict",
2646
2106
  "check:task-sync": "forge run check-task-sync",
2647
2107
  "check:task-workflow": "forge run check-task-workflow --strict",
2648
2108
  "sync:brain-docs": "forge run sync-brain-docs --all"
@@ -2668,7 +2128,7 @@ pkg.scripts["check:brain-manifest"] = "forge run check-brain-manifest";
2668
2128
  pkg.scripts["check:context-files"] = "forge run check-context-files";
2669
2129
  pkg.scripts["check:deploy-sql"] = "forge run check-deploy-sql-order";
2670
2130
  pkg.scripts["check:architecture-sync"] = "forge run check-architecture-sync";
2671
- pkg.scripts["check:task"] = "bash scripts/check-task-workflow.sh --strict";
2131
+ pkg.scripts["check:task"] = "forge run check-task-workflow --strict";
2672
2132
  pkg.scripts["check:task-sync"] = "forge run check-task-sync";
2673
2133
  pkg.scripts["check:task-workflow"] = "forge run check-task-workflow --strict";
2674
2134
  pkg.scripts["sync:brain-docs"] = "forge run sync-brain-docs --all";