@adhdev/daemon-core 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2662 -0
- package/dist/index.js +11341 -0
- package/dist/index.js.map +1 -0
- package/package.json +48 -0
- package/providers/_builtin/.github/workflows/generate-registry.yml +57 -0
- package/providers/_builtin/COMPATIBILITY.md +217 -0
- package/providers/_builtin/CONTRIBUTING.md +200 -0
- package/providers/_builtin/README.md +119 -0
- package/providers/_builtin/_helpers/index.js +188 -0
- package/providers/_builtin/acp/agentpool/provider.json +54 -0
- package/providers/_builtin/acp/amp/provider.json +52 -0
- package/providers/_builtin/acp/auggie/provider.json +57 -0
- package/providers/_builtin/acp/autodev/provider.json +54 -0
- package/providers/_builtin/acp/autohand/provider.json +52 -0
- package/providers/_builtin/acp/blackbox-ai/provider.json +54 -0
- package/providers/_builtin/acp/claude-agent/provider.json +57 -0
- package/providers/_builtin/acp/cline-acp/provider.json +54 -0
- package/providers/_builtin/acp/codebuddy/provider.json +54 -0
- package/providers/_builtin/acp/codex-cli/provider.json +57 -0
- package/providers/_builtin/acp/corust-agent/provider.json +52 -0
- package/providers/_builtin/acp/crow-cli/provider.json +54 -0
- package/providers/_builtin/acp/cursor-acp/provider.json +54 -0
- package/providers/_builtin/acp/deepagents/provider.json +52 -0
- package/providers/_builtin/acp/dimcode/provider.json +54 -0
- package/providers/_builtin/acp/docker-cagent/provider.json +57 -0
- package/providers/_builtin/acp/factory-droid/provider.json +60 -0
- package/providers/_builtin/acp/fast-agent/provider.json +52 -0
- package/providers/_builtin/acp/gemini-cli/provider.json +114 -0
- package/providers/_builtin/acp/github-copilot/provider.json +54 -0
- package/providers/_builtin/acp/goose/provider.json +57 -0
- package/providers/_builtin/acp/junie/provider.json +52 -0
- package/providers/_builtin/acp/kilo/provider.json +54 -0
- package/providers/_builtin/acp/kimi-cli/provider.json +57 -0
- package/providers/_builtin/acp/minion-code/provider.json +52 -0
- package/providers/_builtin/acp/mistral-vibe/provider.json +57 -0
- package/providers/_builtin/acp/nova/provider.json +54 -0
- package/providers/_builtin/acp/openclaw/provider.json +54 -0
- package/providers/_builtin/acp/opencode/provider.json +52 -0
- package/providers/_builtin/acp/openhands/provider.json +54 -0
- package/providers/_builtin/acp/pi-acp/provider.json +52 -0
- package/providers/_builtin/acp/qoder/provider.json +54 -0
- package/providers/_builtin/acp/qwen-code/provider.json +60 -0
- package/providers/_builtin/acp/stakpak/provider.json +54 -0
- package/providers/_builtin/acp/vtcode/provider.json +54 -0
- package/providers/_builtin/cli/claude-cli/provider.json +100 -0
- package/providers/_builtin/cli/codex-cli/provider.json +89 -0
- package/providers/_builtin/cli/gemini-cli/provider.json +93 -0
- package/providers/_builtin/docs/CDP_SELECTOR_GUIDE.md +370 -0
- package/providers/_builtin/docs/PROVIDER_GUIDE.md +916 -0
- package/providers/_builtin/extension/cline/provider.json +35 -0
- package/providers/_builtin/extension/cline/scripts/focus_editor.js +48 -0
- package/providers/_builtin/extension/cline/scripts/list_chats.js +100 -0
- package/providers/_builtin/extension/cline/scripts/list_models.js +43 -0
- package/providers/_builtin/extension/cline/scripts/list_modes.js +35 -0
- package/providers/_builtin/extension/cline/scripts/new_session.js +85 -0
- package/providers/_builtin/extension/cline/scripts/open_panel.js +25 -0
- package/providers/_builtin/extension/cline/scripts/read_chat.js +257 -0
- package/providers/_builtin/extension/cline/scripts/resolve_action.js +83 -0
- package/providers/_builtin/extension/cline/scripts/send_message.js +95 -0
- package/providers/_builtin/extension/cline/scripts/set_mode.js +36 -0
- package/providers/_builtin/extension/cline/scripts/set_model.js +36 -0
- package/providers/_builtin/extension/cline/scripts/switch_session.js +206 -0
- package/providers/_builtin/extension/cline/scripts.js +73 -0
- package/providers/_builtin/extension/roo-code/provider.json +35 -0
- package/providers/_builtin/extension/roo-code/scripts.js +659 -0
- package/providers/_builtin/ide/antigravity/provider.json +68 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/focus_editor.js +20 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/list_chats.js +137 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/list_models.js +38 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/list_modes.js +48 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/new_session.js +75 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/read_chat.js +262 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/resolve_action.js +68 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/scripts.js +57 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/send_message.js +56 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/set_mode.js +34 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/set_model.js +47 -0
- package/providers/_builtin/ide/antigravity/scripts/1.106/switch_session.js +114 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/focus_editor.js +20 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/list_chats.js +137 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/list_models.js +61 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/list_modes.js +72 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/new_session.js +75 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/read_chat.js +262 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/resolve_action.js +68 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/scripts.js +67 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/send_message.js +56 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/set_mode.js +67 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/set_model.js +72 -0
- package/providers/_builtin/ide/antigravity/scripts/1.107/switch_session.js +114 -0
- package/providers/_builtin/ide/cursor/provider.json +70 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/dismiss_notification.js +30 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/focus_editor.js +13 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/list_models.js +78 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/list_modes.js +40 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/list_notifications.js +23 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/list_sessions.js +42 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/new_session.js +20 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/open_panel.js +23 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/read_chat.js +75 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/resolve_action.js +19 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/scripts.js +78 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/send_message.js +23 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/set_mode.js +38 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/set_model.js +81 -0
- package/providers/_builtin/ide/cursor/scripts/0.49/switch_session.js +28 -0
- package/providers/_builtin/ide/kiro/provider.json +67 -0
- package/providers/_builtin/ide/kiro/scripts/focus_editor.js +20 -0
- package/providers/_builtin/ide/kiro/scripts/open_panel.js +47 -0
- package/providers/_builtin/ide/kiro/scripts/resolve_action.js +54 -0
- package/providers/_builtin/ide/kiro/scripts/send_message.js +29 -0
- package/providers/_builtin/ide/kiro/scripts/webview_list_models.js +39 -0
- package/providers/_builtin/ide/kiro/scripts/webview_list_modes.js +39 -0
- package/providers/_builtin/ide/kiro/scripts/webview_list_sessions.js +21 -0
- package/providers/_builtin/ide/kiro/scripts/webview_new_session.js +34 -0
- package/providers/_builtin/ide/kiro/scripts/webview_read_chat.js +68 -0
- package/providers/_builtin/ide/kiro/scripts/webview_send_message.js +72 -0
- package/providers/_builtin/ide/kiro/scripts/webview_set_mode.js +15 -0
- package/providers/_builtin/ide/kiro/scripts/webview_set_model.js +15 -0
- package/providers/_builtin/ide/kiro/scripts/webview_switch_session.js +26 -0
- package/providers/_builtin/ide/kiro/scripts.js +62 -0
- package/providers/_builtin/ide/pearai/provider.json +67 -0
- package/providers/_builtin/ide/pearai/scripts/focus_editor.js +20 -0
- package/providers/_builtin/ide/pearai/scripts/list_sessions.js +38 -0
- package/providers/_builtin/ide/pearai/scripts/new_session.js +55 -0
- package/providers/_builtin/ide/pearai/scripts/open_panel.js +46 -0
- package/providers/_builtin/ide/pearai/scripts/resolve_action.js +54 -0
- package/providers/_builtin/ide/pearai/scripts/send_message.js +29 -0
- package/providers/_builtin/ide/pearai/scripts/webview_list_models.js +43 -0
- package/providers/_builtin/ide/pearai/scripts/webview_list_modes.js +35 -0
- package/providers/_builtin/ide/pearai/scripts/webview_list_sessions.js +62 -0
- package/providers/_builtin/ide/pearai/scripts/webview_new_session.js +49 -0
- package/providers/_builtin/ide/pearai/scripts/webview_read_chat.js +92 -0
- package/providers/_builtin/ide/pearai/scripts/webview_resolve_action.js +59 -0
- package/providers/_builtin/ide/pearai/scripts/webview_send_message.js +72 -0
- package/providers/_builtin/ide/pearai/scripts/webview_set_mode.js +36 -0
- package/providers/_builtin/ide/pearai/scripts/webview_set_model.js +36 -0
- package/providers/_builtin/ide/pearai/scripts/webview_switch_session.js +34 -0
- package/providers/_builtin/ide/pearai/scripts.js +74 -0
- package/providers/_builtin/ide/trae/provider.json +66 -0
- package/providers/_builtin/ide/trae/scripts/focus_editor.js +20 -0
- package/providers/_builtin/ide/trae/scripts/list_chats.js +24 -0
- package/providers/_builtin/ide/trae/scripts/list_models.js +39 -0
- package/providers/_builtin/ide/trae/scripts/list_modes.js +39 -0
- package/providers/_builtin/ide/trae/scripts/new_session.js +30 -0
- package/providers/_builtin/ide/trae/scripts/open_panel.js +44 -0
- package/providers/_builtin/ide/trae/scripts/read_chat.js +113 -0
- package/providers/_builtin/ide/trae/scripts/resolve_action.js +54 -0
- package/providers/_builtin/ide/trae/scripts/send_message.js +69 -0
- package/providers/_builtin/ide/trae/scripts/set_mode.js +15 -0
- package/providers/_builtin/ide/trae/scripts/set_model.js +15 -0
- package/providers/_builtin/ide/trae/scripts/switch_session.js +23 -0
- package/providers/_builtin/ide/trae/scripts.js +57 -0
- package/providers/_builtin/ide/vscode/provider.json +64 -0
- package/providers/_builtin/ide/vscode-insiders/provider.json +62 -0
- package/providers/_builtin/ide/vscodium/provider.json +63 -0
- package/providers/_builtin/ide/windsurf/provider.json +53 -0
- package/providers/_builtin/ide/windsurf/scripts/focus_editor.js +30 -0
- package/providers/_builtin/ide/windsurf/scripts/list_chats.js +117 -0
- package/providers/_builtin/ide/windsurf/scripts/list_models.js +39 -0
- package/providers/_builtin/ide/windsurf/scripts/list_modes.js +39 -0
- package/providers/_builtin/ide/windsurf/scripts/new_session.js +69 -0
- package/providers/_builtin/ide/windsurf/scripts/open_panel.js +58 -0
- package/providers/_builtin/ide/windsurf/scripts/read_chat.js +297 -0
- package/providers/_builtin/ide/windsurf/scripts/resolve_action.js +68 -0
- package/providers/_builtin/ide/windsurf/scripts/send_message.js +87 -0
- package/providers/_builtin/ide/windsurf/scripts/set_mode.js +15 -0
- package/providers/_builtin/ide/windsurf/scripts/set_model.js +15 -0
- package/providers/_builtin/ide/windsurf/scripts/switch_session.js +58 -0
- package/providers/_builtin/ide/windsurf/scripts.js +57 -0
- package/providers/_builtin/registry.json +266 -0
- package/providers/_builtin/validate.js +156 -0
- package/src/agent-stream/index.ts +6 -0
- package/src/agent-stream/manager.ts +286 -0
- package/src/agent-stream/poller.ts +154 -0
- package/src/agent-stream/provider-adapter.ts +138 -0
- package/src/agent-stream/types.ts +61 -0
- package/src/boot/daemon-lifecycle.ts +252 -0
- package/src/cdp/devtools.ts +335 -0
- package/src/cdp/initializer.ts +191 -0
- package/src/cdp/manager.ts +897 -0
- package/src/cdp/scanner.ts +185 -0
- package/src/cdp/setup.ts +150 -0
- package/src/cli-adapter-types.ts +25 -0
- package/src/cli-adapters/provider-cli-adapter.ts +448 -0
- package/src/commands/cdp-commands.ts +208 -0
- package/src/commands/chat-commands.ts +675 -0
- package/src/commands/cli-manager.ts +353 -0
- package/src/commands/handler.ts +328 -0
- package/src/commands/router.ts +258 -0
- package/src/commands/stream-commands.ts +325 -0
- package/src/config/chat-history.ts +211 -0
- package/src/config/config.ts +219 -0
- package/src/daemon/dev-server.ts +2378 -0
- package/src/daemon/scaffold-template.ts +394 -0
- package/src/daemon-core.ts +50 -0
- package/src/detection/cli-detector.ts +89 -0
- package/src/detection/ide-detector.ts +157 -0
- package/src/index.ts +103 -0
- package/src/installer.ts +263 -0
- package/src/ipc-protocol.ts +133 -0
- package/src/launch.ts +433 -0
- package/src/logging/command-log.ts +180 -0
- package/src/logging/logger.ts +316 -0
- package/src/providers/acp-provider-instance.ts +1140 -0
- package/src/providers/cli-provider-instance.ts +207 -0
- package/src/providers/contracts.ts +524 -0
- package/src/providers/extension-provider-instance.ts +156 -0
- package/src/providers/ide-provider-instance.ts +377 -0
- package/src/providers/index.ts +18 -0
- package/src/providers/provider-instance-manager.ts +182 -0
- package/src/providers/provider-instance.ts +112 -0
- package/src/providers/provider-loader.ts +1031 -0
- package/src/providers/status-monitor.ts +125 -0
- package/src/providers/version-archive.ts +266 -0
- package/src/status/reporter.ts +294 -0
- package/src/types.ts +206 -0
|
@@ -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,54 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "amp-acp",
|
|
3
|
+
"name": "Amp (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "Amp",
|
|
6
|
+
"icon": "⚡",
|
|
7
|
+
"install": "Binary download from GitHub: https://github.com/tao12345666333/amp-acp/releases",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "amp-acp",
|
|
10
|
+
"args": [],
|
|
11
|
+
"shell": false
|
|
12
|
+
},
|
|
13
|
+
"auth": [
|
|
14
|
+
{
|
|
15
|
+
"type": "agent",
|
|
16
|
+
"id": "amp-auth",
|
|
17
|
+
"name": "Amp Authentication",
|
|
18
|
+
"description": "Authenticate through Amp setup flow"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"settings": {
|
|
22
|
+
"autoApprove": {
|
|
23
|
+
"type": "boolean",
|
|
24
|
+
"default": false,
|
|
25
|
+
"public": true,
|
|
26
|
+
"label": "Auto Approve",
|
|
27
|
+
"description": "Automatically approve all tool calls without user confirmation"
|
|
28
|
+
},
|
|
29
|
+
"approvalAlert": {
|
|
30
|
+
"type": "boolean",
|
|
31
|
+
"default": true,
|
|
32
|
+
"public": true,
|
|
33
|
+
"label": "Approval Alerts",
|
|
34
|
+
"description": "Show notification when Amp requires approval"
|
|
35
|
+
},
|
|
36
|
+
"longGeneratingAlert": {
|
|
37
|
+
"type": "boolean",
|
|
38
|
+
"default": true,
|
|
39
|
+
"public": true,
|
|
40
|
+
"label": "Long Generation Alert",
|
|
41
|
+
"description": "Alert when generation takes too long"
|
|
42
|
+
},
|
|
43
|
+
"longGeneratingThresholdSec": {
|
|
44
|
+
"type": "number",
|
|
45
|
+
"default": 180,
|
|
46
|
+
"public": true,
|
|
47
|
+
"label": "Long Generation Threshold (sec)",
|
|
48
|
+
"min": 30,
|
|
49
|
+
"max": 600
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "auggie-acp",
|
|
3
|
+
"name": "Auggie CLI (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "Auggie CLI",
|
|
6
|
+
"icon": "🧠",
|
|
7
|
+
"install": "npm install -g @augmentcode/auggie",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "auggie",
|
|
10
|
+
"args": [
|
|
11
|
+
"--acp"
|
|
12
|
+
],
|
|
13
|
+
"shell": false,
|
|
14
|
+
"env": {
|
|
15
|
+
"AUGMENT_DISABLE_AUTO_UPDATE": "1"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"auth": [
|
|
19
|
+
{
|
|
20
|
+
"type": "agent",
|
|
21
|
+
"id": "augment",
|
|
22
|
+
"name": "Augment Code Auth",
|
|
23
|
+
"description": "Authenticate through Augment Code setup"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"settings": {
|
|
27
|
+
"autoApprove": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"default": false,
|
|
30
|
+
"public": true,
|
|
31
|
+
"label": "Auto Approve",
|
|
32
|
+
"description": "Automatically approve all tool calls without user confirmation"
|
|
33
|
+
},
|
|
34
|
+
"approvalAlert": {
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"default": true,
|
|
37
|
+
"public": true,
|
|
38
|
+
"label": "Approval Alerts",
|
|
39
|
+
"description": "Show notification when agent requires approval"
|
|
40
|
+
},
|
|
41
|
+
"longGeneratingAlert": {
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"default": true,
|
|
44
|
+
"public": true,
|
|
45
|
+
"label": "Long Generation Alert",
|
|
46
|
+
"description": "Alert when generation takes too long"
|
|
47
|
+
},
|
|
48
|
+
"longGeneratingThresholdSec": {
|
|
49
|
+
"type": "number",
|
|
50
|
+
"default": 180,
|
|
51
|
+
"public": true,
|
|
52
|
+
"label": "Long Generation Threshold (sec)",
|
|
53
|
+
"min": 30,
|
|
54
|
+
"max": 600
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "autodev-acp",
|
|
3
|
+
"name": "AutoDev (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "AutoDev",
|
|
6
|
+
"icon": "🤖",
|
|
7
|
+
"install": "Download from https://github.com/phodal/auto-dev/releases",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "autodev",
|
|
10
|
+
"args": [
|
|
11
|
+
"acp"
|
|
12
|
+
],
|
|
13
|
+
"shell": false
|
|
14
|
+
},
|
|
15
|
+
"auth": [
|
|
16
|
+
{
|
|
17
|
+
"type": "agent",
|
|
18
|
+
"id": "autodev",
|
|
19
|
+
"name": "AutoDev Auth",
|
|
20
|
+
"description": "Configure provider through AutoDev 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
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "autohand-acp",
|
|
3
|
+
"name": "Autohand Code (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "Autohand Code",
|
|
6
|
+
"icon": "🤖",
|
|
7
|
+
"install": "npm install -g @autohandai/autohand-acp",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "autohand-acp",
|
|
10
|
+
"args": [],
|
|
11
|
+
"shell": false
|
|
12
|
+
},
|
|
13
|
+
"auth": [
|
|
14
|
+
{
|
|
15
|
+
"type": "agent",
|
|
16
|
+
"id": "autohand",
|
|
17
|
+
"name": "Autohand Auth",
|
|
18
|
+
"description": "Authenticate through Autohand AI setup"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"settings": {
|
|
22
|
+
"autoApprove": {
|
|
23
|
+
"type": "boolean",
|
|
24
|
+
"default": false,
|
|
25
|
+
"public": true,
|
|
26
|
+
"label": "Auto Approve",
|
|
27
|
+
"description": "Automatically approve all tool calls without user confirmation"
|
|
28
|
+
},
|
|
29
|
+
"approvalAlert": {
|
|
30
|
+
"type": "boolean",
|
|
31
|
+
"default": true,
|
|
32
|
+
"public": true,
|
|
33
|
+
"label": "Approval Alerts",
|
|
34
|
+
"description": "Show notification when agent requires approval"
|
|
35
|
+
},
|
|
36
|
+
"longGeneratingAlert": {
|
|
37
|
+
"type": "boolean",
|
|
38
|
+
"default": true,
|
|
39
|
+
"public": true,
|
|
40
|
+
"label": "Long Generation Alert",
|
|
41
|
+
"description": "Alert when generation takes too long"
|
|
42
|
+
},
|
|
43
|
+
"longGeneratingThresholdSec": {
|
|
44
|
+
"type": "number",
|
|
45
|
+
"default": 180,
|
|
46
|
+
"public": true,
|
|
47
|
+
"label": "Long Generation Threshold (sec)",
|
|
48
|
+
"min": 30,
|
|
49
|
+
"max": 600
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "blackbox-ai-acp",
|
|
3
|
+
"name": "Blackbox AI (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "Blackbox AI",
|
|
6
|
+
"icon": "⬛",
|
|
7
|
+
"install": "Download from https://docs.blackbox.ai/features/blackbox-cli",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "blackbox",
|
|
10
|
+
"args": [
|
|
11
|
+
"acp"
|
|
12
|
+
],
|
|
13
|
+
"shell": false
|
|
14
|
+
},
|
|
15
|
+
"auth": [
|
|
16
|
+
{
|
|
17
|
+
"type": "agent",
|
|
18
|
+
"id": "blackbox",
|
|
19
|
+
"name": "Blackbox Auth",
|
|
20
|
+
"description": "Authenticate with Blackbox AI account"
|
|
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
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "claude-agent-acp",
|
|
3
|
+
"name": "Claude Agent (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "Claude Agent",
|
|
6
|
+
"icon": "🟠",
|
|
7
|
+
"install": "npm install -g @zed-industries/claude-agent-acp (requires ANTHROPIC_API_KEY)",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "claude-agent-acp",
|
|
10
|
+
"args": [],
|
|
11
|
+
"shell": false
|
|
12
|
+
},
|
|
13
|
+
"auth": [
|
|
14
|
+
{
|
|
15
|
+
"type": "env_var",
|
|
16
|
+
"id": "anthropic",
|
|
17
|
+
"name": "Anthropic API Key",
|
|
18
|
+
"vars": [
|
|
19
|
+
{
|
|
20
|
+
"name": "ANTHROPIC_API_KEY"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"link": "https://console.anthropic.com/settings/keys"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"settings": {
|
|
27
|
+
"autoApprove": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"default": false,
|
|
30
|
+
"public": true,
|
|
31
|
+
"label": "Auto Approve",
|
|
32
|
+
"description": "Automatically approve all tool calls without user confirmation"
|
|
33
|
+
},
|
|
34
|
+
"approvalAlert": {
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"default": true,
|
|
37
|
+
"public": true,
|
|
38
|
+
"label": "Approval Alerts",
|
|
39
|
+
"description": "Show notification when Claude requires approval"
|
|
40
|
+
},
|
|
41
|
+
"longGeneratingAlert": {
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"default": true,
|
|
44
|
+
"public": true,
|
|
45
|
+
"label": "Long Generation Alert",
|
|
46
|
+
"description": "Alert when generation takes too long"
|
|
47
|
+
},
|
|
48
|
+
"longGeneratingThresholdSec": {
|
|
49
|
+
"type": "number",
|
|
50
|
+
"default": 180,
|
|
51
|
+
"public": true,
|
|
52
|
+
"label": "Long Generation Threshold (sec)",
|
|
53
|
+
"min": 30,
|
|
54
|
+
"max": 600
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "cline-acp",
|
|
3
|
+
"name": "Cline (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "Cline (ACP)",
|
|
6
|
+
"icon": "🔵",
|
|
7
|
+
"install": "npm install -g cline",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "cline",
|
|
10
|
+
"args": [
|
|
11
|
+
"--acp"
|
|
12
|
+
],
|
|
13
|
+
"shell": false
|
|
14
|
+
},
|
|
15
|
+
"auth": [
|
|
16
|
+
{
|
|
17
|
+
"type": "agent",
|
|
18
|
+
"id": "cline-settings",
|
|
19
|
+
"name": "Cline Settings",
|
|
20
|
+
"description": "Configure API keys through Cline interactive 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 Cline 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
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "codebuddy-acp",
|
|
3
|
+
"name": "Codebuddy Code (ACP)",
|
|
4
|
+
"category": "acp",
|
|
5
|
+
"displayName": "Codebuddy Code",
|
|
6
|
+
"icon": "🐧",
|
|
7
|
+
"install": "npm install -g @tencent-ai/codebuddy-code",
|
|
8
|
+
"spawn": {
|
|
9
|
+
"command": "codebuddy-code",
|
|
10
|
+
"args": [
|
|
11
|
+
"--acp"
|
|
12
|
+
],
|
|
13
|
+
"shell": false
|
|
14
|
+
},
|
|
15
|
+
"auth": [
|
|
16
|
+
{
|
|
17
|
+
"type": "agent",
|
|
18
|
+
"id": "tencent",
|
|
19
|
+
"name": "Tencent Cloud Auth",
|
|
20
|
+
"description": "Authenticate through Tencent Cloud account"
|
|
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
|
+
}
|