@adhdev/daemon-core 0.6.35 → 0.6.37

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 (93) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.js +112 -26
  3. package/dist/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/providers/_builtin/acp/codex-cli/provider.json +2 -2
  6. package/providers/_builtin/cli/codex-cli/provider.json +8 -18
  7. package/providers/_builtin/ide/antigravity/provider.json +2 -3
  8. package/providers/_builtin/ide/cursor/provider.json +2 -2
  9. package/providers/_builtin/ide/cursor/scripts/{0.49 → 1.0}/read_chat.js +1 -1
  10. package/providers/_builtin/ide/cursor/scripts/{0.49 → 1.0}/resolve_action.js +1 -1
  11. package/providers/_builtin/ide/windsurf/scripts/1.0/focus_editor.js +16 -10
  12. package/providers/_builtin/ide/windsurf/scripts/1.0/list_chats.js +9 -103
  13. package/providers/_builtin/ide/windsurf/scripts/1.0/list_models.js +43 -26
  14. package/providers/_builtin/ide/windsurf/scripts/1.0/list_modes.js +51 -27
  15. package/providers/_builtin/ide/windsurf/scripts/1.0/list_sessions.js +79 -0
  16. package/providers/_builtin/ide/windsurf/scripts/1.0/new_session.js +30 -41
  17. package/providers/_builtin/ide/windsurf/scripts/1.0/open_panel.js +44 -35
  18. package/providers/_builtin/ide/windsurf/scripts/1.0/read_chat.js +211 -273
  19. package/providers/_builtin/ide/windsurf/scripts/1.0/resolve_action.js +64 -50
  20. package/providers/_builtin/ide/windsurf/scripts/1.0/send_message.js +14 -81
  21. package/providers/_builtin/ide/windsurf/scripts/1.0/set_mode.js +34 -6
  22. package/providers/_builtin/ide/windsurf/scripts/1.0/set_model.js +40 -6
  23. package/providers/_builtin/ide/windsurf/scripts/1.0/switch_session.js +66 -42
  24. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/focus_editor.js +30 -0
  25. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_chats.js +117 -0
  26. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_models.js +39 -0
  27. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/list_modes.js +39 -0
  28. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/new_session.js +69 -0
  29. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/open_panel.js +58 -0
  30. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/read_chat.js +315 -0
  31. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/resolve_action.js +68 -0
  32. package/providers/_builtin/ide/{cursor/scripts/0.49 → windsurf/scripts/1.0.bak}/scripts.js +27 -23
  33. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/send_message.js +87 -0
  34. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/set_mode.js +15 -0
  35. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/set_model.js +15 -0
  36. package/providers/_builtin/ide/windsurf/scripts/1.0.bak/switch_session.js +58 -0
  37. package/providers/_builtin/registry.json +5 -9
  38. package/src/cdp/manager.ts +38 -12
  39. package/src/commands/handler.ts +1 -8
  40. package/src/daemon/dev-server.ts +66 -8
  41. package/src/detection/ide-detector.ts +0 -3
  42. package/src/providers/provider-loader.ts +4 -2
  43. package/providers/_builtin/ide/antigravity/scripts/1.106/list_models.js +0 -38
  44. package/providers/_builtin/ide/antigravity/scripts/1.106/list_modes.js +0 -48
  45. package/providers/_builtin/ide/antigravity/scripts/1.106/read_chat.js +0 -290
  46. package/providers/_builtin/ide/antigravity/scripts/1.106/scripts.js +0 -57
  47. package/providers/_builtin/ide/antigravity/scripts/1.106/set_mode.js +0 -34
  48. package/providers/_builtin/ide/antigravity/scripts/1.106/set_model.js +0 -47
  49. package/providers/_builtin/ide/antigravity/scripts/1.107/focus_editor.js +0 -20
  50. package/providers/_builtin/ide/antigravity/scripts/1.107/list_chats.js +0 -137
  51. package/providers/_builtin/ide/antigravity/scripts/1.107/new_session.js +0 -75
  52. package/providers/_builtin/ide/antigravity/scripts/1.107/resolve_action.js +0 -63
  53. package/providers/_builtin/ide/antigravity/scripts/1.107/send_message.js +0 -56
  54. package/providers/_builtin/ide/antigravity/scripts/1.107/switch_session.js +0 -114
  55. package/providers/_builtin/ide/cursor/scripts/0.49/dismiss_notification.js +0 -30
  56. package/providers/_builtin/ide/cursor/scripts/0.49/focus_editor.js +0 -13
  57. package/providers/_builtin/ide/cursor/scripts/0.49/list_models.js +0 -78
  58. package/providers/_builtin/ide/cursor/scripts/0.49/list_modes.js +0 -40
  59. package/providers/_builtin/ide/cursor/scripts/0.49/list_notifications.js +0 -23
  60. package/providers/_builtin/ide/cursor/scripts/0.49/new_session.js +0 -20
  61. package/providers/_builtin/ide/cursor/scripts/0.49/open_panel.js +0 -23
  62. package/providers/_builtin/ide/cursor/scripts/0.49/send_message.js +0 -23
  63. package/providers/_builtin/ide/cursor/scripts/0.49/set_mode.js +0 -38
  64. package/providers/_builtin/ide/cursor/scripts/0.49/set_model.js +0 -81
  65. package/providers/_builtin/ide/cursor/scripts/0.49/switch_session.js +0 -28
  66. package/providers/_builtin/ide/cursor/scripts/0.49.bak/list_sessions.js +0 -42
  67. package/providers/_builtin/ide/cursor/scripts/0.49.bak/read_chat.js +0 -79
  68. package/providers/_builtin/ide/cursor/scripts/0.49.bak/resolve_action.js +0 -19
  69. /package/providers/_builtin/ide/antigravity/scripts/{1.106 → 1.0}/focus_editor.js +0 -0
  70. /package/providers/_builtin/ide/antigravity/scripts/{1.106 → 1.0}/list_chats.js +0 -0
  71. /package/providers/_builtin/ide/antigravity/scripts/{1.107 → 1.0}/list_models.js +0 -0
  72. /package/providers/_builtin/ide/antigravity/scripts/{1.107 → 1.0}/list_modes.js +0 -0
  73. /package/providers/_builtin/ide/antigravity/scripts/{1.106 → 1.0}/new_session.js +0 -0
  74. /package/providers/_builtin/ide/antigravity/scripts/{1.107 → 1.0}/read_chat.js +0 -0
  75. /package/providers/_builtin/ide/antigravity/scripts/{1.106 → 1.0}/resolve_action.js +0 -0
  76. /package/providers/_builtin/ide/antigravity/scripts/{1.107 → 1.0}/scripts.js +0 -0
  77. /package/providers/_builtin/ide/antigravity/scripts/{1.106 → 1.0}/send_message.js +0 -0
  78. /package/providers/_builtin/ide/antigravity/scripts/{1.107 → 1.0}/set_mode.js +0 -0
  79. /package/providers/_builtin/ide/antigravity/scripts/{1.107 → 1.0}/set_model.js +0 -0
  80. /package/providers/_builtin/ide/antigravity/scripts/{1.106 → 1.0}/switch_session.js +0 -0
  81. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/dismiss_notification.js +0 -0
  82. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/focus_editor.js +0 -0
  83. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/list_models.js +0 -0
  84. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/list_modes.js +0 -0
  85. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/list_notifications.js +0 -0
  86. /package/providers/_builtin/ide/cursor/scripts/{0.49 → 1.0}/list_sessions.js +0 -0
  87. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/new_session.js +0 -0
  88. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/open_panel.js +0 -0
  89. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/scripts.js +0 -0
  90. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/send_message.js +0 -0
  91. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/set_mode.js +0 -0
  92. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/set_model.js +0 -0
  93. /package/providers/_builtin/ide/cursor/scripts/{0.49.bak → 1.0}/switch_session.js +0 -0
