@agi-cli/web-sdk 0.1.76 → 0.1.78

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 (45) hide show
  1. package/dist/components/chat/ChatInput.d.ts +2 -0
  2. package/dist/components/chat/ChatInput.d.ts.map +1 -1
  3. package/dist/components/chat/ChatInput.js +21 -9
  4. package/dist/components/chat/ChatInput.js.map +1 -1
  5. package/dist/components/chat/ChatInputContainer.d.ts.map +1 -1
  6. package/dist/components/chat/ChatInputContainer.js +65 -9
  7. package/dist/components/chat/ChatInputContainer.js.map +1 -1
  8. package/dist/components/chat/ConfigModal.d.ts +2 -1
  9. package/dist/components/chat/ConfigModal.d.ts.map +1 -1
  10. package/dist/components/chat/ConfigModal.js +14 -34
  11. package/dist/components/chat/ConfigModal.js.map +1 -1
  12. package/dist/components/chat/UnifiedAgentSelector.d.ts +9 -0
  13. package/dist/components/chat/UnifiedAgentSelector.d.ts.map +1 -0
  14. package/dist/components/chat/UnifiedAgentSelector.js +45 -0
  15. package/dist/components/chat/UnifiedAgentSelector.js.map +1 -0
  16. package/dist/components/chat/UnifiedModelSelector.d.ts +9 -0
  17. package/dist/components/chat/UnifiedModelSelector.d.ts.map +1 -0
  18. package/dist/components/chat/UnifiedModelSelector.js +74 -0
  19. package/dist/components/chat/UnifiedModelSelector.js.map +1 -0
  20. package/dist/components/messages/renderers/ApplyPatchRenderer.d.ts.map +1 -1
  21. package/dist/components/messages/renderers/ApplyPatchRenderer.js +20 -1
  22. package/dist/components/messages/renderers/ApplyPatchRenderer.js.map +1 -1
  23. package/dist/components/messages/renderers/ReadRenderer.d.ts.map +1 -1
  24. package/dist/components/messages/renderers/ReadRenderer.js +16 -2
  25. package/dist/components/messages/renderers/ReadRenderer.js.map +1 -1
  26. package/dist/components/messages/renderers/types.d.ts +13 -0
  27. package/dist/components/messages/renderers/types.d.ts.map +1 -1
  28. package/dist/components/sessions/LeanHeader.d.ts.map +1 -1
  29. package/dist/components/sessions/LeanHeader.js +2 -5
  30. package/dist/components/sessions/LeanHeader.js.map +1 -1
  31. package/dist/hooks/useConfig.d.ts +1 -0
  32. package/dist/hooks/useConfig.d.ts.map +1 -1
  33. package/dist/hooks/useConfig.js +6 -0
  34. package/dist/hooks/useConfig.js.map +1 -1
  35. package/dist/hooks/useSessions.d.ts +3 -1
  36. package/dist/hooks/useSessions.d.ts.map +1 -1
  37. package/dist/hooks/useSessions.js +14 -0
  38. package/dist/hooks/useSessions.js.map +1 -1
  39. package/dist/lib/api-client.d.ts +3 -1
  40. package/dist/lib/api-client.d.ts.map +1 -1
  41. package/dist/lib/api-client.js +32 -0
  42. package/dist/lib/api-client.js.map +1 -1
  43. package/dist/types/api.d.ts +16 -0
  44. package/dist/types/api.d.ts.map +1 -1
  45. package/package.json +2 -2
@@ -2,6 +2,8 @@ interface ChatInputProps {
2
2
  onSend: (message: string) => void;
3
3
  disabled?: boolean;
4
4
  onConfigClick?: () => void;
5
+ onPlanModeToggle?: (isPlanMode: boolean) => void;
6
+ isPlanMode?: boolean;
5
7
  }
6
8
  export declare const ChatInput: import("react").NamedExoticComponent<ChatInputProps & import("react").RefAttributes<{
7
9
  focus: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":"AAaA,UAAU,cAAc;IACvB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS;WACD,MAAM,IAAI;GAoG9B,CAAC"}
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":"AAaA,UAAU,cAAc;IACvB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,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;CACrB;AAED,eAAO,MAAM,SAAS;WACD,MAAM,IAAI;GA4H9B,CAAC"}
@@ -2,28 +2,31 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, useRef, useEffect, useCallback, memo, forwardRef, useImperativeHandle, } from 'react';
3
3
  import { ArrowUp, MoreVertical } from 'lucide-react';
4
4
  import { Textarea } from '../ui/Textarea';
