@moretea-labs/forge 1.8.1 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/AGENTS.md +5 -2
  2. package/CHANGELOG.md +20 -0
  3. package/README.en.md +24 -3
  4. package/README.md +10 -6
  5. package/README.zh-CN.md +5 -3
  6. package/THIRD_PARTY_NOTICES.md +1 -2
  7. package/adapters/chatgpt/browser-delivery-runtime.ts +5 -3
  8. package/adapters/chatgpt/provider-delivery.ts +1 -1
  9. package/adapters/chatgpt/work-conversation-binding-store.ts +20 -1
  10. package/adapters/computer/chatgpt-extension-target.ts +295 -50
  11. package/adapters/computer/chrome-extension/background.js +227 -71
  12. package/adapters/computer/chrome-extension/content.js +181 -157
  13. package/adapters/computer/chrome-extension/manifest.json +3 -1
  14. package/adapters/computer/desktop-operator-provider.ts +18 -6
  15. package/adapters/computer/interaction-target-authority.ts +39 -9
  16. package/adapters/mcp/access-mode.ts +18 -39
  17. package/adapters/mcp/auth.ts +2 -6
  18. package/adapters/mcp/instructions.ts +2 -2
  19. package/adapters/mcp/multi-repository.ts +7 -28
  20. package/adapters/mcp/runtime-gateway/context-adapter.ts +79 -40
  21. package/adapters/mcp/runtime-gateway/context-pack-sidecar.ts +7 -15
  22. package/adapters/mcp/runtime-gateway/execution-tools.ts +7 -13
  23. package/adapters/mcp/runtime-gateway/plugin-adapter.ts +16 -3
  24. package/adapters/mcp/runtime-gateway/process-tools.ts +3 -21
  25. package/adapters/mcp/runtime-gateway/router.ts +3 -5
  26. package/adapters/mcp/runtime-gateway/routing-policy.ts +17 -10
  27. package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +1 -1
  28. package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +14 -9
  29. package/adapters/mcp/runtime-gateway/runtime-tools.ts +1 -5
  30. package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +36 -1
  31. package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +58 -4
  32. package/adapters/mcp/runtime-gateway/typescript-navigation-sidecar.ts +7 -3
  33. package/adapters/mcp/runtime-gateway/work-adapter.ts +16 -16
  34. package/adapters/mcp/runtime-gateway/work-input-wire-migration.ts +0 -17
  35. package/adapters/mcp/runtime-gateway/work-semantic-operations.ts +69 -12
  36. package/adapters/mcp/runtime-gateway/workflow-supervisor-adapter.ts +26 -2
  37. package/adapters/mcp/server.ts +24 -3
  38. package/adapters/mcp/setup.ts +4 -10
  39. package/adapters/mcp/tool-mapping/access-tools.ts +0 -6
  40. package/adapters/mcp/tool-mapping/legacy-tool-service.ts +672 -2935
  41. package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +1 -1
  42. package/adapters/mcp/tool-mapping/repository-tools.ts +52 -86
  43. package/adapters/mcp/toolset-names.ts +11 -42
  44. package/adapters/mcp/toolset.ts +16 -90
  45. package/{src/cli → adapters}/mcp/transports/AGENTS.md +5 -5
  46. package/{src/cli → adapters}/mcp/transports/CLAUDE.md +5 -5
  47. package/adapters/mcp/transports/http-observation.ts +18 -6
  48. package/adapters/mcp/transports/http-post-lifecycle.ts +19 -0
  49. package/adapters/mcp/transports/http.ts +54 -14
  50. package/adapters/mcp/types.ts +0 -6
  51. package/assets/hooks/lib/session-state.sh +0 -38
  52. package/assets/hooks/post-bash.sh +1 -1
  53. package/assets/hooks/post-tool-observer.sh +0 -5
  54. package/assets/hooks/prompt-guard.sh +0 -55
  55. package/assets/partials/04-project-structure.partial.md +1 -1
  56. package/assets/partials/07-footer.partial.md +1 -1
  57. package/assets/partials-agents/02-operating-mode.partial.md +1 -1
  58. package/assets/partials-agents/08-deep-docs.partial.md +1 -1
  59. package/assets/reference-configs/agentic-development-flow.md +1 -1
  60. package/assets/reference-configs/external-tooling.md +0 -76
  61. package/assets/reference-configs/release-deploy.md +1 -1
  62. package/assets/templates/helpers/architecture-queue.sh +1 -1
  63. package/assets/templates/helpers/check-agent-tooling.sh +1 -327
  64. package/assets/templates/helpers/check-task-workflow.sh +1 -1
  65. package/assets/templates/helpers/ensure-task-workflow.sh +0 -14
  66. package/assets/templates/helpers/migrate-project-template.sh +2 -2
  67. package/assets/workflow-contract.v1.json +0 -2
  68. package/docs/README.md +5 -2
  69. package/docs/architecture/CURRENT.md +114 -30
  70. package/docs/architecture/decisions/20260904-ios-device-migration-baseline.md +42 -0
  71. package/docs/architecture/decisions/20260918-stable-candidate-release-lifecycle.md +15 -2
  72. package/docs/architecture/decisions/20260924-thin-semantic-working-context.md +4 -2
  73. package/docs/architecture/decisions/20261001-supervisor-turn-authority.md +109 -4
  74. package/docs/architecture/decisions/20261009-exact-code-context-discovery.md +19 -0
  75. package/docs/architecture/decisions/20261009-generated-xcode-cache-retention.md +37 -0
  76. package/docs/architecture/decisions/20261011-autonomous-continuation-convergence.md +597 -0
  77. package/docs/architecture/decisions/20261017-edit-session-finalization-reconciliation.md +17 -0
  78. package/docs/architecture/decisions/20261019-retire-host-skills.md +16 -0
  79. package/docs/architecture/diagrams/agentic-dev-plugin-architecture.html +1 -1
  80. package/docs/architecture/domains/public-surface.md +3 -5
  81. package/docs/architecture/domains/verification.md +5 -5
  82. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +2 -2
  83. package/docs/architecture/requests/2026-09-04-computer-plugin-workflow-taxonomy.md +4 -4
  84. package/docs/architecture/reviews/20261015-code-search-runtime-acceptance.md +75 -0
  85. package/docs/forge-plugin-management.md +14 -2
  86. package/docs/operations/controller-browser-plugin.md +23 -0
  87. package/docs/operations/features.md +6 -7
  88. package/docs/operations/features.zh-CN.md +1 -1
  89. package/docs/operations/github-repository.md +4 -4
  90. package/docs/operations/github-semantic-release-projection.md +20 -0
  91. package/docs/operations/homebrew.md +2 -2
  92. package/docs/operations/mcp-tool-exposure.md +13 -54
  93. package/docs/operations/runtime-performance-diagnostics.md +8 -0
  94. package/docs/operations/standalone-disaster-recovery.md +1 -1
  95. package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
  96. package/docs/tutorials/03-first-repository-task.md +2 -0
  97. package/docs/wiki/Computer-and-Plugins.md +78 -0
  98. package/docs/wiki/Computer-and-Plugins.zh-CN.md +88 -0
  99. package/docs/wiki/Home.md +16 -2
  100. package/docs/wiki/Implementation.md +24 -12
  101. package/docs/wiki/Installation.md +28 -32
  102. package/docs/wiki/Integrations.md +4 -0
  103. package/docs/wiki/Quick-Start.md +35 -22
  104. package/docs/wiki/Releases-and-Upgrades.md +15 -25
  105. package/docs/wiki/_Sidebar.md +5 -1
  106. package/package.json +1 -12
  107. package/packages/kernel/controller/infrastructure/controller-session-store.ts +63 -38
  108. package/packages/kernel/identity/infrastructure/activity-projection-store.ts +10 -0
  109. package/packages/kernel/scheduler/application/eligibility.ts +4 -1
  110. package/packages/kernel/scheduler/infrastructure/schedule-store.ts +13 -10
  111. package/packages/kernel/work/application/work-service.ts +1 -0
  112. package/packages/kernel/work/domain/repository-completion-receipt.ts +1 -1
  113. package/packages/kernel/work/domain/state-machine.ts +9 -2
  114. package/packages/kernel/work/infrastructure/work-contract-store.ts +28 -1
  115. package/packages/plugin-runtime/browser/provider-registry.ts +12 -36
  116. package/packages/plugin-runtime/computer/conversation-target.ts +17 -7
  117. package/scripts/assemble-template.ts +11 -72
  118. package/scripts/check-mcp-compatibility.ts +55 -74
  119. package/scripts/check-package-identity.mjs +0 -5
  120. package/scripts/check-runtime-architecture.mjs +305 -28
  121. package/scripts/init-project.sh +0 -46
  122. package/scripts/install-ios-hid-toolchain.sh +60 -0
  123. package/scripts/install-standalone-recovery.ts +1 -1
  124. package/scripts/lib/project-init-lib.sh +3 -3
  125. package/scripts/migrate-windows-wsl-controller-home.ts +2 -0
  126. package/scripts/open-source-audit-allowlist.txt +0 -1
  127. package/scripts/run-governed-gate.ts +2 -0
  128. package/scripts/smoke-ios-physical-device.ts +38 -10
  129. package/scripts/smoke-mcp-http-runtime.ts +7 -8
  130. package/scripts/smoke-mcp-tool-surface.ts +27 -41
  131. package/scripts/smoke-workflow-supervisor-chrome-adapter.ts +6 -3
  132. package/scripts/sync-generated-authority.mjs +0 -1
  133. package/src/cli/agent-jobs/executor-health.ts +1 -1
  134. package/src/cli/agent-jobs/integration.ts +2 -2
  135. package/src/cli/chatgpt-browser/file-policy.ts +2 -2
  136. package/src/cli/commands/doctor.ts +1 -143
  137. package/src/cli/commands/global-runtime.ts +3 -196
  138. package/src/cli/commands/init-hook.ts +6 -23
  139. package/src/cli/commands/init.ts +3 -252
  140. package/src/cli/commands/mcp.ts +0 -5
  141. package/src/cli/commands/prompt-guard-decision.ts +0 -2
  142. package/src/cli/commands/recovery.ts +2 -14
  143. package/src/cli/commands/repository.ts +17 -1
  144. package/src/cli/commands/setup-execution.ts +41 -0
  145. package/src/cli/controller/completion-orchestrator.ts +1 -1
  146. package/src/cli/controller/composite-operations.ts +1 -1
  147. package/src/cli/controller/context/instruction-context.ts +1 -1
  148. package/src/cli/controller/context/known-paths.ts +2 -2
  149. package/src/cli/controller/context/query-planning.ts +11 -4
  150. package/src/cli/controller/context/rule-resolution.ts +2 -2
  151. package/src/cli/controller/context/source-materializer.ts +2 -2
  152. package/src/cli/controller/context/structural-provider.ts +84 -0
  153. package/src/cli/controller/context/structural.ts +6 -6
  154. package/src/cli/controller/context/types.ts +8 -9
  155. package/src/cli/controller/context-pack.ts +97 -76
  156. package/src/cli/controller/operational-plan.ts +1 -1
  157. package/src/cli/controller/systemd-user.ts +4 -10
  158. package/src/cli/editing/edit-session.ts +17 -5
  159. package/src/cli/github/github.ts +4 -4
  160. package/src/cli/github/semantic-projection.ts +174 -0
  161. package/src/cli/hook/prompt-intents.ts +0 -9
  162. package/src/cli/index.ts +1 -43
  163. package/src/cli/local-bridge/connector-freshness.ts +1 -12
  164. package/src/cli/local-bridge/console-automations.ts +1 -1
  165. package/src/cli/local-bridge/console-view-models.ts +1 -1
  166. package/src/cli/local-bridge/facade-api.ts +0 -2
  167. package/src/cli/repositories/command-classifier.ts +0 -9
  168. package/src/cli/repositories/command-scope.ts +2 -2
  169. package/src/cli/repositories/locks.ts +20 -0
  170. package/src/cli/repositories/registry.ts +2 -1
  171. package/src/cli/repositories/safe-patch.ts +2 -12
  172. package/src/cli/repositories/structured-git.ts +39 -3
  173. package/src/cli/repository/inspector.ts +185 -343
  174. package/src/effects/process-runner.ts +17 -1
  175. package/src/runtime/context/generic-lsp-provider.ts +1 -1
  176. package/src/runtime/context/semantic-navigation-contract.ts +7 -0
  177. package/src/runtime/context/semantic-navigation.ts +1 -1
  178. package/src/runtime/control-plane/cleanup-artifact-retention.ts +4 -4
  179. package/src/runtime/control-plane/execution/work-delivery-service.ts +150 -31
  180. package/src/runtime/control-plane/execution/work-handle-authority.ts +12 -4
  181. package/src/runtime/control-plane/execution/work-handle-store.ts +53 -1
  182. package/src/runtime/control-plane/execution/work-operation-service.ts +20 -10
  183. package/src/runtime/control-plane/execution/work-preparation-service.ts +108 -4
  184. package/src/runtime/control-plane/execution/work-process-evidence.ts +2 -2
  185. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +28 -13
  186. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +5 -1
  187. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +1 -1
  188. package/src/runtime/control-plane/facade/capability-registry.ts +2 -0
  189. package/src/runtime/control-plane/facade/work-continuation.ts +1 -1
  190. package/src/runtime/control-plane/generated-cache-retention.ts +114 -63
  191. package/src/runtime/control-plane/global-scheduler/maintenance.ts +20 -8
  192. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +1 -11
  193. package/src/runtime/control-plane/governance/external-effects.ts +1 -1
  194. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +1 -0
  195. package/src/runtime/control-plane/runtime-cleanup.ts +12 -93
  196. package/src/runtime/evidence/sensitive-output.ts +22 -2
  197. package/src/runtime/execution/jobs/child-reference.ts +11 -0
  198. package/src/runtime/execution/jobs/receipt-recovery.ts +1 -11
  199. package/src/runtime/execution/process-runtime/command-facade.ts +3 -3
  200. package/src/runtime/execution/process-runtime/runtime.ts +20 -16
  201. package/src/runtime/execution/thin-harness/execution-router.ts +16 -16
  202. package/src/runtime/execution/thin-harness/fast-executor.ts +2 -2
  203. package/src/runtime/execution/thin-harness/search-worker.ts +2 -2
  204. package/src/runtime/execution/workers/executor.ts +1 -2
  205. package/src/runtime/maintenance/cleanup.ts +41 -5
  206. package/src/runtime/plugins/action-application.ts +12 -1
  207. package/src/runtime/plugins/app-store-connect-adapter.ts +252 -4
  208. package/src/runtime/plugins/browser-adapter.ts +381 -313
  209. package/src/runtime/plugins/browser-macos-bridge.ts +114 -112
  210. package/src/runtime/plugins/browser-manifest-surface.ts +2 -1
  211. package/src/runtime/plugins/browser-registration.ts +2 -0
  212. package/src/runtime/plugins/browser-runtime.ts +26 -35
  213. package/src/runtime/plugins/computer-chatgpt-browser-adapter-installer.ts +11 -2
  214. package/src/runtime/plugins/computer-registration.ts +76 -9
  215. package/src/runtime/plugins/github-adapter.ts +30 -3
  216. package/src/runtime/plugins/gmail-adapter.ts +166 -1
  217. package/src/runtime/plugins/google-shared.ts +10 -5
  218. package/src/runtime/plugins/ios/remote-xpc-hid.ts +70 -30
  219. package/src/runtime/plugins/ios-adapter.ts +45 -40
  220. package/src/runtime/plugins/ios-agent-device.ts +54 -4
  221. package/src/runtime/plugins/ios-device-ownership.ts +103 -0
  222. package/src/runtime/plugins/ios-physical-device.ts +497 -79
  223. package/src/runtime/plugins/local-system-adapter.ts +1 -99
  224. package/src/runtime/plugins/store.ts +80 -7
  225. package/src/runtime/plugins/types.ts +4 -0
  226. package/src/runtime/projections/git-status-sampler.ts +2 -19
  227. package/src/runtime/recovery/actions.ts +1 -1
  228. package/src/runtime/recovery/lifecycle-inventory.ts +1 -11
  229. package/src/runtime/recovery/probe.ts +2 -2
  230. package/src/runtime/release/release-coordinator.ts +20 -4
  231. package/src/runtime/root/controller-progression-composition.ts +67 -5
  232. package/src/runtime/root/package-connector-service.ts +123 -11
  233. package/src/runtime/root/package-runtime-release.ts +6 -18
  234. package/src/runtime/root/package-runtime-service.ts +7 -13
  235. package/src/runtime/root/release-execution-canary.ts +18 -5
  236. package/src/runtime/root/release-manifest.ts +0 -34
  237. package/src/runtime/root/release-materialize.ts +0 -78
  238. package/src/runtime/root/runtime.ts +1 -2
  239. package/src/runtime/root/scheduled-controller-composition.ts +2 -1
  240. package/src/runtime/root/service.ts +90 -11
  241. package/src/runtime/root/types.ts +0 -6
  242. package/src/runtime/root/workflow-supervisor-composition.ts +207 -19
  243. package/src/runtime/root/workflow-supervisor-runtime.ts +365 -10
  244. package/src/runtime/safe-tooling/google-credential-store.ts +1 -11
  245. package/src/runtime/safe-tooling/ios-development.ts +22 -8
  246. package/src/runtime/safe-tooling/job-summary.ts +1 -1
  247. package/src/runtime/safe-tooling/workspace-auth.ts +4 -1
  248. package/src/runtime/shared/atomic-text-file.ts +21 -0
  249. package/src/runtime/shared/json-files.ts +8 -3
  250. package/src/runtime/standalone-recovery/core.ts +189 -174
  251. package/src/runtime/standalone-recovery/entry.ts +62 -30
  252. package/src/runtime/standalone-recovery/operation-lock.ts +11 -1
  253. package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +1 -0
  254. package/src/runtime/workflow/schedules/engine.ts +36 -14
  255. package/src/runtime/workflow/schedules/pending-activation.ts +11 -4
  256. package/src/runtime/workflow/schedules/work-continuation.ts +51 -6
  257. package/supervisor/client.ts +31 -14
  258. package/supervisor/control-plane.ts +210 -115
  259. package/supervisor/forge-validators.ts +88 -21
  260. package/supervisor/native-browser-adapter.ts +393 -28
  261. package/supervisor/native-messaging/host.ts +21 -2
  262. package/supervisor/protocol.ts +74 -26
  263. package/supervisor/server.ts +16 -8
  264. package/supervisor/store.ts +476 -57
  265. package/supervisor/types.ts +19 -13
  266. package/SKILL.md +0 -427
  267. package/adapters/computer/chatgpt-target-router.ts +0 -103
  268. package/adapters/mcp/runtime-gateway/automation-receipt-adapter.ts +0 -87
  269. package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +0 -1
  270. package/adapters/mcp/toolset-selection.ts +0 -41
  271. package/agents/openai.yaml +0 -4
  272. package/assets/skill-hooks.json +0 -41
  273. package/assets/skill-version.json +0 -189
  274. package/assets/skills/claude-review/SKILL.md +0 -231
  275. package/assets/skills/codex-review/SKILL.md +0 -103
  276. package/assets/templates/helpers/check-skill-version.ts +0 -193
  277. package/scripts/check-skill-version.ts +0 -5
  278. package/scripts/ensure-codegraph.sh +0 -16
  279. package/scripts/run-skill-hook.ts +0 -244
  280. package/scripts/sync-codex-installed-copies.sh +0 -182
  281. package/src/cli/commands/tools.ts +0 -167
  282. package/src/cli/mcp/access-mode.ts +0 -2
  283. package/src/cli/mcp/access-tools.ts +0 -2
  284. package/src/cli/mcp/audit.ts +0 -2
  285. package/src/cli/mcp/auth.ts +0 -2
  286. package/src/cli/mcp/instructions.ts +0 -2
  287. package/src/cli/mcp/legacy-context.ts +0 -2
  288. package/src/cli/mcp/legacy-tool-service.ts +0 -2
  289. package/src/cli/mcp/multi-repository.ts +0 -2
  290. package/src/cli/mcp/oauth.ts +0 -2
  291. package/src/cli/mcp/openai-secure-tunnel.ts +0 -2
  292. package/src/cli/mcp/paths.ts +0 -2
  293. package/src/cli/mcp/policy.ts +0 -2
  294. package/src/cli/mcp/post-finalize-work-attribution.ts +0 -2
  295. package/src/cli/mcp/proxy-env.ts +0 -2
  296. package/src/cli/mcp/readiness-projection.ts +0 -2
  297. package/src/cli/mcp/redaction.ts +0 -2
  298. package/src/cli/mcp/repo.ts +0 -2
  299. package/src/cli/mcp/repository-tools.ts +0 -2
  300. package/src/cli/mcp/server.ts +0 -2
  301. package/src/cli/mcp/setup.ts +0 -2
  302. package/src/cli/mcp/tool-capability-cache.ts +0 -2
  303. package/src/cli/mcp/tool-contract.ts +0 -2
  304. package/src/cli/mcp/tools.ts +0 -2
  305. package/src/cli/mcp/toolset-names.ts +0 -2
  306. package/src/cli/mcp/toolset-selection.ts +0 -2
  307. package/src/cli/mcp/toolset.ts +0 -2
  308. package/src/cli/mcp/transports/http.ts +0 -2
  309. package/src/cli/mcp/transports/session-registry.ts +0 -2
  310. package/src/cli/mcp/transports/stdio.ts +0 -2
  311. package/src/cli/mcp/types.ts +0 -2
  312. package/src/cli/mcp/umbrella-tools.ts +0 -2
  313. package/src/cli/tools/codegraph.ts +0 -695
  314. package/src/core/adoption/helper-wrapper-plan.ts +0 -159
  315. package/src/runtime/context/codegraph-cache-boundary.ts +0 -255
  316. package/src/runtime/context/codegraph-read-provider.ts +0 -611
  317. package/src/runtime/context/codegraph-sidecar.cjs +0 -248
  318. package/src/runtime/control-plane/codegraph-cache-retention.ts +0 -164
  319. package/src/runtime/gateway/mcp/execution-tools.ts +0 -2
  320. package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +0 -2
  321. package/src/runtime/gateway/mcp/persisted-check-process.ts +0 -2
  322. package/src/runtime/gateway/mcp/process-tools.ts +0 -2
  323. package/src/runtime/gateway/mcp/router.ts +0 -2
  324. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +0 -2
  325. package/src/runtime/gateway/mcp/runtime-tools.ts +0 -2
  326. package/src/runtime/gateway/mcp/work-validation-reconciler.ts +0 -2
  327. package/src/runtime/plugins/browser-provider-registry.ts +0 -2
  328. package/src/runtime/plugins/computer-chatgpt-macos-target.ts +0 -891
