@ottocode/web-sdk 0.1.205 → 0.1.206

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 (54) hide show
  1. package/dist/components/git/GitDiffViewer.d.ts.map +1 -1
  2. package/dist/components/git/GitDiffViewer.js +21 -1
  3. package/dist/components/git/GitDiffViewer.js.map +1 -1
  4. package/dist/components/git/GitSidebar.d.ts.map +1 -1
  5. package/dist/components/git/GitSidebar.js +74 -8
  6. package/dist/components/git/GitSidebar.js.map +1 -1
  7. package/dist/components/mcp/MCPSidebar.d.ts.map +1 -1
  8. package/dist/components/mcp/MCPSidebar.js +106 -19
  9. package/dist/components/mcp/MCPSidebar.js.map +1 -1
  10. package/dist/components/messages/renderers/GenericRenderer.d.ts.map +1 -1
  11. package/dist/components/messages/renderers/GenericRenderer.js +14 -9
  12. package/dist/components/messages/renderers/GenericRenderer.js.map +1 -1
  13. package/dist/components/messages/renderers/LoadMcpToolsRenderer.d.ts +3 -0
  14. package/dist/components/messages/renderers/LoadMcpToolsRenderer.d.ts.map +1 -0
  15. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js +20 -0
  16. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js.map +1 -0
  17. package/dist/components/messages/renderers/McpToolRenderer.d.ts.map +1 -1
  18. package/dist/components/messages/renderers/McpToolRenderer.js +15 -10
  19. package/dist/components/messages/renderers/McpToolRenderer.js.map +1 -1
  20. package/dist/components/messages/renderers/index.d.ts.map +1 -1
  21. package/dist/components/messages/renderers/index.js +4 -0
  22. package/dist/components/messages/renderers/index.js.map +1 -1
  23. package/dist/components/messages/renderers/shared/ImagePreview.d.ts +10 -0
  24. package/dist/components/messages/renderers/shared/ImagePreview.d.ts.map +1 -0
  25. package/dist/components/messages/renderers/shared/ImagePreview.js +14 -0
  26. package/dist/components/messages/renderers/shared/ImagePreview.js.map +1 -0
  27. package/dist/components/messages/renderers/shared/index.d.ts +1 -0
  28. package/dist/components/messages/renderers/shared/index.d.ts.map +1 -1
  29. package/dist/components/messages/renderers/shared/index.js +1 -0
  30. package/dist/components/messages/renderers/shared/index.js.map +1 -1
  31. package/dist/components/messages/renderers/types.d.ts +4 -0
  32. package/dist/components/messages/renderers/types.d.ts.map +1 -1
  33. package/dist/hooks/useAuthStatus.d.ts.map +1 -1
  34. package/dist/hooks/useConfig.d.ts.map +1 -1
  35. package/dist/hooks/useGit.d.ts +11 -0
  36. package/dist/hooks/useGit.d.ts.map +1 -1
  37. package/dist/hooks/useGit.js +30 -0
  38. package/dist/hooks/useGit.js.map +1 -1
  39. package/dist/hooks/useMCP.d.ts.map +1 -1
  40. package/dist/hooks/useMCP.js +2 -8
  41. package/dist/hooks/useMCP.js.map +1 -1
  42. package/dist/lib/api-client.d.ts +9 -1
  43. package/dist/lib/api-client.d.ts.map +1 -1
  44. package/dist/lib/api-client.js +44 -0
  45. package/dist/lib/api-client.js.map +1 -1
  46. package/dist/lib/open-url.js +1 -1
  47. package/dist/lib/open-url.js.map +1 -1
  48. package/dist/stores/mcpStore.d.ts +2 -0
  49. package/dist/stores/mcpStore.d.ts.map +1 -1
  50. package/dist/stores/mcpStore.js +9 -0
  51. package/dist/stores/mcpStore.js.map +1 -1
  52. package/dist/types/api.d.ts +7 -0
  53. package/dist/types/api.d.ts.map +1 -1
  54. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"GitDiffViewer.d.ts","sourceRoot":"","sources":["../../../src/components/git/GitDiffViewer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,UAAU,kBAAkB;IAC3B,IAAI,EAAE,eAAe,CAAC;CACtB;AA0DD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,2CAkTzD"}
