aiecs 1.4.2__py3-none-any.whl → 1.4.4__py3-none-any.whl

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/__init__.py CHANGED
@@ -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.4.2"
8
+ __version__ = "1.4.4"
9
9
  __author__ = "AIECS Team"
10
10
  __email__ = "iretbl@gmail.com"
11
11
 
aiecs/main.py CHANGED
@@ -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.4.2",
145
+ version="1.4.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.4.2"
170
+ "version": "1.4.4"
171
171
  }
172
172
 
173
173
 
@@ -6,7 +6,8 @@ from typing import Dict, Any, List, Optional, Union, Callable
6
6
  from enum import Enum
7
7
  from datetime import datetime
8
8
 
9
- from pydantic import BaseModel, Field, ValidationError, ConfigDict
9
+ from pydantic import Field, ValidationError, ConfigDict
10
+ from pydantic_settings import BaseSettings
10
11
 
11
12
  from aiecs.tools.base_tool import BaseTool
12
13
  from aiecs.tools import register_tool
@@ -85,8 +86,11 @@ class AIDocumentWriterOrchestrator(BaseTool):
85
86
  """
86
87
 
87
88
  # Configuration schema
88
- class Config(BaseModel):
89
- """Configuration for the AI document writer orchestrator tool"""
89
+ class Config(BaseSettings):
90
+ """Configuration for the AI document writer orchestrator tool
91
+
92
+ Automatically reads from environment variables with AI_DOC_WRITER_ prefix.
93
+ """
90
94
  model_config = ConfigDict(env_prefix="AI_DOC_WRITER_")
91
95
 
92
96
  default_ai_provider: str = Field(
@@ -10,7 +10,8 @@ from pathlib import Path
10
10
  import tempfile
11
11
 
12
12
  import httpx
13
- from pydantic import BaseModel, Field, ValidationError, ConfigDict
13
+ from pydantic import Field, ValidationError, ConfigDict
14
+ from pydantic_settings import BaseSettings
14
15
 
15
16
  from aiecs.tools.base_tool import BaseTool
16
17
  from aiecs.tools import register_tool
@@ -87,8 +88,12 @@ class DocumentParserTool(BaseTool):
87
88
  """
88
89
 
89
90
  # Configuration schema
90
- class Config(BaseModel):
91
- """Configuration for the document parser tool"""
91
+ class Config(BaseSettings):
92
+ """Configuration for the document parser tool
93
+
94
+ Automatically reads from environment variables with DOC_PARSER_ prefix.
95
+ Example: DOC_PARSER_GCS_PROJECT_ID -> gcs_project_id
96
+ """
92
97
  model_config = ConfigDict(env_prefix="DOC_PARSER_")
93
98
 
