@adhdev/daemon-core 0.6.57 → 0.6.59

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 (241) hide show
  1. package/dist/index.d.ts +18 -1
  2. package/dist/index.js +339 -167
  3. package/dist/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/cli-adapters/provider-cli-adapter.ts +223 -48
  6. package/src/commands/chat-commands.ts +7 -1
  7. package/src/config/chat-history.ts +53 -1
  8. package/src/daemon/dev-server.ts +7 -9
  9. package/src/detection/ide-detector.ts +1 -1
  10. package/src/providers/cli-provider-instance.ts +10 -23
  11. package/src/providers/provider-instance.ts +1 -0
  12. package/src/providers/provider-loader.ts +3 -6
  13. package/src/providers/version-archive.ts +4 -1
  14. package/providers/_builtin/.github/workflows/generate-registry.yml +0 -76
  15. package/providers/_builtin/COMPATIBILITY.md +0 -217
  16. package/providers/_builtin/CONTRIBUTING.md +0 -200
  17. package/providers/_builtin/README.md +0 -119
  18. package/providers/_builtin/_helpers/index.js +0 -188
  19. package/providers/_builtin/acp/agentpool/provider.json +0 -54
  20. package/providers/_builtin/acp/amp/provider.json +0 -52
  21. package/providers/_builtin/acp/auggie/provider.json +0 -57
  22. package/providers/_builtin/acp/autodev/provider.json +0 -54
  23. package/providers/_builtin/acp/autohand/provider.json +0 -52
  24. package/providers/_builtin/acp/blackbox-ai/provider.json +0 -54
  25. package/providers/_builtin/acp/claude-agent/provider.json +0 -57
  26. package/providers/_builtin/acp/cline-acp/provider.json +0 -54
  27. package/providers/_builtin/acp/codebuddy/provider.json +0 -54
  28. package/providers/_builtin/acp/codex-cli/provider.json +0 -57
  29. package/providers/_builtin/acp/corust-agent/provider.json +0 -52
  30. package/providers/_builtin/acp/crow-cli/provider.json +0 -54
  31. package/providers/_builtin/acp/cursor-acp/provider.json +0 -54
  32. package/providers/_builtin/acp/deepagents/provider.json +0 -52
  33. package/providers/_builtin/acp/dimcode/provider.json +0 -54
  34. package/providers/_builtin/acp/docker-cagent/provider.json +0 -57
  35. package/providers/_builtin/acp/factory-droid/provider.json +0 -60
  36. package/providers/_builtin/acp/fast-agent/provider.json +0 -52
  37. package/providers/_builtin/acp/gemini-cli/provider.json +0 -114
  38. package/providers/_builtin/acp/github-copilot/provider.json +0 -54
  39. package/providers/_builtin/acp/goose/provider.json +0 -57
  40. package/providers/_builtin/acp/junie/provider.json +0 -52
  41. package/providers/_builtin/acp/kilo/provider.json +0 -54
  42. package/providers/_builtin/acp/kimi-cli/provider.json +0 -57
  43. package/providers/_builtin/acp/minion-code/provider.json +0 -52
  44. package/providers/_builtin/acp/mistral-vibe/provider.json +0 -57
  45. package/providers/_builtin/acp/nova/provider.json +0 -54
  46. package/providers/_builtin/acp/openclaw/provider.json +0 -54
  47. package/providers/_builtin/acp/opencode/provider.json +0 -52
  48. package/providers/_builtin/acp/openhands/provider.json +0 -54
  49. package/providers/_builtin/acp/pi-acp/provider.json +0 -52
  50. package/providers/_builtin/acp/qoder/provider.json +0 -54
  51. package/providers/_builtin/acp/qwen-code/provider.json +0 -60
  52. package/providers/_builtin/acp/stakpak/provider.json +0 -54
  53. package/providers/_builtin/acp/vtcode/provider.json +0 -54
  54. package/providers/_builtin/cli/aider-cli/provider.json +0 -37
  55. package/providers/_builtin/cli/aider-cli/scripts/1.0/detect_status.js +0 -20
  56. package/providers/_builtin/cli/aider-cli/scripts/1.0/parse_approval.js +0 -10
  57. package/providers/_builtin/cli/aider-cli/scripts/1.0/parse_output.js +0 -49
  58. package/providers/_builtin/cli/aider-cli/scripts/1.0/scripts.js +0 -7
  59. package/providers/_builtin/cli/claude-cli/provider.json +0 -109
  60. package/providers/_builtin/cli/claude-cli/scripts/1.0/detect_status.js +0 -31
  61. package/providers/_builtin/cli/claude-cli/scripts/1.0/parse_approval.js +0 -38
  62. package/providers/_builtin/cli/claude-cli/scripts/1.0/parse_output.js +0 -164
  63. package/providers/_builtin/cli/claude-cli/scripts/1.0/scripts.js +0 -42
  64. package/providers/_builtin/cli/codex-cli/provider.json +0 -88
  65. package/providers/_builtin/cli/codex-cli/scripts/1.0/detect_status.js +0 -20
  66. package/providers/_builtin/cli/codex-cli/scripts/1.0/parse_approval.js +0 -15
  67. package/providers/_builtin/cli/codex-cli/scripts/1.0/parse_output.js +0 -68
  68. package/providers/_builtin/cli/codex-cli/scripts/1.0/scripts.js +0 -11
  69. package/providers/_builtin/cli/cursor-cli/provider.json +0 -37
  70. package/providers/_builtin/cli/cursor-cli/scripts/1.0/detect_status.js +0 -19
  71. package/providers/_builtin/cli/cursor-cli/scripts/1.0/parse_approval.js +0 -10
  72. package/providers/_builtin/cli/cursor-cli/scripts/1.0/parse_output.js +0 -48
  73. package/providers/_builtin/cli/cursor-cli/scripts/1.0/scripts.js +0 -7
  74. package/providers/_builtin/cli/gemini-cli/provider.json +0 -109
  75. package/providers/_builtin/cli/gemini-cli/scripts/1.0/detect_status.js +0 -26
  76. package/providers/_builtin/cli/gemini-cli/scripts/1.0/parse_approval.js +0 -22
  77. package/providers/_builtin/cli/gemini-cli/scripts/1.0/parse_output.js +0 -71
  78. package/providers/_builtin/cli/gemini-cli/scripts/1.0/scripts.js +0 -12
  79. package/providers/_builtin/cli/github-copilot-cli/provider.json +0 -37
  80. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/detect_status.js +0 -19
  81. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/parse_approval.js +0 -9
  82. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/parse_output.js +0 -48
  83. package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/scripts.js +0 -7
  84. package/providers/_builtin/cli/goose-cli/provider.json +0 -37
  85. package/providers/_builtin/cli/goose-cli/scripts/1.0/detect_status.js +0 -20
  86. package/providers/_builtin/cli/goose-cli/scripts/1.0/parse_approval.js +0 -10
  87. package/providers/_builtin/cli/goose-cli/scripts/1.0/parse_output.js +0 -48
  88. package/providers/_builtin/cli/goose-cli/scripts/1.0/scripts.js +0 -7
  89. package/providers/_builtin/cli/opencode-cli/provider.json +0 -37
  90. package/providers/_builtin/cli/opencode-cli/scripts/1.0/detect_status.js +0 -15
  91. package/providers/_builtin/cli/opencode-cli/scripts/1.0/parse_approval.js +0 -9
  92. package/providers/_builtin/cli/opencode-cli/scripts/1.0/parse_output.js +0 -48
  93. package/providers/_builtin/cli/opencode-cli/scripts/1.0/scripts.js +0 -7
  94. package/providers/_builtin/docs/CDP_SELECTOR_GUIDE.md +0 -370
  95. package/providers/_builtin/docs/PROVIDER_GUIDE.md +0 -916
  96. package/providers/_builtin/extension/cline/provider.json +0 -37
  97. package/providers/_builtin/extension/cline/scripts/1.0/focus_editor.js +0 -48
  98. package/providers/_builtin/extension/cline/scripts/1.0/list_chats.js +0 -100
  99. package/providers/_builtin/extension/cline/scripts/1.0/list_models.js +0 -43
  100. package/providers/_builtin/extension/cline/scripts/1.0/list_modes.js +0 -35
  101. package/providers/_builtin/extension/cline/scripts/1.0/new_session.js +0 -85
  102. package/providers/_builtin/extension/cline/scripts/1.0/open_panel.js +0 -25
  103. package/providers/_builtin/extension/cline/scripts/1.0/read_chat.js +0 -270
  104. package/providers/_builtin/extension/cline/scripts/1.0/resolve_action.js +0 -83
  105. package/providers/_builtin/extension/cline/scripts/1.0/scripts.js +0 -82
  106. package/providers/_builtin/extension/cline/scripts/1.0/send_message.js +0 -95
  107. package/providers/_builtin/extension/cline/scripts/1.0/set_mode.js +0 -36
  108. package/providers/_builtin/extension/cline/scripts/1.0/set_model.js +0 -36
  109. package/providers/_builtin/extension/cline/scripts/1.0/switch_session.js +0 -206
  110. package/providers/_builtin/extension/codex/provider.json +0 -38
  111. package/providers/_builtin/extension/codex/scripts/1.0/click_conversation_webview.js +0 -24
  112. package/providers/_builtin/extension/codex/scripts/1.0/explore_chat_webview.js +0 -110
  113. package/providers/_builtin/extension/codex/scripts/1.0/explore_controls_webview.js +0 -75
  114. package/providers/_builtin/extension/codex/scripts/1.0/explore_dom.js +0 -58
  115. package/providers/_builtin/extension/codex/scripts/1.0/explore_dropdown_webview.js +0 -64
  116. package/providers/_builtin/extension/codex/scripts/1.0/inspect_code_webview.js +0 -55
  117. package/providers/_builtin/extension/codex/scripts/1.0/list_models.js +0 -63
  118. package/providers/_builtin/extension/codex/scripts/1.0/list_modes.js +0 -140
  119. package/providers/_builtin/extension/codex/scripts/1.0/message_structure_webview.js +0 -79
  120. package/providers/_builtin/extension/codex/scripts/1.0/new_session.js +0 -26
  121. package/providers/_builtin/extension/codex/scripts/1.0/read_chat.js +0 -516
  122. package/providers/_builtin/extension/codex/scripts/1.0/resolve_action.js +0 -82
  123. package/providers/_builtin/extension/codex/scripts/1.0/send_message.js +0 -42
  124. package/providers/_builtin/extension/codex/scripts/1.0/set_mode.js +0 -165
  125. package/providers/_builtin/extension/codex/scripts/1.0/set_model.js +0 -86
  126. package/providers/_builtin/extension/roo-code/provider.json +0 -37
  127. package/providers/_builtin/extension/roo-code/scripts/1.0/scripts.js +0 -82
  128. package/providers/_builtin/ide/antigravity/provider.json +0 -88
  129. package/providers/_builtin/ide/antigravity/scripts/1.0/focus_editor.js +0 -20
  130. package/providers/_builtin/ide/antigravity/scripts/1.0/list_chats.js +0 -137
  131. package/providers/_builtin/ide/antigravity/scripts/1.0/list_models.js +0 -61
  132. package/providers/_builtin/ide/antigravity/scripts/1.0/list_modes.js +0 -72
  133. package/providers/_builtin/ide/antigravity/scripts/1.0/new_session.js +0 -75
  134. package/providers/_builtin/ide/antigravity/scripts/1.0/read_chat.js +0 -352
  135. package/providers/_builtin/ide/antigravity/scripts/1.0/resolve_action.js +0 -63
  136. package/providers/_builtin/ide/antigravity/scripts/1.0/scripts.js +0 -67
  137. package/providers/_builtin/ide/antigravity/scripts/1.0/send_message.js +0 -56
  138. package/providers/_builtin/ide/antigravity/scripts/1.0/set_mode.js +0 -67
  139. package/providers/_builtin/ide/antigravity/scripts/1.0/set_model.js +0 -72
  140. package/providers/_builtin/ide/antigravity/scripts/1.0/switch_session.js +0 -114
  141. package/providers/_builtin/ide/cursor/provider.json +0 -70
  142. package/providers/_builtin/ide/cursor/scripts/1.0/dismiss_notification.js +0 -30
  143. package/providers/_builtin/ide/cursor/scripts/1.0/focus_editor.js +0 -13
  144. package/providers/_builtin/ide/cursor/scripts/1.0/list_models.js +0 -78
  145. package/providers/_builtin/ide/cursor/scripts/1.0/list_modes.js +0 -40
  146. package/providers/_builtin/ide/cursor/scripts/1.0/list_notifications.js +0 -23
  147. package/providers/_builtin/ide/cursor/scripts/1.0/list_sessions.js +0 -42
  148. package/providers/_builtin/ide/cursor/scripts/1.0/new_session.js +0 -20
  149. package/providers/_builtin/ide/cursor/scripts/1.0/open_panel.js +0 -23
  150. package/providers/_builtin/ide/cursor/scripts/1.0/read_chat.js +0 -318
  151. package/providers/_builtin/ide/cursor/scripts/1.0/resolve_action.js +0 -19
  152. package/providers/_builtin/ide/cursor/scripts/1.0/scripts.js +0 -78
  153. package/providers/_builtin/ide/cursor/scripts/1.0/send_message.js +0 -23
  154. package/providers/_builtin/ide/cursor/scripts/1.0/set_mode.js +0 -38
  155. package/providers/_builtin/ide/cursor/scripts/1.0/set_model.js +0 -81
  156. package/providers/_builtin/ide/cursor/scripts/1.0/switch_session.js +0 -28
  157. package/providers/_builtin/ide/kiro/provider.json +0 -68
  158. package/providers/_builtin/ide/kiro/scripts/1.0/focus_editor.js +0 -20
  159. package/providers/_builtin/ide/kiro/scripts/1.0/open_panel.js +0 -47
  160. package/providers/_builtin/ide/kiro/scripts/1.0/resolve_action.js +0 -54
  161. package/providers/_builtin/ide/kiro/scripts/1.0/send_message.js +0 -29
  162. package/providers/_builtin/ide/kiro/scripts/1.0/webview_dump_html.js +0 -1
  163. package/providers/_builtin/ide/kiro/scripts/1.0/webview_list_models.js +0 -42
  164. package/providers/_builtin/ide/kiro/scripts/1.0/webview_list_modes.js +0 -22
  165. package/providers/_builtin/ide/kiro/scripts/1.0/webview_list_sessions.js +0 -21
  166. package/providers/_builtin/ide/kiro/scripts/1.0/webview_new_session.js +0 -34
  167. package/providers/_builtin/ide/kiro/scripts/1.0/webview_read_chat.js +0 -161
  168. package/providers/_builtin/ide/kiro/scripts/1.0/webview_resolve_action.js +0 -62
  169. package/providers/_builtin/ide/kiro/scripts/1.0/webview_send_message.js +0 -94
  170. package/providers/_builtin/ide/kiro/scripts/1.0/webview_set_mode.js +0 -34
  171. package/providers/_builtin/ide/kiro/scripts/1.0/webview_set_model.js +0 -47
  172. package/providers/_builtin/ide/kiro/scripts/1.0/webview_switch_session.js +0 -26
  173. package/providers/_builtin/ide/pearai/.tmp/after_rich.json +0 -157
  174. package/providers/_builtin/ide/pearai/.tmp/after_rich_raw.json +0 -161
  175. package/providers/_builtin/ide/pearai/.tmp/after_switch.json +0 -592
  176. package/providers/_builtin/ide/pearai/.tmp/after_switch_raw.json +0 -596
  177. package/providers/_builtin/ide/pearai/.tmp/home_dump_raw.json +0 -176
  178. package/providers/_builtin/ide/pearai/.tmp/items_raw.json +0 -778
  179. package/providers/_builtin/ide/pearai/.tmp/webview_dump.json +0 -157
  180. package/providers/_builtin/ide/pearai/.tmp/webview_dump_raw.json +0 -161
  181. package/providers/_builtin/ide/pearai/provider.json +0 -71
  182. package/providers/_builtin/ide/pearai/scripts/1.0/focus_editor.js +0 -16
  183. package/providers/_builtin/ide/pearai/scripts/1.0/list_models.js +0 -45
  184. package/providers/_builtin/ide/pearai/scripts/1.0/list_modes.js +0 -44
  185. package/providers/_builtin/ide/pearai/scripts/1.0/list_sessions.js +0 -93
  186. package/providers/_builtin/ide/pearai/scripts/1.0/new_session.js +0 -38
  187. package/providers/_builtin/ide/pearai/scripts/1.0/open_panel.js +0 -23
  188. package/providers/_builtin/ide/pearai/scripts/1.0/read_chat.js +0 -169
  189. package/providers/_builtin/ide/pearai/scripts/1.0/resolve_action.js +0 -60
  190. package/providers/_builtin/ide/pearai/scripts/1.0/scripts.js +0 -111
  191. package/providers/_builtin/ide/pearai/scripts/1.0/send_message.js +0 -104
  192. package/providers/_builtin/ide/pearai/scripts/1.0/set_mode.js +0 -51
  193. package/providers/_builtin/ide/pearai/scripts/1.0/set_model.js +0 -54
  194. package/providers/_builtin/ide/pearai/scripts/1.0/switch_session.js +0 -81
  195. package/providers/_builtin/ide/trae/provider.json +0 -72
  196. package/providers/_builtin/ide/trae/scripts/1.0/focus_editor.js +0 -20
  197. package/providers/_builtin/ide/trae/scripts/1.0/list_chats.js +0 -24
  198. package/providers/_builtin/ide/trae/scripts/1.0/list_models.js +0 -39
  199. package/providers/_builtin/ide/trae/scripts/1.0/list_modes.js +0 -39
  200. package/providers/_builtin/ide/trae/scripts/1.0/new_session.js +0 -30
  201. package/providers/_builtin/ide/trae/scripts/1.0/open_panel.js +0 -44
  202. package/providers/_builtin/ide/trae/scripts/1.0/read_chat.js +0 -113
  203. package/providers/_builtin/ide/trae/scripts/1.0/resolve_action.js +0 -54
  204. package/providers/_builtin/ide/trae/scripts/1.0/scripts.js +0 -82
  205. package/providers/_builtin/ide/trae/scripts/1.0/send_message.js +0 -69
  206. package/providers/_builtin/ide/trae/scripts/1.0/set_mode.js +0 -15
  207. package/providers/_builtin/ide/trae/scripts/1.0/set_model.js +0 -15
  208. package/providers/_builtin/ide/trae/scripts/1.0/switch_session.js +0 -23
  209. package/providers/_builtin/ide/vscode/provider.json +0 -70
  210. package/providers/_builtin/ide/vscode-insiders/provider.json +0 -68
  211. package/providers/_builtin/ide/vscodium/provider.json +0 -69
  212. package/providers/_builtin/ide/windsurf/provider.json +0 -57
  213. package/providers/_builtin/ide/windsurf/scripts/1.0/focus_editor.js +0 -36
  214. package/providers/_builtin/ide/windsurf/scripts/1.0/list_chats.js +0 -23
  215. package/providers/_builtin/ide/windsurf/scripts/1.0/list_models.js +0 -56
  216. package/providers/_builtin/ide/windsurf/scripts/1.0/list_modes.js +0 -63
  217. package/providers/_builtin/ide/windsurf/scripts/1.0/list_sessions.js +0 -79
  218. package/providers/_builtin/ide/windsurf/scripts/1.0/new_session.js +0 -58
  219. package/providers/_builtin/ide/windsurf/scripts/1.0/open_panel.js +0 -67
  220. package/providers/_builtin/ide/windsurf/scripts/1.0/read_chat.js +0 -253
  221. package/providers/_builtin/ide/windsurf/scripts/1.0/resolve_action.js +0 -82
  222. package/providers/_builtin/ide/windsurf/scripts/1.0/scripts.js +0 -82
  223. package/providers/_builtin/ide/windsurf/scripts/1.0/send_message.js +0 -20
  224. package/providers/_builtin/ide/windsurf/scripts/1.0/set_mode.js +0 -43
  225. package/providers/_builtin/ide/windsurf/scripts/1.0/set_model.js +0 -49
  226. package/providers/_builtin/ide/windsurf/scripts/1.0/switch_session.js +0 -82
  227. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/focus_editor.js +0 -30
  228. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_chats.js +0 -117
  229. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_models.js +0 -39
  230. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_modes.js +0 -39
  231. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/new_session.js +0 -69
  232. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/open_panel.js +0 -58
  233. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/read_chat.js +0 -315
  234. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/resolve_action.js +0 -68
  235. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/scripts.js +0 -82
  236. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/send_message.js +0 -87
  237. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/set_mode.js +0 -15
  238. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/set_model.js +0 -15
  239. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/switch_session.js +0 -58
  240. package/providers/_builtin/registry.json +0 -376
  241. package/providers/_builtin/validate.js +0 -156