5
- export const ChatInput = memo(forwardRef(function ChatInput({ onSend, disabled, onConfigClick }, ref) {
5
+ export const ChatInput = memo(forwardRef(function ChatInput({ onSend, disabled, onConfigClick, onPlanModeToggle, isPlanMode: externalIsPlanMode, }, ref) {
6
6
  const [message, setMessage] = useState('');
7
+ const [isPlanMode, setIsPlanMode] = useState(externalIsPlanMode || false);
7
8
  const textareaRef = useRef(null);
8
9
  useEffect(() => {
9
10
  textareaRef.current?.focus();
10
11
  }, []);
12
+ useEffect(() => {
13
+ if (externalIsPlanMode !== undefined) {
14
+ setIsPlanMode(externalIsPlanMode);
15
+ }
16
+ }, [externalIsPlanMode]);
11
17
  useImperativeHandle(ref, () => ({
12
18
  focus: () => {
13
19
  textareaRef.current?.focus();
14
20
  },
15
21
  }));
16
- // Auto-resize textarea based on content
17
22
  const adjustTextareaHeight = useCallback(() => {
18
23
  const textarea = textareaRef.current;
19
24
  if (textarea) {
20
- // Reset height to auto to get the correct scrollHeight
21
25
  textarea.style.height = 'auto';
22
- // Set height to scrollHeight (content height)
23
26
  textarea.style.height = `${textarea.scrollHeight}px`;
24
27
  }
25
28
  }, []);
26
- // biome-ignore lint/correctness/useExhaustiveDependencies: message dependency needed to trigger height adjustment when content changes
29
+ // biome-ignore lint/correctness/useExhaustiveDependencies: message dependency required for adjusting textarea height on content change
27
30
  useEffect(() => {
28
31
  adjustTextareaHeight();
29
32
  }, [adjustTextareaHeight, message]);
@@ -31,7 +34,6 @@ export const ChatInput = memo(forwardRef(function ChatInput({ onSend, disabled,
31
34
  if (message.trim() && !disabled) {
32
35
  onSend(message);
33
36
  setMessage('');
34
- // Reset textarea height after sending
35
37
  if (textareaRef.current) {
36
38
  textareaRef.current.style.height = 'auto';
37
39
  }
@@ -42,12 +44,22 @@ export const ChatInput = memo(forwardRef(function ChatInput({ onSend, disabled,
42
44
  setMessage(e.target.value);
43
45
  }, []);
44
46
  const handleKeyDown = useCallback((e) => {
45
- if (e.key === 'Enter' && !e.shiftKey) {
47
+ if (e.key === 'Tab') {
48
+ e.preventDefault();
49
+ const newPlanMode = !isPlanMode;
50
+ setIsPlanMode(newPlanMode);
51
+ onPlanModeToggle?.(newPlanMode);
52
+ }
53
+ else if (e.key === 'Enter' && !e.shiftKey) {
46
54
  e.preventDefault();
47
55
  handleSend();
48
56
  }
49
- }, [handleSend]);
50
- return (_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: _jsx("div", { className: "max-w-3xl mx-auto pointer-events-auto mb-2 md:mb-0", children: _jsxs("div", { className: "flex items-end gap-1 bg-card rounded-3xl border border-border p-1 focus-within:border-primary/60 focus-within:ring-1 focus-within:ring-primary/40 transition-colors touch-manipulation", 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, placeholder: "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", style: { height: '2.5rem' } }), _jsx("button", { type: "button", onClick: handleSend, disabled: disabled || !message.trim(), className: `flex items-center justify-center w-10 h-10 rounded-full transition-colors flex-shrink-0 touch-manipulation ${message.trim()
57
+ }, [handleSend, isPlanMode, onPlanModeToggle]);
58
+ return (_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: _jsx("div", { className: "max-w-3xl mx-auto pointer-events-auto mb-2 md:mb-0", children: _jsxs("div", { className: `flex items-end gap-1 rounded-3xl p-1 transition-all touch-manipulation ${isPlanMode
59
+ ? 'bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 focus-within:border-blue-300 dark:focus-within:border-blue-700 focus-within:ring-1 focus-within:ring-blue-200 dark:focus-within:ring-blue-800'
60
+ : 'bg-card border border-border focus-within:border-primary/60 focus-within:ring-1 focus-within:ring-primary/40'}`, 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, placeholder: isPlanMode
61
+ ? 'Plan mode - Type a message...'
62
+ : '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", style: { height: '2.5rem' } }), _jsx("button", { type: "button", onClick: handleSend, disabled: disabled || !message.trim(), className: `flex items-center justify-center w-10 h-10 rounded-full transition-colors flex-shrink-0 touch-manipulation ${message.trim()
51
63
  ? 'bg-primary hover:bg-primary/90 active:bg-primary/80 text-primary-foreground'
52
64
  : 'bg-transparent text-muted-foreground'}`, children: _jsx(ArrowUp, { className: "w-4 h-4" }) })] }) }) }));
53
65
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":"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"}
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":"AAaA,UAAU,uBAAuB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,sHAmF9B,CAAC"}
1
+ {"version":3,"file":"ChatInputContainer.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInputContainer.tsx"],"names":[],"mappings":"AAcA,UAAU,uBAAuB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,sHA0J9B,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, useState, useCallback, useEffect, useRef, forwardRef, useImperativeHandle, } from 'react';
3
3
  import { useSendMessage } from '../../hooks/useMessages';
4
+ import { useSession, useUpdateSession } from '../../hooks/useSessions';
4
5
  import { ChatInput } from './ChatInput';
5
6
  import { ConfigModal } from './ConfigModal';
6
7
  export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({ sessionId, userContext }, ref) {
8
+ const session = useSession(sessionId);
7
9
  const [agent, setAgent] = useState('');
8
10
  const [provider, setProvider] = useState('');
9
11
  const [model, setModel] = useState('');
@@ -11,6 +13,14 @@ export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({
11
13
  const [inputKey, setInputKey] = useState(0);
12
14
  const chatInputRef = useRef(null);
13
15
  const sendMessage = useSendMessage(sessionId);
16
+ const updateSession = useUpdateSession(sessionId);
17
+ useEffect(() => {
18
+ if (session) {
19
+ setAgent(session.agent);
20
+ setProvider(session.provider);
21
+ setModel(session.model);
22
+ }
23
+ }, [session]);
14
24
  useEffect(() => {
15
25
  setInputKey((prev) => prev + 1);
16
26
  }, []);
@@ -39,15 +49,61 @@ export const ChatInputContainer = memo(forwardRef(function ChatInputContainer({
39
49
  const handleCloseConfig = useCallback(() => {
40
50
  setIsConfigOpen(false);
41
51
  }, []);
42
- const handleAgentChange = useCallback((value) => {
52
+ const handleAgentChange = useCallback(async (value) => {
43
53
  setAgent(value);
44
- }, []);
45
- const handleProviderChange = useCallback((value) => {
46
- setProvider(value);
47
- }, []);
48
- const handleModelChange = useCallback((value) => {
49
- setModel(value);
50
- }, []);
51
- return (_jsxs(_Fragment, { children: [_jsx(ConfigModal, { isOpen: isConfigOpen, onClose: handleCloseConfig, agent: agent, provider: provider, model: model, onAgentChange: handleAgentChange, onProviderChange: handleProviderChange, onModelChange: handleModelChange }), _jsx(ChatInput, { ref: chatInputRef, onSend: handleSendMessage, disabled: sendMessage.isPending, onConfigClick: handleToggleConfig }, inputKey)] }));
54
+ try {
55
+ await updateSession.mutateAsync({ agent: value });
56
+ }
57
+ catch (error) {
58
+ console.error('Failed to update agent:', error);
59
+ }
60
+ }, [updateSession]);
61
+ const handleModelSelectorChange = useCallback(async (newProvider, newModel) => {
62
+ setProvider(newProvider);
63
+ setModel(newModel);
64
+ try {
65
+ await updateSession.mutateAsync({
66
+ provider: newProvider,
67
+ model: newModel,
68
+ });
69
+ }
70
+ catch (error) {
71
+ console.error('Failed to update model:', error);
72
+ }
73
+ }, [updateSession]);
74
+ const handleProviderChange = useCallback(async (newProvider) => {
75
+ setProvider(newProvider);
76
+ if (model) {
77
+ try {
78
+ await updateSession.mutateAsync({
79
+ provider: newProvider,
80
+ model,
81
+ });
82
+ }
83
+ catch (error) {
84
+ console.error('Failed to update provider:', error);
85
+ }
86
+ }
87
+ }, [model, updateSession]);
88
+ const handleModelChange = useCallback(async (newModel) => {
89
+ setModel(newModel);
90
+ try {
91
+ await updateSession.mutateAsync({ provider, model: newModel });
92
+ }
93
+ catch (error) {
94
+ console.error('Failed to update model:', error);
95
+ }
96
+ }, [provider, updateSession]);
97
+ const handlePlanModeToggle = useCallback(async (isPlanMode) => {
98
+ const newAgent = isPlanMode ? 'plan' : 'build';
99
+ setAgent(newAgent);
100
+ try {
101
+ await updateSession.mutateAsync({ agent: newAgent });
102
+ }
103
+ catch (error) {
104
+ console.error('Failed to switch agent:', error);
105
+ }
106
+ }, [updateSession]);
107
+ return (_jsxs(_Fragment, { children: [_jsx(ConfigModal, { isOpen: isConfigOpen, onClose: handleCloseConfig, agent: agent, provider: provider, model: model, onAgentChange: handleAgentChange, onProviderChange: handleProviderChange, onModelChange: handleModelChange, onModelSelectorChange: handleModelSelectorChange }), _jsx(ChatInput, { ref: chatInputRef, onSend: handleSendMessage, disabled: sendMessage.isPending, onConfigClick: handleToggleConfig, onPlanModeToggle: handlePlanModeToggle, isPlanMode: agent === 'plan' }, inputKey)] }));
52
108
  }));
53
109
  //# sourceMappingURL=ChatInputContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInputContainer.js","sourceRoot":"","sources":["../../../src/components/chat/ChatInputContainer.tsx"],"names":[],"mappings":"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"}
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,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CACrC,UAAU,CACT,SAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,GAAG;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CAAC,GAAG,EAAE;QACd,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,KAAK,EAAE,GAAG,EAAE;YACX,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;KACD,CAAC,CAAC,CAAC;IAEJ,MAAM,iBAAiB,GAAG,WAAW,CACpC,KAAK,EAAE,OAAe,EAAE,EAAE;QACzB,IAAI,CAAC;YACJ,MAAM,WAAW,CAAC,WAAW,CAAC;gBAC7B,OAAO;gBACP,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,QAAQ,EAAE,QAAQ,IAAI,SAAS;gBAC/B,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,WAAW,EAAE,WAAW,IAAI,SAAS;aACrC,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACF,CAAC,EACD,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAClD,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,eAAe,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,WAAW,CACpC,KAAK,EAAE,KAAa,EAAE,EAAE;QACvB,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,IAAI,CAAC;YACJ,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACF,CAAC,EACD,CAAC,aAAa,CAAC,CACf,CAAC;IAEF,MAAM,yBAAyB,GAAG,WAAW,CAC5C,KAAK,EAAE,WAAmB,EAAE,QAAgB,EAAE,EAAE;QAC/C,WAAW,CAAC,WAAW,CAAC,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,aAAa,CAAC,WAAW,CAAC;gBAC/B,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,QAAQ;aACf,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACF,CAAC,EACD,CAAC,aAAa,CAAC,CACf,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACvC,KAAK,EAAE,WAAmB,EAAE,EAAE;QAC7B,WAAW,CAAC,WAAW,CAAC,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,CAAC;gBACJ,MAAM,aAAa,CAAC,WAAW,CAAC;oBAC/B,QAAQ,EAAE,WAAW;oBACrB,KAAK;iBACL,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;IACF,CAAC,EACD,CAAC,KAAK,EAAE,aAAa,CAAC,CACtB,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACpC,KAAK,EAAE,QAAgB,EAAE,EAAE;QAC1B,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACF,CAAC,EACD,CAAC,QAAQ,EAAE,aAAa,CAAC,CACzB,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACvC,KAAK,EAAE,UAAmB,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/C,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACF,CAAC,EACD,CAAC,aAAa,CAAC,CACf,CAAC;IAEF,OAAO,CACN,8BACC,KAAC,WAAW,IACX,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,iBAAiB,EAChC,gBAAgB,EAAE,oBAAoB,EACtC,aAAa,EAAE,iBAAiB,EAChC,qBAAqB,EAAE,yBAAyB,GAC/C,EACF,KAAC,SAAS,IACT,GAAG,EAAE,YAAY,EAEjB,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,WAAW,CAAC,SAAS,EAC/B,aAAa,EAAE,kBAAkB,EACjC,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,KAAK,KAAK,MAAM,IALvB,QAAQ,CAMZ,IACA,CACH,CAAC;AACH,CAAC,CACD,CACD,CAAC"}
@@ -7,7 +7,8 @@ interface ConfigModalProps {
7
7
  onAgentChange: (agent: string) => void;
8
8
  onProviderChange: (provider: string) => void;
9
9
  onModelChange: (model: string) => void;
10
+ onModelSelectorChange?: (provider: string, model: string) => void;
10
11
  }
11
- export declare function ConfigModal({ isOpen, onClose, agent, provider, model, onAgentChange, onProviderChange, onModelChange, }: ConfigModalProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function ConfigModal({ isOpen, onClose, agent, provider, model, onAgentChange, onProviderChange, onModelChange, onModelSelectorChange, }: ConfigModalProps): import("react/jsx-runtime").JSX.Element;
12
13
  export {};
13
14
  //# sourceMappingURL=ConfigModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigModal.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ConfigModal.tsx"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,WAAW,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,GACb,EAAE,gBAAgB,2CAuJlB"}
1
+ {"version":3,"file":"ConfigModal.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ConfigModal.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,wBAAgB,WAAW,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,qBAAqB,GACrB,EAAE,gBAAgB,2CAwFlB"}
@@ -1,39 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useId } from 'react';
3
2
  import { X } from 'lucide-react';
4
- import { useConfig, useModels } from '../../hooks/useConfig';
5
- export function ConfigModal({ isOpen, onClose, agent, provider, model, onAgentChange, onProviderChange, onModelChange, }) {
3
+ import { useConfig } from '../../hooks/useConfig';
4
+ import { UnifiedModelSelector } from './UnifiedModelSelector';
5
+ import { UnifiedAgentSelector } from './UnifiedAgentSelector';
6
+ export function ConfigModal({ isOpen, onClose, agent, provider, model, onAgentChange, onProviderChange, onModelChange, onModelSelectorChange, }) {
6
7
  const { data: config, isLoading: configLoading } = useConfig();
7
- const { data: modelsData, isLoading: modelsLoading } = useModels(provider);
8
- // Generate unique IDs for form elements
9
- const agentId = useId();
10
- const providerId = useId();
11
- const modelId = useId();
12
- // Set defaults when config loads
13
- useEffect(() => {
14
- if (config && !agent && !provider && !model) {
15
- onAgentChange(config.defaults.agent);
16
- onProviderChange(config.defaults.provider);
17
- onModelChange(config.defaults.model);
18
- }
19
- }, [
20
- config,
21
- agent,
22
- provider,
23
- model,
24
- onAgentChange,
25
- onProviderChange,
26
- onModelChange,
27
- ]);
28
- // Update model when provider changes
29
- useEffect(() => {
30
- if (modelsData && modelsData.models.length > 0) {
31
- const currentModelExists = modelsData.models.some((m) => m.id === model);
32
- if (!currentModelExists) {
33
- onModelChange(modelsData.default || modelsData.models[0].id);
34
- }
35
- }
36
- }, [modelsData, model, onModelChange]);
37
8
  if (!isOpen)
38
9
  return null;
39
10
  const handleBackdropClick = (e) => {
@@ -46,6 +17,15 @@ export function ConfigModal({ isOpen, onClose, agent, provider, model, onAgentCh
46
17
  onClose();
47
18
  }
48
19
  };
49
- return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "fixed inset-0 bg-black/50 backdrop-blur-sm z-50 cursor-default", onClick: handleBackdropClick, onKeyDown: handleBackdropKeyDown, "aria-label": "Close modal" }), _jsx("div", { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50 w-full max-w-md", children: _jsxs("div", { className: "bg-background border border-border rounded-lg shadow-lg", children: [_jsxs("div", { className: "flex items-center justify-between p-4 border-b border-border", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Configuration" }), _jsx("button", { type: "button", onClick: onClose, className: "text-muted-foreground hover:text-foreground transition-colors", children: _jsx(X, { className: "h-5 w-5" }) })] }), _jsx("div", { className: "p-4 space-y-4", children: configLoading ? (_jsx("div", { className: "text-center text-muted-foreground py-8", children: "Loading configuration..." })) : config ? (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("label", { htmlFor: agentId, className: "block text-sm font-medium text-foreground mb-2", children: "Agent" }), _jsx("select", { id: agentId, value: agent, onChange: (e) => onAgentChange(e.target.value), className: "w-full bg-background border border-border rounded px-3 py-2 text-foreground outline-none focus:border-violet-500 transition-colors", children: config.agents.map((a) => (_jsx("option", { value: a, children: a }, a))) })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: providerId, className: "block text-sm font-medium text-foreground mb-2", children: "Provider" }), _jsx("select", { id: providerId, value: provider, onChange: (e) => onProviderChange(e.target.value), className: "w-full bg-background border border-border rounded px-3 py-2 text-foreground outline-none focus:border-violet-500 transition-colors", children: config.providers.map((p) => (_jsx("option", { value: p, children: p }, p))) })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: modelId, className: "block text-sm font-medium text-foreground mb-2", children: "Model" }), _jsx("select", { id: modelId, value: model, onChange: (e) => onModelChange(e.target.value), disabled: modelsLoading || !modelsData, className: "w-full bg-background border border-border rounded px-3 py-2 text-foreground outline-none focus:border-violet-500 transition-colors disabled:opacity-50", children: modelsData?.models.map((m) => (_jsx("option", { value: m.id, children: m.label }, m.id))) })] })] })) : null })] }) })] }));
20
+ const handleModelChange = (selectedProvider, selectedModel) => {
21
+ if (onModelSelectorChange) {
22
+ onModelSelectorChange(selectedProvider, selectedModel);
23
+ }
24
+ else {
25
+ onProviderChange(selectedProvider);
26
+ onModelChange(selectedModel);
27
+ }
28
+ };
29
+ return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "fixed inset-0 bg-black/50 backdrop-blur-sm z-50 cursor-default", onClick: handleBackdropClick, onKeyDown: handleBackdropKeyDown, "aria-label": "Close modal" }), _jsx("div", { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50 w-full max-w-md", children: _jsxs("div", { className: "bg-background border border-border rounded-lg shadow-lg", children: [_jsxs("div", { className: "flex items-center justify-between p-4 border-b border-border", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Configuration" }), _jsx("button", { type: "button", onClick: onClose, className: "text-muted-foreground hover:text-foreground transition-colors", children: _jsx(X, { className: "h-5 w-5" }) })] }), _jsx("div", { className: "p-4 space-y-4", children: configLoading ? (_jsx("div", { className: "text-center text-muted-foreground py-8", children: "Loading configuration..." })) : config ? (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("div", { className: "block text-sm font-medium text-foreground mb-2", children: "Agent" }), _jsx(UnifiedAgentSelector, { agent: agent, agents: config.agents, onChange: onAgentChange })] }), _jsxs("div", { children: [_jsx("div", { className: "block text-sm font-medium text-foreground mb-2", children: "Provider / Model" }), _jsx(UnifiedModelSelector, { provider: provider, model: model, onChange: handleModelChange })] })] })) : null })] }) })] }));
50
30
  }
51
31
  //# sourceMappingURL=ConfigModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigModal.js","sourceRoot":"","sources":["../../../src/components/chat/ConfigModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigModal.js","sourceRoot":"","sources":["../../../src/components/chat/ConfigModal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAc9D,MAAM,UAAU,WAAW,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,qBAAqB,GACH;IAClB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAE/D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,mBAAmB,GAAG,CAAC,CAAsC,EAAE,EAAE;QACtE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,CAAyC,EAAE,EAAE;QAC3E,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACzB,gBAAwB,EACxB,aAAqB,EACpB,EAAE;QACH,IAAI,qBAAqB,EAAE,CAAC;YAC3B,qBAAqB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACP,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YACnC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,CACN,8BACC,iBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gEAAgE,EAC1E,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,qBAAqB,gBACrB,aAAa,GACvB,EACF,cAAK,SAAS,EAAC,+EAA+E,YAC7F,eAAK,SAAS,EAAC,yDAAyD,aACvE,eAAK,SAAS,EAAC,8DAA8D,aAC5E,aAAI,SAAS,EAAC,uCAAuC,8BAEhD,EACL,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,+DAA+D,YAEzE,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,GACjB,IACJ,EAEN,cAAK,SAAS,EAAC,eAAe,YAC5B,aAAa,CAAC,CAAC,CAAC,CAChB,cAAK,SAAS,EAAC,wCAAwC,yCAEjD,CACN,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CACZ,8BACC,0BACC,cAAK,SAAS,EAAC,gDAAgD,sBAEzD,EACN,KAAC,oBAAoB,IACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,QAAQ,EAAE,aAAa,GACtB,IACG,EAEN,0BACC,cAAK,SAAS,EAAC,gDAAgD,iCAEzD,EACN,KAAC,oBAAoB,IACpB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,iBAAiB,GAC1B,IACG,IACJ,CACH,CAAC,CAAC,CAAC,IAAI,GACH,IACD,GACD,IACJ,CACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ interface UnifiedAgentSelectorProps {
2
+ agent: string;
3
+ agents: string[];
4
+ onChange: (agent: string) => void;
5
+ disabled?: boolean;
6
+ }
7
+ export declare function UnifiedAgentSelector({ agent, agents, onChange, disabled, }: UnifiedAgentSelectorProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=UnifiedAgentSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnifiedAgentSelector.d.ts","sourceRoot":"","sources":["../../../src/components/chat/UnifiedAgentSelector.tsx"],"names":[],"mappings":"AAGA,UAAU,yBAAyB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,EACpC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAgB,GAChB,EAAE,yBAAyB,2CAmF3B"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef } from 'react';
3
+ import { ChevronDown } from 'lucide-react';
4
+ export function UnifiedAgentSelector({ agent, agents, onChange, disabled = false, }) {
5
+ const [isOpen, setIsOpen] = useState(false);
6
+ const dropdownRef = useRef(null);
7
+ useEffect(() => {
8
+ const handleClickOutside = (event) => {
9
+ if (dropdownRef.current &&
10
+ !dropdownRef.current.contains(event.target)) {
11
+ setIsOpen(false);
12
+ }
13
+ };
14
+ const handleEscape = (event) => {
15
+ if (event.key === 'Escape') {
16
+ setIsOpen(false);
17
+ }
18
+ };
19
+ if (isOpen) {
20
+ document.addEventListener('mousedown', handleClickOutside);
21
+ document.addEventListener('keydown', handleEscape);
22
+ }
23
+ return () => {
24
+ document.removeEventListener('mousedown', handleClickOutside);
25
+ document.removeEventListener('keydown', handleEscape);
26
+ };
27
+ }, [isOpen]);
28
+ const handleSelect = (selectedAgent) => {
29
+ onChange(selectedAgent);
30
+ setIsOpen(false);
31
+ };
32
+ const handleKeyDown = (event, selectedAgent) => {
33
+ if (event.key === 'Enter' || event.key === ' ') {
34
+ event.preventDefault();
35
+ handleSelect(selectedAgent);
36
+ }
37
+ };
38
+ return (_jsxs("div", { ref: dropdownRef, className: "relative w-full", children: [_jsxs("button", { type: "button", onClick: () => !disabled && setIsOpen(!isOpen), disabled: disabled, className: "w-full flex items-center justify-between px-3 py-2 bg-[hsl(var(--secondary))] border border-[hsl(var(--border))] rounded-md hover:bg-[hsl(var(--accent))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))] disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: [_jsx("span", { className: "text-sm text-[hsl(var(--foreground))] truncate", children: agent }), _jsx(ChevronDown, { className: `w-4 h-4 text-[hsl(var(--muted-foreground))] transition-transform ${isOpen ? 'rotate-180' : ''}` })] }), isOpen && (_jsx("div", { className: "absolute z-50 mt-1 w-full bg-[hsl(var(--popover))] border border-[hsl(var(--border))] rounded-md shadow-lg max-h-80 overflow-y-auto", children: agents.map((agentItem) => {
39
+ const isSelected = agentItem === agent;
40
+ return (_jsx("button", { type: "button", onClick: () => handleSelect(agentItem), onKeyDown: (e) => handleKeyDown(e, agentItem), className: `w-full text-left px-4 py-2 text-sm hover:bg-[hsl(var(--accent))] transition-colors ${isSelected
41
+ ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))] font-medium'
42
+ : 'text-[hsl(var(--foreground))]'}`, children: _jsx("span", { className: "truncate", children: agentItem }) }, agentItem));
43
+ }) }))] }));
44
+ }
45
+ //# sourceMappingURL=UnifiedAgentSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnifiedAgentSelector.js","sourceRoot":"","sources":["../../../src/components/chat/UnifiedAgentSelector.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface UnifiedModelSelectorProps {
2
+ provider: string;
3
+ model: string;
4
+ onChange: (provider: string, model: string) => void;
5
+ disabled?: boolean;
6
+ }
7
+ export declare function UnifiedModelSelector({ provider, model, onChange, disabled, }: UnifiedModelSelectorProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=UnifiedModelSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnifiedModelSelector.d.ts","sourceRoot":"","sources":["../../../src/components/chat/UnifiedModelSelector.tsx"],"names":[],"mappings":"AAIA,UAAU,yBAAyB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,EACpC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAgB,GAChB,EAAE,yBAAyB,2CAwL3B"}
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef, useMemo } from 'react';
3
+ import { ChevronDown, Search } from 'lucide-react';
4
+ import { useAllModels } from '../../hooks/useConfig';
5
+ export function UnifiedModelSelector({ provider, model, onChange, disabled = false, }) {
6
+ const { data: allModels, isLoading } = useAllModels();
7
+ const [isOpen, setIsOpen] = useState(false);
8
+ const [searchQuery, setSearchQuery] = useState('');
9
+ const dropdownRef = useRef(null);
10
+ const searchInputRef = useRef(null);
11
+ useEffect(() => {
12
+ const handleClickOutside = (event) => {
13
+ if (dropdownRef.current &&
14
+ !dropdownRef.current.contains(event.target)) {
15
+ setIsOpen(false);
16
+ }
17
+ };
18
+ const handleEscape = (event) => {
19
+ if (event.key === 'Escape') {
20
+ setIsOpen(false);
21
+ }
22
+ };
23
+ if (isOpen) {
24
+ document.addEventListener('mousedown', handleClickOutside);
25
+ document.addEventListener('keydown', handleEscape);
26
+ setTimeout(() => searchInputRef.current?.focus(), 0);
27
+ }
28
+ return () => {
29
+ document.removeEventListener('mousedown', handleClickOutside);
30
+ document.removeEventListener('keydown', handleEscape);
31
+ };
32
+ }, [isOpen]);
33
+ const filteredModels = useMemo(() => {
34
+ if (!allModels)
35
+ return {};
36
+ if (!searchQuery.trim())
37
+ return allModels;
38
+ const query = searchQuery.toLowerCase();
39
+ const filtered = {};
40
+ for (const [providerKey, providerData] of Object.entries(allModels)) {
41
+ const providerMatches = providerData.label.toLowerCase().includes(query);
42
+ const matchingModels = providerData.models.filter((m) => providerMatches ||
43
+ m.label.toLowerCase().includes(query) ||
44
+ m.id.toLowerCase().includes(query));
45
+ if (matchingModels.length > 0) {
46
+ filtered[providerKey] = {
47
+ label: providerData.label,
48
+ models: matchingModels,
49
+ };
50
+ }
51
+ }
52
+ return filtered;
53
+ }, [allModels, searchQuery]);
54
+ const handleSelect = (selectedProvider, selectedModel) => {
55
+ onChange(selectedProvider, selectedModel);
56
+ setIsOpen(false);
57
+ setSearchQuery('');
58
+ };
59
+ const handleKeyDown = (event, selectedProvider, selectedModel) => {
60
+ if (event.key === 'Enter' || event.key === ' ') {
61
+ event.preventDefault();
62
+ handleSelect(selectedProvider, selectedModel);
63
+ }
64
+ };
65
+ const currentProviderLabel = allModels?.[provider]?.label || provider;
66
+ const currentModelLabel = allModels?.[provider]?.models.find((m) => m.id === model)?.label || model;
67
+ return (_jsxs("div", { ref: dropdownRef, className: "relative w-full", children: [_jsxs("button", { type: "button", onClick: () => !disabled && setIsOpen(!isOpen), disabled: disabled || isLoading, className: "w-full flex items-center justify-between px-3 py-2 bg-[hsl(var(--secondary))] border border-[hsl(var(--border))] rounded-md hover:bg-[hsl(var(--accent))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))] disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: [_jsxs("span", { className: "flex items-center gap-2 text-sm truncate", children: [_jsx("span", { className: "text-[hsl(var(--muted-foreground))]", children: currentProviderLabel }), _jsx("span", { className: "text-[hsl(var(--muted-foreground))]/50", children: "/" }), _jsx("span", { className: "text-[hsl(var(--foreground))]", children: currentModelLabel })] }), _jsx(ChevronDown, { className: `w-4 h-4 text-[hsl(var(--muted-foreground))] transition-transform ${isOpen ? 'rotate-180' : ''}` })] }), isOpen && !isLoading && allModels && (_jsxs("div", { className: "absolute z-50 mt-1 w-full bg-[hsl(var(--popover))] border border-[hsl(var(--border))] rounded-md shadow-lg max-h-80 overflow-hidden flex flex-col", children: [_jsx("div", { className: "p-2 border-b border-[hsl(var(--border))]", children: _jsxs("div", { className: "relative", children: [_jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[hsl(var(--muted-foreground))]" }), _jsx("input", { ref: searchInputRef, type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: "Search providers and models...", className: "w-full pl-9 pr-3 py-2 bg-[hsl(var(--secondary))] border border-[hsl(var(--border))] rounded text-sm text-[hsl(var(--foreground))] placeholder-[hsl(var(--muted-foreground))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))]" })] }) }), _jsx("div", { className: "overflow-y-auto", children: Object.keys(filteredModels).length === 0 ? (_jsx("div", { className: "p-4 text-center text-[hsl(var(--muted-foreground))] text-sm", children: "No models found" })) : (Object.entries(filteredModels).map(([providerKey, providerData]) => (_jsxs("div", { className: "border-b border-[hsl(var(--border))] last:border-0", children: [_jsx("div", { className: "px-3 py-2 text-xs font-semibold text-[hsl(var(--muted-foreground))] uppercase tracking-wider bg-[hsl(var(--muted))]", children: providerData.label }), _jsx("div", { children: providerData.models.map((modelItem) => {
68
+ const isSelected = providerKey === provider && modelItem.id === model;
69
+ return (_jsxs("button", { type: "button", onClick: () => handleSelect(providerKey, modelItem.id), onKeyDown: (e) => handleKeyDown(e, providerKey, modelItem.id), className: `w-full text-left px-4 py-2 text-sm hover:bg-[hsl(var(--accent))] flex items-center justify-between transition-colors ${isSelected
70
+ ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))] font-medium'
71
+ : 'text-[hsl(var(--foreground))]'}`, children: [_jsx("span", { className: "truncate", children: modelItem.label }), (modelItem.toolCall || modelItem.reasoning) && (_jsxs("div", { className: "flex gap-1 ml-2 flex-shrink-0", children: [modelItem.toolCall && (_jsx("span", { className: "text-[10px] px-1.5 py-0.5 bg-green-600/20 text-green-400 rounded", children: "Tools" })), modelItem.reasoning && (_jsx("span", { className: "text-[10px] px-1.5 py-0.5 bg-purple-600/20 text-purple-400 rounded", children: "Reasoning" }))] }))] }, modelItem.id));
72
+ }) })] }, providerKey)))) })] }))] }));
73
+ }
74
+ //# sourceMappingURL=UnifiedModelSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnifiedModelSelector.js","sourceRoot":"","sources":["../../../src/components/chat/UnifiedModelSelector.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ApplyPatchRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ApplyPatchRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C,wBAAgB,kBAAkB,CAAC,EAClC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAsFf"}
1
+ {"version":3,"file":"ApplyPatchRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ApplyPatchRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAqB7C,wBAAgB,kBAAkB,CAAC,EAClC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAkIf"}
@@ -6,11 +6,30 @@ import { ToolErrorDisplay } from './ToolErrorDisplay';
6
6
  export function ApplyPatchRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
7
7
  const artifact = contentJson.artifact;
8
8
  const timeStr = formatDuration(toolDurationMs);
9
+ const formatSpan = (start, count) => {
10
+ if (count <= 1)
11
+ return `${start}`;
12
+ return `${start}-${start + count - 1}`;
13
+ };
14
+ const formatHunkLabel = (hunk) => {
15
+ const left = `-${formatSpan(hunk.oldStart, hunk.oldLines)}`;
16
+ const right = `+${formatSpan(hunk.newStart, hunk.newLines)}`;
17
+ const deltaParts = [];
18
+ if (hunk.additions > 0)
19
+ deltaParts.push(`+${hunk.additions}`);
20
+ if (hunk.deletions > 0)
21
+ deltaParts.push(`-${hunk.deletions}`);
22
+ const delta = deltaParts.length > 0 ? ` (${deltaParts.join(', ')})` : '';
23
+ return `${left} ${right}${delta}`;
24
+ };
9
25
  const summary = artifact?.summary || {};
10
26
  const files = Number(summary.files || 0);
11
27
  const additions = Number(summary.additions || 0);
12
28
  const deletions = Number(summary.deletions || 0);
13
29
  const patch = artifact?.patch ? String(artifact.patch) : '';
30
+ const changes = Array.isArray(contentJson.result?.changes)
31
+ ? contentJson.result?.changes
32
+ : [];
14
33
  // Check for errors
15
34
  const hasError = contentJson.error ||
16
35
  (contentJson.result &&
@@ -31,6 +50,6 @@ export function ApplyPatchRenderer({ contentJson, toolDurationMs, isExpanded, on
31
50
  : undefined;
32
51
  return (_jsxs("div", { className: "text-xs", children: [_jsxs("button", { type: "button", onClick: onToggle, className: `flex items-center gap-2 transition-colors w-full ${hasError
33
52
  ? 'text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200'
34
- : 'text-purple-700 dark:text-purple-300 hover:text-purple-600 dark:hover:text-purple-200'}`, children: [_jsx(ChevronRight, { className: `h-3 w-3 flex-shrink-0 transition-transform ${isExpanded ? 'rotate-90' : ''}` }), _jsxs("span", { className: "font-medium flex-shrink-0", children: ["apply patch", hasError ? ' error' : ''] }), _jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsxs("span", { className: "text-foreground/70 flex-shrink-0", children: [files, " ", files === 1 ? 'file' : 'files'] }), _jsxs("span", { className: "text-emerald-600 dark:text-emerald-400 flex-shrink-0", children: ["+", additions] }), _jsxs("span", { className: "text-red-600 dark:text-red-400 flex-shrink-0", children: ["-", deletions] }), _jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0", children: ["\u00B7 ", timeStr] })] }), isExpanded && hasError && errorMessage && (_jsxs("div", { children: [_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true }), patch && (_jsx("div", { className: "mt-2 ml-5", children: _jsxs("details", { children: [_jsx("summary", { className: "cursor-pointer text-xs text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200", children: "Show patch that failed" }), _jsx("div", { className: "mt-2", children: _jsx(DiffView, { patch: patch }) })] }) }))] })), isExpanded && !hasError && patch && (_jsx("div", { className: "mt-2 ml-5", children: _jsx(DiffView, { patch: patch }) }))] }));
53
+ : 'text-purple-700 dark:text-purple-300 hover:text-purple-600 dark:hover:text-purple-200'}`, children: [_jsx(ChevronRight, { className: `h-3 w-3 flex-shrink-0 transition-transform ${isExpanded ? 'rotate-90' : ''}` }), _jsxs("span", { className: "font-medium flex-shrink-0", children: ["apply patch", hasError ? ' error' : ''] }), _jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsxs("span", { className: "text-foreground/70 flex-shrink-0", children: [files, " ", files === 1 ? 'file' : 'files'] }), _jsxs("span", { className: "text-emerald-600 dark:text-emerald-400 flex-shrink-0", children: ["+", additions] }), _jsxs("span", { className: "text-red-600 dark:text-red-400 flex-shrink-0", children: ["-", deletions] }), _jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0", children: ["\u00B7 ", timeStr] })] }), isExpanded && hasError && errorMessage && (_jsxs("div", { children: [_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true }), patch && (_jsx("div", { className: "mt-2 ml-5", children: _jsxs("details", { children: [_jsx("summary", { className: "cursor-pointer text-xs text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200", children: "Show patch that failed" }), _jsx("div", { className: "mt-2", children: _jsx(DiffView, { patch: patch }) })] }) }))] })), isExpanded && !hasError && changes.length > 0 && (_jsx("div", { className: "mt-2 ml-5 space-y-2", children: changes.map((change) => (_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "font-mono text-foreground/80", children: change.filePath }), _jsx("div", { className: "flex flex-wrap gap-2", children: change.hunks.map((hunk, index) => (_jsx("span", { className: "rounded bg-muted px-2 py-0.5 text-[0.65rem] font-mono text-muted-foreground", children: formatHunkLabel(hunk) }, `apply-patch-${change.filePath}-hunk-${index}`))) })] }, `apply-patch-${change.filePath}-${change.kind}`))) })), isExpanded && !hasError && patch && (_jsx("div", { className: "mt-2 ml-5", children: _jsx(DiffView, { patch: patch }) }))] }));
35
54
  }
36
55
  //# sourceMappingURL=ApplyPatchRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplyPatchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ApplyPatchRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,EAClC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACO;IACf,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D,mBAAmB;IACnB,MAAM,QAAQ,GACb,WAAW,CAAC,KAAK;QACjB,CAAC,WAAW,CAAC,MAAM;YAClB,IAAI,IAAI,WAAW,CAAC,MAAM;YAC1B,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACnC,MAAM,YAAY,GACjB,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ;QACpC,CAAC,CAAC,WAAW,CAAC,KAAK;QACnB,CAAC,CAAC,WAAW,CAAC,MAAM;YAClB,OAAO,IAAI,WAAW,CAAC,MAAM;YAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ;YAC7C,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;YAC1B,CAAC,CAAC,IAAI,CAAC;IACV,MAAM,UAAU,GACf,WAAW,CAAC,MAAM;QAClB,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ;QACtC,OAAO,IAAI,WAAW,CAAC,MAAM;QAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ;QAC3C,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;QAC1B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACN,eAAK,SAAS,EAAC,SAAS,aACvB,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,oDACV,QAAQ;oBACP,CAAC,CAAC,2EAA2E;oBAC7E,CAAC,CAAC,uFACJ,EAAE,aAEF,KAAC,YAAY,IACZ,SAAS,EAAE,8CAA8C,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,GACvF,EACF,gBAAM,SAAS,EAAC,2BAA2B,4BAC9B,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAC9B,EACP,eAAM,SAAS,EAAC,wCAAwC,uBAAS,EACjE,gBAAM,SAAS,EAAC,kCAAkC,aAChD,KAAK,OAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IACjC,EACP,gBAAM,SAAS,EAAC,sDAAsD,kBACnE,SAAS,IACL,EACP,gBAAM,SAAS,EAAC,8CAA8C,kBAC3D,SAAS,IACL,EACP,gBAAM,SAAS,EAAC,wCAAwC,wBACpD,OAAO,IACJ,IACC,EACR,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,CAC1C,0BACC,KAAC,gBAAgB,IAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,SAAG,EACrE,KAAK,IAAI,CACT,cAAK,SAAS,EAAC,WAAW,YACzB,8BACC,kBAAS,SAAS,EAAC,kGAAkG,uCAE3G,EACV,cAAK,SAAS,EAAC,MAAM,YACpB,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,GACrB,IACG,GACL,CACN,IACI,CACN,EACA,UAAU,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,CACpC,cAAK,SAAS,EAAC,WAAW,YACzB,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,GACrB,CACN,IACI,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ApplyPatchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ApplyPatchRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAkBtD,MAAM,UAAU,kBAAkB,CAAC,EAClC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACO;IACf,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE;QACnD,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,GAAG,KAAK,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,IAA0B,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,GAAG,IAAI,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;IACnC,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;QACzD,CAAC,CAAE,WAAW,CAAC,MAAM,EAAE,OAA8B;QACrD,CAAC,CAAC,EAAE,CAAC;IAEN,mBAAmB;IACnB,MAAM,QAAQ,GACb,WAAW,CAAC,KAAK;QACjB,CAAC,WAAW,CAAC,MAAM;YAClB,IAAI,IAAI,WAAW,CAAC,MAAM;YAC1B,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACnC,MAAM,YAAY,GACjB,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ;QACpC,CAAC,CAAC,WAAW,CAAC,KAAK;QACnB,CAAC,CAAC,WAAW,CAAC,MAAM;YAClB,OAAO,IAAI,WAAW,CAAC,MAAM;YAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ;YAC7C,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;YAC1B,CAAC,CAAC,IAAI,CAAC;IACV,MAAM,UAAU,GACf,WAAW,CAAC,MAAM;QAClB,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ;QACtC,OAAO,IAAI,WAAW,CAAC,MAAM;QAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ;QAC3C,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;QAC1B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACN,eAAK,SAAS,EAAC,SAAS,aACvB,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,oDACV,QAAQ;oBACP,CAAC,CAAC,2EAA2E;oBAC7E,CAAC,CAAC,uFACJ,EAAE,aAEF,KAAC,YAAY,IACZ,SAAS,EAAE,8CAA8C,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,GACvF,EACF,gBAAM,SAAS,EAAC,2BAA2B,4BAC9B,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAC9B,EACP,eAAM,SAAS,EAAC,wCAAwC,uBAAS,EACjE,gBAAM,SAAS,EAAC,kCAAkC,aAChD,KAAK,OAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IACjC,EACP,gBAAM,SAAS,EAAC,sDAAsD,kBACnE,SAAS,IACL,EACP,gBAAM,SAAS,EAAC,8CAA8C,kBAC3D,SAAS,IACL,EACP,gBAAM,SAAS,EAAC,wCAAwC,wBACpD,OAAO,IACJ,IACC,EACR,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,CAC1C,0BACC,KAAC,gBAAgB,IAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,SAAG,EACrE,KAAK,IAAI,CACT,cAAK,SAAS,EAAC,WAAW,YACzB,8BACC,kBAAS,SAAS,EAAC,kGAAkG,uCAE3G,EACV,cAAK,SAAS,EAAC,MAAM,YACpB,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,GACrB,IACG,GACL,CACN,IACI,CACN,EACA,UAAU,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACjD,cAAK,SAAS,EAAC,qBAAqB,YAClC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxB,eAEC,SAAS,EAAC,WAAW,aAErB,cAAK,SAAS,EAAC,8BAA8B,YAC3C,MAAM,CAAC,QAAQ,GACX,EACN,cAAK,SAAS,EAAC,sBAAsB,YACnC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAClC,eAEC,SAAS,EAAC,6EAA6E,YAEtF,eAAe,CAAC,IAAI,CAAC,IAHjB,eAAe,MAAM,CAAC,QAAQ,SAAS,KAAK,EAAE,CAI7C,CACP,CAAC,GACG,KAfD,eAAe,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAgB/C,CACN,CAAC,GACG,CACN,EAEA,UAAU,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,CACpC,cAAK,SAAS,EAAC,WAAW,YACzB,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,GACrB,CACN,IACI,CACN,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReadRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReadRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAsC7C,wBAAgB,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CA8Df"}
1
+ {"version":3,"file":"ReadRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReadRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA+C7C,wBAAgB,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAsEf"}
@@ -37,26 +37,40 @@ function getLanguageFromPath(path) {
37
37
  };
38
38
  return langMap[ext || ''] || 'text';
39
39
  }
40
+ function parseLineRange(lineRange) {
41
+ if (!lineRange)
42
+ return undefined;
43
+ const match = lineRange.match(/@(\d+)-(\d+)/);
44
+ if (match) {
45
+ return Number.parseInt(match[1], 10);
46
+ }
47
+ return undefined;
48
+ }
40
49
  export function ReadRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
41
50
  const result = contentJson.result || {};
42
51
  const path = String(result.path || '');
43
52
  const content = String(result.content || '');
53
+ const lineRange = result.lineRange;
44
54
  const lines = content.split('\n');
45
55
  const timeStr = formatDuration(toolDurationMs);
46
56
  const language = getLanguageFromPath(path);
47
57
  const syntaxTheme = document?.documentElement.classList.contains('dark')
48
58
  ? vscDarkPlus
49
59
  : prism;
60
+ const startingLineNumber = parseLineRange(lineRange);
61
+ const displayText = lineRange
62
+ ? `${path}:${lineRange.replace('@', '')}`
63
+ : path;
50
64
  return (_jsxs("div", { className: "text-xs", children: [_jsxs("button", { type: "button", onClick: onToggle, className: "flex items-center gap-2 text-blue-700 dark:text-blue-300 transition-colors hover:text-blue-600 dark:hover:text-blue-200 w-full min-w-0", children: [_jsx(ChevronRight, { className: `h-3 w-3 flex-shrink-0 transition-transform ${isExpanded ? 'rotate-90' : ''}` }), _jsx("span", { className: "font-medium flex-shrink-0", children: "read" }), _jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsx("span", { className: "text-foreground/70 truncate min-w-0", style: {
51
65
  direction: 'rtl',
52
66
  unicodeBidi: 'plaintext',
53
- }, title: path, children: path }), _jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0 whitespace-nowrap", children: ["\u00B7 ", lines.length, " lines \u00B7 ", timeStr] })] }), isExpanded && content && (_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: language, style: syntaxTheme, customStyle: {
67
+ }, title: displayText, children: displayText }), _jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0 whitespace-nowrap", children: ["\u00B7 ", lines.length, " lines \u00B7 ", timeStr] })] }), isExpanded && content && (_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: language, style: syntaxTheme, customStyle: {
54
68
  margin: 0,
55
69
  padding: '0.75rem',
56
70
  fontSize: '0.75rem',
57
71
  lineHeight: '1.5',
58
72
  background: 'transparent',
59
73
  maxWidth: '100%',
60
- }, showLineNumbers: true, wrapLines: true, wrapLongLines: true, children: content }) }) }))] }));
74
+ }, showLineNumbers: true, startingLineNumber: startingLineNumber, wrapLines: true, wrapLongLines: true, children: content }) }) }))] }));
61
75
  }