94
99
  user_agent: str = Field(
@@ -132,8 +137,16 @@ class DocumentParserTool(BaseTool):
132
137
  """Initialize DocumentParserTool with settings"""
133
138
  super().__init__(config)
134
139
 
135
- # Parse configuration
136
- self.config = self.Config(**(config or {}))
140
+ # Parse configuration with BaseSettings
141
+ # BaseSettings automatically reads from environment variables with DOC_PARSER_ prefix
142
+ # Config dict values override environment variables
143
+ if config:
144
+ # Filter out None values to allow env vars to be used for missing keys
145
+ filtered_config = {k: v for k, v in config.items() if v is not None}
146
+ self.config = self.Config(**filtered_config)
147
+ else:
148
+ # No config provided, read entirely from environment variables
149
+ self.config = self.Config()
137
150
 
138
151
  self.logger = logging.getLogger(__name__)
139
152
  os.makedirs(self.config.temp_dir, exist_ok=True)
@@ -12,8 +12,9 @@ from datetime import datetime
12
12
  from pathlib import Path
13
13
  import tempfile
14
14
 
15
- from pydantic import BaseModel, Field, ConfigDict
15
+ from pydantic import Field, ConfigDict
16
16
  from pydantic import ValidationError as PydanticValidationError
17
+ from pydantic_settings import BaseSettings
17
18
 
18
19
  from aiecs.tools.base_tool import BaseTool
19
20
  from aiecs.tools import register_tool
@@ -142,8 +143,12 @@ class DocumentWriterTool(BaseTool):
142
143
  """
143
144
 
144
145
  # Configuration schema
145
- class Config(BaseModel):
146
- """Configuration for the document writer tool"""
146
+ class Config(BaseSettings):
147
+ """Configuration for the document writer tool
148
+
149
+ Automatically reads from environment variables with DOC_WRITER_ prefix.
150
+ Example: DOC_WRITER_GCS_PROJECT_ID -> gcs_project_id
151
+ """
147
152
  model_config = ConfigDict(env_prefix="DOC_WRITER_")
148
153
 
149
154
  temp_dir: str = Field(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiecs
3
- Version: 1.4.2
3
+ Version: 1.4.4
4
4
  Summary: AI Execute Services - A middleware framework for AI-powered task execution and tool orchestration
5
5
  Author-email: AIECS Team <iretbl@gmail.com>
6
6
  License-Expression: MIT
@@ -1,7 +1,7 @@
1
- aiecs/__init__.py,sha256=qNmbC4FbeT8jK7KfO_SMb2Vn2npwrsentzGzL0K7kCc,1859
1
+ aiecs/__init__.py,sha256=NTXPTW8YJMQHU67FTHQi2RZnJhyEkAW2u8AR7__jkfg,1859
2
2
  aiecs/__main__.py,sha256=AfQpzy3SgwWuP4DuymYcm4MISMuzqwhxxGSYo53PBvY,1035
3
3
  aiecs/aiecs_client.py,sha256=gIqecRBBH_bYIWhqiHCemdVgmGb9Jqdxf1b6RoqXWlQ,17276
4
- aiecs/main.py,sha256=ZVAnMjGV93G58Dpq9GeWMf9gjU5eebcsNTK0VxJ6lJw,10837
4
+ aiecs/main.py,sha256=uIr6-vdkEhBNHK51P6FwV-f0xYT_EsnuZhDkdw8lAlU,10837
5
5
  aiecs/application/__init__.py,sha256=NkmrUH1DqxJ3vaVC8QwscNdlWqHfC7ZagL4k3nZ_qz4,192
6
6
  aiecs/application/executors/__init__.py,sha256=WIl7L9HBsEhNfbNtJdvBvFUJXzESvNZVaiAA6tdtJcs,191
7
7
  aiecs/application/executors/operation_executor.py,sha256=-7mFo1hUnWdehVPg0fnSiRhW3LACpIiyLSH-iu7bX4U,13818
@@ -146,12 +146,12 @@ aiecs/tools/apisource/utils/__init__.py,sha256=3uYku5ONfT17rdHdAj3DPYVXNKmmQpCrt
146
146
  aiecs/tools/apisource/utils/validators.py,sha256=1hW8eft7q2LjdvzeW4F21GGYOtDZ7Ib1lNNIomPSgJk,11064
147
147
  aiecs/tools/docs/__init__.py,sha256=noxpoRVQd9AmHntOkTJUp_kcivyoKrh2E5pdVC6bmB4,3754
148
148
  aiecs/tools/docs/ai_document_orchestrator.py,sha256=x0lVIyw8LRzZY2Y1bn8eiUgdMhWJ2j0EZ40GQDYqJGU,24705
149
- aiecs/tools/docs/ai_document_writer_orchestrator.py,sha256=Q2P4313JQYOYjpBchQMKof-zysCJJxiYDu__L516dxE,97397
149
+ aiecs/tools/docs/ai_document_writer_orchestrator.py,sha256=vidKkjz18PRqcVuszjb7_PaQdjRjMVTespVdhRgxKik,97533
150
150
  aiecs/tools/docs/content_insertion_tool.py,sha256=iQvNDnmA4XBg7RT8o04vqhc-cZmZ_bsfYMFe9ankHZY,49351
151
151
  aiecs/tools/docs/document_creator_tool.py,sha256=QLHKEBvZjtDSgaT1a0a7SrjbPlfSJyVfKYX8u_x2smg,39413
152
152
  aiecs/tools/docs/document_layout_tool.py,sha256=L5ZyFyShNX6FW1e374m21ZpvNs8eZsmj8l85LFRq2xo,45234
153
- aiecs/tools/docs/document_parser_tool.py,sha256=TuECotyEh9lirZ2L3-lixBTTvhJtJpNTt188z8GIejw,38366
154
- aiecs/tools/docs/document_writer_tool.py,sha256=BPfBiv2D9NSdjDD_ByFTfiYTqTSexSNWBmj_gfLpA9c,69061
153
+ aiecs/tools/docs/document_parser_tool.py,sha256=bahi7Osr_9wuVhVrE8PBQWezUIl4O5h1g2EqgIan4ms,39049
154
+ aiecs/tools/docs/document_writer_tool.py,sha256=lgrAsthRUrC8ETpwvLi09qDcZrd1snau-0otH94qcaE,69255
155
155
  aiecs/tools/search_tool/__init__.py,sha256=tn2vBakmr2tExbUtfiCjhUL_KVqkhZFEHU-t6XbG9hw,2664
156
156
  aiecs/tools/search_tool/analyzers.py,sha256=d34NT5PKNamOJtVyGkmjD3Tk3EE32vSzM-gWSw8VO9s,21266
157
157
  aiecs/tools/search_tool/cache.py,sha256=VMTmT9ctV_9uT62SElTav9QKwlrAQO4E-70NLZcQzN0,8745
@@ -195,9 +195,9 @@ aiecs/utils/prompt_loader.py,sha256=cBS2bZXpYQOWSiOGkhwIzyy3_bETqwIblRi_9qQT9iQ,
195
195
  aiecs/utils/token_usage_repository.py,sha256=1xjenLYwC0YT6lKZFEGO4scRCXLuWdec2MWjzih5SZY,10210
196
196
  aiecs/ws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
197
  aiecs/ws/socket_server.py,sha256=j_9idVY_rWlTsF51FgmuhWCWFVt7_gAHL8vNg3IxV5g,1476
198
- aiecs-1.4.2.dist-info/licenses/LICENSE,sha256=_1YRaIS0eZu1pv6xfz245UkU0i1Va2B841hv3OWRwqg,12494
199
- aiecs-1.4.2.dist-info/METADATA,sha256=KnBhYuukPJbvvi-HJMveUfoRbfhCl_PtuiA5SjA00Z4,16635
200
- aiecs-1.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
201
- aiecs-1.4.2.dist-info/entry_points.txt,sha256=TfLBuwLOfgQqKvnoF1sgTS19-Hgl0aWvCZjIdblIiig,667
202
- aiecs-1.4.2.dist-info/top_level.txt,sha256=22IlUlOqh9Ni3jXlQNMNUqzbW8dcxXPeR_EQ-BJVcV8,6
203
- aiecs-1.4.2.dist-info/RECORD,,
198
+ aiecs-1.4.4.dist-info/licenses/LICENSE,sha256=_1YRaIS0eZu1pv6xfz245UkU0i1Va2B841hv3OWRwqg,12494
199
+ aiecs-1.4.4.dist-info/METADATA,sha256=8Th2AV8T8EQkzs51BuQIOTkg_bX3q9_plHEHzyNIlTI,16635
200
+ aiecs-1.4.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
201
+ aiecs-1.4.4.dist-info/entry_points.txt,sha256=TfLBuwLOfgQqKvnoF1sgTS19-Hgl0aWvCZjIdblIiig,667
202
+ aiecs-1.4.4.dist-info/top_level.txt,sha256=22IlUlOqh9Ni3jXlQNMNUqzbW8dcxXPeR_EQ-BJVcV8,6
203
+ aiecs-1.4.4.dist-info/RECORD,,
File without changes