@@ -1,60 +0,0 @@
1
- {
2
- "type": "qwen-code-acp",
3
- "name": "Qwen Code (ACP)",
4
- "category": "acp",
5
- "displayName": "Qwen Code",
6
- "icon": "🟦",
7
- "install": "npm install -g @qwen-code/qwen-code (requires DASHSCOPE_API_KEY)",
8
- "spawn": {
9
- "command": "qwen-code",
10
- "args": [
11
- "--acp",
12
- "--experimental-skills"
13
- ],
14
- "shell": false
15
- },
16
- "auth": [
17
- {
18
- "type": "env_var",
19
- "id": "dashscope",
20
- "name": "DashScope API Key",
21
- "vars": [
22
- {
23
- "name": "DASHSCOPE_API_KEY"
24
- }
25
- ],
26
- "link": "https://dashscope.console.aliyun.com/apiKey"
27
- }
28
- ],
29
- "settings": {
30
- "autoApprove": {
31
- "type": "boolean",
32
- "default": false,
33
- "public": true,
34
- "label": "Auto Approve",
35
- "description": "Automatically approve all tool calls without user confirmation"
36
- },
37
- "approvalAlert": {
38
- "type": "boolean",
39
- "default": true,
40
- "public": true,
41
- "label": "Approval Alerts",
42
- "description": "Show notification when Qwen Code requires approval"
43
- },
44
- "longGeneratingAlert": {
45
- "type": "boolean",
46
- "default": true,
47
- "public": true,
48
- "label": "Long Generation Alert",
49
- "description": "Alert when generation takes too long"
50
- },
51
- "longGeneratingThresholdSec": {
52
- "type": "number",
53
- "default": 180,
54
- "public": true,
55
- "label": "Long Generation Threshold (sec)",
56
- "min": 30,
57
- "max": 600
58
- }
59
- }
60
- }
@@ -1,54 +0,0 @@
1
- {
2
- "type": "stakpak-acp",
3
- "name": "Stakpak (ACP)",
4
- "category": "acp",
5
- "displayName": "Stakpak",
6
- "icon": "🛡️",
7
- "install": "Download from https://github.com/stakpak/agent/releases",
8
- "spawn": {
9
- "command": "stakpak",
10
- "args": [
11
- "acp"
12
- ],
13
- "shell": false
14
- },
15
- "auth": [
16
- {
17
- "type": "agent",
18
- "id": "stakpak",
19
- "name": "Stakpak Auth",
20
- "description": "Configure provider through Stakpak setup"
21
- }
22
- ],
23
- "settings": {
24
- "autoApprove": {
25
- "type": "boolean",
26
- "default": false,
27
- "public": true,
28
- "label": "Auto Approve",
29
- "description": "Automatically approve all tool calls without user confirmation"
30
- },
31
- "approvalAlert": {
32
- "type": "boolean",
33
- "default": true,
34
- "public": true,
35
- "label": "Approval Alerts",
36
- "description": "Show notification when agent requires approval"
37
- },
38
- "longGeneratingAlert": {
39
- "type": "boolean",
40
- "default": true,
41
- "public": true,
42
- "label": "Long Generation Alert",
43
- "description": "Alert when generation takes too long"
44
- },
45
- "longGeneratingThresholdSec": {
46
- "type": "number",
47
- "default": 180,
48
- "public": true,
49
- "label": "Long Generation Threshold (sec)",
50
- "min": 30,
51
- "max": 600
52
- }
53
- }
54
- }
@@ -1,54 +0,0 @@
1
- {
2
- "type": "vtcode-acp",
3
- "name": "VT Code (ACP)",
4
- "category": "acp",
5
- "displayName": "VT Code",
6
- "icon": "🟣",
7
- "install": "npm install -g vtcode",
8
- "spawn": {
9
- "command": "vtcode",
10
- "args": [
11
- "acp"
12
- ],
13
- "shell": false
14
- },
15
- "auth": [
16
- {
17
- "type": "agent",
18
- "id": "vtcode",
19
- "name": "VT Code Auth",
20
- "description": "Configure provider through VT Code setup"
21
- }
22
- ],
23
- "settings": {
24
- "autoApprove": {
25
- "type": "boolean",
26
- "default": false,
27
- "public": true,
28
- "label": "Auto Approve",
29
- "description": "Automatically approve all tool calls without user confirmation"
30
- },
31
- "approvalAlert": {
32
- "type": "boolean",
33
- "default": true,
34
- "public": true,
35
- "label": "Approval Alerts",
36
- "description": "Show notification when agent requires approval"
37
- },
38
- "longGeneratingAlert": {
39
- "type": "boolean",
40
- "default": true,
41
- "public": true,
42
- "label": "Long Generation Alert",
43
- "description": "Alert when generation takes too long"
44
- },
45
- "longGeneratingThresholdSec": {
46
- "type": "number",
47
- "default": 180,
48
- "public": true,
49
- "label": "Long Generation Threshold (sec)",
50
- "min": 30,
51
- "max": 600
52
- }
53
- }
54
- }
@@ -1,37 +0,0 @@
1
- {
2
- "type": "aider-cli",
3
- "name": "Aider",
4
- "category": "cli",
5
- "aliases": [
6
- "aider"
7
- ],
8
- "icon": "🤖",
9
- "displayName": "Aider",
10
- "settings": {
11
- "mode": {
12
- "type": "select",
13
- "default": "chat",
14
- "public": true,
15
- "label": "Display Mode",
16
- "description": "terminal: Native PTY view, chat: Parsed message view",
17
- "options": [
18
- "terminal",
19
- "chat"
20
- ]
21
- }
22
- },
23
- "binary": "aider",
24
- "spawn": {
25
- "command": "aider",
26
- "args": [],
27
- "shell": true,
28
- "env": {}
29
- },
30
- "compatibility": [
31
- {
32
- "ideVersion": ">=0.86.0",
33
- "scriptDir": "scripts/1.0"
34
- }
35
- ],
36
- "defaultScriptDir": "scripts/1.0"
37
- }
@@ -1,20 +0,0 @@
1
- /**
2
- * Aider — detect_status
3
- * Aider uses a simpler TUI with '>' prompts and tool output markers.
4
- */
5
- 'use strict';
6
- module.exports = function detectStatus(input) {
7
- const { tail } = input;
8
- if (!tail) return 'idle';
9
- // Aider approval: "Allow creation of new file" / "Run shell command?"
10
- if (/Allow\s*creation/i.test(tail) && /\(y\/n\)/i.test(tail)) return 'waiting_approval';
11
- if (/Run\s*shell\s*command/i.test(tail)) return 'waiting_approval';
12
- if (/Apply\s*(edit|change)/i.test(tail) && /\(y\/n\)/i.test(tail)) return 'waiting_approval';
13
- // generating
14
- if (/[\u2800-\u28ff]/.test(tail)) return 'generating';
15
- if (/[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]/.test(tail)) return 'generating';
16
- if (/Thinking|Sending|Streaming/i.test(tail)) return 'generating';
17
- // Aider shows "Tokens:" after completion — if we see that, it's idle
18
- if (/Tokens:/i.test(tail)) return 'idle';
19
- return 'idle';
20
- };
@@ -1,10 +0,0 @@
1
- 'use strict';
2
- module.exports = function parseApproval(input) {
3
- const { tail } = input;
4
- if (!tail) return null;
5
- const hasApproval = /Allow\s*creation/i.test(tail) || /Run\s*shell\s*command/i.test(tail) ||
6
- /Apply\s*(edit|change)/i.test(tail) || /\(y\/n\)/i.test(tail);
7
- if (!hasApproval) return null;
8
- const lines = tail.split('\n').map(l => l.trim()).filter(l => l && l.length > 2);
9
- return { message: lines.slice(-5).join(' ').slice(0, 200) || 'Approval required', buttons: ['Yes (y)', 'No (n)'] };
10
- };
@@ -1,49 +0,0 @@
1
- 'use strict';
2
- const detectStatus = require('./detect_status.js');
3
- const parseApproval = require('./parse_approval.js');
4
-
5
- function splitTurns(buffer) {
6
- const messages = [];
7
- if (!buffer || buffer.length < 5) return messages;
8
- const lines = buffer.split('\n');
9
- let currentRole = null, currentContent = [], msgIndex = 0, started = false;
10
- for (const line of lines) {
11
- const trimmed = line.trim();
12
- // Aider prompt is just '>' at start of line
13
- const userMatch = trimmed.match(/^[❯›>]\s+(.+)$/);
14
- if (userMatch && userMatch[1].length > 1) {
15
- started = true;
16
- if (currentRole && currentContent.length > 0) {
17
- const text = currentContent.join('\n').trim();
18
- if (text.length > 1) { messages.push({ id: `msg_${msgIndex}`, role: currentRole, content: text.slice(0, 6000), index: msgIndex, kind: 'standard' }); msgIndex++; }
19
- }
20
- currentRole = 'user'; currentContent = [userMatch[1]]; continue;
21
- }
22
- if (!started) continue;
23
- if (currentRole === 'user' && trimmed && !userMatch) {
24
- const text = currentContent.join('\n').trim();
25
- if (text.length > 1) { messages.push({ id: `msg_${msgIndex}`, role: 'user', content: text, index: msgIndex, kind: 'standard' }); msgIndex++; }
26
- currentRole = 'assistant'; currentContent = [];
27
- }
28
- if (!trimmed || /^[\u2800-\u28ff]+$/.test(trimmed)) continue;
29
- if (currentRole) currentContent.push(trimmed);
30
- }
31
- if (currentRole && currentContent.length > 0) {
32
- const text = currentContent.join('\n').trim();
33
- if (text.length > 1) messages.push({ id: `msg_${msgIndex}`, role: currentRole, content: text.slice(0, 6000), index: msgIndex, kind: 'standard' });
34
- }
35
- return messages.length > 50 ? messages.slice(-50) : messages;
36
- }
37
-
38
- module.exports = function parseOutput(input) {
39
- const { buffer, recentBuffer, partialResponse, screenText } = input;
40
- const transcript = screenText || buffer;
41
- const tail = recentBuffer || (transcript || '').slice(-500);
42
- const status = detectStatus({ tail });
43
- const activeModal = status === 'waiting_approval' ? parseApproval({ buffer: transcript, tail }) : null;
44
- const messages = splitTurns(transcript);
45
- if (status === 'generating' && partialResponse && partialResponse.trim().length > 2) {
46
- messages.push({ id: 'msg_partial', role: 'assistant', content: partialResponse.trim().slice(0, 6000), index: messages.length, kind: 'standard', meta: { streaming: true } });
47
- }
48
- return { id: 'cli_session', status, title: 'Aider', messages, activeModal };
49
- };
@@ -1,7 +0,0 @@
1
- 'use strict';
2
- const path = require('path');
3
- const DIR = __dirname;
4
- function loadModule(name) { try { return require(path.join(DIR, name)); } catch { return null; } }
5
- module.exports.parseOutput = (input) => { const m = loadModule('parse_output.js'); return m ? m(input) : null; };
6
- module.exports.detectStatus = (input) => { const m = loadModule('detect_status.js'); return m ? m(input) : null; };
7
- module.exports.parseApproval = (input) => { const m = loadModule('parse_approval.js'); return m ? m(input) : null; };
@@ -1,109 +0,0 @@
1
- {
2
- "type": "claude-cli",
3
- "name": "Claude Code",
4
- "category": "cli",
5
- "aliases": [
6
- "claude",
7
- "claude-code"
8
- ],
9
- "icon": "🤖",
10
- "displayName": "Claude Code",
11
- "settings": {
12
- "mode": {
13
- "type": "select",
14
- "default": "chat",
15
- "public": true,
16
- "label": "Display Mode",
17
- "description": "terminal: Native PTY view, chat: Parsed message view",
18
- "options": [
19
- "terminal",
20
- "chat"
21
- ]
22
- },
23
- "notifications": {
24
- "type": "boolean",
25
- "default": true,
26
- "public": true,
27
- "label": "Notifications",
28
- "description": "Display notifications on state changes"
29
- },
30
- "autoApprove": {
31
- "type": "boolean",
32
- "default": false,
33
- "public": true,
34
- "label": "Auto Approve",
35
- "description": "Automatically approve tool execution without prompt"
36
- },
37
- "approvalAlert": {
38
- "type": "boolean",
39
- "default": true,
40
- "public": true,
41
- "label": "Approval Notifications",
42
- "description": "Show notification when approval is needed"
43
- },
44
- "longGeneratingAlert": {
45
- "type": "boolean",
46
- "default": true,
47
- "public": true,
48
- "label": "Long Generation Alert",
49
- "description": "Alert when generation takes too long"
50
- },
51
- "longGeneratingThresholdSec": {
52
- "type": "number",
53
- "default": 180,
54
- "public": true,
55
- "label": "Long Generation Threshold (sec)",
56
- "min": 30,
57
- "max": 600
58
- }
59
- },
60
- "binary": "claude",
61
- "spawn": {
62
- "command": "claude",
63
- "args": [],
64
- "shell": true,
65
- "env": {}
66
- },
67
- "patterns": {
68
- "prompt": [
69
- { "source": "Type your message", "flags": "i" },
70
- { "source": "for\\s*shortcuts", "flags": "i" },
71
- { "source": "\\?\\s*for\\s*help", "flags": "i" },
72
- { "source": "Press enter", "flags": "i" }
73
- ],
74
- "generating": [
75
- { "source": "[\\u2800-\\u28ff]", "flags": "" },
76
- { "source": "esc to (cancel|interrupt|stop)", "flags": "i" },
77
- { "source": "generating\\.\\.\\.", "flags": "i" },
78
- { "source": "Claude is (?:thinking|processing|working)", "flags": "i" },
79
- { "source": "Flummoxing", "flags": "i" }
80
- ],
81
- "approval": [
82
- { "source": "Allow\\s*once", "flags": "i" },
83
- { "source": "Always\\s*allow", "flags": "i" },
84
- { "source": "\\(y/n\\)", "flags": "i" },
85
- { "source": "\\[Y/n\\]", "flags": "i" }
86
- ],
87
- "ready": [
88
- { "source": "for\\s*shortcuts", "flags": "i" },
89
- { "source": "[›❯]\\s*$", "flags": "m" }
90
- ],
91
- "dialog": [
92
- { "source": "Quick safety check", "flags": "i" },
93
- { "source": "Is this a project", "flags": "i" },
94
- { "source": "Enter to confirm", "flags": "i" }
95
- ]
96
- },
97
- "approvalKeys": {
98
- "0": "1",
99
- "1": "2",
100
- "2": "3"
101
- },
102
- "compatibility": [
103
- {
104
- "ideVersion": ">=2.1.0",
105
- "scriptDir": "scripts/1.0"
106
- }
107
- ],
108
- "defaultScriptDir": "scripts/1.0"
109
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * Claude Code — detect_status
3
- *
4
- * Lightweight status detection for high-frequency polling.
5
- * Input: { tail: string } — last ~500 chars of ANSI-stripped PTY output
6
- * Output: 'idle' | 'generating' | 'waiting_approval'
7
- */
8
-
9
- 'use strict';
10
-
11
- module.exports = function detectStatus(input) {
12
- const { tail } = input;
13
- if (!tail) return 'idle';
14
-
15
- // ─── waiting_approval (highest priority) ───
16
- // Claude Code approval menu items
17
- if (/Allow\s*once/i.test(tail) || /Always\s*allow/i.test(tail)) return 'waiting_approval';
18
- if (/\(y\/n\)/i.test(tail) || /\[Y\/n\]/i.test(tail)) return 'waiting_approval';
19
-
20
- // ─── generating ───
21
- // Braille spinner characters (universal TUI spinner)
22
- if (/[\u2800-\u28ff]/.test(tail)) return 'generating';
23
- // Status line indicators
24
- if (/esc to (cancel|interrupt|stop)/i.test(tail)) return 'generating';
25
- if (/generating\.\.\./i.test(tail)) return 'generating';
26
- if (/Claude is (?:thinking|processing|working)/i.test(tail)) return 'generating';
27
- if (/Flummoxing/i.test(tail)) return 'generating';
28
-
29
- // ─── idle ───
30
- return 'idle';
31
- };
@@ -1,38 +0,0 @@
1
- /**
2
- * Claude Code — parse_approval
3
- *
4
- * Extract approval modal info from PTY output.
5
- * Input: { buffer: string, tail: string }
6
- * Output: { message: string, buttons: string[] } | null
7
- */
8
-
9
- 'use strict';
10
-
11
- module.exports = function parseApproval(input) {
12
- const { buffer, tail } = input;
13
- const check = tail || (buffer || '').slice(-800);
14
- if (!check) return null;
15
-
16
- // Claude Code approval patterns
17
- const hasApproval =
18
- /Allow\s*once/i.test(check) ||
19
- /Always\s*allow/i.test(check) ||
20
- /\(y\/n\)/i.test(check) ||
21
- /\[Y\/n\]/i.test(check);
22
-
23
- if (!hasApproval) return null;
24
-
25
- // Extract context message (last few meaningful lines before the approval)
26
- const lines = check.split('\n')
27
- .map(l => l.trim())
28
- .filter(l => l && !/^[─═╭╮╰╯│]+$/.test(l));
29
-
30
- const message = lines.slice(-5).join(' ').slice(0, 200) || 'Approval required';
31
-
32
- // Claude Code-specific button labels
33
- // These map to approvalKeys in provider.json: { "0": "1", "1": "2", "2": "3" }
34
- return {
35
- message,
36
- buttons: ['Yes (y)', 'Always allow (a)', 'Deny (Esc)'],
37
- };
38
- };
@@ -1,164 +0,0 @@
1
- /**
2
- * Claude Code — parse_output
3
- *
4
- * Full PTY buffer → ReadChatResult conversion.
5
- * Called less frequently than detectStatus (on demand, not polling).
6
- *
7
- * Input: {
8
- * buffer: string, // Full ANSI-stripped accumulated PTY output
9
- * rawBuffer: string, // Raw PTY output (with ANSI)
10
- * recentBuffer: string, // Recent 1000 chars (ANSI-stripped)
11
- * messages: Array, // Previously parsed messages (for delta)
12
- * partialResponse: string, // Current partial response being generated
13
- * }
14
- *
15
- * Output: ReadChatResult {
16
- * messages: [{ id, role, content, index, kind?, meta? }],
17
- * status: AgentStatus,
18
- * activeModal?: ModalInfo | null,
19
- * title?: string,
20
- * }
21
- */
22
-
23
- 'use strict';
24
-
25
- const detectStatus = require('./detect_status.js');
26
- const parseApproval = require('./parse_approval.js');
27
-
28
- function normalizeText(text) {
29
- return String(text || '')
30
- .replace(/\s+/g, ' ')
31
- .trim();
32
- }
33
-
34
- function sanitizeLine(line) {
35
- return String(line || '').replace(/\s+$/, '');
36
- }
37
-
38
- function isNoiseLine(line) {
39
- const trimmed = line.trim();
40
- if (!trimmed) return true;
41
- if (/^[─═╭╮╰╯│┌┐└┘├┤┬┴┼]+$/.test(trimmed)) return true;
42
- if (/^Type your message/i.test(trimmed)) return true;
43
- if (/^for\s*shortcuts/i.test(trimmed)) return true;
44
- if (/^\? for help/i.test(trimmed)) return true;
45
- if (/^Press enter/i.test(trimmed)) return true;
46
- if (/^[\u2800-\u28ff]+$/.test(trimmed)) return true;
47
- if (/^esc to (cancel|interrupt|stop)/i.test(trimmed)) return true;
48
- if (/^Allow\s*once/i.test(trimmed)) return true;
49
- if (/^Always\s*allow/i.test(trimmed)) return true;
50
- if (/^\[(Y\/n|y\/n)\]$/i.test(trimmed)) return true;
51
- return false;
52
- }
53
-
54
- function extractPromptLine(lines) {
55
- for (let i = lines.length - 1; i >= 0; i--) {
56
- const trimmed = lines[i].trim();
57
- const match = trimmed.match(/^[❯›>]\s+(.+)$/);
58
- if (match && match[1].trim().length > 0) {
59
- return { index: i, text: match[1].trim() };
60
- }
61
- }
62
- return { index: -1, text: '' };
63
- }
64
-
65
- function extractVisibleAssistant(screenText) {
66
- if (!screenText) return { promptText: '', assistantText: '' };
67
- const lines = screenText.split('\n').map(sanitizeLine);
68
- const prompt = extractPromptLine(lines);
69
- const afterPrompt = prompt.index >= 0 ? lines.slice(prompt.index + 1) : lines;
70
- const contentLines = afterPrompt.filter(line => !isNoiseLine(line));
71
- return {
72
- promptText: prompt.text,
73
- assistantText: contentLines.join('\n').trim(),
74
- };
75
- }
76
-
77
- function toMessageObjects(messages, status) {
78
- const max = 50;
79
- const slice = messages.slice(-max);
80
- return slice.map((message, index) => ({
81
- id: `msg_${index}`,
82
- role: message.role,
83
- content: typeof message.content === 'string' && message.content.length > 6000
84
- ? message.content.slice(0, 6000) + '\n[... truncated]'
85
- : message.content,
86
- index,
87
- kind: 'standard',
88
- ...(status === 'generating' && index === slice.length - 1 && message.role === 'assistant'
89
- ? { meta: { streaming: true } }
90
- : {}),
91
- }));
92
- }
93
-
94
- function buildMessages(previousMessages, promptText, assistantText, status, partialResponse) {
95
- const base = Array.isArray(previousMessages)
96
- ? previousMessages.map(m => ({
97
- role: m.role,
98
- content: typeof m.content === 'string' ? m.content : String(m.content || ''),
99
- timestamp: m.timestamp,
100
- }))
101
- : [];
102
-
103
- const last = base[base.length - 1];
104
- if (promptText) {
105
- const normalizedPrompt = normalizeText(promptText);
106
- if (!last || last.role !== 'user' || normalizeText(last.content) !== normalizedPrompt) {
107
- base.push({ role: 'user', content: promptText });
108
- }
109
- }
110
-
111
- const candidateAssistant = normalizeText(partialResponse || '') || assistantText;
112
- if (candidateAssistant) {
113
- const normalizedAssistant = normalizeText(candidateAssistant);
114
- const lastMsg = base[base.length - 1];
115
- if (lastMsg && lastMsg.role === 'assistant') {
116
- const existing = normalizeText(lastMsg.content);
117
- if (normalizedAssistant !== existing) {
118
- lastMsg.content = candidateAssistant;
119
- }
120
- } else {
121
- base.push({ role: 'assistant', content: candidateAssistant });
122
- }
123
- }
124
-
125
- if (status !== 'generating') {
126
- const lastMsg = base[base.length - 1];
127
- if (lastMsg?.role === 'assistant') {
128
- const visible = normalizeText(assistantText);
129
- if (visible && visible !== normalizeText(lastMsg.content)) {
130
- lastMsg.content = assistantText;
131
- }
132
- }
133
- }
134
-
135
- return base;
136
- }
137
-
138
- module.exports = function parseOutput(input) {
139
- const { buffer, recentBuffer, partialResponse, screenText, messages: previousMessages } = input;
140
- const transcript = screenText || buffer || '';
141
-
142
- // Status
143
- const tail = (recentBuffer || (transcript || '').slice(-500));
144
- const status = detectStatus({ tail });
145
-
146
- // Modal
147
- const activeModal = status === 'waiting_approval'
148
- ? parseApproval({ buffer: transcript, tail })
149
- : null;
150
-
151
- const { promptText, assistantText } = extractVisibleAssistant(transcript);
152
- const messages = toMessageObjects(
153
- buildMessages(previousMessages, promptText, assistantText, status, partialResponse),
154
- status
155
- );
156
-
157
- return {
158
- id: 'cli_session',
159
- status,
160
- title: 'Claude Code',
161
- messages,
162
- activeModal,
163
- };
164
- };