adhdev 0.4.0 → 0.4.1
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.
- package/dist/cli-entrypoint.js +685 -236
- package/dist/cli-entrypoint.js.map +1 -1
- package/dist/index.js +676 -226
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/providers/_builtin/COMPATIBILITY.md +0 -217
- package/providers/_builtin/CONTRIBUTING.md +0 -141
- package/providers/_builtin/README.md +0 -51
- package/providers/_builtin/_helpers/index.js +0 -188
- package/providers/_builtin/acp/agentpool/provider.json +0 -54
- package/providers/_builtin/acp/amp/provider.json +0 -52
- package/providers/_builtin/acp/auggie/provider.json +0 -57
- package/providers/_builtin/acp/autodev/provider.json +0 -54
- package/providers/_builtin/acp/autohand/provider.json +0 -52
- package/providers/_builtin/acp/blackbox-ai/provider.json +0 -54
- package/providers/_builtin/acp/claude-agent/provider.json +0 -57
- package/providers/_builtin/acp/cline-acp/provider.json +0 -54
- package/providers/_builtin/acp/codebuddy/provider.json +0 -54
- package/providers/_builtin/acp/codex-cli/provider.json +0 -57
- package/providers/_builtin/acp/corust-agent/provider.json +0 -52
- package/providers/_builtin/acp/crow-cli/provider.json +0 -54
- package/providers/_builtin/acp/cursor-acp/provider.json +0 -54
- package/providers/_builtin/acp/deepagents/provider.json +0 -52
- package/providers/_builtin/acp/dimcode/provider.json +0 -54
- package/providers/_builtin/acp/docker-cagent/provider.json +0 -57
- package/providers/_builtin/acp/factory-droid/provider.json +0 -60
- package/providers/_builtin/acp/fast-agent/provider.json +0 -52
- package/providers/_builtin/acp/gemini-cli/provider.json +0 -114
- package/providers/_builtin/acp/github-copilot/provider.json +0 -54
- package/providers/_builtin/acp/goose/provider.json +0 -57
- package/providers/_builtin/acp/junie/provider.json +0 -52
- package/providers/_builtin/acp/kilo/provider.json +0 -54
- package/providers/_builtin/acp/kimi-cli/provider.json +0 -57
- package/providers/_builtin/acp/minion-code/provider.json +0 -52
- package/providers/_builtin/acp/mistral-vibe/provider.json +0 -57
- package/providers/_builtin/acp/nova/provider.json +0 -54
- package/providers/_builtin/acp/openclaw/provider.json +0 -54
- package/providers/_builtin/acp/opencode/provider.json +0 -52
- package/providers/_builtin/acp/openhands/provider.json +0 -54
- package/providers/_builtin/acp/pi-acp/provider.json +0 -52
- package/providers/_builtin/acp/qoder/provider.json +0 -54
- package/providers/_builtin/acp/qwen-code/provider.json +0 -60
- package/providers/_builtin/acp/stakpak/provider.json +0 -54
- package/providers/_builtin/acp/vtcode/provider.json +0 -54
- package/providers/_builtin/cli/claude-cli/provider.json +0 -100
- package/providers/_builtin/cli/codex-cli/provider.json +0 -89
- package/providers/_builtin/cli/gemini-cli/provider.json +0 -93
- package/providers/_builtin/docs/CDP_SELECTOR_GUIDE.md +0 -370
- package/providers/_builtin/docs/PROVIDER_GUIDE.md +0 -916
- package/providers/_builtin/extension/cline/provider.json +0 -35
- package/providers/_builtin/extension/cline/scripts/focus_editor.js +0 -48
- package/providers/_builtin/extension/cline/scripts/list_chats.js +0 -100
- package/providers/_builtin/extension/cline/scripts/list_models.js +0 -43
- package/providers/_builtin/extension/cline/scripts/list_modes.js +0 -35
- package/providers/_builtin/extension/cline/scripts/new_session.js +0 -85
- package/providers/_builtin/extension/cline/scripts/open_panel.js +0 -25
- package/providers/_builtin/extension/cline/scripts/read_chat.js +0 -257
- package/providers/_builtin/extension/cline/scripts/resolve_action.js +0 -83
- package/providers/_builtin/extension/cline/scripts/send_message.js +0 -95
- package/providers/_builtin/extension/cline/scripts/set_mode.js +0 -36
- package/providers/_builtin/extension/cline/scripts/set_model.js +0 -36
- package/providers/_builtin/extension/cline/scripts/switch_session.js +0 -206
- package/providers/_builtin/extension/cline/scripts.js +0 -73
- package/providers/_builtin/extension/roo-code/provider.json +0 -35
- package/providers/_builtin/extension/roo-code/scripts.js +0 -659
- package/providers/_builtin/ide/antigravity/provider.json +0 -63
- package/providers/_builtin/ide/antigravity/scripts/focus_editor.js +0 -20
- package/providers/_builtin/ide/antigravity/scripts/legacy/list_models.js +0 -38
- package/providers/_builtin/ide/antigravity/scripts/legacy/list_modes.js +0 -48
- package/providers/_builtin/ide/antigravity/scripts/legacy/scripts.js +0 -64
- package/providers/_builtin/ide/antigravity/scripts/legacy/set_mode.js +0 -34
- package/providers/_builtin/ide/antigravity/scripts/legacy/set_model.js +0 -47
- package/providers/_builtin/ide/antigravity/scripts/list_chats.js +0 -137
- package/providers/_builtin/ide/antigravity/scripts/list_models.js +0 -61
- package/providers/_builtin/ide/antigravity/scripts/list_modes.js +0 -72
- package/providers/_builtin/ide/antigravity/scripts/new_session.js +0 -75
- package/providers/_builtin/ide/antigravity/scripts/read_chat.js +0 -262
- package/providers/_builtin/ide/antigravity/scripts/resolve_action.js +0 -68
- package/providers/_builtin/ide/antigravity/scripts/send_message.js +0 -56
- package/providers/_builtin/ide/antigravity/scripts/set_mode.js +0 -67
- package/providers/_builtin/ide/antigravity/scripts/set_model.js +0 -72
- package/providers/_builtin/ide/antigravity/scripts/switch_session.js +0 -114
- package/providers/_builtin/ide/antigravity/scripts.js +0 -67
- package/providers/_builtin/ide/cursor/provider.json +0 -59
- package/providers/_builtin/ide/cursor/scripts.js +0 -458
- package/providers/_builtin/ide/kiro/provider.json +0 -60
- package/providers/_builtin/ide/kiro/scripts/focus_editor.js +0 -20
- package/providers/_builtin/ide/kiro/scripts/open_panel.js +0 -47
- package/providers/_builtin/ide/kiro/scripts/resolve_action.js +0 -54
- package/providers/_builtin/ide/kiro/scripts/send_message.js +0 -29
- package/providers/_builtin/ide/kiro/scripts/webview_list_models.js +0 -39
- package/providers/_builtin/ide/kiro/scripts/webview_list_modes.js +0 -39
- package/providers/_builtin/ide/kiro/scripts/webview_list_sessions.js +0 -21
- package/providers/_builtin/ide/kiro/scripts/webview_new_session.js +0 -34
- package/providers/_builtin/ide/kiro/scripts/webview_read_chat.js +0 -68
- package/providers/_builtin/ide/kiro/scripts/webview_send_message.js +0 -72
- package/providers/_builtin/ide/kiro/scripts/webview_set_mode.js +0 -15
- package/providers/_builtin/ide/kiro/scripts/webview_set_model.js +0 -15
- package/providers/_builtin/ide/kiro/scripts/webview_switch_session.js +0 -26
- package/providers/_builtin/ide/kiro/scripts.js +0 -62
- package/providers/_builtin/ide/pearai/provider.json +0 -60
- package/providers/_builtin/ide/pearai/scripts/focus_editor.js +0 -20
- package/providers/_builtin/ide/pearai/scripts/list_sessions.js +0 -38
- package/providers/_builtin/ide/pearai/scripts/new_session.js +0 -55
- package/providers/_builtin/ide/pearai/scripts/open_panel.js +0 -46
- package/providers/_builtin/ide/pearai/scripts/resolve_action.js +0 -54
- package/providers/_builtin/ide/pearai/scripts/send_message.js +0 -29
- package/providers/_builtin/ide/pearai/scripts/webview_list_models.js +0 -43
- package/providers/_builtin/ide/pearai/scripts/webview_list_modes.js +0 -35
- package/providers/_builtin/ide/pearai/scripts/webview_list_sessions.js +0 -62
- package/providers/_builtin/ide/pearai/scripts/webview_new_session.js +0 -49
- package/providers/_builtin/ide/pearai/scripts/webview_read_chat.js +0 -92
- package/providers/_builtin/ide/pearai/scripts/webview_resolve_action.js +0 -59
- package/providers/_builtin/ide/pearai/scripts/webview_send_message.js +0 -72
- package/providers/_builtin/ide/pearai/scripts/webview_set_mode.js +0 -36
- package/providers/_builtin/ide/pearai/scripts/webview_set_model.js +0 -36
- package/providers/_builtin/ide/pearai/scripts/webview_switch_session.js +0 -34
- package/providers/_builtin/ide/pearai/scripts.js +0 -74
- package/providers/_builtin/ide/trae/provider.json +0 -59
- package/providers/_builtin/ide/trae/scripts/focus_editor.js +0 -20
- package/providers/_builtin/ide/trae/scripts/list_chats.js +0 -24
- package/providers/_builtin/ide/trae/scripts/list_models.js +0 -39
- package/providers/_builtin/ide/trae/scripts/list_modes.js +0 -39
- package/providers/_builtin/ide/trae/scripts/new_session.js +0 -30
- package/providers/_builtin/ide/trae/scripts/open_panel.js +0 -44
- package/providers/_builtin/ide/trae/scripts/read_chat.js +0 -113
- package/providers/_builtin/ide/trae/scripts/resolve_action.js +0 -54
- package/providers/_builtin/ide/trae/scripts/send_message.js +0 -69
- package/providers/_builtin/ide/trae/scripts/set_mode.js +0 -15
- package/providers/_builtin/ide/trae/scripts/set_model.js +0 -15
- package/providers/_builtin/ide/trae/scripts/switch_session.js +0 -23
- package/providers/_builtin/ide/trae/scripts.js +0 -57
- package/providers/_builtin/ide/vscode/provider.json +0 -57
- package/providers/_builtin/ide/vscode-insiders/provider.json +0 -55
- package/providers/_builtin/ide/vscodium/provider.json +0 -56
- package/providers/_builtin/ide/windsurf/provider.json +0 -46
- package/providers/_builtin/ide/windsurf/scripts/focus_editor.js +0 -30
- package/providers/_builtin/ide/windsurf/scripts/list_chats.js +0 -117
- package/providers/_builtin/ide/windsurf/scripts/list_models.js +0 -39
- package/providers/_builtin/ide/windsurf/scripts/list_modes.js +0 -39
- package/providers/_builtin/ide/windsurf/scripts/new_session.js +0 -69
- package/providers/_builtin/ide/windsurf/scripts/open_panel.js +0 -58
- package/providers/_builtin/ide/windsurf/scripts/read_chat.js +0 -297
- package/providers/_builtin/ide/windsurf/scripts/resolve_action.js +0 -68
- package/providers/_builtin/ide/windsurf/scripts/send_message.js +0 -87
- package/providers/_builtin/ide/windsurf/scripts/set_mode.js +0 -15
- package/providers/_builtin/ide/windsurf/scripts/set_model.js +0 -15
- package/providers/_builtin/ide/windsurf/scripts/switch_session.js +0 -58
- package/providers/_builtin/ide/windsurf/scripts.js +0 -57
- package/providers/_builtin/validate.js +0 -156
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adhdev",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "ADHDev — Agent Dashboard Hub for Dev. Remote-control AI coding agents from anywhere.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
16
|
"dist",
|
|
17
|
-
"providers",
|
|
18
17
|
"README.md"
|
|
19
18
|
],
|
|
20
19
|
"keywords": [
|
|
@@ -42,6 +41,7 @@
|
|
|
42
41
|
"node": ">=18"
|
|
43
42
|
},
|
|
44
43
|
"dependencies": {
|
|
44
|
+
"@adhdev/daemon-core": "*",
|
|
45
45
|
"chalk": "^5.3.0",
|
|
46
46
|
"commander": "^12.1.0",
|
|
47
47
|
"conf": "^13.0.0",
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
# ADHDev Provider Compatibility Matrix
|
|
2
|
-
|
|
3
|
-
> **Last updated:** 2026-03-18
|
|
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,141 +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
|
-
Create a `provider.js` in the appropriate category directory:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
# IDE provider
|
|
20
|
-
mkdir -p ide/my-ide && touch ide/my-ide/provider.js
|
|
21
|
-
|
|
22
|
-
# CLI agent
|
|
23
|
-
mkdir -p cli/my-cli && touch cli/my-cli/provider.js
|
|
24
|
-
|
|
25
|
-
# ACP agent
|
|
26
|
-
mkdir -p acp/my-agent && touch acp/my-agent/provider.js
|
|
27
|
-
|
|
28
|
-
# VS Code extension
|
|
29
|
-
mkdir -p extension/my-ext && touch extension/my-ext/provider.js
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### 3. Provider Structure
|
|
33
|
-
|
|
34
|
-
```javascript
|
|
35
|
-
module.exports = {
|
|
36
|
-
type: 'my-ide', // unique identifier (must not conflict)
|
|
37
|
-
name: 'My IDE', // display name
|
|
38
|
-
category: 'ide', // 'ide' | 'extension' | 'cli' | 'acp'
|
|
39
|
-
displayName: 'My IDE',
|
|
40
|
-
icon: '🔧',
|
|
41
|
-
|
|
42
|
-
// IDE: CDP configuration
|
|
43
|
-
cdpPorts: [9357, 9358], // use next available ports (see table below)
|
|
44
|
-
cli: 'my-ide',
|
|
45
|
-
paths: { darwin: ['/Applications/My IDE.app'] },
|
|
46
|
-
|
|
47
|
-
// CDP scripts
|
|
48
|
-
scripts: {
|
|
49
|
-
readChat() { return `(() => { /* ... */ })()`; },
|
|
50
|
-
sendMessage(text) { return `(() => { /* ... */ })()`; },
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
> 📖 Full guide: [PROVIDER_GUIDE.md](https://github.com/vilmire/adhdev/blob/main/docs/PROVIDER_GUIDE.md)
|
|
56
|
-
|
|
57
|
-
### 4. Validate
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
# Syntax check
|
|
61
|
-
node -c ide/my-ide/provider.js
|
|
62
|
-
|
|
63
|
-
# Schema validation (required fields, port conflicts, etc.)
|
|
64
|
-
node validate.js ide/my-ide/provider.js
|
|
65
|
-
|
|
66
|
-
# Validate all providers
|
|
67
|
-
node validate.js
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### 5. Local Testing
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# If ADHDev is installed:
|
|
74
|
-
# Copy your provider to the user directory for instant loading
|
|
75
|
-
mkdir -p ~/.adhdev/providers/ide/my-ide
|
|
76
|
-
cp ide/my-ide/provider.js ~/.adhdev/providers/ide/my-ide/
|
|
77
|
-
|
|
78
|
-
# Restart daemon to pick up changes
|
|
79
|
-
adhdev daemon:restart
|
|
80
|
-
|
|
81
|
-
# Test scripts via DevConsole
|
|
82
|
-
# Open http://127.0.0.1:19280 → IDE tab → Scripts → Run
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 6. Submit PR
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
git checkout -b feat/add-my-ide
|
|
89
|
-
git add -A
|
|
90
|
-
git commit -m "feat: add My IDE provider"
|
|
91
|
-
git push origin feat/add-my-ide
|
|
92
|
-
# Open a Pull Request on GitHub
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## PR Checklist
|
|
98
|
-
|
|
99
|
-
- [ ] `node validate.js` passes with no errors
|
|
100
|
-
- [ ] `type` does not conflict with existing providers
|
|
101
|
-
- [ ] CDP ports do not overlap with existing ones (for IDE providers)
|
|
102
|
-
- [ ] At least `readChat` + `sendMessage` scripts implemented
|
|
103
|
-
- [ ] Tested via DevConsole (if ADHDev is available)
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Reference Implementations
|
|
108
|
-
|
|
109
|
-
| Category | Reference | Key Features |
|
|
110
|
-
|----------|-----------|-------------|
|
|
111
|
-
| **IDE (mainframe)** | `ide/cursor/provider.js` | CDP evaluate, `inputMethod` |
|
|
112
|
-
| **IDE (webview)** | `ide/kiro/provider.js` | `webviewMatchText`, `webview*` scripts |
|
|
113
|
-
| **CLI** | `cli/gemini-cli/provider.js` | `aliases`, spawn config |
|
|
114
|
-
| **ACP** | `acp/gemini-cli/provider.js` | `auth`, `spawn`, `settings` |
|
|
115
|
-
| **Extension** | `extension/cline/provider.js` | `extensionIdPattern`, webview |
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## CDP Port Registry
|
|
120
|
-
|
|
121
|
-
| Port | Provider |
|
|
122
|
-
|------|----------|
|
|
123
|
-
| 9333–9334 | Cursor |
|
|
124
|
-
| 9335–9336 | Antigravity |
|
|
125
|
-
| 9337–9338 | Windsurf |
|
|
126
|
-
| 9339–9340 | VS Code |
|
|
127
|
-
| 9341–9342 | VS Code Insiders |
|
|
128
|
-
| 9343–9344 | VSCodium |
|
|
129
|
-
| 9351–9352 | Kiro |
|
|
130
|
-
| 9353–9354 | Trae |
|
|
131
|
-
| 9355–9356 | PearAI |
|
|
132
|
-
|
|
133
|
-
**Next available: 9357+**
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Need Help?
|
|
138
|
-
|
|
139
|
-
- Full provider guide: [PROVIDER_GUIDE.md](https://github.com/vilmire/adhdev/blob/main/docs/PROVIDER_GUIDE.md)
|
|
140
|
-
- DOM exploration tips: PROVIDER_GUIDE.md §6
|
|
141
|
-
- DevConsole usage: PROVIDER_GUIDE.md §4
|
|
@@ -1,51 +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, Windsurf, Kiro, PearAI, 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 (40+ agents)
|
|
12
|
-
├── _helpers/ — Shared utility functions
|
|
13
|
-
├── validate.js — Provider schema validator
|
|
14
|
-
└── CONTRIBUTING.md — How to add a new provider
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Adding a New Provider
|
|
18
|
-
|
|
19
|
-
1. Create `provider.js` in the appropriate category:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
mkdir -p ide/my-ide
|
|
23
|
-
# Edit ide/my-ide/provider.js
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
2. Validate:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
node validate.js ide/my-ide/provider.js
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
3. Submit a PR.
|
|
33
|
-
|
|
34
|
-
See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full workflow, and
|
|
35
|
-
[PROVIDER_GUIDE.md](https://github.com/vilmire/adhdev/blob/main/docs/PROVIDER_GUIDE.md) for the complete specification.
|
|
36
|
-
|
|
37
|
-
## How It Works
|
|
38
|
-
|
|
39
|
-
This repository is consumed by ADHDev in three ways:
|
|
40
|
-
|
|
41
|
-
| Method | When | Directory |
|
|
42
|
-
|--------|------|-----------|
|
|
43
|
-
| **Bundled** | `npm install -g adhdev` | `_builtin/` (offline fallback) |
|
|
44
|
-
| **Auto-updated** | Every daemon start | `~/.adhdev/providers/.upstream/` |
|
|
45
|
-
| **User custom** | Manual | `~/.adhdev/providers/` (never overwritten) |
|
|
46
|
-
|
|
47
|
-
Loading priority: **User custom > Auto-updated > Bundled**
|
|
48
|
-
|
|
49
|
-
## License
|
|
50
|
-
|
|
51
|
-
MIT
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider Helpers — 공유 유틸리티
|
|
3
|
-
*
|
|
4
|
-
* 각 provider.js에서 require해 사용할 수 있는 공통 함수들.
|
|
5
|
-
* 사용은 선택사항 — 각 provider.js는 독립적이어도 됨.
|
|
6
|
-
*
|
|
7
|
-
* 사용법 (provider.js 내부):
|
|
8
|
-
* const { getWebviewDoc, htmlToMd, waitFor } = require('../../_helpers/index.js');
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Extension webview iframe의 contentDocument 접근
|
|
13
|
-
* @param {string} [selector='iframe'] - iframe 셀렉터
|
|
14
|
-
* @returns {string} CDP evaluate용 JS 코드 (document 변수를 설정)
|
|
15
|
-
*/
|
|
16
|
-
function getWebviewDoc(selector = 'iframe') {
|
|
17
|
-
return `
|
|
18
|
-
const _iframe = document.querySelector('${selector}');
|
|
19
|
-
const _doc = _iframe ? (_iframe.contentDocument || _iframe.contentWindow?.document) : document;
|
|
20
|
-
`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* React Fiber 데이터 추출 헬퍼 코드
|
|
25
|
-
* 특정 엔트리 포인트에서 시작해 memoizedState를 순회
|
|
26
|
-
* @param {string[]} entrySelectors - 엔트리 포인트 CSS 셀렉터
|
|
27
|
-
* @param {number} [maxDepth=200] - Fiber 트리 최대 순회 깊이
|
|
28
|
-
* @returns {string} CDP evaluate용 JS 코드 (변수 _fiberData를 설정)
|
|
29
|
-
*/
|
|
30
|
-
function getFiber(entrySelectors, maxDepth = 200) {
|
|
31
|
-
const sels = JSON.stringify(entrySelectors);
|
|
32
|
-
return `
|
|
33
|
-
let _fiberData = null;
|
|
34
|
-
const _entryPoints = ${sels};
|
|
35
|
-
for (const sel of _entryPoints) {
|
|
36
|
-
const el = document.querySelector(sel);
|
|
37
|
-
if (!el) continue;
|
|
38
|
-
const fk = Object.keys(el).find(k => k.startsWith('__reactFiber'));
|
|
39
|
-
if (!fk) continue;
|
|
40
|
-
let fib = el[fk];
|
|
41
|
-
for (let d = 0; d < ${maxDepth} && fib; d++) {
|
|
42
|
-
if (fib.memoizedState) {
|
|
43
|
-
let s = fib.memoizedState;
|
|
44
|
-
while (s) {
|
|
45
|
-
try {
|
|
46
|
-
const memo = s.memoizedState;
|
|
47
|
-
if (memo && typeof memo === 'object') {
|
|
48
|
-
_fiberData = memo;
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
} catch(e) {}
|
|
52
|
-
s = s.next;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (_fiberData) break;
|
|
56
|
-
fib = fib.return;
|
|
57
|
-
}
|
|
58
|
-
if (_fiberData) break;
|
|
59
|
-
}
|
|
60
|
-
`;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* 텍스트 입력 + Enter 전송 코드 생성
|
|
65
|
-
* @param {string} varName - 텍스트가 저장된 변수명
|
|
66
|
-
* @param {string} selectorExpr - 에디터 요소 참조 JS 표현식
|
|
67
|
-
* @returns {string} CDP evaluate용 JS 코드
|
|
68
|
-
*/
|
|
69
|
-
function typeAndSubmit(varName, selectorExpr) {
|
|
70
|
-
return `
|
|
71
|
-
const _editor = ${selectorExpr};
|
|
72
|
-
if (_editor) {
|
|
73
|
-
_editor.focus();
|
|
74
|
-
document.execCommand('selectAll', false, null);
|
|
75
|
-
document.execCommand('delete', false, null);
|
|
76
|
-
document.execCommand('insertText', false, ${varName});
|
|
77
|
-
_editor.dispatchEvent(new Event('input', { bubbles: true }));
|
|
78
|
-
await new Promise(r => setTimeout(r, 300));
|
|
79
|
-
const _enterOpts = { key: 'Enter', code: 'Enter', keyCode: 13, which: 13, bubbles: true, cancelable: true, composed: true };
|
|
80
|
-
_editor.dispatchEvent(new KeyboardEvent('keydown', _enterOpts));
|
|
81
|
-
_editor.dispatchEvent(new KeyboardEvent('keypress', _enterOpts));
|
|
82
|
-
_editor.dispatchEvent(new KeyboardEvent('keyup', _enterOpts));
|
|
83
|
-
}
|
|
84
|
-
`;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* 요소 대기 코드 생성
|
|
89
|
-
* @param {string} selector - CSS 셀렉터
|
|
90
|
-
* @param {number} [timeout=5000] - 최대 대기 시간 (ms)
|
|
91
|
-
* @returns {string} CDP evaluate용 JS 코드 (표현식 → 요소 또는 null)
|
|
92
|
-
*/
|
|
93
|
-
function waitFor(selector, timeout = 5000) {
|
|
94
|
-
return `
|
|
95
|
-
await new Promise((resolve) => {
|
|
96
|
-
const _t = Date.now();
|
|
97
|
-
const _check = () => {
|
|
98
|
-
const el = document.querySelector('${selector}');
|
|
99
|
-
if (el && el.offsetWidth > 0) return resolve(el);
|
|
100
|
-
if (Date.now() - _t > ${timeout}) return resolve(null);
|
|
101
|
-
setTimeout(_check, 200);
|
|
102
|
-
};
|
|
103
|
-
_check();
|
|
104
|
-
})
|
|
105
|
-
`;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* HTML → Markdown 변환 함수 (CDP 코드 문자열)
|
|
110
|
-
* 대시보드가 ReactMarkdown+remarkGfm을 사용하므로 HTML을 GFM으로 변환 필요
|
|
111
|
-
* @returns {string} htmlToMd, childrenToMd 함수 선언 코드
|
|
112
|
-
*/
|
|
113
|
-
function htmlToMdCode() {
|
|
114
|
-
return `
|
|
115
|
-
function htmlToMd(node) {
|
|
116
|
-
if (node.nodeType === 3) return node.textContent || '';
|
|
117
|
-
if (node.nodeType !== 1) return '';
|
|
118
|
-
const tag = node.tagName;
|
|
119
|
-
if (tag === 'STYLE' || tag === 'SCRIPT' || tag === 'SVG') return '';
|
|
120
|
-
if (tag === 'TABLE') {
|
|
121
|
-
const rows = Array.from(node.querySelectorAll('tr'));
|
|
122
|
-
if (rows.length === 0) return '';
|
|
123
|
-
const table = rows.map(tr => Array.from(tr.querySelectorAll('th, td')).map(cell => (cell.textContent || '').trim().replace(/\\|/g, '\\\\|')));
|
|
124
|
-
if (table.length === 0) return '';
|
|
125
|
-
const colCount = Math.max(...table.map(r => r.length));
|
|
126
|
-
const header = table[0];
|
|
127
|
-
const sep = Array(colCount).fill('---');
|
|
128
|
-
const body = table.slice(1);
|
|
129
|
-
let md = '| ' + header.join(' | ') + ' |\\n';
|
|
130
|
-
md += '| ' + sep.join(' | ') + ' |\\n';
|
|
131
|
-
for (const row of body) {
|
|
132
|
-
while (row.length < colCount) row.push('');
|
|
133
|
-
md += '| ' + row.join(' | ') + ' |\\n';
|
|
134
|
-
}
|
|
135
|
-
return '\\n' + md + '\\n';
|
|
136
|
-
}
|
|
137
|
-
if (tag === 'UL') return '\\n' + Array.from(node.children).map(li => '- ' + childrenToMd(li).trim()).join('\\n') + '\\n';
|
|
138
|
-
if (tag === 'OL') return '\\n' + Array.from(node.children).map((li, i) => (i + 1) + '. ' + childrenToMd(li).trim()).join('\\n') + '\\n';
|
|
139
|
-
if (tag === 'LI') return childrenToMd(node);
|
|
140
|
-
if (tag === 'H1') return '\\n# ' + childrenToMd(node).trim() + '\\n';
|
|
141
|
-
if (tag === 'H2') return '\\n## ' + childrenToMd(node).trim() + '\\n';
|
|
142
|
-
if (tag === 'H3') return '\\n### ' + childrenToMd(node).trim() + '\\n';
|
|
143
|
-
if (tag === 'H4') return '\\n#### ' + childrenToMd(node).trim() + '\\n';
|
|
144
|
-
if (tag === 'STRONG' || tag === 'B') return '**' + childrenToMd(node).trim() + '**';
|
|
145
|
-
if (tag === 'EM' || tag === 'I') return '*' + childrenToMd(node).trim() + '*';
|
|
146
|
-
if (tag === 'PRE') {
|
|
147
|
-
const codeEl = node.querySelector('code');
|
|
148
|
-
const lang = codeEl ? (codeEl.className.match(/language-(\\w+)/)?.[1] || '') : '';
|
|
149
|
-
const code = (codeEl || node).textContent || '';
|
|
150
|
-
return '\\n\`\`\`' + lang + '\\n' + code.trim() + '\\n\`\`\`\\n';
|
|
151
|
-
}
|
|
152
|
-
if (tag === 'CODE') {
|
|
153
|
-
if (node.parentElement && node.parentElement.tagName === 'PRE') return node.textContent || '';
|
|
154
|
-
return '\`' + (node.textContent || '').trim() + '\`';
|
|
155
|
-
}
|
|
156
|
-
if (tag === 'BLOCKQUOTE') return '\\n> ' + childrenToMd(node).trim().replace(/\\n/g, '\\n> ') + '\\n';
|
|
157
|
-
if (tag === 'A') return '[' + childrenToMd(node).trim() + '](' + (node.getAttribute('href') || '') + ')';
|
|
158
|
-
if (tag === 'BR') return '\\n';
|
|
159
|
-
if (tag === 'P') return '\\n' + childrenToMd(node).trim() + '\\n';
|
|
160
|
-
return childrenToMd(node);
|
|
161
|
-
}
|
|
162
|
-
function childrenToMd(node) {
|
|
163
|
-
return Array.from(node.childNodes).map(htmlToMd).join('');
|
|
164
|
-
}
|
|
165
|
-
`;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* 노이즈 텍스트 필터링 (상태 메시지, MCP 등)
|
|
170
|
-
* @param {string} text - 원본 텍스트
|
|
171
|
-
* @returns {boolean} true면 노이즈
|
|
172
|
-
*/
|
|
173
|
-
function isNoiseText(text) {
|
|
174
|
-
const low = (text || '').trim().toLowerCase();
|
|
175
|
-
if (low.length > 60) return false;
|
|
176
|
-
if (/^(analyzed\s+\d|edited\s+\d|ran\s+\S|terminal\s|reading|searching)/i.test(low)) return true;
|
|
177
|
-
if (/^(mcp|customizationmcp|serversexport)/i.test(low)) return true;
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
module.exports = {
|
|
182
|
-
getWebviewDoc,
|
|
183
|
-
getFiber,
|
|
184
|
-
typeAndSubmit,
|
|
185
|
-
waitFor,
|
|
186
|
-
htmlToMdCode,
|
|
187
|
-
isNoiseText,
|
|
188
|
-
};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "agentpool-acp",
|
|
3
|
-
"name": "AgentPool (ACP)",
|
|
4
|
-
"category": "acp",
|
|
5
|
-
"displayName": "AgentPool",
|
|
6
|
-
"icon": "🏊",
|
|
7
|
-
"install": "pip install agentpool (Python/uvx)",
|
|
8
|
-
"spawn": {
|
|
9
|
-
"command": "agentpool",
|
|
10
|
-
"args": [
|
|
11
|
-
"acp"
|
|
12
|
-
],
|
|
13
|
-
"shell": false
|
|
14
|
-
},
|
|
15
|
-
"auth": [
|
|
16
|
-
{
|
|
17
|
-
"type": "agent",
|
|
18
|
-
"id": "agentpool",
|
|
19
|
-
"name": "AgentPool Auth",
|
|
20
|
-
"description": "Configure provider through AgentPool 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
|
-
}
|