@hanzo/browser-extension 1.9.34 → 1.9.36

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 (71) hide show
  1. package/package.json +1 -1
  2. package/src/answer/AnswerEngine.tsx +8 -0
  3. package/src/onboarding.css +78 -0
  4. package/src/onboarding.html +45 -0
  5. package/src/popup.html +28 -0
  6. package/dist/browser-extension/README.md +0 -43
  7. package/dist/browser-extension/background-firefox.js +0 -5983
  8. package/dist/browser-extension/background.js +0 -8670
  9. package/dist/browser-extension/browser-control.js +0 -1317
  10. package/dist/browser-extension/chrome/ai-worker.js +0 -571
  11. package/dist/browser-extension/chrome/background.js +0 -8670
  12. package/dist/browser-extension/chrome/callback.html +0 -17
  13. package/dist/browser-extension/chrome/content-script.js +0 -2789
  14. package/dist/browser-extension/chrome/icon128.png +0 -0
  15. package/dist/browser-extension/chrome/icon16.png +0 -0
  16. package/dist/browser-extension/chrome/icon48.png +0 -0
  17. package/dist/browser-extension/chrome/manifest.json +0 -81
  18. package/dist/browser-extension/chrome/newtab.css +0 -277
  19. package/dist/browser-extension/chrome/newtab.html +0 -13
  20. package/dist/browser-extension/chrome/newtab.js +0 -64
  21. package/dist/browser-extension/chrome/popup.css +0 -761
  22. package/dist/browser-extension/chrome/popup.html +0 -381
  23. package/dist/browser-extension/chrome/popup.js +0 -1716
  24. package/dist/browser-extension/chrome/sidebar.css +0 -1792
  25. package/dist/browser-extension/chrome/sidebar.html +0 -463
  26. package/dist/browser-extension/chrome/sidebar.js +0 -26541
  27. package/dist/browser-extension/cli.js +0 -233
  28. package/dist/browser-extension/content-script.js +0 -2789
  29. package/dist/browser-extension/firefox/ai-worker.js +0 -571
  30. package/dist/browser-extension/firefox/background.js +0 -5983
  31. package/dist/browser-extension/firefox/callback.html +0 -17
  32. package/dist/browser-extension/firefox/content-script.js +0 -2789
  33. package/dist/browser-extension/firefox/icon128.png +0 -0
  34. package/dist/browser-extension/firefox/icon16.png +0 -0
  35. package/dist/browser-extension/firefox/icon48.png +0 -0
  36. package/dist/browser-extension/firefox/manifest.json +0 -85
  37. package/dist/browser-extension/firefox/newtab.css +0 -277
  38. package/dist/browser-extension/firefox/newtab.html +0 -13
  39. package/dist/browser-extension/firefox/newtab.js +0 -64
  40. package/dist/browser-extension/firefox/popup.css +0 -761
  41. package/dist/browser-extension/firefox/popup.html +0 -381
  42. package/dist/browser-extension/firefox/popup.js +0 -1716
  43. package/dist/browser-extension/firefox/sidebar.css +0 -1792
  44. package/dist/browser-extension/firefox/sidebar.html +0 -463
  45. package/dist/browser-extension/firefox/sidebar.js +0 -26541
  46. package/dist/browser-extension/icon128.png +0 -0
  47. package/dist/browser-extension/icon16.png +0 -0
  48. package/dist/browser-extension/icon48.png +0 -0
  49. package/dist/browser-extension/manifest.json +0 -81
  50. package/dist/browser-extension/newtab.js +0 -64
  51. package/dist/browser-extension/package.json +0 -41
  52. package/dist/browser-extension/popup.js +0 -1716
  53. package/dist/browser-extension/safari/Info.plist +0 -21
  54. package/dist/browser-extension/safari/ai-worker.js +0 -571
  55. package/dist/browser-extension/safari/background.js +0 -8670
  56. package/dist/browser-extension/safari/callback.html +0 -17
  57. package/dist/browser-extension/safari/content-script.js +0 -2789
  58. package/dist/browser-extension/safari/icon128.png +0 -0
  59. package/dist/browser-extension/safari/icon16.png +0 -0
  60. package/dist/browser-extension/safari/icon48.png +0 -0
  61. package/dist/browser-extension/safari/newtab.css +0 -277
  62. package/dist/browser-extension/safari/newtab.html +0 -13
  63. package/dist/browser-extension/safari/newtab.js +0 -64
  64. package/dist/browser-extension/safari/popup.css +0 -761
  65. package/dist/browser-extension/safari/popup.html +0 -381
  66. package/dist/browser-extension/safari/popup.js +0 -1716
  67. package/dist/browser-extension/safari/sidebar.css +0 -1792
  68. package/dist/browser-extension/safari/sidebar.html +0 -463
  69. package/dist/browser-extension/safari/sidebar.js +0 -26541
  70. package/dist/browser-extension/sidebar.js +0 -26541
  71. package/dist/browser-extension/webgpu-ai.js +0 -568
