@hanzo/ui 8.27.12 → 8.27.14
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/LICENSE-APACHE +205 -0
- package/LICENSE-MIT +21 -0
- package/LICENSE.md +5 -18
- package/NOTICE +6 -0
- package/README.md +2 -2
- package/dist/agents/ChannelMembers.cjs +10 -2
- package/dist/agents/ChannelMembers.d.ts +3 -2
- package/dist/agents/ChannelMembers.d.ts.map +1 -1
- package/dist/agents/ChannelMembers.js +10 -2
- package/dist/agents/ChannelMembers.js.map +1 -1
- package/dist/agents/ChannelNotes.cjs +10 -2
- package/dist/agents/ChannelNotes.d.ts +1 -0
- package/dist/agents/ChannelNotes.d.ts.map +1 -1
- package/dist/agents/ChannelNotes.js +10 -2
- package/dist/agents/ChannelNotes.js.map +1 -1
- package/dist/agents/DiffViewer.cjs +19 -7
- package/dist/agents/DiffViewer.d.ts +1 -0
- package/dist/agents/DiffViewer.d.ts.map +1 -1
- package/dist/agents/DiffViewer.js +19 -7
- package/dist/agents/DiffViewer.js.map +1 -1
- package/dist/agents/DirectoryModal.cjs +97 -0
- package/dist/agents/DirectoryModal.d.ts +29 -0
- package/dist/agents/DirectoryModal.d.ts.map +1 -0
- package/dist/agents/DirectoryModal.js +94 -0
- package/dist/agents/DirectoryModal.js.map +1 -0
- package/dist/agents/DriveViewer.cjs +78 -0
- package/dist/agents/DriveViewer.d.ts +30 -0
- package/dist/agents/DriveViewer.d.ts.map +1 -0
- package/dist/agents/DriveViewer.js +42 -0
- package/dist/agents/DriveViewer.js.map +1 -0
- package/dist/agents/LiveVoiceCall.cjs +55 -39
- package/dist/agents/LiveVoiceCall.d.ts +7 -7
- package/dist/agents/LiveVoiceCall.d.ts.map +1 -1
- package/dist/agents/LiveVoiceCall.js +56 -40
- package/dist/agents/LiveVoiceCall.js.map +1 -1
- package/dist/agents/MCPHub.cjs +19 -8
- package/dist/agents/MCPHub.d.ts +5 -10
- package/dist/agents/MCPHub.d.ts.map +1 -1
- package/dist/agents/MCPHub.js +19 -8
- package/dist/agents/MCPHub.js.map +1 -1
- package/dist/agents/ShortcutsSheet.cjs +34 -14
- package/dist/agents/ShortcutsSheet.d.ts +7 -6
- package/dist/agents/ShortcutsSheet.d.ts.map +1 -1
- package/dist/agents/ShortcutsSheet.js +34 -14
- package/dist/agents/ShortcutsSheet.js.map +1 -1
- package/dist/agents/SwarmBar.cjs +34 -13
- package/dist/agents/SwarmBar.d.ts +7 -8
- package/dist/agents/SwarmBar.d.ts.map +1 -1
- package/dist/agents/SwarmBar.js +34 -13
- package/dist/agents/SwarmBar.js.map +1 -1
- package/dist/agents/TerminalViewer.cjs +71 -0
- package/dist/agents/TerminalViewer.d.ts +20 -0
- package/dist/agents/TerminalViewer.d.ts.map +1 -0
- package/dist/agents/TerminalViewer.js +68 -0
- package/dist/agents/TerminalViewer.js.map +1 -0
- package/dist/agents/ThemeCustomizer.cjs +29 -6
- package/dist/agents/ThemeCustomizer.d.ts +1 -0
- package/dist/agents/ThemeCustomizer.d.ts.map +1 -1
- package/dist/agents/ThemeCustomizer.js +29 -6
- package/dist/agents/ThemeCustomizer.js.map +1 -1
- package/dist/agents/index.cjs +7 -1
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +3 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/backends/gui/3d-card.d.ts +2 -2
- package/dist/backends/gui/button.d.ts +8 -0
- package/dist/backends/gui/button.d.ts.map +1 -1
- package/dist/backends/gui/button.js.map +1 -1
- package/dist/backends/gui/calendar.js.map +1 -1
- package/dist/backends/gui/card.d.ts +2 -2
- package/dist/backends/gui/context-menu.d.ts +3 -3
- package/dist/backends/gui/context-menu.d.ts.map +1 -1
- package/dist/backends/gui/context-menu.js.map +1 -1
- package/dist/backends/gui/dropdown-menu.cjs +2 -2
- package/dist/backends/gui/dropdown-menu.d.ts +3 -3
- package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
- package/dist/backends/gui/dropdown-menu.js +2 -2
- package/dist/backends/gui/dropdown-menu.js.map +1 -1
- package/dist/backends/gui/empty.d.ts +2 -2
- package/dist/backends/gui/glimpse.cjs +2 -6
- package/dist/backends/gui/glimpse.d.ts +8 -1
- package/dist/backends/gui/glimpse.d.ts.map +1 -1
- package/dist/backends/gui/glimpse.js +2 -6
- package/dist/backends/gui/glimpse.js.map +1 -1
- package/dist/backends/gui/item.d.ts +1 -1
- package/dist/backends/gui/menubar.d.ts +3 -3
- package/dist/backends/gui/order-entry.cjs +1 -10
- package/dist/backends/gui/order-entry.d.ts.map +1 -1
- package/dist/backends/gui/order-entry.js +1 -10
- package/dist/backends/gui/order-entry.js.map +1 -1
- package/dist/backends/gui/orders-history.cjs +1 -1
- package/dist/backends/gui/orders-history.js +1 -1
- package/dist/backends/gui/orders-history.js.map +1 -1
- package/dist/backends/gui/select.cjs +1 -1
- package/dist/backends/gui/select.d.ts +1 -1
- package/dist/backends/gui/select.d.ts.map +1 -1
- package/dist/backends/gui/select.js +1 -1
- package/dist/backends/gui/select.js.map +1 -1
- package/dist/backends/gui/toaster.d.ts +1 -1
- package/dist/backends/gui/toaster.d.ts.map +1 -1
- package/dist/backends/gui/toggle-group.cjs +3 -3
- package/dist/backends/gui/toggle-group.d.ts +1 -1
- package/dist/backends/gui/toggle-group.d.ts.map +1 -1
- package/dist/backends/gui/toggle-group.js +3 -3
- package/dist/backends/gui/toggle-group.js.map +1 -1
- package/dist/gallery.html +58 -3
- package/dist/styles/motion.css +57 -2
- package/dist/styles.css +57 -2
- package/package.json +21 -19
|
@@ -3,60 +3,76 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LiveVoiceCall = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
-
const LiveVoiceCall = ({
|
|
6
|
+
const LiveVoiceCall = ({ title = 'AI Voice Call', status = 'connected', onEndCall, onToggleMute, isMuted = false, transcripts = [], className = '', style, }) => {
|
|
7
7
|
const canvasRef = (0, react_1.useRef)(null);
|
|
8
|
-
const
|
|
8
|
+
const [muted, setMuted] = (0, react_1.useState)(isMuted);
|
|
9
|
+
// Animated visualizer
|
|
9
10
|
(0, react_1.useEffect)(() => {
|
|
10
|
-
if (!active)
|
|
11
|
-
return;
|
|
12
11
|
const canvas = canvasRef.current;
|
|
13
12
|
if (!canvas)
|
|
14
13
|
return;
|
|
15
14
|
const ctx = canvas.getContext('2d');
|
|
16
15
|
if (!ctx)
|
|
17
16
|
return;
|
|
17
|
+
let animationFrameId;
|
|
18
18
|
let phase = 0;
|
|
19
19
|
const render = () => {
|
|
20
20
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
?
|
|
29
|
-
:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
else {
|
|
37
|
-
gradient.addColorStop(0, '#818cf8');
|
|
38
|
-
gradient.addColorStop(0.5, '#c084fc');
|
|
39
|
-
gradient.addColorStop(1, '#38bdf8');
|
|
40
|
-
}
|
|
41
|
-
ctx.fillStyle = gradient;
|
|
21
|
+
const centerY = canvas.height / 2;
|
|
22
|
+
const numBars = 32;
|
|
23
|
+
const barWidth = 4;
|
|
24
|
+
const spacing = (canvas.width - numBars * barWidth) / (numBars - 1);
|
|
25
|
+
for (let i = 0; i < numBars; i++) {
|
|
26
|
+
const x = i * (barWidth + spacing);
|
|
27
|
+
const height = status === 'speaking' || status === 'listening'
|
|
28
|
+
? Math.sin(phase + i * 0.25) * 20 + 24
|
|
29
|
+
: 6;
|
|
30
|
+
ctx.fillStyle =
|
|
31
|
+
status === 'speaking'
|
|
32
|
+
? '#34d399'
|
|
33
|
+
: status === 'listening'
|
|
34
|
+
? '#818cf8'
|
|
35
|
+
: '#737373';
|
|
42
36
|
ctx.beginPath();
|
|
43
|
-
ctx.roundRect(
|
|
37
|
+
ctx.roundRect(x, centerY - height / 2, barWidth, height, 2);
|
|
44
38
|
ctx.fill();
|
|
45
39
|
}
|
|
46
|
-
phase +=
|
|
47
|
-
|
|
40
|
+
phase += 0.08;
|
|
41
|
+
animationFrameId = requestAnimationFrame(render);
|
|
48
42
|
};
|
|
49
43
|
render();
|
|
50
|
-
return () =>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
44
|
+
return () => cancelAnimationFrame(animationFrameId);
|
|
45
|
+
}, [status]);
|
|
46
|
+
const handleMute = () => {
|
|
47
|
+
const next = !muted;
|
|
48
|
+
setMuted(next);
|
|
49
|
+
onToggleMute?.(next);
|
|
50
|
+
};
|
|
51
|
+
const statusText = status === 'speaking'
|
|
52
|
+
? 'Agent is speaking...'
|
|
53
|
+
: status === 'listening'
|
|
54
|
+
? 'Listening to you...'
|
|
55
|
+
: status === 'connecting'
|
|
56
|
+
? 'Connecting stream...'
|
|
57
|
+
: 'Call active';
|
|
58
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
59
|
+
display: 'flex',
|
|
60
|
+
flexDirection: 'column',
|
|
61
|
+
gap: 16,
|
|
62
|
+
padding: 20,
|
|
63
|
+
backgroundColor: '#0c0c0e',
|
|
64
|
+
border: '1px solid rgba(255, 255, 255, 0.1)',
|
|
65
|
+
borderRadius: 16,
|
|
66
|
+
...style,
|
|
67
|
+
}, "aria-label": "Live Voice Call", children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [(0, jsx_runtime_1.jsx)("span", { style: { width: 10, height: 10, borderRadius: '50%', backgroundColor: '#34d399' } }), (0, jsx_runtime_1.jsx)("h3", { style: { fontSize: 14, fontWeight: 600, color: '#ffffff', margin: 0 }, children: title })] }), (0, jsx_runtime_1.jsx)("span", { style: { fontSize: 12, color: '#a3a3a3', fontFamily: 'monospace' }, children: statusText })] }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', padding: 16, backgroundColor: 'rgba(10, 10, 10, 0.6)', borderRadius: 12, border: '1px solid rgba(255, 255, 255, 0.05)' }, children: (0, jsx_runtime_1.jsx)("canvas", { ref: canvasRef, width: 380, height: 70, style: { width: '100%', height: 70 } }) }), transcripts.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: 8, maxHeight: 160, overflowY: 'auto', paddingRight: 4 }, children: transcripts.map((t, idx) => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 2, fontSize: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', fontSize: 11, color: '#737373' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { fontWeight: 600, color: '#d4d4d4' }, children: t.speaker }), (0, jsx_runtime_1.jsx)("span", { children: t.time })] }), (0, jsx_runtime_1.jsx)("p", { style: { color: '#e5e5e5', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: 8, borderRadius: 8, margin: 0 }, children: t.text })] }, idx))) })), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', gap: 12, paddingTop: 8 }, children: [(0, jsx_runtime_1.jsx)("button", { onClick: handleMute, style: {
|
|
68
|
+
padding: '8px 16px',
|
|
69
|
+
fontSize: 12,
|
|
70
|
+
fontWeight: 500,
|
|
71
|
+
borderRadius: 12,
|
|
72
|
+
border: '1px solid rgba(255, 255, 255, 0.1)',
|
|
73
|
+
cursor: 'pointer',
|
|
74
|
+
backgroundColor: muted ? 'rgba(244, 63, 94, 0.2)' : 'rgba(255, 255, 255, 0.05)',
|
|
75
|
+
color: muted ? '#fda4af' : '#d4d4d4',
|
|
76
|
+
}, children: muted ? 'Unmute Mic' : 'Mute Mic' }), onEndCall && ((0, jsx_runtime_1.jsx)("button", { onClick: onEndCall, style: { display: 'inline-flex', alignItems: 'center', gap: 8, padding: '8px 16px', backgroundColor: '#e11d48', color: '#ffffff', fontSize: 12, fontWeight: 600, borderRadius: 12, border: 'none', cursor: 'pointer' }, children: "End Call" }))] })] }));
|
|
61
77
|
};
|
|
62
78
|
exports.LiveVoiceCall = LiveVoiceCall;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface LiveVoiceCallProps {
|
|
3
|
-
active: boolean;
|
|
4
|
-
muted: boolean;
|
|
5
3
|
title?: string;
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
status?: 'connecting' | 'connected' | 'speaking' | 'listening' | 'ended';
|
|
5
|
+
onEndCall?: () => void;
|
|
6
|
+
onToggleMute?: (muted: boolean) => void;
|
|
7
|
+
isMuted?: boolean;
|
|
8
|
+
transcripts?: Array<{
|
|
8
9
|
speaker: string;
|
|
9
10
|
text: string;
|
|
10
11
|
time: string;
|
|
11
|
-
}
|
|
12
|
-
onToggleMute: () => void;
|
|
13
|
-
onEndCall: () => void;
|
|
12
|
+
}>;
|
|
14
13
|
className?: string;
|
|
14
|
+
style?: React.CSSProperties;
|
|
15
15
|
}
|
|
16
16
|
export declare const LiveVoiceCall: React.FC<LiveVoiceCallProps>;
|
|
17
17
|
//# sourceMappingURL=LiveVoiceCall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveVoiceCall.d.ts","sourceRoot":"","sources":["../../src/agents/LiveVoiceCall.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LiveVoiceCall.d.ts","sourceRoot":"","sources":["../../src/agents/LiveVoiceCall.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAE1D,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAA;IACxE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA+ItD,CAAA"}
|
|
@@ -1,59 +1,75 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useRef } from 'react';
|
|
3
|
-
export const LiveVoiceCall = ({
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
export const LiveVoiceCall = ({ title = 'AI Voice Call', status = 'connected', onEndCall, onToggleMute, isMuted = false, transcripts = [], className = '', style, }) => {
|
|
4
4
|
const canvasRef = useRef(null);
|
|
5
|
-
const
|
|
5
|
+
const [muted, setMuted] = useState(isMuted);
|
|
6
|
+
// Animated visualizer
|
|
6
7
|
useEffect(() => {
|
|
7
|
-
if (!active)
|
|
8
|
-
return;
|
|
9
8
|
const canvas = canvasRef.current;
|
|
10
9
|
if (!canvas)
|
|
11
10
|
return;
|
|
12
11
|
const ctx = canvas.getContext('2d');
|
|
13
12
|
if (!ctx)
|
|
14
13
|
return;
|
|
14
|
+
let animationFrameId;
|
|
15
15
|
let phase = 0;
|
|
16
16
|
const render = () => {
|
|
17
17
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
?
|
|
26
|
-
:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
else {
|
|
34
|
-
gradient.addColorStop(0, '#818cf8');
|
|
35
|
-
gradient.addColorStop(0.5, '#c084fc');
|
|
36
|
-
gradient.addColorStop(1, '#38bdf8');
|
|
37
|
-
}
|
|
38
|
-
ctx.fillStyle = gradient;
|
|
18
|
+
const centerY = canvas.height / 2;
|
|
19
|
+
const numBars = 32;
|
|
20
|
+
const barWidth = 4;
|
|
21
|
+
const spacing = (canvas.width - numBars * barWidth) / (numBars - 1);
|
|
22
|
+
for (let i = 0; i < numBars; i++) {
|
|
23
|
+
const x = i * (barWidth + spacing);
|
|
24
|
+
const height = status === 'speaking' || status === 'listening'
|
|
25
|
+
? Math.sin(phase + i * 0.25) * 20 + 24
|
|
26
|
+
: 6;
|
|
27
|
+
ctx.fillStyle =
|
|
28
|
+
status === 'speaking'
|
|
29
|
+
? '#34d399'
|
|
30
|
+
: status === 'listening'
|
|
31
|
+
? '#818cf8'
|
|
32
|
+
: '#737373';
|
|
39
33
|
ctx.beginPath();
|
|
40
|
-
ctx.roundRect(
|
|
34
|
+
ctx.roundRect(x, centerY - height / 2, barWidth, height, 2);
|
|
41
35
|
ctx.fill();
|
|
42
36
|
}
|
|
43
|
-
phase +=
|
|
44
|
-
|
|
37
|
+
phase += 0.08;
|
|
38
|
+
animationFrameId = requestAnimationFrame(render);
|
|
45
39
|
};
|
|
46
40
|
render();
|
|
47
|
-
return () =>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
41
|
+
return () => cancelAnimationFrame(animationFrameId);
|
|
42
|
+
}, [status]);
|
|
43
|
+
const handleMute = () => {
|
|
44
|
+
const next = !muted;
|
|
45
|
+
setMuted(next);
|
|
46
|
+
onToggleMute?.(next);
|
|
47
|
+
};
|
|
48
|
+
const statusText = status === 'speaking'
|
|
49
|
+
? 'Agent is speaking...'
|
|
50
|
+
: status === 'listening'
|
|
51
|
+
? 'Listening to you...'
|
|
52
|
+
: status === 'connecting'
|
|
53
|
+
? 'Connecting stream...'
|
|
54
|
+
: 'Call active';
|
|
55
|
+
return (_jsxs("div", { style: {
|
|
56
|
+
display: 'flex',
|
|
57
|
+
flexDirection: 'column',
|
|
58
|
+
gap: 16,
|
|
59
|
+
padding: 20,
|
|
60
|
+
backgroundColor: '#0c0c0e',
|
|
61
|
+
border: '1px solid rgba(255, 255, 255, 0.1)',
|
|
62
|
+
borderRadius: 16,
|
|
63
|
+
...style,
|
|
64
|
+
}, "aria-label": "Live Voice Call", children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { style: { width: 10, height: 10, borderRadius: '50%', backgroundColor: '#34d399' } }), _jsx("h3", { style: { fontSize: 14, fontWeight: 600, color: '#ffffff', margin: 0 }, children: title })] }), _jsx("span", { style: { fontSize: 12, color: '#a3a3a3', fontFamily: 'monospace' }, children: statusText })] }), _jsx("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', padding: 16, backgroundColor: 'rgba(10, 10, 10, 0.6)', borderRadius: 12, border: '1px solid rgba(255, 255, 255, 0.05)' }, children: _jsx("canvas", { ref: canvasRef, width: 380, height: 70, style: { width: '100%', height: 70 } }) }), transcripts.length > 0 && (_jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 8, maxHeight: 160, overflowY: 'auto', paddingRight: 4 }, children: transcripts.map((t, idx) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 2, fontSize: 12 }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', fontSize: 11, color: '#737373' }, children: [_jsx("span", { style: { fontWeight: 600, color: '#d4d4d4' }, children: t.speaker }), _jsx("span", { children: t.time })] }), _jsx("p", { style: { color: '#e5e5e5', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: 8, borderRadius: 8, margin: 0 }, children: t.text })] }, idx))) })), _jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', gap: 12, paddingTop: 8 }, children: [_jsx("button", { onClick: handleMute, style: {
|
|
65
|
+
padding: '8px 16px',
|
|
66
|
+
fontSize: 12,
|
|
67
|
+
fontWeight: 500,
|
|
68
|
+
borderRadius: 12,
|
|
69
|
+
border: '1px solid rgba(255, 255, 255, 0.1)',
|
|
70
|
+
cursor: 'pointer',
|
|
71
|
+
backgroundColor: muted ? 'rgba(244, 63, 94, 0.2)' : 'rgba(255, 255, 255, 0.05)',
|
|
72
|
+
color: muted ? '#fda4af' : '#d4d4d4',
|
|
73
|
+
}, children: muted ? 'Unmute Mic' : 'Mute Mic' }), onEndCall && (_jsx("button", { onClick: onEndCall, style: { display: 'inline-flex', alignItems: 'center', gap: 8, padding: '8px 16px', backgroundColor: '#e11d48', color: '#ffffff', fontSize: 12, fontWeight: 600, borderRadius: 12, border: 'none', cursor: 'pointer' }, children: "End Call" }))] })] }));
|
|
58
74
|
};
|
|
59
75
|
//# sourceMappingURL=LiveVoiceCall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveVoiceCall.js","sourceRoot":"","sources":["../../src/agents/LiveVoiceCall.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"LiveVoiceCall.js","sourceRoot":"","sources":["../../src/agents/LiveVoiceCall.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAa1D,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,KAAK,GAAG,eAAe,EACvB,MAAM,GAAG,WAAW,EACpB,SAAS,EACT,YAAY,EACZ,OAAO,GAAG,KAAK,EACf,WAAW,GAAG,EAAE,EAChB,SAAS,GAAG,EAAE,EACd,KAAK,GACN,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE3C,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAA;QAChC,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,GAAG;YAAE,OAAM;QAEhB,IAAI,gBAAwB,CAAA;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAChD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YACjC,MAAM,OAAO,GAAG,EAAE,CAAA;YAClB,MAAM,QAAQ,GAAG,CAAC,CAAA;YAClB,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;YAEnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAA;gBAClC,MAAM,MAAM,GACV,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,WAAW;oBAC7C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;oBACtC,CAAC,CAAC,CAAC,CAAA;gBAEP,GAAG,CAAC,SAAS;oBACX,MAAM,KAAK,UAAU;wBACnB,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,MAAM,KAAK,WAAW;4BACxB,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,SAAS,CAAA;gBAEf,GAAG,CAAC,SAAS,EAAE,CAAA;gBACf,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;gBAC3D,GAAG,CAAC,IAAI,EAAE,CAAA;YACZ,CAAC;YAED,KAAK,IAAI,IAAI,CAAA;YACb,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAClD,CAAC,CAAA;QAED,MAAM,EAAE,CAAA;QACR,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;IACrD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,IAAI,GAAG,CAAC,KAAK,CAAA;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,YAAY,EAAE,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,UAAU,GACd,MAAM,KAAK,UAAU;QACnB,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,MAAM,KAAK,WAAW;YACxB,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,MAAM,KAAK,YAAY;gBACzB,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,aAAa,CAAA;IAEnB,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,SAAS;YAC1B,MAAM,EAAE,oCAAoC;YAC5C,YAAY,EAAE,EAAE;YAChB,GAAG,KAAK;SACT,gBACU,iBAAiB,aAE5B,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,aACpF,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC3D,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,GAAI,EAC3F,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,YAAG,KAAK,GAAM,IACnF,EACN,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAG,UAAU,GAAQ,IACzF,EAGN,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,qCAAqC,EAAE,YACrM,iBAAQ,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAI,GACpF,EAGL,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,YACjH,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,eAAe,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aACtF,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aACpH,eAAM,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAG,CAAC,CAAC,OAAO,GAAQ,EACtE,yBAAO,CAAC,CAAC,IAAI,GAAQ,IACjB,EACN,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,2BAA2B,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAG,CAAC,CAAC,IAAI,GAAK,KAL1H,GAAG,CAMP,CACP,CAAC,GACE,CACP,EAGD,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aACrG,iBACE,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE;4BACL,OAAO,EAAE,UAAU;4BACnB,QAAQ,EAAE,EAAE;4BACZ,UAAU,EAAE,GAAG;4BACf,YAAY,EAAE,EAAE;4BAChB,MAAM,EAAE,oCAAoC;4BAC5C,MAAM,EAAE,SAAS;4BACjB,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,2BAA2B;4BAC/E,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;yBACrC,YAEA,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,GAC3B,EAER,SAAS,IAAI,CACZ,iBACE,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,yBAG/M,CACV,IACG,IACF,CACP,CAAA;AACH,CAAC,CAAA"}
|
package/dist/agents/MCPHub.cjs
CHANGED
|
@@ -2,13 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MCPHub = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const MCPHub = ({ servers,
|
|
6
|
-
return ((0, jsx_runtime_1.jsxs)("div", {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
const MCPHub = ({ servers, onConnectServer, onDisconnectServer, onOpenSettings, className = '', style, }) => {
|
|
6
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
7
|
+
display: 'flex',
|
|
8
|
+
flexDirection: 'column',
|
|
9
|
+
gap: 16,
|
|
10
|
+
padding: 20,
|
|
11
|
+
backgroundColor: '#0c0c0e',
|
|
12
|
+
border: '1px solid rgba(255, 255, 255, 0.1)',
|
|
13
|
+
borderRadius: 16,
|
|
14
|
+
...style,
|
|
15
|
+
}, "aria-label": "MCP Server Hub", children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [(0, jsx_runtime_1.jsx)("span", { style: { fontSize: 18 }, children: "\uD83D\uDD0C" }), (0, jsx_runtime_1.jsx)("h3", { style: { fontSize: 14, fontWeight: 600, color: '#ffffff', margin: 0 }, children: "Model Context Protocol (MCP)" }), (0, jsx_runtime_1.jsxs)("span", { style: { padding: '2px 6px', borderRadius: 9999, fontSize: 10, backgroundColor: 'rgba(255, 255, 255, 0.1)', color: '#d4d4d4', fontFamily: 'monospace' }, children: [servers.length, " Active"] })] }), onOpenSettings && ((0, jsx_runtime_1.jsx)("button", { onClick: onOpenSettings, style: { padding: '4px 10px', fontSize: 12, fontWeight: 500, color: '#a5b4fc', backgroundColor: 'rgba(99, 102, 241, 0.1)', border: '1px solid rgba(99, 102, 241, 0.3)', borderRadius: 8, cursor: 'pointer' }, children: "Manage Servers" }))] }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(280px, 1fr))', gap: 12 }, children: servers.map((server) => {
|
|
16
|
+
const isConnected = server.status === 'connected';
|
|
17
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: { padding: 12, backgroundColor: 'rgba(255, 255, 255, 0.05)', border: '1px solid rgba(255, 255, 255, 0.1)', borderRadius: 12, display: 'flex', flexDirection: 'column', gap: 10 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [(0, jsx_runtime_1.jsx)("span", { style: {
|
|
18
|
+
width: 8,
|
|
19
|
+
height: 8,
|
|
20
|
+
borderRadius: '50%',
|
|
21
|
+
backgroundColor: isConnected ? '#34d399' : '#f87171',
|
|
22
|
+
} }), (0, jsx_runtime_1.jsx)("span", { style: { fontSize: 12, fontWeight: 600, color: '#ffffff' }, children: server.name }), (0, jsx_runtime_1.jsx)("span", { style: { fontSize: 10, color: '#a3a3a3', fontFamily: 'monospace', textTransform: 'uppercase', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: '2px 4px', borderRadius: 4 }, children: server.transport })] }), (0, jsx_runtime_1.jsx)("button", { onClick: () => (isConnected ? onDisconnectServer?.(server.id) : onConnectServer?.(server.id)), style: { fontSize: 11, color: '#a3a3a3', background: 'none', border: 'none', cursor: 'pointer' }, children: isConnected ? 'Disconnect' : 'Connect' })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexWrap: 'wrap', gap: 6 }, children: [(0, jsx_runtime_1.jsxs)("span", { style: { fontSize: 11, color: '#a3a3a3', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: '2px 6px', borderRadius: 4 }, children: ["\uD83D\uDEE0\uFE0F ", server.toolsCount, " tools"] }), (0, jsx_runtime_1.jsxs)("span", { style: { fontSize: 11, color: '#a3a3a3', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: '2px 6px', borderRadius: 4 }, children: ["\uD83D\uDCE6 ", server.resourcesCount, " resources"] })] })] }, server.id));
|
|
23
|
+
}) })] }));
|
|
13
24
|
};
|
|
14
25
|
exports.MCPHub = MCPHub;
|
package/dist/agents/MCPHub.d.ts
CHANGED
|
@@ -2,23 +2,18 @@ import React from 'react';
|
|
|
2
2
|
export interface MCPServerInfo {
|
|
3
3
|
id: string;
|
|
4
4
|
name: string;
|
|
5
|
-
status: 'connected' | 'connecting' | 'disconnected' | 'error';
|
|
6
5
|
transport: 'sse' | 'stdio' | 'websocket';
|
|
7
|
-
|
|
6
|
+
status: 'connected' | 'disconnected' | 'error';
|
|
8
7
|
toolsCount: number;
|
|
9
8
|
resourcesCount: number;
|
|
10
|
-
tools: {
|
|
11
|
-
name: string;
|
|
12
|
-
description: string;
|
|
13
|
-
enabled: boolean;
|
|
14
|
-
}[];
|
|
15
9
|
}
|
|
16
10
|
export interface MCPHubProps {
|
|
17
11
|
servers: MCPServerInfo[];
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
onConnectServer?: (serverId: string) => void;
|
|
13
|
+
onDisconnectServer?: (serverId: string) => void;
|
|
14
|
+
onOpenSettings?: () => void;
|
|
21
15
|
className?: string;
|
|
16
|
+
style?: React.CSSProperties;
|
|
22
17
|
}
|
|
23
18
|
export declare const MCPHub: React.FC<MCPHubProps>;
|
|
24
19
|
//# sourceMappingURL=MCPHub.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPHub.d.ts","sourceRoot":"","sources":["../../src/agents/MCPHub.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,
|
|
1
|
+
{"version":3,"file":"MCPHub.d.ts","sourceRoot":"","sources":["../../src/agents/MCPHub.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,KAAK,GAAG,OAAO,GAAG,WAAW,CAAA;IACxC,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,CAAA;IAC9C,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAuFxC,CAAA"}
|
package/dist/agents/MCPHub.js
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export const MCPHub = ({ servers,
|
|
3
|
-
return (_jsxs("div", {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
export const MCPHub = ({ servers, onConnectServer, onDisconnectServer, onOpenSettings, className = '', style, }) => {
|
|
3
|
+
return (_jsxs("div", { style: {
|
|
4
|
+
display: 'flex',
|
|
5
|
+
flexDirection: 'column',
|
|
6
|
+
gap: 16,
|
|
7
|
+
padding: 20,
|
|
8
|
+
backgroundColor: '#0c0c0e',
|
|
9
|
+
border: '1px solid rgba(255, 255, 255, 0.1)',
|
|
10
|
+
borderRadius: 16,
|
|
11
|
+
...style,
|
|
12
|
+
}, "aria-label": "MCP Server Hub", children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { style: { fontSize: 18 }, children: "\uD83D\uDD0C" }), _jsx("h3", { style: { fontSize: 14, fontWeight: 600, color: '#ffffff', margin: 0 }, children: "Model Context Protocol (MCP)" }), _jsxs("span", { style: { padding: '2px 6px', borderRadius: 9999, fontSize: 10, backgroundColor: 'rgba(255, 255, 255, 0.1)', color: '#d4d4d4', fontFamily: 'monospace' }, children: [servers.length, " Active"] })] }), onOpenSettings && (_jsx("button", { onClick: onOpenSettings, style: { padding: '4px 10px', fontSize: 12, fontWeight: 500, color: '#a5b4fc', backgroundColor: 'rgba(99, 102, 241, 0.1)', border: '1px solid rgba(99, 102, 241, 0.3)', borderRadius: 8, cursor: 'pointer' }, children: "Manage Servers" }))] }), _jsx("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(280px, 1fr))', gap: 12 }, children: servers.map((server) => {
|
|
13
|
+
const isConnected = server.status === 'connected';
|
|
14
|
+
return (_jsxs("div", { style: { padding: 12, backgroundColor: 'rgba(255, 255, 255, 0.05)', border: '1px solid rgba(255, 255, 255, 0.1)', borderRadius: 12, display: 'flex', flexDirection: 'column', gap: 10 }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { style: {
|
|
15
|
+
width: 8,
|
|
16
|
+
height: 8,
|
|
17
|
+
borderRadius: '50%',
|
|
18
|
+
backgroundColor: isConnected ? '#34d399' : '#f87171',
|
|
19
|
+
} }), _jsx("span", { style: { fontSize: 12, fontWeight: 600, color: '#ffffff' }, children: server.name }), _jsx("span", { style: { fontSize: 10, color: '#a3a3a3', fontFamily: 'monospace', textTransform: 'uppercase', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: '2px 4px', borderRadius: 4 }, children: server.transport })] }), _jsx("button", { onClick: () => (isConnected ? onDisconnectServer?.(server.id) : onConnectServer?.(server.id)), style: { fontSize: 11, color: '#a3a3a3', background: 'none', border: 'none', cursor: 'pointer' }, children: isConnected ? 'Disconnect' : 'Connect' })] }), _jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', gap: 6 }, children: [_jsxs("span", { style: { fontSize: 11, color: '#a3a3a3', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: '2px 6px', borderRadius: 4 }, children: ["\uD83D\uDEE0\uFE0F ", server.toolsCount, " tools"] }), _jsxs("span", { style: { fontSize: 11, color: '#a3a3a3', backgroundColor: 'rgba(255, 255, 255, 0.05)', padding: '2px 6px', borderRadius: 4 }, children: ["\uD83D\uDCE6 ", server.resourcesCount, " resources"] })] })] }, server.id));
|
|
20
|
+
}) })] }));
|
|
10
21
|
};
|
|
11
22
|
//# sourceMappingURL=MCPHub.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPHub.js","sourceRoot":"","sources":["../../src/agents/MCPHub.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"MCPHub.js","sourceRoot":"","sources":["../../src/agents/MCPHub.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,22 +3,42 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ShortcutsSheet = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const DEFAULT_SHORTCUTS = [
|
|
6
|
-
{
|
|
7
|
-
{
|
|
8
|
-
{
|
|
9
|
-
{
|
|
10
|
-
{
|
|
11
|
-
{
|
|
12
|
-
{
|
|
13
|
-
{
|
|
6
|
+
{ key: '⌘ + K', description: 'Open Command Palette & Global Search', category: 'navigation' },
|
|
7
|
+
{ key: '⌘ + /', description: 'Open Keyboard Shortcuts Sheet', category: 'navigation' },
|
|
8
|
+
{ key: '⌘ + .', description: 'Toggle Live AI Voice Call', category: 'actions' },
|
|
9
|
+
{ key: '⌘ + J', description: 'Toggle Artifacts Inspector & Code Diff', category: 'workspace' },
|
|
10
|
+
{ key: '⌘ + I', description: 'Toggle Intelligence Dock (Channels & Roster)', category: 'workspace' },
|
|
11
|
+
{ key: '⌘ + B', description: 'Toggle Left Channels & Conversation Rail', category: 'workspace' },
|
|
12
|
+
{ key: '⌘ + N', description: 'Create New Conversation or Channel', category: 'actions' },
|
|
13
|
+
{ key: 'Esc', description: 'Close Active Modal / Clear Selection', category: 'actions' },
|
|
14
14
|
];
|
|
15
|
-
const ShortcutsSheet = ({
|
|
16
|
-
if (!
|
|
15
|
+
const ShortcutsSheet = ({ shortcuts = DEFAULT_SHORTCUTS, onClose, open = true, className = '', style, }) => {
|
|
16
|
+
if (!open)
|
|
17
17
|
return null;
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const categories = Array.from(new Set(shortcuts.map((s) => s.category)));
|
|
19
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
20
|
+
position: 'fixed',
|
|
21
|
+
inset: 0,
|
|
22
|
+
backgroundColor: 'var(--surface-scrim, rgb(0 0 0 / .75))',
|
|
23
|
+
display: 'flex',
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
justifyContent: 'center',
|
|
26
|
+
zIndex: 100,
|
|
27
|
+
padding: 16,
|
|
28
|
+
}, onClick: onClose, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
29
|
+
display: 'flex',
|
|
30
|
+
flexDirection: 'column',
|
|
31
|
+
width: '100%',
|
|
32
|
+
maxWidth: 520,
|
|
33
|
+
backgroundColor: '#171717',
|
|
34
|
+
border: '1px solid rgba(255, 255, 255, 0.15)',
|
|
35
|
+
borderRadius: 16,
|
|
36
|
+
boxShadow: '0 20px 40px rgba(0,0,0,0.5)',
|
|
37
|
+
padding: 24,
|
|
38
|
+
gap: 16,
|
|
39
|
+
...style,
|
|
40
|
+
}, onClick: (e) => e.stopPropagation(), "aria-label": "Keyboard Shortcuts", children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', borderBottom: '1px solid rgba(255, 255, 255, 0.1)', paddingBottom: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [(0, jsx_runtime_1.jsx)("span", { style: { fontSize: 18 }, children: "\u2328\uFE0F" }), (0, jsx_runtime_1.jsx)("h2", { style: { fontSize: 14, fontWeight: 600, color: '#ffffff', margin: 0 }, children: "Keyboard Shortcuts" })] }), onClose && ((0, jsx_runtime_1.jsx)("button", { onClick: onClose, style: { color: '#a3a3a3', fontSize: 12, padding: '4px 8px', borderRadius: 4, backgroundColor: 'rgba(255, 255, 255, 0.05)', border: 'none', cursor: 'pointer' }, children: "Close (Esc)" }))] }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: 16, maxHeight: 384, overflowY: 'auto', paddingRight: 4 }, children: categories.map((cat) => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 8 }, children: [(0, jsx_runtime_1.jsx)("h3", { style: { fontSize: 11, fontWeight: 600, color: '#a3a3a3', textTransform: 'uppercase', letterSpacing: '0.05em', margin: 0 }, children: cat }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: 6 }, children: shortcuts
|
|
21
41
|
.filter((s) => s.category === cat)
|
|
22
|
-
.map((s, idx) => ((0, jsx_runtime_1.jsxs)("div", {
|
|
42
|
+
.map((s, idx) => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '4px 8px', borderRadius: 8, backgroundColor: 'rgba(255, 255, 255, 0.05)', fontSize: 12, color: '#e5e5e5' }, children: [(0, jsx_runtime_1.jsx)("span", { children: s.description }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', alignItems: 'center', gap: 4 }, children: s.key.split(' ').map((k, kIdx) => ((0, jsx_runtime_1.jsx)("kbd", { style: { padding: '2px 8px', borderRadius: 4, backgroundColor: '#262626', border: '1px solid rgba(255, 255, 255, 0.1)', fontSize: 11, fontFamily: 'monospace', color: '#d4d4d4', fontWeight: 600 }, children: k }, kIdx))) })] }, idx))) })] }, cat))) })] }) }));
|
|
23
43
|
};
|
|
24
44
|
exports.ShortcutsSheet = ShortcutsSheet;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface ShortcutItem {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
category: '
|
|
3
|
+
key: string;
|
|
4
|
+
description: string;
|
|
5
|
+
category: 'navigation' | 'actions' | 'tools' | 'workspace';
|
|
6
6
|
}
|
|
7
7
|
export interface ShortcutsSheetProps {
|
|
8
|
-
|
|
9
|
-
onClose
|
|
10
|
-
|
|
8
|
+
shortcuts?: ShortcutItem[];
|
|
9
|
+
onClose?: () => void;
|
|
10
|
+
open?: boolean;
|
|
11
11
|
className?: string;
|
|
12
|
+
style?: React.CSSProperties;
|
|
12
13
|
}
|
|
13
14
|
export declare const ShortcutsSheet: React.FC<ShortcutsSheetProps>;
|
|
14
15
|
//# sourceMappingURL=ShortcutsSheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortcutsSheet.d.ts","sourceRoot":"","sources":["../../src/agents/ShortcutsSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,YAAY;IAC3B,
|
|
1
|
+
{"version":3,"file":"ShortcutsSheet.d.ts","sourceRoot":"","sources":["../../src/agents/ShortcutsSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAaD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2FxD,CAAA"}
|