@@ -1,42 +0,0 @@
1
- /**
2
- * Cursor — list_sessions
3
- *
4
- * 사이드바 셀 목록에서 세션 파싱:
5
- * 셀: .agent-sidebar-cell
6
- * 제목: .agent-sidebar-cell-text
7
- * 선택 상태: data-selected="true"
8
- * 활성 ID: [data-composer-id]에서 추출
9
- *
10
- * → { sessions: [{ id, title, active, index }] }
11
- */
12
- (() => {
13
- try {
14
- const sessions = [];
15
- const cells = [...document.querySelectorAll('.agent-sidebar-cell')];
16
- const activeComposer = document.querySelector('[data-composer-id]');
17
- const activeId = activeComposer?.getAttribute('data-composer-id') || null;
18
- cells.forEach((cell, i) => {
19
- const titleEl = cell.querySelector('.agent-sidebar-cell-text');
20
- const title = titleEl?.textContent?.trim() || 'Untitled';
21
- const isSelected = cell.getAttribute('data-selected') === 'true';
22
- sessions.push({
23
- id: isSelected && activeId ? activeId : 'sidebar-' + i,
24
- title,
25
- active: isSelected,
26
- index: i,
27
- });
28
- });
29
- // If no sidebar cells, fallback to current composer
30
- if (sessions.length === 0 && activeComposer) {
31
- sessions.push({
32
- id: activeId,
33
- title: document.title.split(' — ')[0],
34
- active: true,
35
- index: 0,
36
- });
37
- }
38
- return JSON.stringify({ sessions });
39
- } catch(e) {
40
- return JSON.stringify({ sessions: [], error: e.message });
41
- }
42
- })()
@@ -1,79 +0,0 @@
1
- /**
2
- * Cursor — read_chat
3
- *
4
- * DOM 구조 (v0.49):
5
- * 컴포저: [data-composer-id] + [data-composer-status]
6
- * 메시지 쌍: .composer-human-ai-pair-container
7
- * 사용자: .composer-human-message
8
- * AI: direct children after first (tool/assistant)
9
- * 입력: .aislash-editor-input[contenteditable="true"]
10
- * 승인: .run-command-review-active + button/cursor-pointer 요소
11
- *
12
- * → { id, status, title, messages[], inputContent, activeModal }
13
- */
14
- (() => {
15
- try {
16
- const c = document.querySelector('[data-composer-id]');
17
- const id = c?.getAttribute('data-composer-id') || 'active';
18
- const rawStatus = c?.getAttribute('data-composer-status') || 'idle';
19
- let status = rawStatus;
20
- if (rawStatus === 'thinking' || rawStatus === 'streaming') status = 'generating';
21
- else if (rawStatus === 'completed' || rawStatus === 'idle' || !rawStatus) status = 'idle';
22
-
23
- // Detect approval dialogs
24
- let activeModal = null;
25
-
26
- // Primary signal: Cursor uses .run-command-review-active on conversations container
27
- const reviewActive = !!document.querySelector('.run-command-review-active');
28
-
29
- // Also check clickable elements (Cursor uses divs with cursor-pointer, not buttons)
30
- // Note: Cursor concatenates button text with shortcut key labels (e.g. "SkipEsc", "Run⏎")
31
- const clickableEls = [...document.querySelectorAll('button, [role="button"], .cursor-pointer')].filter(b =>
32
- b.offsetWidth > 0 && /^(accept|reject|approve|deny|run|skip|allow|cancel)/i.test((b.textContent || b.getAttribute('aria-label') || '').trim())
33
- );
34
-
35
- if (reviewActive || clickableEls.length > 0) {
36
- status = 'waiting_approval';
37
- const reviewContainer = document.querySelector('.run-command-review-active');
38
- const renderedMsgs = reviewContainer?.querySelectorAll('.composer-rendered-message');
39
- const lastRendered = renderedMsgs?.length ? renderedMsgs[renderedMsgs.length - 1] : null;
40
- const toolMsg = lastRendered || reviewContainer?.querySelector('.composer-tool-former-message:last-of-type');
41
- activeModal = {
42
- message: toolMsg?.textContent?.trim()?.substring(0, 200) || 'Command approval required',
43
- buttons: clickableEls.map(b => b.textContent.trim().replace(/[⏎↵]/g, '').trim()).filter(Boolean),
44
- };
45
- }
46
-
47
- const msgs = [];
48
- document.querySelectorAll('.composer-human-ai-pair-container').forEach((p, i) => {
49
- if (p.children.length === 0) return; // skip virtual-scroll placeholders
50
- const h = p.querySelector('.composer-human-message');
51
- if (h) {
52
- const userText = (h.innerText || '').trim().substring(0, 6000);
53
- if (userText) msgs.push({ role: 'user', content: userText, index: msgs.length });
54
- }
55
- // Iterate direct children after the first (user message block)
56
- for (let ci = 1; ci < p.children.length; ci++) {
57
- const b = p.children[ci];
58
- if ((b.className || '').includes('opacity-50')) continue;
59
- const t = (b.innerText || '').trim();
60
- if (t.length < 2) continue;
61
- // Filter noise: "Thought for Xs", "Explored N files", step group timing headers (e.g. "Crafting a minimal response\n1s")
62
- if (/^Thought\nfor \d+s?$/i.test(t) || /^Explored\n/i.test(t)) continue;
63
- if (/^.{1,80}\n\d+s$/.test(t) && !t.includes('\n\n')) continue; // step-group collapsible header with timing
64
- // Skip step-group collapsible headers (e.g. "Crafting a minimal response\n1s")
65
- if (b.querySelector('.ui-step-group-collapsible, .ui-collapsible-header') &&
66
- !b.querySelector('.composer-rendered-message, .composer-tool-former-message, .composer-diff-block')) continue;
67
- const hasTool = b.querySelector('.composer-tool-former-message, .composer-diff-block, .composer-code-block-container');
68
- msgs.push({ role: hasTool ? 'tool' : 'assistant', content: t.substring(0, 6000), index: msgs.length });
69
- }
70
- });
71
- const inputEl = document.querySelector('.aislash-editor-input[contenteditable="true"]');
72
- const inputContent = inputEl?.textContent?.trim() || '';
73
- const titleParts = document.title.split(' — ');
74
- const projectTitle = (titleParts.length >= 2 ? titleParts[titleParts.length - 2] : titleParts[0] || '').trim();
75
- return JSON.stringify({ id, status, title: projectTitle, messages: msgs, inputContent, activeModal });
76
- } catch(e) {
77
- return JSON.stringify({ id: '', status: 'error', messages: [] });
78
- }
79
- })()
@@ -1,19 +0,0 @@
1
- /**
2
- * Cursor — resolve_action
3
- *
4
- * 승인/거부 버튼 찾기 + 클릭:
5
- * button, [role="button"], .cursor-pointer 중 텍스트 매칭
6
- * Cursor는 단축키 라벨을 붙임 (e.g. "Run⏎", "SkipEsc") → ⏎↵ 제거 후 비교
7
- *
8
- * params.buttonText: string — 찾을 버튼 텍스트
9
- * → { resolved: true/false, clicked?, available? }
10
- */
11
- (params) => {
12
- try {
13
- const btns = [...document.querySelectorAll('button, [role="button"], .cursor-pointer')].filter(b => b.offsetWidth > 0);
14
- const searchText = (params.buttonText || '').toLowerCase();
15
- const target = btns.find(b => (b.textContent||'').trim().replace(/[⏎↵]/g, '').trim().toLowerCase().includes(searchText));
16
- if (target) { target.click(); return JSON.stringify({ resolved: true, clicked: target.textContent.trim() }); }
17
- return JSON.stringify({ resolved: false, available: btns.map(b => b.textContent.trim()).filter(Boolean).slice(0, 15) });
18
- } catch(e) { return JSON.stringify({ resolved: false, error: e.message }); }
19
- }