@adhdev/daemon-core 0.6.58 → 0.6.60

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 (245) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +87 -89
  3. package/dist/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/detection/ide-detector.ts +1 -1
  6. package/src/providers/provider-loader.ts +3 -6
  7. package/providers/_builtin/.github/workflows/generate-registry.yml +0 -76
  8. package/providers/_builtin/COMPATIBILITY.md +0 -217
  9. package/providers/_builtin/CONTRIBUTING.md +0 -200
  10. package/providers/_builtin/README.md +0 -119
  11. package/providers/_builtin/_helpers/index.js +0 -188
  12. package/providers/_builtin/acp/agentpool/provider.json +0 -54
  13. package/providers/_builtin/acp/amp/provider.json +0 -52
  14. package/providers/_builtin/acp/auggie/provider.json +0 -57
  15. package/providers/_builtin/acp/autodev/provider.json +0 -54
  16. package/providers/_builtin/acp/autohand/provider.json +0 -52
  17. package/providers/_builtin/acp/blackbox-ai/provider.json +0 -54
  18. package/providers/_builtin/acp/claude-agent/provider.json +0 -57
  19. package/providers/_builtin/acp/cline-acp/provider.json +0 -54
  20. package/providers/_builtin/acp/codebuddy/provider.json +0 -54
  21. package/providers/_builtin/acp/codex-cli/provider.json +0 -57
  22. package/providers/_builtin/acp/corust-agent/provider.json +0 -52
  23. package/providers/_builtin/acp/crow-cli/provider.json +0 -54
  24. package/providers/_builtin/acp/cursor-acp/provider.json +0 -54
  25. package/providers/_builtin/acp/deepagents/provider.json +0 -52
  26. package/providers/_builtin/acp/dimcode/provider.json +0 -54
  27. package/providers/_builtin/acp/docker-cagent/provider.json +0 -57
  28. package/providers/_builtin/acp/factory-droid/provider.json +0 -60
  29. package/providers/_builtin/acp/fast-agent/provider.json +0 -52
  30. package/providers/_builtin/acp/gemini-cli/provider.json +0 -114
  31. package/providers/_builtin/acp/github-copilot/provider.json +0 -54
  32. package/providers/_builtin/acp/goose/provider.json +0 -57
  33. package/providers/_builtin/acp/junie/provider.json +0 -52
  34. package/providers/_builtin/acp/kilo/provider.json +0 -54
  35. package/providers/_builtin/acp/kimi-cli/provider.json +0 -57
  36. package/providers/_builtin/acp/minion-code/provider.json +0 -52
  37. package/providers/_builtin/acp/mistral-vibe/provider.json +0 -57
  38. package/providers/_builtin/acp/nova/provider.json +0 -54
  39. package/providers/_builtin/acp/openclaw/provider.json +0 -54
  40. package/providers/_builtin/acp/opencode/provider.json +0 -52
  41. package/providers/_builtin/acp/openhands/provider.json +0 -54
  42. package/providers/_builtin/acp/pi-acp/provider.json +0 -52
  43. package/providers/_builtin/acp/qoder/provider.json +0 -54
  44. package/providers/_builtin/acp/qwen-code/provider.json +0 -60
  45. package/providers/_builtin/acp/stakpak/provider.json +0 -54
  46. package/providers/_builtin/acp/vtcode/provider.json +0 -54
  47. package/providers/_builtin/cli/aider-cli/provider.json +0 -37
  48. package/providers/_builtin/cli/aider-cli/scripts/1.0/detect_status.js +0 -20
  49. package/providers/_builtin/cli/aider-cli/scripts/1.0/parse_approval.js +0 -10
  50. package/providers/_builtin/cli/aider-cli/scripts/1.0/parse_output.js +0 -97
  51. package/providers/_builtin/cli/aider-cli/scripts/1.0/scripts.js +0 -7
  52. package/providers/_builtin/cli/claude-cli/provider.json +0 -121
  53. package/providers/_builtin/cli/claude-cli/scripts/1.0/detect_status.js +0 -83
  54. package/providers/_builtin/cli/claude-cli/scripts/1.0/parse_approval.js +0 -97
  55. package/providers/_builtin/cli/claude-cli/scripts/1.0/parse_output.js +0 -417
  56. package/providers/_builtin/cli/claude-cli/scripts/1.0/scripts.js +0 -42
  57. package/providers/_builtin/cli/codex-cli/provider.json +0 -90
  58. package/providers/_builtin/cli/codex-cli/scripts/1.0/detect_status.js +0 -54
  59. package/providers/_builtin/cli/codex-cli/scripts/1.0/parse_approval.js +0 -91
  60. package/providers/_builtin/cli/codex-cli/scripts/1.0/parse_output.js +0 -522
  61. package/providers/_builtin/cli/codex-cli/scripts/1.0/scripts.js +0 -11
  62. package/providers/_builtin/cli/cursor-cli/provider.json +0 -37
  63. package/providers/_builtin/cli/cursor-cli/scripts/1.0/detect_status.js +0 -19
  64. package/providers/_builtin/cli/cursor-cli/scripts/1.0/parse_approval.js +0 -10
  65. package/providers/_builtin/cli/cursor-cli/scripts/1.0/parse_output.js +0 -48
  66. package/providers/_builtin/cli/cursor-cli/scripts/1.0/scripts.js +0 -7
  67. package/providers/_builtin/cli/gemini-cli/provider.json +0 -109
  68. package/providers/_builtin/cli/gemini-cli/scripts/1.0/detect_status.js +0 -26
  69. package/providers/_builtin/cli/gemini-cli/scripts/1.0/parse_approval.js +0 -22
  70. package/providers/_builtin/cli/gemini-cli/scripts/1.0/parse_output.js +0 -71
  71. package/providers/_builtin/cli/gemini-cli/scripts/1.0/scripts.js +0 -12
  72. package/providers/_builtin/cli/github-copilot-cli/provider.json +0 -37
  73. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/detect_status.js +0 -19
  74. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/parse_approval.js +0 -9
  75. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/parse_output.js +0 -48
  76. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/scripts.js +0 -7
  77. package/providers/_builtin/cli/goose-cli/provider.json +0 -37
  78. package/providers/_builtin/cli/goose-cli/scripts/1.0/detect_status.js +0 -20
  79. package/providers/_builtin/cli/goose-cli/scripts/1.0/parse_approval.js +0 -10
  80. package/providers/_builtin/cli/goose-cli/scripts/1.0/parse_output.js +0 -48
  81. package/providers/_builtin/cli/goose-cli/scripts/1.0/scripts.js +0 -7
  82. package/providers/_builtin/cli/opencode-cli/provider.json +0 -37
  83. package/providers/_builtin/cli/opencode-cli/scripts/1.0/detect_status.js +0 -15
  84. package/providers/_builtin/cli/opencode-cli/scripts/1.0/parse_approval.js +0 -9
  85. package/providers/_builtin/cli/opencode-cli/scripts/1.0/parse_output.js +0 -48
  86. package/providers/_builtin/cli/opencode-cli/scripts/1.0/scripts.js +0 -7
  87. package/providers/_builtin/docs/CDP_SELECTOR_GUIDE.md +0 -370
  88. package/providers/_builtin/docs/PROVIDER_GUIDE.md +0 -916
  89. package/providers/_builtin/extension/cline/provider.json +0 -37
  90. package/providers/_builtin/extension/cline/scripts/1.0/focus_editor.js +0 -48
  91. package/providers/_builtin/extension/cline/scripts/1.0/list_chats.js +0 -100
  92. package/providers/_builtin/extension/cline/scripts/1.0/list_models.js +0 -43
  93. package/providers/_builtin/extension/cline/scripts/1.0/list_modes.js +0 -35
  94. package/providers/_builtin/extension/cline/scripts/1.0/new_session.js +0 -85
  95. package/providers/_builtin/extension/cline/scripts/1.0/open_panel.js +0 -25
  96. package/providers/_builtin/extension/cline/scripts/1.0/read_chat.js +0 -270
  97. package/providers/_builtin/extension/cline/scripts/1.0/resolve_action.js +0 -83
  98. package/providers/_builtin/extension/cline/scripts/1.0/scripts.js +0 -82
  99. package/providers/_builtin/extension/cline/scripts/1.0/send_message.js +0 -95
  100. package/providers/_builtin/extension/cline/scripts/1.0/set_mode.js +0 -36
  101. package/providers/_builtin/extension/cline/scripts/1.0/set_model.js +0 -36
  102. package/providers/_builtin/extension/cline/scripts/1.0/switch_session.js +0 -206
  103. package/providers/_builtin/extension/codex/provider.json +0 -38
  104. package/providers/_builtin/extension/codex/scripts/1.0/click_conversation_webview.js +0 -24
  105. package/providers/_builtin/extension/codex/scripts/1.0/explore_chat_webview.js +0 -110
  106. package/providers/_builtin/extension/codex/scripts/1.0/explore_controls_webview.js +0 -75
  107. package/providers/_builtin/extension/codex/scripts/1.0/explore_dom.js +0 -58
  108. package/providers/_builtin/extension/codex/scripts/1.0/explore_dropdown_webview.js +0 -64
  109. package/providers/_builtin/extension/codex/scripts/1.0/inspect_code_webview.js +0 -55
  110. package/providers/_builtin/extension/codex/scripts/1.0/list_models.js +0 -63
  111. package/providers/_builtin/extension/codex/scripts/1.0/list_modes.js +0 -140
  112. package/providers/_builtin/extension/codex/scripts/1.0/message_structure_webview.js +0 -79
  113. package/providers/_builtin/extension/codex/scripts/1.0/new_session.js +0 -26
  114. package/providers/_builtin/extension/codex/scripts/1.0/read_chat.js +0 -516
  115. package/providers/_builtin/extension/codex/scripts/1.0/resolve_action.js +0 -82
  116. package/providers/_builtin/extension/codex/scripts/1.0/send_message.js +0 -42
  117. package/providers/_builtin/extension/codex/scripts/1.0/set_mode.js +0 -165
  118. package/providers/_builtin/extension/codex/scripts/1.0/set_model.js +0 -86
  119. package/providers/_builtin/extension/roo-code/provider.json +0 -37
  120. package/providers/_builtin/extension/roo-code/scripts/1.0/scripts.js +0 -82
  121. package/providers/_builtin/ide/antigravity/provider.json +0 -88
  122. package/providers/_builtin/ide/antigravity/scripts/1.0/focus_editor.js +0 -20
  123. package/providers/_builtin/ide/antigravity/scripts/1.0/list_chats.js +0 -137
  124. package/providers/_builtin/ide/antigravity/scripts/1.0/list_models.js +0 -61
  125. package/providers/_builtin/ide/antigravity/scripts/1.0/list_modes.js +0 -72
  126. package/providers/_builtin/ide/antigravity/scripts/1.0/new_session.js +0 -75
  127. package/providers/_builtin/ide/antigravity/scripts/1.0/read_chat.js +0 -352
  128. package/providers/_builtin/ide/antigravity/scripts/1.0/resolve_action.js +0 -63
  129. package/providers/_builtin/ide/antigravity/scripts/1.0/scripts.js +0 -67
  130. package/providers/_builtin/ide/antigravity/scripts/1.0/send_message.js +0 -56
  131. package/providers/_builtin/ide/antigravity/scripts/1.0/set_mode.js +0 -67
  132. package/providers/_builtin/ide/antigravity/scripts/1.0/set_model.js +0 -72
  133. package/providers/_builtin/ide/antigravity/scripts/1.0/switch_session.js +0 -114
  134. package/providers/_builtin/ide/cursor/provider.json +0 -70
  135. package/providers/_builtin/ide/cursor/scripts/1.0/dismiss_notification.js +0 -30
  136. package/providers/_builtin/ide/cursor/scripts/1.0/focus_editor.js +0 -13
  137. package/providers/_builtin/ide/cursor/scripts/1.0/list_models.js +0 -78
  138. package/providers/_builtin/ide/cursor/scripts/1.0/list_modes.js +0 -40
  139. package/providers/_builtin/ide/cursor/scripts/1.0/list_notifications.js +0 -23
  140. package/providers/_builtin/ide/cursor/scripts/1.0/list_sessions.js +0 -42
  141. package/providers/_builtin/ide/cursor/scripts/1.0/new_session.js +0 -20
  142. package/providers/_builtin/ide/cursor/scripts/1.0/open_panel.js +0 -23
  143. package/providers/_builtin/ide/cursor/scripts/1.0/read_chat.js +0 -318
  144. package/providers/_builtin/ide/cursor/scripts/1.0/resolve_action.js +0 -19
  145. package/providers/_builtin/ide/cursor/scripts/1.0/scripts.js +0 -78
  146. package/providers/_builtin/ide/cursor/scripts/1.0/send_message.js +0 -23
  147. package/providers/_builtin/ide/cursor/scripts/1.0/set_mode.js +0 -38
  148. package/providers/_builtin/ide/cursor/scripts/1.0/set_model.js +0 -81
  149. package/providers/_builtin/ide/cursor/scripts/1.0/switch_session.js +0 -28
  150. package/providers/_builtin/ide/kiro/provider.json +0 -68
  151. package/providers/_builtin/ide/kiro/scripts/1.0/focus_editor.js +0 -20
  152. package/providers/_builtin/ide/kiro/scripts/1.0/open_panel.js +0 -47
  153. package/providers/_builtin/ide/kiro/scripts/1.0/resolve_action.js +0 -54
  154. package/providers/_builtin/ide/kiro/scripts/1.0/send_message.js +0 -29
  155. package/providers/_builtin/ide/kiro/scripts/1.0/webview_dump_html.js +0 -1
  156. package/providers/_builtin/ide/kiro/scripts/1.0/webview_list_models.js +0 -42
  157. package/providers/_builtin/ide/kiro/scripts/1.0/webview_list_modes.js +0 -22
  158. package/providers/_builtin/ide/kiro/scripts/1.0/webview_list_sessions.js +0 -21
  159. package/providers/_builtin/ide/kiro/scripts/1.0/webview_new_session.js +0 -34
  160. package/providers/_builtin/ide/kiro/scripts/1.0/webview_read_chat.js +0 -161
  161. package/providers/_builtin/ide/kiro/scripts/1.0/webview_resolve_action.js +0 -62
  162. package/providers/_builtin/ide/kiro/scripts/1.0/webview_send_message.js +0 -94
  163. package/providers/_builtin/ide/kiro/scripts/1.0/webview_set_mode.js +0 -34
  164. package/providers/_builtin/ide/kiro/scripts/1.0/webview_set_model.js +0 -47
  165. package/providers/_builtin/ide/kiro/scripts/1.0/webview_switch_session.js +0 -26
  166. package/providers/_builtin/ide/pearai/.tmp/after_rich.json +0 -157
  167. package/providers/_builtin/ide/pearai/.tmp/after_rich_raw.json +0 -161
  168. package/providers/_builtin/ide/pearai/.tmp/after_switch.json +0 -592
  169. package/providers/_builtin/ide/pearai/.tmp/after_switch_raw.json +0 -596
  170. package/providers/_builtin/ide/pearai/.tmp/home_dump_raw.json +0 -176
  171. package/providers/_builtin/ide/pearai/.tmp/items_raw.json +0 -778
  172. package/providers/_builtin/ide/pearai/.tmp/webview_dump.json +0 -157
  173. package/providers/_builtin/ide/pearai/.tmp/webview_dump_raw.json +0 -161
  174. package/providers/_builtin/ide/pearai/provider.json +0 -71
  175. package/providers/_builtin/ide/pearai/scripts/1.0/focus_editor.js +0 -16
  176. package/providers/_builtin/ide/pearai/scripts/1.0/list_models.js +0 -45
  177. package/providers/_builtin/ide/pearai/scripts/1.0/list_modes.js +0 -44
  178. package/providers/_builtin/ide/pearai/scripts/1.0/list_sessions.js +0 -93
  179. package/providers/_builtin/ide/pearai/scripts/1.0/new_session.js +0 -38
  180. package/providers/_builtin/ide/pearai/scripts/1.0/open_panel.js +0 -23
  181. package/providers/_builtin/ide/pearai/scripts/1.0/read_chat.js +0 -169
  182. package/providers/_builtin/ide/pearai/scripts/1.0/resolve_action.js +0 -60
  183. package/providers/_builtin/ide/pearai/scripts/1.0/scripts.js +0 -111
  184. package/providers/_builtin/ide/pearai/scripts/1.0/send_message.js +0 -104
  185. package/providers/_builtin/ide/pearai/scripts/1.0/set_mode.js +0 -51
  186. package/providers/_builtin/ide/pearai/scripts/1.0/set_model.js +0 -54
  187. package/providers/_builtin/ide/pearai/scripts/1.0/switch_session.js +0 -81
  188. package/providers/_builtin/ide/trae/provider.json +0 -72
  189. package/providers/_builtin/ide/trae/scripts/1.0/focus_editor.js +0 -20
  190. package/providers/_builtin/ide/trae/scripts/1.0/list_chats.js +0 -24
  191. package/providers/_builtin/ide/trae/scripts/1.0/list_models.js +0 -39
  192. package/providers/_builtin/ide/trae/scripts/1.0/list_modes.js +0 -39
  193. package/providers/_builtin/ide/trae/scripts/1.0/new_session.js +0 -30
  194. package/providers/_builtin/ide/trae/scripts/1.0/open_panel.js +0 -44
  195. package/providers/_builtin/ide/trae/scripts/1.0/read_chat.js +0 -113
  196. package/providers/_builtin/ide/trae/scripts/1.0/resolve_action.js +0 -54
  197. package/providers/_builtin/ide/trae/scripts/1.0/scripts.js +0 -82
  198. package/providers/_builtin/ide/trae/scripts/1.0/send_message.js +0 -69
  199. package/providers/_builtin/ide/trae/scripts/1.0/set_mode.js +0 -15
  200. package/providers/_builtin/ide/trae/scripts/1.0/set_model.js +0 -15
  201. package/providers/_builtin/ide/trae/scripts/1.0/switch_session.js +0 -23
  202. package/providers/_builtin/ide/vscode/provider.json +0 -74
  203. package/providers/_builtin/ide/vscode/scripts/1.0/focus_editor.js +0 -1
  204. package/providers/_builtin/ide/vscode/scripts/1.0/list_models.js +0 -1
  205. package/providers/_builtin/ide/vscode/scripts/1.0/list_sessions.js +0 -1
  206. package/providers/_builtin/ide/vscode/scripts/1.0/new_session.js +0 -1
  207. package/providers/_builtin/ide/vscode/scripts/1.0/open_panel.js +0 -1
  208. package/providers/_builtin/ide/vscode/scripts/1.0/read_chat.js +0 -1
  209. package/providers/_builtin/ide/vscode/scripts/1.0/resolve_action.js +0 -1
  210. package/providers/_builtin/ide/vscode/scripts/1.0/scripts.js +0 -25
  211. package/providers/_builtin/ide/vscode/scripts/1.0/send_message.js +0 -1
  212. package/providers/_builtin/ide/vscode/scripts/1.0/set_model.js +0 -1
  213. package/providers/_builtin/ide/vscode/scripts/1.0/switch_session.js +0 -1
  214. package/providers/_builtin/ide/vscode-insiders/provider.json +0 -68
  215. package/providers/_builtin/ide/vscodium/provider.json +0 -69
  216. package/providers/_builtin/ide/windsurf/provider.json +0 -57
  217. package/providers/_builtin/ide/windsurf/scripts/1.0/focus_editor.js +0 -36
  218. package/providers/_builtin/ide/windsurf/scripts/1.0/list_chats.js +0 -23
  219. package/providers/_builtin/ide/windsurf/scripts/1.0/list_models.js +0 -56
  220. package/providers/_builtin/ide/windsurf/scripts/1.0/list_modes.js +0 -63
  221. package/providers/_builtin/ide/windsurf/scripts/1.0/list_sessions.js +0 -79
  222. package/providers/_builtin/ide/windsurf/scripts/1.0/new_session.js +0 -58
  223. package/providers/_builtin/ide/windsurf/scripts/1.0/open_panel.js +0 -67
  224. package/providers/_builtin/ide/windsurf/scripts/1.0/read_chat.js +0 -253
  225. package/providers/_builtin/ide/windsurf/scripts/1.0/resolve_action.js +0 -82
  226. package/providers/_builtin/ide/windsurf/scripts/1.0/scripts.js +0 -82
  227. package/providers/_builtin/ide/windsurf/scripts/1.0/send_message.js +0 -20
  228. package/providers/_builtin/ide/windsurf/scripts/1.0/set_mode.js +0 -43
  229. package/providers/_builtin/ide/windsurf/scripts/1.0/set_model.js +0 -49
  230. package/providers/_builtin/ide/windsurf/scripts/1.0/switch_session.js +0 -82
  231. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/focus_editor.js +0 -30
  232. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_chats.js +0 -117
  233. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_models.js +0 -39
  234. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_modes.js +0 -39
  235. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/new_session.js +0 -69
  236. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/open_panel.js +0 -58
  237. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/read_chat.js +0 -315
  238. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/resolve_action.js +0 -68
  239. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/scripts.js +0 -82
  240. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/send_message.js +0 -87
  241. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/set_mode.js +0 -15
  242. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/set_model.js +0 -15
  243. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/switch_session.js +0 -58
  244. package/providers/_builtin/registry.json +0 -376
  245. package/providers/_builtin/validate.js +0 -156
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/daemon-core",
3
- "version": "0.6.58",
3
+ "version": "0.6.60",
4
4
  "description": "ADHDev daemon core — CDP, IDE detection, providers, command execution",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,7 +40,7 @@ export interface IDEDefinition {
40
40
  }
