@opentabs-dev/browser-extension 0.0.52 → 0.0.54
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-message-handlers.d.ts +33 -6
- package/dist/background-message-handlers.d.ts.map +1 -1
- package/dist/background-message-handlers.js +335 -20
- package/dist/background-message-handlers.js.map +1 -1
- package/dist/background.js +859 -365
- package/dist/background.js.map +1 -1
- package/dist/browser-commands/extension-commands.d.ts.map +1 -1
- package/dist/browser-commands/extension-commands.js +5 -2
- package/dist/browser-commands/extension-commands.js.map +1 -1
- package/dist/browser-commands/key-press-command.d.ts +2 -0
- package/dist/browser-commands/key-press-command.d.ts.map +1 -1
- package/dist/browser-commands/key-press-command.js +42 -4
- package/dist/browser-commands/key-press-command.js.map +1 -1
- package/dist/confirmation-badge.d.ts +17 -3
- package/dist/confirmation-badge.d.ts.map +1 -1
- package/dist/confirmation-badge.js +55 -18
- package/dist/confirmation-badge.js.map +1 -1
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/dispatch-helpers.d.ts +1 -1
- package/dist/extension-messages.d.ts +48 -21
- package/dist/extension-messages.d.ts.map +1 -1
- package/dist/known-methods.d.ts +2 -2
- package/dist/known-methods.d.ts.map +1 -1
- package/dist/known-methods.js +1 -2
- package/dist/known-methods.js.map +1 -1
- package/dist/message-router.d.ts.map +1 -1
- package/dist/message-router.js +163 -24
- package/dist/message-router.js.map +1 -1
- package/dist/offscreen/index.js +17 -7
- package/dist/offscreen/index.js.map +1 -1
- package/dist/server-request.d.ts +19 -0
- package/dist/server-request.d.ts.map +1 -0
- package/dist/server-request.js +79 -0
- package/dist/server-request.js.map +1 -0
- package/dist/server-state-cache.d.ts +68 -0
- package/dist/server-state-cache.d.ts.map +1 -0
- package/dist/server-state-cache.js +208 -0
- package/dist/server-state-cache.js.map +1 -0
- package/dist/side-panel/App.d.ts.map +1 -1
- package/dist/side-panel/App.js +60 -58
- package/dist/side-panel/App.js.map +1 -1
- package/dist/side-panel/bridge.d.ts +31 -34
- package/dist/side-panel/bridge.d.ts.map +1 -1
- package/dist/side-panel/bridge.js +27 -91
- package/dist/side-panel/bridge.js.map +1 -1
- package/dist/side-panel/components/BrowserToolsCard.d.ts.map +1 -1
- package/dist/side-panel/components/BrowserToolsCard.js +2 -1
- package/dist/side-panel/components/BrowserToolsCard.js.map +1 -1
- package/dist/side-panel/components/ConfirmationDialog.d.ts +7 -2
- package/dist/side-panel/components/ConfirmationDialog.d.ts.map +1 -1
- package/dist/side-panel/components/ConfirmationDialog.js.map +1 -1
- package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
- package/dist/side-panel/components/PluginCard.js +2 -1
- package/dist/side-panel/components/PluginCard.js.map +1 -1
- package/dist/side-panel/components/PluginIcon.d.ts +2 -1
- package/dist/side-panel/components/PluginIcon.d.ts.map +1 -1
- package/dist/side-panel/components/PluginIcon.js +23 -5
- package/dist/side-panel/components/PluginIcon.js.map +1 -1
- package/dist/side-panel/components/ToolIcon.d.ts +2 -1
- package/dist/side-panel/components/ToolIcon.d.ts.map +1 -1
- package/dist/side-panel/components/ToolIcon.js +17 -3
- package/dist/side-panel/components/ToolIcon.js.map +1 -1
- package/dist/side-panel/components/ToolRow.d.ts.map +1 -1
- package/dist/side-panel/components/ToolRow.js +1 -2
- package/dist/side-panel/components/ToolRow.js.map +1 -1
- package/dist/side-panel/components/retro/Button.d.ts +1 -1
- package/dist/side-panel/hooks/useServerNotifications.d.ts +1 -3
- package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -1
- package/dist/side-panel/hooks/useServerNotifications.js +15 -11
- package/dist/side-panel/hooks/useServerNotifications.js.map +1 -1
- package/dist/side-panel/side-panel.js +1254 -1218
- package/dist/side-panel/styles.css +1 -1
- package/dist/side-panel-toggle.d.ts +6 -0
- package/dist/side-panel-toggle.d.ts.map +1 -1
- package/dist/side-panel-toggle.js +6 -0
- package/dist/side-panel-toggle.js.map +1 -1
- package/dist/tab-state.d.ts +26 -1
- package/dist/tab-state.d.ts.map +1 -1
- package/dist/tab-state.js +163 -11
- package/dist/tab-state.js.map +1 -1
- package/dist/tool-dispatch.d.ts.map +1 -1
- package/dist/tool-dispatch.js +3 -2
- package/dist/tool-dispatch.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from '../lib/cn.js';
|
|
3
3
|
import { Wrench } from 'lucide-react';
|
|
4
4
|
import { DynamicIcon } from 'lucide-react/dynamic';
|
|
5
|
-
import { Suspense } from 'react';
|
|
5
|
+
import { Suspense, useState, useEffect, useRef } from 'react';
|
|
6
6
|
const FallbackIcon = ({ enabled = true }) => (_jsx(Wrench, { className: cn('h-3 w-3 transition-colors', enabled ? 'text-primary-foreground' : 'text-muted-foreground') }));
|
|
7
|
-
const ToolIcon = ({ icon, className = '', enabled = true
|
|
7
|
+
const ToolIcon = ({ icon, className = '', enabled = true, active = false }) => {
|
|
8
|
+
const [fadingOut, setFadingOut] = useState(false);
|
|
9
|
+
const prevActiveRef = useRef(false);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (prevActiveRef.current && !active) {
|
|
12
|
+
setTimeout(() => setFadingOut(true), 0);
|
|
13
|
+
const timer = setTimeout(() => setFadingOut(false), 500);
|
|
14
|
+
prevActiveRef.current = active;
|
|
15
|
+
return () => clearTimeout(timer);
|
|
16
|
+
}
|
|
17
|
+
prevActiveRef.current = active;
|
|
18
|
+
return;
|
|
19
|
+
}, [active]);
|
|
20
|
+
return (_jsxs("div", { className: cn('relative flex h-6 w-6 shrink-0 items-center justify-center rounded border-2 transition-colors', enabled ? 'border-border bg-primary' : 'border-border/40 bg-muted/40', className), children: [icon ? (_jsx(Suspense, { fallback: _jsx(FallbackIcon, { enabled: enabled }), children: _jsx(DynamicIcon, { name: icon, className: cn('h-3 w-3 transition-colors', enabled ? 'text-primary-foreground' : 'text-muted-foreground'), fallback: () => _jsx(FallbackIcon, { enabled: enabled }) }) })) : (_jsx(FallbackIcon, { enabled: enabled })), (active || fadingOut) && (_jsx("div", { className: cn('bg-success border-card absolute rounded-full border-2', active && 'animate-activity-flash', fadingOut && !active && 'animate-activity-fade-out'), style: { width: 8, height: 8, bottom: -4, right: -4 } }))] }));
|
|
21
|
+
};
|
|
8
22
|
export { ToolIcon };
|
|
9
23
|
//# sourceMappingURL=ToolIcon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolIcon.js","sourceRoot":"","sources":["../../../src/side-panel/components/ToolIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolIcon.js","sourceRoot":"","sources":["../../../src/side-panel/components/ToolIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAU9D,MAAM,YAAY,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,EAAyB,EAAE,EAAE,CAAC,CAClE,KAAC,MAAM,IAAC,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAI,CACtH,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,MAAM,GAAG,KAAK,EAAiB,EAAE,EAAE;IAC3F,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YACzD,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC;YAC/B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC;QAC/B,OAAO;IACT,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,8BAA8B,EACrE,SAAS,CACV,aACA,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,QAAQ,IAAC,QAAQ,EAAE,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,GAAI,YACpD,KAAC,WAAW,IACV,IAAI,EAAE,IAAgB,EACtB,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC,EACzG,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,GAAI,GAClD,GACO,CACZ,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,GAAI,CACnC,EACA,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CACxB,cACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,MAAM,IAAI,wBAAwB,EAClC,SAAS,IAAI,CAAC,MAAM,IAAI,2BAA2B,CACpD,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GACrD,CACH,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRow.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/ToolRow.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToolRow.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/ToolRow.tsx"],"names":[],"mappings":"AAKA,QAAA,MAAM,OAAO,GAAI,sEAQd;IACD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,4CAwBA,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Loader } from './retro/Loader.js';
|
|
3
2
|
import { Switch } from './retro/Switch.js';
|
|
4
3
|
import { Tooltip } from './retro/Tooltip.js';
|
|
5
4
|
import { ToolIcon } from './ToolIcon.js';
|
|
6
5
|
import { cn } from '../lib/cn.js';
|
|
7
|
-
const ToolRow = ({ name, displayName, description, icon, enabled, active, onToggle, }) => (_jsxs("div", { className: cn('border-border flex items-center gap-2 border-b px-3 py-2 transition-colors last:border-b-0', enabled ? 'hover:bg-primary/10' : 'hover:bg-muted/50'
|
|
6
|
+
const ToolRow = ({ name, displayName, description, icon, enabled, active, onToggle, }) => (_jsxs("div", { className: cn('border-border flex items-center gap-2 border-b px-3 py-2 transition-colors last:border-b-0', enabled ? 'hover:bg-primary/10' : 'hover:bg-muted/50'), children: [_jsx(ToolIcon, { icon: icon, enabled: enabled, active: active }), _jsxs(Tooltip, { children: [_jsx(Tooltip.Trigger, { asChild: true, children: _jsx("div", { className: "min-w-0 flex-1", children: _jsx("div", { className: "text-foreground truncate text-sm", children: displayName }) }) }), _jsx(Tooltip.Content, { children: description })] }), _jsx("div", { className: "flex shrink-0 items-center gap-2", children: _jsx(Switch, { checked: enabled, onCheckedChange: () => onToggle(), onClick: (e) => e.stopPropagation(), "aria-label": `Toggle ${name} tool` }) })] }));
|
|
8
7
|
export { ToolRow };
|
|
9
8
|
//# sourceMappingURL=ToolRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRow.js","sourceRoot":"","sources":["../../../src/side-panel/components/ToolRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ToolRow.js","sourceRoot":"","sources":["../../../src/side-panel/components/ToolRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,MAAM,OAAO,GAAG,CAAC,EACf,IAAI,EACJ,WAAW,EACX,WAAW,EACX,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,GAST,EAAE,EAAE,CAAC,CACJ,eACE,SAAS,EAAE,EAAE,CACX,4FAA4F,EAC5F,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CACtD,aACD,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAI,EAC1D,MAAC,OAAO,eACN,KAAC,OAAO,CAAC,OAAO,IAAC,OAAO,kBACtB,cAAK,SAAS,EAAC,gBAAgB,YAC7B,cAAK,SAAS,EAAC,kCAAkC,YAAE,WAAW,GAAO,GACjE,GACU,EAClB,KAAC,OAAO,CAAC,OAAO,cAAE,WAAW,GAAmB,IACxC,EACV,cAAK,SAAS,EAAC,kCAAkC,YAC/C,KAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,EACjC,OAAO,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,gBACzC,UAAU,IAAI,OAAO,GACjC,GACE,IACF,CACP,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import type { ButtonHTMLAttributes, Ref } from 'react';
|
|
3
3
|
declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "link" | "default" | "outline" | "
|
|
4
|
+
variant?: "link" | "default" | "outline" | "ghost" | "secondary" | null | undefined;
|
|
5
5
|
size?: "icon" | "sm" | "md" | "lg" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
interface IButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import type { PluginState } from '../bridge.js';
|
|
2
2
|
import type { ConfirmationData } from '../components/ConfirmationDialog.js';
|
|
3
|
-
import type { TabState } from '@opentabs-dev/shared';
|
|
4
3
|
interface UseServerNotificationsParams {
|
|
5
4
|
setPlugins: React.Dispatch<React.SetStateAction<PluginState[]>>;
|
|
6
5
|
setActiveTools: React.Dispatch<React.SetStateAction<Set<string>>>;
|
|
7
6
|
setPendingConfirmations: React.Dispatch<React.SetStateAction<ConfirmationData[]>>;
|
|
8
|
-
pendingTabStates: React.RefObject<Map<string, TabState>>;
|
|
9
7
|
}
|
|
10
8
|
interface UseServerNotificationsResult {
|
|
11
9
|
handleNotification: (data: Record<string, unknown>) => void;
|
|
@@ -16,6 +14,6 @@ interface UseServerNotificationsResult {
|
|
|
16
14
|
* (confirmation.request, tab.stateChanged, tool.invocationStart, tool.invocationEnd)
|
|
17
15
|
* and a function to clear a confirmation's auto-removal timeout.
|
|
18
16
|
*/
|
|
19
|
-
declare const useServerNotifications: ({ setPlugins, setActiveTools, setPendingConfirmations,
|
|
17
|
+
declare const useServerNotifications: ({ setPlugins, setActiveTools, setPendingConfirmations, }: UseServerNotificationsParams) => UseServerNotificationsResult;
|
|
20
18
|
export { useServerNotifications };
|
|
21
19
|
//# sourceMappingURL=useServerNotifications.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useServerNotifications.d.ts","sourceRoot":"","sources":["../../../src/side-panel/hooks/useServerNotifications.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"useServerNotifications.d.ts","sourceRoot":"","sources":["../../../src/side-panel/hooks/useServerNotifications.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAK5E,UAAU,4BAA4B;IACpC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChE,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,uBAAuB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;CACnF;AAED,UAAU,4BAA4B;IACpC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC5D,wBAAwB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED;;;;GAIG;AACH,QAAA,MAAM,sBAAsB,GAAI,0DAI7B,4BAA4B,KAAG,4BA6HjC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -7,7 +7,7 @@ const validTabStates = new Set(['closed', 'unavailable', 'ready']);
|
|
|
7
7
|
* (confirmation.request, tab.stateChanged, tool.invocationStart, tool.invocationEnd)
|
|
8
8
|
* and a function to clear a confirmation's auto-removal timeout.
|
|
9
9
|
*/
|
|
10
|
-
const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirmations,
|
|
10
|
+
const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirmations, }) => {
|
|
11
11
|
const timeoutIds = useRef(new Map());
|
|
12
12
|
const invocationTimeoutIds = useRef(new Map());
|
|
13
13
|
useEffect(() => {
|
|
@@ -35,6 +35,9 @@ const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirma
|
|
|
35
35
|
if (data.method === 'confirmation.request' && data.params) {
|
|
36
36
|
const params = data.params;
|
|
37
37
|
if (typeof params.id === 'string' && typeof params.tool === 'string' && typeof params.timeoutMs === 'number') {
|
|
38
|
+
// Use the background's receivedAt when hydrating from bg:getFullState so
|
|
39
|
+
// the countdown bar reflects true elapsed time since the request arrived.
|
|
40
|
+
const receivedAt = typeof params.receivedAt === 'number' && params.receivedAt > 0 ? params.receivedAt : Date.now();
|
|
38
41
|
const confirmation = {
|
|
39
42
|
id: params.id,
|
|
40
43
|
tool: params.tool,
|
|
@@ -44,10 +47,17 @@ const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirma
|
|
|
44
47
|
: undefined,
|
|
45
48
|
paramsPreview: typeof params.paramsPreview === 'string' ? params.paramsPreview : '',
|
|
46
49
|
timeoutMs: params.timeoutMs,
|
|
47
|
-
receivedAt
|
|
50
|
+
receivedAt,
|
|
48
51
|
};
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
// Skip duplicate confirmations (e.g., real-time sp:serverMessage
|
|
53
|
+
// followed by bg:getFullState hydration for the same id).
|
|
54
|
+
if (timeoutIds.current.has(confirmation.id))
|
|
55
|
+
return;
|
|
56
|
+
setPendingConfirmations(prev => (prev.some(c => c.id === confirmation.id) ? prev : [...prev, confirmation]));
|
|
57
|
+
// Compute remaining time from the original receivedAt so hydrated
|
|
58
|
+
// confirmations expire at the correct wall-clock time.
|
|
59
|
+
const elapsed = Date.now() - receivedAt;
|
|
60
|
+
const removeDelay = Math.max(0, params.timeoutMs + 1000 - elapsed);
|
|
51
61
|
const tid = setTimeout(() => {
|
|
52
62
|
timeoutIds.current.delete(confirmation.id);
|
|
53
63
|
setPendingConfirmations(prev => prev.filter(c => c.id !== confirmation.id));
|
|
@@ -64,13 +74,7 @@ const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirma
|
|
|
64
74
|
VALID_PLUGIN_NAME.test(params.plugin)) {
|
|
65
75
|
const pluginName = params.plugin;
|
|
66
76
|
const newState = params.state;
|
|
67
|
-
setPlugins(prev => {
|
|
68
|
-
if (prev.length === 0) {
|
|
69
|
-
pendingTabStates.current.set(pluginName, newState);
|
|
70
|
-
return prev;
|
|
71
|
-
}
|
|
72
|
-
return prev.map(p => (p.name === pluginName ? { ...p, tabState: newState } : p));
|
|
73
|
-
});
|
|
77
|
+
setPlugins(prev => prev.map(p => (p.name === pluginName ? { ...p, tabState: newState } : p)));
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
if (data.method === 'tool.invocationStart' && data.params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useServerNotifications.js","sourceRoot":"","sources":["../../../src/side-panel/hooks/useServerNotifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAK1C,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useServerNotifications.js","sourceRoot":"","sources":["../../../src/side-panel/hooks/useServerNotifications.ts"],"names":[],"mappings":"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"}
|