62
76
  //# sourceMappingURL=ReadRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReadRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReadRenderer.tsx"],"names":[],"mappings":"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"}
@@ -43,6 +43,19 @@ export interface ToolResultData {
43
43
  output?: string;
44
44
  diff?: string;
45
45
  summary?: string;
46
+ changes?: Array<{
47
+ filePath: string;
48
+ kind: string;
49
+ hunks: Array<{
50
+ oldStart: number;
51
+ oldLines: number;
52
+ newStart: number;
53
+ newLines: number;
54
+ additions: number;
55
+ deletions: number;
56
+ context?: string;
57
+ }>;
58
+ }>;
46
59
  results?: unknown[];
47
60
  }
48
61
  export interface ContentJson {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeanHeader.d.ts","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,UAAU,eAAe;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,YAAY,GACZ,EAAE,eAAe,2CA8DjB"}
1
+ {"version":3,"file":"LeanHeader.d.ts","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,UAAU,eAAe;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,YAAY,GACZ,EAAE,eAAe,2CA4DjB"}
@@ -1,15 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
- import { Hash, DollarSign } from 'lucide-react';
3
+ import { Hash, DollarSign, Bot } from 'lucide-react';
4
4
  import { StopButton } from '../chat/StopButton';
5
5
  export function LeanHeader({ session, isVisible, isGenerating, }) {
6
- // Calculate total tokens
7
6
  const totalTokens = useMemo(() => {
8
7
  const input = session.totalInputTokens || 0;
9
8
  const output = session.totalOutputTokens || 0;
10
9
  return input + output;
11
10
  }, [session.totalInputTokens, session.totalOutputTokens]);
12
- // Calculate estimated cost
13
11
  const estimatedCost = useMemo(() => {
14
12
  const input = session.totalInputTokens || 0;
15
13
  const output = session.totalOutputTokens || 0;
@@ -19,10 +17,9 @@ export function LeanHeader({ session, isVisible, isGenerating, }) {
19
17
  const outputCost = (output / 1_000_000) * outputCostPer1M;
20
18
  return inputCost + outputCost;
21
19
  }, [session.totalInputTokens, session.totalOutputTokens]);
22
- // Format number with commas
23
20
  const formatNumber = (num) => {
24
21
  return num.toLocaleString('en-US');
25
22
  };
26
- return (_jsx("div", { className: `absolute top-0 left-0 right-0 h-14 border-b border-border bg-background/95 backdrop-blur-sm z-30 transition-transform duration-200 ${isVisible ? 'translate-y-0' : '-translate-y-full'}`, children: _jsxs("div", { className: "h-full px-6 flex items-center justify-between gap-6 text-sm", children: [_jsx("div", { className: "flex-shrink-0", children: isGenerating && _jsx(StopButton, { sessionId: session.id }) }), _jsxs("div", { className: "flex items-center gap-6", children: [_jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [_jsx(Hash, { className: "w-4 h-4" }), _jsx("span", { className: "text-foreground font-medium", children: formatNumber(totalTokens) })] }), estimatedCost > 0 && (_jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [_jsx(DollarSign, { className: "w-4 h-4" }), _jsxs("span", { className: "text-foreground font-medium", children: ["$", estimatedCost.toFixed(4)] })] }))] })] }) }));
23
+ return (_jsx("div", { className: `absolute top-0 left-0 right-0 h-14 border-b border-border bg-background/95 backdrop-blur-sm z-30 transition-transform duration-200 ${isVisible ? 'translate-y-0' : '-translate-y-full'}`, children: _jsxs("div", { className: "h-full px-6 flex items-center justify-between gap-6 text-sm", children: [_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [_jsx(Bot, { className: "w-4 h-4" }), _jsx("span", { className: "text-foreground font-medium", children: session.agent })] }), isGenerating && _jsx(StopButton, { sessionId: session.id })] }), _jsxs("div", { className: "flex items-center gap-6", children: [_jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [_jsx(Hash, { className: "w-4 h-4" }), _jsx("span", { className: "text-foreground font-medium", children: formatNumber(totalTokens) })] }), estimatedCost > 0 && (_jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [_jsx(DollarSign, { className: "w-4 h-4" }), _jsxs("span", { className: "text-foreground font-medium", children: ["$", estimatedCost.toFixed(4)] })] }))] })] }) }));
27
24
  }
