@agi-cli/web-sdk 0.1.116 → 0.1.118
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/components/chat/ChatInput.d.ts +4 -3
- package/dist/components/chat/ChatInput.d.ts.map +1 -1
- package/dist/components/chat/ChatInput.js +7 -5
- package/dist/components/chat/ChatInput.js.map +1 -1
- package/dist/components/chat/ChatInputContainer.d.ts.map +1 -1
- package/dist/components/chat/ChatInputContainer.js +16 -5
- package/dist/components/chat/ChatInputContainer.js.map +1 -1
- package/dist/components/git/GitDiffPanel.d.ts.map +1 -1
- package/dist/components/git/GitDiffPanel.js +16 -18
- package/dist/components/git/GitDiffPanel.js.map +1 -1
- package/dist/components/messages/UserMessageGroup.d.ts.map +1 -1
- package/dist/components/messages/UserMessageGroup.js +26 -3
- package/dist/components/messages/UserMessageGroup.js.map +1 -1
- package/dist/components/messages/renderers/BashRenderer.js +3 -3
- package/dist/components/messages/renderers/BashRenderer.js.map +1 -1
- package/dist/components/messages/renderers/TodosRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/TodosRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/{UpdatePlanRenderer.js → TodosRenderer.js} +7 -5
- package/dist/components/messages/renderers/TodosRenderer.js.map +1 -0
- package/dist/components/messages/renderers/index.d.ts.map +1 -1
- package/dist/components/messages/renderers/index.js +6 -4
- package/dist/components/messages/renderers/index.js.map +1 -1
- package/dist/components/session-files/SessionFilesDiffPanel.d.ts.map +1 -1
- package/dist/components/session-files/SessionFilesDiffPanel.js +16 -15
- package/dist/components/session-files/SessionFilesDiffPanel.js.map +1 -1
- package/dist/components/session-files/SessionFilesSidebar.d.ts.map +1 -1
- package/dist/components/session-files/SessionFilesSidebar.js +3 -3
- package/dist/components/session-files/SessionFilesSidebar.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useFileUpload.d.ts +34 -0
- package/dist/hooks/useFileUpload.d.ts.map +1 -0
- package/dist/hooks/useFileUpload.js +258 -0
- package/dist/hooks/useFileUpload.js.map +1 -0
- package/dist/stores/sidebarStore.d.ts +2 -8
- package/dist/stores/sidebarStore.d.ts.map +1 -1
- package/dist/stores/sidebarStore.js +0 -6
- package/dist/stores/sidebarStore.js.map +1 -1
- package/dist/types/api.d.ts +8 -1
- package/dist/types/api.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/components/messages/renderers/UpdatePlanRenderer.d.ts +0 -3
- package/dist/components/messages/renderers/UpdatePlanRenderer.d.ts.map +0 -1
- package/dist/components/messages/renderers/UpdatePlanRenderer.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ClipboardEvent } from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { FileAttachment } from '../../hooks/useFileUpload';
|
|
3
3
|
interface ChatInputProps {
|
|
4
4
|
onSend: (message: string) => void;
|
|
5
5
|
onCommand?: (commandId: string) => void;
|
|
@@ -9,8 +9,9 @@ interface ChatInputProps {
|
|
|
9
9
|
isPlanMode?: boolean;
|
|
10
10
|
reasoningEnabled?: boolean;
|
|
11
11
|
sessionId?: string;
|
|
12
|
-
images?:
|
|
13
|
-
|
|
12
|
+
images?: FileAttachment[];
|
|
13
|
+
documents?: FileAttachment[];
|
|
14
|
+
onFileRemove?: (id: string) => void;
|
|
14
15
|
isDragging?: boolean;
|
|
15
16
|
onPaste?: (e: ClipboardEvent) => void;
|
|
16
17
|
visionEnabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,OAAO,CAAC;AAqBzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,UAAU,cAAc;IACvB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,SAAS;WACD,MAAM,IAAI;GA4a9B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useRef, useEffect, useCallback, memo, forwardRef, useImperativeHandle, useMemo, } from 'react';
|
|
3
|
-
import { ArrowUp, MoreVertical, X, ImageIcon, Brain } from 'lucide-react';
|
|
3
|
+
import { ArrowUp, MoreVertical, X, ImageIcon, Brain, FileText, FileIcon, } from 'lucide-react';
|
|
4
4
|
import { Textarea } from '../ui/Textarea';
|
|
5
5
|
import { FileMentionPopup } from './FileMentionPopup';
|
|
6
6
|
import { CommandSuggestionsPopup } from './CommandSuggestionsPopup';
|
|
@@ -11,7 +11,7 @@ import { useVimMode } from '../../hooks/useVimMode';
|
|
|
11
11
|
import { useFileMention } from '../../hooks/useFileMention';
|
|
12
12
|
import { useCommandSuggestions } from '../../hooks/useCommandSuggestions';
|
|
13
13
|
import { createChatInputKeyHandler } from './ChatInputKeyHandler';
|
|
14
|
-
export const ChatInput = memo(forwardRef(function ChatInput({ onSend, onCommand, disabled, onConfigClick, onPlanModeToggle, isPlanMode: externalIsPlanMode, reasoningEnabled, sessionId, images = [],
|
|
14
|
+
export const ChatInput = memo(forwardRef(function ChatInput({ onSend, onCommand, disabled, onConfigClick, onPlanModeToggle, isPlanMode: externalIsPlanMode, reasoningEnabled, sessionId, images = [], documents = [], onFileRemove, isDragging = false, onPaste, visionEnabled = false, }, ref) {
|
|
15
15
|
const [message, setMessage] = useState('');
|
|
16
16
|
const [isPlanMode, setIsPlanMode] = useState(externalIsPlanMode || false);
|
|
17
17
|
const [showShortcutsModal, setShowShortcutsModal] = useState(false);
|
|
@@ -180,13 +180,15 @@ export const ChatInput = memo(forwardRef(function ChatInput({ onSend, onCommand,
|
|
|
180
180
|
onPaste?.(e);
|
|
181
181
|
}, [onPaste]);
|
|
182
182
|
const hasImages = images.length > 0;
|
|
183
|
-
|
|
183
|
+
const hasDocuments = documents.length > 0;
|
|
184
|
+
const hasFiles = hasImages || hasDocuments;
|
|
185
|
+
return (_jsxs(_Fragment, { children: [isDragging && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm pointer-events-none", children: _jsxs("div", { className: "flex flex-col items-center gap-4 p-8 rounded-2xl bg-card border-2 border-dashed border-primary/50", children: [_jsx("div", { className: "p-4 rounded-full bg-primary/10", children: _jsx(FileIcon, { className: "w-12 h-12 text-primary" }) }), _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "text-lg font-medium text-foreground", children: "Drop files here" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Images, PDF, Markdown, Text up to 10MB" })] })] }) })), _jsx("div", { className: "absolute bottom-0 left-0 right-0 pt-16 pb-6 md:pb-8 px-2 md:px-4 bg-gradient-to-t from-background via-background to-transparent pointer-events-none z-20 safe-area-inset-bottom", children: _jsxs("div", { className: "max-w-3xl mx-auto pointer-events-auto mb-2 md:mb-0 relative", children: [preferences.vimMode && vimMode === 'normal' && (_jsx("div", { className: "absolute -top-6 right-0 px-2 py-0.5 text-xs font-mono font-semibold bg-amber-500/90 text-white rounded shadow-sm", children: "NORMAL" })), preferences.vimMode && vimMode === 'insert' && (_jsx("div", { className: "absolute -top-6 right-0 px-2 py-0.5 text-xs font-mono font-semibold bg-green-500/90 text-white rounded shadow-sm", children: "INSERT" })), _jsxs("div", { className: `relative flex flex-col rounded-3xl p-1 transition-all touch-manipulation ${isPlanMode
|
|
184
186
|
? 'bg-slate-100 dark:bg-slate-900/40 border border-slate-300 dark:border-slate-700 focus-within:border-slate-400 dark:focus-within:border-slate-600 focus-within:ring-1 focus-within:ring-slate-300 dark:focus-within:ring-slate-700'
|
|
185
|
-
: 'bg-card border border-border focus-within:border-primary/60 focus-within:ring-1 focus-within:ring-primary/40'}`, children: [
|
|
187
|
+
: 'bg-card border border-border focus-within:border-primary/60 focus-within:ring-1 focus-within:ring-primary/40'}`, children: [hasFiles && (_jsxs("div", { className: "flex flex-wrap gap-2 px-3 pt-2 pb-1", children: [images.map((img) => (_jsxs("div", { className: "relative group w-12 h-12 rounded-lg overflow-hidden bg-muted", children: [_jsx("img", { src: img.preview, alt: "Attachment", className: "w-full h-full object-cover" }), _jsx("button", { type: "button", onClick: () => onFileRemove?.(img.id), className: "absolute top-0 right-0 p-0.5 bg-black/60 rounded-bl-md opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx(X, { className: "w-3 h-3 text-white" }) })] }, img.id))), documents.map((doc) => (_jsxs("div", { className: "relative group flex items-center gap-2 px-3 py-2 rounded-lg bg-muted max-w-[200px]", children: [doc.type === 'pdf' ? (_jsx(FileIcon, { className: "w-4 h-4 text-red-500 flex-shrink-0" })) : (_jsx(FileText, { className: "w-4 h-4 text-blue-500 flex-shrink-0" })), _jsx("span", { className: "text-xs truncate", children: doc.name }), _jsx("button", { type: "button", onClick: () => onFileRemove?.(doc.id), className: "absolute top-0 right-0 p-0.5 bg-black/60 rounded-bl-md opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx(X, { className: "w-3 h-3 text-white" }) })] }, doc.id)))] })), _jsxs("div", { className: "flex items-end gap-1", children: [onConfigClick && (_jsx("button", { type: "button", onClick: onConfigClick, className: "flex items-center justify-center w-10 h-10 rounded-full hover:bg-background/50 active:bg-background/70 transition-colors text-muted-foreground hover:text-foreground flex-shrink-0 touch-manipulation", children: _jsx(MoreVertical, { className: "w-4 h-4" }) })), _jsx(Textarea, { ref: textareaRef, value: message, onChange: handleChange, onKeyDown: handleKeyDown, onPaste: handleTextareaPaste, placeholder: isPlanMode
|
|
186
188
|
? 'Plan mode - Type a message...'
|
|
187
189
|
: 'Type a message...', disabled: disabled, rows: 1, className: `border-0 bg-transparent pl-1 pr-2 py-2 max-h-[200px] overflow-y-auto leading-normal resize-none scrollbar-hide text-base ${preferences.vimMode && vimMode === 'normal'
|
|
188
190
|
? 'caret-[6px]'
|
|
189
|
-
: ''}`, style: { height: '2.5rem' } }), _jsx("button", { type: "button", onClick: handleSend, disabled: disabled || (!message.trim() && !
|
|
191
|
+
: ''}`, style: { height: '2.5rem' } }), _jsx("button", { type: "button", onClick: handleSend, disabled: disabled || (!message.trim() && !hasFiles), className: `flex items-center justify-center w-10 h-10 rounded-full transition-colors flex-shrink-0 touch-manipulation ${message.trim() || hasFiles
|
|
190
192
|
? 'bg-primary hover:bg-primary/90 active:bg-primary/80 text-primary-foreground'
|
|
191
193
|
: 'bg-transparent text-muted-foreground'}`, children: _jsx(ArrowUp, { className: "w-4 h-4" }) })] })] }), (reasoningEnabled || visionEnabled) && (_jsxs("div", { className: "flex items-center justify-between mt-1 px-3", children: [_jsx("div", { children: reasoningEnabled && (_jsxs("span", { className: "text-[10px] text-indigo-600 dark:text-indigo-300 flex items-center gap-1", children: [_jsx(Brain, { className: "h-3 w-3" }), "Extended thinking enabled"] })) }), _jsx("div", { children: visionEnabled && (_jsxs("span", { className: "text-[10px] text-emerald-600 dark:text-emerald-400 flex items-center gap-1", children: [_jsx(ImageIcon, { className: "h-3 w-3" }), "Supports images"] })) })] })), showFileMention && !filesLoading && (_jsx(FileMentionPopup, { files: files, changedFiles: changedFiles, query: mentionQuery, selectedIndex: mentionSelectedIndex, onSelect: handleMentionSelect, onEnterSelect: handleMentionEnterSelect, onClose: handleMentionClose })), showCommandSuggestions && (_jsx(CommandSuggestionsPopup, { query: commandQuery, selectedIndex: commandSelectedIndex, onSelect: handleCommandSelect, onEnterSelect: handleCommandEnterSelect, onClose: handleCommandClose })), _jsx(ShortcutsModal, { isOpen: showShortcutsModal, onClose: () => setShowShortcutsModal(false) })] }) })] }));
|
|
192
194
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,WAAW,EACX,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,OAAO,GACP,MAAM,OAAO,CAAC;AAGf,OAAO,
|
|
1
|
+
{"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInputContainer.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInputContainer.tsx"],"names":[],"mappings":"AAmBA,UAAU,uBAAuB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ChatInputContainer.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInputContainer.tsx"],"names":[],"mappings":"AAmBA,UAAU,uBAAuB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,sHAyQ9B,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { useAllModels } from '../../hooks/useConfig';
|
|
|
6
6
|
import { usePreferences } from '../../hooks/usePreferences';
|
|
7
7
|
import { useGitStatus, useStageFiles } from '../../hooks/useGit';
|
|
8
8
|
import { useGitStore } from '../../stores/gitStore';
|
|
9
|
-
import {
|
|
9
|
+
import { useFileUpload } from '../../hooks/useFileUpload';
|
|
10
10
|
import { ChatInput } from './ChatInput';
|
|
11
11
|
import { ConfigModal } from './ConfigModal';
|
|
12
12
|
export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({ sessionId, userContext, onNewSession }, ref) {
|
|
@@ -25,7 +25,7 @@ export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({
|
|
|
25
25
|
const { data: gitStatus } = useGitStatus();
|
|
26
26
|
const stageFiles = useStageFiles();
|
|
27
27
|
const openCommitModal = useGitStore((state) => state.openCommitModal);
|
|
28
|
-
const { images, isDragging,
|
|
28
|
+
const { images, documents, isDragging, removeFile, clearFiles, handlePaste, } = useFileUpload();
|
|
29
29
|
const modelSupportsReasoning = allModels?.[provider]?.models?.find((m) => m.id === model)?.reasoning;
|
|
30
30
|
const modelSupportsVision = allModels?.[provider]?.models?.find((m) => m.id === model)?.vision;
|
|
31
31
|
useEffect(() => {
|
|
@@ -51,9 +51,19 @@ export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({
|
|
|
51
51
|
mediaType: img.mediaType,
|
|
52
52
|
}))
|
|
53
53
|
: undefined;
|
|
54
|
+
const fileData = documents.length > 0
|
|
55
|
+
? documents.map((f) => ({
|
|
56
|
+
type: f.type,
|
|
57
|
+
name: f.name,
|
|
58
|
+
data: f.data,
|
|
59
|
+
mediaType: f.mediaType,
|
|
60
|
+
textContent: f.textContent,
|
|
61
|
+
}))
|
|
62
|
+
: undefined;
|
|
54
63
|
await sendMessage.mutateAsync({
|
|
55
64
|
content,
|
|
56
65
|
images: imageData,
|
|
66
|
+
files: fileData,
|
|
57
67
|
agent: agent || undefined,
|
|
58
68
|
provider: provider || undefined,
|
|
59
69
|
model: model || undefined,
|
|
@@ -62,15 +72,16 @@ export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({
|
|
|
62
72
|
? true
|
|
63
73
|
: undefined,
|
|
64
74
|
});
|
|
65
|
-
|
|
75
|
+
clearFiles();
|
|
66
76
|
}
|
|
67
77
|
catch (error) {
|
|
68
78
|
console.error('Failed to send message:', error);
|
|
69
79
|
}
|
|
70
80
|
}, [
|
|
71
81
|
sendMessage,
|
|
82
|
+
documents,
|
|
72
83
|
images,
|
|
73
|
-
|
|
84
|
+
clearFiles,
|
|
74
85
|
agent,
|
|
75
86
|
provider,
|
|
76
87
|
model,
|
|
@@ -173,6 +184,6 @@ export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({
|
|
|
173
184
|
console.error('Failed to switch agent:', error);
|
|
174
185
|
}
|
|
175
186
|
}, [updateSession]);
|
|
176
|
-
return (_jsxs(_Fragment, { children: [_jsx(ConfigModal, { isOpen: isConfigOpen, onClose: handleCloseConfig, initialFocus: configFocusTarget, chatInputRef: chatInputRef, agent: agent, provider: provider, model: model, modelSupportsReasoning: modelSupportsReasoning, onAgentChange: handleAgentChange, onProviderChange: handleProviderChange, onModelChange: handleModelChange, onModelSelectorChange: handleModelSelectorChange }), _jsx(ChatInput, { ref: chatInputRef, onSend: handleSendMessage, onCommand: handleCommand, disabled: sendMessage.isPending, onConfigClick: handleToggleConfig, onPlanModeToggle: handlePlanModeToggle, isPlanMode: agent === 'plan', reasoningEnabled: modelSupportsReasoning && preferences.reasoningEnabled, sessionId: sessionId, images: images,
|
|
187
|
+
return (_jsxs(_Fragment, { children: [_jsx(ConfigModal, { isOpen: isConfigOpen, onClose: handleCloseConfig, initialFocus: configFocusTarget, chatInputRef: chatInputRef, agent: agent, provider: provider, model: model, modelSupportsReasoning: modelSupportsReasoning, onAgentChange: handleAgentChange, onProviderChange: handleProviderChange, onModelChange: handleModelChange, onModelSelectorChange: handleModelSelectorChange }), _jsx(ChatInput, { ref: chatInputRef, onSend: handleSendMessage, onCommand: handleCommand, disabled: sendMessage.isPending, onConfigClick: handleToggleConfig, onPlanModeToggle: handlePlanModeToggle, isPlanMode: agent === 'plan', reasoningEnabled: modelSupportsReasoning && preferences.reasoningEnabled, sessionId: sessionId, images: images, documents: documents, onFileRemove: removeFile, isDragging: isDragging, onPaste: handlePaste, visionEnabled: modelSupportsVision }, inputKey)] }));
|
|
177
188
|
}));
|
|
178
189
|
//# sourceMappingURL=ChatInputContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInputContainer.js","sourceRoot":"","sources":["../../../src/components/chat/ChatInputContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EACN,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,SAAS,EACT,MAAM,EACN,UAAU,EACV,mBAAmB,GACnB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ChatInputContainer.js","sourceRoot":"","sources":["../../../src/components/chat/ChatInputContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitDiffPanel.d.ts","sourceRoot":"","sources":["../../../src/components/git/GitDiffPanel.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"GitDiffPanel.d.ts","sourceRoot":"","sources":["../../../src/components/git/GitDiffPanel.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,YAAY,8CA+FvB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, memo } from 'react';
|
|
2
|
+
import { useEffect, useRef, memo } from 'react';
|
|
3
3
|
import { X } from 'lucide-react';
|
|
4
4
|
import { useGitStore } from '../../stores/gitStore';
|
|
5
5
|
import { useSidebarStore } from '../../stores/sidebarStore';
|
|
@@ -12,29 +12,27 @@ export const GitDiffPanel = memo(function GitDiffPanel() {
|
|
|
12
12
|
const selectedFile = useGitStore((state) => state.selectedFile);
|
|
13
13
|
const selectedFileStaged = useGitStore((state) => state.selectedFileStaged);
|
|
14
14
|
const closeDiff = useGitStore((state) => state.closeDiff);
|
|
15
|
-
const wasCollapsedBeforeDiff = useSidebarStore((state) => state.wasCollapsedBeforeDiff);
|
|
16
|
-
const setWasCollapsedBeforeDiff = useSidebarStore((state) => state.setWasCollapsedBeforeDiff);
|
|
17
15
|
const setCollapsed = useSidebarStore((state) => state.setCollapsed);
|
|
16
|
+
const wasCollapsedRef = useRef(null);
|
|
17
|
+
const prevDiffOpenRef = useRef(false);
|
|
18
18
|
const { data: diff, isLoading } = useGitDiff(selectedFile, selectedFileStaged);
|
|
19
|
-
// Auto-collapse left sidebar when diff opens, and restore when it closes
|
|
20
19
|
useEffect(() => {
|
|
21
|
-
|
|
22
|
-
if (isDiffOpen) {
|
|
23
|
-
//
|
|
24
|
-
|
|
20
|
+
// Only act on transitions
|
|
21
|
+
if (isDiffOpen && !prevDiffOpenRef.current) {
|
|
22
|
+
// Diff just opened - save current state and collapse
|
|
23
|
+
const { isCollapsed } = useSidebarStore.getState();
|
|
24
|
+
wasCollapsedRef.current = isCollapsed;
|
|
25
25
|
setCollapsed(true);
|
|
26
26
|
}
|
|
27
|
-
else if (
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
else if (!isDiffOpen && prevDiffOpenRef.current) {
|
|
28
|
+
// Diff just closed - restore previous state
|
|
29
|
+
if (wasCollapsedRef.current !== null) {
|
|
30
|
+
setCollapsed(wasCollapsedRef.current);
|
|
31
|
+
wasCollapsedRef.current = null;
|
|
32
|
+
}
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
setWasCollapsedBeforeDiff,
|
|
35
|
-
setCollapsed,
|
|
36
|
-
wasCollapsedBeforeDiff,
|
|
37
|
-
]);
|
|
34
|
+
prevDiffOpenRef.current = isDiffOpen;
|
|
35
|
+
}, [isDiffOpen, setCollapsed]);
|
|
38
36
|
// Handle ESC key
|
|
39
37
|
useEffect(() => {
|
|
40
38
|
const handleEscape = (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitDiffPanel.js","sourceRoot":"","sources":["../../../src/components/git/GitDiffPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"GitDiffPanel.js","sourceRoot":"","sources":["../../../src/components/git/GitDiffPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,UAAU,qBAAqB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,UAAU,qBAAqB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CACjB;AAeD,eAAO,MAAM,gBAAgB,6DAmL5B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { memo, useState } from 'react';
|
|
3
|
-
import { User, X } from 'lucide-react';
|
|
3
|
+
import { User, X, FileText, FileIcon } from 'lucide-react';
|
|
4
4
|
import ReactMarkdown from 'react-markdown';
|
|
5
5
|
import remarkGfm from 'remark-gfm';
|
|
6
6
|
export const UserMessageGroup = memo(function UserMessageGroup({ message }) {
|
|
@@ -8,6 +8,7 @@ export const UserMessageGroup = memo(function UserMessageGroup({ message }) {
|
|
|
8
8
|
const parts = message.parts || [];
|
|
9
9
|
const textParts = parts.filter((p) => p.type === 'text');
|
|
10
10
|
const imageParts = parts.filter((p) => p.type === 'image');
|
|
11
|
+
const fileParts = parts.filter((p) => p.type === 'file');
|
|
11
12
|
const firstTextPart = textParts[0];
|
|
12
13
|
let content = '';
|
|
13
14
|
if (firstTextPart) {
|
|
@@ -34,6 +35,27 @@ export const UserMessageGroup = memo(function UserMessageGroup({ message }) {
|
|
|
34
35
|
}
|
|
35
36
|
catch { }
|
|
36
37
|
}
|
|
38
|
+
const files = [];
|
|
39
|
+
for (const part of fileParts) {
|
|
40
|
+
try {
|
|
41
|
+
const data = part.contentJson || JSON.parse(part.content || '{}');
|
|
42
|
+
if (data && typeof data === 'object' && 'type' in data) {
|
|
43
|
+
const fileData = data;
|
|
44
|
+
if (fileData.type === 'image' && fileData.data) {
|
|
45
|
+
const src = `data:${fileData.mediaType};base64,${fileData.data}`;
|
|
46
|
+
images.push({ id: part.id, src });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
files.push({
|
|
50
|
+
id: part.id,
|
|
51
|
+
type: fileData.type,
|
|
52
|
+
name: fileData.name,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch { }
|
|
58
|
+
}
|
|
37
59
|
const formatTime = (ts) => {
|
|
38
60
|
if (!ts)
|
|
39
61
|
return '';
|
|
@@ -45,9 +67,10 @@ export const UserMessageGroup = memo(function UserMessageGroup({ message }) {
|
|
|
45
67
|
};
|
|
46
68
|
const hasContent = content.trim().length > 0;
|
|
47
69
|
const hasImages = images.length > 0;
|
|
48
|
-
|
|
70
|
+
const hasFiles = files.length > 0;
|
|
71
|
+
if (!hasContent && !hasImages && !hasFiles)
|
|
49
72
|
return null;
|
|
50
|
-
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "relative pb-8 pt-6", children: _jsxs("div", { className: "flex gap-3 md:gap-4 justify-end", children: [_jsxs("div", { className: "flex flex-col items-end min-w-0 flex-1 max-w-[calc(100%-3rem)] md:max-w-2xl", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground pb-2 justify-end", children: [_jsx("span", { className: "font-medium text-emerald-700 dark:text-emerald-300", children: "You" }), message.createdAt && _jsx("span", { children: "\u00B7" }), message.createdAt && (_jsx("span", { children: formatTime(message.createdAt) }))] }), _jsxs("div", { className: "inline-block max-w-full text-sm text-foreground leading-relaxed bg-emerald-500/5 border border-emerald-500/20 rounded-xl px-4 py-3 [word-break:break-word] overflow-hidden", children: [hasImages && (_jsx("div", { className: "flex flex-wrap gap-2 mb-2", children: images.map((img) => (_jsx("button", { type: "button", onClick: () => setExpandedImage(img.src), className: "w-16 h-16 rounded-lg overflow-hidden bg-muted hover:ring-2 hover:ring-primary/50 transition-all", children: _jsx("img", { src: img.src, alt: "Attachment", className: "w-full h-full object-cover" }) }, img.id))) })), hasContent && (_jsx("div", { className: "prose prose-invert prose-sm [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 [&_*]:[word-break:break-word] [&_*]:overflow-wrap-anywhere", children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: content }) }))] })] }), _jsx("div", { className: "flex-shrink-0 w-8 flex items-start justify-center", children: _jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 border-emerald-500/50 bg-emerald-500/20 dark:bg-emerald-500/10 relative bg-background", children: _jsx(User, { className: "h-4 w-4 text-emerald-700 dark:text-emerald-300" }) }) })] }) }), expandedImage && (_jsxs("div", { role: "dialog", "aria-modal": "true", className: "fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4", onClick: () => setExpandedImage(null), onKeyDown: (e) => e.key === 'Escape' && setExpandedImage(null), tabIndex: -1, children: [_jsx("button", { type: "button", onClick: () => setExpandedImage(null), className: "absolute top-4 right-4 p-2 rounded-full bg-white/10 hover:bg-white/20 transition-colors", children: _jsx(X, { className: "w-6 h-6 text-white" }) }), _jsx("img", { src: expandedImage, alt: "Expanded attachment", className: "max-w-full max-h-full object-contain rounded-lg", onClick: (e) => e.stopPropagation(), onKeyDown: (e) => e.key === 'Enter' && e.stopPropagation() })] }))] }));
|
|
73
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "relative pb-8 pt-6", children: _jsxs("div", { className: "flex gap-3 md:gap-4 justify-end", children: [_jsxs("div", { className: "flex flex-col items-end min-w-0 flex-1 max-w-[calc(100%-3rem)] md:max-w-2xl", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground pb-2 justify-end", children: [_jsx("span", { className: "font-medium text-emerald-700 dark:text-emerald-300", children: "You" }), message.createdAt && _jsx("span", { children: "\u00B7" }), message.createdAt && (_jsx("span", { children: formatTime(message.createdAt) }))] }), _jsxs("div", { className: "inline-block max-w-full text-sm text-foreground leading-relaxed bg-emerald-500/5 border border-emerald-500/20 rounded-xl px-4 py-3 [word-break:break-word] overflow-hidden", children: [hasImages && (_jsx("div", { className: "flex flex-wrap gap-2 mb-2", children: images.map((img) => (_jsx("button", { type: "button", onClick: () => setExpandedImage(img.src), className: "w-16 h-16 rounded-lg overflow-hidden bg-muted hover:ring-2 hover:ring-primary/50 transition-all", children: _jsx("img", { src: img.src, alt: "Attachment", className: "w-full h-full object-cover" }) }, img.id))) })), hasFiles && (_jsx("div", { className: "flex flex-wrap gap-2 mb-2", children: files.map((file) => (_jsxs("div", { className: "flex items-center gap-2 px-3 py-2 rounded-lg bg-muted/50 border border-border", children: [file.type === 'pdf' ? (_jsx(FileIcon, { className: "w-4 h-4 text-red-500 flex-shrink-0" })) : (_jsx(FileText, { className: "w-4 h-4 text-blue-500 flex-shrink-0" })), _jsx("span", { className: "text-xs truncate max-w-[150px]", children: file.name })] }, file.id))) })), hasContent && (_jsx("div", { className: "prose prose-invert prose-sm [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 [&_*]:[word-break:break-word] [&_*]:overflow-wrap-anywhere", children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: content }) }))] })] }), _jsx("div", { className: "flex-shrink-0 w-8 flex items-start justify-center", children: _jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 border-emerald-500/50 bg-emerald-500/20 dark:bg-emerald-500/10 relative bg-background", children: _jsx(User, { className: "h-4 w-4 text-emerald-700 dark:text-emerald-300" }) }) })] }) }), expandedImage && (_jsxs("div", { role: "dialog", "aria-modal": "true", className: "fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4", onClick: () => setExpandedImage(null), onKeyDown: (e) => e.key === 'Escape' && setExpandedImage(null), tabIndex: -1, children: [_jsx("button", { type: "button", onClick: () => setExpandedImage(null), className: "absolute top-4 right-4 p-2 rounded-full bg-white/10 hover:bg-white/20 transition-colors", children: _jsx(X, { className: "w-6 h-6 text-white" }) }), _jsx("img", { src: expandedImage, alt: "Expanded attachment", className: "max-w-full max-h-full object-contain rounded-lg", onClick: (e) => e.stopPropagation(), onKeyDown: (e) => e.key === 'Enter' && e.stopPropagation() })] }))] }));
|
|
51
74
|
}, (prevProps, nextProps) => {
|
|
52
75
|
const prevFirstPart = prevProps.message.parts?.[0];
|
|
53
76
|
const nextFirstPart = nextProps.message.parts?.[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMessageGroup.js","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"UserMessageGroup.js","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,21 +29,21 @@ export function BashRenderer({ contentJson, toolDurationMs, isExpanded, onToggle
|
|
|
29
29
|
const hasStderr = stderr.length > 0;
|
|
30
30
|
const combinedOutput = stdout + (stdout && stderr ? '\n' : '') + stderr;
|
|
31
31
|
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "bash", isExpanded: isExpanded, onToggle: onToggle, isError: isError, colorVariant: "default", canExpand: true, children: [_jsx(ToolHeaderSeparator, {}), _jsx("span", { className: "text-foreground/70 min-w-0 truncate", title: cmd, children: cmd }), !hasToolError && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), exitCode === 0 ? (_jsxs(ToolHeaderSuccess, { children: ["exit ", exitCode] })) : (_jsxs(ToolHeaderError, { children: ["exit ", exitCode] })), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] })), hasToolError && _jsxs(ToolHeaderMeta, { children: ["\u00B7 ", timeStr] })] }), isExpanded && hasToolError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasToolError && (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-2 max-w-full", children: [_jsx(ToolContentBox, { title: "command", icon: _jsx(Terminal, { className: "h-3 w-3" }), subtitle: cwd && cwd !== '.' ? `in ${cwd}` : undefined, copyText: cmd, maxHeight: "", children: _jsx("div", { className: "px-3 py-2 font-mono text-xs bg-muted/10 break-all", children: cmd }) }), hasOutput &&
|
|
32
|
-
(exitCode === 0 ? (_jsx(ToolContentBox, { title: "output", copyText: combinedOutput, maxHeight: "max-h-
|
|
32
|
+
(exitCode === 0 ? (_jsx(ToolContentBox, { title: "output", copyText: combinedOutput, maxHeight: "max-h-[30rem]", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
33
33
|
margin: 0,
|
|
34
34
|
padding: '0.75rem',
|
|
35
35
|
fontSize: '0.75rem',
|
|
36
36
|
lineHeight: '1.5',
|
|
37
37
|
background: 'transparent',
|
|
38
38
|
maxWidth: '100%',
|
|
39
|
-
}, wrapLines: true, wrapLongLines: true, children: combinedOutput }) })) : (_jsxs(_Fragment, { children: [stdout && (_jsx(ToolContentBox, { title: "stdout", copyText: stdout, maxHeight: "max-h-
|
|
39
|
+
}, wrapLines: true, wrapLongLines: true, children: combinedOutput }) })) : (_jsxs(_Fragment, { children: [stdout && (_jsx(ToolContentBox, { title: "stdout", copyText: stdout, maxHeight: "max-h-60", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
40
40
|
margin: 0,
|
|
41
41
|
padding: '0.75rem',
|
|
42
42
|
fontSize: '0.75rem',
|
|
43
43
|
lineHeight: '1.5',
|
|
44
44
|
background: 'transparent',
|
|
45
45
|
maxWidth: '100%',
|
|
46
|
-
}, wrapLines: true, wrapLongLines: true, children: stdout }) })), hasStderr && (_jsx(ToolContentBox, { title: "stderr", copyText: stderr, variant: "error", maxHeight: "max-h-
|
|
46
|
+
}, wrapLines: true, wrapLongLines: true, children: stdout }) })), hasStderr && (_jsx(ToolContentBox, { title: "stderr", copyText: stderr, variant: "error", maxHeight: "max-h-60", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
47
47
|
margin: 0,
|
|
48
48
|
padding: '0.75rem',
|
|
49
49
|
fontSize: '0.75rem',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/BashRenderer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BashRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/BashRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodosRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TodosRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,wBAAgB,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,aAAa,2CA+C3D"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { CheckCircle2, Circle, ArrowRight } from 'lucide-react';
|
|
3
|
-
export function
|
|
2
|
+
import { CheckCircle2, Circle, ArrowRight, XCircle } from 'lucide-react';
|
|
3
|
+
export function TodosRenderer({ contentJson }) {
|
|
4
4
|
const result = (contentJson.result || {});
|
|
5
5
|
const items = result.items || [];
|
|
6
6
|
const note = result.note;
|
|
7
|
-
return (_jsx("div", { className: "text-xs", children: _jsxs("div", { className: "bg-blue-500/10 border border-blue-500/30 dark:bg-blue-500/5 dark:border-blue-500/20 rounded-lg p-3 space-y-2", children: [note && (_jsx("div", { className: "text-blue-700 dark:text-blue-300 text-sm font-medium mb-3", children: note })), _jsx("div", { className: "space-y-1.5", children: items.map((item, idx) => (_jsxs("div", { className: "flex items-start gap-2", children: [item.status === 'completed' && (_jsx(CheckCircle2, { className: "h-4 w-4 text-emerald-600 dark:text-emerald-300 flex-shrink-0 mt-0.5" })), item.status === 'in_progress' && (_jsx(ArrowRight, { className: "h-4 w-4 text-blue-700 dark:text-blue-300 flex-shrink-0 mt-0.5 animate-pulse" })), item.status === 'pending' && (_jsx(Circle, { className: "h-4 w-4 text-muted-foreground flex-shrink-0 mt-0.5" })), _jsx("span", { className: `text-sm ${item.status === 'completed'
|
|
7
|
+
return (_jsx("div", { className: "text-xs", children: _jsxs("div", { className: "bg-blue-500/10 border border-blue-500/30 dark:bg-blue-500/5 dark:border-blue-500/20 rounded-lg p-3 space-y-2", children: [note && (_jsx("div", { className: "text-blue-700 dark:text-blue-300 text-sm font-medium mb-3", children: note })), _jsx("div", { className: "space-y-1.5", children: items.map((item, idx) => (_jsxs("div", { className: "flex items-start gap-2", children: [item.status === 'completed' && (_jsx(CheckCircle2, { className: "h-4 w-4 text-emerald-600 dark:text-emerald-300 flex-shrink-0 mt-0.5" })), item.status === 'in_progress' && (_jsx(ArrowRight, { className: "h-4 w-4 text-blue-700 dark:text-blue-300 flex-shrink-0 mt-0.5 animate-pulse" })), item.status === 'pending' && (_jsx(Circle, { className: "h-4 w-4 text-muted-foreground flex-shrink-0 mt-0.5" })), item.status === 'cancelled' && (_jsx(XCircle, { className: "h-4 w-4 text-muted-foreground/50 flex-shrink-0 mt-0.5" })), _jsx("span", { className: `text-sm ${item.status === 'completed'
|
|
8
8
|
? 'text-muted-foreground line-through'
|
|
9
9
|
: item.status === 'in_progress'
|
|
10
10
|
? 'text-foreground'
|
|
11
|
-
:
|
|
11
|
+
: item.status === 'cancelled'
|
|
12
|
+
? 'text-muted-foreground/50 line-through'
|
|
13
|
+
: 'text-muted-foreground/80'}`, children: item.step })] }, `${item.step}-${idx}`))) })] }) }));
|
|
12
14
|
}
|
|
13
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=TodosRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodosRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TodosRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAazE,MAAM,UAAU,aAAa,CAAC,EAAE,WAAW,EAAiB;IAC3D,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAgB,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,OAAO,CACN,cAAK,SAAS,EAAC,SAAS,YACvB,eAAK,SAAS,EAAC,8GAA8G,aAC3H,IAAI,IAAI,CACR,cAAK,SAAS,EAAC,2DAA2D,YACxE,IAAI,GACA,CACN,EACD,cAAK,SAAS,EAAC,aAAa,YAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CACzB,eAAiC,SAAS,EAAC,wBAAwB,aACjE,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,CAC/B,KAAC,YAAY,IAAC,SAAS,EAAC,qEAAqE,GAAG,CAChG,EACA,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,CACjC,KAAC,UAAU,IAAC,SAAS,EAAC,6EAA6E,GAAG,CACtG,EACA,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAC7B,KAAC,MAAM,IAAC,SAAS,EAAC,oDAAoD,GAAG,CACzE,EACA,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,CAC/B,KAAC,OAAO,IAAC,SAAS,EAAC,uDAAuD,GAAG,CAC7E,EACD,eACC,SAAS,EAAE,WACV,IAAI,CAAC,MAAM,KAAK,WAAW;oCAC1B,CAAC,CAAC,oCAAoC;oCACtC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa;wCAC9B,CAAC,CAAC,iBAAiB;wCACnB,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW;4CAC5B,CAAC,CAAC,uCAAuC;4CACzC,CAAC,CAAC,0BACN,EAAE,YAED,IAAI,CAAC,IAAI,GACJ,KAzBE,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CA0BzB,CACN,CAAC,GACG,IACD,GACD,CACN,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAoB3C,UAAU,uBAAuB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAoB3C,UAAU,uBAAuB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAiDD,wBAAgB,kBAAkB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,KAAK,GACL,EAAE,uBAAuB,2CAsDzB;AAED,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -14,7 +14,7 @@ import { SearchRenderer } from './SearchRenderer';
|
|
|
14
14
|
import { FinishRenderer } from './FinishRenderer';
|
|
15
15
|
import { GenericRenderer } from './GenericRenderer';
|
|
16
16
|
import { DebugRenderer } from './DebugRenderer';
|
|
17
|
-
import {
|
|
17
|
+
import { TodosRenderer } from './TodosRenderer';
|
|
18
18
|
import { ProgressUpdateRenderer } from './ProgressUpdateRenderer';
|
|
19
19
|
import { WebSearchRenderer } from './WebSearchRenderer';
|
|
20
20
|
import { ErrorRenderer } from './ErrorRenderer';
|
|
@@ -47,7 +47,8 @@ const TOOL_NAME_ALIASES = {
|
|
|
47
47
|
// Patch/edit
|
|
48
48
|
ApplyPatch: 'apply_patch',
|
|
49
49
|
// Task management
|
|
50
|
-
|
|
50
|
+
UpdateTodos: 'update_todos',
|
|
51
|
+
UpdatePlan: 'update_todos', // Legacy data compatibility
|
|
51
52
|
ProgressUpdate: 'progress_update',
|
|
52
53
|
Finish: 'finish',
|
|
53
54
|
// Web operations
|
|
@@ -97,8 +98,9 @@ export function ToolResultRenderer({ toolName, contentJson, toolDurationMs, debu
|
|
|
97
98
|
return _jsx(WebSearchRenderer, { ...props });
|
|
98
99
|
case 'finish':
|
|
99
100
|
return _jsx(FinishRenderer, { ...props });
|
|
100
|
-
case '
|
|
101
|
-
|
|
101
|
+
case 'update_todos':
|
|
102
|
+
case 'update_plan': // Legacy data compatibility
|
|
103
|
+
return _jsx(TodosRenderer, { ...props });
|
|
102
104
|
case 'progress_update':
|
|
103
105
|
return _jsx(ProgressUpdateRenderer, { ...props });
|
|
104
106
|
case 'error':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAShD;;;;;;GAMG;AACH,MAAM,iBAAiB,GAA2B;IACjD,yBAAyB;IACzB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,KAAK;IAEV,oBAAoB;IACpB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IAEf,YAAY;IACZ,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IAEpB,iBAAiB;IACjB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,YAAY;IAEvB,aAAa;IACb,UAAU,EAAE,aAAa;IAEzB,kBAAkB;IAClB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,cAAc,EAAE,4BAA4B;IACxD,cAAc,EAAE,iBAAiB;IACjC,MAAM,EAAE,QAAQ;IAEhB,iBAAiB;IACjB,SAAS,EAAE,WAAW;CACtB,CAAC;AAEF,SAAS,iBAAiB,CAAC,IAAY;IACtC,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,KAAK,GACoB;IACzB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG;QACb,WAAW;QACX,cAAc,EAAE,cAAc,IAAI,SAAS;QAC3C,UAAU;QACV,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC;KAC1C,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,KAAC,aAAa,OAAK,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IACzD,CAAC;IAED,QAAQ,cAAc,EAAE,CAAC;QACxB,KAAK,MAAM;YACV,OAAO,KAAC,YAAY,OAAK,KAAK,GAAI,CAAC;QACpC,KAAK,OAAO;YACX,OAAO,KAAC,aAAa,OAAK,KAAK,GAAI,CAAC;QACrC,KAAK,MAAM;YACV,OAAO,KAAC,YAAY,OAAK,KAAK,GAAI,CAAC;QACpC,KAAK,MAAM;YACV,OAAO,KAAC,YAAY,OAAK,KAAK,GAAI,CAAC;QACpC,KAAK,YAAY;YAChB,OAAO,KAAC,iBAAiB,OAAK,KAAK,GAAI,CAAC;QACzC,KAAK,UAAU;YACd,OAAO,KAAC,eAAe,OAAK,KAAK,GAAI,CAAC;QACvC,KAAK,YAAY;YAChB,OAAO,KAAC,iBAAiB,OAAK,KAAK,GAAI,CAAC;QACzC,KAAK,aAAa;YACjB,OAAO,KAAC,kBAAkB,OAAK,KAAK,GAAI,CAAC;QAC1C,KAAK,IAAI;YACR,OAAO,KAAC,YAAY,OAAK,KAAK,GAAI,CAAC;QACpC,KAAK,MAAM;YACV,OAAO,KAAC,YAAY,OAAK,KAAK,GAAI,CAAC;QACpC,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACV,OAAO,KAAC,cAAc,OAAK,KAAK,GAAI,CAAC;QACtC,KAAK,WAAW;YACf,OAAO,KAAC,iBAAiB,OAAK,KAAK,GAAI,CAAC;QACzC,KAAK,QAAQ;YACZ,OAAO,KAAC,cAAc,OAAK,KAAK,GAAI,CAAC;QACtC,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa,EAAE,4BAA4B;YAC/C,OAAO,KAAC,aAAa,OAAK,KAAK,GAAI,CAAC;QACrC,KAAK,iBAAiB;YACrB,OAAO,KAAC,sBAAsB,OAAK,KAAK,GAAI,CAAC;QAC9C,KAAK,OAAO;YACX,OAAO,KAAC,aAAa,OAAK,KAAK,GAAI,CAAC;QACrC;YACC,OAAO,KAAC,eAAe,OAAK,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IAC5D,CAAC;AACF,CAAC;AAED,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionFilesDiffPanel.d.ts","sourceRoot":"","sources":["../../../src/components/session-files/SessionFilesDiffPanel.tsx"],"names":[],"mappings":"AAmVA,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"SessionFilesDiffPanel.d.ts","sourceRoot":"","sources":["../../../src/components/session-files/SessionFilesDiffPanel.tsx"],"names":[],"mappings":"AAmVA,eAAO,MAAM,qBAAqB,8CAgNhC,CAAC"}
|