aiecs 1.3.1__tar.gz → 1.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aiecs might be problematic. Click here for more details.
- {aiecs-1.3.1/aiecs.egg-info → aiecs-1.3.4}/PKG-INFO +1 -1
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/__init__.py +1 -1
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/clients/vertex_client.py +50 -2
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/main.py +2 -2
- {aiecs-1.3.1 → aiecs-1.3.4/aiecs.egg-info}/PKG-INFO +1 -1
- {aiecs-1.3.1 → aiecs-1.3.4}/pyproject.toml +1 -1
- {aiecs-1.3.1 → aiecs-1.3.4}/LICENSE +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/MANIFEST.in +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/README.md +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/__main__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/aiecs_client.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/application/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/application/executors/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/application/executors/operation_executor.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/config/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/config/config.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/config/registry.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/core/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/core/interface/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/core/interface/execution_interface.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/core/interface/storage_interface.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/agent_adapter.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/analytics.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/collaborative_workflow.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/communication_hub.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/community_builder.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/community_integration.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/community_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/decision_engine.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/exceptions.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/models/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/models/community_models.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/resource_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/community/shared_context_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/context/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/context/context_engine.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/context/conversation_models.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/execution/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/execution/model.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/task/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/task/dsl_processor.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/task/model.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/domain/task/task_context.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/messaging/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/messaging/celery_task_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/messaging/websocket_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/monitoring/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/monitoring/executor_metrics.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/monitoring/global_metrics_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/monitoring/structured_logger.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/monitoring/tracing_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/persistence/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/persistence/context_engine_client.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/persistence/database_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/persistence/file_storage.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/infrastructure/persistence/redis_client.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/callbacks/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/callbacks/custom_callbacks.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/client_factory.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/clients/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/clients/base_client.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/clients/googleai_client.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/clients/openai_client.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/clients/xai_client.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/config/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/config/config_loader.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/config/config_validator.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/config/model_config.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/utils/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/llm/utils/validate_config.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/aid/VERSION_MANAGEMENT.md +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/aid/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/aid/version_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/DEPENDENCY_SYSTEM_SUMMARY.md +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/README_DEPENDENCY_CHECKER.md +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/dependency_checker.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/dependency_fixer.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/download_nlp_data.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/quick_dependency_check.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_check/setup_nlp_data.sh +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/README_WEASEL_PATCH.md +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.sh +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/patch_weasel_library.sh +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/run_weasel_patch.sh +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/tools_develop/README.md +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/tools_develop/TOOL_AUTO_DISCOVERY.md +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/tools_develop/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/tools_develop/check_type_annotations.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/tools_develop/validate_tool_schemas.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/tools_develop/verify_tools.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tasks/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tasks/worker.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/intelligence/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/intelligence/data_fusion.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/intelligence/query_analyzer.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/intelligence/search_enhancer.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/monitoring/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/monitoring/metrics.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/providers/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/providers/base.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/providers/census.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/providers/fred.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/providers/newsapi.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/providers/worldbank.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/reliability/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/reliability/error_handler.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/reliability/fallback_strategy.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/utils/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/apisource/utils/validators.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/base_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/ai_document_orchestrator.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/ai_document_writer_orchestrator.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/content_insertion_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/document_creator_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/document_layout_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/document_parser_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/docs/document_writer_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/langchain_adapter.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/schema_generator.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/analyzers.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/cache.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/constants.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/context.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/core.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/deduplicator.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/error_handler.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/metrics.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/rate_limiter.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/search_tool/schemas.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/ai_data_analysis_orchestrator.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/ai_insight_generator_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/ai_report_orchestrator_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/data_loader_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/data_profiler_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/data_transformer_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/data_visualizer_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/model_trainer_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/statistics/statistical_analyzer_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/chart_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/classfire_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/image_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/office_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/pandas_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/report_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/research_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/scraper_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/task_tools/stats_tool.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/temp_file_manager.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/tool_executor/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/tools/tool_executor/tool_executor.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/LLM_output_structor.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/base_callback.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/cache_provider.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/execution_utils.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/logging.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/prompt_loader.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/utils/token_usage_repository.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/ws/__init__.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs/ws/socket_server.py +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs.egg-info/SOURCES.txt +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs.egg-info/dependency_links.txt +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs.egg-info/entry_points.txt +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs.egg-info/requires.txt +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/aiecs.egg-info/top_level.txt +0 -0
- {aiecs-1.3.1 → aiecs-1.3.4}/setup.cfg +0 -0
|
@@ -5,7 +5,7 @@ A powerful Python middleware framework for building AI-powered applications
|
|
|
5
5
|
with tool orchestration, task execution, and multi-provider LLM support.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
__version__ = "1.3.
|
|
8
|
+
__version__ = "1.3.4"
|
|
9
9
|
__author__ = "AIECS Team"
|
|
10
10
|
__email__ = "iretbl@gmail.com"
|
|
11
11
|
|
|
@@ -141,8 +141,56 @@ class VertexAIClient(BaseLLMClient):
|
|
|
141
141
|
text_parts.append(part.text)
|
|
142
142
|
|
|
143
143
|
if text_parts:
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
# Handle multi-part response format
|
|
145
|
+
if len(text_parts) > 1:
|
|
146
|
+
# Multi-part response (typical for Gemini 2.5 with tool calling)
|
|
147
|
+
# Check if parts already contain <thinking> tags
|
|
148
|
+
first_part = text_parts[0]
|
|
149
|
+
has_thinking_tags = '<thinking>' in first_part
|
|
150
|
+
|
|
151
|
+
if has_thinking_tags:
|
|
152
|
+
# Parts already have <thinking> tags, extract thinking content and actual output
|
|
153
|
+
thinking_contents = []
|
|
154
|
+
actual_outputs = []
|
|
155
|
+
|
|
156
|
+
for part in text_parts:
|
|
157
|
+
if '<thinking>' in part and '</thinking>' in part:
|
|
158
|
+
# Extract thinking content from this part
|
|
159
|
+
import re
|
|
160
|
+
thinking_match = re.search(r'<thinking>(.*?)</thinking>', part, re.DOTALL)
|
|
161
|
+
if thinking_match:
|
|
162
|
+
thinking_contents.append(thinking_match.group(1).strip())
|
|
163
|
+
|
|
164
|
+
# Extract content after </thinking>
|
|
165
|
+
after_thinking = part[thinking_match.end():].strip()
|
|
166
|
+
if after_thinking:
|
|
167
|
+
actual_outputs.append(after_thinking)
|
|
168
|
+
else:
|
|
169
|
+
# This part doesn't have thinking tags, treat as actual output
|
|
170
|
+
actual_outputs.append(part)
|
|
171
|
+
|
|
172
|
+
# Combine thinking content and actual outputs
|
|
173
|
+
if thinking_contents:
|
|
174
|
+
combined_thinking = '\n\n'.join(thinking_contents)
|
|
175
|
+
content = f"<thinking>\n{combined_thinking}\n</thinking>"
|
|
176
|
+
if actual_outputs:
|
|
177
|
+
content += "\n" + "\n".join(actual_outputs)
|
|
178
|
+
else:
|
|
179
|
+
content = "\n".join(text_parts)
|
|
180
|
+
|
|
181
|
+
self.logger.info(f"✅ Multi-part response with existing <thinking> tags processed: {len(text_parts)} parts")
|
|
182
|
+
else:
|
|
183
|
+
# Parts don't have <thinking> tags, wrap first part
|
|
184
|
+
thinking_part = text_parts[0]
|
|
185
|
+
actual_output_parts = text_parts[1:]
|
|
186
|
+
|
|
187
|
+
# Format: <thinking>Part 1</thinking>\nPart 2\nPart 3...
|
|
188
|
+
content = f"<thinking>\n{thinking_part}\n</thinking>\n" + "\n".join(actual_output_parts)
|
|
189
|
+
self.logger.info(f"✅ Multi-part response wrapped with <thinking> tags: {len(text_parts)} parts")
|
|
190
|
+
else:
|
|
191
|
+
# Single part response - use as is
|
|
192
|
+
content = text_parts[0]
|
|
193
|
+
self.logger.info("Successfully extracted single-part response")
|
|
146
194
|
else:
|
|
147
195
|
self.logger.warning("No text content found in multi-part response")
|
|
148
196
|
except Exception as part_error:
|
|
@@ -142,7 +142,7 @@ async def lifespan(app: FastAPI):
|
|
|
142
142
|
app = FastAPI(
|
|
143
143
|
title="AIECS - AI Execute Services",
|
|
144
144
|
description="Middleware service for AI-powered task execution and tool orchestration",
|
|
145
|
-
version="1.3.
|
|
145
|
+
version="1.3.4",
|
|
146
146
|
lifespan=lifespan
|
|
147
147
|
)
|
|
148
148
|
|
|
@@ -167,7 +167,7 @@ async def health_check():
|
|
|
167
167
|
return {
|
|
168
168
|
"status": "healthy",
|
|
169
169
|
"service": "aiecs",
|
|
170
|
-
"version": "1.3.
|
|
170
|
+
"version": "1.3.4"
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
|
|
@@ -28,7 +28,7 @@ pytest-timeout = "^2.4.0"
|
|
|
28
28
|
|
|
29
29
|
[project]
|
|
30
30
|
name = "aiecs"
|
|
31
|
-
version = "1.3.
|
|
31
|
+
version = "1.3.4"
|
|
32
32
|
description = "AI Execute Services - A middleware framework for AI-powered task execution and tool orchestration"
|
|
33
33
|
authors = [
|
|
34
34
|
{name = "AIECS Team", email = "iretbl@gmail.com"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/README_WEASEL_PATCH.md
RENAMED
|
File without changes
|
|
File without changes
|
{aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.py
RENAMED
|
File without changes
|
{aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.sh
RENAMED
|
File without changes
|
{aiecs-1.3.1 → aiecs-1.3.4}/aiecs/scripts/dependance_patch/fix_weasel/patch_weasel_library.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|