28
25
  //# sourceMappingURL=LeanHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeanHeader.js","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,MAAM,UAAU,UAAU,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,YAAY,GACK;IACjB,yBAAyB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,GAAG,MAAM,CAAC;IACvB,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE1D,2BAA2B;IAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAE9C,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC;QACvD,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,eAAe,CAAC;QAE1D,OAAO,SAAS,GAAG,UAAU,CAAC;IAC/B,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE1D,4BAA4B;IAC5B,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;QACpC,OAAO,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,CACN,cACC,SAAS,EAAE,sIACV,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAC/B,EAAE,YAEF,eAAK,SAAS,EAAC,6DAA6D,aAE3E,cAAK,SAAS,EAAC,eAAe,YAC5B,YAAY,IAAI,KAAC,UAAU,IAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAI,GACjD,EAGN,eAAK,SAAS,EAAC,yBAAyB,aAEvC,eAAK,SAAS,EAAC,+CAA+C,aAC7D,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EAC5B,eAAM,SAAS,EAAC,6BAA6B,YAC3C,YAAY,CAAC,WAAW,CAAC,GACpB,IACF,EAGL,aAAa,GAAG,CAAC,IAAI,CACrB,eAAK,SAAS,EAAC,+CAA+C,aAC7D,KAAC,UAAU,IAAC,SAAS,EAAC,SAAS,GAAG,EAClC,gBAAM,SAAS,EAAC,6BAA6B,kBAC1C,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IACpB,IACF,CACN,IACI,IACD,GACD,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"LeanHeader.js","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,MAAM,UAAU,UAAU,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,YAAY,GACK;IACjB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,GAAG,MAAM,CAAC;IACvB,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE1D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAE9C,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC;QACvD,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,eAAe,CAAC;QAE1D,OAAO,SAAS,GAAG,UAAU,CAAC;IAC/B,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE1D,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;QACpC,OAAO,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,CACN,cACC,SAAS,EAAE,sIACV,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAC/B,EAAE,YAEF,eAAK,SAAS,EAAC,6DAA6D,aAC3E,eAAK,SAAS,EAAC,yBAAyB,aACvC,eAAK,SAAS,EAAC,+CAA+C,aAC7D,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,EAC3B,eAAM,SAAS,EAAC,6BAA6B,YAAE,OAAO,CAAC,KAAK,GAAQ,IAC/D,EAEL,YAAY,IAAI,KAAC,UAAU,IAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAI,IACjD,EAEN,eAAK,SAAS,EAAC,yBAAyB,aACvC,eAAK,SAAS,EAAC,+CAA+C,aAC7D,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EAC5B,eAAM,SAAS,EAAC,6BAA6B,YAC3C,YAAY,CAAC,WAAW,CAAC,GACpB,IACF,EAEL,aAAa,GAAG,CAAC,IAAI,CACrB,eAAK,SAAS,EAAC,+CAA+C,aAC7D,KAAC,UAAU,IAAC,SAAS,EAAC,SAAS,GAAG,EAClC,gBAAM,SAAS,EAAC,6BAA6B,kBAC1C,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IACpB,IACF,CACN,IACI,IACD,GACD,CACN,CAAC;AACH,CAAC"}
