@cleocode/adapters 2026.4.0 → 2026.4.3

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 (289) hide show
  1. package/dist/index.d.ts +9 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +724 -630
  4. package/dist/index.js.map +3 -3
  5. package/dist/providers/claude-code/adapter.d.ts +21 -1
  6. package/dist/providers/claude-code/adapter.d.ts.map +1 -1
  7. package/dist/providers/claude-code/context-monitor.d.ts +11 -0
  8. package/dist/providers/claude-code/context-monitor.d.ts.map +1 -1
  9. package/dist/providers/claude-code/hooks.d.ts +7 -0
  10. package/dist/providers/claude-code/hooks.d.ts.map +1 -1
  11. package/dist/providers/claude-code/index.d.ts +16 -1
  12. package/dist/providers/claude-code/index.d.ts.map +1 -1
  13. package/dist/providers/claude-code/install.d.ts +10 -18
  14. package/dist/providers/claude-code/install.d.ts.map +1 -1
  15. package/dist/providers/claude-code/paths.d.ts +8 -0
  16. package/dist/providers/claude-code/paths.d.ts.map +1 -1
  17. package/dist/providers/claude-code/spawn.d.ts +7 -0
  18. package/dist/providers/claude-code/spawn.d.ts.map +1 -1
  19. package/dist/providers/claude-code/statusline.d.ts +44 -0
  20. package/dist/providers/claude-code/statusline.d.ts.map +1 -1
  21. package/dist/providers/claude-code/task-sync.d.ts +8 -0
  22. package/dist/providers/claude-code/task-sync.d.ts.map +1 -1
  23. package/dist/providers/claude-code/transport.d.ts +11 -0
  24. package/dist/providers/claude-code/transport.d.ts.map +1 -1
  25. package/dist/providers/codex/adapter.d.ts +14 -1
  26. package/dist/providers/codex/adapter.d.ts.map +1 -1
  27. package/dist/providers/codex/hooks.d.ts +6 -0
  28. package/dist/providers/codex/hooks.d.ts.map +1 -1
  29. package/dist/providers/codex/index.d.ts +16 -1
  30. package/dist/providers/codex/index.d.ts.map +1 -1
  31. package/dist/providers/codex/install.d.ts +8 -17
  32. package/dist/providers/codex/install.d.ts.map +1 -1
  33. package/dist/providers/cursor/adapter.d.ts +15 -1
  34. package/dist/providers/cursor/adapter.d.ts.map +1 -1
  35. package/dist/providers/cursor/hooks.d.ts +7 -0
  36. package/dist/providers/cursor/hooks.d.ts.map +1 -1
  37. package/dist/providers/cursor/index.d.ts +16 -1
  38. package/dist/providers/cursor/index.d.ts.map +1 -1
  39. package/dist/providers/cursor/install.d.ts +10 -17
  40. package/dist/providers/cursor/install.d.ts.map +1 -1
  41. package/dist/providers/gemini-cli/adapter.d.ts +15 -1
  42. package/dist/providers/gemini-cli/adapter.d.ts.map +1 -1
  43. package/dist/providers/gemini-cli/hooks.d.ts +7 -0
  44. package/dist/providers/gemini-cli/hooks.d.ts.map +1 -1
  45. package/dist/providers/gemini-cli/index.d.ts +16 -1
  46. package/dist/providers/gemini-cli/index.d.ts.map +1 -1
  47. package/dist/providers/gemini-cli/install.d.ts +8 -17
  48. package/dist/providers/gemini-cli/install.d.ts.map +1 -1
  49. package/dist/providers/kimi/adapter.d.ts +15 -2
  50. package/dist/providers/kimi/adapter.d.ts.map +1 -1
  51. package/dist/providers/kimi/hooks.d.ts +6 -0
  52. package/dist/providers/kimi/hooks.d.ts.map +1 -1
  53. package/dist/providers/kimi/index.d.ts +16 -1
  54. package/dist/providers/kimi/index.d.ts.map +1 -1
  55. package/dist/providers/kimi/install.d.ts +7 -22
  56. package/dist/providers/kimi/install.d.ts.map +1 -1
  57. package/dist/providers/opencode/adapter.d.ts +17 -1
  58. package/dist/providers/opencode/adapter.d.ts.map +1 -1
  59. package/dist/providers/opencode/hooks.d.ts +9 -0
  60. package/dist/providers/opencode/hooks.d.ts.map +1 -1
  61. package/dist/providers/opencode/index.d.ts +16 -1
  62. package/dist/providers/opencode/index.d.ts.map +1 -1
  63. package/dist/providers/opencode/install.d.ts +8 -17
  64. package/dist/providers/opencode/install.d.ts.map +1 -1
  65. package/dist/providers/opencode/spawn.d.ts +23 -1
  66. package/dist/providers/opencode/spawn.d.ts.map +1 -1
  67. package/dist/providers/shared/transcript-reader.d.ts +15 -0
  68. package/dist/providers/shared/transcript-reader.d.ts.map +1 -1
  69. package/dist/registry.d.ts +54 -2
  70. package/dist/registry.d.ts.map +1 -1
  71. package/package.json +3 -3
  72. package/src/__tests__/claude-code-adapter.test.js +21 -30
  73. package/src/__tests__/claude-code-adapter.test.js.map +1 -1
  74. package/src/__tests__/claude-code-adapter.test.ts +21 -32
  75. package/src/__tests__/cursor-adapter.test.js +25 -29
  76. package/src/__tests__/cursor-adapter.test.js.map +1 -1
  77. package/src/__tests__/cursor-adapter.test.ts +26 -33
  78. package/src/__tests__/opencode-adapter.test.js +47 -46
  79. package/src/__tests__/opencode-adapter.test.js.map +1 -1
  80. package/src/__tests__/opencode-adapter.test.ts +51 -49
  81. package/src/index.ts +9 -1
  82. package/src/providers/claude-code/__tests__/adapter.test.js +50 -23
  83. package/src/providers/claude-code/__tests__/adapter.test.js.map +1 -1
  84. package/src/providers/claude-code/__tests__/adapter.test.ts +52 -23
  85. package/src/providers/claude-code/adapter.ts +22 -2
  86. package/src/providers/claude-code/context-monitor.ts +11 -0
  87. package/src/providers/claude-code/hooks.ts +7 -0
  88. package/src/providers/claude-code/index.ts +16 -1
  89. package/src/providers/claude-code/install.ts +15 -96
  90. package/src/providers/claude-code/manifest.json +1 -1
  91. package/src/providers/claude-code/paths.ts +8 -0
  92. package/src/providers/claude-code/spawn.ts +7 -0
  93. package/src/providers/claude-code/statusline.ts +44 -0
  94. package/src/providers/claude-code/task-sync.ts +8 -0
  95. package/src/providers/claude-code/transport.ts +11 -0
  96. package/src/providers/codex/adapter.ts +15 -2
  97. package/src/providers/codex/hooks.ts +6 -0
  98. package/src/providers/codex/index.ts +16 -1
  99. package/src/providers/codex/install.ts +17 -81
  100. package/src/providers/codex/manifest.json +1 -1
  101. package/src/providers/cursor/__tests__/adapter.test.js +37 -12
  102. package/src/providers/cursor/__tests__/adapter.test.js.map +1 -1
  103. package/src/providers/cursor/__tests__/adapter.test.ts +43 -12
  104. package/src/providers/cursor/adapter.ts +16 -2
  105. package/src/providers/cursor/hooks.ts +7 -0
  106. package/src/providers/cursor/index.ts +16 -1
  107. package/src/providers/cursor/install.ts +23 -88
  108. package/src/providers/cursor/manifest.json +1 -1
  109. package/src/providers/gemini-cli/adapter.ts +16 -2
  110. package/src/providers/gemini-cli/hooks.ts +7 -0
  111. package/src/providers/gemini-cli/index.ts +16 -1
  112. package/src/providers/gemini-cli/install.ts +17 -81
  113. package/src/providers/gemini-cli/manifest.json +1 -1
  114. package/src/providers/kimi/adapter.ts +16 -3
  115. package/src/providers/kimi/hooks.ts +6 -0
  116. package/src/providers/kimi/index.ts +16 -1
  117. package/src/providers/kimi/install.ts +16 -86
  118. package/src/providers/kimi/manifest.json +1 -1
  119. package/src/providers/opencode/__tests__/adapter.test.js +48 -35
  120. package/src/providers/opencode/__tests__/adapter.test.js.map +1 -1
  121. package/src/providers/opencode/__tests__/adapter.test.ts +49 -34
  122. package/src/providers/opencode/adapter.ts +18 -2
  123. package/src/providers/opencode/hooks.ts +9 -0
  124. package/src/providers/opencode/index.ts +16 -1
  125. package/src/providers/opencode/install.ts +17 -90
  126. package/src/providers/opencode/manifest.json +1 -1
  127. package/src/providers/opencode/spawn.ts +23 -1
  128. package/src/providers/shared/transcript-reader.ts +15 -0
  129. package/src/registry.ts +54 -2
  130. package/dist/providers/claude-code/adapter.js +0 -165
  131. package/dist/providers/claude-code/adapter.js.map +0 -1
  132. package/dist/providers/claude-code/context-monitor.js +0 -148
  133. package/dist/providers/claude-code/context-monitor.js.map +0 -1
  134. package/dist/providers/claude-code/hooks.js +0 -279
  135. package/dist/providers/claude-code/hooks.js.map +0 -1
  136. package/dist/providers/claude-code/index.js +0 -26
  137. package/dist/providers/claude-code/index.js.map +0 -1
  138. package/dist/providers/claude-code/install.js +0 -234
  139. package/dist/providers/claude-code/install.js.map +0 -1
  140. package/dist/providers/claude-code/paths.js +0 -33
  141. package/dist/providers/claude-code/paths.js.map +0 -1
  142. package/dist/providers/claude-code/spawn.js +0 -164
  143. package/dist/providers/claude-code/spawn.js.map +0 -1
  144. package/dist/providers/claude-code/statusline.js +0 -86
  145. package/dist/providers/claude-code/statusline.js.map +0 -1
  146. package/dist/providers/claude-code/task-sync.js +0 -111
  147. package/dist/providers/claude-code/task-sync.js.map +0 -1
  148. package/dist/providers/claude-code/transport.js +0 -18
  149. package/dist/providers/claude-code/transport.js.map +0 -1
  150. package/dist/providers/codex/adapter.js +0 -134
  151. package/dist/providers/codex/adapter.js.map +0 -1
  152. package/dist/providers/codex/hooks.js +0 -107
  153. package/dist/providers/codex/hooks.js.map +0 -1
  154. package/dist/providers/codex/index.js +0 -24
  155. package/dist/providers/codex/index.js.map +0 -1
  156. package/dist/providers/codex/install.js +0 -183
  157. package/dist/providers/codex/install.js.map +0 -1
  158. package/dist/providers/cursor/adapter.js +0 -138
  159. package/dist/providers/cursor/adapter.js.map +0 -1
  160. package/dist/providers/cursor/hooks.js +0 -201
  161. package/dist/providers/cursor/hooks.js.map +0 -1
  162. package/dist/providers/cursor/index.js +0 -21
  163. package/dist/providers/cursor/index.js.map +0 -1
  164. package/dist/providers/cursor/install.js +0 -238
  165. package/dist/providers/cursor/install.js.map +0 -1
  166. package/dist/providers/cursor/spawn.js +0 -59
  167. package/dist/providers/cursor/spawn.js.map +0 -1
  168. package/dist/providers/gemini-cli/adapter.js +0 -145
  169. package/dist/providers/gemini-cli/adapter.js.map +0 -1
  170. package/dist/providers/gemini-cli/hooks.js +0 -121
  171. package/dist/providers/gemini-cli/hooks.js.map +0 -1
  172. package/dist/providers/gemini-cli/index.js +0 -24
  173. package/dist/providers/gemini-cli/index.js.map +0 -1
  174. package/dist/providers/gemini-cli/install.js +0 -183
  175. package/dist/providers/gemini-cli/install.js.map +0 -1
  176. package/dist/providers/kimi/adapter.js +0 -133
  177. package/dist/providers/kimi/adapter.js.map +0 -1
  178. package/dist/providers/kimi/hooks.js +0 -73
  179. package/dist/providers/kimi/hooks.js.map +0 -1
  180. package/dist/providers/kimi/index.js +0 -24
  181. package/dist/providers/kimi/index.js.map +0 -1
  182. package/dist/providers/kimi/install.js +0 -189
  183. package/dist/providers/kimi/install.js.map +0 -1
  184. package/dist/providers/opencode/adapter.js +0 -151
  185. package/dist/providers/opencode/adapter.js.map +0 -1
  186. package/dist/providers/opencode/hooks.js +0 -197
  187. package/dist/providers/opencode/hooks.js.map +0 -1
  188. package/dist/providers/opencode/index.js +0 -22
  189. package/dist/providers/opencode/index.js.map +0 -1
  190. package/dist/providers/opencode/install.js +0 -180
  191. package/dist/providers/opencode/install.js.map +0 -1
  192. package/dist/providers/opencode/spawn.js +0 -219
  193. package/dist/providers/opencode/spawn.js.map +0 -1
  194. package/dist/providers/shared/transcript-reader.js +0 -109
  195. package/dist/providers/shared/transcript-reader.js.map +0 -1
  196. package/dist/registry.js +0 -55
  197. package/dist/registry.js.map +0 -1
  198. package/src/__tests__/claude-code-adapter.test.d.ts +0 -10
  199. package/src/__tests__/cursor-adapter.test.d.ts +0 -10
  200. package/src/__tests__/opencode-adapter.test.d.ts +0 -10
  201. package/src/index.d.ts +0 -35
  202. package/src/index.d.ts.map +0 -1
  203. package/src/index.js +0 -13
  204. package/src/index.js.map +0 -1
  205. package/src/providers/claude-code/__tests__/adapter.test.d.ts +0 -7
  206. package/src/providers/claude-code/adapter.d.ts +0 -79
  207. package/src/providers/claude-code/adapter.d.ts.map +0 -1
  208. package/src/providers/claude-code/adapter.js +0 -154
  209. package/src/providers/claude-code/adapter.js.map +0 -1
  210. package/src/providers/claude-code/context-monitor.d.ts +0 -24
  211. package/src/providers/claude-code/context-monitor.d.ts.map +0 -1
  212. package/src/providers/claude-code/context-monitor.js +0 -148
  213. package/src/providers/claude-code/context-monitor.js.map +0 -1
  214. package/src/providers/claude-code/hooks.d.ts +0 -59
  215. package/src/providers/claude-code/hooks.d.ts.map +0 -1
  216. package/src/providers/claude-code/hooks.js +0 -77
  217. package/src/providers/claude-code/hooks.js.map +0 -1
  218. package/src/providers/claude-code/index.d.ts +0 -28
  219. package/src/providers/claude-code/index.d.ts.map +0 -1
  220. package/src/providers/claude-code/index.js +0 -26
  221. package/src/providers/claude-code/index.js.map +0 -1
  222. package/src/providers/claude-code/install.d.ts +0 -75
  223. package/src/providers/claude-code/install.d.ts.map +0 -1
  224. package/src/providers/claude-code/install.js +0 -234
  225. package/src/providers/claude-code/install.js.map +0 -1
  226. package/src/providers/claude-code/paths.d.ts +0 -24
  227. package/src/providers/claude-code/paths.d.ts.map +0 -1
  228. package/src/providers/claude-code/paths.js +0 -33
  229. package/src/providers/claude-code/paths.js.map +0 -1
  230. package/src/providers/claude-code/spawn.d.ts +0 -60
  231. package/src/providers/claude-code/spawn.d.ts.map +0 -1
  232. package/src/providers/claude-code/spawn.js +0 -164
  233. package/src/providers/claude-code/spawn.js.map +0 -1
  234. package/src/providers/claude-code/statusline.d.ts +0 -23
  235. package/src/providers/claude-code/statusline.d.ts.map +0 -1
  236. package/src/providers/claude-code/statusline.js +0 -86
  237. package/src/providers/claude-code/statusline.js.map +0 -1
  238. package/src/providers/claude-code/task-sync.js +0 -122
  239. package/src/providers/claude-code/task-sync.js.map +0 -1
  240. package/src/providers/claude-code/transport.d.ts +0 -14
  241. package/src/providers/claude-code/transport.d.ts.map +0 -1
  242. package/src/providers/claude-code/transport.js +0 -18
  243. package/src/providers/claude-code/transport.js.map +0 -1
  244. package/src/providers/cursor/__tests__/adapter.test.d.ts +0 -7
  245. package/src/providers/cursor/adapter.d.ts +0 -66
  246. package/src/providers/cursor/adapter.d.ts.map +0 -1
  247. package/src/providers/cursor/adapter.js +0 -124
  248. package/src/providers/cursor/adapter.js.map +0 -1
  249. package/src/providers/cursor/hooks.d.ts +0 -48
  250. package/src/providers/cursor/hooks.d.ts.map +0 -1
  251. package/src/providers/cursor/hooks.js +0 -55
  252. package/src/providers/cursor/hooks.js.map +0 -1
  253. package/src/providers/cursor/index.d.ts +0 -19
  254. package/src/providers/cursor/index.d.ts.map +0 -1
  255. package/src/providers/cursor/index.js +0 -21
  256. package/src/providers/cursor/index.js.map +0 -1
  257. package/src/providers/cursor/install.d.ts +0 -94
  258. package/src/providers/cursor/install.d.ts.map +0 -1
  259. package/src/providers/cursor/install.js +0 -238
  260. package/src/providers/cursor/install.js.map +0 -1
  261. package/src/providers/cursor/spawn.d.ts +0 -50
  262. package/src/providers/cursor/spawn.d.ts.map +0 -1
  263. package/src/providers/cursor/spawn.js +0 -59
  264. package/src/providers/cursor/spawn.js.map +0 -1
  265. package/src/providers/opencode/__tests__/adapter.test.d.ts +0 -7
  266. package/src/providers/opencode/adapter.d.ts +0 -71
  267. package/src/providers/opencode/adapter.d.ts.map +0 -1
  268. package/src/providers/opencode/adapter.js +0 -144
  269. package/src/providers/opencode/adapter.js.map +0 -1
  270. package/src/providers/opencode/hooks.d.ts +0 -66
  271. package/src/providers/opencode/hooks.d.ts.map +0 -1
  272. package/src/providers/opencode/hooks.js +0 -89
  273. package/src/providers/opencode/hooks.js.map +0 -1
  274. package/src/providers/opencode/index.d.ts +0 -20
  275. package/src/providers/opencode/index.d.ts.map +0 -1
  276. package/src/providers/opencode/index.js +0 -22
  277. package/src/providers/opencode/index.js.map +0 -1
  278. package/src/providers/opencode/install.d.ts +0 -65
  279. package/src/providers/opencode/install.d.ts.map +0 -1
  280. package/src/providers/opencode/install.js +0 -180
  281. package/src/providers/opencode/install.js.map +0 -1
  282. package/src/providers/opencode/spawn.d.ts +0 -75
  283. package/src/providers/opencode/spawn.d.ts.map +0 -1
  284. package/src/providers/opencode/spawn.js +0 -219
  285. package/src/providers/opencode/spawn.js.map +0 -1
  286. package/src/registry.d.ts +0 -36
  287. package/src/registry.d.ts.map +0 -1
  288. package/src/registry.js +0 -55
  289. package/src/registry.js.map +0 -1