@@ -76,20 +76,9 @@ const WAZA_RAW_BASE_URL = "https://raw.githubusercontent.com/tw93/Waza/main";
76
76
  const WAZA_MANAGED_SKILLS = ["think", "hunt", "check", "health"];
77
77
  const WAZA_SHARED_RULES = ["anti-patterns.md", "chinese.md", "durable-context.md", "english.md"];
78
78
  const CODEX_AUTOMATION_SKILLS = ["health", "check", "mermaid"];
79
- const CODEGRAPH_PACKAGE = "@colbymchenry/codegraph";
80
- const CODEGRAPH_GLOBAL_INSTALL_COMMAND = `bun add -g ${CODEGRAPH_PACKAGE} && forge tools configure codegraph --target codex --location global`;
81
79
  const GBRAIN_INSTALL_COMMAND = "bun install -g github:garrytan/gbrain";
82
80
  const GBRAIN_INSTALL_NOTE =
83
81
  "Install from GitHub; npm registry package gbrain is an unrelated GPU library and does not ship this CLI.";
84
- const CODEGRAPH_MCP_CONFIGURE_COMMAND = "forge tools configure codegraph --target <codex|claude|both> --location global";
85
- const CODEGRAPH_LOCAL_INSTALL_COMMAND = "bun install";
86
- const CODEGRAPH_ENSURE_COMMAND = [
87
- ".ai/harness/scripts/ensure-codegraph.sh",
88
- "scripts/ensure-codegraph.sh",
89
- ].find((relPath) => fs.existsSync(path.join(REPO_ROOT, relPath)));
90
- const CODEGRAPH_ENSURE_BASH_COMMAND = CODEGRAPH_ENSURE_COMMAND
91
- ? `bash ${CODEGRAPH_ENSURE_COMMAND}`
92
- : null;
93
82
  const WAZA_STAGING_ROOT = path.join(HOME, ".agents");