1
+ {"version":3,"file":"GitDiffViewer.d.ts","sourceRoot":"","sources":["../../../src/components/git/GitDiffViewer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBvD,UAAU,kBAAkB;IAC3B,IAAI,EAAE,eAAe,CAAC;CACtB;AA0DD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,2CAgUzD"}
@@ -1,6 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
3
3
  import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
4
+ import { getRuntimeApiBaseUrl } from '../../lib/config';
5
+ const IMAGE_EXTENSIONS = new Set([
6
+ 'png',
7
+ 'jpg',
8
+ 'jpeg',
9
+ 'gif',
10
+ 'svg',
11
+ 'webp',
12
+ 'ico',
13
+ 'bmp',
14
+ 'avif',
15
+ ]);
16
+ function isImageFile(filePath) {
17
+ const ext = filePath.split('.').pop()?.toLowerCase() ?? '';
18
+ return IMAGE_EXTENSIONS.has(ext);
19
+ }
4
20
  const LANGUAGE_MAP = {
5
21
  js: 'javascript',
6
22
  jsx: 'jsx',
@@ -71,7 +87,11 @@ export function GitDiffViewer({ diff }) {
71
87
  }
72
88
  // Handle binary files
73
89
  if (diff.isBinary) {
74
- return (_jsxs("div", { className: "flex flex-col h-full bg-background", children: [_jsxs("div", { className: "px-4 py-2 bg-muted/50 flex items-center justify-between min-h-10", children: [_jsx("span", { className: "font-mono text-sm text-foreground truncate", title: diff.file, children: fileName }), _jsx("div", { className: "flex items-center gap-3 text-xs flex-shrink-0", children: _jsx("span", { className: "text-muted-foreground", children: "Binary file" }) })] }), _jsx("div", { className: "flex-1 flex items-center justify-center", children: _jsx("div", { className: "p-4 text-center", children: _jsx("p", { className: "text-sm text-muted-foreground", children: "Binary file - cannot display diff" }) }) })] }));
90
+ const isImage = isImageFile(diff.file);
91
+ const imageUrl = isImage
92
+ ? `${getRuntimeApiBaseUrl()}/v1/files/raw?path=${encodeURIComponent(diff.file)}`
93
+ : null;
94
+ return (_jsxs("div", { className: "flex flex-col h-full bg-background", children: [_jsxs("div", { className: "px-4 py-2 bg-muted/50 flex items-center justify-between min-h-10", children: [_jsx("span", { className: "font-mono text-sm text-foreground truncate", title: diff.file, children: fileName }), _jsx("div", { className: "flex items-center gap-3 text-xs flex-shrink-0", children: _jsx("span", { className: "text-muted-foreground", children: "Binary file" }) })] }), imageUrl ? (_jsx("div", { className: "flex-1 flex items-center justify-center p-4 overflow-auto", children: _jsx("img", { src: imageUrl, alt: fileName, className: "max-w-full max-h-[60vh] object-contain rounded border border-border" }) })) : (_jsx("div", { className: "flex-1 flex items-center justify-center", children: _jsx("div", { className: "p-4 text-center", children: _jsx("p", { className: "text-sm text-muted-foreground", children: "Binary file - cannot display diff" }) }) }))] }));
75
95
  }
76
96
  // Parse the diff into lines with line numbers (for modified files)
77
97
  const lines = diff.diff.split('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"GitDiffViewer.js","sourceRoot":"","sources":["../../../src/components/git/GitDiffViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitDiffViewer.js","sourceRoot":"","sources":["../../../src/components/git/GitDiffViewer.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/git/GitSidebar.tsx"],"names":[],"mappings":"AAmCA,UAAU,eAAe;IACxB,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,UAAU,uDAqRrB,CAAC"}
1
+ {"version":3,"file":"GitSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/git/GitSidebar.tsx"],"names":[],"mappings":"AA0CA,UAAU,eAAe;IACxB,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,UAAU,uDAgdrB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, useCallback, useEffect, useState } from 'react';
3
- import { FolderGit2, ChevronRight, Download, GitBranch, RefreshCw, Sparkles, Upload, X, } from 'lucide-react';
3
+ import { FolderGit2, ChevronRight, ChevronDown, Download, GitBranch, Globe, Plus, RefreshCw, Sparkles, Trash2, Upload, X, } from 'lucide-react';
4
4
  import { useQueryClient } from '@tanstack/react-query';
5
5
  import { useGitStore } from '../../stores/gitStore';
6
6
  import { usePanelWidthStore } from '../../stores/panelWidthStore';
7
- import { useGitStatus, usePullChanges, usePushCommits, useGitInit, } from '../../hooks/useGit';
7
+ import { useGitStatus, usePullChanges, usePushCommits, useGitInit, useGitRemotes, useAddRemote, useRemoveRemote, } from '../../hooks/useGit';
8
8
  import { Button } from '../ui/Button';
9
9
  import { GitFileList } from './GitFileList';
10
10
  import { ResizeHandle } from '../ui/ResizeHandle';
@@ -17,11 +17,19 @@ export const GitSidebar = memo(function GitSidebar({ onFixWithAI, }) {
17
17
  const collapseSidebar = useGitStore((state) => state.collapseSidebar);
18
18
  const panelWidth = usePanelWidthStore((s) => s.widths[PANEL_KEY] ?? DEFAULT_WIDTH);
19
19
  const { data: status, isLoading, error, refetch } = useGitStatus();
20
+ const { data: remotes } = useGitRemotes();
20
21
  const queryClient = useQueryClient();
21
22
  const pushMutation = usePushCommits();
22
23
  const pullMutation = usePullChanges();
23
24
  const initMutation = useGitInit();
25
+ const addRemoteMutation = useAddRemote();
26
+ const removeRemoteMutation = useRemoveRemote();
24
27
  const [errors, setErrors] = useState([]);
28
+ const [showRemotes, setShowRemotes] = useState(false);
29
+ const [showAddRemote, setShowAddRemote] = useState(false);
30
+ const [remoteName, setRemoteName] = useState('origin');
31
+ const [remoteUrl, setRemoteUrl] = useState('');
32
+ const [confirmRemoveRemote, setConfirmRemoveRemote] = useState(null);
25
33
  useEffect(() => {
26
34
  if (isExpanded) {
27
35
  queryClient.invalidateQueries({ queryKey: ['git', 'status'] });
@@ -53,6 +61,35 @@ export const GitSidebar = memo(function GitSidebar({ onFixWithAI, }) {
53
61
  addError(err instanceof Error ? err.message : 'Failed to pull', 'git pull');
54
62
  }
55
63
  };
64
+ const handleAddRemote = async () => {
65
+ if (!remoteName.trim() || !remoteUrl.trim())
66
+ return;
67
+ try {
68
+ await addRemoteMutation.mutateAsync({
69
+ name: remoteName.trim(),
70
+ url: remoteUrl.trim(),
71
+ });
72
+ setRemoteName('origin');
73
+ setRemoteUrl('');
74
+ setShowAddRemote(false);
75
+ }
76
+ catch (err) {
77
+ addError(err instanceof Error ? err.message : 'Failed to add remote', 'git remote add');
78
+ }
79
+ };
80
+ const handleRemoveRemote = async (name) => {
81
+ if (confirmRemoveRemote !== name) {
82
+ setConfirmRemoveRemote(name);
83
+ return;
84
+ }
85
+ setConfirmRemoveRemote(null);
86
+ try {
87
+ await removeRemoteMutation.mutateAsync(name);
88
+ }
89
+ catch (err) {
90
+ addError(err instanceof Error ? err.message : 'Failed to remove remote', 'git remote remove');
91
+ }
92
+ };
56
93
  const handleFixWithAI = useCallback((gitError) => {
57
94
  const prompt = gitError.context
58
95
  ? `I got a git error during ${gitError.context}:\n\n${gitError.message}\n\nPlease help me fix this.`
@@ -69,22 +106,51 @@ export const GitSidebar = memo(function GitSidebar({ onFixWithAI, }) {
69
106
  ...(status?.untracked || []),
70
107
  ];
71
108
  const totalChanges = allFiles.length;
72
- const canPush = status && status.ahead > 0;
109
+ const hasRemotes = status && status.remotes && status.remotes.length > 0;
110
+ const hasUpstream = status?.hasUpstream ?? false;
111
+ const canPush = status && hasRemotes && (status.ahead > 0 || !hasUpstream);
73
112
  const _canPull = !!status;
74
113
  const hasPendingPulls = status && status.behind > 0;
75
114
  const isActing = pushMutation.isPending || pullMutation.isPending;
76
115
  const isNotGitRepo = error instanceof Error &&
77
116
  error.message.toLowerCase().includes('not a git repository');
117
+ const pushTitle = !hasRemotes
118
+ ? 'No remote configured'
119
+ : !hasUpstream
120
+ ? 'Publish branch to remote'
121
+ : canPush
122
+ ? `Push ${status?.ahead} commit(s) to remote`
123
+ : 'Nothing to push';
78
124
  return (_jsxs("div", { className: "border-l border-border bg-background flex h-full relative", style: { width: panelWidth }, children: [_jsx(ResizeHandle, { panelKey: PANEL_KEY, side: "right", minWidth: MIN_WIDTH, maxWidth: MAX_WIDTH, defaultWidth: DEFAULT_WIDTH }), _jsxs("div", { className: "flex-1 flex flex-col h-full min-w-0 w-full", children: [_jsxs("div", { className: "h-14 border-b border-border px-3 flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2 flex-1", children: [_jsx(GitBranch, { className: "w-4 h-4 text-muted-foreground" }), _jsxs("span", { className: "font-medium text-foreground", children: ["Git Changes", totalChanges > 0 && (_jsxs("span", { className: "ml-2 text-xs text-muted-foreground", children: ["(", totalChanges, ")"] }))] })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: collapseSidebar, title: "Close sidebar", children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: isLoading ? (_jsx("div", { className: "p-4 text-sm text-muted-foreground", children: "Loading git status..." })) : isNotGitRepo ? (_jsxs("div", { className: "p-4 flex flex-col items-center justify-center gap-3 text-center", children: [_jsx(FolderGit2, { className: "w-10 h-10 text-muted-foreground" }), _jsx("div", { className: "text-sm text-muted-foreground", children: "No git repository found in this directory." }), _jsxs(Button, { variant: "secondary", size: "sm", onClick: () => initMutation.mutate(), disabled: initMutation.isPending, className: "gap-1.5", children: [_jsx(GitBranch, { className: `w-3.5 h-3.5 ${initMutation.isPending ? 'animate-spin' : ''}` }), initMutation.isPending
79
125
  ? 'Initializing...'
80
126
  : 'Initialize Repository'] }), initMutation.isError && (_jsx("span", { className: "text-xs text-orange-500", children: initMutation.error instanceof Error
81
127
  ? initMutation.error.message
82
128
  : 'Failed to initialize' }))] })) : error ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-orange-500", children: error instanceof Error
83
129
  ? error.message
84
- : 'Failed to load git status' }), _jsx(Button, { variant: "secondary", size: "sm", onClick: handleRefresh, children: "Retry" })] }) })) : !status || totalChanges === 0 ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: "No changes detected" })) : (_jsx(GitFileList, { status: status })) }), errors.length > 0 && (_jsx("div", { className: "border-t border-border", children: errors.map((gitError) => (_jsxs("div", { className: "px-3 py-2 text-xs border-b border-border last:border-b-0 bg-orange-50 dark:bg-orange-950/20 flex items-start gap-2", children: [_jsx("span", { className: "text-orange-500 flex-1 min-w-0 break-words", children: gitError.message }), _jsxs("div", { className: "flex items-center gap-1 flex-shrink-0", children: [onFixWithAI && (_jsxs("button", { type: "button", onClick: () => handleFixWithAI(gitError), className: "flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-primary/10 text-primary hover:bg-primary/20 transition-colors", title: "Fix with AI", children: [_jsx(Sparkles, { className: "w-3 h-3" }), "Fix"] })), _jsx("button", { type: "button", onClick: () => dismissError(gitError.id), className: "text-muted-foreground hover:text-foreground transition-colors p-0.5", title: "Dismiss", children: _jsx(X, { className: "w-3 h-3" }) })] })] }, gitError.id))) })), _jsxs("div", { className: "h-12 border-t border-border flex items-center gap-1 px-2", children: [_jsxs(Button, { variant: "secondary", size: "sm", onClick: handlePull, disabled: isActing, title: hasPendingPulls
85
- ? `Pull ${status?.behind} commit(s) from remote`
86
- : 'Pull from remote', className: "flex-1 h-8 text-xs gap-1.5", children: [_jsx(Download, { className: `w-3.5 h-3.5 ${pullMutation.isPending ? 'animate-pulse' : ''}` }), "Pull", hasPendingPulls && (_jsxs("span", { className: "text-orange-500", children: ["\u2193", status?.behind] }))] }), _jsxs(Button, { variant: "secondary", size: "sm", onClick: handlePush, disabled: !canPush || isActing, title: canPush
87
- ? `Push ${status?.ahead} commit(s) to remote`
88
- : 'Nothing to push', className: "flex-1 h-8 text-xs gap-1.5", children: [_jsx(Upload, { className: `w-3.5 h-3.5 ${pushMutation.isPending ? 'animate-pulse' : ''}` }), "Push", canPush && (_jsxs("span", { className: "text-green-500", children: ["\u2191", status?.ahead] }))] })] }), _jsxs("div", { className: "h-12 px-4 border-t border-border text-xs text-muted-foreground flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [_jsx(GitBranch, { className: "w-3 h-3 flex-shrink-0" }), status?.branch && (_jsx("span", { className: "truncate", children: status.branch }))] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: handleRefresh, title: "Refresh git status", className: "h-6 w-6 flex-shrink-0", disabled: isLoading, children: _jsx(RefreshCw, { className: `w-3 h-3 ${isLoading ? 'animate-spin' : ''}` }) })] })] })] }));
130
+ : 'Failed to load git status' }), _jsx(Button, { variant: "secondary", size: "sm", onClick: handleRefresh, children: "Retry" })] }) })) : !status || totalChanges === 0 ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: "No changes detected" })) : (_jsx(GitFileList, { status: status })) }), status && !isNotGitRepo && !error && (_jsxs("div", { className: "border-t border-border", children: [_jsxs("button", { type: "button", onClick: () => setShowRemotes(!showRemotes), className: "w-full px-3 py-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors", children: [showRemotes ? (_jsx(ChevronDown, { className: "w-3 h-3" })) : (_jsx(ChevronRight, { className: "w-3 h-3" })), _jsx(Globe, { className: "w-3 h-3" }), _jsx("span", { children: "Remotes" }), status.remotes && (_jsx("span", { className: "ml-auto text-[10px] opacity-60", children: status.remotes.length }))] }), showRemotes && (_jsxs("div", { className: "px-3 pb-2 space-y-1", children: [remotes && remotes.length > 0 ? (remotes
131
+ .filter((r) => r.type === 'fetch')
132
+ .map((remote) => (_jsxs("div", { className: "flex items-center gap-2 text-xs group", children: [_jsx("span", { className: "font-medium text-foreground", children: remote.name }), _jsx("span", { className: "truncate text-muted-foreground flex-1 min-w-0", children: remote.url }), _jsx("button", { type: "button", onClick: () => {
133
+ if (confirmRemoveRemote === remote.name) {
134
+ handleRemoveRemote(remote.name);
135
+ }
136
+ else {
137
+ setConfirmRemoveRemote(remote.name);
138
+ }
139
+ }, onBlur: () => setConfirmRemoveRemote(null), disabled: removeRemoteMutation.isPending, className: `${confirmRemoveRemote === remote.name ? 'opacity-100 text-red-500' : 'opacity-0 group-hover:opacity-100 text-muted-foreground hover:text-red-500'} transition-all p-0.5`, title: confirmRemoveRemote === remote.name
140
+ ? `Click again to confirm removing ${remote.name}`
141
+ : `Remove ${remote.name}`, children: confirmRemoveRemote === remote.name ? (_jsx("span", { className: "text-[10px] font-medium", children: "Remove?" })) : (_jsx(Trash2, { className: "w-3 h-3" })) })] }, remote.name)))) : (_jsx("div", { className: "text-xs text-muted-foreground py-1", children: "No remotes configured" })), showAddRemote ? (_jsxs("div", { className: "space-y-1.5 pt-1", children: [_jsx("input", { type: "text", value: remoteName, onChange: (e) => setRemoteName(e.target.value), placeholder: "Name (e.g. origin)", className: "w-full text-xs px-2 py-1 rounded border border-border bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary" }), _jsx("input", { type: "text", value: remoteUrl, onChange: (e) => setRemoteUrl(e.target.value), placeholder: "URL (e.g. https://github.com/...)", className: "w-full text-xs px-2 py-1 rounded border border-border bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary", onKeyDown: (e) => {
142
+ if (e.key === 'Enter')
143
+ handleAddRemote();
144
+ if (e.key === 'Escape')
145
+ setShowAddRemote(false);
146
+ } }), _jsxs("div", { className: "flex gap-1", children: [_jsx(Button, { variant: "secondary", size: "sm", onClick: handleAddRemote, disabled: addRemoteMutation.isPending ||
147
+ !remoteName.trim() ||
148
+ !remoteUrl.trim(), className: "flex-1 h-6 text-[10px]", children: addRemoteMutation.isPending ? 'Adding...' : 'Add' }), _jsx(Button, { variant: "ghost", size: "sm", onClick: () => setShowAddRemote(false), className: "h-6 text-[10px]", children: "Cancel" })] })] })) : (_jsxs("button", { type: "button", onClick: () => setShowAddRemote(true), className: "flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors pt-1", children: [_jsx(Plus, { className: "w-3 h-3" }), _jsx("span", { children: "Add remote" })] }))] }))] })), errors.length > 0 && (_jsx("div", { className: "border-t border-border", children: errors.map((gitError) => (_jsxs("div", { className: "px-3 py-2 text-xs border-b border-border last:border-b-0 bg-orange-50 dark:bg-orange-950/20 flex items-start gap-2", children: [_jsx("span", { className: "text-orange-500 flex-1 min-w-0 break-words", children: gitError.message }), _jsxs("div", { className: "flex items-center gap-1 flex-shrink-0", children: [onFixWithAI && (_jsxs("button", { type: "button", onClick: () => handleFixWithAI(gitError), className: "flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-primary/10 text-primary hover:bg-primary/20 transition-colors", title: "Fix with AI", children: [_jsx(Sparkles, { className: "w-3 h-3" }), "Fix"] })), _jsx("button", { type: "button", onClick: () => dismissError(gitError.id), className: "text-muted-foreground hover:text-foreground transition-colors p-0.5", title: "Dismiss", children: _jsx(X, { className: "w-3 h-3" }) })] })] }, gitError.id))) })), _jsxs("div", { className: "h-12 border-t border-border flex items-center gap-1 px-2", children: [_jsxs(Button, { variant: "secondary", size: "sm", onClick: handlePull, disabled: isActing || !hasRemotes || !hasUpstream, title: !hasRemotes
149
+ ? 'No remote configured'
150
+ : !hasUpstream
151
+ ? 'Branch not published yet'
152
+ : hasPendingPulls
153
+ ? `Pull ${status?.behind} commit(s) from remote`
154
+ : 'Pull from remote', className: "flex-1 h-8 text-xs gap-1.5", children: [_jsx(Download, { className: `w-3.5 h-3.5 ${pullMutation.isPending ? 'animate-pulse' : ''}` }), "Pull", hasPendingPulls && (_jsxs("span", { className: "text-orange-500", children: ["\u2193", status?.behind] }))] }), _jsxs(Button, { variant: "secondary", size: "sm", onClick: handlePush, disabled: !canPush || isActing, title: pushTitle, className: "flex-1 h-8 text-xs gap-1.5", children: [_jsx(Upload, { className: `w-3.5 h-3.5 ${pushMutation.isPending ? 'animate-pulse' : ''}` }), !hasUpstream && hasRemotes ? 'Publish' : 'Push', hasUpstream && status && status.ahead > 0 && (_jsxs("span", { className: "text-green-500", children: ["\u2191", status.ahead] }))] })] }), _jsxs("div", { className: "h-12 px-4 border-t border-border text-xs text-muted-foreground flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [_jsx(GitBranch, { className: "w-3 h-3 flex-shrink-0" }), status?.branch && (_jsx("span", { className: "truncate", children: status.branch })), status && !hasUpstream && hasRemotes && (_jsx("span", { className: "text-[10px] text-orange-500 flex-shrink-0", children: "unpublished" }))] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: handleRefresh, title: "Refresh git status", className: "h-6 w-6 flex-shrink-0", disabled: isLoading, children: _jsx(RefreshCw, { className: `w-3 h-3 ${isLoading ? 'animate-spin' : ''}` }) })] })] })] }));
89
155
  });