@@ -38,10 +38,16 @@ const CODEX_EVENT_MAP: Record<string, string> = {
38
38
  * the install provider), registerNativeHooks and unregisterNativeHooks
39
39
  * track registration state without performing filesystem operations.
40
40
  *
41
+ * @remarks
42
+ * Codex CLI has a minimal hook surface with only 3 canonical events.
43
+ * Registration state is tracked in-memory because Codex CLI manages
44
+ * hooks through its own configuration system at `~/.codex/`.
45
+ *
41
46
  * @task T162
42
47
  * @epic T134
43
48
  */
44
49
  export class CodexHookProvider implements AdapterHookProvider {
50
+ /** Whether hooks have been registered for the current session. */
45
51
  private registered = false;
46
52
 
47
53
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Codex CLI provider adapter.
2
+ * @packageDocumentation
3
3
  *
4
4
  * CLEO provider adapter for OpenAI Codex CLI.
5
5
  * Default export is the adapter class for dynamic loading by AdapterManager.
@@ -20,6 +20,21 @@ export default CodexAdapter;
20
20
  * Factory function for creating adapter instances.
21
21
  * Used by AdapterManager's dynamic import fallback.
22
22
  *
23
+ * @remarks
24
+ * This is the primary entry point for dynamic adapter loading.
25
+ * AdapterManager calls this function when it resolves the codex
26
+ * provider via its import-based discovery mechanism.
27
+ *
28
+ * @returns A new {@link CodexAdapter} instance ready for initialization
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { createAdapter } from '@cleocode/adapters/providers/codex';
33
+ *
34
+ * const adapter = createAdapter();
35
+ * await adapter.initialize('/path/to/project');
36
+ * ```
37
+ *
23
38
  * @task T162
24
39
  */
25
40
  export function createAdapter(): CodexAdapter {
@@ -2,30 +2,29 @@
2
2
  * Codex CLI Install Provider
3
3
  *
4
4
  * Handles CLEO installation into Codex CLI environments:
5
- * - Registers CLEO MCP server in ~/.codex/config.json
6
5
  * - Ensures AGENTS.md has CLEO @-references
7
6
  *
8
7
  * @task T162
9
8
  * @epic T134
10
9
  */
11
10
 
12
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
13
- import { homedir } from 'node:os';
11
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
14
12
  import { join } from 'node:path';
15
13
  import type { AdapterInstallProvider, InstallOptions, InstallResult } from '@cleocode/contracts';
16
14
 
17
15
  /** Lines that should appear in AGENTS.md to reference CLEO. */
18
16
  const INSTRUCTION_REFERENCES = ['@~/.cleo/templates/CLEO-INJECTION.md', '@.cleo/memory-bridge.md'];
19
17
 
20
- /** MCP server registration key used in Codex CLI config. */
21
- const MCP_SERVER_KEY = 'cleo';
22
-
23
18
  /**
24
19
  * Install provider for Codex CLI.
25
20
  *
26
21
  * Manages CLEO's integration with Codex CLI by:
27
- * 1. Registering the CLEO MCP server in ~/.codex/config.json
28
- * 2. Ensuring AGENTS.md contains @-references to CLEO instruction files
22
+ * 1. Ensuring AGENTS.md contains @-references to CLEO instruction files
23
+ *
24
+ * @remarks
25
+ * Installation is idempotent -- running install multiple times on the same
26
+ * project produces the same result. Only AGENTS.md is managed; Codex CLI
27
+ * does not have an MCP or plugin registration mechanism.
29
28
  *
30
29
  * @task T162
31
30
  * @epic T134
@@ -34,26 +33,17 @@ export class CodexInstallProvider implements AdapterInstallProvider {
34
33
  /**
35
34
  * Install CLEO into a Codex CLI environment.
36
35
  *
37
- * @param options - Installation options including project directory and MCP server path
36
+ * @param options - Installation options including project directory
38
37
  * @returns Result describing what was installed
39
38
  * @task T162
40
39
  */
41
40
  async install(options: InstallOptions): Promise<InstallResult> {
42
- const { projectDir, mcpServerPath } = options;
41
+ const { projectDir } = options;
43
42
  const installedAt = new Date().toISOString();
44
43
  let instructionFileUpdated = false;
45
- let mcpRegistered = false;
46
44
  const details: Record<string, unknown> = {};
47
45
 
48
- // Step 1: Register MCP server in ~/.codex/config.json
49
- if (mcpServerPath) {
50
- mcpRegistered = this.registerMcpServer(mcpServerPath);
51
- if (mcpRegistered) {
52
- details.mcpConfigPath = join(homedir(), '.codex', 'config.json');
53
- }
54
- }
55
-
56
- // Step 2: Ensure AGENTS.md has @-references
46
+ // Step 1: Ensure AGENTS.md has @-references
57
47
  instructionFileUpdated = this.updateInstructionFile(projectDir);
58
48
  if (instructionFileUpdated) {
59
49
  details.instructionFile = join(projectDir, 'AGENTS.md');
@@ -63,7 +53,7 @@ export class CodexInstallProvider implements AdapterInstallProvider {
63
53
  success: true,
64
54
  installedAt,
65
55
  instructionFileUpdated,
66
- mcpRegistered,
56
+ mcpRegistered: false,
67
57
  details,
68
58
  };
69
59
  }
@@ -71,41 +61,25 @@ export class CodexInstallProvider implements AdapterInstallProvider {
71
61
  /**
72
62
  * Uninstall CLEO from the Codex CLI environment.
73
63
  *
74
- * Removes the MCP server registration from ~/.codex/config.json.
75
64
  * Does not remove AGENTS.md references (they are harmless if CLEO is not present).
76
65
  * @task T162
77
66
  */
78
67
  async uninstall(): Promise<void> {
79
- const configPath = join(homedir(), '.codex', 'config.json');
80
- if (existsSync(configPath)) {
81
- try {
82
- const raw = readFileSync(configPath, 'utf-8');
83
- const config = JSON.parse(raw) as Record<string, unknown>;
84
- const mcpServers = config.mcpServers as Record<string, unknown> | undefined;
85
- if (mcpServers && MCP_SERVER_KEY in mcpServers) {
86
- delete mcpServers[MCP_SERVER_KEY];
87
- writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
88
- }
89
- } catch {
90
- // Ignore errors during uninstall
91
- }
92
- }
68
+ // No-op: no MCP registration to remove
93
69
  }
94
70
 
95
71
  /**
96
72
  * Check whether CLEO is installed in the Codex CLI environment.
97
73
  *
98
- * Checks for MCP server registered in ~/.codex/config.json.
99
- * Returns true if the CLEO MCP server entry is found.
74
+ * Checks for CLEO references in AGENTS.md.
100
75
  * @task T162
101
76
  */
102
77
  async isInstalled(): Promise<boolean> {
103
- const configPath = join(homedir(), '.codex', 'config.json');
104
- if (existsSync(configPath)) {
78
+ const agentsMdPath = join(process.cwd(), 'AGENTS.md');
79
+ if (existsSync(agentsMdPath)) {
105
80
  try {
106
- const config = JSON.parse(readFileSync(configPath, 'utf-8'));
107
- const mcpServers = config.mcpServers as Record<string, unknown> | undefined;
108
- if (mcpServers && MCP_SERVER_KEY in mcpServers) {
81
+ const content = readFileSync(agentsMdPath, 'utf-8');
82
+ if (INSTRUCTION_REFERENCES.some((ref) => content.includes(ref))) {
109
83
  return true;
110
84
  }
111
85
  } catch {
@@ -128,44 +102,6 @@ export class CodexInstallProvider implements AdapterInstallProvider {
128
102
  this.updateInstructionFile(projectDir);
129
103
  }
130
104
 
131
- /**
132
- * Register the CLEO MCP server in ~/.codex/config.json.
133
- *
134
- * Codex CLI stores its MCP server configuration in ~/.codex/config.json
135
- * under the mcpServers key.
136
- *
137
- * @param mcpServerPath - Absolute path to the MCP server entry point
138
- * @returns true if registration was performed or updated
139
- */
140
- private registerMcpServer(mcpServerPath: string): boolean {
141
- const codexDir = join(homedir(), '.codex');
142
- const configPath = join(codexDir, 'config.json');
143
- let config: Record<string, unknown> = {};
144
-
145
- mkdirSync(codexDir, { recursive: true });
146
-
147
- if (existsSync(configPath)) {
148
- try {
149
- config = JSON.parse(readFileSync(configPath, 'utf-8'));
150
- } catch {
151
- // Start fresh on parse error
152
- }
153
- }
154
-
155
- if (!config.mcpServers || typeof config.mcpServers !== 'object') {
156
- config.mcpServers = {};
157
- }
158
-
159
- const mcpServers = config.mcpServers as Record<string, unknown>;
160
- mcpServers[MCP_SERVER_KEY] = {
161
- command: 'node',
162
- args: [mcpServerPath],
163
- };
164
-
165
- writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
166
- return true;
167
- }
168
-
169
105
  /**
170
106
  * Update AGENTS.md with CLEO @-references.
171
107
  *
@@ -14,7 +14,7 @@
14
14
  ],
15
15
  "supportsSpawn": false,
16
16
  "supportsInstall": true,
17
- "supportsMcp": true,
17
+ "supportsMcp": false,
18
18
  "supportsInstructionFiles": false,
19
19
  "supportsContextMonitor": false,
20
20
  "supportsStatusline": false,
@@ -52,11 +52,21 @@ describe('CursorAdapter', () => {
52
52
  });
53
53
  });
54
54
  describe('capabilities', () => {
55
- it('does not support hooks', () => {
56
- expect(adapter.capabilities.supportsHooks).toBe(false);
55
+ it('supports hooks', () => {
56
+ expect(adapter.capabilities.supportsHooks).toBe(true);
57
57
  });
58
- it('has no supported hook events', () => {
59
- expect(adapter.capabilities.supportedHookEvents).toHaveLength(0);
58
+ it('declares 10 supported hook events', () => {
59
+ expect(adapter.capabilities.supportedHookEvents).toHaveLength(10);
60
+ expect(adapter.capabilities.supportedHookEvents).toContain('SessionStart');
61
+ expect(adapter.capabilities.supportedHookEvents).toContain('SessionEnd');
62
+ expect(adapter.capabilities.supportedHookEvents).toContain('PromptSubmit');
63
+ expect(adapter.capabilities.supportedHookEvents).toContain('ResponseComplete');
64
+ expect(adapter.capabilities.supportedHookEvents).toContain('PreToolUse');
65
+ expect(adapter.capabilities.supportedHookEvents).toContain('PostToolUse');
66
+ expect(adapter.capabilities.supportedHookEvents).toContain('PostToolUseFailure');
67
+ expect(adapter.capabilities.supportedHookEvents).toContain('SubagentStart');
68
+ expect(adapter.capabilities.supportedHookEvents).toContain('SubagentStop');
69
+ expect(adapter.capabilities.supportedHookEvents).toContain('PreCompact');
60
70
  });
61
71
  it('does not support spawn', () => {
62
72
  expect(adapter.capabilities.supportsSpawn).toBe(false);
@@ -64,8 +74,8 @@ describe('CursorAdapter', () => {
64
74
  it('supports install', () => {
65
75
  expect(adapter.capabilities.supportsInstall).toBe(true);
66
76
  });
67
- it('supports MCP', () => {
68
- expect(adapter.capabilities.supportsMcp).toBe(true);
77
+ it('does not support MCP (removed)', () => {
78
+ expect(adapter.capabilities.supportsMcp).toBe(false);
69
79
  });
70
80
  it('supports instruction files with MDC pattern', () => {
71
81
  expect(adapter.capabilities.supportsInstructionFiles).toBe(true);
@@ -130,9 +140,25 @@ describe('CursorHookProvider', () => {
130
140
  hooks = new CursorHookProvider();
131
141
  });
132
142
  describe('mapProviderEvent', () => {
133
- it('returns null for any event (no hook support)', () => {
134
- expect(hooks.mapProviderEvent('session.start')).toBeNull();
135
- expect(hooks.mapProviderEvent('tool.complete')).toBeNull();
143
+ it('maps sessionStart to SessionStart', () => {
144
+ expect(hooks.mapProviderEvent('sessionStart')).toBe('SessionStart');
145
+ });
146
+ it('maps sessionEnd to SessionEnd', () => {
147
+ expect(hooks.mapProviderEvent('sessionEnd')).toBe('SessionEnd');
148
+ });
149
+ it('maps beforeSubmitPrompt to PromptSubmit', () => {
150
+ expect(hooks.mapProviderEvent('beforeSubmitPrompt')).toBe('PromptSubmit');
151
+ });
152
+ it('maps stop to ResponseComplete', () => {
153
+ expect(hooks.mapProviderEvent('stop')).toBe('ResponseComplete');
154
+ });
155
+ it('maps preToolUse to PreToolUse', () => {
156
+ expect(hooks.mapProviderEvent('preToolUse')).toBe('PreToolUse');
157
+ });
158
+ it('maps postToolUse to PostToolUse', () => {
159
+ expect(hooks.mapProviderEvent('postToolUse')).toBe('PostToolUse');
160
+ });
161
+ it('returns null for unknown events', () => {
136
162
  expect(hooks.mapProviderEvent('any-event')).toBeNull();
137
163
  expect(hooks.mapProviderEvent('')).toBeNull();
138
164
  });
@@ -204,12 +230,11 @@ describe('CursorInstallProvider', () => {
204
230
  expect(typeof result.instructionFileUpdated).toBe('boolean');
205
231
  expect(typeof result.mcpRegistered).toBe('boolean');
206
232
  });
207
- it('registers MCP when mcpServerPath provided', async () => {
233
+ it('does not register MCP when only projectDir is provided', async () => {
208
234
  const result = await installProvider.install({
209
235
  projectDir: '/tmp/test-project',
210
- mcpServerPath: '/path/to/mcp-server.js',
211
236
  });
212
- expect(result.mcpRegistered).toBe(true);
237
+ expect(result.mcpRegistered).toBe(false);
213
238
  });
214
239
  it('includes instruction files in details', async () => {
215
240
  const result = await installProvider.install({
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.test.js","sourceRoot":"","sources":["adapter.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.test.js","sourceRoot":"","sources":["adapter.test.ts"],"names":[],"mappings":"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"}
@@ -59,12 +59,22 @@ describe('CursorAdapter', () => {
59
59
  });
60
60
 
61
61
  describe('capabilities', () => {
62
- it('does not support hooks', () => {
63
- expect(adapter.capabilities.supportsHooks).toBe(false);
62
+ it('supports hooks', () => {
63
+ expect(adapter.capabilities.supportsHooks).toBe(true);
64
64
  });
65
65
 
66
- it('has no supported hook events', () => {
67
- expect(adapter.capabilities.supportedHookEvents).toHaveLength(0);
66
+ it('declares 10 supported hook events', () => {
67
+ expect(adapter.capabilities.supportedHookEvents).toHaveLength(10);
68
+ expect(adapter.capabilities.supportedHookEvents).toContain('SessionStart');
69
+ expect(adapter.capabilities.supportedHookEvents).toContain('SessionEnd');
70
+ expect(adapter.capabilities.supportedHookEvents).toContain('PromptSubmit');
71
+ expect(adapter.capabilities.supportedHookEvents).toContain('ResponseComplete');
72
+ expect(adapter.capabilities.supportedHookEvents).toContain('PreToolUse');
73
+ expect(adapter.capabilities.supportedHookEvents).toContain('PostToolUse');
74
+ expect(adapter.capabilities.supportedHookEvents).toContain('PostToolUseFailure');
75
+ expect(adapter.capabilities.supportedHookEvents).toContain('SubagentStart');
76
+ expect(adapter.capabilities.supportedHookEvents).toContain('SubagentStop');
77
+ expect(adapter.capabilities.supportedHookEvents).toContain('PreCompact');
68
78
  });
69
79
 
70
80
  it('does not support spawn', () => {
@@ -75,8 +85,8 @@ describe('CursorAdapter', () => {
75
85
  expect(adapter.capabilities.supportsInstall).toBe(true);
76
86
  });
77
87
 
78
- it('supports MCP', () => {
79
- expect(adapter.capabilities.supportsMcp).toBe(true);
88
+ it('does not support MCP (removed)', () => {
89
+ expect(adapter.capabilities.supportsMcp).toBe(false);
80
90
  });
81
91
 
82
92
  it('supports instruction files with MDC pattern', () => {
@@ -154,9 +164,31 @@ describe('CursorHookProvider', () => {
154
164
  });
155
165
 
156
166
  describe('mapProviderEvent', () => {
157
- it('returns null for any event (no hook support)', () => {
158
- expect(hooks.mapProviderEvent('session.start')).toBeNull();
159
- expect(hooks.mapProviderEvent('tool.complete')).toBeNull();
167
+ it('maps sessionStart to SessionStart', () => {
168
+ expect(hooks.mapProviderEvent('sessionStart')).toBe('SessionStart');
169
+ });
170
+
171
+ it('maps sessionEnd to SessionEnd', () => {
172
+ expect(hooks.mapProviderEvent('sessionEnd')).toBe('SessionEnd');
173
+ });
174
+
175
+ it('maps beforeSubmitPrompt to PromptSubmit', () => {
176
+ expect(hooks.mapProviderEvent('beforeSubmitPrompt')).toBe('PromptSubmit');
177
+ });
178
+
179
+ it('maps stop to ResponseComplete', () => {
180
+ expect(hooks.mapProviderEvent('stop')).toBe('ResponseComplete');
181
+ });
182
+
183
+ it('maps preToolUse to PreToolUse', () => {
184
+ expect(hooks.mapProviderEvent('preToolUse')).toBe('PreToolUse');
185
+ });
186
+
187
+ it('maps postToolUse to PostToolUse', () => {
188
+ expect(hooks.mapProviderEvent('postToolUse')).toBe('PostToolUse');
189
+ });
190
+
191
+ it('returns null for unknown events', () => {
160
192
  expect(hooks.mapProviderEvent('any-event')).toBeNull();
161
193
  expect(hooks.mapProviderEvent('')).toBeNull();
162
194
  });
@@ -243,12 +275,11 @@ describe('CursorInstallProvider', () => {
243
275
  expect(typeof result.mcpRegistered).toBe('boolean');
244
276
  });
245
277
 
246
- it('registers MCP when mcpServerPath provided', async () => {
278
+ it('does not register MCP when only projectDir is provided', async () => {
247
279
  const result = await installProvider.install({
248
280
  projectDir: '/tmp/test-project',
249
- mcpServerPath: '/path/to/mcp-server.js',
250
281
  });
251
- expect(result.mcpRegistered).toBe(true);
282
+ expect(result.mcpRegistered).toBe(false);
252
283
  });
253
284
 
254
285
  it('includes instruction files in details', async () => {
@@ -23,15 +23,25 @@ import { CursorInstallProvider } from './install.js';
23
23
  * CLEO provider adapter for Cursor AI code editor.
24
24
  *
25
25
  * Bridges CLEO's adapter system with Cursor's capabilities:
26
- * - Install: Registers MCP server in .cursor/mcp.json and manages rule files
26
+ * - Install: Manages .cursorrules and .cursor/rules/cleo.mdc rule files
27
27
  * - Hooks: Stub provider (Cursor has no lifecycle event system)
28
28
  * - Spawn: Not supported (Cursor has no CLI for subagent spawning)
29
+ *
30
+ * @remarks
31
+ * Cursor is a GUI-based editor, so many CLI-oriented capabilities
32
+ * (spawn, transport, task sync, context monitor) are unsupported.
33
+ * Integration is primarily through instruction rule files placed in
34
+ * `.cursor/rules/` (modern MDC format) and `.cursorrules` (legacy).
29
35
  */
30
36
  export class CursorAdapter implements CLEOProviderAdapter {
37
+ /** Unique provider identifier. */
31
38
  readonly id = 'cursor';
39
+ /** Human-readable provider name. */
32
40
  readonly name = 'Cursor';
41
+ /** Adapter version string. */
33
42
  readonly version = '1.0.0';
34
43
 
44
+ /** Declared capabilities for this provider. */
35
45
  capabilities: AdapterCapabilities = {
36
46
  supportsHooks: true,
37
47
  // 10/16 canonical events — derived from getProviderHookProfile('cursor') in CAAMP 1.9.1.
@@ -51,7 +61,7 @@ export class CursorAdapter implements CLEOProviderAdapter {
51
61
  ],
52
62
  supportsSpawn: false,
53
63
  supportsInstall: true,
54
- supportsMcp: true,
64
+ supportsMcp: false,
55
65
  supportsInstructionFiles: true,
56
66
  instructionFilePattern: '.cursor/rules/*.mdc',
57
67
  supportsContextMonitor: false,
@@ -61,10 +71,14 @@ export class CursorAdapter implements CLEOProviderAdapter {
61
71
  supportsTaskSync: false,
62
72
  };
63
73
 
74
+ /** Hook provider for CAAMP event mapping. */
64
75
  hooks: CursorHookProvider;
76
+ /** Install provider for managing rule files. */
65
77
  install: CursorInstallProvider;
66
78
 
79
+ /** Project directory this adapter was initialized with, or null. */
67
80
  private projectDir: string | null = null;
81
+ /** Whether {@link initialize} has been called. */
68
82
  private initialized = false;
69
83
 
70
84
  constructor() {
@@ -75,10 +75,17 @@ const CURSOR_EVENT_MAP: Record<string, string> = {
75
75
  * provider), `registerNativeHooks` and `unregisterNativeHooks` track registration
76
76
  * state without performing filesystem operations.
77
77
  *
78
+ * @remarks
79
+ * This provider was originally a no-op stub. It now provides full event
80
+ * mapping for all 10 canonical events supported by Cursor, plus CAAMP
81
+ * normalizer integration via async accessors. Registration state is
82
+ * tracked in-memory because Cursor manages hooks through its own config.
83
+ *
78
84
  * @task T165
79
85
  * @epic T134
80
86
  */
81
87
  export class CursorHookProvider implements AdapterHookProvider {
88
+ /** Whether hooks have been registered for the current session. */
82
89
  private registered = false;
83
90
 
84
91
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Cursor provider adapter.
2
+ * @packageDocumentation
3
3
  *
4
4
  * CLEO provider adapter for Cursor AI code editor.
5
5
  * Default export is the adapter class for dynamic loading by AdapterManager.
@@ -18,6 +18,21 @@ export default CursorAdapter;
18
18
  /**
19
19
  * Factory function for creating adapter instances.
20
20
  * Used by AdapterManager's dynamic import fallback.
21
+ *
22
+ * @remarks
23
+ * This is the primary entry point for dynamic adapter loading.
24
+ * AdapterManager calls this function when it resolves the cursor
25
+ * provider via its import-based discovery mechanism.
26
+ *
27
+ * @returns A new {@link CursorAdapter} instance ready for initialization
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * import { createAdapter } from '@cleocode/adapters/providers/cursor';
32
+ *
33
+ * const adapter = createAdapter();
34
+ * await adapter.initialize('/path/to/project');
35
+ * ```
21
36
  */
22
37
  export function createAdapter(): CursorAdapter {
23
38
  return new CursorAdapter();