@@ -15,4 +15,5 @@ export declare function useModels(provider?: string): import("@tanstack/react-qu
15
15
  }>;
16
16
  default: string;
17
17
  }, Error>;
18
+ export declare function useAllModels(): import("@tanstack/react-query").UseQueryResult<import("..").AllModelsResponse, Error>;
18
19
  //# sourceMappingURL=useConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useConfig.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfig.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS;;;;;;;;UAKxB;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM;;;;gBAO60K,CAAC;;;UADx3K"}
1
+ {"version":3,"file":"useConfig.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfig.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS;;;;;;;;UAKxB;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM;;;;gBAcsyL,CAAC;;;UARj1L;AAED,wBAAgB,YAAY,0FAK3B"}
@@ -13,4 +13,10 @@ export function useModels(provider) {
13
13
  enabled: !!provider,
14
14
  });
15
15
  }
16
+ export function useAllModels() {
17
+ return useQuery({
18
+ queryKey: ['models', 'all'],
19
+ queryFn: () => apiClient.getAllModels(),
20
+ });
21
+ }
16
22
  //# sourceMappingURL=useConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useConfig.js","sourceRoot":"","sources":["../../src/hooks/useConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,UAAU,SAAS;IACxB,OAAO,QAAQ,CAAC;QACf,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;KACpC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAiB;IAC1C,OAAO,QAAQ,CAAC;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,OAAO,EAAE,CAAC,CAAC,QAAQ;KACnB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useConfig.js","sourceRoot":"","sources":["../../src/hooks/useConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,UAAU,SAAS;IACxB,OAAO,QAAQ,CAAC;QACf,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;KACpC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAiB;IAC1C,OAAO,QAAQ,CAAC;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,OAAO,EAAE,CAAC,CAAC,QAAQ;KACnB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,OAAO,QAAQ,CAAC;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE;KACvC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { CreateSessionRequest } from '../types/api';
