cherry-studio/src/main/services
Luke Galea c9837eaa71
feat: add OpenAI o3 model support with enhanced tool calling (#8253)
* feat: add OpenAI o3 model support with enhanced tool calling

- Add o3 and o3-mini model definitions with reasoning effort support
- Implement o3-compatible strict schema validation for MCP tools
- Add comprehensive o3 schema processing with DRY improvements
- Extract reusable schema processing functions for maintainability
- Add 15+ test cases validating o3 strict mode requirements
- Fix schema composition keyword handling with loop-based approach
- Ensure ALL object schemas have complete required arrays for o3
- Support tool calling with proper o3 schema transformations

This enables OpenAI o3 models to work properly with MCP tool calling
while improving code organization and test coverage.

Signed-off-by: Luke Galea <luke@ideaforge.org>

* Remove redundant reference in HtmlArtifactsPopup.tsx

* refactor: move filterProperties to mcp-schema, fix tests

---------

Signed-off-by: Luke Galea <luke@ideaforge.org>
Co-authored-by: one <wangan.cs@gmail.com>
Co-authored-by: suyao <sy20010504@gmail.com>
2025-08-04 23:19:21 +08:00
..
mcp refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
memory refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
remotefile refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
urlschema refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
AppService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
AppUpdater.ts fix(AppUpdater): simplify error logging and update version check logic (#8656) 2025-07-30 11:59:41 +08:00
BackupManager.ts fix(LocalBackup): streamline local backup relative directory handling (#8595) 2025-07-28 21:57:04 +08:00
CacheService.ts feat: add gemini files support 2025-01-07 16:49:11 +08:00
ConfigManager.ts feat: add developer mode settings 2025-07-20 15:37:38 +08:00
ContextMenu.ts fix: support spell check for mini app (#7602) 2025-06-28 08:36:32 +08:00
CopilotService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
DxtService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
ExportService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
FileStorage.ts refactor: remove mac ocr 2025-07-31 21:51:16 +08:00
FileSystemService.ts feat: Support LLM Tracing by Alibaba Cloud EDAS product (#7895) 2025-07-20 14:53:35 +08:00
KnowledgeService.ts refactor: remove mac ocr 2025-07-31 21:51:16 +08:00
LoggerService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
MCPService.ts feat: Support Cherry Studio as a Service (CSaaS) (#8098) 2025-07-30 12:38:07 +08:00
MistralClientManager.ts feat(knowledge): support doc2x, mistral, MacOS, MinerU... OCR (#3734) 2025-07-03 16:23:02 +08:00
NodeTraceService.ts fix: change jschardet to chardet (#8577) 2025-07-29 17:27:36 +08:00
NotificationService.ts fix: add channel property to notifications for backup and assistant messages (#8120) 2025-07-15 19:25:55 +08:00
NutstoreService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
ObsidianVaultService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
ProtocolClient.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
ProxyManager.ts feat: add OpenAI o3 model support with enhanced tool calling (#8253) 2025-08-04 23:19:21 +08:00
PythonService.ts feat: implement Python MCP server using existing Pyodide infrastructure (#7506) 2025-06-25 18:21:10 +08:00
ReduxService.ts feat: Support Cherry Studio as a Service (CSaaS) (#8098) 2025-07-30 12:38:07 +08:00
S3Storage.ts fix(s3): add volces.com to virtual host suffix whitelist (#8824) 2025-08-04 18:20:08 +08:00
SearchService.ts fix: remove redundant local variables (#5654) 2025-05-04 19:56:56 +08:00
SelectionService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
ShortcutService.ts refactor: Unified Logger / 统一日志管理 (#8207) 2025-07-18 09:40:56 +08:00
SpanCacheService.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
StoreSyncService.ts feat(SelectionAssistant): shortcut key to toggle on/off (#6983) 2025-06-11 13:32:49 +08:00
ThemeService.ts style: set eol to lf, code formatting (#7923) 2025-07-08 09:50:33 +08:00
TrayService.ts feat: SelectionAssistant macOS version / 划词助手macOS版 (#7561) 2025-07-03 14:31:31 +08:00
VertexAIService.ts Feat/vertex-claude-support (#7564) 2025-07-24 23:46:32 +08:00
WebDav.ts refactor[Logger]: strict type check for Logger (#8363) 2025-07-23 13:24:03 +08:00
WebviewService.ts fix(WebviewService): simplify user agent string modification by removing Chrome version replacement 2025-05-13 16:47:18 +08:00
WindowService.ts fix(WindowService): comment out dock icon hiding for macOS when closing to tray due to cmd+h behavior issue (#8658) 2025-08-01 20:54:56 +08:00