Skip to content

Commit d576be9

Browse files
fazxesclaude
andcommitted
refactor(agent): reorganize components into professional folder structure
- Rename shared/ → common/ for common utilities - Split activity/ → git/ (source control) + files/ (file viewer) + panels/ - Consolidate settings/, dialogs/, quick-open/, diagnostics/ → modals/ and panels/ - Reorganize chat/ into messages/, input/, status/, tools/ subfolders - Move terminal addons from components/ to lib/terminal/ - Update all import paths across codebase - Add proper index.ts exports for all new folders 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 9d18d02 commit d576be9

81 files changed

Lines changed: 194 additions & 124 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎apps/agent/src/components/chat/chat-messages.tsx‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import { Loader2 } from 'lucide-react';
22
import { useEffect, useRef } from 'react';
33

4-
import type { ChatMessage } from '@/components/chat/message-item';
4+
import { MessageItem } from './messages';
5+
import { QueuedMessageBubble } from './queued-message';
6+
7+
import type { ChatMessage } from './messages';
58
import type { QueuedMessage } from '@/stores/queued-message-store';
69
import type { PermissionRequest, ToolExecution } from '@/stores/tool-store';
710
import type { FC } from 'react';
811

9-
import { MessageItem } from '@/components/chat/message-item';
10-
import { PermissionModal } from '@/components/chat/permission-modal';
11-
import { QueuedMessageBubble } from '@/components/chat/queued-message';
12+
import { PermissionModal } from '@/components/modals';
1213

1314
interface ChatMessagesProps {
1415
readonly messages: ChatMessage[];
Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
1+
// Messages
2+
export * from './messages';
3+
4+
// Input
5+
export * from './input';
6+
7+
// Status indicators
8+
export * from './status';
9+
10+
// Tool widgets
11+
export * from './tools';
12+
13+
// Queued message
14+
export * from './queued-message';
15+
16+
// Top-level chat components
17+
export { ChatHeader } from './chat-header';
18+
export { ChatMessages } from './chat-messages';
19+
export { WelcomeGreeting } from './welcome-greeting';
120
export { ConversationHeader } from './conversation-header';
2-
export { MessageFeed } from './message-feed';
3-
export { MessageSection } from './message-section';
4-
export { UserMessage } from './user-message';
5-
export { AgentMessage } from './agent-message';
6-
export { TaskPhaseCard } from './task-phase-card';
721
export { FilesEditedList } from './files-edited-list';
8-
export { ProgressUpdates } from './progress-updates';
9-
export { ProgressStep } from './progress-step';
1022
export { ToolCallBlock } from './tool-call-block';
11-
export { NotifyUserCard } from './notify-user-card';
12-
export { ProceedIndicator } from './proceed-indicator';
13-
export { MessageFeedback } from './message-feedback';
14-
export { ContextChips } from './context-chips';
15-
export { MentionPopover, getFilteredFilesCount, getFileAtIndex } from './mention-popover';
16-
export {
17-
Context,
18-
ContextTrigger,
19-
ContextContent,
20-
ContextContentHeader,
21-
ContextContentBody,
22-
ContextContentFooter,
23-
ContextInputUsage,
24-
ContextOutputUsage,
25-
ContextTotalUsage,
26-
} from './context';

apps/agent/src/components/chat/chat-input.tsx renamed to apps/agent/src/components/chat/input/chat-input.tsx

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,6 @@
11
import { ArrowUp, AtSign, Coins, Globe, Image, Lightbulb, Square } from 'lucide-react';
22
import { useCallback, useEffect, useRef, useState } from 'react';
33

4-
import type { SlashCommand } from '@/components/chat/slash-command-popover';
5-
import type { ContextItem, FileEntry } from '@/types/context';
6-
import type {
7-
ExtensionMessage,
8-
InputMode,
9-
Model,
10-
ReactElementContext,
11-
ThinkingMode,
12-
} from '@/types/protocol';
13-
import type { FC } from 'react';
14-
15-
import { ElementContextList } from '@/components/browser';
164
import {
175
Context,
186
ContextContent,
@@ -21,19 +9,28 @@ import {
219
ContextInputUsage,
2210
ContextOutputUsage,
2311
ContextTrigger,
24-
} from '@/components/chat/context';
25-
import { ContextChips } from '@/components/chat/context-chips';
26-
import {
27-
MentionPopover,
28-
getFilteredFilesCount,
29-
getFileAtIndex,
30-
} from '@/components/chat/mention-popover';
31-
import { ModelSelector } from '@/components/chat/model-selector';
12+
} from './context';
13+
import { ContextChips } from './context-chips';
14+
import { MentionPopover, getFilteredFilesCount, getFileAtIndex } from './mention-popover';
15+
import { ModelSelector } from './model-selector';
3216
import {
3317
SlashCommandPopover,
3418
getFilteredCommandsCount,
3519
getCommandAtIndex,
36-
} from '@/components/chat/slash-command-popover';
20+
} from './slash-command-popover';
21+
22+
import type { SlashCommand } from './slash-command-popover';
23+
import type { ContextItem, FileEntry } from '@/types/context';
24+
import type {
25+
ExtensionMessage,
26+
InputMode,
27+
Model,
28+
ReactElementContext,
29+
ThinkingMode,
30+
} from '@/types/protocol';
31+
import type { FC } from 'react';
32+
33+
import { ElementContextList } from '@/components/browser';
3734
import {
3835
DropdownMenu,
3936
DropdownMenuContent,
File renamed without changes.
File renamed without changes.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
export { ChatInput } from './chat-input';
2+
export type { ImageAttachment } from './chat-input';
3+
export { MentionPopover, getFilteredFilesCount, getFileAtIndex } from './mention-popover';
4+
export {
5+
SlashCommandPopover,
6+
getFilteredCommandsCount,
7+
getCommandAtIndex,
8+
} from './slash-command-popover';
9+
export type { SlashCommand } from './slash-command-popover';
10+
export { ModelSelector } from './model-selector';
11+
export { ContextChips } from './context-chips';
12+
export {
13+
Context,
14+
ContextTrigger,
15+
ContextContent,
16+
ContextContentHeader,
17+
ContextContentBody,
18+
ContextContentFooter,
19+
ContextInputUsage,
20+
ContextOutputUsage,
21+
ContextTotalUsage,
22+
} from './context';
File renamed without changes.
File renamed without changes.

apps/agent/src/components/chat/slash-command-popover.tsx renamed to apps/agent/src/components/chat/input/slash-command-popover.tsx

File renamed without changes.

apps/agent/src/components/chat/agent-message.tsx renamed to apps/agent/src/components/chat/messages/agent-message.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { Bot } from 'lucide-react';
22

3+
import { NotifyUserCard, ProceedIndicator, TaskPhaseCard } from '../status';
4+
import { ToolCallBlock } from '../tool-call-block';
5+
36
import { MessageFeedback } from './message-feedback';
4-
import { NotifyUserCard } from './notify-user-card';
5-
import { ProceedIndicator } from './proceed-indicator';
6-
import { TaskPhaseCard } from './task-phase-card';
7-
import { ToolCallBlock } from './tool-call-block';
87

98
import type { FC } from 'react';
109

0 commit comments

Comments
 (0)