90
156
  //# sourceMappingURL=GitSidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitSidebar.js","sourceRoot":"","sources":["../../../src/components/git/GitSidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitSidebar.js","sourceRoot":"","sources":["../../../src/components/git/GitSidebar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MCPSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/mcp/MCPSidebar.tsx"],"names":[],"mappings":"AAwKA,eAAO,MAAM,UAAU,8CA2HrB,CAAC"}
1
+ {"version":3,"file":"MCPSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/mcp/MCPSidebar.tsx"],"names":[],"mappings":"AAqOA,eAAO,MAAM,UAAU,8CAkNrB,CAAC"}
@@ -1,59 +1,146 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useState, useCallback } from 'react';
3
- import { Plug, ChevronDown, ChevronRight, FolderDot, Globe, Laptop, Loader2, Lock, Play, Plus, Square, Trash2, Wrench, } from 'lucide-react';
2
+ import { memo, useState, useCallback, useMemo, useEffect, useRef } from 'react';
3
+ import { ChevronDown, ChevronRight, ExternalLink, FolderDot, Globe, Laptop, Loader2, Lock, Plug, Plus, Trash2, Wrench, } from 'lucide-react';
4
4
  import { Button } from '../ui/Button';
5
+ import { Modal } from '../ui/Modal';
5
6
  import { useMCPStore } from '../../stores/mcpStore';