1
+ import type { CreateSessionRequest, UpdateSessionRequest } from '../types/api';
2
2
  export declare function useSessions(): import("@tanstack/react-query").UseQueryResult<import("..").Session[], Error>;
3
+ export declare function useSession(sessionId: string): import("..").Session;
3
4
  export declare function useCreateSession(): import("@tanstack/react-query").UseMutationResult<import("..").Session, Error, CreateSessionRequest, unknown>;
5
+ export declare function useUpdateSession(sessionId: string): import("@tanstack/react-query").UseMutationResult<import("..").Session, Error, UpdateSessionRequest, unknown>;
4
6
  //# sourceMappingURL=useSessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessions.d.ts","sourceRoot":"","sources":["../../src/hooks/useSessions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,wBAAgB,WAAW,kFAM1B;AAED,wBAAgB,gBAAgB,kHAS/B"}
1
+ {"version":3,"file":"useSessions.d.ts","sourceRoot":"","sources":["../../src/hooks/useSessions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE/E,wBAAgB,WAAW,kFAM1B;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,wBAG3C;AAED,wBAAgB,gBAAgB,kHAS/B;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,iHAWjD"}
@@ -7,6 +7,10 @@ export function useSessions() {
7
7
  refetchInterval: 5000,
8
8
  });