94
83
  const WAZA_STAGING_DIR = path.join(WAZA_STAGING_ROOT, "skills");
95
84
  const WAZA_STAGING_RULES_DIR = path.join(WAZA_STAGING_ROOT, "rules");
@@ -1070,97 +1059,6 @@ function detectGbrain() {
1070
1059
  };
1071
1060
  }
1072
1061
 
1073
- function detectCodeGraphMcp(host) {
1074
- const meta = HOSTS[host];
1075
- const content = readText(meta.configPath);
1076
- function claudeEntryResult(entry, source) {
1077
- if (!entry || typeof entry !== "object") return null;
1078
- if (entry.alwaysLoad === true) {
1079
- return {
1080
- status: "configured",
1081
- always_load: true,
1082
- tool_search: "always-load",
1083
- reason: `${source} contains a codegraph MCP server entry with alwaysLoad=true.`,
1084
- };
1085
- }
1086
- return {
1087
- status: "deferred",
1088
- always_load: false,
1089
- tool_search: "deferred",
1090
- reason: `${source} contains a codegraph MCP server entry, but alwaysLoad is not true; Claude Code MCP Tool Search may defer CodeGraph tools.`,
1091
- };
1092
- }
1093
- function claudeTextFallback(source, sourcePath) {
1094
- return {
1095
- status: "deferred",
1096
- always_load: false,
1097
- tool_search: "unknown",
1098
- reason: `${source} contains a codegraph MCP server entry at ${sourcePath}, but alwaysLoad could not be verified.`,
1099
- };
1100
- }
1101
-
1102
- if (!content) {
1103
- if (host === "claude") {
1104
- const claudeRootConfig = path.join(HOME, ".claude.json");
1105
- const rootJson = readJson(claudeRootConfig);
1106
- const rootEntry = claudeEntryResult(rootJson?.mcpServers?.codegraph, `Claude root config at ${claudeRootConfig}`);
1107
- if (rootEntry) return rootEntry;
1108
- const rootContent = readText(claudeRootConfig);
1109
- if (/codegraph/i.test(rootContent)) {
1110
- return claudeTextFallback("Claude root config", claudeRootConfig);
1111
- }
1112
- }
1113
-
1114
- return {
1115
- status: "missing",
1116
- reason: `No ${meta.label} config found at ${meta.configPath}.`,
1117
- };
1118
- }
1119
-
1120
- if (host === "codex") {
1121
- if (/\[mcp_servers\.codegraph\]/.test(content)) {
1122
- return {
1123
- status: "configured",
1124
- reason: "Codex config contains a codegraph MCP server entry.",
1125
- };
1126
- }
1127
-
1128
- return {
1129
- status: "missing",
1130
- reason: "Codex config does not contain a codegraph MCP server entry.",
1131
- };
1132
- }
1133
-
1134
- const settingsJson = readJson(meta.configPath);
1135
- const settingsEntry = claudeEntryResult(settingsJson?.mcpServers?.codegraph, `Claude settings at ${meta.configPath}`);
1136
- if (settingsEntry) return settingsEntry;
1137
- if (/"mcpServers"\s*:\s*{[\s\S]*"codegraph"/i.test(content)) {
1138
- return claudeTextFallback("Claude settings", meta.configPath);
1139
- }
1140
-
1141
- const claudeRootConfig = path.join(HOME, ".claude.json");
1142
- const rootJson = readJson(claudeRootConfig);
1143
- const rootEntry = claudeEntryResult(rootJson?.mcpServers?.codegraph, `Claude root config at ${claudeRootConfig}`);
1144
- if (rootEntry) return rootEntry;
1145
- const rootContent = readText(claudeRootConfig);
1146
- if (/"mcpServers"\s*:\s*{[\s\S]*"codegraph"/i.test(rootContent)) {
1147
- return claudeTextFallback("Claude root config", claudeRootConfig);
1148
- }
1149
-
1150
- return {
1151
- status: "missing",
1152
- reason: "Claude config does not contain a codegraph MCP server entry.",
1153
- };
1154
- }
1155
-
1156
- function parseCodeGraphProjectStatus(output) {
1157
- if (/Not initialized/i.test(output)) return "not-initialized";
1158
- if (/Index is up to date/i.test(output)) return "up-to-date";
1159
- if (/Pending Changes/i.test(output) || /Run "codegraph sync/i.test(output)) return "stale";
1160
- if (/CodeGraph Status/i.test(output)) return "unknown";
1161
- return "unavailable";
1162
- }
1163
-
1164
1062
  function resolvePathCommand(command) {
1165
1063
  const pathValue = process.env.PATH || "";
1166
1064
  for (const dir of pathValue.split(path.delimiter)) {
@@ -1171,207 +1069,6 @@ function resolvePathCommand(command) {
1171
1069
  return null;
1172
1070
  }
1173
1071
 
1174
- function codeGraphPackageDeclared() {
1175
- const pkg = readJson(path.join(REPO_ROOT, "package.json"));
1176
- if (!pkg || typeof pkg !== "object") return false;
1177
- return Boolean(
1178
- pkg.devDependencies?.[CODEGRAPH_PACKAGE] ||
1179
- pkg.dependencies?.[CODEGRAPH_PACKAGE] ||
1180
- pkg.optionalDependencies?.[CODEGRAPH_PACKAGE]
1181
- );
1182
- }
1183
-
1184
- function codeGraphPlatformPackageName() {
1185
- return `${CODEGRAPH_PACKAGE}-${process.platform}-${process.arch}`;
1186
- }
1187
-
1188
- function codeGraphPlatformBundleBin() {
1189
- if (process.platform === "win32") return null;
1190
- return path.join(REPO_ROOT, "node_modules", codeGraphPlatformPackageName(), "bin", "codegraph");
1191
- }
1192
-
1193
- function resolveCodeGraphBinary() {
1194
- const allowRepoLocal = process.env.AGENTIC_DEV_CODEGRAPH_ALLOW_REPO_LOCAL !== "0";
1195
- const allowGlobal = process.env.AGENTIC_DEV_CODEGRAPH_ALLOW_GLOBAL !== "0";
1196
- const localCandidates = [];
1197
- const localOverride = process.env.AGENTIC_DEV_CODEGRAPH_LOCAL_BIN;
1198
- const globalOverride = process.env.AGENTIC_DEV_CODEGRAPH_GLOBAL_BIN;
1199
-
1200
- if (localOverride) localCandidates.push(localOverride);
1201
- if (allowRepoLocal) {
1202
- localCandidates.push(codeGraphPlatformBundleBin());
1203
- localCandidates.push(path.join(REPO_ROOT, "node_modules", ".bin", "codegraph"));
1204
- }
1205
-
1206
- let localBinPath = null;
1207
- for (const candidate of localCandidates) {
1208
- if (candidate && fileIsExecutable(candidate)) {
1209
- localBinPath = candidate;
1210
- break;
1211
- }
1212
- }
1213
-
1214
- let globalBinPath = null;
1215
- if (allowGlobal) {
1216
- if (globalOverride && fileIsExecutable(globalOverride)) {
1217
- globalBinPath = globalOverride;
1218
- } else if (!globalOverride) {
1219
- globalBinPath = resolvePathCommand("codegraph");
1220
- }
1221
- }
1222
-
1223
- if (localBinPath) {
1224
- return {
1225
- source: "local",
1226
- bin_path: localBinPath,
1227
- local_bin_path: localBinPath,
1228
- global_bin_path: globalBinPath,
1229
- global_fallback_used: false,
1230
- };
1231
- }
1232
-
1233
- if (globalBinPath) {
1234
- return {
1235
- source: "global",
1236
- bin_path: globalBinPath,
1237
- local_bin_path: null,
1238
- global_bin_path: globalBinPath,
1239
- global_fallback_used: true,
1240
- };
1241
- }
1242
-
1243
- return {
1244
- source: "missing",
1245
- bin_path: null,
1246
- local_bin_path: null,
1247
- global_bin_path: null,
1248
- global_fallback_used: false,
1249
- };
1250
- }
1251
-
1252
- function codeGraphVersion(binPath) {
1253
- if (!binPath) return null;
1254
- const result = run(binPath, ["--version"], { timeoutMs: 1000 });
1255
- if (result.ok) return result.stdout.trim() || null;
1256
- if (result.timed_out) {
1257
- const retry = run(binPath, ["--version"], { timeoutMs: 1000 });
1258
- if (retry.ok) return retry.stdout.trim() || null;
1259
- }
1260
- return null;
1261
- }
1262
-
1263
- function detectCodeGraph() {
1264
- const resolution = resolveCodeGraphBinary();
1265
- const cliPresent = Boolean(resolution.bin_path);
1266
- const version = codeGraphVersion(resolution.bin_path);
1267
- const globalVersion = resolution.global_bin_path && resolution.global_bin_path !== resolution.bin_path
1268
- ? codeGraphVersion(resolution.global_bin_path)
1269
- : resolution.source === "global"
1270
- ? version
1271
- : null;
1272
- const localVersion = resolution.source === "local" ? version : null;
1273
- const packageDeclared = codeGraphPackageDeclared();
1274
- const mcpHosts = {};
1275
-
1276
- for (const host of SELECTED_HOSTS) {
1277
- mcpHosts[host] = {
1278
- label: HOSTS[host].label,
1279
- ...detectCodeGraphMcp(host),
1280
- };
1281
- }
1282
-
1283
- const selectedMcpConfigured = SELECTED_HOSTS.every((host) => mcpHosts[host]?.status === "configured");
1284
- const statusResult = cliPresent ? run(resolution.bin_path, ["status", "."], { timeoutMs: 1500 }) : null;
1285
- const statusOutput = `${statusResult?.stdout || ""}\n${statusResult?.stderr || ""}`;
1286
- const projectIndexStatus = cliPresent ? parseCodeGraphProjectStatus(statusOutput) : "unavailable";
1287
- const indexInitialized = fs.existsSync(path.join(REPO_ROOT, ".codegraph"))
1288
- || ["up-to-date", "stale", "unknown"].includes(projectIndexStatus);
1289
- const updateResult = cliPresent && checkUpdates
1290
- ? run("npm", ["view", CODEGRAPH_PACKAGE, "version", "--json"], { timeoutMs: 3000 })
1291
- : null;
1292
- const latestVersion = updateResult?.ok ? (parseJson(updateResult.stdout) || updateResult.stdout.trim().replace(/^"|"$/g, "")) : null;
1293
- const updateStatus = !checkUpdates
1294
- ? "not-checked"
1295
- : latestVersion && version
1296
- ? (String(latestVersion) === String(version) ? "up-to-date" : "update-available")
1297
- : "unknown";
1298
- const localDependencyMissing = packageDeclared && resolution.source === "global";
1299
- const status = !cliPresent
1300
- ? "missing"
1301
- : localDependencyMissing || !selectedMcpConfigured || projectIndexStatus === "not-initialized" || projectIndexStatus === "unavailable"
1302
- ? "partial"
1303
- : projectIndexStatus === "stale" || projectIndexStatus === "unknown"
1304
- ? "warning"
1305
- : "present";
1306
-
1307
- return {
1308
- name: "codegraph",
1309
- status,
1310
- reason: !cliPresent
1311
- ? "CodeGraph CLI is not installed."
1312
- : localDependencyMissing
1313
- ? "CodeGraph global fallback is present, but this repo declares a local dev dependency that is not installed."
1314
- : !selectedMcpConfigured
1315
- ? "CodeGraph CLI is present, but one or more selected host MCP configs are missing or deferred."
1316
- : projectIndexStatus === "not-initialized"
1317
- ? "CodeGraph CLI and MCP are present, but this repo has not been indexed."
1318
- : projectIndexStatus === "unavailable"
1319
- ? "CodeGraph CLI and MCP are present, but project index status could not be read."
1320
- : projectIndexStatus === "stale"
1321
- ? "CodeGraph is configured, but this repo index has pending changes."
1322
- : projectIndexStatus === "unknown"
1323
- ? "CodeGraph is configured, but this repo index status is unknown."
1324
- : "CodeGraph CLI, selected host MCP config, and project index are ready.",
1325
- package: CODEGRAPH_PACKAGE,
1326
- primary_host: "codex",
1327
- cli_present: cliPresent,
1328
- source: resolution.source,
1329
- bin_path: resolution.bin_path,
1330
- local_bin_path: resolution.local_bin_path,
1331
- global_bin_path: resolution.global_bin_path,
1332
- global_fallback_used: resolution.global_fallback_used,
1333
- version,
1334
- local_version: localVersion,
1335
- global_version: globalVersion,
1336
- dependency_declared: packageDeclared,
1337
- drift: localVersion && globalVersion && localVersion !== globalVersion
1338
- ? { local: localVersion, global: globalVersion, using: resolution.source }
1339
- : null,
1340
- latest_version: latestVersion,
1341
- update_status: updateStatus,
1342
- update_reason: !checkUpdates
1343
- ? "Update checks were skipped."
1344
- : updateResult?.timed_out
1345
- ? "CodeGraph npm version check timed out."
1346
- : latestVersion && version
1347
- ? (String(latestVersion) === String(version) ? "Local CodeGraph matches npm latest." : "npm reports a newer CodeGraph version.")
1348
- : "CodeGraph update status is unknown.",
1349
- mcp_hosts: mcpHosts,
1350
- project_index: {
1351
- status: projectIndexStatus,
1352
- initialized: indexInitialized,
1353
- path: path.join(REPO_ROOT, ".codegraph"),
1354
- command: "codegraph status .",
1355
- },
1356
- install_command: packageDeclared ? CODEGRAPH_LOCAL_INSTALL_COMMAND : CODEGRAPH_GLOBAL_INSTALL_COMMAND,
1357
- ensure_command: packageDeclared ? CODEGRAPH_ENSURE_BASH_COMMAND : null,
1358
- mcp_install_command: CODEGRAPH_MCP_CONFIGURE_COMMAND,
1359
- init_command: packageDeclared && CODEGRAPH_ENSURE_BASH_COMMAND ? `${CODEGRAPH_ENSURE_BASH_COMMAND} --init` : "codegraph init -i .",
1360
- sync_command: packageDeclared && CODEGRAPH_ENSURE_BASH_COMMAND ? `${CODEGRAPH_ENSURE_BASH_COMMAND} --sync` : "codegraph sync .",
1361
- upgrade_command: packageDeclared && CODEGRAPH_ENSURE_BASH_COMMAND ? `bun update @colbymchenry/codegraph && ${CODEGRAPH_ENSURE_BASH_COMMAND} --sync` : `bun add -g ${CODEGRAPH_PACKAGE}@latest && codegraph sync .`,
1362
- uninstall_command: "codegraph uninstall --target codex --location global --yes",
1363
- readiness: {
1364
- required_for: "codex-agent-code-navigation",
1365
- hook_policy: "do-not-block-hooks",
1366
- user_setup: "one-terminal-command-or-authorized-agent-action",
1367
- },
1368
- impact: {
1369
- code_navigation: status === "present" ? "full" : status === "warning" ? "stale-index" : "missing",
1370
- hook_correctness: "unaffected",
1371
- },
1372
- };
1373
- }
1374
-
1375
1072
  const wazaReport = detectWaza();
1376
1073
  const report = {
1377
1074
  generated_at: new Date().toISOString(),
@@ -1384,14 +1081,10 @@ const report = {
1384
1081
  waza: wazaReport,
1385
1082
  codex_automation_profile: detectCodexAutomationProfile(),
1386
1083
  gbrain: detectGbrain(),
1387
- codegraph: detectCodeGraph(),
1388
1084
  },
1389
1085
  };
1390
1086
 
1391
1087
  const strictFailures = [];
1392
- if (strictReadiness && ["missing", "partial"].includes(report.tools.codegraph.status)) {
1393
- strictFailures.push(`CodeGraph readiness is ${report.tools.codegraph.status}: ${report.tools.codegraph.reason}`);
1394
- }
1395
1088
 
1396
1089
  function printText(result) {
1397
1090
  console.log("External Tooling Report");
@@ -1496,26 +1189,7 @@ function printText(result) {
1496
1189
  console.log(` - Manual sync: ${gbrain.sync_command}`);
1497
1190
  console.log("");
1498
1191
 
1499
- const codegraph = result.tools.codegraph;
1500
- console.log(`CodeGraph [${codegraph.status}]`);
1501
- console.log(` - CLI: ${codegraph.cli_present ? `present${codegraph.version ? ` (v${codegraph.version})` : ""} via ${codegraph.source}` : "missing"}`);
1502
- if (codegraph.drift) {
1503
- console.log(` - Drift: local=${codegraph.drift.local}, global=${codegraph.drift.global}, using=${codegraph.drift.using}`);
1504
- }
1505
- for (const host of SELECTED_HOSTS) {
1506
- const entry = codegraph.mcp_hosts[host];
1507
- const suffix = entry.tool_search ? ` (${entry.tool_search})` : "";
1508
- console.log(` - ${entry.label} MCP: ${entry.status}${suffix}`);
1509
- }
1510
- console.log(` - Project index: ${codegraph.project_index.status}`);
1511
- console.log(` - Updates: ${codegraph.update_status} (${codegraph.update_reason})`);
1512
- console.log(` - Impact: code-navigation=${codegraph.impact.code_navigation}, hooks=${codegraph.impact.hook_correctness}`);
1513
- console.log(` - Install deps: ${codegraph.install_command}`);
1514
- if (codegraph.ensure_command) {
1515
- console.log(` - Ensure: ${codegraph.ensure_command}`);
1516
- }
1517
- console.log(` - Init index: ${codegraph.init_command}`);
1518
- console.log(` - Sync index: ${codegraph.sync_command}`);
1192
+
1519
1193
  }
1520
1194
 
1521
1195
  if (jsonOutput) {
@@ -670,7 +670,7 @@ check_helper_runtime_files() {
670
670
  refresh-current-status.sh prepare-handoff.sh verify-contract.sh summarize-failures.sh
671
671
  verify-sprint.sh sprint-backlog.sh check-task-sync.sh check-deploy-sql-order.sh
672
672
  check-architecture-sync.sh check-agent-tooling.sh check-context-files.sh
673
- check-brain-manifest.sh sync-brain-docs.sh check-skill-version.ts
673
+ check-brain-manifest.sh sync-brain-docs.sh
674
674
  select-agent-context-blocks.sh ensure-task-workflow.sh check-task-workflow.sh
675
675
  switch-plan.sh workflow-contract.ts
676
676
  inspect-project-state.ts migrate-workflow-docs.ts migrate-project-template.sh
@@ -1012,20 +1012,6 @@ ARCHITECTURE_INDEX_EOF
1012
1012
  },
1013
1013
  "gbrain": {
1014
1014
  "mcp": "candidate-disabled"
1015
- },
1016
- "codegraph": {
1017
- "package": "@colbymchenry/codegraph",
1018
- "primary_host": "both",
1019
- "install_mode": "target-aware-mcp",
1020
- "codex_config_path": "~/.codex/config.toml",
1021
- "claude_config_path": "~/.claude.json",
1022
- "index_dir": ".codegraph",
1023
- "readiness": "forge-bundled-backend; host-mcp-optional",
1024
- "hook_policy": "do-not-block-hooks",
1025
- "install_command": "bun add -g @colbymchenry/codegraph && forge tools configure codegraph --target codex --location global",
1026
- "project_init_command": "codegraph init -i .",
1027
- "sync_command": "codegraph sync .",
1028
- "vendoring_policy": "do-not-add-package-dependency"
1029
1015
  }
1030
1016
  },
1031
1017
  "agentic_development": {
@@ -15,7 +15,7 @@ run_source_root() {
15
15
  echo "[migrate] bun is required to run Forge from source: $root" >&2
16
16
  exit 1
17
17
  }
18
- exec bun "$root/src/cli/index.ts" adopt "$@" --no-codegraph --no-verify
18
+ exec bun "$root/src/cli/index.ts" adopt "$@" --no-verify
19
19
  }
20
20
 
21
21
  run_source_root "$SELF_SOURCE_ROOT" "$@"
@@ -24,7 +24,7 @@ if [[ -n "$SOURCE_ROOT" ]]; then
24
24
  fi
25
25
 
26
26
  if command -v forge >/dev/null 2>&1; then
27
- exec forge adopt "$@" --no-codegraph --no-verify
27
+ exec forge adopt "$@" --no-verify
28
28
  fi
29
29
 
30
30
  echo "[migrate] Missing Forge CLI; set FORGE_SOURCE_ROOT to a Forge source checkout." >&2
@@ -107,7 +107,6 @@
107
107
  "check-context-files.sh",
108
108
  "check-brain-manifest.sh",
109
109
  "sync-brain-docs.sh",
110
- "check-skill-version.ts",
111
110
  "select-agent-context-blocks.sh",
112
111
  "ensure-task-workflow.sh",
113
112
  "check-task-workflow.sh",
@@ -403,7 +402,6 @@
403
402
  "scripts/check-brain-manifest.sh",
404
403
  "scripts/check-context-files.sh",
405
404
  "scripts/check-deploy-sql-order.sh",
406
- "scripts/check-skill-version.ts",
407
405
  "scripts/check-task-sync.sh",
408
406
  "scripts/check-task-workflow.sh",
409
407
  "scripts/harness-trace-grade.sh",
package/docs/README.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  > Maintained documentation for the current Forge product and runtime. Executable behavior and [`architecture/CURRENT.md`](architecture/CURRENT.md) are authoritative for implementation facts and architecture contracts; historical notes are context, not active contracts.
4
4
 
5
- [中文文档中心](README.zh-CN.md) · [GitHub](https://github.com/moretea-labs/forge) · [Releases](https://github.com/moretea-labs/forge/releases) · [Support](../SUPPORT.md)
5
+ [Public documentation site](https://moretea-labs.github.io/forge/) · [中文文档中心](README.zh-CN.md) · [GitHub Wiki](https://github.com/moretea-labs/forge/wiki) · [GitHub](https://github.com/moretea-labs/forge) · [Releases](https://github.com/moretea-labs/forge/releases) · [Support](../SUPPORT.md)
6
+
7
+ Forge is a local-first ChatGPT MCP runtime for permission-scoped computer use, development, browser actions, and connected services. Current stable: [v1.8.1](https://github.com/moretea-labs/forge/releases/tag/v1.8.1) on npm `latest`. **The versioned repository docs are authoritative; GitHub Wiki mirrors `docs/wiki/`.**
6
8
 
7
9
  ## Start here
8
10
 
@@ -38,9 +40,10 @@ Forge is Direct-first: investigation does not create durable Work by itself, and
38
40
  - [Core Concepts](wiki/Core-Concepts.md)
39
41
 
40
42
  ### Integrate
43
+ - [Computer and plugin setup](wiki/Computer-and-Plugins.md)
41
44
  - [Plugin management](forge-plugin-management.md)
42
45
  - [Browser provider](operations/controller-browser-plugin.md)
43
- - [Desktop provider](operations/controller-desktop-plugin.md)
46
+ - [Computer / Desktop provider](wiki/Computer-and-Plugins.md)
44
47
  - [Local system assistant](operations/local-system-assistant.md)
45
48
  - [iOS development assistant](forge-ios-development-assistant.md)
46
49