6
- import { useMCPServers, useStartMCPServer, useStopMCPServer, useRemoveMCPServer, useAuthenticateMCPServer, } from '../../hooks/useMCP';
7
+ import { useQueryClient } from '@tanstack/react-query';
8
+ import { useMCPServers, useStartMCPServer, useStopMCPServer, useRemoveMCPServer, useAuthenticateMCPServer, useMCPAuthStatus, } from '../../hooks/useMCP';
7
9
  import { openUrl } from '../../lib/open-url';
8
10
  import { AddMCPServerModal } from './AddMCPServerModal';
9
- const MCPServerCard = memo(function MCPServerCard({ server, isLoading, onStart, onStop, onRemove, onAuth, }) {
10
- const [isCollapsed, setIsCollapsed] = useState(true);
11
+ const ToggleSwitch = memo(function ToggleSwitch({ checked, loading, onChange, disabled, }) {
12
+ return (_jsx("button", { type: "button", role: "switch", "aria-checked": checked, disabled: disabled || loading, onClick: (e) => {
13
+ e.stopPropagation();
14
+ onChange();
15
+ }, className: `relative inline-flex h-5 w-9 flex-shrink-0 items-center rounded-full transition-colors duration-200 focus-visible:outline-none disabled:opacity-50 disabled:cursor-not-allowed ${checked ? 'bg-green-500' : 'bg-muted-foreground/30'}`, children: _jsx("span", { className: `inline-block h-3.5 w-3.5 rounded-full transition-transform duration-200 ${checked ? 'translate-x-[18px]' : 'translate-x-[3px]'} ${loading ? 'bg-transparent' : 'bg-white'}`, children: loading && _jsx(Loader2, { className: "w-3.5 h-3.5 animate-spin text-white" }) }) }));
16
+ });
17
+ const MCPServerCard = memo(function MCPServerCard({ server, isLoading, authUrl, onStart, onStop, onRemove, onAuth, }) {
18
+ const [showTools, setShowTools] = useState(false);
11
19
  const hasTools = server.connected && server.tools.length > 0;
12
20
  const isRemote = server.transport === 'http' || server.transport === 'sse';
13
- const toggleCollapse = useCallback(() => {
21
+ const isAwaitingAuth = !!authUrl && !server.connected;
22
+ const handleToggle = useCallback(() => {
23
+ if (server.authRequired && !server.connected) {
24
+ onAuth();
25
+ }
26
+ else if (server.connected) {
27
+ onStop();
28
+ }
29
+ else {
30
+ onStart();
31
+ }
32
+ }, [server.connected, server.authRequired, onAuth, onStop, onStart]);
33
+ const toggleTools = useCallback(() => {
14
34
  if (hasTools)
15
- setIsCollapsed((prev) => !prev);
35
+ setShowTools((prev) => !prev);
16
36
  }, [hasTools]);
17
- return (_jsxs("div", { className: "rounded-lg border border-border p-3 space-y-2 group", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("button", { type: "button", onClick: toggleCollapse, className: `flex items-center gap-2 min-w-0 flex-1 text-left ${hasTools ? 'cursor-pointer' : 'cursor-default'}`, children: [_jsx("span", { className: `w-2 h-2 rounded-full flex-shrink-0 ${server.connected
18
- ? 'bg-green-500'
19
- : server.authRequired
20
- ? 'bg-yellow-500'
21
- : 'bg-muted-foreground/30'}` }), _jsx("span", { className: "text-sm font-medium truncate", children: server.name }), isRemote && (_jsx(Globe, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" })), server.authRequired && !server.connected && (_jsx(Lock, { className: "w-3 h-3 text-yellow-500 flex-shrink-0" })), hasTools && (_jsxs("span", { className: "flex items-center gap-0.5 text-xs text-muted-foreground flex-shrink-0", children: [_jsx(Wrench, { className: "w-3 h-3" }), server.tools.length, isCollapsed ? (_jsx(ChevronRight, { className: "w-3 h-3" })) : (_jsx(ChevronDown, { className: "w-3 h-3" }))] }))] }), _jsxs("div", { className: "flex items-center gap-0.5", children: [_jsx(Button, { variant: "ghost", size: "icon", onClick: onRemove, title: "Remove server", className: "h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0", children: _jsx(Trash2, { className: "w-3 h-3 text-muted-foreground hover:text-red-400" }) }), isLoading ? (_jsx(Loader2, { className: "w-4 h-4 animate-spin text-muted-foreground flex-shrink-0" })) : server.authRequired && !server.connected ? (_jsx(Button, { variant: "ghost", size: "icon", onClick: onAuth, title: "Authenticate", className: "h-7 w-7 flex-shrink-0", children: _jsx(Lock, { className: "w-3 h-3 text-yellow-500" }) })) : server.connected ? (_jsx(Button, { variant: "ghost", size: "icon", onClick: onStop, title: "Stop server", className: "h-7 w-7 flex-shrink-0", children: _jsx(Square, { className: "w-3 h-3 text-red-400" }) })) : (_jsx(Button, { variant: "ghost", size: "icon", onClick: onStart, title: "Start server", className: "h-7 w-7 flex-shrink-0", children: _jsx(Play, { className: "w-3 h-3 text-green-400" }) }))] })] }), _jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [_jsx("span", { className: "truncate", children: isRemote
22
- ? server.url
23
- : `${server.command ?? ''} ${server.args.join(' ')}` }), _jsx("span", { className: "flex items-center gap-0.5 flex-shrink-0 opacity-60", title: server.scope === 'project' ? 'Project-local' : 'Global', children: server.scope === 'project' ? (_jsx(FolderDot, { className: "w-3 h-3" })) : (_jsx(Laptop, { className: "w-3 h-3" })) })] }), hasTools && !isCollapsed && (_jsx("div", { className: "flex flex-wrap gap-1 pt-1", children: server.tools.map((tool) => (_jsx("span", { className: "text-xs bg-muted px-1.5 py-0.5 rounded", title: tool, children: tool.split('__').pop() }, tool))) }))] }));
37
+ return (_jsxs("div", { className: `rounded-lg border transition-colors duration-200 group ${server.connected
38
+ ? 'border-green-500/30 bg-green-500/5'
39
+ : isAwaitingAuth
40
+ ? 'border-yellow-500/30 bg-yellow-500/5'
41
+ : 'border-border bg-transparent'}`, children: [_jsxs("div", { className: "flex items-center gap-3 px-3 py-2.5", children: [_jsx(ToggleSwitch, { checked: server.connected, loading: isLoading || isAwaitingAuth, onChange: handleToggle }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-sm font-medium truncate", children: server.name }), isRemote && (_jsx(Globe, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" })), server.authRequired && !server.connected && (_jsx(Lock, { className: "w-3 h-3 text-yellow-500 flex-shrink-0" }))] }), _jsxs("div", { className: "flex items-center gap-1.5 mt-0.5", children: [_jsx("span", { className: "text-xs text-muted-foreground truncate", children: isRemote
42
+ ? server.url
43
+ : `${server.command ?? ''} ${server.args.join(' ')}` }), _jsx("span", { className: "flex items-center flex-shrink-0 opacity-50", title: server.scope === 'project' ? 'Project-local' : 'Global', children: server.scope === 'project' ? (_jsx(FolderDot, { className: "w-3 h-3" })) : (_jsx(Laptop, { className: "w-3 h-3" })) })] })] }), _jsxs("div", { className: "flex items-center gap-0.5 flex-shrink-0", children: [hasTools && (_jsxs("button", { type: "button", onClick: toggleTools, className: "flex items-center gap-0.5 text-xs text-muted-foreground hover:text-foreground px-1.5 py-1 rounded transition-colors", children: [_jsx(Wrench, { className: "w-3 h-3" }), server.tools.length, showTools ? (_jsx(ChevronDown, { className: "w-3 h-3" })) : (_jsx(ChevronRight, { className: "w-3 h-3" }))] })), _jsx(Button, { variant: "ghost", size: "icon", onClick: onRemove, title: "Remove server", className: "h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx(Trash2, { className: "w-3 h-3 text-muted-foreground hover:text-red-400" }) })] })] }), isAwaitingAuth && (_jsx("div", { className: "px-3 pb-2.5 pt-0", children: _jsxs("div", { className: "flex items-center gap-1.5 text-xs", children: [_jsx(Loader2, { className: "w-3 h-3 animate-spin text-yellow-500 flex-shrink-0" }), _jsx("span", { className: "text-yellow-500/80", children: "Waiting for auth..." }), _jsxs("a", { href: authUrl, target: "_blank", rel: "noopener noreferrer", onClick: (e) => {
44
+ e.preventDefault();
45
+ openUrl(authUrl);
46
+ }, className: "inline-flex items-center gap-0.5 text-yellow-400 hover:text-yellow-300 underline underline-offset-2", children: ["Open login", _jsx(ExternalLink, { className: "w-3 h-3" })] })] }) })), hasTools && showTools && (_jsx("div", { className: "px-3 pb-2.5 pt-0", children: _jsx("div", { className: "flex flex-wrap gap-1", children: server.tools.map((tool) => (_jsx("span", { className: "text-xs bg-muted px-1.5 py-0.5 rounded", title: tool, children: tool.split('__').pop() }, tool))) }) }))] }));
24
47
  });