41
41
 
42
42
  // No builtin IDE definitions — provider.js registered via registerToDetector() is the single source of truth
43
- // To add new IDE: create providers/_builtin/ide/{name}/provider.js then define paths/cli
43
+ // To add new IDE: create providers in ~/.adhdev/providers/ide/{name}/provider.js
44
44
  const BUILTIN_IDE_DEFINITIONS: IDEDefinition[] = [];
45
45
 
46
46
  // ─── Runtime Registry ───────────────────────────
@@ -2,7 +2,7 @@
2
2
  * ProviderLoader — Provider discovery + OS/version override resolution
3
3
  *
4
4
  * Role:
5
- * 1. Load provider.js from _builtin/ directory
5
+ * 1. Load providers from upstream auto-download (~/.adhdev/providers/.upstream/)
6
6
  * 2. Load user custom from ~/.adhdev/providers/ (overrides)
7
7
  * 3. Apply OS/version overrides (process.platform + detected IDE version)
8
8
  * 4. Hot-reload support (fs.watch)
@@ -53,14 +53,11 @@ export class ProviderLoader {
53
53
  /** Disable upstream auto-download (for dev/testing/OSS) */
54
54
  disableUpstream?: boolean;
55
55
  }) {
56
- // Builtin directories: providers/_builtin/
56
+ // Legacy builtin directories (no longer shipped; providers come from upstream auto-download)
57
57
  if (options?.builtinDir) {
58
58
  this.builtinDirs = Array.isArray(options.builtinDir) ? options.builtinDir : [options.builtinDir];
59
59
  } else {
60
- // Handle both development (src/providers -> ../../providers) and production (dist -> ../providers)
61
- const bundledDir = path.resolve(__dirname, '../providers/_builtin');
62
- const devDir = path.resolve(__dirname, '../../providers/_builtin');
63
- this.builtinDirs = [fs.existsSync(devDir) ? devDir : bundledDir];
60
+ this.builtinDirs = [];
64
61
  }
65
62
  // User custom directory: ~/.adhdev/providers/
66
63
  this.userDir = options?.userDir ||
@@ -1,76 +0,0 @@
1
- name: Generate Registry
2
- on:
3
- push:
4
- branches: [main]
5
- paths:
6
- - '**/provider.json'
7
- - '**/scripts.js'
8
-
9
- jobs:
10
- generate-registry:
11
- runs-on: ubuntu-latest
12
- permissions:
13
- contents: write
14
- steps:
15
- - uses: actions/checkout@v4
16
-
17
- - name: Generate registry.json
18
- run: |
19
- python3 -c "
20
- import json, glob
21
-
22
- registry = {'version': '$(date +%Y.%m.%d)', 'providers': {}}
23
-
24
- for pj in sorted(glob.glob('**/provider.json', recursive=True)):
25
- parts = pj.split('/')
26
- # Skip version subdirs (1.107/, 0.48/ etc)
27
- if any(p[0].isdigit() and '.' in p for p in parts):
28
- continue
29
- if 'legacy' in parts:
30
- continue
31
- try:
32
- with open(pj) as f:
33
- d = json.load(f)
34
- if 'type' not in d or 'category' not in d:
35
- continue
36
- entry = {
37
- 'providerVersion': d.get('providerVersion', '0.0.0'),
38
- 'category': d['category'],
39
- 'name': d.get('name', d['type']),
40
- }
41
- if d.get('compatibility'):
42
- entry['compatibility'] = d['compatibility']
43
- registry['providers'][d['type']] = entry
44
- except: pass
45
-
46
- with open('registry.json', 'w') as f:
47
- json.dump(registry, f, indent=2, ensure_ascii=False)
48
- print(f'Generated registry.json with {len(registry[\"providers\"])} providers')
49
- "
50
-
51
- - name: Commit registry.json
52
- run: |
53
- git config user.name "github-actions[bot]"
54
- git config user.email "github-actions[bot]@users.noreply.github.com"
55
- git add registry.json
56
- git diff --cached --quiet || git commit -m "chore: auto-generate registry.json"
57
- git push
58
-
59
- - name: Update submodule pointer in parent repo (adhdev-cloud)
60
- env:
61
- PAT: ${{ secrets.PARENT_REPO_PAT }}
62
- run: |
63
- SUBMODULE_SHA=$(git rev-parse HEAD)
64
- git clone --depth=1 https://x-access-token:${PAT}@github.com/vilmire/adhdev-cloud.git /tmp/adhdev-cloud
65
- cd /tmp/adhdev-cloud
66
- git config user.name "github-actions[bot]"
67
- git config user.email "github-actions[bot]@users.noreply.github.com"
68
- git submodule update --init packages/daemon-core/providers/_builtin
69
- cd packages/daemon-core/providers/_builtin
70
- git fetch origin main
71
- git checkout main
72
- git reset --hard ${SUBMODULE_SHA}
73
- cd /tmp/adhdev-cloud
74
- git add packages/daemon-core/providers/_builtin
75
- git diff --cached --quiet || git commit -m "chore: sync _builtin providers submodule [skip ci]"
76
- git push
@@ -1,217 +0,0 @@
1
- # ADHDev Provider Compatibility Matrix
2
-
3
- > **Last updated:** 2026-03-22
4
- > **How to contribute:** Submit a PR updating the status for your OS/version. See [Status Legend](#status-legend) below.
5
-
6
- ## Status Legend
7
-
8
- | Symbol | Meaning |
9
- |--------|---------|
10
- | ✅ | Tested & working |
11
- | ⚠️ | Partial — works with known issues (add note) |
12
- | ❌ | Tested & not working |
13
- | ➖ | Not applicable (tool doesn't exist on this OS) |
14
- | ❓ | Untested — **needs volunteer** |
15
-
16
- ---
17
-
18
- ## IDE Providers
19
-
20
- > Detected via process scanning + controlled via CDP (Chrome DevTools Protocol).
21
-
22
- ### OS Compatibility
23
-
24
- | Provider | Display Name | macOS | Windows | Linux | Tested Versions | Notes |
25
- |----------|-------------|-------|---------|-------|-----------------|-------|
26
- | `antigravity` | Antigravity | ❓ | ❓ | ❓ | | |
27
- | `cursor` | Cursor | ❓ | ❓ | ❓ | | |
28
- | `kiro` | Kiro | ❓ | ❓ | ❓ | | |
29
- | `pearai` | PearAI | ❓ | ❓ | ❓ | | |
30
- | `trae` | Trae | ❓ | ❓ | ❓ | | |
31
- | `vscode` | Visual Studio Code | ❓ | ❓ | ❓ | | Detection only (no scripts) |
32
- | `vscode-insiders` | VS Code Insiders | ❓ | ❓ | ❓ | | Detection only (no scripts) |
33
- | `vscodium` | VSCodium | ❓ | ❓ | ❓ | | Detection only (no scripts) |
34
- | `windsurf` | Windsurf | ❓ | ❓ | ❓ | | |
35
-
36
- ### Script Methods — IDE
37
-
38
- | Provider | readChat | sendMessage | openPanel | listSessions | switchSession | newSession | listModels | setModel | listModes | setMode | resolveAction | focusEditor |
39
- |----------|----------|-------------|-----------|--------------|---------------|------------|------------|----------|-----------|---------|---------------|-------------|
40
- | `antigravity` | ✅ | ✅ | ➖ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
41
- | `cursor` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
42
- | `kiro` | webview | webview | ✅ | webview | webview¹ | webview | webview | webview | webview | webview | ✅ | ✅ |
43
- | `pearai` | webview | webview | ✅ | ✅/webview | webview¹ | ✅ | webview | webview | webview | webview | webview | ✅ |
44
- | `trae` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
45
- | `vscode` | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ |
46
- | `vscode-insiders` | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ |
47
- | `vscodium` | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ | ➖ |
48
- | `windsurf` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
49
-
50
- > ¹ `webview` = method operates via webview bridge (internal iframe communication), not direct DOM.
51
- > `➖` = detection only, no AI chat integration scripts.
52
-
53
- ---
54
-
55
- ## Extension Providers
56
-
57
- > VS Code extensions detected inside IDE instances, controlled via CDP within the host IDE.
58
-
59
- ### OS Compatibility
60
-
61
- | Provider | Display Name | macOS | Windows | Linux | Tested Versions | Notes |
62
- |----------|-------------|-------|---------|-------|-----------------|-------|
63
- | `cline` | Cline | ❓ | ❓ | ❓ | | |
64
- | `roo-code` | Roo Code | ❓ | ❓ | ❓ | | |
65
-
66
- ### Script Methods — Extension
67
-
68
- | Provider | readChat | sendMessage | openPanel | listSessions | switchSession | newSession | listModels | setModel | listModes | setMode | resolveAction | focusEditor |
69
- |----------|----------|-------------|-----------|--------------|---------------|------------|------------|----------|-----------|---------|---------------|-------------|
70
- | `cline` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
71
- | `roo-code` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
72
-
73
- ---
74
-
75
- ## CLI Providers
76
-
77
- > Terminal-based agents spawned as child processes, controlled via PTY.
78
-
79
- ### OS Compatibility
80
-
81
- | Provider | Display Name | macOS | Windows | Linux | Tested Versions | Notes |
82
- |----------|-------------|-------|---------|-------|-----------------|-------|
83
- | `claude-cli` | Claude Code | ❓ | ❓ | ❓ | | |
84
- | `codex-cli` | Codex CLI | ❓ | ❓ | ❓ | | |
85
- | `gemini-cli` | Gemini CLI | ❓ | ❓ | ❓ | | |
86
-
87
- ### Supported Operations — CLI
88
-
89
- | Operation | Description | All CLI Providers |
90
- |-----------|-------------|-------------------|
91
- | `spawn` | Start agent process in PTY | ✅ |
92
- | `input` | Send text/command to stdin | ✅ |
93
- | `output` | Read stdout/stderr stream | ✅ |
94
- | `resize` | Resize terminal (cols/rows) | ✅ |
95
- | `kill` | Terminate process | ✅ |
96
-
97
- ---
98
-
99
- ## ACP Providers
100
-
101
- > Agent Client Protocol agents spawned as subprocesses, communicating via JSON-RPC over stdio.
102
-
103
- ### OS Compatibility
104
-
105
- | Provider | Display Name | macOS | Windows | Linux | Tested Versions | Notes |
106
- |----------|-------------|-------|---------|-------|-----------------|-------|
107
- | `agentpool` | AgentPool | ❓ | ❓ | ❓ | | |
108
- | `amp` | Amp (Sourcegraph) | ❓ | ❓ | ❓ | | |
109
- | `auggie` | Auggie (Augment Code) | ❓ | ❓ | ❓ | | |
110
- | `autodev` | AutoDev | ❓ | ❓ | ❓ | | |
111
- | `blackbox-ai` | Blackbox AI | ❓ | ❓ | ❓ | | |
112
- | `claude-agent` | Claude Code (ACP) | ❓ | ❓ | ❓ | | |
113
- | `cline-acp` | Cline (ACP) | ❓ | ❓ | ❓ | | |
114
- | `codex-cli` | Codex CLI (ACP) | ❓ | ❓ | ❓ | | |
115
- | `corust-agent` | Corust Agent | ❓ | ❓ | ❓ | | |
116
- | `cursor-acp` | Cursor (ACP) | ❓ | ❓ | ❓ | | |
117
- | `deepagents` | Deep Agents | ❓ | ❓ | ❓ | | |
118
- | `docker-cagent` | Docker cagent | ❓ | ❓ | ❓ | | |
119
- | `factory-droid` | Factory AI Droids | ❓ | ❓ | ❓ | | |
120
- | `fast-agent` | fast-agent | ❓ | ❓ | ❓ | | |
121
- | `gemini-cli` | Gemini CLI (ACP) | ❓ | ❓ | ❓ | | |
122
- | `github-copilot` | GitHub Copilot | ❓ | ❓ | ❓ | | |
123
- | `goose` | Goose | ❓ | ❓ | ❓ | | |
124
- | `junie` | Junie (JetBrains) | ❓ | ❓ | ❓ | | |
125
- | `kilo` | Kilo Code | ❓ | ❓ | ❓ | | |
126
- | `kimi-cli` | Kimi Code CLI | ❓ | ❓ | ❓ | | |
127
- | `mistral-vibe` | Mistral Vibe CLI | ❓ | ❓ | ❓ | | |
128
- | `openclaw` | OpenClaw | ❓ | ❓ | ❓ | | Requires running Gateway |
129
- | `opencode` | OpenCode | ❓ | ❓ | ❓ | | |
130
- | `openhands` | OpenHands | ❓ | ❓ | ❓ | | |
131
- | `pi-acp` | pi | ❓ | ❓ | ❓ | | |
132
- | `qoder` | Qoder CLI | ❓ | ❓ | ❓ | | |
133
- | `qwen-code` | Qwen Code | ❓ | ❓ | ❓ | | |
134
- | `stakpak` | Stakpak | ❓ | ❓ | ❓ | | |
135
- | `vtcode` | VT Code | ❓ | ❓ | ❓ | | |
136
-
137
- ### Supported Operations — ACP
138
-
139
- **Client → Agent (Editor sends to Agent)**
140
-
141
- | Method | Description | Required |
142
- |--------|-------------|----------|
143
- | `initialize` | Handshake, version negotiation, capability exchange | ✅ Required |
144
- | `authenticate` | Token/password auth if agent requires it | Optional |
145
- | `session/new` | Create a new conversation session | ✅ Required |
146
- | `session/prompt` | Send user message with context (files, images) | ✅ Required |
147
- | `session/load` | Resume an existing session | Optional |
148
- | `session/set_mode` | Switch agent operating mode | Optional |
149
- | `session/cancel` | Abort an in-progress prompt (notification) | ✅ Required |
150
-
151
- **Agent → Client (Agent requests from Editor)**
152
-
153
- | Method | Description | Required |
154
- |--------|-------------|----------|
155
- | `session/update` | Stream progress, messages, tool calls (notification) | ✅ Required |
156
- | `session/request_permission` | Ask user approval for an action | Optional |
157
- | `fs/read_text_file` | Read file content including unsaved edits | Optional |
158
- | `fs/write_text_file` | Write or create a file | Optional |
159
- | `terminal/create` | Start a shell command | Optional |
160
- | `terminal/output` | Provide command output | Optional |
161
- | `terminal/wait_for_exit` | Wait for command completion | Optional |
162
- | `terminal/kill` | Terminate a running command | Optional |
163
- | `terminal/release` | Clean up a terminal | Optional |
164
-
165
- ---
166
-
167
- ## How to Test & Report
168
-
169
- ### 1. Run the test
170
-
171
- ```bash
172
- # Start the daemon
173
- adhdev daemon
174
-
175
- # Or standalone mode
176
- node packages/daemon-standalone/dist/index.js
177
- ```
178
-
179
- ### 2. Verify in the dashboard
180
- - Open `http://localhost:3847`
181
- - Check if the provider is detected
182
- - Test: read_chat, send_chat, screenshot (IDE/Extension)
183
- - Test: spawn, input, output (CLI/ACP)
184
-
185
- ### 3. Submit your result
186
- Fork this repo, update the table above with your result, and submit a PR with:
187
-
188
- ```
189
- Provider: <provider-id>
190
- OS: <macOS 15.x / Windows 11 / Ubuntu 24.04 / etc>
191
- Provider Version: <e.g. Cursor 0.48>
192
- Status: ✅ / ⚠️ / ❌
193
- Notes: <any issues encountered>
194
- ```
195
-
196
- ### PR Title Format
197
- ```
198
- compat: <provider-id> <os> <status>
199
- ```
200
- Example: `compat: cursor macOS ✅`
201
-
202
- ---
203
-
204
- ## Version-Specific Notes
205
-
206
- <!--
207
- Add version-specific compatibility notes here as they are discovered.
208
- Example:
209
-
210
- ### Cursor
211
- | Version | macOS | Windows | Linux | Notes |
212
- |---------|-------|---------|-------|-------|
213
- | 0.48.x | ✅ | ❓ | ❓ | |
214
- | 0.47.x | ⚠️ | ❓ | ❓ | CDP port changed |
215
- -->
216
-
217
- _No version-specific notes yet. Submit a PR to add yours!_
@@ -1,200 +0,0 @@
1
- # Contributing to ADHDev Providers
2
-
3
- > How to add new providers or improve existing ones for ADHDev.
4
-
5
- ## Quick Start
6
-
7
- ### 1. Fork & Clone
8
-
9
- ```bash
10
- git clone https://github.com/YOUR_USERNAME/adhdev-providers.git
11
- cd adhdev-providers
12
- ```
13
-
14
- ### 2. Create a Provider
15
-
16
- ```bash
17
- # IDE provider
18
- mkdir -p ide/my-ide/scripts/1.0
19
- touch ide/my-ide/provider.json
20
-
21
- # CLI agent
22
- mkdir -p cli/my-cli
23
- touch cli/my-cli/provider.json
24
-
25
- # ACP agent
26
- mkdir -p acp/my-agent
27
- touch acp/my-agent/provider.json
28
-
29
- # VS Code extension
30
- mkdir -p extension/my-ext/scripts/1.0
31
- touch extension/my-ext/provider.json
32
- ```
33
-
34
- ### 3. Provider Structure
35
-
36
- #### provider.json (required)
37
-
38
- ```json
39
- {
40
- "type": "my-ide",
41
- "name": "My IDE",
42
- "category": "ide",
43
- "displayName": "My IDE",
44
- "icon": "🔧",
45
- "providerVersion": "1.0.0",
46
- "versionCommand": "my-ide --version",
47
- "compatibility": [
48
- { "ideVersion": ">=1.0.0", "scriptDir": "scripts/1.0" }
49
- ],
50
- "defaultScriptDir": "scripts/1.0",
51
- "cdpPorts": [9357, 9358],
52
- "cli": "my-ide",
53
- "processNames": { "darwin": "My IDE" },
54
- "paths": { "darwin": ["/Applications/My IDE.app"] }
55
- }
56
- ```
57
-
58
- #### scripts/1.0/scripts.js (IDE/Extension)
59
-
60
- ```javascript
61
- module.exports = {
62
- readChat() { return `(() => { /* DOM scraping */ })()`; },
63
- sendMessage(text) { return `(() => { /* type + send */ })()`; },
64
- listModels() { return `(() => { /* list available models */ })()`; },
65
- setModel(model) { return `(() => { /* select model */ })()`; },
66
- // ... more scripts
67
- };
68
- ```
69
-
70
- #### Alternative: Individual Script Files
71
-
72
- Instead of one `scripts.js`, you can create individual files:
73
-
74
- ```
75
- scripts/1.0/
76
- read_chat.js → exports single function, auto-mapped to readChat
77
- send_message.js → sendMessage
78
- list_models.js → listModels
79
- set_model.js → setModel
80
- ```
81
-
82
- Both approaches work. `scripts.js` takes priority if both exist.
83
-
84
- > 📖 Full guide: [PROVIDER_GUIDE.md](https://github.com/vilmire/adhdev/blob/main/docs/PROVIDER_GUIDE.md)
85
-
86
- ### 4. Version Compatibility
87
-
88
- The `compatibility` array maps IDE versions to script directories:
89
-
90
- ```json
91
- "compatibility": [
92
- { "ideVersion": ">=1.1.0", "scriptDir": "scripts/1.1" },
93
- { "ideVersion": ">=1.0.0", "scriptDir": "scripts/1.0" }
94
- ]
95
- ```
96
-
97
- **Rules:**
98
- - Order matters: first match wins (most recent version first)
99
- - Version ranges use semver syntax: `>=1.0.0`, `<2.0.0`, `>=1.0.0 <1.5.0`
100
- - `defaultScriptDir`: used when IDE version is unknown or doesn't match any range
101
- - Each script directory should be self-contained (all scripts for that version)
102
-
103
- **When to create a new version directory:**
104
- - IDE DOM structure changed (selectors broke)
105
- - New UI elements to interact with
106
- - Major API changes
107
-
108
- **When NOT to create a new version:**
109
- - Minor visual changes that don't affect selectors
110
- - Backend-only updates
111
- - Same DOM structure with new features (extend existing scripts)
112
-
113
- ### 5. Validate
114
-
115
- ```bash
116
- # Syntax check
117
- node -c ide/my-ide/scripts/1.0/scripts.js
118
-
119
- # Schema validation (required fields, port conflicts, etc.)
120
- node validate.js ide/my-ide/provider.json
121
-
122
- # Validate all providers
123
- node validate.js
124
- ```
125
-
126
- ### 6. Local Testing
127
-
128
- ```bash
129
- # Copy your provider to the user directory for instant loading
130
- mkdir -p ~/.adhdev/providers/ide/my-ide
131
- cp -r ide/my-ide/* ~/.adhdev/providers/ide/my-ide/
132
-
133
- # Restart daemon to pick up changes
134
- adhdev daemon:restart
135
-
136
- # Test scripts via DevConsole
137
- # Open http://127.0.0.1:19280 → IDE tab → Scripts → Run
138
- ```
139
-
140
- ### 7. Submit PR
141
-
142
- ```bash
143
- git checkout -b feat/add-my-ide
144
- git add -A
145
- git commit -m "feat: add My IDE provider"
146
- git push origin feat/add-my-ide
147
- # Open a Pull Request on GitHub
148
- ```
149
-
150
- `registry.json` is auto-regenerated by GitHub Actions — **do not edit manually**.
151
-
152
- ---
153
-
154
- ## PR Checklist
155
-
156
- - [ ] `node validate.js` passes with no errors
157
- - [ ] `type` does not conflict with existing providers
158
- - [ ] CDP ports do not overlap (for IDE providers)
159
- - [ ] `provider.json` has `providerVersion`, `compatibility`, `defaultScriptDir`
160
- - [ ] At least `readChat` + `sendMessage` scripts implemented
161
- - [ ] Tested via DevConsole (if ADHDev is available)
162
- - [ ] `registry.json` NOT manually edited
163
-
164
- ---
165
-
166
- ## Reference Implementations
167
-
168
- | Category | Reference | Key Features |
169
- |----------|-----------|-------------|
170
- | **IDE** | `ide/antigravity/` | `compatibility` matrix, versioned scripts |
171
- | **IDE (webview)** | `ide/kiro/` | `webviewMatchText`, `webview*` scripts |
172
- | **CLI** | `cli/gemini-cli/` | `aliases`, spawn config |
173
- | **ACP** | `acp/gemini-cli/` | `auth`, `spawn`, `settings` |
174
- | **Extension** | `extension/cline/` | `extensionIdPattern`, webview |
175
-
176
- ---
177
-
178
- ## CDP Port Registry
179
-
180
- | Port | Provider |
181
- |------|----------|
182
- | 9333–9334 | Cursor |
183
- | 9335–9336 | Antigravity |
184
- | 9337–9338 | Windsurf |
185
- | 9339–9340 | VS Code |
186
- | 9341–9342 | VS Code Insiders |
187
- | 9343–9344 | VSCodium |
188
- | 9351–9352 | Kiro |
189
- | 9353–9354 | Trae |
190
- | 9355–9356 | PearAI |
191
-
192
- **Next available: 9357+**
193
-
194
- ---
195
-
196
- ## Need Help?
197
-
198
- - Full provider guide: [PROVIDER_GUIDE.md](https://github.com/vilmire/adhdev/blob/main/docs/PROVIDER_GUIDE.md)
199
- - DOM exploration tips: PROVIDER_GUIDE.md §6
200
- - DevConsole usage: PROVIDER_GUIDE.md §4
@@ -1,119 +0,0 @@
1
- # ADHDev Providers
2
-
3
- > IDE, CLI, Extension, and ACP provider definitions for [ADHDev](https://github.com/vilmire/adhdev).
4
-
5
- ## Structure
6
-
7
- ```
8
- ├── ide/ — IDE providers (Cursor, Antigravity, Windsurf, Kiro, etc.)
9
- ├── cli/ — CLI agent providers (Gemini CLI, Claude Code, Codex CLI)
10
- ├── extension/ — VS Code extension providers (Cline, Roo Code)
11
- ├── acp/ — ACP agent providers (35 agents)
12
- ├── registry.json — Auto-generated provider index (used by daemon)
13
- ├── validate.js — Provider schema validator
14
- ├── CONTRIBUTING.md — How to add a new provider
15
- └── COMPATIBILITY.md — OS/version compatibility matrix
16
- ```
17
-
18
- ## Provider Format
19
-
20
- Each provider consists of:
21
-
22
- ```
23
- ide/my-ide/
24
- provider.json ← Metadata + version compatibility
25
- scripts/
26
- 1.0/ ← Scripts for IDE version 1.0.x
27
- scripts.js ← Main scripts entry point
28
- set_model.js ← Individual script files
29
- set_mode.js
30
- 0.9/ ← Scripts for IDE version 0.9.x
31
- scripts.js
32
- ```
33
-
34
- ### provider.json
35
-
36
- ```json
37
- {
38
- "type": "my-ide",
39
- "name": "My IDE",
40
- "category": "ide",
41
- "providerVersion": "1.0.0",
42
- "versionCommand": "my-ide --version",
43
- "compatibility": [
44
- { "ideVersion": ">=1.0.0", "scriptDir": "scripts/1.0" },
45
- { "ideVersion": ">=0.9.0", "scriptDir": "scripts/0.9" }
46
- ],
47
- "defaultScriptDir": "scripts/1.0",
48
- "cdpPorts": [9357, 9358],
49
- "processNames": { "darwin": "My IDE" }
50
- }
51
- ```
52
-
53
- ### Version Resolution
54
-
55
- When the daemon starts:
56
- 1. Detects installed IDE version (`versionCommand`)
57
- 2. Matches against `compatibility` array (first match wins)
58
- 3. Loads scripts from the matched `scriptDir`
59
- 4. If no match → uses `defaultScriptDir` + shows warning
60
-
61
- ## Adding a New Provider
62
-
63
- 1. Create `provider.json` in the appropriate category
64
- 2. Create version-specific script directories
65
- 3. Validate: `node validate.js ide/my-ide/provider.json`
66
- 4. Submit a PR
67
-
68
- See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full workflow.
69
-
70
- ## How It Works
71
-
72
- This repository is consumed by ADHDev in three ways:
73
-
74
- | Method | When | Directory |
75
- |--------|------|-----------|
76
- | **Bundled** | `npm install -g adhdev` | `_builtin/` (offline fallback) |
77
- | **Auto-updated** | Every daemon start | `~/.adhdev/providers/.upstream/` |
78
- | **User custom** | Manual | `~/.adhdev/providers/` (never overwritten) |
79
-
80
- Loading priority: **User custom > Auto-updated > Bundled**
81
-
82
- ### registry.json
83
-
84
- Auto-generated index of all providers. Contains:
85
- - Provider type, name, category
86
- - `providerVersion` (for incremental update checks)
87
- - `compatibility` matrix (which IDE versions → which scripts)
88
-
89
- Updated automatically by GitHub Actions on every push.
90
-
91
- ## Supporting a New IDE Version
92
-
93
- When an IDE releases a new version with DOM changes:
94
-
95
- 1. Create a new script directory:
96
- ```bash
97
- mkdir -p ide/my-ide/scripts/1.1
98
- ```
99
-
100
- 2. Copy from the previous version and modify:
101
- ```bash
102
- cp -r ide/my-ide/scripts/1.0/* ide/my-ide/scripts/1.1/
103
- # Edit scripts to match new DOM structure
104
- ```
105
-
106
- 3. Update `provider.json`:
107
- ```json
108
- "compatibility": [
109
- { "ideVersion": ">=1.1.0", "scriptDir": "scripts/1.1" },
110
- { "ideVersion": ">=1.0.0", "scriptDir": "scripts/1.0" }
111
- ],
112
- "defaultScriptDir": "scripts/1.1"
113
- ```
114
-
115
- 4. Submit a PR. `registry.json` is auto-regenerated.
116
-
117
- ## License
118
-
119
- MIT