@@ -1,463 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Hanzo AI</title>
7
- <link rel="stylesheet" href="sidebar.css">
8
- </head>
9
- <body>
10
- <div class="sidebar-container">
11
- <!-- Auth section (hidden — login prompt is inside Chat tab) -->
12
- <section id="auth-section" class="hidden"></section>
13
-
14
- <!-- Tab Bar (always visible) -->
15
- <nav id="tab-bar" class="tab-bar hidden">
16
- <button class="tab active" data-tab="chat">Chat</button>
17
- <button class="tab" data-tab="tools">Tools</button>
18
- <button class="tab" data-tab="settings">Settings</button>
19
- </nav>
20
-
21
- <!-- Chat Tab -->
22
- <div id="tab-chat" class="tab-content hidden">
23
- <!-- Login prompt (shown when not authenticated) -->
24
- <div id="chat-login-prompt" class="chat-login-prompt hidden">
25
- <div class="auth-card compact">
26
- <svg class="auth-logo" viewBox="0 0 67 67" xmlns="http://www.w3.org/2000/svg">
27
- <path d="M22.21 67V44.6369H0V67H22.21Z" fill="currentColor"/>
28
- <path d="M0 44.6369L22.21 46.8285V44.6369H0Z" fill="currentColor" opacity="0.75"/>
29
- <path d="M66.7038 22.3184H22.2534L0.0878906 44.6367H44.4634L66.7038 22.3184Z" fill="currentColor"/>
30
- <path d="M22.21 0H0V22.3184H22.21V0Z" fill="currentColor"/>
31
- <path d="M66.7198 0H44.5098V22.3184H66.7198V0Z" fill="currentColor"/>
32
- <path d="M66.6753 22.3185L44.5098 20.0822V22.3185H66.6753Z" fill="currentColor" opacity="0.75"/>
33
- <path d="M66.7198 67V44.6369H44.5098V67H66.7198Z" fill="currentColor"/>
34
- </svg>
35
- <p class="auth-headline">Sign in to Hanzo AI</p>
36
- <p class="auth-sub">Chat with Zen AI models, use browser tools, and build with AI agents.</p>
37
- <button id="auth-btn" class="auth-signin-btn">Sign In</button>
38
- <button id="signup-btn" class="auth-create-btn">Create account</button>
39
- <p class="auth-note">Browser tools work without sign-in. <a href="https://docs.hanzo.ai" target="_blank">Learn more</a></p>
40
- </div>
41
- </div>
42
- <div id="chat-messages" class="chat-messages">
43
- <div class="chat-welcome">
44
- <svg viewBox="0 0 67 67" xmlns="http://www.w3.org/2000/svg" width="28" height="28" style="opacity:0.25">
45
- <path d="M22.21 67V44.6369H0V67H22.21Z" fill="currentColor"/>
46
- <path d="M66.7038 22.3184H22.2534L0.0878906 44.6367H44.4634L66.7038 22.3184Z" fill="currentColor"/>
47
- <path d="M22.21 0H0V22.3184H22.21V0Z" fill="currentColor"/>
48
- <path d="M66.7198 0H44.5098V22.3184H66.7198V0Z" fill="currentColor"/>
49
- <path d="M66.7198 67V44.6369H44.5098V67H66.7198Z" fill="currentColor"/>
50
- </svg>
51
- <p>Ask anything. Powered by Hanzo Cloud.</p>
52
- </div>
53
- </div>
54
- <div id="chat-composer" style="padding:10px;flex-shrink:0;border-top:1px solid rgba(255,255,255,0.10);background:#0f0f0f;">
55
- <div style="background:#171717;border:1px solid rgba(255,255,255,0.15);border-radius:10px;overflow:hidden;">
56
- <textarea id="chat-input" placeholder="Ask anything..." rows="1"
57
- style="display:block;width:100%;padding:10px 12px 4px;background:transparent;border:none;color:#fafafa;font-size:13px;font-family:inherit;line-height:1.5;resize:none;outline:none;min-height:36px;max-height:120px;box-sizing:border-box;"></textarea>
58
- <div style="display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px;gap:4px;">
59
- <div style="display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow:hidden;">
60
- <select id="model-select"
61
- style="padding:3px 18px 3px 6px;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.10);border-radius:6px;color:#a3a3a3;font-size:10px;font-family:inherit;cursor:pointer;-moz-appearance:none;appearance:none;white-space:nowrap;max-width:110px;text-overflow:ellipsis;overflow:hidden;height:22px;line-height:16px;flex-shrink:0;">
62
- <option value="auto">Auto</option>
63
- <option value="claude-sonnet-4-20250514">Claude Sonnet 4</option>
64
- <option value="claude-opus-4-20250514">Claude Opus 4</option>
65
- <option value="gpt-4o">GPT-4o</option>
66
- <option value="zen-coder-flash">Zen Coder Flash</option>
67
- <option value="zen-max">Zen Max</option>
68
- </select>
69
- <label title="RAG context" style="display:inline-flex;align-items:center;gap:2px;font-size:10px;color:#666;cursor:pointer;white-space:nowrap;padding:2px 4px;flex-shrink:0;">
70
- <input type="checkbox" id="rag-enabled" checked style="width:11px;height:11px;accent-color:#fafafa;cursor:pointer;margin:0;">
71
- <span>RAG</span>
72
- </label>
73
- <label title="Include active tab" style="display:inline-flex;align-items:center;gap:2px;font-size:10px;color:#666;cursor:pointer;white-space:nowrap;padding:2px 4px;flex-shrink:0;">
74
- <input type="checkbox" id="tab-context-enabled" checked style="width:11px;height:11px;accent-color:#fafafa;cursor:pointer;margin:0;">
75
- <span>Tab</span>
76
- </label>
77
- <span id="rag-status" style="font-size:9px;color:#666;white-space:nowrap;padding:1px 5px;border-radius:3px;background:rgba(255,255,255,0.04);">Ready</span>
78
- </div>
79
- <button id="send-btn" title="Send (Enter)"
80
- style="width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#fafafa;border:none;border-radius:50%;color:#000;cursor:pointer;flex-shrink:0;">
81
- <svg viewBox="0 0 16 16" fill="none" style="width:13px;height:13px;">
82
- <path d="M3 13V3l10 5-10 5z" fill="currentColor"/>
83
- </svg>
84
- </button>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
-
90
- <!-- Tools Tab -->
91
- <div id="tab-tools" class="tab-content hidden">
92
- <div class="tools-scroll">
93
- <!-- Element Inspector (top priority for frontend work) -->
94
- <div class="panel inspector-panel">
95
- <div class="inspector-actions">
96
- <button class="action-btn inspector-btn" id="pick-element" title="Select element on page">
97
- <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" width="14" height="14">
98
- <path d="M3 3l4 10 2-4 4-2L3 3z" stroke-width="1.5" stroke-linejoin="round"/>
99
- <path d="M9 9l4 4" stroke-width="1.5" stroke-linecap="round"/>
100
- </svg>
101
- Pick Element
102
- </button>
103
- <button class="action-btn inspector-btn" id="take-screenshot" title="Capture screenshot">
104
- <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" width="14" height="14">
105
- <rect x="2" y="3" width="12" height="10" rx="1" stroke-width="1.5"/>
106
- <circle cx="8" cy="8" r="2" stroke-width="1.5"/>
107
- </svg>
108
- Screenshot
109
- </button>
110
- <button class="action-btn inspector-btn" id="run-audit" title="Accessibility & performance audit">
111
- <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" width="14" height="14">
112
- <path d="M8 2v4l3 2" stroke-width="1.5" stroke-linecap="round"/>
113
- <circle cx="8" cy="8" r="6" stroke-width="1.5"/>
114
- </svg>
115
- Audit
116
- </button>
117
- </div>
118
- <div id="inspector-result" class="inspector-result hidden"></div>
119
- </div>
120
-
121
- <!-- Connected MCP Servers -->
122
- <div class="panel">
123
- <div class="panel-header">
124
- <h3>MCP Servers</h3>
125
- <span id="mcp-server-count" class="badge">0</span>
126
- </div>
127
- <div id="mcp-server-list" class="mcp-server-list">
128
- <div class="empty-state">No MCP servers connected</div>
129
- </div>
130
- </div>
131
-
132
- <!-- Built-in + Discovered Tools -->
133
- <div class="panel">
134
- <div class="panel-header">
135
- <h3>Available Tools</h3>
136
- <span id="tool-count-badge" class="badge">0</span>
137
- </div>
138
- <div id="builtin-tool-list" class="tool-list"></div>
139
- <div id="mcp-tool-list" class="tool-list"></div>
140
- </div>
141
-
142
- <!-- Active Agents -->
143
- <div class="panel">
144
- <div class="panel-header">
145
- <h3>Active Agents</h3>
146
- <span id="agent-count" class="badge">0</span>
147
- </div>
148
- <div id="agent-list" class="agent-list">
149
- <div class="empty-state">No active agents</div>
150
- </div>
151
- </div>
152
-
153
- <!-- Tab Filesystem -->
154
- <div class="panel">
155
- <div class="panel-header">
156
- <h3>Tab Filesystem</h3>
157
- <button class="icon-btn small" id="refresh-tabs" title="Refresh">
158
- <svg viewBox="0 0 16 16" fill="none" stroke="currentColor">
159
- <path d="M14 2v5h-5M2 7a6 6 0 0111.5-2.5L14 5M2 14v-5h5M14 9a6 6 0 01-11.5 2.5L2 11" stroke-width="1.5"/>
160
- </svg>
161
- </button>
162
- </div>
163
- <div id="tab-fs" class="tab-filesystem"></div>
164
- </div>
165
-
166
- <!-- Hanzo Services (moved to bottom) -->
167
- <div class="panel">
168
- <h3>Hanzo Services</h3>
169
- <div class="mcp-status">
170
- <div class="status-row">
171
- <span>Hanzo Node</span>
172
- <span id="hanzo-node-status" class="status-value">
173
- <span class="status-indicator disconnected"></span>
174
- Checking...
175
- </span>
176
- </div>
177
- <div class="status-row">
178
- <span>Hanzo Bot</span>
179
- <span id="hanzo-mcp-status" class="status-value">
180
- <span class="status-indicator disconnected"></span>
181
- Checking...
182
- </span>
183
- </div>
184
- <div class="status-row">
185
- <span>ZAP Protocol</span>
186
- <span id="mcp-status" class="status-value">
187
- <span class="status-indicator disconnected"></span>
188
- Discovering...
189
- </span>
190
- </div>
191
- <div class="status-row">
192
- <span>Tools Available</span>
193
- <span id="mcp-tools" class="status-value">0</span>
194
- </div>
195
- </div>
196
- <div class="service-actions">
197
- <button class="action-btn small" id="start-hanzo-node" title="Start hanzo node">
198
- <svg viewBox="0 0 16 16" fill="currentColor" width="12" height="12">
199
- <path d="M4 2l10 6-10 6V2z"/>
200
- </svg>
201
- Start Node
202
- </button>
203
- <button class="action-btn small" id="start-hanzo-mcp" title="Start hanzo bot">
204
- <svg viewBox="0 0 16 16" fill="currentColor" width="12" height="12">
205
- <path d="M4 2l10 6-10 6V2z"/>
206
- </svg>
207
- Start Bot
208
- </button>
209
- </div>
210
- </div>
211
-
212
- <!-- Usage & Billing -->
213
- <div class="panel">
214
- <div class="panel-header">
215
- <h3>Usage & Billing</h3>
216
- <a href="https://billing.hanzo.ai" target="_blank" class="badge badge-link" title="Manage billing">Billing ↗</a>
217
- </div>
218
-
219
- <!-- Balance card -->
220
- <div id="balance-card" class="balance-card hidden">
221
- <div class="balance-row">
222
- <span class="balance-label">Balance</span>
223
- <span id="balance-amount" class="balance-amount">$0.00</span>
224
- </div>
225
- <div id="balance-tier" class="balance-tier hidden">
226
- <span class="tier-badge" id="tier-name">Free</span>
227
- </div>
228
- <div class="usage-bar-group" id="balance-bar-wrap">
229
- <div class="usage-bar-track"><div id="balance-bar" class="usage-bar-fill" style="width:0%"></div></div>
230
- <div class="usage-bar-labels">
231
- <span id="balance-used-label">$0.00 used</span>
232
- <span id="balance-pct-label">0%</span>
233
- </div>
234
- </div>
235
- </div>
236
-
237
- <!-- Session usage bars -->
238
- <div class="usage-meters">
239
- <div class="usage-meter">
240
- <div class="usage-meter-header">
241
- <span>Session Requests</span>
242
- <span id="usage-chat-requests" class="mono">0</span>
243
- </div>
244
- <div class="usage-bar-track"><div id="bar-requests" class="usage-bar-fill bar-blue" style="width:0%"></div></div>
245
- </div>
246
- <div class="usage-meter">
247
- <div class="usage-meter-header">
248
- <span>Input Tokens</span>
249
- <span id="usage-input-tokens" class="mono">0</span>
250
- </div>
251
- <div class="usage-bar-track"><div id="bar-input" class="usage-bar-fill bar-violet" style="width:0%"></div></div>
252
- </div>
253
- <div class="usage-meter">
254
- <div class="usage-meter-header">
255
- <span>Output Tokens</span>
256
- <span id="usage-output-tokens" class="mono">0</span>
257
- </div>
258
- <div class="usage-bar-track"><div id="bar-output" class="usage-bar-fill bar-emerald" style="width:0%"></div></div>
259
- </div>
260
- <div class="usage-meter">
261
- <div class="usage-meter-header">
262
- <span>Est. Cost</span>
263
- <span id="usage-est-cost" class="mono">$0.00</span>
264
- </div>
265
- <div class="usage-bar-track"><div id="bar-cost" class="usage-bar-fill bar-amber" style="width:0%"></div></div>
266
- </div>
267
- </div>
268
-
269
- <div class="usage-meta">
270
- <span id="usage-dedupe" class="mono" title="Deduplication hits">0 dedup</span>
271
- <span>·</span>
272
- <span id="usage-canceled" class="mono" title="Canceled requests">0 canceled</span>
273
- <span>·</span>
274
- <span id="usage-window" class="mono">1h window</span>
275
- </div>
276
- </div>
277
-
278
- <!-- Model Hub -->
279
- <div class="panel">
280
- <div class="panel-header">
281
- <h3>Model Hub</h3>
282
- <button class="icon-btn small" id="refresh-models" title="Refresh models">
283
- <svg viewBox="0 0 16 16" fill="none" stroke="currentColor">
284
- <path d="M14 2v5h-5M2 7a6 6 0 0111.5-2.5L14 5M2 14v-5h5M14 9a6 6 0 01-11.5 2.5L2 11" stroke-width="1.5"/>
285
- </svg>
286
- </button>
287
- </div>
288
- <div id="model-hub-list" class="model-hub-list">
289
- <div class="empty-state">Loading models...</div>
290
- </div>
291
- <div class="model-hub-actions">
292
- <input type="text" id="model-search" class="model-search" placeholder="Search models (HF, Ollama)...">
293
- <button class="action-btn small" id="search-models-btn">Search</button>
294
- </div>
295
- </div>
296
-
297
- <!-- Actions -->
298
- <div class="actions">
299
- <button id="launch-agent" class="action-btn">
300
- <svg viewBox="0 0 20 20" fill="none" stroke="currentColor">
301
- <path d="M10 4v12M4 10h12" stroke-width="2"/>
302
- </svg>
303
- Launch Agent
304
- </button>
305
- </div>
306
- </div>
307
- </div>
308
-
309
- <!-- Settings Tab -->
310
- <div id="tab-settings" class="tab-content hidden">
311
- <div class="settings-scroll">
312
- <!-- Account (shown when authenticated) -->
313
- <div class="panel hidden" id="account-panel">
314
- <h3>Account</h3>
315
- <div class="user-profile">
316
- <img id="user-avatar" class="user-avatar" src="" alt="">
317
- <div class="user-details">
318
- <div id="user-name" class="user-name"></div>
319
- <div id="user-email" class="user-email"></div>
320
- </div>
321
- </div>
322
- <button id="logout-btn" class="secondary-btn" style="margin-top: 12px;">Sign Out</button>
323
- </div>
324
-
325
- <!-- Connection Settings -->
326
- <div class="panel">
327
- <h3>Connection</h3>
328
- <label class="setting-item">
329
- <span>MCP Port</span>
330
- <input type="number" id="mcp-port-setting" value="3001" min="1024" max="65535">
331
- </label>
332
- <label class="setting-item">
333
- <span>CDP Port</span>
334
- <input type="number" id="cdp-port-setting" value="9223" min="1024" max="65535">
335
- </label>
336
- <label class="setting-item">
337
- <span>ZAP Ports</span>
338
- <input type="text" id="zap-ports-setting" value="9999,9998,9997,9996,9995" placeholder="Comma-separated">
339
- </label>
340
- <label class="setting-item">
341
- <span>Node Port</span>
342
- <input type="number" id="node-port-setting" value="52415" min="1024" max="65535">
343
- </label>
344
- </div>
345
-
346
- <!-- AI Settings -->
347
- <div class="panel">
348
- <h3>AI Models</h3>
349
- <label class="setting-item">
350
- <span>Default Model</span>
351
- <select id="default-model">
352
- <option value="auto">Auto (cost-aware)</option>
353
- <option value="claude-sonnet-4-20250514">Claude Sonnet 4</option>
354
- <option value="claude-opus-4-20250514">Claude Opus 4</option>
355
- <option value="gpt-4o">GPT-4o</option>
356
- <option value="zen-coder-flash">Zen Coder Flash</option>
357
- <option value="zen-max">Zen Max</option>
358
- </select>
359
- </label>
360
- <label class="setting-item">
361
- <span>Enable WebGPU</span>
362
- <input type="checkbox" id="enable-webgpu" checked>
363
- </label>
364
- </div>
365
-
366
- <!-- Browser Control -->
367
- <div class="panel">
368
- <h3>Browser Control</h3>
369
- <label class="setting-item">
370
- <span>Safe Mode</span>
371
- <input type="checkbox" id="safe-mode" checked>
372
- </label>
373
- <label class="setting-item">
374
- <span>Max Agents</span>
375
- <input type="number" id="max-agents" value="3" min="1" max="10">
376
- </label>
377
- </div>
378
-
379
- <!-- RAG Settings -->
380
- <div class="panel">
381
- <h3>RAG Integration</h3>
382
- <label class="setting-item">
383
- <span>Use ZAP Memory</span>
384
- <input type="checkbox" id="rag-use-zap" checked>
385
- </label>
386
- <label class="setting-item">
387
- <span>Include Tab Context</span>
388
- <input type="checkbox" id="rag-include-tab-context" checked>
389
- </label>
390
- <label class="setting-item">
391
- <span>Top K</span>
392
- <input type="number" id="rag-top-k" value="5" min="1" max="20">
393
- </label>
394
- <label class="setting-item setting-item-column">
395
- <span>Knowledge Base</span>
396
- <input type="text" id="rag-kb" placeholder="e.g. engineering-docs">
397
- </label>
398
- <label class="setting-item setting-item-column">
399
- <span>RAG Endpoint</span>
400
- <input type="text" id="rag-endpoint" placeholder="https://your-rag.company.com/query">
401
- </label>
402
- <label class="setting-item setting-item-column">
403
- <span>RAG API Key</span>
404
- <input type="password" id="rag-api-key" placeholder="Optional bearer token">
405
- </label>
406
- </div>
407
-
408
- <button id="save-settings" class="primary-btn">Save Settings</button>
409
-
410
- <!-- Build Info -->
411
- <div class="panel build-info-panel">
412
- <h3>Build Info</h3>
413
- <div class="mcp-status">
414
- <div class="status-row">
415
- <span>Extension</span>
416
- <span id="build-ext-version" class="status-value mono">--</span>
417
- </div>
418
- <div class="status-row">
419
- <span>Browser</span>
420
- <span id="build-browser" class="status-value mono">--</span>
421
- </div>
422
- <div class="status-row">
423
- <span>Manifest</span>
424
- <span id="build-manifest" class="status-value mono">--</span>
425
- </div>
426
- <div class="status-row">
427
- <span>CDP Bridge</span>
428
- <span id="build-cdp-status" class="status-value mono">--</span>
429
- </div>
430
- <div class="status-row">
431
- <span>MCP Bridge</span>
432
- <span id="build-mcp-status" class="status-value mono">--</span>
433
- </div>
434
- </div>
435
- </div>
436
-
437
- <!-- Links -->
438
- <div class="settings-links">
439
- <a href="https://console.hanzo.ai" target="_blank">Console</a>
440
- <a href="https://billing.hanzo.ai" target="_blank">Billing</a>
441
- <a href="https://docs.hanzo.ai" target="_blank">Docs</a>
442
- </div>
443
- </div>
444
- </div>
445
-
446
- <!-- Footer -->
447
- <footer class="sidebar-footer">
448
- <a href="https://hanzo.ai" target="_blank" class="footer-brand" title="hanzo.ai">
449
- <svg viewBox="0 0 67 67" xmlns="http://www.w3.org/2000/svg" width="14" height="14">
450
- <path d="M22.21 67V44.6369H0V67H22.21Z" fill="currentColor"/>
451
- <path d="M66.7038 22.3184H22.2534L0.0878906 44.6367H44.4634L66.7038 22.3184Z" fill="currentColor"/>
452
- <path d="M22.21 0H0V22.3184H22.21V0Z" fill="currentColor"/>
453
- <path d="M66.7198 0H44.5098V22.3184H66.7198V0Z" fill="currentColor"/>
454
- <path d="M66.7198 67V44.6369H44.5098V67H66.7198Z" fill="currentColor"/>
455
- </svg>
456
- <span id="footer-version">hanzo.ai</span>
457
- </a>
458
- </footer>
459
- </div>
460
-
461
- <script src="sidebar.js"></script>
462
- </body>
463
- </html>