48
+ function useAuthPoller(name, onAuthenticated) {
49
+ const { data } = useMCPAuthStatus(name);
50
+ const prevAuth = useRef(false);
51
+ useEffect(() => {
52
+ if (data?.authenticated && !prevAuth.current) {
53
+ onAuthenticated();
54
+ }
55
+ prevAuth.current = data?.authenticated ?? false;
56
+ }, [data?.authenticated, onAuthenticated]);
57
+ }
25
58
  export const MCPSidebar = memo(function MCPSidebar() {
26
59
  const isExpanded = useMCPStore((s) => s.isExpanded);
27
60
  const collapseSidebar = useMCPStore((s) => s.collapseSidebar);
28
61
  const servers = useMCPStore((s) => s.servers);
29
62
  const loading = useMCPStore((s) => s.loading);
63
+ const authUrls = useMCPStore((s) => s.authUrls);
64
+ const setAuthUrl = useMCPStore((s) => s.setAuthUrl);
65
+ const setLoading = useMCPStore((s) => s.setLoading);
30
66
  const { isLoading: isFetching } = useMCPServers();
31
67
  const startServer = useStartMCPServer();
32
68
  const stopServer = useStopMCPServer();
33
69
  const removeServer = useRemoveMCPServer();
34
70
  const authServer = useAuthenticateMCPServer();
35
71
  const [isAddModalOpen, setIsAddModalOpen] = useState(false);
72
+ const [pollingServer, setPollingServer] = useState(null);
73
+ const [deleteTarget, setDeleteTarget] = useState(null);
74
+ const queryClient = useQueryClient();
75
+ const handleAuthCompleted = useCallback(() => {
76
+ if (pollingServer) {
77
+ setAuthUrl(pollingServer, null);
78
+ setPollingServer(null);
79
+ queryClient.invalidateQueries({ queryKey: ['mcp', 'servers'] });
80
+ }
81
+ }, [pollingServer, setAuthUrl, queryClient]);
82
+ useAuthPoller(pollingServer, handleAuthCompleted);
83
+ useEffect(() => {
84
+ for (const name of loading) {
85
+ const server = servers.find((s) => s.name === name);
86
+ if (server?.connected) {
87
+ setLoading(name, false);
88
+ }
89
+ }
90
+ }, [servers, loading, setLoading]);
36
91
  const handleAuth = useCallback(async (name) => {
37
92
  try {
93
+ setLoading(name, true);
38
94
  const result = await authServer.mutateAsync(name);
39
95
  if (result.authUrl) {
96
+ setAuthUrl(name, result.authUrl);
97
+ setPollingServer(name);
40
98
  openUrl(result.authUrl);
41
99
  }
100
+ else {
101
+ setLoading(name, false);
102
+ }
42
103
  }
43
- catch { }
44
- }, [authServer]);
104
+ catch {
105
+ setLoading(name, false);
106
+ setAuthUrl(name, null);
107
+ }
108
+ }, [authServer, setAuthUrl, setLoading]);
45
109
  const handleStart = useCallback(async (name) => {
46
110
  try {
111
+ setLoading(name, true);
47
112
  const result = await startServer.mutateAsync(name);
48
113
  if (result.authRequired && result.authUrl) {
114
+ setAuthUrl(name, result.authUrl);
115
+ setPollingServer(name);
49
116
  openUrl(result.authUrl);
50
117
  }
118
+ else {
119
+ setLoading(name, false);
120
+ }
121
+ }
122
+ catch {
123
+ setLoading(name, false);
124
+ setAuthUrl(name, null);
51
125
  }
52
- catch { }
53
- }, [startServer]);
126
+ }, [startServer, setAuthUrl, setLoading]);
127
+ const sortedServers = useMemo(() => {
128
+ return [...servers].sort((a, b) => {
129
+ if (a.connected && !b.connected)
130
+ return -1;
131
+ if (!a.connected && b.connected)
132
+ return 1;
133
+ return a.name.localeCompare(b.name);
134
+ });
135
+ }, [servers]);
54
136
  if (!isExpanded)
