8faa02c3d5
W17: extract ai_common shared module + fix anthropic data race + brace bugs
...
- New plugins_upper/ai_common/ static library: shared PluginConfig, ToolCallAccum,
StreamContext, secure_zero, extract_host_port, serialize_tool_calls, free_chat_result
- Refactored openai/anthropic plugins to use dstalk_ai:: namespace from ai_common
- Fixed anthropic g_config raw pointer → std::atomic (data race)
- Added SSE parse error counter with threshold abort (kMaxSseParseErrors=5)
- Fixed missing closing brace in both plugins' error-body catch block
- Updated test targets: ai_common include path + link, using namespace dstalk_ai
- plugin_loader_test: added stub_unreg + service_registry.cpp for unregister_service
- Includes pre-existing uncommitted changes from prior waves
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-31 16:58:25 +08:00
ba7382db2a
feat: add OpenAI-compatible AI provider plugin with SSE streaming support
...
- Implemented the OpenAI-compatible AI provider plugin, including configuration, chat, and chat_stream functionalities.
- Added support for SSE streaming and tool calls.
- Integrated Boost.JSON for JSON handling.
- Created CMake configuration for the plugin.
- Added error handling and logging throughout the plugin.
2026-05-31 05:37:04 +08:00