adhdev 0.1.53 → 0.1.54

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 (68) hide show
  1. package/dist/index.js +1870 -819
  2. package/package.json +1 -1
  3. package/providers/_builtin/CONTRIBUTING.md +141 -0
  4. package/providers/_builtin/README.md +51 -0
  5. package/providers/_builtin/_helpers/index.js +188 -0
  6. package/providers/_builtin/acp/agentpool/provider.js +59 -0
  7. package/providers/_builtin/acp/amp/provider.js +61 -0
  8. package/providers/_builtin/acp/auggie/provider.js +60 -0
  9. package/providers/_builtin/acp/autodev/provider.js +59 -0
  10. package/providers/_builtin/acp/autohand/provider.js +59 -0
  11. package/providers/_builtin/acp/blackbox-ai/provider.js +59 -0
  12. package/providers/_builtin/acp/claude-agent/provider.js +61 -0
  13. package/providers/_builtin/acp/cline-acp/provider.js +62 -0
  14. package/providers/_builtin/acp/code-assistant/provider.js +59 -0
  15. package/providers/_builtin/acp/codebuddy/provider.js +59 -0
  16. package/providers/_builtin/acp/codex-cli/provider.js +11 -1
  17. package/providers/_builtin/acp/corust-agent/provider.js +59 -0
  18. package/providers/_builtin/acp/crow-cli/provider.js +59 -0
  19. package/providers/_builtin/acp/cursor-acp/provider.js +59 -0
  20. package/providers/_builtin/acp/deepagents/provider.js +59 -0
  21. package/providers/_builtin/acp/dimcode/provider.js +58 -0
  22. package/providers/_builtin/acp/docker-cagent/provider.js +59 -0
  23. package/providers/_builtin/acp/factory-droid/provider.js +59 -0
  24. package/providers/_builtin/acp/fast-agent/provider.js +59 -0
  25. package/providers/_builtin/acp/fount/provider.js +59 -0
  26. package/providers/_builtin/acp/gemini-cli/provider.js +104 -0
  27. package/providers/_builtin/acp/github-copilot/provider.js +60 -0
  28. package/providers/_builtin/acp/goose/provider.js +37 -5
  29. package/providers/_builtin/acp/junie/provider.js +62 -0
  30. package/providers/_builtin/acp/kilo/provider.js +59 -0
  31. package/providers/_builtin/acp/kimi-cli/provider.js +63 -0
  32. package/providers/_builtin/acp/kiro-cli/provider.js +59 -0
  33. package/providers/_builtin/acp/minion-code/provider.js +59 -0
  34. package/providers/_builtin/acp/mistral-vibe/provider.js +63 -0
  35. package/providers/_builtin/acp/nova/provider.js +59 -0
  36. package/providers/_builtin/acp/openclaw/provider.js +59 -0
  37. package/providers/_builtin/acp/opencode/provider.js +34 -6
  38. package/providers/_builtin/acp/openhands/provider.js +59 -0
  39. package/providers/_builtin/acp/pi-acp/provider.js +59 -0
  40. package/providers/_builtin/acp/qoder/provider.js +58 -0
  41. package/providers/_builtin/acp/qwen-code/provider.js +61 -0
  42. package/providers/_builtin/acp/stakpak/provider.js +59 -0
  43. package/providers/_builtin/acp/vtcode/provider.js +59 -0
  44. package/providers/_builtin/cli/claude-cli/provider.js +3 -0
  45. package/providers/_builtin/cli/codex-cli/provider.js +3 -0
  46. package/providers/_builtin/cli/gemini-cli/provider.js +3 -0
  47. package/providers/_builtin/ide/kiro/provider.js +6 -2
  48. package/providers/_builtin/ide/kiro/scripts/webview_send_message.js +72 -0
  49. package/providers/_builtin/ide/pearai/provider.js +12 -0
  50. package/providers/_builtin/ide/pearai/scripts/list_sessions.js +38 -0
  51. package/providers/_builtin/ide/pearai/scripts/new_session.js +55 -0
  52. package/providers/_builtin/ide/pearai/scripts/webview_list_sessions.js +62 -0
  53. package/providers/_builtin/ide/pearai/scripts/webview_new_session.js +32 -4
  54. package/providers/_builtin/ide/pearai/scripts/webview_send_message.js +72 -0
  55. package/providers/_builtin/ide/pearai/scripts/webview_switch_session.js +34 -0
  56. package/providers/_builtin/ide/trae/scripts/send_message.js +53 -3
  57. package/providers/_builtin/validate.js +156 -0
  58. package/dist/node_datachannel-LPY6EJH5.node +0 -0
  59. package/providers/_builtin/ide/cursor/provider.js.backup +0 -116
  60. package/providers/_builtin/ide/cursor/provider.js.bak +0 -127
  61. package/providers/_builtin/ide/cursor/scripts_backup/focus_editor.js +0 -20
  62. package/providers/_builtin/ide/cursor/scripts_backup/list_chats.js +0 -111
  63. package/providers/_builtin/ide/cursor/scripts_backup/new_session.js +0 -62
  64. package/providers/_builtin/ide/cursor/scripts_backup/open_panel.js +0 -31
  65. package/providers/_builtin/ide/cursor/scripts_backup/read_chat.js +0 -433
  66. package/providers/_builtin/ide/cursor/scripts_backup/resolve_action.js +0 -90
  67. package/providers/_builtin/ide/cursor/scripts_backup/send_message.js +0 -86
  68. package/providers/_builtin/ide/cursor/scripts_backup/switch_session.js +0 -63
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adhdev",
3
- "version": "0.1.53",
3
+ "version": "0.1.54",
4
4
  "description": "ADHDev CLI — Detect, install and configure your IDE + AI agent extensions",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -0,0 +1,141 @@
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
@@ -0,0 +1,51 @@
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
@@ -0,0 +1,188 @@
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
+ };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * AgentPool — ACP Provider
3
+ *
4
+ * Multi-agent Python framework with ACP integration
5
+ * https://phil65.github.io/agentpool/advanced/acp-integration/
6
+ *
7
+ * Install: pip install agentpool (Python/uvx)
8
+ *
9
+ * @type {import('../../../../src/providers/contracts').ProviderModule}
10
+ */
11
+ module.exports = {
12
+ type: 'agentpool-acp',
13
+ name: 'AgentPool (ACP)',
14
+ category: 'acp',
15
+
16
+ displayName: 'AgentPool',
17
+ icon: '🏊',
18
+ install: 'pip install agentpool (Python/uvx)',
19
+
20
+ spawn: {
21
+ command: 'agentpool',
22
+ args: ['acp'],
23
+ shell: false,
24
+ },
25
+
26
+ auth: [
27
+ {
28
+ type: 'agent',
29
+ id: 'agentpool',
30
+ name: 'AgentPool Auth',
31
+ description: 'Configure provider through AgentPool setup',
32
+ },
33
+ ],
34
+
35
+ settings: {
36
+ approvalAlert: {
37
+ type: 'boolean',
38
+ default: true,
39
+ public: true,
40
+ label: 'Approval Alerts',
41
+ description: 'Show notification when agent requires approval',
42
+ },
43
+ longGeneratingAlert: {
44
+ type: 'boolean',
45
+ default: true,
46
+ public: true,
47
+ label: 'Long Generation Alert',
48
+ description: 'Alert when generation takes too long',
49
+ },
50
+ longGeneratingThresholdSec: {
51
+ type: 'number',
52
+ default: 180,
53
+ public: true,
54
+ label: 'Long Generation Threshold (sec)',
55
+ min: 30,
56
+ max: 600,
57
+ },
58
+ },
59
+ };
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Amp — ACP Provider
3
+ *
4
+ * ACP wrapper for Amp - the frontier coding agent
5
+ * https://github.com/tao12345666333/amp-acp
6
+ *
7
+ * Install: Binary download from GitHub releases (no npm package)
8
+ * macOS: curl -L https://github.com/tao12345666333/amp-acp/releases/latest/download/amp-acp-darwin-aarch64.tar.gz | tar xz
9
+ * Linux: curl -L https://github.com/tao12345666333/amp-acp/releases/latest/download/amp-acp-linux-x86_64.tar.gz | tar xz
10
+ *
11
+ * @type {import('../../../../src/providers/contracts').ProviderModule}
12
+ */
13
+ module.exports = {
14
+ type: 'amp-acp',
15
+ name: 'Amp (ACP)',
16
+ category: 'acp',
17
+
18
+ displayName: 'Amp',
19
+ icon: '⚡',
20
+ install: 'Binary download from GitHub: https://github.com/tao12345666333/amp-acp/releases',
21
+
22
+ spawn: {
23
+ command: 'amp-acp',
24
+ args: [],
25
+ shell: false,
26
+ },
27
+
28
+ auth: [
29
+ {
30
+ type: 'agent',
31
+ id: 'amp-auth',
32
+ name: 'Amp Authentication',
33
+ description: 'Authenticate through Amp setup flow',
34
+ },
35
+ ],
36
+
37
+ settings: {
38
+ approvalAlert: {
39
+ type: 'boolean',
40
+ default: true,
41
+ public: true,
42
+ label: 'Approval Alerts',
43
+ description: 'Show notification when Amp requires approval',
44
+ },
45
+ longGeneratingAlert: {
46
+ type: 'boolean',
47
+ default: true,
48
+ public: true,
49
+ label: 'Long Generation Alert',
50
+ description: 'Alert when generation takes too long',
51
+ },
52
+ longGeneratingThresholdSec: {
53
+ type: 'number',
54
+ default: 180,
55
+ public: true,
56
+ label: 'Long Generation Threshold (sec)',
57
+ min: 30,
58
+ max: 600,
59
+ },
60
+ },
61
+ };
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Auggie CLI — ACP Provider
3
+ *
4
+ * Augment Code's powerful software agent
5
+ * https://github.com/augmentcode/auggie-zed-extension
6
+ *
7
+ * Install: npm install -g @augmentcode/auggie
8
+ *
9
+ * @type {import('../../../../src/providers/contracts').ProviderModule}
10
+ */
11
+ module.exports = {
12
+ type: 'auggie-acp',
13
+ name: 'Auggie CLI (ACP)',
14
+ category: 'acp',
15
+
16
+ displayName: 'Auggie CLI',
17
+ icon: '🧠',
18
+ install: 'npm install -g @augmentcode/auggie',
19
+
20
+ spawn: {
21
+ command: 'auggie',
22
+ args: ['--acp'],
23
+ shell: false,
24
+ env: { AUGMENT_DISABLE_AUTO_UPDATE: '1' },
25
+ },
26
+
27
+ auth: [
28
+ {
29
+ type: 'agent',
30
+ id: 'augment',
31
+ name: 'Augment Code Auth',
32
+ description: 'Authenticate through Augment Code setup',
33
+ },
34
+ ],
35
+
36
+ settings: {
37
+ approvalAlert: {
38
+ type: 'boolean',
39
+ default: true,
40
+ public: true,
41
+ label: 'Approval Alerts',
42
+ description: 'Show notification when agent 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
+ };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * AutoDev — ACP Provider
3
+ *
4
+ * AI-powered coding assistant by Phodal
5
+ * https://github.com/phodal/auto-dev
6
+ *
7
+ * Install: Download from https://github.com/phodal/auto-dev/releases
8
+ *
9
+ * @type {import('../../../../src/providers/contracts').ProviderModule}
10
+ */
11
+ module.exports = {
12
+ type: 'autodev-acp',
13
+ name: 'AutoDev (ACP)',
14
+ category: 'acp',
15
+
16
+ displayName: 'AutoDev',
17
+ icon: '🤖',
18
+ install: 'Download from https://github.com/phodal/auto-dev/releases',
19
+
20
+ spawn: {
21
+ command: 'autodev',
22
+ args: ['acp'],
23
+ shell: false,
24
+ },
25
+
26
+ auth: [
27
+ {
28
+ type: 'agent',
29
+ id: 'autodev',
30
+ name: 'AutoDev Auth',
31
+ description: 'Configure provider through AutoDev setup',
32
+ },
33
+ ],
34
+
35
+ settings: {
36
+ approvalAlert: {
37
+ type: 'boolean',
38
+ default: true,
39
+ public: true,
40
+ label: 'Approval Alerts',
41
+ description: 'Show notification when agent requires approval',
42
+ },
43
+ longGeneratingAlert: {
44
+ type: 'boolean',
45
+ default: true,
46
+ public: true,
47
+ label: 'Long Generation Alert',
48
+ description: 'Alert when generation takes too long',
49
+ },
50
+ longGeneratingThresholdSec: {
51
+ type: 'number',
52
+ default: 180,
53
+ public: true,
54
+ label: 'Long Generation Threshold (sec)',
55
+ min: 30,
56
+ max: 600,
57
+ },
58
+ },
59
+ };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Autohand Code — ACP Provider
3
+ *
4
+ * AI coding agent powered by Autohand AI
5
+ * https://github.com/autohandai/autohand-acp
6
+ *
7
+ * Install: npm install -g @autohandai/autohand-acp
8
+ *
9
+ * @type {import('../../../../src/providers/contracts').ProviderModule}
10
+ */
11
+ module.exports = {
12
+ type: 'autohand-acp',
13
+ name: 'Autohand Code (ACP)',
14
+ category: 'acp',
15
+
16
+ displayName: 'Autohand Code',
17
+ icon: '🤖',
18
+ install: 'npm install -g @autohandai/autohand-acp',
19
+
20
+ spawn: {
21
+ command: 'autohand-acp',
22
+ args: [],
23
+ shell: false,
24
+ },
25
+
26
+ auth: [
27
+ {
28
+ type: 'agent',
29
+ id: 'autohand',
30
+ name: 'Autohand Auth',
31
+ description: 'Authenticate through Autohand AI setup',
32
+ },
33
+ ],
34
+
35
+ settings: {
36
+ approvalAlert: {
37
+ type: 'boolean',
38
+ default: true,
39
+ public: true,
40
+ label: 'Approval Alerts',
41
+ description: 'Show notification when agent requires approval',
42
+ },
43
+ longGeneratingAlert: {
44
+ type: 'boolean',
45
+ default: true,
46
+ public: true,
47
+ label: 'Long Generation Alert',
48
+ description: 'Alert when generation takes too long',
49
+ },
50
+ longGeneratingThresholdSec: {
51
+ type: 'number',
52
+ default: 180,
53
+ public: true,
54
+ label: 'Long Generation Threshold (sec)',
55
+ min: 30,
56
+ max: 600,
57
+ },
58
+ },
59
+ };