55
137
  return null;
56
138
  const connectedCount = servers.filter((s) => s.connected).length;
57
- return (_jsxs("div", { className: "w-80 border-l border-border bg-background flex flex-col h-full", children: [_jsxs("div", { className: "h-14 flex items-center justify-between px-3 border-b border-border", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Plug, { className: "w-4 h-4 text-muted-foreground" }), _jsx("span", { className: "font-medium text-sm", children: "MCP Servers" }), connectedCount > 0 && (_jsxs("span", { className: "text-xs bg-green-500/20 text-green-400 px-1.5 py-0.5 rounded-full", children: [connectedCount, " active"] }))] }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsAddModalOpen(true), title: "Add MCP server", className: "h-7 w-7", children: _jsx(Plus, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "icon", onClick: collapseSidebar, title: "Close sidebar", children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: isFetching && servers.length === 0 ? (_jsxs("div", { className: "flex items-center justify-center h-32 text-muted-foreground", children: [_jsx(Loader2, { className: "w-4 h-4 animate-spin mr-2" }), "Loading..."] })) : servers.length === 0 ? (_jsxs("div", { className: "p-4 text-sm text-muted-foreground space-y-3", children: [_jsx("p", { children: "No MCP servers configured." }), _jsxs(Button, { variant: "primary", size: "sm", onClick: () => setIsAddModalOpen(true), className: "w-full", children: [_jsx(Plus, { className: "w-3 h-3 mr-1" }), "Add MCP Server"] }), _jsxs("p", { className: "text-xs", children: ["Or add servers to", ' ', _jsx("code", { className: "bg-muted px-1 py-0.5 rounded text-xs", children: ".otto/config.json" })] })] })) : (_jsx("div", { className: "p-2 space-y-1", children: servers.map((server) => (_jsx(MCPServerCard, { server: server, isLoading: loading.has(server.name), onStart: () => handleStart(server.name), onStop: () => stopServer.mutate(server.name), onRemove: () => removeServer.mutate(server.name), onAuth: () => handleAuth(server.name) }, server.name))) })) }), _jsx(AddMCPServerModal, { isOpen: isAddModalOpen, onClose: () => setIsAddModalOpen(false) })] }));
139
+ return (_jsxs("div", { className: "w-80 border-l border-border bg-background flex flex-col h-full", children: [_jsxs("div", { className: "h-14 flex items-center justify-between px-3 border-b border-border", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Plug, { className: "w-4 h-4 text-muted-foreground" }), _jsx("span", { className: "font-medium text-sm", children: "MCP Servers" }), connectedCount > 0 && (_jsxs("span", { className: "text-xs bg-green-500/20 text-green-400 px-1.5 py-0.5 rounded-full", children: [connectedCount, " active"] }))] }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsAddModalOpen(true), title: "Add MCP server", className: "h-7 w-7", children: _jsx(Plus, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "ghost", size: "icon", onClick: collapseSidebar, title: "Close sidebar", children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: isFetching && servers.length === 0 ? (_jsxs("div", { className: "flex items-center justify-center h-32 text-muted-foreground", children: [_jsx(Loader2, { className: "w-4 h-4 animate-spin mr-2" }), "Loading..."] })) : servers.length === 0 ? (_jsxs("div", { className: "p-4 text-sm text-muted-foreground space-y-3", children: [_jsx("p", { children: "No MCP servers configured." }), _jsxs(Button, { variant: "primary", size: "sm", onClick: () => setIsAddModalOpen(true), className: "w-full", children: [_jsx(Plus, { className: "w-3 h-3 mr-1" }), "Add MCP Server"] }), _jsxs("p", { className: "text-xs", children: ["Or add servers to", ' ', _jsx("code", { className: "bg-muted px-1 py-0.5 rounded text-xs", children: ".otto/config.json" })] })] })) : (_jsx("div", { className: "p-2 space-y-1.5", children: sortedServers.map((server) => (_jsx(MCPServerCard, { server: server, isLoading: loading.has(server.name), authUrl: authUrls.get(server.name), onStart: () => handleStart(server.name), onStop: () => stopServer.mutate(server.name), onRemove: () => setDeleteTarget(server.name), onAuth: () => handleAuth(server.name) }, server.name))) })) }), _jsx(AddMCPServerModal, { isOpen: isAddModalOpen, onClose: () => setIsAddModalOpen(false) }), _jsxs(Modal, { isOpen: !!deleteTarget, onClose: () => setDeleteTarget(null), title: "Remove MCP Server", maxWidth: "sm", showCloseButton: false, children: [_jsxs("p", { className: "text-sm text-muted-foreground mb-4", children: ["Are you sure you want to remove", ' ', _jsx("span", { className: "font-medium text-foreground", children: deleteTarget }), "? This will stop the server and remove its configuration."] }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx(Button, { variant: "secondary", size: "sm", onClick: () => setDeleteTarget(null), children: "Cancel" }), _jsx(Button, { variant: "primary", size: "sm", className: "bg-red-500 hover:bg-red-600 text-white", onClick: () => {
140
+ if (deleteTarget) {
141
+ removeServer.mutate(deleteTarget);
142
+ }
143
+ setDeleteTarget(null);
144
+ }, children: "Remove" })] })] })] }));
58
145
  });
