feat: implement third party agent sub stage and refactor provider management

- Added `ThirdPartyAgentSubStage` to handle interactions with third-party agent runners (Dify, Coze, Dashscope).
- Refactored `star_request.py` to ensure consistent return types in the `process` method.
- Updated `stage.py` to initialize and utilize the new `AgentRequestSubStage`.
- Modified `ProviderManager` to skip loading agent runner providers.
- Removed `Dify` source implementation as it is now handled by the new agent runner structure.
- Enhanced `DifyAPIClient` to support file uploads via both file path and file data.
- Cleaned up shared preferences handling to simplify session preference retrieval.
- Updated dashboard configuration to reflect changes in agent runner provider selection.
- Refactored conversation commands to accommodate the new agent runner structure and remove direct dependencies on Dify.
- Adjusted main application logic to ensure compatibility with the new conversation management approach.
This commit is contained in:
Soulter
2025-11-23 20:18:06 +08:00
parent 766d6f2bec
commit 910ec6c695
18 changed files with 1012 additions and 616 deletions
@@ -230,11 +230,8 @@ function hasVisibleItemsAfter(items, currentIndex) {
<div v-else-if="itemMeta?._special === 'select_provider_tts'">
<ProviderSelector v-model="createSelectorModel(itemKey).value" :provider-type="'text_to_speech'" />
</div>
<div v-else-if="itemMeta?._special === 'select_provider_dify_runner'">
<ProviderSelector v-model="createSelectorModel(itemKey).value" :provider-type="'dify_runner'" />
</div>
<div v-else-if="itemMeta?._special === 'select_provider_coze_runner'">
<ProviderSelector v-model="createSelectorModel(itemKey).value" :provider-type="'coze_runner'" />
<div v-else-if="itemMeta?._special === 'select_agent_runner_provider'">
<ProviderSelector v-model="createSelectorModel(itemKey).value" :provider-type="'agent_runner'" />
</div>
<div v-else-if="itemMeta?._special === 'provider_pool'">
<ProviderSelector v-model="createSelectorModel(itemKey).value" :provider-type="'chat_completion'"