Commit Graph

4549 Commits

Author SHA1 Message Date
Vaayne 49add96dc0 feat(database): add agent_session_id to session_messages table and update related services 2025-09-18 17:46:05 +08:00
icarus db58762a13 refactor(AssistantsTab): remove agent-related code and imports 2025-09-18 17:40:12 +08:00
beyondkmp 5dac1f5867 feat: support more terminal in code tools (#10192)
* feat(CodeTools): add support for terminal selection on macOS

- Introduced terminal selection functionality in CodeTools, allowing users to choose from available terminal applications.
- Implemented caching for terminal availability checks to enhance performance.
- Updated CodeToolsService to preload available terminals and check their availability.
- Enhanced UI in CodeToolsPage to display terminal options and handle user selection.
- Added new IPC channel for retrieving available terminals from the main process.

* lint errs

* format

* support wezterm

* support terminal

* support ghostty

* support warp kitty

* fix github scanner issues

* fix all github issues

* support windows

* support windows

* suppport hyper

* Refactor terminal command execution for macOS applications to use shell scripts instead of AppleScript, improving compatibility and performance.

* Remove Hyper terminal configuration from shared constants

* update lint

* fix(i18n): Auto update translations for PR #10192

* fix platform checking

* format

* feat: add Tabby terminal configuration for macOS

* fix wrap terminal

* delete warp

---------

Co-authored-by: GitHub Action <action@github.com>
2025-09-18 02:33:06 -07:00
icarus 6e89d0037f Merge branch 'feat/agents-new' of github.com:CherryHQ/cherry-studio into feat/agents-new 2025-09-18 17:12:10 +08:00
icarus 54de2341bd refactor(agents): remove draggable functionality and simplify agent list rendering
Remove unused agent management hooks and replace DraggableList with simple map
Add cursor-pointer style to AgentItem for better UX
2025-09-18 16:24:27 +08:00
SuYao 1d0fc26025 fix formatApiHost (#10236)
* Add .codebuddy and .zed to .gitignore and fix formatApiHost

Prevent formatApiHost from processing undefined/empty host values and
ignore editor-specific directories

* Refactor reasoning tag selection logic for providers

Move gpt-oss model handling from aws-bedrock case to openai case and
consolidate tag selection logic into a single if-else chain.

* Extract reasoning tag name into helper function

* fix test

* Replace array indexing with named object properties for reasoning tags

Improves code readability by using descriptive property names instead of
magic array indices when selecting reasoning tag names by model type.

* Move host validation to start of formatApiHost
2025-09-18 15:43:07 +08:00
beyondkmp b131f0c48c pack optimization 2025-09-18 15:25:16 +08:00
Vaayne 9e4b792fc3 🐛 fix: resolve duplicate migration key '156' to '157' 2025-09-18 14:54:45 +08:00
Vaayne 7abd5da57d ♻️ refactor: replace ClaudeCodeService child process with SDK query
- Replace process spawning with @anthropic-ai/claude-code SDK query function
- Remove complex process management, stdout/stderr parsing, and JSON buffering
- Directly iterate over typed SDKMessages from AsyncGenerator
- Simplify error handling and completion logic
- Maintain full compatibility with existing SessionMessageService interface
- Eliminate ~130 lines of process management code
- Improve reliability by removing JSON parsing edge cases
2025-09-18 14:54:45 +08:00
icarus 8d92b515ab feat(agent): return updated agent data from updateAgent method
Add response parsing and return type to updateAgent to provide updated agent data to callers
2025-09-18 14:35:57 +08:00
icarus 524098d6d3 feat(agent): add error processing utility and update agent method
Introduce processError utility to handle axios errors consistently
Add updateAgent method to support partial updates of agent data
2025-09-18 14:34:05 +08:00
icarus 42fa2d94be feat(api): add formatAxiosError utility for handling axios errors 2025-09-18 14:33:45 +08:00
icarus f1991b356b feat(agent): add get and delete agent methods with error handling
Implement getAgent and deleteAgent methods in AgentClient with proper error handling
Add formatAgentServerError utility for consistent error messages
2025-09-18 14:20:48 +08:00
icarus 825c376c5c feat(agent): add create agent endpoint to agent client 2025-09-18 14:08:31 +08:00
icarus 231a923c9d feat(types): add AgentForm type and move from component to types file
Centralize the AgentForm type definition in the types file for better maintainability and reuse across components
2025-09-18 14:03:10 +08:00
icarus dbf01652f8 feat(agent): add avatar support for agent items
Implement getAgentAvatar function to provide avatar images based on agent type. Update AgentItem component to display agent-specific avatars instead of generic ones.
2025-09-18 13:59:37 +08:00
icarus 842a6cb178 style(AssistantsTab): reorder tailwind classes for consistency 2025-09-18 13:54:59 +08:00
icarus d56c526709 feat(api): add AgentClient class for listing agents
Implement a new API client class to handle agent listing operations with proper error handling and validation
2025-09-18 13:48:57 +08:00
icarus 70a68bef27 Revert "feat(types): add DeleteAgentResponse type and update AgentService"
This reverts commit 219844cb74.
2025-09-18 13:31:23 +08:00
icarus f9b49ffde6 Merge branch 'feat/agents-new' of github.com:CherryHQ/cherry-studio into feat/agents-new 2025-09-18 13:28:36 +08:00
icarus a264fd42e4 feat(types): add AgentServerError schema for error handling 2025-09-18 13:26:51 +08:00
icarus 219844cb74 feat(types): add DeleteAgentResponse type and update AgentService
Update AgentService to use DeleteAgentResponse type instead of boolean for better type safety
2025-09-18 13:24:00 +08:00
icarus 230205d210 feat(types): add UpdateAgentResponse type and schema
Update agent service to use new response type for consistency
2025-09-18 13:21:37 +08:00
icarus f9fb0f9125 feat(agent): add ListAgentsResponse type and update service
Add ListAgentsResponse schema and type to handle agent listing responses
Update AgentService to use the new type for listAgents method
2025-09-18 13:19:57 +08:00
icarus 0f777e357d refactor(types): convert GetAgentSessionResponse interface to zod schema
Improve type safety by using zod schema definition and inference instead of manual interface
2025-09-18 13:17:32 +08:00
icarus 5c578c191b refactor(types): convert AgentSessionMessageEntity interface to zod schema
Replace interface with zod schema for better type safety and validation
2025-09-18 13:15:58 +08:00
icarus 7a4952f773 refactor(types): convert AgentSessionEntity interface to zod schema
Use zod schema for better type safety and validation capabilities
2025-09-18 13:01:57 +08:00
icarus 71a1daddef refactor(types): reorder CreateAgentResponse and its schema
Place schema definition before type alias for better readability and consistency
2025-09-18 13:00:41 +08:00
icarus 0a82955e91 refactor(types): replace GetAgentResponse interface with zod schema
Use zod schema for better type safety and validation
2025-09-18 12:59:49 +08:00
icarus 62d2da3815 refactor(types): convert Tool interface to zod schema
Use zod schema for better type safety and validation capabilities
2025-09-18 12:58:56 +08:00
icarus 84aab66aa6 refactor(types): add CreateAgentResponseSchema for consistency 2025-09-18 12:56:29 +08:00
icarus 2d0d599ac8 refactor(types): convert AgentEntity interface to zod schema
Use zod schema for better runtime validation and type safety
2025-09-18 12:55:01 +08:00
icarus dca6be45b0 refactor(types): replace hardcoded agent type check with zod schema
Use zod schema validation for type safety and maintainability instead of manual array checking
2025-09-18 12:52:58 +08:00
icarus 5a71807cc9 feat(types): add CreateAgentResponse type and update AgentService return type 2025-09-18 12:50:42 +08:00
icarus 0d0ab4dcf5 refactor(types): convert AgentBase interface to zod schema
This change improves type safety and validation by replacing the TypeScript interface with a zod schema definition. The schema provides runtime validation while maintaining the same type inference capabilities.
2025-09-18 12:49:17 +08:00
icarus ac3da51890 refactor(types): replace AgentConfiguration interface with zod schema
Use zod schema for better type safety and validation capabilities
2025-09-18 12:46:45 +08:00
icarus 9ea361f7e8 refactor(types): migrate PermissionMode to zod schema for type safety 2025-09-18 12:45:00 +08:00
icarus cc6160892a refactor(types): reorganize agent type interfaces for better clarity
Move API DTO interfaces to a dedicated section at the bottom of the file to improve code organization and maintainability
2025-09-18 12:42:01 +08:00
Vaayne 8ada7ffaf6 Merge remote-tracking branch 'origin/main' into feat/agents-new 2025-09-18 11:51:34 +08:00
Vaayne e7c37231e0 feat: Enhance message handling with user message persistence and improved stream management 2025-09-18 00:30:43 +08:00
SuYao c76df7fb16 fix: Remove maxTokens check from Anthropic thinking budget (#10240)
Remove maxTokens check from Anthropic thinking budget
2025-09-17 23:10:58 +08:00
SuYao 89d5bd817b fix: Add AWS Bedrock reasoning extraction middleware (#10231)
* Add AWS Bedrock reasoning extraction middleware

- Add 'reasoning' tag to tagNameArray for broader reasoning support
- Add AWS Bedrock case with gpt-oss model-specific reasoning extraction
- Add openai-chat and openrouter cases to provider options switch
- Remove unused zod import

* Add OpenRouter provider support

Updates ai-core to version alpha.18 with OpenRouter integration and
improves provider ID resolution for OpenAI API hosts.
2025-09-17 20:01:47 +08:00
MyPrototypeWhat e930d3de43 refactor: update imports to use type-only imports for WebSearchPluginConfig and CherryWebSearchConfig
- Changed imports of WebSearchPluginConfig and CherryWebSearchConfig to type-only imports for better clarity and to optimize TypeScript compilation.
2025-09-17 18:40:38 +08:00
MyPrototypeWhat ecc9923050 Merge remote-tracking branch 'origin/main' into v2 2025-09-17 18:37:22 +08:00
Phantom 4f746842a5 refactor: migrate Flex from antd to custom Flex component (#10083)
* refactor(components): rename HStack and VStack to RowFlex and ColFlex for clarity

rename HStack to RowFlex and VStack to ColFlex across all components to better reflect their purpose as flex containers with row and column directions. This improves code readability and maintainability while keeping the same functionality. All references to these components have been updated accordingly.

* refactor(layout): migrate layout components from .ts to .tsx

The layout components have been moved from TypeScript (.ts) to TypeScript with JSX (.tsx) to better support JSX syntax and improve type safety. The functionality remains unchanged.

* refactor(Layout): convert styled Box component to functional component

Improve maintainability by converting styled-component to a functional component with explicit style props. This provides better type safety through CSSProperties interface and makes the component easier to debug.

* refactor(Layout): restructure Box component and convert styled components to functional

- Replace styled-components with functional components for Stack and Center
- Rename style variable to _style in Box component to avoid naming conflict
- Add style prop to Box component to allow external style overrides

* refactor(components): rename HSpaceBetweenStack to SpaceBetweenRowFlex for clarity

* refactor(Layout): pass through props in Stack components

Allow additional props to be passed to Stack and its variants for better flexibility. Convert RowFlex from styled component to regular component for consistency.

* refactor(Layout): convert SpaceBetweenRowFlex from styled to component

Improve maintainability by converting styled component to a regular component that explicitly passes justifyContent prop

* refactor(Layout): convert ColFlex to component and type RowFlex props

Improve type safety by explicitly omitting flexDirection from StackProps and convert ColFlex from styled component to regular component for consistency

* refactor(Layout): convert BaseTypography from styled to component

Improve type safety and maintainability by converting styled component to regular React component with TypeScript interface

* refactor(Layout): remove unused BaseTypography component

* refactor(Layout): remove unused Container component and interface

* refactor(layout): rename Stack to Flex and use CSSProperties types

The Stack component was renamed to Flex to better reflect its purpose and align with common naming conventions. The interface properties were also updated to use CSSProperties types for better type safety and consistency with CSS standards.

* refactor(Layout): move FlexProps interface and comment out unused ButtonProps

Clean up component interfaces by moving FlexProps closer to its usage and commenting out unused ButtonProps interface to reduce clutter

* refactor(layout): standardize flex props from alignItems/justifyContent to align/justify

The changes standardize the flex-related props in the Layout component and across multiple files from using alignItems/justifyContent to the shorter align/justify. This improves consistency and reduces verbosity in the codebase while maintaining the same functionality.

All instances of alignItems have been replaced with align and justifyContent with justify in Flex, RowFlex, ColFlex and related components. The changes are purely syntactic and do not affect the actual layout behavior.

This refactoring makes the code more maintainable by using a consistent naming convention for flex properties throughout the application.

* refactor(Layout): extend BoxProps with React div props

* feat(Layout): add flexWrap prop to Flex component interface

Add flexWrap property to FlexProps interface to support CSS flex-wrap functionality. Also replace antd Flex with custom Flex component in TagFilterSection.

* refactor(components): replace antd Flex with custom Layout components

Consolidate Flex component usage across multiple files by replacing antd's Flex with custom Layout components (Flex, ColFlex, RowFlex) for better maintainability and consistency

* refactor(components):  migrate antd Flex tu custom Flex

* refactor(components): update layout component usage for consistency

replace RowFlex with ColFlex where appropriate and align prop names

* refactor(tests): rename HStack to RowFlex in test components

Update test snapshots and mock components to reflect the component name change from HStack to RowFlex
Remove unused data-vertical attribute from preview container

* refactor(Layout): pass through props and merge styles in Box and Flex components

Improve component flexibility by allowing additional props to pass through and properly merging style objects in both Box and Flex components

* refactor(Layout): make Flex component props optional with undefined defaults

* test: update TagFilterSection snapshot to include wrap style

* perf(Layout): optimize Box component style calculation with useMemo

* docs: fix typo in Layout component comment

* refactor(Layout): update BoxProps to use CSSProperties types

Standardize prop types by using CSSProperties for style-related props to improve type safety and consistency with React's style system

* feat(Layout): add wrap prop to Flex component

* style(TagFilterSection): update snapshot styling to use flex-wrap property

* refactor(Layout): simplify layout components by using Tailwind CSS classes

Remove custom style calculations and props in favor of Tailwind utility classes

* refactor: replace inline styles with Tailwind CSS classes for consistent styling

style: update spacing and alignment utilities across components

* refactor(tests): update test snapshots to use tailwind classes

Replace inline styles with tailwind classes in test snapshots and update test assertions to match. This improves consistency with the codebase's styling approach.

* style: adjust spacing and gaps in UI components for consistency

* style: replace inline styles with tailwind classes for consistency

Refactor various components to use tailwind classes instead of inline styles to maintain consistency and improve readability. Changes include:
- Replacing style attributes with tailwind classes for spacing, margins, and padding
- Standardizing gap sizes across components
- Using tailwind for width, height, and other layout properties
- Updating test files to match new class names

* style(settings): replace inline styles with tailwind classes for consistency

Refactor settings components to use tailwind gap utility instead of inline styles for better maintainability and consistency across the codebase

* refactor(styles): replace inline styles with tailwind classes for consistency

* feat(eslint): add rule to restrict antd Flex imports

Enforce using custom Layout components instead of antd's Flex by adding a restricted import rule

* refactor: migrate flex layout from antd props to tailwind classes

- Replace antd Flex component props with tailwind classes for consistency
- Update gap and alignment values to use tailwind's spacing scale
- Remove unused antd Flex imports to clean up dependencies

* style(settings): adjust spacing and layout in various settings components

- Add gap spacing between elements in multiple settings components
- Remove redundant flex class in some components
- Standardize gap sizes across related components

* refactor(ui): replace inline styles with tailwind classes for consistency

Replace various inline style attributes with equivalent tailwind classes across multiple components to maintain consistent styling approach. Changes include margin, padding, width, and flex properties.

- Convert style attributes to tailwind classes
- Standardize spacing values using tailwind's spacing scale
- Improve maintainability by using utility classes

* style(ui): adjust spacing in model list group header

* style(css): wrap base styles in @layer for better organization

* style(css): fix indentation and nesting in global styles

* style(settings): adjust spacing in model list and convert subtitle to cn

Refactor SettingSubtitle to use cn utility for better className handling
Add gap spacing between model list items for improved layout

* style(css): move some styles from base layer to outer in index.css

* refactor(components): replace HStack with RowFlex for consistency

Update layout components to use RowFlex instead of HStack to maintain consistent naming

* style: reorder imports in useAppInit and BaseApiClient files

* fix(MinAppTabsPool): wrong import path

* refactor: update style file extensions from scss to css

Update file extensions and comments to reflect the change from SCSS to CSS stylesheets

* feat(layout): add Flex component and its variants

Introduce new Flex component with Box, RowFlex, SpaceBetweenRowFlex, ColFlex and Center variants to provide reusable layout components

* refactor: migrate layout components to @cherrystudio/ui package

This commit updates all imports of layout components (Box, Flex, RowFlex, ColFlex, etc.) from '@renderer/components/Layout' to '@cherrystudio/ui' across the codebase. The change also includes updating related test files and eslint configuration to reflect this migration. This refactoring aims to centralize layout components in a shared package for better maintainability and consistency.

* docs(eslint): update comment and restricted imports rule

Update comment to clarify the purpose of the rule and add a TODO note for future migration

* docs(ui): update migration status for layout components

Mark Layout/* components as migrated and refactored in both Chinese and English documentation

* docs: update migration status for Layout components
2025-09-17 18:17:17 +08:00
kangfenmao 273475881e refactor: update HeroUIProvider import in MiniWindowApp component
- Changed the import of HeroUIProvider from '@heroui/react' to '@renderer/context/HeroUIProvider' for better context management.
2025-09-17 18:02:30 +08:00
one aab941d89c refactor: migrate sortable (#10204)
* refactor: rename sortable dir

* refactor: migrate Sortable to the ui package

* feat: add stories for Sortable

* refactor: add scroller to the vertical story

* refactor: improve hints and width

* refactor: simplify item style

* fix: lint errors

* chore: dependencies

* refactor: move hooks

* fix: import errors

* style: format

* style: format
2025-09-17 17:26:40 +08:00
SuYao 6afaf6244c Fix Anthropic API URL and add endpoint path handling (#10229)
* Fix Anthropic API URL and add endpoint path handling

- Remove trailing slash from Anthropic API base URL
- Add isAnthropicProvider utility function
- Update provider settings to show full endpoint URL for Anthropic
- Add migration to clean up existing Anthropic provider URLs

* Update src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx

Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com>

---------

Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com>
2025-09-17 17:23:23 +08:00
Phantom 77535b002a feat(Inputbar): cache mentioned models state between renders (#10197)
Use a ref to track mentioned models state and cache it in a module-level variable when component unmounts to preserve state between renders
2025-09-17 16:33:10 +08:00
MyPrototypeWhat 1b04fd065d refactor(ui): enhance CustomCollapse and ToolsCallingIcon components
- Refactored CustomCollapse to utilize Accordion and AccordionItem from HeroUI, simplifying props and improving functionality.
- Updated ToolsCallingIcon to accept TooltipProps for better customization.
- Revised stories for CustomCollapse to reflect new prop structure and added examples for various use cases.
- Cleaned up unnecessary props and improved documentation in story files.
2025-09-17 15:45:22 +08:00