9
9
  }
10
+ export function useSession(sessionId) {
11
+ const { data: sessions } = useSessions();
12
+ return sessions?.find((s) => s.id === sessionId);
13
+ }
10
14
  export function useCreateSession() {
11
15
  const queryClient = useQueryClient();
12
16
  return useMutation({
@@ -16,4 +20,14 @@ export function useCreateSession() {
16
20
  },
17
21
  });
18
22
  }
23
+ export function useUpdateSession(sessionId) {
24
+ const queryClient = useQueryClient();
25
+ return useMutation({
26
+ mutationFn: (data) => apiClient.updateSession(sessionId, data),
27
+ onSuccess: async () => {
28
+ await queryClient.invalidateQueries({ queryKey: ['sessions'] });
29
+ await queryClient.invalidateQueries({ queryKey: ['session', sessionId] });
30
+ },
31
+ });
32
+ }
19
33
  //# sourceMappingURL=useSessions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessions.js","sourceRoot":"","sources":["../../src/hooks/useSessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,UAAU,WAAW;IAC1B,OAAO,QAAQ,CAAC;QACf,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE;QACtC,eAAe,EAAE,IAAI;KACrB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,WAAW,CAAC;QAClB,UAAU,EAAE,CAAC,IAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;QACzE,SAAS,EAAE,GAAG,EAAE;YACf,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useSessions.js","sourceRoot":"","sources":["../../src/hooks/useSessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,UAAU,WAAW;IAC1B,OAAO,QAAQ,CAAC;QACf,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE;QACtC,eAAe,EAAE,IAAI;KACrB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IACzC,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,WAAW,CAAC;QAClB,UAAU,EAAE,CAAC,IAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;QACzE,SAAS,EAAE,GAAG,EAAE;YACf,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IACjD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,WAAW,CAAC;QAClB,UAAU,EAAE,CAAC,IAA0B,EAAE,EAAE,CAC1C,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC;QACzC,SAAS,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Session, Message, CreateSessionRequest, SendMessageRequest, SendMessageResponse, GitStatusResponse, GitDiffResponse, GitStageResponse, GitUnstageResponse, GitCommitResponse, GitGenerateCommitMessageResponse, GitBranchInfo, GitPushResponse } from '../types/api';