59
146
  //# sourceMappingURL=MCPSidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCPSidebar.js","sourceRoot":"","sources":["../../../src/components/mcp/MCPSidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MCPSidebar.js","sourceRoot":"","sources":["../../../src/components/mcp/MCPSidebar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenericRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GenericRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIpD,wBAAgB,eAAe,CAAC,EAC/B,QAAQ,EACR,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,OAAO,GACP,EAAE,oBAAoB,2CAyFtB"}
1
+ {"version":3,"file":"GenericRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GenericRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKpD,wBAAgB,eAAe,CAAC,EAC/B,QAAQ,EACR,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,OAAO,GACP,EAAE,oBAAoB,2CAkGtB"}
@@ -4,10 +4,15 @@ import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
4
4
  import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
5
5
  import { formatDuration } from './utils';
6
6
  import { ToolErrorDisplay } from './ToolErrorDisplay';
7
+ import { ImagePreview } from './shared';
7
8
  export function GenericRenderer({ toolName, contentJson, toolDurationMs, isExpanded, onToggle, compact, }) {
8
9
  const result = contentJson.result;
9
10
  const timeStr = formatDuration(toolDurationMs);
10
- const hasResult = result && Object.keys(result).length > 0;
11
+ const images = Array.isArray(result?.images)
12
+ ? result.images
13
+ : [];
14
+ const hasImages = images.length > 0;
15
+ const hasResult = result && (Object.keys(result).length > 0 || hasImages);
11
16
  const syntaxTheme = document?.documentElement.classList.contains('dark')
12
17
  ? vscDarkPlus
13
18
  : prism;
@@ -33,13 +38,13 @@ export function GenericRenderer({ toolName, contentJson, toolDurationMs, isExpan
33
38
  : undefined;
34
39
  return (_jsxs("div", { className: "text-xs", children: [_jsxs("button", { type: "button", onClick: onToggle, className: `flex items-center gap-2 transition-colors w-full ${hasError
35
40
  ? 'text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200'
36
- : 'text-foreground hover:text-foreground/80'}`, children: [_jsx(ChevronRight, { className: `h-3 w-3 flex-shrink-0 transition-transform ${isExpanded ? 'rotate-90' : ''}` }), hasError && (_jsx(AlertCircle, { className: "h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400" })), _jsxs("span", { className: "font-medium flex-shrink-0", children: [toolName, hasError ? ' error' : ''] }), !compact && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsx("span", { className: "text-muted-foreground/80 flex-shrink-0", children: timeStr })] }))] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasError && hasResult && (_jsx("div", { className: "mt-2 ml-5 bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full", children: _jsx("div", { className: "overflow-x-auto max-w-full", children: _jsx(SyntaxHighlighter, { language: "json", style: syntaxTheme, customStyle: {
37
- margin: 0,
38
- padding: '0.75rem',
39
- fontSize: '0.75rem',
40
- lineHeight: '1.5',
41
- background: 'transparent',
42
- maxWidth: '100%',
43
- }, wrapLines: true, wrapLongLines: true, children: JSON.stringify(result, null, 2) }) }) }))] }));
41
+ : 'text-foreground hover:text-foreground/80'}`, children: [_jsx(ChevronRight, { className: `h-3 w-3 flex-shrink-0 transition-transform ${isExpanded ? 'rotate-90' : ''}` }), hasError && (_jsx(AlertCircle, { className: "h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400" })), _jsxs("span", { className: "font-medium flex-shrink-0", children: [toolName, hasError ? ' error' : ''] }), !compact && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsx("span", { className: "text-muted-foreground/80 flex-shrink-0", children: timeStr })] }))] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasError && hasResult && (_jsxs("div", { className: "mt-2 ml-5", children: [hasImages && _jsx(ImagePreview, { images: images }), !hasImages && (_jsx("div", { className: "bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full", children: _jsx("div", { className: "overflow-x-auto max-w-full", children: _jsx(SyntaxHighlighter, { language: "json", style: syntaxTheme, customStyle: {
42
+ margin: 0,
43
+ padding: '0.75rem',
44
+ fontSize: '0.75rem',
45
+ lineHeight: '1.5',
46
+ background: 'transparent',
47
+ maxWidth: '100%',
48
+ }, wrapLines: true, wrapLongLines: true, children: JSON.stringify(result, null, 2) }) }) }))] }))] }));
44
49
  }
45
50
  //# sourceMappingURL=GenericRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GenericRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GenericRenderer.tsx"],"names":[],"mappings":"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"}