@opentabs-dev/browser-extension 0.0.34
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/background-log-state.d.ts +10 -0
- package/dist/background-log-state.d.ts.map +1 -0
- package/dist/background-log-state.js +11 -0
- package/dist/background-log-state.js.map +1 -0
- package/dist/background-message-handlers.d.ts +41 -0
- package/dist/background-message-handlers.d.ts.map +1 -0
- package/dist/background-message-handlers.js +214 -0
- package/dist/background-message-handlers.js.map +1 -0
- package/dist/background.d.ts +2 -0
- package/dist/background.d.ts.map +1 -0
- package/dist/background.js +3780 -0
- package/dist/background.js.map +1 -0
- package/dist/bg-log-state.d.ts +10 -0
- package/dist/bg-log-state.d.ts.map +1 -0
- package/dist/bg-log-state.js +11 -0
- package/dist/bg-log-state.js.map +1 -0
- package/dist/browser-commands/content-commands.d.ts +25 -0
- package/dist/browser-commands/content-commands.d.ts.map +1 -0
- package/dist/browser-commands/content-commands.js +166 -0
- package/dist/browser-commands/content-commands.js.map +1 -0
- package/dist/browser-commands/cookie-commands.d.ts +14 -0
- package/dist/browser-commands/cookie-commands.d.ts.map +1 -0
- package/dist/browser-commands/cookie-commands.js +99 -0
- package/dist/browser-commands/cookie-commands.js.map +1 -0
- package/dist/browser-commands/extension-commands.d.ts +12 -0
- package/dist/browser-commands/extension-commands.d.ts.map +1 -0
- package/dist/browser-commands/extension-commands.js +386 -0
- package/dist/browser-commands/extension-commands.js.map +1 -0
- package/dist/browser-commands/helpers.d.ts +35 -0
- package/dist/browser-commands/helpers.d.ts.map +1 -0
- package/dist/browser-commands/helpers.js +121 -0
- package/dist/browser-commands/helpers.js.map +1 -0
- package/dist/browser-commands/index.d.ts +11 -0
- package/dist/browser-commands/index.d.ts.map +1 -0
- package/dist/browser-commands/index.js +10 -0
- package/dist/browser-commands/index.js.map +1 -0
- package/dist/browser-commands/interaction-commands.d.ts +23 -0
- package/dist/browser-commands/interaction-commands.d.ts.map +1 -0
- package/dist/browser-commands/interaction-commands.js +353 -0
- package/dist/browser-commands/interaction-commands.js.map +1 -0
- package/dist/browser-commands/key-press-command.d.ts +2 -0
- package/dist/browser-commands/key-press-command.d.ts.map +1 -0
- package/dist/browser-commands/key-press-command.js +144 -0
- package/dist/browser-commands/key-press-command.js.map +1 -0
- package/dist/browser-commands/network-commands.d.ts +6 -0
- package/dist/browser-commands/network-commands.d.ts.map +1 -0
- package/dist/browser-commands/network-commands.js +69 -0
- package/dist/browser-commands/network-commands.js.map +1 -0
- package/dist/browser-commands/resource-commands.d.ts +37 -0
- package/dist/browser-commands/resource-commands.d.ts.map +1 -0
- package/dist/browser-commands/resource-commands.js +153 -0
- package/dist/browser-commands/resource-commands.js.map +1 -0
- package/dist/browser-commands/scroll-command.d.ts +2 -0
- package/dist/browser-commands/scroll-command.d.ts.map +1 -0
- package/dist/browser-commands/scroll-command.js +133 -0
- package/dist/browser-commands/scroll-command.js.map +1 -0
- package/dist/browser-commands/tab-commands.d.ts +33 -0
- package/dist/browser-commands/tab-commands.d.ts.map +1 -0
- package/dist/browser-commands/tab-commands.js +121 -0
- package/dist/browser-commands/tab-commands.js.map +1 -0
- package/dist/browser-commands.d.ts +36 -0
- package/dist/browser-commands.d.ts.map +1 -0
- package/dist/browser-commands.js +1931 -0
- package/dist/browser-commands.js.map +1 -0
- package/dist/confirmation-badge.d.ts +17 -0
- package/dist/confirmation-badge.d.ts.map +1 -0
- package/dist/confirmation-badge.js +64 -0
- package/dist/confirmation-badge.js.map +1 -0
- package/dist/constants.d.ts +79 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +79 -0
- package/dist/constants.js.map +1 -0
- package/dist/dispatch-helpers.d.ts +61 -0
- package/dist/dispatch-helpers.d.ts.map +1 -0
- package/dist/dispatch-helpers.js +149 -0
- package/dist/dispatch-helpers.js.map +1 -0
- package/dist/extension-messages.d.ts +146 -0
- package/dist/extension-messages.d.ts.map +1 -0
- package/dist/extension-messages.js +2 -0
- package/dist/extension-messages.js.map +1 -0
- package/dist/iife-injection.d.ts +55 -0
- package/dist/iife-injection.d.ts.map +1 -0
- package/dist/iife-injection.js +474 -0
- package/dist/iife-injection.js.map +1 -0
- package/dist/json-rpc-errors.d.ts +8 -0
- package/dist/json-rpc-errors.d.ts.map +1 -0
- package/dist/json-rpc-errors.js +8 -0
- package/dist/json-rpc-errors.js.map +1 -0
- package/dist/known-methods.d.ts +19 -0
- package/dist/known-methods.d.ts.map +1 -0
- package/dist/known-methods.js +68 -0
- package/dist/known-methods.js.map +1 -0
- package/dist/log-collector.d.ts +45 -0
- package/dist/log-collector.d.ts.map +1 -0
- package/dist/log-collector.js +99 -0
- package/dist/log-collector.js.map +1 -0
- package/dist/message-router.d.ts +28 -0
- package/dist/message-router.d.ts.map +1 -0
- package/dist/message-router.js +367 -0
- package/dist/message-router.js.map +1 -0
- package/dist/messaging.d.ts +15 -0
- package/dist/messaging.d.ts.map +1 -0
- package/dist/messaging.js +41 -0
- package/dist/messaging.js.map +1 -0
- package/dist/network-capture.d.ts +56 -0
- package/dist/network-capture.d.ts.map +1 -0
- package/dist/network-capture.js +374 -0
- package/dist/network-capture.js.map +1 -0
- package/dist/offscreen/index.d.ts +16 -0
- package/dist/offscreen/index.d.ts.map +1 -0
- package/dist/offscreen/index.js +549 -0
- package/dist/offscreen/index.js.map +1 -0
- package/dist/plugin-storage.d.ts +19 -0
- package/dist/plugin-storage.d.ts.map +1 -0
- package/dist/plugin-storage.js +100 -0
- package/dist/plugin-storage.js.map +1 -0
- package/dist/rate-limiter.d.ts +18 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/rate-limiter.js +53 -0
- package/dist/rate-limiter.js.map +1 -0
- package/dist/resource-prompt-dispatch.d.ts +14 -0
- package/dist/resource-prompt-dispatch.d.ts.map +1 -0
- package/dist/resource-prompt-dispatch.js +195 -0
- package/dist/resource-prompt-dispatch.js.map +1 -0
- package/dist/sanitize-error.d.ts +8 -0
- package/dist/sanitize-error.d.ts.map +1 -0
- package/dist/sanitize-error.js +25 -0
- package/dist/sanitize-error.js.map +1 -0
- package/dist/sanitize-svg.d.ts +20 -0
- package/dist/sanitize-svg.d.ts.map +1 -0
- package/dist/sanitize-svg.js +296 -0
- package/dist/sanitize-svg.js.map +1 -0
- package/dist/side-panel/App.d.ts +3 -0
- package/dist/side-panel/App.d.ts.map +1 -0
- package/dist/side-panel/App.js +147 -0
- package/dist/side-panel/App.js.map +1 -0
- package/dist/side-panel/bridge.d.ts +50 -0
- package/dist/side-panel/bridge.d.ts.map +1 -0
- package/dist/side-panel/bridge.js +113 -0
- package/dist/side-panel/bridge.js.map +1 -0
- package/dist/side-panel/components/ConfirmationDialog.d.ts +16 -0
- package/dist/side-panel/components/ConfirmationDialog.d.ts.map +1 -0
- package/dist/side-panel/components/ConfirmationDialog.js +39 -0
- package/dist/side-panel/components/ConfirmationDialog.js.map +1 -0
- package/dist/side-panel/components/EmptyStates.d.ts +8 -0
- package/dist/side-panel/components/EmptyStates.d.ts.map +1 -0
- package/dist/side-panel/components/EmptyStates.js +40 -0
- package/dist/side-panel/components/EmptyStates.js.map +1 -0
- package/dist/side-panel/components/ErrorBoundary.d.ts +23 -0
- package/dist/side-panel/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/side-panel/components/ErrorBoundary.js +28 -0
- package/dist/side-panel/components/ErrorBoundary.js.map +1 -0
- package/dist/side-panel/components/FailedPluginCard.d.ts +6 -0
- package/dist/side-panel/components/FailedPluginCard.d.ts.map +1 -0
- package/dist/side-panel/components/FailedPluginCard.js +9 -0
- package/dist/side-panel/components/FailedPluginCard.js.map +1 -0
- package/dist/side-panel/components/Footer.d.ts +3 -0
- package/dist/side-panel/components/Footer.d.ts.map +1 -0
- package/dist/side-panel/components/Footer.js +32 -0
- package/dist/side-panel/components/Footer.js.map +1 -0
- package/dist/side-panel/components/Header.d.ts +5 -0
- package/dist/side-panel/components/Header.d.ts.map +1 -0
- package/dist/side-panel/components/Header.js +6 -0
- package/dist/side-panel/components/Header.js.map +1 -0
- package/dist/side-panel/components/PluginCard.d.ts +10 -0
- package/dist/side-panel/components/PluginCard.d.ts.map +1 -0
- package/dist/side-panel/components/PluginCard.js +50 -0
- package/dist/side-panel/components/PluginCard.js.map +1 -0
- package/dist/side-panel/components/PluginIcon.d.ts +21 -0
- package/dist/side-panel/components/PluginIcon.d.ts.map +1 -0
- package/dist/side-panel/components/PluginIcon.js +48 -0
- package/dist/side-panel/components/PluginIcon.js.map +1 -0
- package/dist/side-panel/components/PluginList.d.ts +11 -0
- package/dist/side-panel/components/PluginList.d.ts.map +1 -0
- package/dist/side-panel/components/PluginList.js +17 -0
- package/dist/side-panel/components/PluginList.js.map +1 -0
- package/dist/side-panel/components/ToolIcon.d.ts +7 -0
- package/dist/side-panel/components/ToolIcon.d.ts.map +1 -0
- package/dist/side-panel/components/ToolIcon.js +8 -0
- package/dist/side-panel/components/ToolIcon.js.map +1 -0
- package/dist/side-panel/components/ToolRow.d.ts +11 -0
- package/dist/side-panel/components/ToolRow.d.ts.map +1 -0
- package/dist/side-panel/components/ToolRow.js +8 -0
- package/dist/side-panel/components/ToolRow.js.map +1 -0
- package/dist/side-panel/components/VersionMismatchBanner.d.ts +3 -0
- package/dist/side-panel/components/VersionMismatchBanner.d.ts.map +1 -0
- package/dist/side-panel/components/VersionMismatchBanner.js +5 -0
- package/dist/side-panel/components/VersionMismatchBanner.js.map +1 -0
- package/dist/side-panel/components/retro/Accordion.d.ts +8 -0
- package/dist/side-panel/components/retro/Accordion.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Accordion.js +15 -0
- package/dist/side-panel/components/retro/Accordion.js.map +1 -0
- package/dist/side-panel/components/retro/Alert.d.ts +25 -0
- package/dist/side-panel/components/retro/Alert.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Alert.js +33 -0
- package/dist/side-panel/components/retro/Alert.js.map +1 -0
- package/dist/side-panel/components/retro/Badge.d.ts +15 -0
- package/dist/side-panel/components/retro/Badge.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Badge.js +23 -0
- package/dist/side-panel/components/retro/Badge.js.map +1 -0
- package/dist/side-panel/components/retro/Button.d.ts +13 -0
- package/dist/side-panel/components/retro/Button.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Button.js +33 -0
- package/dist/side-panel/components/retro/Button.js.map +1 -0
- package/dist/side-panel/components/retro/Empty.d.ts +31 -0
- package/dist/side-panel/components/retro/Empty.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Empty.js +25 -0
- package/dist/side-panel/components/retro/Empty.js.map +1 -0
- package/dist/side-panel/components/retro/Input.d.ts +8 -0
- package/dist/side-panel/components/retro/Input.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Input.js +7 -0
- package/dist/side-panel/components/retro/Input.js.map +1 -0
- package/dist/side-panel/components/retro/Loader.d.ts +14 -0
- package/dist/side-panel/components/retro/Loader.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Loader.js +30 -0
- package/dist/side-panel/components/retro/Loader.js.map +1 -0
- package/dist/side-panel/components/retro/Menu.d.ts +9 -0
- package/dist/side-panel/components/retro/Menu.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Menu.js +17 -0
- package/dist/side-panel/components/retro/Menu.js.map +1 -0
- package/dist/side-panel/components/retro/NumberStepper.d.ts +18 -0
- package/dist/side-panel/components/retro/NumberStepper.d.ts.map +1 -0
- package/dist/side-panel/components/retro/NumberStepper.js +38 -0
- package/dist/side-panel/components/retro/NumberStepper.js.map +1 -0
- package/dist/side-panel/components/retro/Progress.d.ts +9 -0
- package/dist/side-panel/components/retro/Progress.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Progress.js +6 -0
- package/dist/side-panel/components/retro/Progress.js.map +1 -0
- package/dist/side-panel/components/retro/Switch.d.ts +4 -0
- package/dist/side-panel/components/retro/Switch.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Switch.js +6 -0
- package/dist/side-panel/components/retro/Switch.js.map +1 -0
- package/dist/side-panel/components/retro/Text.d.ts +11 -0
- package/dist/side-panel/components/retro/Text.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Text.js +28 -0
- package/dist/side-panel/components/retro/Text.js.map +1 -0
- package/dist/side-panel/components/retro/Tooltip.d.ts +12 -0
- package/dist/side-panel/components/retro/Tooltip.d.ts.map +1 -0
- package/dist/side-panel/components/retro/Tooltip.js +32 -0
- package/dist/side-panel/components/retro/Tooltip.js.map +1 -0
- package/dist/side-panel/constants.d.ts +5 -0
- package/dist/side-panel/constants.d.ts.map +1 -0
- package/dist/side-panel/constants.js +5 -0
- package/dist/side-panel/constants.js.map +1 -0
- package/dist/side-panel/hooks/useServerNotifications.d.ts +21 -0
- package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -0
- package/dist/side-panel/hooks/useServerNotifications.js +93 -0
- package/dist/side-panel/hooks/useServerNotifications.js.map +1 -0
- package/dist/side-panel/hooks/useTheme.d.ts +8 -0
- package/dist/side-panel/hooks/useTheme.d.ts.map +1 -0
- package/dist/side-panel/hooks/useTheme.js +30 -0
- package/dist/side-panel/hooks/useTheme.js.map +1 -0
- package/dist/side-panel/index.d.ts +2 -0
- package/dist/side-panel/index.d.ts.map +1 -0
- package/dist/side-panel/index.js +12 -0
- package/dist/side-panel/index.js.map +1 -0
- package/dist/side-panel/lib/cn.d.ts +3 -0
- package/dist/side-panel/lib/cn.d.ts.map +1 -0
- package/dist/side-panel/lib/cn.js +4 -0
- package/dist/side-panel/lib/cn.js.map +1 -0
- package/dist/side-panel/lib/utils.d.ts +3 -0
- package/dist/side-panel/lib/utils.d.ts.map +1 -0
- package/dist/side-panel/lib/utils.js +4 -0
- package/dist/side-panel/lib/utils.js.map +1 -0
- package/dist/side-panel/side-panel.js +78034 -0
- package/dist/side-panel/styles.css +2 -0
- package/dist/side-panel-state.d.ts +11 -0
- package/dist/side-panel-state.d.ts.map +1 -0
- package/dist/side-panel-state.js +38 -0
- package/dist/side-panel-state.js.map +1 -0
- package/dist/side-panel-toggle.d.ts +3 -0
- package/dist/side-panel-toggle.d.ts.map +1 -0
- package/dist/side-panel-toggle.js +31 -0
- package/dist/side-panel-toggle.js.map +1 -0
- package/dist/tab-matching.d.ts +51 -0
- package/dist/tab-matching.d.ts.map +1 -0
- package/dist/tab-matching.js +160 -0
- package/dist/tab-matching.js.map +1 -0
- package/dist/tab-state.d.ts +56 -0
- package/dist/tab-state.d.ts.map +1 -0
- package/dist/tab-state.js +282 -0
- package/dist/tab-state.js.map +1 -0
- package/dist/tool-dispatch.d.ts +19 -0
- package/dist/tool-dispatch.d.ts.map +1 -0
- package/dist/tool-dispatch.js +336 -0
- package/dist/tool-dispatch.js.map +1 -0
- package/dist/types.d.ts +82 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/icons/icon-128.png +0 -0
- package/icons/icon-16.png +0 -0
- package/icons/icon-32.png +0 -0
- package/icons/icon-48.png +0 -0
- package/icons/icon.svg +6 -0
- package/manifest.json +38 -0
- package/offscreen/offscreen.html +10 -0
- package/package.json +49 -0
- package/side-panel/dark-mode.js +29 -0
- package/side-panel/fonts/archivo-black-latin.woff2 +0 -0
- package/side-panel/fonts/space-grotesk-latin.woff2 +0 -0
- package/side-panel/fonts/space-mono-400-latin.woff2 +0 -0
- package/side-panel/fonts/space-mono-700-latin.woff2 +0 -0
- package/side-panel/fonts.css +34 -0
- package/side-panel/side-panel.html +16 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { TrustTier, WireToolDef } from '@opentabs-dev/shared';
|
|
2
|
+
/** Offscreen → Background: request the MCP server WebSocket URL */
|
|
3
|
+
export interface OffscreenGetUrlMessage {
|
|
4
|
+
type: 'offscreen:getUrl';
|
|
5
|
+
}
|
|
6
|
+
/** Background → Offscreen: WebSocket connection state changed */
|
|
7
|
+
export interface WsStateMessage {
|
|
8
|
+
type: 'ws:state';
|
|
9
|
+
connected: boolean;
|
|
10
|
+
}
|
|
11
|
+
/** Background/Offscreen: relay a JSON-RPC message from the MCP server */
|
|
12
|
+
export interface WsDataMessage {
|
|
13
|
+
type: 'ws:message';
|
|
14
|
+
data: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
/** Offscreen/Side panel → Background → Offscreen: send a JSON-RPC message to the MCP server */
|
|
17
|
+
export interface WsSendMessage {
|
|
18
|
+
type: 'ws:send';
|
|
19
|
+
data: unknown;
|
|
20
|
+
}
|
|
21
|
+
/** Background → Offscreen: query WebSocket connection state */
|
|
22
|
+
export interface WsGetStateMessage {
|
|
23
|
+
type: 'ws:getState';
|
|
24
|
+
}
|
|
25
|
+
/** Background → Offscreen: change the MCP server WebSocket URL */
|
|
26
|
+
export interface WsSetUrlMessage {
|
|
27
|
+
type: 'ws:setUrl';
|
|
28
|
+
url: string;
|
|
29
|
+
}
|
|
30
|
+
/** Side panel → Background: send a JSON-RPC message to the MCP server */
|
|
31
|
+
export interface BgSendMessage {
|
|
32
|
+
type: 'bg:send';
|
|
33
|
+
data: unknown;
|
|
34
|
+
}
|
|
35
|
+
/** Side panel → Background: query WebSocket connection state */
|
|
36
|
+
export interface BgGetConnectionStateMessage {
|
|
37
|
+
type: 'bg:getConnectionState';
|
|
38
|
+
}
|
|
39
|
+
/** Background → Offscreen: request log entries from the offscreen LogCollector */
|
|
40
|
+
export interface BgGetLogsMessage {
|
|
41
|
+
type: 'bg:getLogs';
|
|
42
|
+
options?: {
|
|
43
|
+
level?: 'log' | 'warn' | 'error' | 'info';
|
|
44
|
+
source?: 'background' | 'offscreen' | 'side-panel';
|
|
45
|
+
since?: number;
|
|
46
|
+
limit?: number;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** Background → Offscreen: force WebSocket disconnect and immediate reconnect */
|
|
50
|
+
export interface BgForceReconnectMessage {
|
|
51
|
+
type: 'bg:forceReconnect';
|
|
52
|
+
}
|
|
53
|
+
/** Background → Side panel: request current React state and rendered HTML */
|
|
54
|
+
export interface SpGetStateMessage {
|
|
55
|
+
type: 'sp:getState';
|
|
56
|
+
}
|
|
57
|
+
/** Background → Side panel: WebSocket connection state update */
|
|
58
|
+
export interface SpConnectionStateMessage {
|
|
59
|
+
type: 'sp:connectionState';
|
|
60
|
+
data: {
|
|
61
|
+
connected: boolean;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/** Background → Side panel: forwarded JSON-RPC message from the MCP server */
|
|
65
|
+
export interface SpRelayMessage {
|
|
66
|
+
type: 'sp:serverMessage';
|
|
67
|
+
data: Record<string, unknown>;
|
|
68
|
+
}
|
|
69
|
+
/** All internal message types flowing through chrome.runtime.sendMessage */
|
|
70
|
+
export type InternalMessage = OffscreenGetUrlMessage | WsStateMessage | WsDataMessage | WsSendMessage | WsGetStateMessage | WsSetUrlMessage | BgSendMessage | BgGetConnectionStateMessage | BgGetLogsMessage | BgForceReconnectMessage | SpGetStateMessage | SpConnectionStateMessage | SpRelayMessage;
|
|
71
|
+
/** Lightweight plugin metadata stored in the `plugins_meta` index (no IIFE content) */
|
|
72
|
+
export interface PluginMeta {
|
|
73
|
+
name: string;
|
|
74
|
+
version: string;
|
|
75
|
+
displayName: string;
|
|
76
|
+
urlPatterns: string[];
|
|
77
|
+
trustTier: TrustTier;
|
|
78
|
+
sourcePath?: string;
|
|
79
|
+
adapterHash?: string;
|
|
80
|
+
tools: WireToolDef[];
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUnE,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,+FAA+F;AAC/F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,gEAAgE;AAChE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,uBAAuB,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;QAC1C,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;QACnD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,iEAAiE;AACjE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9B;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GACvB,sBAAsB,GACtB,cAAc,GACd,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,2BAA2B,GAC3B,gBAAgB,GAChB,uBAAuB,GACvB,iBAAiB,GACjB,wBAAwB,GACxB,cAAc,CAAC;AAEnB,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/icons/icon.svg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
|
|
2
|
+
<path fill="#FFDB33" fill-rule="evenodd" d="
|
|
3
|
+
M 358.4 26 c 53.765 0 80.6476 0 101.1831 10.4634 a 96 96 0 0 1 41.9535 41.9535 c 10.4634 20.5355 10.4634 47.418 10.4634 101.1831 L 512 332.4 c 0 53.765 0 80.6476 -10.4634 101.1831 a 96 96 0 0 1 -41.9535 41.9535 c -20.5355 10.4634 -47.418 10.4634 -101.1831 10.4634 L 153.6 486 c -53.765 0 -80.6476 0 -101.1831 -10.4634 a 96 96 0 0 1 -41.9535 -41.9535 c -10.4634 -20.5355 -10.4634 -47.418 -10.4634 -101.1831 L 0 179.6 c 0 -53.765 0 -80.6476 10.4634 -101.1831 a 96 96 0 0 1 41.9535 -41.9535 c 20.5355 -10.4634 47.418 -10.4634 101.1831 -10.4634 Z
|
|
4
|
+
M 350.8 231 c 31.923 0 47.8845 0 60.0775 6.2126 a 57 57 0 0 1 24.9099 24.9099 c 6.2126 12.193 6.2126 28.1545 6.2126 60.0775 L 442 333.8 c 0 31.923 0 47.8845 -6.2126 60.0775 a 57 57 0 0 1 -24.9099 24.9099 c -12.193 6.2126 -28.1545 6.2126 -60.0775 6.2126 L 318.2 425 c -31.923 0 -47.8845 0 -60.0775 -6.2126 a 57 57 0 0 1 -24.9099 -24.9099 c -6.2126 -12.193 -6.2126 -28.1545 -6.2126 -60.0775 L 227 322.2 c 0 -31.923 0 -47.8845 6.2126 -60.0775 a 57 57 0 0 1 24.9099 -24.9099 c 12.193 -6.2126 28.1545 -6.2126 60.0775 -6.2126 Z
|
|
5
|
+
"/>
|
|
6
|
+
</svg>
|
package/manifest.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": 3,
|
|
3
|
+
"name": "OpenTabs",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"description": "Enable AI agents to interact with web applications through browser-authenticated sessions",
|
|
6
|
+
"icons": {
|
|
7
|
+
"16": "icons/icon-16.png",
|
|
8
|
+
"32": "icons/icon-32.png",
|
|
9
|
+
"48": "icons/icon-48.png",
|
|
10
|
+
"128": "icons/icon-128.png"
|
|
11
|
+
},
|
|
12
|
+
"action": {
|
|
13
|
+
"default_icon": {
|
|
14
|
+
"16": "icons/icon-16.png",
|
|
15
|
+
"32": "icons/icon-32.png",
|
|
16
|
+
"48": "icons/icon-48.png"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"background": {
|
|
20
|
+
"service_worker": "dist/background.js",
|
|
21
|
+
"type": "module"
|
|
22
|
+
},
|
|
23
|
+
"side_panel": {
|
|
24
|
+
"default_path": "side-panel/side-panel.html"
|
|
25
|
+
},
|
|
26
|
+
"permissions": [
|
|
27
|
+
"offscreen",
|
|
28
|
+
"storage",
|
|
29
|
+
"alarms",
|
|
30
|
+
"tabs",
|
|
31
|
+
"scripting",
|
|
32
|
+
"sidePanel",
|
|
33
|
+
"cookies",
|
|
34
|
+
"debugger",
|
|
35
|
+
"notifications"
|
|
36
|
+
],
|
|
37
|
+
"host_permissions": ["<all_urls>"]
|
|
38
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@opentabs-dev/browser-extension",
|
|
3
|
+
"version": "0.0.34",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"manifest.json",
|
|
7
|
+
"dist/",
|
|
8
|
+
"side-panel/",
|
|
9
|
+
"offscreen/",
|
|
10
|
+
"icons/"
|
|
11
|
+
],
|
|
12
|
+
"exports": {
|
|
13
|
+
"./package.json": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc --build",
|
|
17
|
+
"build:bundle": "bun run build-extension.ts",
|
|
18
|
+
"build:side-panel": "bun run build-side-panel.ts && bun run build:tailwind",
|
|
19
|
+
"build:tailwind": "npx @tailwindcss/cli -i src/side-panel/styles.css -o dist/side-panel/styles.css --minify",
|
|
20
|
+
"storybook": "storybook dev -p 6006",
|
|
21
|
+
"storybook:build": "storybook build -o storybook-static"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@opentabs-dev/shared": "0.0.34",
|
|
25
|
+
"@radix-ui/react-accordion": "^1.2.1",
|
|
26
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
27
|
+
"@radix-ui/react-progress": "^1.1.8",
|
|
28
|
+
"@radix-ui/react-slot": "^1.2.2",
|
|
29
|
+
"@radix-ui/react-switch": "^1.1.3",
|
|
30
|
+
"@radix-ui/react-tooltip": "^1.2.3",
|
|
31
|
+
"class-variance-authority": "^0.7.0",
|
|
32
|
+
"clsx": "^2.1.1",
|
|
33
|
+
"tailwind-merge": "^2.5.3",
|
|
34
|
+
"tw-animate-css": "^1.3.7"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@storybook/react": "^10.2.10",
|
|
38
|
+
"@storybook/react-vite": "^10.2.10",
|
|
39
|
+
"@tailwindcss/vite": "^4.2.0",
|
|
40
|
+
"@types/chrome": "^0.1.36",
|
|
41
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
42
|
+
"esbuild": "^0.24.0",
|
|
43
|
+
"lucide-react": "^0.574.0",
|
|
44
|
+
"react": "^19.2.4",
|
|
45
|
+
"react-dom": "^19.2.4",
|
|
46
|
+
"storybook": "^10.2.10",
|
|
47
|
+
"vite": "^7.3.1"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Apply dark/light theme before first paint to avoid flash.
|
|
2
|
+
// Reads the persisted choice from chrome.storage.local; falls back to
|
|
3
|
+
// the system preference when no stored value exists.
|
|
4
|
+
(function () {
|
|
5
|
+
var mq = window.matchMedia('(prefers-color-scheme:dark)');
|
|
6
|
+
function apply(dark) {
|
|
7
|
+
document.documentElement.classList.toggle('dark', dark);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Synchronous fallback — use system preference immediately so the
|
|
11
|
+
// page renders with the right theme while storage loads.
|
|
12
|
+
apply(mq.matches);
|
|
13
|
+
|
|
14
|
+
// Async — override with persisted preference once available.
|
|
15
|
+
chrome.storage.local.get('theme').then(function (result) {
|
|
16
|
+
if (result.theme === 'dark' || result.theme === 'light') {
|
|
17
|
+
apply(result.theme === 'dark');
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Keep responding to OS changes only if the user has no stored preference.
|
|
22
|
+
mq.addEventListener('change', function (e) {
|
|
23
|
+
chrome.storage.local.get('theme').then(function (result) {
|
|
24
|
+
if (!result.theme) {
|
|
25
|
+
apply(e.matches);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
})();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* Local font faces — bundled with the extension to avoid external network
|
|
2
|
+
requests that would violate MV3 Content Security Policy. */
|
|
3
|
+
|
|
4
|
+
@font-face {
|
|
5
|
+
font-family: 'Archivo Black';
|
|
6
|
+
font-style: normal;
|
|
7
|
+
font-weight: 400;
|
|
8
|
+
font-display: swap;
|
|
9
|
+
src: url(fonts/archivo-black-latin.woff2) format('woff2');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@font-face {
|
|
13
|
+
font-family: 'Space Grotesk';
|
|
14
|
+
font-style: normal;
|
|
15
|
+
font-weight: 300 700;
|
|
16
|
+
font-display: swap;
|
|
17
|
+
src: url(fonts/space-grotesk-latin.woff2) format('woff2');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@font-face {
|
|
21
|
+
font-family: 'Space Mono';
|
|
22
|
+
font-style: normal;
|
|
23
|
+
font-weight: 400;
|
|
24
|
+
font-display: swap;
|
|
25
|
+
src: url(fonts/space-mono-400-latin.woff2) format('woff2');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@font-face {
|
|
29
|
+
font-family: 'Space Mono';
|
|
30
|
+
font-style: normal;
|
|
31
|
+
font-weight: 700;
|
|
32
|
+
font-display: swap;
|
|
33
|
+
src: url(fonts/space-mono-700-latin.woff2) format('woff2');
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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>OpenTabs</title>
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="../icons/icon.svg" />
|
|
8
|
+
<link rel="stylesheet" href="fonts.css" />
|
|
9
|
+
<script src="dark-mode.js"></script>
|
|
10
|
+
<link rel="stylesheet" href="../dist/side-panel/styles.css" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<div id="root"></div>
|
|
14
|
+
<script type="module" src="../dist/side-panel/side-panel.js"></script>
|
|
15
|
+
</body>
|
|
16
|
+
</html>
|