@shawnowen/comet-mcp 2.3.1 → 2.4.2
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/README.md +97 -19
- package/dist/alert-dispatcher.d.ts +23 -0
- package/dist/alert-dispatcher.js +101 -0
- package/dist/binding-reaper.d.ts +46 -0
- package/dist/binding-reaper.js +73 -0
- package/dist/bound-session.d.ts +23 -0
- package/dist/bound-session.js +119 -0
- package/dist/bridge-config.d.ts +6 -0
- package/dist/bridge-config.js +78 -0
- package/dist/cdp-client.d.ts +40 -4
- package/dist/cdp-client.js +502 -155
- package/dist/comet-ai.d.ts +15 -0
- package/dist/comet-ai.js +114 -38
- package/dist/delegate-binding.d.ts +19 -0
- package/dist/delegate-binding.js +73 -0
- package/dist/http-server.js +2188 -47
- package/dist/index.js +3545 -788
- package/dist/observer.d.ts +47 -0
- package/dist/observer.js +516 -0
- package/dist/project-config.d.ts +46 -0
- package/dist/project-config.js +166 -0
- package/dist/session-registry.d.ts +57 -0
- package/dist/session-registry.js +500 -0
- package/dist/sidecar-artifacts.d.ts +49 -0
- package/dist/sidecar-artifacts.js +146 -0
- package/dist/snapshot-capture.d.ts +3 -0
- package/dist/snapshot-capture.js +91 -0
- package/dist/tab-group-archive.js +3 -1
- package/dist/tab-groups.d.ts +28 -1
- package/dist/tab-groups.js +205 -3
- package/dist/types.d.ts +237 -0
- package/dist/window-bindings.d.ts +160 -0
- package/dist/window-bindings.js +561 -0
- package/extension/background.js +1577 -300
- package/extension/icons/icon.svg +9 -0
- package/extension/icons/icon128.png +0 -0
- package/extension/icons/icon16.png +0 -0
- package/extension/icons/icon48.png +0 -0
- package/extension/manifest.json +34 -4
- package/extension/perplexity-capability-manifest.json +1181 -0
- package/extension/perplexity-capability-manifest.schema.json +142 -0
- package/extension/session-logic.js +3054 -0
- package/extension/session-manager.html +311 -0
- package/extension/sidepanel.css +5338 -528
- package/extension/sidepanel.html +282 -2
- package/extension/sidepanel.js +10604 -950
- package/extension/window-policy.js +162 -0
- package/package.json +10 -7
- package/vendor/lifecycle-mcp-adapter.mjs +103 -0
- package/vendor/lifecycle-metadata.mjs +252 -0
- package/vendor/readiness-report.mjs +742 -0
- package/dist/cdp-client.d.ts.map +0 -1
- package/dist/cdp-client.js.map +0 -1
- package/dist/comet-ai.d.ts.map +0 -1
- package/dist/comet-ai.js.map +0 -1
- package/dist/http-server.d.ts.map +0 -1
- package/dist/http-server.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/tab-group-archive.d.ts.map +0 -1
- package/dist/tab-group-archive.js.map +0 -1
- package/dist/tab-groups.d.ts.map +0 -1
- package/dist/tab-groups.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Equabotz Browser Agents — Session Manager</title>
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="sidepanel.css">
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body data-mode="fullpage">
|
|
15
|
+
|
|
16
|
+
<!-- ─── Top Bar ─── -->
|
|
17
|
+
<header class="fs-topbar">
|
|
18
|
+
<div class="fs-topbar-logo">
|
|
19
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
20
|
+
<circle cx="12" cy="12" r="10" />
|
|
21
|
+
<path d="M12 6v6l4 2" />
|
|
22
|
+
</svg>
|
|
23
|
+
<span>Equabotz Browser Agents</span>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div class="fs-topbar-search">
|
|
27
|
+
<svg style="position:absolute;left:8px;top:50%;transform:translateY(-50%);color:var(--fs-text-faint);pointer-events:none" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
28
|
+
<circle cx="11" cy="11" r="8" />
|
|
29
|
+
<path d="m21 21-4.35-4.35" />
|
|
30
|
+
</svg>
|
|
31
|
+
<input type="text" placeholder="Search tabs..." id="fs-search-input" aria-label="Search tabs">
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="fs-topbar-spacer"></div>
|
|
35
|
+
|
|
36
|
+
<div class="fs-topbar-actions">
|
|
37
|
+
<button
|
|
38
|
+
class="fs-topbar-btn fs-topbar-menu-btn"
|
|
39
|
+
id="fs-btn-navigation"
|
|
40
|
+
type="button"
|
|
41
|
+
title="Open full navigation"
|
|
42
|
+
aria-haspopup="menu"
|
|
43
|
+
aria-expanded="false">
|
|
44
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
45
|
+
<path d="M4 6h16M4 12h16M4 18h16" />
|
|
46
|
+
</svg>
|
|
47
|
+
<span>Menu</span>
|
|
48
|
+
</button>
|
|
49
|
+
<div class="fs-topbar-divider"></div>
|
|
50
|
+
<button class="fs-topbar-btn" id="fs-btn-save-all" title="Send all tabs from all windows to Comet">Send All</button>
|
|
51
|
+
<div class="fs-topbar-divider"></div>
|
|
52
|
+
<button class="fs-topbar-btn" id="fs-btn-import">Import & Export</button>
|
|
53
|
+
<div class="fs-topbar-divider"></div>
|
|
54
|
+
<button class="fs-topbar-btn" id="fs-btn-help">Help</button>
|
|
55
|
+
<div class="fs-topbar-divider"></div>
|
|
56
|
+
<button class="fs-topbar-btn" id="fs-btn-options">Options</button>
|
|
57
|
+
<div class="fs-topbar-divider"></div>
|
|
58
|
+
<button class="fs-topbar-btn" id="fs-btn-theme" aria-label="Toggle theme">
|
|
59
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
60
|
+
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" />
|
|
61
|
+
</svg>
|
|
62
|
+
</button>
|
|
63
|
+
<div class="fs-topbar-divider"></div>
|
|
64
|
+
<button class="fs-topbar-btn" id="btn-fullscreen" title="Return to sidebar">
|
|
65
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
66
|
+
<path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" />
|
|
67
|
+
</svg>
|
|
68
|
+
</button>
|
|
69
|
+
</div>
|
|
70
|
+
</header>
|
|
71
|
+
|
|
72
|
+
<!-- ─── App Body (Sidebar + Main) ─── -->
|
|
73
|
+
<div class="fs-app-body">
|
|
74
|
+
|
|
75
|
+
<!-- ─── Sidebar ─── -->
|
|
76
|
+
<nav class="fs-sidebar" id="fs-sidebar" aria-label="Tab groups">
|
|
77
|
+
<div class="fs-sidebar-header">
|
|
78
|
+
<button class="fs-topbar-btn" id="fs-sidebar-filter" style="flex:1;text-align:left">
|
|
79
|
+
Show named items only ▼
|
|
80
|
+
</button>
|
|
81
|
+
<button class="fs-topbar-btn" id="fs-sidebar-collapse" title="Collapse sidebar" style="width:28px;display:flex;align-items:center;justify-content:center">
|
|
82
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
83
|
+
<path d="M15 19l-7-7 7-7" />
|
|
84
|
+
</svg>
|
|
85
|
+
</button>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<ul class="fs-sidebar-list" id="fs-sidebar-list">
|
|
89
|
+
<!-- Populated by JS -->
|
|
90
|
+
</ul>
|
|
91
|
+
|
|
92
|
+
<div class="fs-sidebar-total" id="fs-sidebar-total">0 tabs</div>
|
|
93
|
+
</nav>
|
|
94
|
+
|
|
95
|
+
<!-- ─── Resize Handle ─── -->
|
|
96
|
+
<div class="fs-resize-handle" id="fs-resize-handle" title="Drag to resize sidebar"></div>
|
|
97
|
+
|
|
98
|
+
<!-- ─── Main Content ─── -->
|
|
99
|
+
<main class="fs-main" id="fs-main">
|
|
100
|
+
<div class="fs-main-scroll" id="fs-main-scroll">
|
|
101
|
+
<!-- ─── Filter Bar ─── -->
|
|
102
|
+
<div class="fs-filter-bar" id="fs-filter-bar">
|
|
103
|
+
<div class="fs-filter-bar-row">
|
|
104
|
+
<!-- View title (dynamic: reflects active filters) -->
|
|
105
|
+
<button class="fs-filter-view-btn" id="fs-filter-view-btn" title="Change view preset">
|
|
106
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
107
|
+
<path d="M3 7h18M3 12h18M3 17h18" />
|
|
108
|
+
</svg>
|
|
109
|
+
<span id="fs-filter-view-label">All Groups</span>
|
|
110
|
+
<svg class="fs-filter-chevron" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg>
|
|
111
|
+
</button>
|
|
112
|
+
|
|
113
|
+
<!-- Result count -->
|
|
114
|
+
<span class="fs-filter-count" id="fs-filter-count"></span>
|
|
115
|
+
|
|
116
|
+
<div class="fs-filter-bar-spacer"></div>
|
|
117
|
+
|
|
118
|
+
<!-- Sort control -->
|
|
119
|
+
<div class="fs-filter-control">
|
|
120
|
+
<button class="fs-filter-control-btn" id="fs-filter-sort-btn" title="Sort groups">
|
|
121
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 6h18M3 12h12M3 18h6"/></svg>
|
|
122
|
+
<span id="fs-filter-sort-label">Newest</span>
|
|
123
|
+
</button>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<!-- Group-by control -->
|
|
127
|
+
<div class="fs-filter-control">
|
|
128
|
+
<button class="fs-filter-control-btn" id="fs-filter-groupby-btn" title="Group by property">
|
|
129
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>
|
|
130
|
+
<span id="fs-filter-groupby-label">No grouping</span>
|
|
131
|
+
</button>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<!-- View mode toggle -->
|
|
135
|
+
<div class="fs-filter-view-toggle" id="fs-filter-view-toggle">
|
|
136
|
+
<button class="fs-filter-view-mode active" id="fs-view-cards" title="Card view" data-mode="cards">
|
|
137
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="7" rx="1"/><rect x="3" y="14" width="18" height="7" rx="1"/></svg>
|
|
138
|
+
</button>
|
|
139
|
+
<button class="fs-filter-view-mode" id="fs-view-compact" title="Compact list" data-mode="compact">
|
|
140
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 6h18M3 12h18M3 18h18"/></svg>
|
|
141
|
+
</button>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
<!-- More (bulk actions — placeholder for later) -->
|
|
145
|
+
<button class="fs-btn-ghost" id="fs-btn-more">More…</button>
|
|
146
|
+
</div>
|
|
147
|
+
|
|
148
|
+
<!-- Filter chips row (hidden when no active filters) -->
|
|
149
|
+
<div class="fs-filter-chips" id="fs-filter-chips" style="display:none">
|
|
150
|
+
<!-- Populated by JS: color chips, status chips, quick filters -->
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<!-- Quick filter toggles row -->
|
|
154
|
+
<div class="fs-filter-bar-row fs-filter-quick-row">
|
|
155
|
+
<!-- Status pills -->
|
|
156
|
+
<div class="fs-filter-pill-group" id="fs-filter-status-pills">
|
|
157
|
+
<button class="fs-filter-pill active" data-status="all">All</button>
|
|
158
|
+
<button class="fs-filter-pill" data-status="pending">Pending</button>
|
|
159
|
+
<button class="fs-filter-pill" data-status="done">Done</button>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div class="fs-filter-bar-divider"></div>
|
|
163
|
+
|
|
164
|
+
<!-- Color dots (click to toggle filter by color) -->
|
|
165
|
+
<div class="fs-filter-color-dots" id="fs-filter-color-dots">
|
|
166
|
+
<button class="fs-filter-color-dot fs-c-grey" data-color="grey" title="Grey"></button>
|
|
167
|
+
<button class="fs-filter-color-dot fs-c-blue" data-color="blue" title="Blue"></button>
|
|
168
|
+
<button class="fs-filter-color-dot fs-c-red" data-color="red" title="Red"></button>
|
|
169
|
+
<button class="fs-filter-color-dot fs-c-yellow" data-color="yellow" title="Yellow"></button>
|
|
170
|
+
<button class="fs-filter-color-dot fs-c-green" data-color="green" title="Green"></button>
|
|
171
|
+
<button class="fs-filter-color-dot fs-c-pink" data-color="pink" title="Pink"></button>
|
|
172
|
+
<button class="fs-filter-color-dot fs-c-purple" data-color="purple" title="Purple"></button>
|
|
173
|
+
<button class="fs-filter-color-dot fs-c-cyan" data-color="cyan" title="Cyan"></button>
|
|
174
|
+
<button class="fs-filter-color-dot fs-c-orange" data-color="orange" title="Orange"></button>
|
|
175
|
+
</div>
|
|
176
|
+
|
|
177
|
+
<div class="fs-filter-bar-divider"></div>
|
|
178
|
+
|
|
179
|
+
<!-- Quick toggles -->
|
|
180
|
+
<button class="fs-filter-toggle" id="fs-filter-starred" title="Show starred only">
|
|
181
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>
|
|
182
|
+
</button>
|
|
183
|
+
<button class="fs-filter-toggle" id="fs-filter-locked" title="Show locked only">
|
|
184
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
|
|
185
|
+
</button>
|
|
186
|
+
<button class="fs-filter-toggle" id="fs-filter-stale" title="Show stale groups (>7d old)">
|
|
187
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></svg>
|
|
188
|
+
</button>
|
|
189
|
+
|
|
190
|
+
<div class="fs-filter-bar-spacer"></div>
|
|
191
|
+
|
|
192
|
+
<!-- Clear all filters -->
|
|
193
|
+
<button class="fs-filter-clear" id="fs-filter-clear" style="display:none">Clear filters</button>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
|
|
197
|
+
<!-- ─── Agent Dashboard (T057) ─── -->
|
|
198
|
+
<div class="fs-agent-dashboard" id="fs-agent-dashboard" style="display:none">
|
|
199
|
+
<div class="fs-main-header" style="border-bottom:1px solid var(--fs-divider)">
|
|
200
|
+
<div class="fs-main-header-title">
|
|
201
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
202
|
+
<circle cx="12" cy="12" r="3" /><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42" />
|
|
203
|
+
</svg>
|
|
204
|
+
Active Agents
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
<div class="fs-agent-list" id="fs-agent-list">
|
|
208
|
+
<!-- Populated by JS -->
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
<!-- ─── Activity Timeline (T061) ─── -->
|
|
213
|
+
<div class="fs-timeline" id="fs-timeline" style="display:none">
|
|
214
|
+
<div class="fs-main-header" style="border-bottom:1px solid var(--fs-divider)">
|
|
215
|
+
<div class="fs-main-header-title">
|
|
216
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
217
|
+
<circle cx="12" cy="12" r="10" /><path d="M12 6v6l4 2" />
|
|
218
|
+
</svg>
|
|
219
|
+
Activity
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
<div class="fs-timeline-list" id="fs-timeline-list">
|
|
223
|
+
<!-- Populated by JS -->
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
<div class="fs-groups-list" id="fs-groups-list">
|
|
228
|
+
<!-- Populated by JS: group cards -->
|
|
229
|
+
<div class="fs-empty-state" id="fs-empty-state">
|
|
230
|
+
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
231
|
+
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" />
|
|
232
|
+
<circle cx="12" cy="7" r="4" />
|
|
233
|
+
</svg>
|
|
234
|
+
<p>No saved sessions</p>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
</div>
|
|
238
|
+
</main>
|
|
239
|
+
<!-- ─── Tasks Resize Handle ─── -->
|
|
240
|
+
<div class="fs-resize-handle fs-resize-handle-right" id="fs-resize-handle-right" title="Drag to resize tasks panel"></div>
|
|
241
|
+
|
|
242
|
+
<!-- ─── Taskthreads Panel (right sidebar) ─── -->
|
|
243
|
+
<aside class="fs-tasks-panel" id="fs-tasks-panel" aria-label="Task threads">
|
|
244
|
+
<div class="fs-tasks-header">
|
|
245
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
246
|
+
<path d="M9 11l3 3L22 4" /><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11" />
|
|
247
|
+
</svg>
|
|
248
|
+
<span>Taskthreads</span>
|
|
249
|
+
<span class="fs-tasks-count" id="fs-tasks-count">0</span>
|
|
250
|
+
</div>
|
|
251
|
+
|
|
252
|
+
<!-- Pending Section -->
|
|
253
|
+
<div class="fs-tasks-section" id="fs-tasks-section-pending">
|
|
254
|
+
<div class="fs-tasks-section-header pending" id="fs-tasks-header-pending">
|
|
255
|
+
<button class="fs-tasks-collapse-btn" id="fs-tasks-collapse-pending" title="Collapse/Expand">
|
|
256
|
+
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg>
|
|
257
|
+
</button>
|
|
258
|
+
<span class="fs-tasks-section-label pending">Pending</span>
|
|
259
|
+
<span class="fs-tasks-section-count" id="fs-tasks-pending-count">0</span>
|
|
260
|
+
<select class="fs-tasks-sort-select" id="fs-tasks-sort-pending" title="Sort order">
|
|
261
|
+
<option value="newest">Newest</option>
|
|
262
|
+
<option value="oldest">Oldest</option>
|
|
263
|
+
<option value="az">A-Z</option>
|
|
264
|
+
<option value="za">Z-A</option>
|
|
265
|
+
</select>
|
|
266
|
+
</div>
|
|
267
|
+
<ul class="fs-tasks-list" id="fs-tasks-pending">
|
|
268
|
+
<li class="fs-tasks-empty">No pending taskthreads</li>
|
|
269
|
+
</ul>
|
|
270
|
+
</div>
|
|
271
|
+
|
|
272
|
+
<!-- Done Section -->
|
|
273
|
+
<div class="fs-tasks-section" id="fs-tasks-section-done">
|
|
274
|
+
<div class="fs-tasks-section-header done" id="fs-tasks-header-done">
|
|
275
|
+
<button class="fs-tasks-collapse-btn" id="fs-tasks-collapse-done" title="Collapse/Expand">
|
|
276
|
+
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg>
|
|
277
|
+
</button>
|
|
278
|
+
<span class="fs-tasks-section-label done">Done</span>
|
|
279
|
+
<span class="fs-tasks-section-count" id="fs-tasks-done-count">0</span>
|
|
280
|
+
<select class="fs-tasks-sort-select" id="fs-tasks-sort-done" title="Sort order">
|
|
281
|
+
<option value="newest">Newest</option>
|
|
282
|
+
<option value="oldest">Oldest</option>
|
|
283
|
+
<option value="az">A-Z</option>
|
|
284
|
+
<option value="za">Z-A</option>
|
|
285
|
+
</select>
|
|
286
|
+
</div>
|
|
287
|
+
<ul class="fs-tasks-list" id="fs-tasks-done">
|
|
288
|
+
<li class="fs-tasks-empty">No completed taskthreads</li>
|
|
289
|
+
</ul>
|
|
290
|
+
</div>
|
|
291
|
+
</aside>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
<!-- ─── Context Menu (dynamically created by JS) ─── -->
|
|
295
|
+
<div class="fs-context-menu" id="fs-context-menu" role="menu"></div>
|
|
296
|
+
|
|
297
|
+
<!-- ─── Connection Status Footer ─── -->
|
|
298
|
+
<footer class="status-bar" id="status-bar" style="position:fixed;bottom:0;left:0;right:0;z-index:50">
|
|
299
|
+
<div class="status-indicator">
|
|
300
|
+
<span class="status-dot" id="status-dot"></span>
|
|
301
|
+
<span class="status-text" id="status-text">Connecting…</span>
|
|
302
|
+
</div>
|
|
303
|
+
<button class="reconnect-btn hidden" id="btn-reconnect" title="Reconnect to CDP bridge">Reconnect</button>
|
|
304
|
+
</footer>
|
|
305
|
+
|
|
306
|
+
<script src="session-logic.js"></script>
|
|
307
|
+
<script src="window-policy.js"></script>
|
|
308
|
+
<script src="sidepanel.js"></script>
|
|
309
|
+
</body>
|
|
310
|
+
|
|
311
|
+
</html>
|