@adhdev/daemon-core 0.6.53 → 0.6.55
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 +76 -34
- package/dist/index.js +714 -271
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/providers/_builtin/_helpers/index.js +26 -26
- package/providers/_builtin/cli/aider-cli/provider.json +37 -0
- package/providers/_builtin/cli/aider-cli/scripts/1.0/detect_status.js +20 -0
- package/providers/_builtin/cli/aider-cli/scripts/1.0/parse_approval.js +10 -0
- package/providers/_builtin/cli/aider-cli/scripts/1.0/parse_output.js +49 -0
- package/providers/_builtin/cli/aider-cli/scripts/1.0/scripts.js +7 -0
- package/providers/_builtin/cli/claude-cli/provider.json +9 -2
- package/providers/_builtin/cli/claude-cli/scripts/1.0/detect_status.js +31 -0
- package/providers/_builtin/cli/claude-cli/scripts/1.0/parse_approval.js +38 -0
- package/providers/_builtin/cli/claude-cli/scripts/1.0/parse_output.js +164 -0
- package/providers/_builtin/cli/claude-cli/scripts/1.0/scripts.js +42 -0
- package/providers/_builtin/cli/codex-cli/provider.json +9 -2
- package/providers/_builtin/cli/codex-cli/scripts/1.0/detect_status.js +20 -0
- package/providers/_builtin/cli/codex-cli/scripts/1.0/parse_approval.js +15 -0
- package/providers/_builtin/cli/codex-cli/scripts/1.0/parse_output.js +68 -0
- package/providers/_builtin/cli/codex-cli/scripts/1.0/scripts.js +11 -0
- package/providers/_builtin/cli/cursor-cli/provider.json +37 -0
- package/providers/_builtin/cli/cursor-cli/scripts/1.0/detect_status.js +19 -0
- package/providers/_builtin/cli/cursor-cli/scripts/1.0/parse_approval.js +10 -0
- package/providers/_builtin/cli/cursor-cli/scripts/1.0/parse_output.js +48 -0
- package/providers/_builtin/cli/cursor-cli/scripts/1.0/scripts.js +7 -0
- package/providers/_builtin/cli/gemini-cli/provider.json +9 -2
- package/providers/_builtin/cli/gemini-cli/scripts/1.0/detect_status.js +26 -0
- package/providers/_builtin/cli/gemini-cli/scripts/1.0/parse_approval.js +22 -0
- package/providers/_builtin/cli/gemini-cli/scripts/1.0/parse_output.js +71 -0
- package/providers/_builtin/cli/gemini-cli/scripts/1.0/scripts.js +12 -0
- package/providers/_builtin/cli/github-copilot-cli/provider.json +37 -0
- package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/detect_status.js +19 -0
- package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/parse_approval.js +9 -0
- package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/parse_output.js +48 -0
- package/providers/_builtin/cli/github-copilot-cli/scripts/1.0/scripts.js +7 -0
- package/providers/_builtin/cli/goose-cli/provider.json +37 -0
- package/providers/_builtin/cli/goose-cli/scripts/1.0/detect_status.js +20 -0
- package/providers/_builtin/cli/goose-cli/scripts/1.0/parse_approval.js +10 -0
- package/providers/_builtin/cli/goose-cli/scripts/1.0/parse_output.js +48 -0
- package/providers/_builtin/cli/goose-cli/scripts/1.0/scripts.js +7 -0
- package/providers/_builtin/cli/opencode-cli/provider.json +37 -0
- package/providers/_builtin/cli/opencode-cli/scripts/1.0/detect_status.js +15 -0
- package/providers/_builtin/cli/opencode-cli/scripts/1.0/parse_approval.js +9 -0
- package/providers/_builtin/cli/opencode-cli/scripts/1.0/parse_output.js +48 -0
- package/providers/_builtin/cli/opencode-cli/scripts/1.0/scripts.js +7 -0
- package/providers/_builtin/extension/cline/scripts/1.0/focus_editor.js +5 -5
- package/providers/_builtin/extension/cline/scripts/1.0/list_chats.js +11 -11
- package/providers/_builtin/extension/cline/scripts/1.0/list_models.js +6 -6
- package/providers/_builtin/extension/cline/scripts/1.0/list_modes.js +5 -5
- package/providers/_builtin/extension/cline/scripts/1.0/new_session.js +12 -12
- package/providers/_builtin/extension/cline/scripts/1.0/open_panel.js +7 -7
- package/providers/_builtin/extension/cline/scripts/1.0/read_chat.js +29 -29
- package/providers/_builtin/extension/cline/scripts/1.0/resolve_action.js +19 -19
- package/providers/_builtin/extension/cline/scripts/1.0/send_message.js +15 -15
- package/providers/_builtin/extension/cline/scripts/1.0/set_mode.js +4 -4
- package/providers/_builtin/extension/cline/scripts/1.0/set_model.js +4 -4
- package/providers/_builtin/extension/cline/scripts/1.0/switch_session.js +21 -21
- package/providers/_builtin/extension/codex/scripts/1.0/explore_controls_webview.js +2 -2
- package/providers/_builtin/extension/codex/scripts/1.0/list_models.js +1 -1
- package/providers/_builtin/extension/codex/scripts/1.0/list_modes.js +1 -1
- package/providers/_builtin/extension/codex/scripts/1.0/new_session.js +2 -2
- package/providers/_builtin/extension/codex/scripts/1.0/read_chat.js +6 -6
- package/providers/_builtin/extension/codex/scripts/1.0/resolve_action.js +3 -3
- package/providers/_builtin/extension/codex/scripts/1.0/set_model.js +1 -1
- package/providers/_builtin/ide/antigravity/scripts/1.0/focus_editor.js +2 -2
- package/providers/_builtin/ide/antigravity/scripts/1.0/list_chats.js +19 -19
- package/providers/_builtin/ide/antigravity/scripts/1.0/list_models.js +1 -1
- package/providers/_builtin/ide/antigravity/scripts/1.0/list_modes.js +1 -1
- package/providers/_builtin/ide/antigravity/scripts/1.0/new_session.js +17 -17
- package/providers/_builtin/ide/antigravity/scripts/1.0/read_chat.js +41 -41
- package/providers/_builtin/ide/antigravity/scripts/1.0/resolve_action.js +6 -6
- package/providers/_builtin/ide/antigravity/scripts/1.0/send_message.js +13 -13
- package/providers/_builtin/ide/antigravity/scripts/1.0/set_model.js +1 -1
- package/providers/_builtin/ide/antigravity/scripts/1.0/switch_session.js +13 -13
- package/providers/_builtin/ide/cursor/scripts/1.0/dismiss_notification.js +3 -3
- package/providers/_builtin/ide/cursor/scripts/1.0/focus_editor.js +1 -1
- package/providers/_builtin/ide/cursor/scripts/1.0/list_models.js +12 -12
- package/providers/_builtin/ide/cursor/scripts/1.0/list_modes.js +5 -5
- package/providers/_builtin/ide/cursor/scripts/1.0/list_notifications.js +2 -2
- package/providers/_builtin/ide/cursor/scripts/1.0/list_sessions.js +5 -5
- package/providers/_builtin/ide/cursor/scripts/1.0/new_session.js +1 -1
- package/providers/_builtin/ide/cursor/scripts/1.0/open_panel.js +3 -3
- package/providers/_builtin/ide/cursor/scripts/1.0/read_chat.js +9 -9
- package/providers/_builtin/ide/cursor/scripts/1.0/resolve_action.js +4 -4
- package/providers/_builtin/ide/cursor/scripts/1.0/send_message.js +5 -5
- package/providers/_builtin/ide/cursor/scripts/1.0/set_mode.js +4 -4
- package/providers/_builtin/ide/cursor/scripts/1.0/set_model.js +12 -12
- package/providers/_builtin/ide/cursor/scripts/1.0/switch_session.js +2 -2
- package/providers/_builtin/ide/kiro/scripts/1.0/focus_editor.js +2 -2
- package/providers/_builtin/ide/kiro/scripts/1.0/open_panel.js +7 -7
- package/providers/_builtin/ide/kiro/scripts/1.0/resolve_action.js +3 -3
- package/providers/_builtin/ide/kiro/scripts/1.0/send_message.js +4 -4
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_list_sessions.js +2 -2
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_new_session.js +5 -5
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_read_chat.js +13 -13
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_resolve_action.js +1 -1
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_send_message.js +8 -8
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_set_mode.js +1 -1
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_set_model.js +1 -1
- package/providers/_builtin/ide/kiro/scripts/1.0/webview_switch_session.js +3 -3
- package/providers/_builtin/ide/pearai/.tmp/after_rich.json +157 -0
- package/providers/_builtin/ide/pearai/.tmp/after_rich_raw.json +161 -0
- package/providers/_builtin/ide/pearai/.tmp/after_switch.json +592 -0
- package/providers/_builtin/ide/pearai/.tmp/after_switch_raw.json +596 -0
- package/providers/_builtin/ide/pearai/.tmp/home_dump_raw.json +176 -0
- package/providers/_builtin/ide/pearai/.tmp/items_raw.json +778 -0
- package/providers/_builtin/ide/pearai/.tmp/webview_dump.json +157 -0
- package/providers/_builtin/ide/pearai/.tmp/webview_dump_raw.json +161 -0
- package/providers/_builtin/ide/pearai/provider.json +1 -3
- package/providers/_builtin/ide/pearai/scripts/1.0/focus_editor.js +12 -16
- package/providers/_builtin/ide/pearai/scripts/1.0/list_models.js +45 -0
- package/providers/_builtin/ide/pearai/scripts/1.0/list_modes.js +44 -0
- package/providers/_builtin/ide/pearai/scripts/1.0/list_sessions.js +82 -27
- package/providers/_builtin/ide/pearai/scripts/1.0/new_session.js +26 -43
- package/providers/_builtin/ide/pearai/scripts/1.0/open_panel.js +10 -33
- package/providers/_builtin/ide/pearai/scripts/1.0/read_chat.js +169 -0
- package/providers/_builtin/ide/pearai/scripts/1.0/resolve_action.js +47 -41
- package/providers/_builtin/ide/pearai/scripts/1.0/scripts.js +36 -7
- package/providers/_builtin/ide/pearai/scripts/1.0/send_message.js +97 -22
- package/providers/_builtin/ide/pearai/scripts/1.0/set_mode.js +51 -0
- package/providers/_builtin/ide/pearai/scripts/1.0/set_model.js +54 -0
- package/providers/_builtin/ide/pearai/scripts/1.0/switch_session.js +81 -0
- package/providers/_builtin/ide/trae/scripts/1.0/focus_editor.js +2 -2
- package/providers/_builtin/ide/trae/scripts/1.0/list_chats.js +2 -2
- package/providers/_builtin/ide/trae/scripts/1.0/new_session.js +4 -4
- package/providers/_builtin/ide/trae/scripts/1.0/open_panel.js +6 -6
- package/providers/_builtin/ide/trae/scripts/1.0/read_chat.js +13 -13
- package/providers/_builtin/ide/trae/scripts/1.0/resolve_action.js +3 -3
- package/providers/_builtin/ide/trae/scripts/1.0/send_message.js +11 -11
- package/providers/_builtin/ide/trae/scripts/1.0/switch_session.js +2 -2
- package/providers/_builtin/ide/windsurf/scripts/1.0/focus_editor.js +6 -6
- package/providers/_builtin/ide/windsurf/scripts/1.0/list_chats.js +4 -4
- package/providers/_builtin/ide/windsurf/scripts/1.0/list_sessions.js +6 -6
- package/providers/_builtin/ide/windsurf/scripts/1.0/new_session.js +9 -9
- package/providers/_builtin/ide/windsurf/scripts/1.0/open_panel.js +6 -6
- package/providers/_builtin/ide/windsurf/scripts/1.0/resolve_action.js +8 -8
- package/providers/_builtin/ide/windsurf/scripts/1.0/switch_session.js +8 -8
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/focus_editor.js +6 -6
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_chats.js +12 -12
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/new_session.js +15 -15
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/open_panel.js +10 -10
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/read_chat.js +33 -33
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/resolve_action.js +6 -6
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/send_message.js +16 -16
- package/providers/_builtin/ide/windsurf/scripts/1.0.bak/switch_session.js +7 -7
- package/providers/_builtin/registry.json +76 -3
- package/src/cli-adapters/provider-cli-adapter.ts +267 -251
- package/src/cli-adapters/terminal-screen.ts +268 -0
- package/src/commands/chat-commands.ts +41 -15
- package/src/commands/cli-manager.ts +4 -2
- package/src/daemon/dev-server.ts +245 -35
- package/src/providers/acp-provider-instance.ts +1 -1
- package/src/providers/cli-provider-instance.ts +21 -8
- package/src/providers/provider-loader.ts +3 -2
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_list_models.js +0 -43
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_list_modes.js +0 -35
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_list_sessions.js +0 -62
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_new_session.js +0 -49
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_read_chat.js +0 -92
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_resolve_action.js +0 -59
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_send_message.js +0 -72
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_set_mode.js +0 -36
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_set_model.js +0 -36
- package/providers/_builtin/ide/pearai/scripts/1.0/webview_switch_session.js +0 -34
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor — resolve_action
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* approval/ button search + click:
|
|
5
|
+
* button, [role="button"], .cursor-pointer text matching
|
|
6
|
+
* Cursor (e.g. "Run⏎", "SkipEsc") → ⏎↵ remove then compare
|
|
7
7
|
*
|
|
8
|
-
* params.buttonText: string —
|
|
8
|
+
* params.buttonText: string — to find button text
|
|
9
9
|
* → { resolved: true/false, clicked?, available? }
|
|
10
10
|
*/
|
|
11
11
|
(params) => {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor — send_message
|
|
3
3
|
*
|
|
4
|
-
* Cursor
|
|
5
|
-
* 1.
|
|
6
|
-
* 2. needsTypeAndSend: true
|
|
4
|
+
* Cursor uses cdp-type-and-send approach:
|
|
5
|
+
* 1. Verify input field exists
|
|
6
|
+
* 2. Returns needsTypeAndSend: true → daemon handles typing + Enter via CDP
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Input selector: .aislash-editor-input[contenteditable="true"]
|
|
9
|
+
* Parameter: ${ MESSAGE } (Not used — daemon handles typing directly)
|
|
10
10
|
*/
|
|
11
11
|
(() => {
|
|
12
12
|
try {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor — set_mode
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* 1.
|
|
6
|
-
* 2.
|
|
4
|
+
* Select target mode from mode dropdown:
|
|
5
|
+
* 1. Open dropdown
|
|
6
|
+
* 2. Click matching item
|
|
7
7
|
*
|
|
8
|
-
* params.mode: string —
|
|
8
|
+
* params.mode: string — Mode name
|
|
9
9
|
* → { success: true/false, mode? }
|
|
10
10
|
*/
|
|
11
11
|
async (params) => {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor — set_model
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* 1.
|
|
6
|
-
* 2. Auto
|
|
7
|
-
* 3.
|
|
8
|
-
* 4.
|
|
9
|
-
* 5.
|
|
4
|
+
* Select target model from model dropdown:
|
|
5
|
+
* 1. Open dropdown
|
|
6
|
+
* 2. Turn off Auto toggle (if needed)
|
|
7
|
+
* 3. Filter via search input
|
|
8
|
+
* 4. Click matching item
|
|
9
|
+
* 5. Restore original Auto state
|
|
10
10
|
*
|
|
11
|
-
* params.model: string —
|
|
11
|
+
* params.model: string — Model name (🧠 may have suffix)
|
|
12
12
|
* → { success: true/false, model? }
|
|
13
13
|
*/
|
|
14
14
|
async (params) => {
|
|
@@ -24,11 +24,11 @@ async (params) => {
|
|
|
24
24
|
const menu = document.querySelector('[data-testid="model-picker-menu"]');
|
|
25
25
|
if (!menu) return JSON.stringify({ success: false, error: 'Model picker menu not found' });
|
|
26
26
|
|
|
27
|
-
// 🧠
|
|
27
|
+
// 🧠 Handle suffix
|
|
28
28
|
const wantBrain = target.includes('🧠');
|
|
29
29
|
const searchName = target.replace(/\s*🧠\s*$/, '').trim();
|
|
30
30
|
|
|
31
|
-
// Auto
|
|
31
|
+
// Auto toggle turn off
|
|
32
32
|
const autoItem = menu.querySelector('.composer-unified-context-menu-item[data-is-selected="true"]');
|
|
33
33
|
const autoToggle = autoItem ? [...autoItem.querySelectorAll('[class*="rounded-full"]')].find(el => el.offsetWidth === 24 && el.offsetHeight === 14) : null;
|
|
34
34
|
let wasAutoOn = false;
|
|
@@ -41,7 +41,7 @@ async (params) => {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
// Filter via search input
|
|
45
45
|
const refreshedMenu = document.querySelector('[data-testid="model-picker-menu"]');
|
|
46
46
|
const searchInput = refreshedMenu?.querySelector('input[placeholder="Search models"]');
|
|
47
47
|
if (searchInput) {
|
|
@@ -51,7 +51,7 @@ async (params) => {
|
|
|
51
51
|
await new Promise(r => setTimeout(r, 300));
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
// from search
|
|
55
55
|
const items = (refreshedMenu || menu).querySelectorAll('.composer-unified-context-menu-item');
|
|
56
56
|
for (const item of items) {
|
|
57
57
|
const nameEl = item.querySelector('.monaco-highlighted-label');
|
|
@@ -67,7 +67,7 @@ async (params) => {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
// Auto + close
|
|
71
71
|
if (wasAutoOn) {
|
|
72
72
|
const nm = document.querySelector('[data-testid="model-picker-menu"]');
|
|
73
73
|
const nai = nm?.querySelector('.composer-unified-context-menu-item');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor — switch_session
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* by clicking Switch session:
|
|
5
|
+
* title matching (params.title) or index (params.index)
|
|
6
6
|
*
|
|
7
7
|
* params.index: number, params.title: string|null
|
|
8
8
|
* → { switched: true/false, title?, error? }
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor v1 — focus_editor
|
|
3
3
|
*
|
|
4
|
-
* CURSOR.md 4-5:
|
|
4
|
+
* CURSOR.md 4-5: Selector priority
|
|
5
5
|
* [contenteditable="true"][role="textbox"]
|
|
6
6
|
* → .chat-input textarea
|
|
7
7
|
* → .composer-input
|
|
8
8
|
* → textarea
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* final Check: 2026-03-06
|
|
11
11
|
*/
|
|
12
12
|
(() => {
|
|
13
13
|
const editor = document.querySelector('[contenteditable="true"][role="textbox"]')
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Kiro — open_panel
|
|
3
3
|
*
|
|
4
|
-
* Kiro AI
|
|
5
|
-
* Secondary Side Bar (#workbench.parts.auxiliarybar)
|
|
6
|
-
* "Toggle Secondary Side Bar (⌥⌘B)"
|
|
4
|
+
* Kiro AI chat panel open.
|
|
5
|
+
* Secondary Side Bar (#workbench.parts.auxiliarybar)located at.
|
|
6
|
+
* "Toggle Secondary Side Bar (⌥⌘B)" or "Kiro" via button open.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Return: 'visible' | 'opened' | 'error: ...'
|
|
9
9
|
*/
|
|
10
10
|
(() => {
|
|
11
11
|
try {
|
|
12
|
-
// 1.
|
|
12
|
+
// 1. if already open Check
|
|
13
13
|
const sidebar = document.getElementById('workbench.parts.auxiliarybar');
|
|
14
14
|
if (sidebar && sidebar.offsetWidth > 0 && sidebar.offsetHeight > 0) {
|
|
15
15
|
return 'visible';
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
// 2.
|
|
18
|
+
// 2. Attempt to click toggle button
|
|
19
19
|
const toggleBtns = Array.from(document.querySelectorAll('li.action-item a, button, [role="button"]'));
|
|
20
20
|
for (const btn of toggleBtns) {
|
|
21
21
|
const label = (btn.getAttribute('aria-label') || '').toLowerCase();
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
// 3. Cmd+Shift+I
|
|
31
|
+
// 3. Cmd+Shift+I shortcut fallback (Kiro default shortcut)
|
|
32
32
|
document.dispatchEvent(new KeyboardEvent('keydown', {
|
|
33
33
|
key: 'b', code: 'KeyB', keyCode: 66,
|
|
34
34
|
metaKey: true, altKey: true, ctrlKey: false,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Kiro — resolve_action
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Find approve/reject buttons + coordinates Return.
|
|
5
|
+
* Kiroapproval dialog is displayed in main DOM.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Parameter: ${ BUTTON_TEXT }
|
|
8
8
|
*/
|
|
9
9
|
(() => {
|
|
10
10
|
const want = ${ BUTTON_TEXT };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Kiro — send_message
|
|
3
3
|
*
|
|
4
|
-
* Kiro
|
|
5
|
-
* auxbar
|
|
6
|
-
*
|
|
4
|
+
* Kiro chat input is inside webview iframe, so direct access from main DOM is not possible.
|
|
5
|
+
* auxbar at the bottom of Input field calculate coordinates and return as clickCoords.
|
|
6
|
+
* CDP Input API click++Enter row.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Parameter: ${ MESSAGE }
|
|
9
9
|
*/
|
|
10
10
|
(() => {
|
|
11
11
|
try {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Kiro — webview_new_session (webview iframe
|
|
2
|
+
* Kiro — webview_new_session (webview iframe runs inside)
|
|
3
3
|
*
|
|
4
|
-
* "New Session"
|
|
5
|
-
* Kiro
|
|
4
|
+
* "New Session" button/ click.
|
|
5
|
+
* Kiro + button or "New Session" .
|
|
6
6
|
*/
|
|
7
7
|
(() => {
|
|
8
8
|
try {
|
|
9
|
-
// kiro-icon-button (+
|
|
9
|
+
// kiro-icon-button (+ button) search
|
|
10
10
|
const addBtns = document.querySelectorAll('.kiro-icon-button, button, [role="button"]');
|
|
11
11
|
for (const btn of addBtns) {
|
|
12
12
|
const ariaLabel = (btn.getAttribute('aria-label') || '').toLowerCase();
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
// Checkpoint > New Session
|
|
21
|
+
// Checkpoint > New Session area search
|
|
22
22
|
const allText = document.querySelectorAll('*');
|
|
23
23
|
for (const el of allText) {
|
|
24
24
|
if (el.children.length === 0 && (el.textContent || '').trim() === 'New Session') {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Kiro — webview_read_chat (webview iframe
|
|
2
|
+
* Kiro — webview_read_chat (webview iframe runs inside)
|
|
3
3
|
*
|
|
4
|
-
* Kiro
|
|
5
|
-
*
|
|
4
|
+
* Kiro chat UI webview iframe located at,
|
|
5
|
+
* evaluateInWebviewFrame execute.
|
|
6
6
|
*
|
|
7
|
-
* DOM
|
|
7
|
+
* DOM structure:
|
|
8
8
|
* .kiro-chat-timeline
|
|
9
|
-
* .kiro-chat-message (
|
|
10
|
-
* .kiro-chat-message-meta → .kiro-chat-message-role (
|
|
11
|
-
* .kiro-chat-message-body → .kiro-chat-message-markdown (
|
|
9
|
+
* .kiro-chat-message (user/assistant messages)
|
|
10
|
+
* .kiro-chat-message-meta → .kiro-chat-message-role (sender)
|
|
11
|
+
* .kiro-chat-message-body → .kiro-chat-message-markdown (content)
|
|
12
12
|
*
|
|
13
|
-
*
|
|
13
|
+
* Return: ReadChatResult { id, status, messages, inputContent? }
|
|
14
14
|
*/
|
|
15
15
|
(() => {
|
|
16
16
|
try {
|
|
@@ -104,18 +104,18 @@
|
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
// status detection activeModal extract
|
|
108
108
|
let status = 'idle';
|
|
109
109
|
let activeModal = undefined;
|
|
110
110
|
|
|
111
|
-
// "Working" / "Cancel"
|
|
111
|
+
// "Working" / "Cancel" button → generating
|
|
112
112
|
const snackbar = document.querySelector('.kiro-snackbar');
|
|
113
113
|
if (snackbar && snackbar.offsetWidth > 0) {
|
|
114
114
|
const barText = (snackbar.textContent || '').toLowerCase();
|
|
115
115
|
if (barText.includes('working') || barText.includes('cancel')) {
|
|
116
116
|
status = 'generating';
|
|
117
117
|
} else if (barText.includes('waiting') || barText.includes('input')) {
|
|
118
|
-
//
|
|
118
|
+
// Waiting for approval (waiting on your input)
|
|
119
119
|
const titleEl = snackbar.querySelector('.kiro-snackbar-title, .thinking-text');
|
|
120
120
|
const actionsEl = snackbar.querySelectorAll('.kiro-snackbar-actions button');
|
|
121
121
|
const buttons = Array.from(actionsEl).map(b => (b.textContent || '').trim());
|
|
@@ -139,11 +139,11 @@
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
//
|
|
142
|
+
// Input field content
|
|
143
143
|
const input = document.querySelector('.tiptap.ProseMirror, [contenteditable="true"]');
|
|
144
144
|
const inputContent = input ? input.textContent?.trim() : '';
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
// session
|
|
147
147
|
const tab = document.querySelector('.kiro-tabs-item.active, .kiro-tabs-item[aria-selected="true"]');
|
|
148
148
|
const title = tab?.textContent?.trim() || '';
|
|
149
149
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Kiro — webview_send_message (webview iframe
|
|
2
|
+
* Kiro — webview_send_message (webview iframe runs inside)
|
|
3
3
|
*
|
|
4
|
-
* Kiro
|
|
5
|
-
* execCommand('insertText') + Enter
|
|
4
|
+
* Kiro chat input webview iframe ProseMirror/tiptap editor.
|
|
5
|
+
* execCommand('insertText') + Enter via key event Send message.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Parameter: ${ MESSAGE }
|
|
8
8
|
*/
|
|
9
9
|
(async () => {
|
|
10
10
|
try {
|
|
11
11
|
const msg = ${ MESSAGE };
|
|
12
12
|
|
|
13
|
-
// ─── 1.
|
|
13
|
+
// ─── 1. Find input field ───
|
|
14
14
|
const editor =
|
|
15
15
|
document.querySelector('.tiptap.ProseMirror') ||
|
|
16
16
|
document.querySelector('[contenteditable="true"]') ||
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
editor.focus();
|
|
40
40
|
await new Promise(r => setTimeout(r, 100));
|
|
41
41
|
|
|
42
|
-
//
|
|
42
|
+
// all Select + delete + insert
|
|
43
43
|
const sel = window.getSelection();
|
|
44
44
|
const range = document.createRange();
|
|
45
45
|
range.selectNodeContents(editor);
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
editor.dispatchEvent(new Event('input', { bubbles: true }));
|
|
55
55
|
await new Promise(r => setTimeout(r, 400));
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
// ─── 3. button click (Enter ) ───
|
|
58
58
|
const sendBtns = Array.from(document.querySelectorAll('button, div[role="button"], span[role="button"]'))
|
|
59
59
|
.filter(b => {
|
|
60
60
|
const aria = (b.getAttribute('aria-label') || '').toLowerCase();
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
await new Promise(r => setTimeout(r, 100));
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
// ─── 4. Enter
|
|
79
|
+
// ─── 4. Enter key sending (Fallback) ───
|
|
80
80
|
const enterOpts = {
|
|
81
81
|
key: 'Enter', code: 'Enter',
|
|
82
82
|
keyCode: 13, which: 13,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Kiro — webview_switch_session (webview iframe
|
|
2
|
+
* Kiro — webview_switch_session (webview iframe runs inside)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* session by clicking .
|
|
5
|
+
* Parameter: ${ SESSION_ID } ( index)
|
|
6
6
|
*/
|
|
7
7
|
(() => {
|
|
8
8
|
try {
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Roo Code",
|
|
3
|
+
"text": "PearAI Coding Agent\nPowered by Roo Code / Cline\nAutonomous coding agent that has access to your development environment (with your permission) for a feedback loop to add features, fix bugs, and more.\nMARCH 28, 5:43 PM\n테스트\n↑ 93.2k\n↓ 2.2k\nMARCH 28, 5:26 PM\nDo ALL of the following:\n1. Run `ls -la /tmp` in the terminal\n2. Write a file /tmp/adhdev_test.txt with content 'hello world'\n3. Show a markdown table with 3 rows: Name, Language, Stars for Python, JavaScript, Rust\n4. Write a python code block that prints fibonacci numbers\nThink step by step before each task.\n↑ 40.6k\n↓ 2.9k\nMARCH 28, 5:24 PM\nSay hello in one word\n↑ 0\n↓ 0\nAuto-approve:\nRead, Write, Execute, Browser, MCP, Mode, Subtasks, Retry\n(@ to add context, / to switch modes, hold shift to drag in files/images)\n💻 Code\ndefault\nSend",
|
|
4
|
+
"html": "\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"><div style=\"position: fixed; inset: 0px; padding: 12px; display: flex; flex-direction: column; overflow: hidden;\"><div style=\"flex: 1 1 0px; min-height: 0px; overflow-y: auto; display: flex; flex-direction: column-reverse; padding-bottom: 10px;\"><div class=\"max-w-2xl mx-auto w-full h-[calc(100vh-270px)] text-center flex flex-col justify-center\"><div class=\"w-full text-center flex flex-col items-center justify-center relative gap-5\"><img src=\"data:image/svg+xml,%3csvg%20width='301'%20height='208'%20viewBox='0%200%20301%20208'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='5.19824'%20y='5.12256'%20width='290.603'%20height='38.5863'%20rx='14.4699'%20fill='%23FF34A1'%20fill-opacity='0.5'/%3e%3cpath%20d='M31.1083%2017.7987C30.2842%2016.9746%2028.9481%2016.9746%2028.1241%2017.7987L22.9853%2022.9375C22.6774%2023.2454%2022.4332%2023.6109%2022.2665%2024.0132L21.2443%2026.481C21.1043%2026.8189%2021.1817%2027.2079%2021.4403%2027.4665C21.6989%2027.7252%2022.0879%2027.8026%2022.4259%2027.6626L24.8939%2026.6404C25.2963%2026.4737%2025.6619%2026.2294%2025.9698%2025.9215L31.1083%2020.783C31.9324%2019.9589%2031.9324%2018.6228%2031.1083%2017.7987Z'%20fill='%23FF34A1'/%3e%3cpath%20d='M20.5725%2018.9894C19.74%2018.9894%2019.0652%2019.6642%2019.0652%2020.4967V28.3345C19.0652%2029.167%2019.74%2029.8418%2020.5725%2029.8418H28.4103C29.2428%2029.8418%2029.9176%2029.167%2029.9176%2028.3345V25.6214C29.9176%2025.122%2030.3225%2024.7171%2030.822%2024.7171C31.3215%2024.7171%2031.7263%2025.122%2031.7263%2025.6214V28.3345C31.7263%2030.1659%2030.2417%2031.6505%2028.4103%2031.6505H20.5725C18.7411%2031.6505%2017.2565%2030.1659%2017.2565%2028.3345V20.4967C17.2565%2018.6653%2018.7411%2017.1807%2020.5725%2017.1807H23.2856C23.7851%2017.1807%2024.19%2017.5856%2024.19%2018.085C24.19%2018.5845%2023.7851%2018.9894%2023.2856%2018.9894H20.5725Z'%20fill='%23FF34A1'/%3e%3crect%20x='43.7845'%20y='19.5923'%20width='125.406'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.5'/%3e%3crect%20x='5.19824'%20y='53.3555'%20width='290.603'%20height='77.1727'%20rx='14.4699'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3cpath%20d='M25.7492%2087.1705C25.7492%2086.671%2025.3443%2086.2661%2024.8448%2086.2661C24.3453%2086.2661%2023.9404%2086.671%2023.9404%2087.1705V91.3909H19.72C19.2206%2091.3909%2018.8157%2091.7958%2018.8157%2092.2952C18.8157%2092.7947%2019.2206%2093.1996%2019.72%2093.1996L23.9404%2093.1996V97.42C23.9404%2097.9194%2024.3453%2098.3243%2024.8448%2098.3243C25.3443%2098.3243%2025.7492%2097.9194%2025.7492%2097.42V93.1996L29.9695%2093.1996C30.469%2093.1996%2030.8739%2092.7947%2030.8739%2092.2952C30.8739%2091.7958%2030.469%2091.3909%2029.9695%2091.3909H25.7492V87.1705Z'%20fill='%23FF34A1'/%3e%3crect%20x='43.7845'%20y='65.4136'%20width='125.406'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3crect%20x='58.2544'%20y='79.8833'%20width='194.138'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3crect%20x='58.2544'%20y='94.3535'%20width='212.225'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3crect%20x='58.2544'%20y='108.823'%20width='118.171'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3crect%20x='5.19824'%20y='140.175'%20width='290.603'%20height='62.7028'%20rx='14.4699'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3cpath%20d='M19.72%20170.975C19.2206%20170.975%2018.8157%20171.38%2018.8157%20171.879C18.8157%20172.379%2019.2206%20172.784%2019.72%20172.784L29.9695%20172.784C30.469%20172.784%2030.8739%20172.379%2030.8739%20171.879C30.8739%20171.38%2030.469%20170.975%2029.9695%20170.975H19.72Z'%20fill='%23FF34A1'/%3e%3crect%20x='43.7845'%20y='152.233'%20width='94.0542'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3crect%20x='58.2544'%20y='166.703'%20width='27.7339'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3crect%20x='58.2544'%20y='181.173'%20width='50.6446'%20height='9.64659'%20rx='4.82329'%20fill='%23FF34A1'%20fill-opacity='0.05'/%3e%3c/svg%3e\" alt=\"...\"><div class=\"w-[300px] flex-col justify-start items-start gap-5 inline-flex\"><div class=\"flex flex-col text-left\"><div class=\"text-2xl\">PearAI Coding Agent</div><div class=\"h-[18px] opacity-50 text-xs leading-[18px]\">Powered by Roo Code / Cline</div></div></div><div class=\"w-[300px] text-left opacity-50 text-xs leading-[18px]\">Autonomous coding agent that has access to your development environment (with your permission) for a feedback loop to add features, fix bugs, and more.</div></div></div><div class=\"flex flex-col gap-3\"><div class=\"bg-vscode-editor-background rounded relative overflow-hidden cursor-pointer border border-vscode-toolbar-hoverBackground/30 hover:border-vscode-toolbar-hoverBackground/60\"><div class=\"flex flex-col gap-2 p-3 pt-1\"><div class=\"flex justify-between items-center\"><span class=\"text-xs font-medium text-vscode-descriptionForeground uppercase\">MARCH 28, 5:43 PM</span><button class=\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xs text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer active:opacity-80 hover:bg-accent hover:text-accent-foreground h-7 w-7 opacity-50 hover:opacity-100\" title=\"Copy Prompt\" data-testid=\"copy-prompt-button\"><span class=\"codicon scale-80 codicon-copy\"></span></button></div><div class=\"text-vscode-foreground overflow-hidden whitespace-pre-wrap\" style=\"display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: break-word; overflow-wrap: anywhere;\">테스트</div><div class=\"flex flex-row gap-2 text-xs text-vscode-descriptionForeground\"><span>↑ 93.2k</span><span>↓ 2.2k</span></div></div></div><div class=\"bg-vscode-editor-background rounded relative overflow-hidden cursor-pointer border border-vscode-toolbar-hoverBackground/30 hover:border-vscode-toolbar-hoverBackground/60\"><div class=\"flex flex-col gap-2 p-3 pt-1\"><div class=\"flex justify-between items-center\"><span class=\"text-xs font-medium text-vscode-descriptionForeground uppercase\">MARCH 28, 5:26 PM</span><button class=\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xs text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer active:opacity-80 hover:bg-accent hover:text-accent-foreground h-7 w-7 opacity-50 hover:opacity-100\" title=\"Copy Prompt\" data-testid=\"copy-prompt-button\"><span class=\"codicon scale-80 codicon-copy\"></span></button></div><div class=\"text-vscode-foreground overflow-hidden whitespace-pre-wrap\" style=\"display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: break-word; overflow-wrap: anywhere;\">Do ALL of the following:\n1. Run `ls -la /tmp` in the terminal\n2. Write a file /tmp/adhdev_test.txt with content 'hello world'\n3. Show a markdown table with 3 rows: Name, Language, Stars for Python, JavaScript, Rust\n4. Write a python code block that prints fibonacci numbers\nThink step by step before each task.</div><div class=\"flex flex-row gap-2 text-xs text-vscode-descriptionForeground\"><span>↑ 40.6k</span><span>↓ 2.9k</span></div></div></div><div class=\"bg-vscode-editor-background rounded relative overflow-hidden cursor-pointer border border-vscode-toolbar-hoverBackground/30 hover:border-vscode-toolbar-hoverBackground/60\"><div class=\"flex flex-col gap-2 p-3 pt-1\"><div class=\"flex justify-between items-center\"><span class=\"text-xs font-medium text-vscode-descriptionForeground uppercase\">MARCH 28, 5:24 PM</span><button class=\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xs text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer active:opacity-80 hover:bg-accent hover:text-accent-foreground h-7 w-7 opacity-50 hover:opacity-100\" title=\"Copy Prompt\" data-testid=\"copy-prompt-button\"><span class=\"codicon scale-80 codicon-copy\"></span></button></div><div class=\"text-vscode-foreground overflow-hidden whitespace-pre-wrap\" style=\"display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: break-word; overflow-wrap: anywhere;\">Say hello in one word</div><div class=\"flex flex-row gap-2 text-xs text-vscode-descriptionForeground\"><span>↑ 0</span><span>↓ 0</span></div></div></div></div></div><div class=\"mb-[-2px] flex-initial min-h-0\"><div style=\"padding: 6px 6px 10px; user-select: none; border-top: none; overflow-y: auto;\"><div style=\"display: flex; align-items: center; gap: 8px; cursor: pointer;\"><div><vscode-checkbox role=\"checkbox\" aria-checked=\"true\" aria-required=\"false\" aria-disabled=\"false\" tabindex=\"0\" aria-label=\"Checkbox\" current-value=\"on\" current-checked=\"true\" class=\"checked\"></vscode-checkbox></div><div style=\"display: flex; align-items: center; gap: 4px; flex: 1 1 0%; min-width: 0px;\"><span style=\"color: var(--vscode-foreground); flex-shrink: 0;\">Auto-approve:</span><span style=\"color: var(--vscode-descriptionForeground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1 1 0%; min-width: 0px;\">Read, Write, Execute, Browser, MCP, Mode, Subtasks, Retry</span><span class=\"codicon codicon-chevron-right\" style=\"flex-shrink: 0; margin-left: -2px;\"></span></div></div></div></div><div class=\"relative flex flex-col gap-2 m-[10px_15px] p-2 outline-none border-none w-[calc(100%-30px)] rounded-xl ml-auto mr-auto box-border opacity-100\" style=\"background-color: var(--vscode-editor-background);\"><div class=\"relative\"><div class=\"chat-text-area relative flex flex-col outline-none\"><div class=\"relative flex-1 flex flex-col-reverse min-h-0 overflow-hidden rounded\"><div class=\"absolute inset-0 pointer-events-none whitespace-pre-wrap break-words text-transparent overflow-hidden py-2 px-[9px] z-[1000]\" style=\"color: transparent; font-family: var(--vscode-font-family); font-size: var(--vscode-editor-font-size); line-height: var(--vscode-editor-line-height);\"></div><textarea placeholder=\"Type your task here...\" class=\"w-full text-vscode-input-foreground cursor-text py-1.5 px-2 border-none outline-none focus:outline-none focus:ring-0 opacity-100 bg-transparent transition-background-color duration-150 ease-in-out will-change-background-color min-h-[90px] box-border rounded resize-none overflow-x-hidden overflow-y-auto pr-2 flex-none flex-grow z-[2] scrollbar-none\" style=\"font-family: var(--vscode-font-family); font-size: var(--vscode-editor-font-size); line-height: var(--vscode-editor-line-height); outline: none; height: 57px !important;\"></textarea><div class=\"absolute left-2 flex gap-2 text-xs text-vscode-input-foreground pointer-events-none z-25 bottom-1.5 pr-2 transition-opacity duration-200 ease-in-out opacity-70\">\n(@ to add context, / to switch modes, hold shift to drag in files/images)</div></div></div></div><div class=\"flex justify-between items-center mt-auto pt-0.5\"><div class=\"flex items-center gap-1 min-w-0\"><div class=\"shrink-0\"><button type=\"button\" aria-haspopup=\"dialog\" aria-expanded=\"false\" aria-controls=\"radix-:r0:\" data-state=\"closed\" title=\"Select mode for interaction\" data-testid=\"dropdown-trigger\" class=\"min-w-0 max-w-full inline-flex items-center gap-1.5 relative whitespace-nowrap px-1.5 py-1 text-xs bg-transparent border border-[rgba(255,255,255,0.08)] rounded-md text-vscode-foreground transition-all duration-150 focus:outline-none focus-visible:ring-1 focus-visible:ring-vscode-focusBorder opacity-90 hover:opacity-100 hover:bg-[rgba(255,255,255,0.03)] hover:border-[rgba(255,255,255,0.15)] cursor-pointer w-full\"><svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"pointer-events-none opacity-80 flex-shrink-0 size-3\"><path d=\"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z\" fill=\"currentColor\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"></path></svg><span class=\"truncate\">💻 Code</span></button></div><div class=\"flex-1 min-w-0 overflow-hidden\"><button type=\"button\" aria-haspopup=\"dialog\" aria-expanded=\"false\" aria-controls=\"radix-:r1:\" data-state=\"closed\" title=\"Select API configuration\" data-testid=\"dropdown-trigger\" class=\"min-w-0 max-w-full inline-flex items-center gap-1.5 relative whitespace-nowrap px-1.5 py-1 text-xs bg-transparent border border-[rgba(255,255,255,0.08)] rounded-md text-vscode-foreground transition-all duration-150 focus:outline-none focus-visible:ring-1 focus-visible:ring-vscode-focusBorder opacity-90 hover:opacity-100 hover:bg-[rgba(255,255,255,0.03)] hover:border-[rgba(255,255,255,0.15)] cursor-pointer w-full text-ellipsis overflow-hidden\"><svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"pointer-events-none opacity-80 flex-shrink-0 size-3\"><path d=\"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z\" fill=\"currentColor\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"></path></svg><span class=\"truncate\">default</span></button></div></div><div class=\"flex items-center gap-0.5 shrink-0\"><button aria-label=\"Add images to message\" title=\"Add images to message\" class=\"relative inline-flex items-center justify-center bg-transparent border-none p-1.5 rounded-md min-w-[28px] min-h-[28px] text-vscode-foreground opacity-85 transition-all duration-150 hover:opacity-100 hover:bg-[rgba(255,255,255,0.03)] hover:border-[rgba(255,255,255,0.15)] focus:outline-none focus-visible:ring-1 focus-visible:ring-vscode-focusBorder active:bg-[rgba(255,255,255,0.1)]\" style=\"font-size: 16.5px;\"><span class=\"codicon codicon-device-camera\"></span></button><button class=\"inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer active:opacity-80 border border-vscode-input-border shadow hover:bg-primary/90 gap-1 h-6 bg-[#E64C9E] text-white text-xs px-2 rounded-lg\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\" width=\"12px\" height=\"12px\"><path fill-rule=\"evenodd\" d=\"M13.25 2a.75.75 0 0 0-.75.75v6.5H4.56l.97-.97a.75.75 0 0 0-1.06-1.06L2.22 9.47a.75.75 0 0 0 0 1.06l2.25 2.25a.75.75 0 0 0 1.06-1.06l-.97-.97h8.69A.75.75 0 0 0 14 10V2.75a.75.75 0 0 0-.75-.75Z\" clip-rule=\"evenodd\"></path></svg>Send</button></div></div></div><div id=\"roo-portal\"></div></div></div>\n <script nonce=\"j5u673kij40bpVvUJgwCABMGTv1qebOB\" type=\"module\" src=\"https://file%2B.vscode-resource.vscode-cdn.net/Applications/PearAI.app/Contents/Resources/app/extensions/pearai.pearai-roo-cline-3.15.2/webview-ui/build/assets/index.js\"></script>\n \n \n <textarea tabindex=\"-1\" aria-hidden=\"true\" style=\"min-height: 0px !important; max-height: none !important; height: 0px !important; visibility: hidden !important; overflow: hidden !important; position: absolute !important; z-index: -1000 !important; top: 0px !important; right: 0px !important; display: block !important; border-width: 0px; box-sizing: border-box; font-family: -apple-system, "system-ui", sans-serif; font-size: 12px; font-style: normal; font-weight: 400; letter-spacing: normal; line-height: 15px; padding: 6px 8px; tab-size: 4; text-indent: 0px; text-rendering: auto; text-transform: none; width: 329px; word-break: normal; word-spacing: 0px; scrollbar-gutter: auto;\"></textarea>",
|
|
5
|
+
"elements": [
|
|
6
|
+
{
|
|
7
|
+
"tag": "button",
|
|
8
|
+
"id": "",
|
|
9
|
+
"className": "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xs text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:poin",
|
|
10
|
+
"role": "",
|
|
11
|
+
"ariaLabel": "",
|
|
12
|
+
"title": "Copy Prompt",
|
|
13
|
+
"placeholder": "",
|
|
14
|
+
"dataTestId": "copy-prompt-button",
|
|
15
|
+
"text": "",
|
|
16
|
+
"x": 336,
|
|
17
|
+
"y": -223,
|
|
18
|
+
"w": 28,
|
|
19
|
+
"h": 28
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"tag": "button",
|
|
23
|
+
"id": "",
|
|
24
|
+
"className": "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xs text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:poin",
|
|
25
|
+
"role": "",
|
|
26
|
+
"ariaLabel": "",
|
|
27
|
+
"title": "Copy Prompt",
|
|
28
|
+
"placeholder": "",
|
|
29
|
+
"dataTestId": "copy-prompt-button",
|
|
30
|
+
"text": "",
|
|
31
|
+
"x": 336,
|
|
32
|
+
"y": -118,
|
|
33
|
+
"w": 28,
|
|
34
|
+
"h": 28
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"tag": "button",
|
|
38
|
+
"id": "",
|
|
39
|
+
"className": "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xs text-base font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:poin",
|
|
40
|
+
"role": "",
|
|
41
|
+
"ariaLabel": "",
|
|
42
|
+
"title": "Copy Prompt",
|
|
43
|
+
"placeholder": "",
|
|
44
|
+
"dataTestId": "copy-prompt-button",
|
|
45
|
+
"text": "",
|
|
46
|
+
"x": 336,
|
|
47
|
+
"y": 3,
|
|
48
|
+
"w": 28,
|
|
49
|
+
"h": 28
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"tag": "vscode-checkbox",
|
|
53
|
+
"id": "",
|
|
54
|
+
"className": "checked",
|
|
55
|
+
"role": "checkbox",
|
|
56
|
+
"ariaLabel": "Checkbox",
|
|
57
|
+
"title": "",
|
|
58
|
+
"placeholder": "",
|
|
59
|
+
"dataTestId": "",
|
|
60
|
+
"text": "",
|
|
61
|
+
"x": 18,
|
|
62
|
+
"y": 463,
|
|
63
|
+
"w": 18,
|
|
64
|
+
"h": 18
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"tag": "textarea",
|
|
68
|
+
"id": "",
|
|
69
|
+
"className": "w-full text-vscode-input-foreground cursor-text py-1.5 px-2 border-none outline-none focus:outline-none focus:ring-0 opacity-100 bg-transparent transition-background-color duration-150 ease-in-out wil",
|
|
70
|
+
"role": "",
|
|
71
|
+
"ariaLabel": "",
|
|
72
|
+
"title": "",
|
|
73
|
+
"placeholder": "Type your task here...",
|
|
74
|
+
"dataTestId": "",
|
|
75
|
+
"text": "",
|
|
76
|
+
"x": 35,
|
|
77
|
+
"y": 511,
|
|
78
|
+
"w": 329,
|
|
79
|
+
"h": 90
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"tag": "button",
|
|
83
|
+
"id": "",
|
|
84
|
+
"className": "min-w-0 max-w-full inline-flex items-center gap-1.5 relative whitespace-nowrap px-1.5 py-1 text-xs bg-transparent border border-[rgba(255,255,255,0.08)] rounded-md text-vscode-foreground transition-al",
|
|
85
|
+
"role": "",
|
|
86
|
+
"ariaLabel": "",
|
|
87
|
+
"title": "Select mode for interaction",
|
|
88
|
+
"placeholder": "",
|
|
89
|
+
"dataTestId": "dropdown-trigger",
|
|
90
|
+
"text": "💻 Code",
|
|
91
|
+
"x": 35,
|
|
92
|
+
"y": 613,
|
|
93
|
+
"w": 74,
|
|
94
|
+
"h": 25
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"tag": "button",
|
|
98
|
+
"id": "",
|
|
99
|
+
"className": "min-w-0 max-w-full inline-flex items-center gap-1.5 relative whitespace-nowrap px-1.5 py-1 text-xs bg-transparent border border-[rgba(255,255,255,0.08)] rounded-md text-vscode-foreground transition-al",
|
|
100
|
+
"role": "",
|
|
101
|
+
"ariaLabel": "",
|
|
102
|
+
"title": "Select API configuration",
|
|
103
|
+
"placeholder": "",
|
|
104
|
+
"dataTestId": "dropdown-trigger",
|
|
105
|
+
"text": "default",
|
|
106
|
+
"x": 113,
|
|
107
|
+
"y": 613,
|
|
108
|
+
"w": 69,
|
|
109
|
+
"h": 25
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"tag": "button",
|
|
113
|
+
"id": "",
|
|
114
|
+
"className": "relative inline-flex items-center justify-center bg-transparent border-none p-1.5 rounded-md min-w-[28px] min-h-[28px] text-vscode-foreground opacity-85 transition-all duration-150 hover:opacity-100 h",
|
|
115
|
+
"role": "",
|
|
116
|
+
"ariaLabel": "Add images to message",
|
|
117
|
+
"title": "Add images to message",
|
|
118
|
+
"placeholder": "",
|
|
119
|
+
"dataTestId": "",
|
|
120
|
+
"text": "",
|
|
121
|
+
"x": 269,
|
|
122
|
+
"y": 611,
|
|
123
|
+
"w": 28,
|
|
124
|
+
"h": 28
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"tag": "button",
|
|
128
|
+
"id": "",
|
|
129
|
+
"className": "inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:op",
|
|
130
|
+
"role": "",
|
|
131
|
+
"ariaLabel": "",
|
|
132
|
+
"title": "",
|
|
133
|
+
"placeholder": "",
|
|
134
|
+
"dataTestId": "",
|
|
135
|
+
"text": "Send",
|
|
136
|
+
"x": 299,
|
|
137
|
+
"y": 613,
|
|
138
|
+
"w": 65,
|
|
139
|
+
"h": 24
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"tag": "textarea",
|
|
143
|
+
"id": "",
|
|
144
|
+
"className": "",
|
|
145
|
+
"role": "",
|
|
146
|
+
"ariaLabel": "",
|
|
147
|
+
"title": "",
|
|
148
|
+
"placeholder": "",
|
|
149
|
+
"dataTestId": "",
|
|
150
|
+
"text": "",
|
|
151
|
+
"x": 70,
|
|
152
|
+
"y": 0,
|
|
153
|
+
"w": 329,
|
|
154
|
+
"h": 12
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|