@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
@@ -1,182 +0,0 @@
1
- #!/bin/bash
2
- set -euo pipefail
3
-
4
- SOURCE_ROOT="${AGENTIC_DEV_SOURCE_ROOT:-}"
5
- if [[ -z "$SOURCE_ROOT" ]]; then
6
- SOURCE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
7
- fi
8
-
9
- CODEX_SKILLS_ROOT_WAS_SET=0
10
- if [[ -z "${CODEX_SKILLS_ROOT:-}" ]]; then
11
- if [[ -z "${HOME:-}" ]]; then
12
- echo "[sync-installed] HOME is required when CODEX_SKILLS_ROOT is not set." >&2
13
- exit 1
14
- fi
15
- CODEX_SKILLS_ROOT="$HOME/.codex/skills"
16
- else
17
- CODEX_SKILLS_ROOT_WAS_SET=1
18
- fi
19
-
20
- if [[ -z "${CLAUDE_SKILLS_ROOT:-}" ]]; then
21
- if [[ "$CODEX_SKILLS_ROOT_WAS_SET" -eq 0 ]]; then
22
- CLAUDE_SKILLS_ROOT="$HOME/.claude/skills"
23
- else
24
- CLAUDE_SKILLS_ROOT=""
25
- fi
26
- fi
27
-
28
- SOURCE_ROOT="${SOURCE_ROOT%/}"
29
- CODEX_SKILLS_ROOT="${CODEX_SKILLS_ROOT%/}"
30
- if [[ -n "$CLAUDE_SKILLS_ROOT" ]]; then
31
- CLAUDE_SKILLS_ROOT="${CLAUDE_SKILLS_ROOT%/}"
32
- fi
33
- LINK_INSTALLED_COPIES="${AGENTIC_DEV_LINK_INSTALLED_COPIES:-}"
34
- if [[ -z "$LINK_INSTALLED_COPIES" && "$CODEX_SKILLS_ROOT_WAS_SET" -eq 0 ]]; then
35
- LINK_INSTALLED_COPIES=1
36
- fi
37
-
38
- if [[ ! -d "$SOURCE_ROOT" ]]; then
39
- echo "[sync-installed] Source root not found: $SOURCE_ROOT" >&2
40
- exit 1
41
- fi
42
-
43
- common_excludes=(
44
- --exclude='.git/'
45
- --exclude='_ops/'
46
- --exclude='node_modules/'
47
- --exclude='.DS_Store'
48
- --exclude='evals/benchmark.md'
49
- --exclude='.codex/'
50
- --exclude='.claude/settings.local.json'
51
- --exclude='.claude/.atomic_pending'
52
- --exclude='.claude/.session-id'
53
- --exclude='.claude/.trace.jsonl'
54
- --exclude='.claude/.session-handoff.md'
55
- --exclude='.claude/.task-state.json'
56
- --exclude='.claude/*.tmp'
57
- --exclude='.claude/*.bak'
58
- --exclude='.claude/*.bak.*'
59
- --exclude='.claude/*.backup-*'
60
- --exclude='.ai/harness/checks/latest.json'
61
- --exclude='.ai/harness/events.jsonl'
62
- --exclude='.ai/harness/archive/'
63
- --exclude='.ai/harness/failures/latest.jsonl'
64
- --exclude='.ai/harness/session/continuation.md'
65
- --exclude='.ai/harness/session/resume.md'
66
- --exclude='.ai/harness/architecture/events.jsonl'
67
- --exclude='.ai/harness/worktrees/'
68
- --exclude='.ai/harness/runs/'
69
- )
70
-
71
- require_rsync_for_copy_mode() {
72
- if command -v rsync >/dev/null 2>&1; then
73
- return 0
74
- fi
75
- echo "[sync-installed] unsupported copy-mode: rsync capability is missing." >&2
76
- echo "[sync-installed] Install rsync, or rerun with AGENTIC_DEV_LINK_INSTALLED_COPIES=1 on a filesystem that supports symlinks." >&2
77
- exit 1
78
- }
79
-
80
- create_symlink_or_explain() {
81
- local source="$1"
82
- local dest="$2"
83
- if ln -s "$source" "$dest"; then
84
- return 0
85
- fi
86
- echo "[sync-installed] unsupported link-mode: symlink capability is unavailable for $dest." >&2
87
- echo "[sync-installed] Rerun with AGENTIC_DEV_LINK_INSTALLED_COPIES=0 to use copy-mode; copy-mode requires rsync." >&2
88
- exit 1
89
- }
90
-
91
- sync_copy() {
92
- local dest="$1"
93
- require_rsync_for_copy_mode
94
- remove_managed_dest "$dest"
95
- mkdir -p "$dest"
96
- rsync -a --delete "${common_excludes[@]}" "$SOURCE_ROOT/" "$dest/"
97
- }
98
-
99
- remove_managed_dest() {
100
- local dest="$1"
101
- if [[ -L "$dest" ]]; then
102
- rm "$dest"
103
- return 0
104
- fi
105
-
106
- if [[ -e "$dest" ]]; then
107
- if [[ -d "$dest/_ops" ]]; then
108
- echo "[sync-installed] Refusing to replace $dest because it contains _ops/ local state." >&2
109
- echo "[sync-installed] Move or archive that directory first, then rerun." >&2
110
- exit 1
111
- fi
112
- rm -rf "$dest"
113
- fi
114
- }
115
-
116
- sync_claude_alias_links() {
117
- if [[ -z "$CLAUDE_SKILLS_ROOT" ]]; then
118
- return 0
119
- fi
120
-
121
- mkdir -p "$CLAUDE_SKILLS_ROOT"
122
- local alias_dest="$CLAUDE_SKILLS_ROOT/forge"
123
- remove_managed_dest "$alias_dest"
124
- create_symlink_or_explain "$SOURCE_ROOT" "$alias_dest"
125
- echo "[sync-installed] Claude skill alias: $alias_dest -> $SOURCE_ROOT"
126
- }
127
-
128
- sync_claude_alias_copies() {
129
- if [[ -z "$CLAUDE_SKILLS_ROOT" ]]; then
130
- return 0
131
- fi
132
-
133
- mkdir -p "$CLAUDE_SKILLS_ROOT"
134
- local alias_dest="$CLAUDE_SKILLS_ROOT/forge"
135
- sync_copy "$alias_dest"
136
- echo "[sync-installed] Claude skill copy: $alias_dest"
137
- }
138
-
139
- # The host skill surface is intentionally canonical-only. CLI subcommands remain
140
- # available through the single forge router instead of being installed as
141
- # separate, overlapping skills. Clean historical managed facade installs so an
142
- # upgrade does not leave stale skills discoverable.
143
- legacy_facades=(
144
- forge-architecture forge-autoplan forge-capability
145
- forge-check forge-deploy forge-goal
146
- forge-gptpro forge-gptpro-setup forge-handoff
147
- forge-init forge-migrate forge-plan forge-prd
148
- forge-repair forge-review forge-scaffold
149
- forge-ship forge-sprint forge-upgrade
150
- forge-chatgpt-bridge forge-chatgpt-browser
151
- )
152
-
153
- cleanup_legacy_facades() {
154
- local root="$1"
155
- [[ -n "$root" ]] || return 0
156
- local name
157
- for name in "${legacy_facades[@]}"; do
158
- remove_managed_dest "$root/$name"
159
- done
160
- }
161
-
162
- canonical_dest="$CODEX_SKILLS_ROOT/forge"
163
- if [[ "$LINK_INSTALLED_COPIES" == "1" ]]; then
164
- mkdir -p "$CODEX_SKILLS_ROOT"
165
- remove_managed_dest "$canonical_dest"
166
- create_symlink_or_explain "$SOURCE_ROOT" "$canonical_dest"
167
- echo "[sync-installed] canonical skill link: $canonical_dest -> $SOURCE_ROOT"
168
-
169
- cleanup_legacy_facades "$CODEX_SKILLS_ROOT"
170
- sync_claude_alias_links
171
- cleanup_legacy_facades "$CLAUDE_SKILLS_ROOT"
172
- echo "[sync-installed] OK"
173
- exit 0
174
- fi
175
-
176
- sync_copy "$canonical_dest"
177
- echo "[sync-installed] canonical skill copy: $canonical_dest"
178
-
179
- cleanup_legacy_facades "$CODEX_SKILLS_ROOT"
180
- sync_claude_alias_copies
181
- cleanup_legacy_facades "$CLAUDE_SKILLS_ROOT"
182
- echo "[sync-installed] OK"
@@ -1,167 +0,0 @@
1
- /**
2
- * `forge tools` — explicit tool lifecycle commands.
3
- *
4
- * Host adapter installation remains under `install --target`; tool readiness
5
- * mutation lives here so detector, installer, and MCP lifecycles stay separate.
6
- */
7
-
8
- import { Command } from 'commander';
9
- import {
10
- configureCodegraph,
11
- ensureCodegraph,
12
- type CodegraphConfigureLocation,
13
- type CodegraphConfigureResult,
14
- type CodegraphHostTarget,
15
- type CodegraphEnsureResult,
16
- } from '../tools/codegraph';
17
-
18
- interface CodegraphEnsureCliOptions {
19
- json?: boolean;
20
- check?: boolean;
21
- init?: boolean;
22
- sync?: boolean;
23
- installDeps?: boolean;
24
- repo?: string;
25
- }
26
-
27
- interface CodegraphConfigureCliOptions {
28
- json?: boolean;
29
- target: string;
30
- location: string;
31
- repo?: string;
32
- }
33
-
34
- export function formatCodegraphEnsure(result: CodegraphEnsureResult, asJson = false, repoRoot?: string): string {
35
- if (asJson) {
36
- return JSON.stringify(
37
- {
38
- generated_at: new Date().toISOString(),
39
- repo_root: repoRoot,
40
- changed: result.changed,
41
- read_only: result.readOnly,
42
- codegraph: result.raw,
43
- actions: result.actions,
44
- },
45
- null,
46
- 2,
47
- );
48
- }
49
-
50
- const lines: string[] = [];
51
- lines.push(`CodeGraph: ${result.status} (${result.reason})`);
52
- lines.push(`Source: ${result.resolution.source}`);
53
- if (result.resolution.version) lines.push(`Version: ${result.resolution.version}`);
54
- if (result.resolution.globalFallbackUsed) lines.push('Fallback: global binary used');
55
- if (result.actions.length > 0) {
56
- lines.push('');
57
- lines.push('Actions:');
58
- for (const action of result.actions) {
59
- lines.push(` ${action.action}: ${action.status}`);
60
- }
61
- }
62
- return lines.join('\n');
63
- }
64
-
65
- export function formatCodegraphConfigure(result: CodegraphConfigureResult, asJson = false, repoRoot?: string): string {
66
- if (asJson) {
67
- return JSON.stringify(
68
- {
69
- generated_at: new Date().toISOString(),
70
- repo_root: repoRoot,
71
- target: result.target,
72
- location: result.location,
73
- changed: result.changed,
74
- read_only: result.readOnly,
75
- codegraph: result.raw,
76
- actions: result.actions,
77
- },
78
- null,
79
- 2,
80
- );
81
- }
82
-
83
- const lines: string[] = [];
84
- lines.push(`CodeGraph configure: target=${result.target} location=${result.location}`);
85
- lines.push(`Source: ${result.resolution.source}`);
86
- if (result.resolution.version) lines.push(`Version: ${result.resolution.version}`);
87
- if (result.actions.length > 0) {
88
- lines.push('');
89
- lines.push('Actions:');
90
- for (const action of result.actions) {
91
- lines.push(` ${action.action}: ${action.status}`);
92
- }
93
- }
94
- return lines.join('\n');
95
- }
96
-
97
- function parseTarget(value: string): CodegraphHostTarget {
98
- if (value === 'codex' || value === 'claude' || value === 'both') return value;
99
- throw new Error(`invalid --target "${value}" (expected: codex, claude, both)`);
100
- }
101
-
102
- function parseLocation(value: string): CodegraphConfigureLocation {
103
- if (value === 'global' || value === 'local') return value;
104
- throw new Error(`invalid --location "${value}" (expected: global, local)`);
105
- }
106
-
107
- export function buildToolsCommand(): Command {
108
- const tools = new Command('tools').description('Manage explicit external tool readiness');
109
- const ensure = new Command('ensure').description('Ensure a named tool is ready');
110
- const configure = new Command('configure').description('Configure a named tool for a host agent');
111
-
112
- ensure
113
- .command('codegraph')
114
- .description('Check or ensure CodeGraph readiness for the current repo')
115
- .option('--json', 'Output JSON instead of human-readable text')
116
- .option('--check', 'Read-only readiness check; do not install, init, or sync')
117
- .option('--init', 'Initialize the repo index when missing')
118
- .option('--sync', 'Sync the repo index')
119
- .option('--no-install-deps', 'Do not run bun install when the local binary is missing')
120
- .option('--repo <path>', 'Repository root to check or ensure')
121
- .action((rawOpts: CodegraphEnsureCliOptions) => {
122
- const repoRoot = rawOpts.repo ?? process.cwd();
123
- const result = ensureCodegraph({
124
- repoRoot,
125
- checkOnly: rawOpts.check === true,
126
- init: rawOpts.init === true,
127
- sync: rawOpts.sync === true,
128
- installDeps: rawOpts.installDeps !== false,
129
- });
130
- console.log(formatCodegraphEnsure(result, rawOpts.json === true, repoRoot));
131
- const failed = result.actions.some((entry) => entry.status === 'failed');
132
- process.exit(failed ? 1 : 0);
133
- });
134
-
135
- configure
136
- .command('codegraph')
137
- .description('Configure CodeGraph MCP for Codex and/or Claude')
138
- .requiredOption('--target <target>', 'Target host: codex|claude|both')
139
- .requiredOption('--location <location>', 'Install location: global|local')
140
- .option('--json', 'Output JSON instead of human-readable text')
141
- .option('--repo <path>', 'Repository root used for local installs and readiness probes')
142
- .action((rawOpts: CodegraphConfigureCliOptions) => {
143
- let target: CodegraphHostTarget;
144
- let location: CodegraphConfigureLocation;
145
- try {
146
- target = parseTarget(rawOpts.target);
147
- location = parseLocation(rawOpts.location);
148
- } catch (err) {
149
- console.error((err as Error).message);
150
- process.exit(2);
151
- }
152
-
153
- const repoRoot = rawOpts.repo ?? process.cwd();
154
- const result = configureCodegraph({
155
- repoRoot,
156
- target,
157
- location,
158
- });
159
- console.log(formatCodegraphConfigure(result, rawOpts.json === true, repoRoot));
160
- const failed = result.actions.some((entry) => entry.status === 'failed');
161
- process.exit(failed ? 1 : 0);
162
- });
163
-
164
- tools.addCommand(ensure);
165
- tools.addCommand(configure);
166
- return tools;
167
- }
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/access-mode';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/tool-mapping/access-tools';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/audit';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP auth/setup transport details live in adapters/mcp. */
2
- export * from '../../../adapters/mcp/auth';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/instructions';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/legacy-context';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/tool-mapping/legacy-tool-service';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/multi-repository';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP OAuth transport authority lives in adapters/mcp. */
2
- export * from '../../../adapters/mcp/oauth';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP auth/setup transport details live in adapters/mcp. */
2
- export * from '../../../adapters/mcp/tunnels/openai-secure-tunnel';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/paths';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/policy';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/tool-mapping/post-finalize-work-attribution';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/proxy-env';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/readiness-projection';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/redaction';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/repo';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/tool-mapping/repository-tools';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/server';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP auth/setup transport details live in adapters/mcp. */
2
- export * from '../../../adapters/mcp/setup';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/tool-capability-cache';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP DTO authority lives in packages/protocols/mcp. */
2
- export * from '../../../packages/protocols/mcp/tool-contract';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/tool-mapping/tools';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/toolset-names';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/toolset-selection';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/toolset';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP HTTP transport lives in adapters/mcp. */
2
- export * from '../../../../adapters/mcp/transports/http';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP session lifecycle lives in adapters/mcp. */
2
- export * from '../../../../adapters/mcp/transports/session-registry';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP stdio transport lives in adapters/mcp. */
2
- export * from '../../../../adapters/mcp/transports/stdio';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/types';
@@ -1,2 +0,0 @@
1
- /** @deprecated Kernel V2 compatibility shim. MCP adapter owns this surface. */
2
- export * from '../../../adapters/mcp/tool-mapping/umbrella-tools';