1
+ import type { Session, Message, CreateSessionRequest, SendMessageRequest, SendMessageResponse, GitStatusResponse, GitDiffResponse, GitStageResponse, GitUnstageResponse, GitCommitResponse, GitGenerateCommitMessageResponse, GitBranchInfo, GitPushResponse, UpdateSessionRequest, AllModelsResponse } from '../types/api';
2
2
  /**
3
3
  * Configure the API client with the correct base URL
4
4
  * This should be called once at application startup
@@ -8,6 +8,7 @@ declare class ApiClient {
8
8
  private get baseUrl();
9
9
  getSessions(): Promise<Session[]>;
10
10
  createSession(data: CreateSessionRequest): Promise<Session>;
11
+ updateSession(sessionId: string, data: UpdateSessionRequest): Promise<Session>;
11
12
  abortSession(sessionId: string): Promise<{
12
13
  success: boolean;
13
14
  }>;
@@ -31,6 +32,7 @@ declare class ApiClient {
31
32
  }>;
32
33
  default: string;
33
34
  }>;
35
+ getAllModels(): Promise<AllModelsResponse>;
34
36
  getGitStatus(): Promise<GitStatusResponse>;
35
37
  getGitDiff(file: string, staged?: boolean): Promise<GitDiffResponse>;
36
38
  generateCommitMessage(): Promise<GitGenerateCommitMessageResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACX,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gCAAgC,EAChC,aAAa,EACb,eAAe,EACf,MAAM,cAAc,CAAC;AAsDtB;;;GAGG;AACH,wBAAgB,kBAAkB,SAOjC;AAoCD,cAAM,SAAS;IACd,OAAO,KAAK,OAAO,GAOlB;IAGK,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQjC,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAa3D,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAU9D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUlD,WAAW,CAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAW/B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAKjC,SAAS,IAAI,OAAO,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IAYI,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,MAAM,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAeI,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAS1C,UAAU,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAe,GACrB,OAAO,CAAC,eAAe,CAAC;IAcrB,qBAAqB,IAAI,OAAO,CAAC,gCAAgC,CAAC;IAWlE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYtD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY1D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAY1D,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAStC,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;CAW7C;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACX,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gCAAgC,EAChC,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,cAAc,CAAC;AAsDtB;;;GAGG;AACH,wBAAgB,kBAAkB,SAOjC;AAoCD,cAAM,SAAS;IACd,OAAO,KAAK,OAAO,GAOlB;IAGK,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQjC,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAa3D,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC;IAoBb,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAU9D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUlD,WAAW,CAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAW/B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAKjC,SAAS,IAAI,OAAO,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IAYI,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,MAAM,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAcI,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAmB1C,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAS1C,UAAU,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAe,GACrB,OAAO,CAAC,eAAe,CAAC;IAcrB,qBAAqB,IAAI,OAAO,CAAC,gCAAgC,CAAC;IAWlE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYtD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY1D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAY1D,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAStC,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;CAW7C;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
@@ -108,6 +108,23 @@ class ApiClient {
108
108
  }
109
109
  return convertSession(response.data);
110
110
  }
111
+ async updateSession(sessionId, data) {
112
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}`, {
113
+ method: 'PATCH',
114
+ headers: {
115
+ 'Content-Type': 'application/json',
116
+ },
117
+ body: JSON.stringify(data),
118
+ });
119
+ if (!response.ok) {
120
+ const errorData = await response
121
+ .json()
122
+ .catch(() => ({ error: 'Failed to update session' }));
123
+ throw new Error(extractErrorMessage(errorData));
124
+ }
125
+ const sessionData = await response.json();
126
+ return convertSession(sessionData);
127
+ }
111
128
  async abortSession(sessionId) {
112
129
  const response = await apiAbortSession({
113
130
  path: { sessionId },
@@ -157,6 +174,21 @@ class ApiClient {
157
174
  }
158
175
  return response.data;
159
176
  }
177
+ async getAllModels() {
178
+ const response = await fetch(`${this.baseUrl}/v1/config/models`, {
179
+ method: 'GET',
180
+ headers: {
181
+ 'Content-Type': 'application/json',
182
+ },
183
+ });
184
+ if (!response.ok) {
185
+ const errorData = await response
186
+ .json()
187
+ .catch(() => ({ error: 'Failed to fetch models' }));
188
+ throw new Error(extractErrorMessage(errorData));
189
+ }
190
+ return await response.json();
191
+ }
160
192
  // Git methods using new API
161
193
  async getGitStatus() {
162
194
  const response = await apiGetGitStatus();
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,11 @@ export interface CreateSessionRequest {
57
57
  model?: string;
58
58
  title?: string;
59
59
  }
60
+ export interface UpdateSessionRequest {
61
+ agent?: string;
62
+ provider?: string;
63
+ model?: string;
64
+ }
60
65
  export interface SendMessageRequest {
61
66
  content: string;
62
67
  agent?: string;
@@ -68,6 +73,17 @@ export interface SendMessageRequest {
68
73
  export interface SendMessageResponse {
69
74
  messageId: string;
70
75
  }
76
+ export interface ModelInfo {
77
+ id: string;
78
+ label: string;
79
+ toolCall?: boolean;
80
+ reasoning?: boolean;
81
+ }
82
+ export interface ProviderModels {
83
+ label: string;
84
+ models: ModelInfo[];
85
+ }
86
+ export type AllModelsResponse = Record<string, ProviderModels>;
71
87
  export interface GitFileStatus {
72
88
  path: string;
73
89
  absPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agi-cli/web-sdk",
3
- "version": "0.1.76",
3
+ "version": "0.1.78",
4
4
  "description": "Reusable React components, hooks, and utilities for building AGI CLI web interfaces",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -58,7 +58,7 @@
58
58
  "directory": "packages/web-sdk"
59
59
  },
60
60
  "dependencies": {
61
- "@agi-cli/api": "0.1.76",
61
+ "@agi-cli/api": "0.1.78",
62
62
  "axios": "^1.7.9"
63
63
  },
64
64
  "peerDependencies": {