aiecs 1.5.1__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.
Files changed (302) hide show
  1. aiecs/__init__.py +72 -0
  2. aiecs/__main__.py +41 -0
  3. aiecs/aiecs_client.py +469 -0
  4. aiecs/application/__init__.py +10 -0
  5. aiecs/application/executors/__init__.py +10 -0
  6. aiecs/application/executors/operation_executor.py +363 -0
  7. aiecs/application/knowledge_graph/__init__.py +7 -0
  8. aiecs/application/knowledge_graph/builder/__init__.py +37 -0
  9. aiecs/application/knowledge_graph/builder/document_builder.py +375 -0
  10. aiecs/application/knowledge_graph/builder/graph_builder.py +356 -0
  11. aiecs/application/knowledge_graph/builder/schema_mapping.py +531 -0
  12. aiecs/application/knowledge_graph/builder/structured_pipeline.py +443 -0
  13. aiecs/application/knowledge_graph/builder/text_chunker.py +319 -0
  14. aiecs/application/knowledge_graph/extractors/__init__.py +27 -0
  15. aiecs/application/knowledge_graph/extractors/base.py +100 -0
  16. aiecs/application/knowledge_graph/extractors/llm_entity_extractor.py +327 -0
  17. aiecs/application/knowledge_graph/extractors/llm_relation_extractor.py +349 -0
  18. aiecs/application/knowledge_graph/extractors/ner_entity_extractor.py +244 -0
  19. aiecs/application/knowledge_graph/fusion/__init__.py +23 -0
  20. aiecs/application/knowledge_graph/fusion/entity_deduplicator.py +387 -0
  21. aiecs/application/knowledge_graph/fusion/entity_linker.py +343 -0
  22. aiecs/application/knowledge_graph/fusion/knowledge_fusion.py +580 -0
  23. aiecs/application/knowledge_graph/fusion/relation_deduplicator.py +189 -0
  24. aiecs/application/knowledge_graph/pattern_matching/__init__.py +21 -0
  25. aiecs/application/knowledge_graph/pattern_matching/pattern_matcher.py +344 -0
  26. aiecs/application/knowledge_graph/pattern_matching/query_executor.py +378 -0
  27. aiecs/application/knowledge_graph/profiling/__init__.py +12 -0
  28. aiecs/application/knowledge_graph/profiling/query_plan_visualizer.py +199 -0
  29. aiecs/application/knowledge_graph/profiling/query_profiler.py +223 -0
  30. aiecs/application/knowledge_graph/reasoning/__init__.py +27 -0
  31. aiecs/application/knowledge_graph/reasoning/evidence_synthesis.py +347 -0
  32. aiecs/application/knowledge_graph/reasoning/inference_engine.py +504 -0
  33. aiecs/application/knowledge_graph/reasoning/logic_form_parser.py +167 -0
  34. aiecs/application/knowledge_graph/reasoning/logic_parser/__init__.py +79 -0
  35. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_builder.py +513 -0
  36. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_nodes.py +630 -0
  37. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_validator.py +654 -0
  38. aiecs/application/knowledge_graph/reasoning/logic_parser/error_handler.py +477 -0
  39. aiecs/application/knowledge_graph/reasoning/logic_parser/parser.py +390 -0
  40. aiecs/application/knowledge_graph/reasoning/logic_parser/query_context.py +217 -0
  41. aiecs/application/knowledge_graph/reasoning/logic_query_integration.py +169 -0
  42. aiecs/application/knowledge_graph/reasoning/query_planner.py +872 -0
  43. aiecs/application/knowledge_graph/reasoning/reasoning_engine.py +554 -0
  44. aiecs/application/knowledge_graph/retrieval/__init__.py +19 -0
  45. aiecs/application/knowledge_graph/retrieval/retrieval_strategies.py +596 -0
  46. aiecs/application/knowledge_graph/search/__init__.py +59 -0
  47. aiecs/application/knowledge_graph/search/hybrid_search.py +423 -0
  48. aiecs/application/knowledge_graph/search/reranker.py +295 -0
  49. aiecs/application/knowledge_graph/search/reranker_strategies.py +553 -0
  50. aiecs/application/knowledge_graph/search/text_similarity.py +398 -0
  51. aiecs/application/knowledge_graph/traversal/__init__.py +15 -0
  52. aiecs/application/knowledge_graph/traversal/enhanced_traversal.py +329 -0
  53. aiecs/application/knowledge_graph/traversal/path_scorer.py +269 -0
  54. aiecs/application/knowledge_graph/validators/__init__.py +13 -0
  55. aiecs/application/knowledge_graph/validators/relation_validator.py +189 -0
  56. aiecs/application/knowledge_graph/visualization/__init__.py +11 -0
  57. aiecs/application/knowledge_graph/visualization/graph_visualizer.py +321 -0
  58. aiecs/common/__init__.py +9 -0
  59. aiecs/common/knowledge_graph/__init__.py +17 -0
  60. aiecs/common/knowledge_graph/runnable.py +484 -0
  61. aiecs/config/__init__.py +16 -0
  62. aiecs/config/config.py +498 -0
  63. aiecs/config/graph_config.py +137 -0
  64. aiecs/config/registry.py +23 -0
  65. aiecs/core/__init__.py +46 -0
  66. aiecs/core/interface/__init__.py +34 -0
  67. aiecs/core/interface/execution_interface.py +152 -0
  68. aiecs/core/interface/storage_interface.py +171 -0
  69. aiecs/domain/__init__.py +289 -0
  70. aiecs/domain/agent/__init__.py +189 -0
  71. aiecs/domain/agent/base_agent.py +697 -0
  72. aiecs/domain/agent/exceptions.py +103 -0
  73. aiecs/domain/agent/graph_aware_mixin.py +559 -0
  74. aiecs/domain/agent/hybrid_agent.py +490 -0
  75. aiecs/domain/agent/integration/__init__.py +26 -0
  76. aiecs/domain/agent/integration/context_compressor.py +222 -0
  77. aiecs/domain/agent/integration/context_engine_adapter.py +252 -0
  78. aiecs/domain/agent/integration/retry_policy.py +219 -0
  79. aiecs/domain/agent/integration/role_config.py +213 -0
  80. aiecs/domain/agent/knowledge_aware_agent.py +646 -0
  81. aiecs/domain/agent/lifecycle.py +296 -0
  82. aiecs/domain/agent/llm_agent.py +300 -0
  83. aiecs/domain/agent/memory/__init__.py +12 -0
  84. aiecs/domain/agent/memory/conversation.py +197 -0
  85. aiecs/domain/agent/migration/__init__.py +14 -0
  86. aiecs/domain/agent/migration/conversion.py +160 -0
  87. aiecs/domain/agent/migration/legacy_wrapper.py +90 -0
  88. aiecs/domain/agent/models.py +317 -0
  89. aiecs/domain/agent/observability.py +407 -0
  90. aiecs/domain/agent/persistence.py +289 -0
  91. aiecs/domain/agent/prompts/__init__.py +29 -0
  92. aiecs/domain/agent/prompts/builder.py +161 -0
  93. aiecs/domain/agent/prompts/formatters.py +189 -0
  94. aiecs/domain/agent/prompts/template.py +255 -0
  95. aiecs/domain/agent/registry.py +260 -0
  96. aiecs/domain/agent/tool_agent.py +257 -0
  97. aiecs/domain/agent/tools/__init__.py +12 -0
  98. aiecs/domain/agent/tools/schema_generator.py +221 -0
  99. aiecs/domain/community/__init__.py +155 -0
  100. aiecs/domain/community/agent_adapter.py +477 -0
  101. aiecs/domain/community/analytics.py +481 -0
  102. aiecs/domain/community/collaborative_workflow.py +642 -0
  103. aiecs/domain/community/communication_hub.py +645 -0
  104. aiecs/domain/community/community_builder.py +320 -0
  105. aiecs/domain/community/community_integration.py +800 -0
  106. aiecs/domain/community/community_manager.py +813 -0
  107. aiecs/domain/community/decision_engine.py +879 -0
  108. aiecs/domain/community/exceptions.py +225 -0
  109. aiecs/domain/community/models/__init__.py +33 -0
  110. aiecs/domain/community/models/community_models.py +268 -0
  111. aiecs/domain/community/resource_manager.py +457 -0
  112. aiecs/domain/community/shared_context_manager.py +603 -0
  113. aiecs/domain/context/__init__.py +58 -0
  114. aiecs/domain/context/context_engine.py +989 -0
  115. aiecs/domain/context/conversation_models.py +354 -0
  116. aiecs/domain/context/graph_memory.py +467 -0
  117. aiecs/domain/execution/__init__.py +12 -0
  118. aiecs/domain/execution/model.py +57 -0
  119. aiecs/domain/knowledge_graph/__init__.py +19 -0
  120. aiecs/domain/knowledge_graph/models/__init__.py +52 -0
  121. aiecs/domain/knowledge_graph/models/entity.py +130 -0
  122. aiecs/domain/knowledge_graph/models/evidence.py +194 -0
  123. aiecs/domain/knowledge_graph/models/inference_rule.py +186 -0
  124. aiecs/domain/knowledge_graph/models/path.py +179 -0
  125. aiecs/domain/knowledge_graph/models/path_pattern.py +173 -0
  126. aiecs/domain/knowledge_graph/models/query.py +272 -0
  127. aiecs/domain/knowledge_graph/models/query_plan.py +187 -0
  128. aiecs/domain/knowledge_graph/models/relation.py +136 -0
  129. aiecs/domain/knowledge_graph/schema/__init__.py +23 -0
  130. aiecs/domain/knowledge_graph/schema/entity_type.py +135 -0
  131. aiecs/domain/knowledge_graph/schema/graph_schema.py +271 -0
  132. aiecs/domain/knowledge_graph/schema/property_schema.py +155 -0
  133. aiecs/domain/knowledge_graph/schema/relation_type.py +171 -0
  134. aiecs/domain/knowledge_graph/schema/schema_manager.py +496 -0
  135. aiecs/domain/knowledge_graph/schema/type_enums.py +205 -0
  136. aiecs/domain/task/__init__.py +13 -0
  137. aiecs/domain/task/dsl_processor.py +613 -0
  138. aiecs/domain/task/model.py +62 -0
  139. aiecs/domain/task/task_context.py +268 -0
  140. aiecs/infrastructure/__init__.py +24 -0
  141. aiecs/infrastructure/graph_storage/__init__.py +11 -0
  142. aiecs/infrastructure/graph_storage/base.py +601 -0
  143. aiecs/infrastructure/graph_storage/batch_operations.py +449 -0
  144. aiecs/infrastructure/graph_storage/cache.py +429 -0
  145. aiecs/infrastructure/graph_storage/distributed.py +226 -0
  146. aiecs/infrastructure/graph_storage/error_handling.py +390 -0
  147. aiecs/infrastructure/graph_storage/graceful_degradation.py +306 -0
  148. aiecs/infrastructure/graph_storage/health_checks.py +378 -0
  149. aiecs/infrastructure/graph_storage/in_memory.py +514 -0
  150. aiecs/infrastructure/graph_storage/index_optimization.py +483 -0
  151. aiecs/infrastructure/graph_storage/lazy_loading.py +410 -0
  152. aiecs/infrastructure/graph_storage/metrics.py +357 -0
  153. aiecs/infrastructure/graph_storage/migration.py +413 -0
  154. aiecs/infrastructure/graph_storage/pagination.py +471 -0
  155. aiecs/infrastructure/graph_storage/performance_monitoring.py +466 -0
  156. aiecs/infrastructure/graph_storage/postgres.py +871 -0
  157. aiecs/infrastructure/graph_storage/query_optimizer.py +635 -0
  158. aiecs/infrastructure/graph_storage/schema_cache.py +290 -0
  159. aiecs/infrastructure/graph_storage/sqlite.py +623 -0
  160. aiecs/infrastructure/graph_storage/streaming.py +495 -0
  161. aiecs/infrastructure/messaging/__init__.py +13 -0
  162. aiecs/infrastructure/messaging/celery_task_manager.py +383 -0
  163. aiecs/infrastructure/messaging/websocket_manager.py +298 -0
  164. aiecs/infrastructure/monitoring/__init__.py +34 -0
  165. aiecs/infrastructure/monitoring/executor_metrics.py +174 -0
  166. aiecs/infrastructure/monitoring/global_metrics_manager.py +213 -0
  167. aiecs/infrastructure/monitoring/structured_logger.py +48 -0
  168. aiecs/infrastructure/monitoring/tracing_manager.py +410 -0
  169. aiecs/infrastructure/persistence/__init__.py +24 -0
  170. aiecs/infrastructure/persistence/context_engine_client.py +187 -0
  171. aiecs/infrastructure/persistence/database_manager.py +333 -0
  172. aiecs/infrastructure/persistence/file_storage.py +754 -0
  173. aiecs/infrastructure/persistence/redis_client.py +220 -0
  174. aiecs/llm/__init__.py +86 -0
  175. aiecs/llm/callbacks/__init__.py +11 -0
  176. aiecs/llm/callbacks/custom_callbacks.py +264 -0
  177. aiecs/llm/client_factory.py +420 -0
  178. aiecs/llm/clients/__init__.py +33 -0
  179. aiecs/llm/clients/base_client.py +193 -0
  180. aiecs/llm/clients/googleai_client.py +181 -0
  181. aiecs/llm/clients/openai_client.py +131 -0
  182. aiecs/llm/clients/vertex_client.py +437 -0
  183. aiecs/llm/clients/xai_client.py +184 -0
  184. aiecs/llm/config/__init__.py +51 -0
  185. aiecs/llm/config/config_loader.py +275 -0
  186. aiecs/llm/config/config_validator.py +236 -0
  187. aiecs/llm/config/model_config.py +151 -0
  188. aiecs/llm/utils/__init__.py +10 -0
  189. aiecs/llm/utils/validate_config.py +91 -0
  190. aiecs/main.py +363 -0
  191. aiecs/scripts/__init__.py +3 -0
  192. aiecs/scripts/aid/VERSION_MANAGEMENT.md +97 -0
  193. aiecs/scripts/aid/__init__.py +19 -0
  194. aiecs/scripts/aid/version_manager.py +215 -0
  195. aiecs/scripts/dependance_check/DEPENDENCY_SYSTEM_SUMMARY.md +242 -0
  196. aiecs/scripts/dependance_check/README_DEPENDENCY_CHECKER.md +310 -0
  197. aiecs/scripts/dependance_check/__init__.py +17 -0
  198. aiecs/scripts/dependance_check/dependency_checker.py +938 -0
  199. aiecs/scripts/dependance_check/dependency_fixer.py +391 -0
  200. aiecs/scripts/dependance_check/download_nlp_data.py +396 -0
  201. aiecs/scripts/dependance_check/quick_dependency_check.py +270 -0
  202. aiecs/scripts/dependance_check/setup_nlp_data.sh +217 -0
  203. aiecs/scripts/dependance_patch/__init__.py +7 -0
  204. aiecs/scripts/dependance_patch/fix_weasel/README_WEASEL_PATCH.md +126 -0
  205. aiecs/scripts/dependance_patch/fix_weasel/__init__.py +11 -0
  206. aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.py +128 -0
  207. aiecs/scripts/dependance_patch/fix_weasel/fix_weasel_validator.sh +82 -0
  208. aiecs/scripts/dependance_patch/fix_weasel/patch_weasel_library.sh +188 -0
  209. aiecs/scripts/dependance_patch/fix_weasel/run_weasel_patch.sh +41 -0
  210. aiecs/scripts/tools_develop/README.md +449 -0
  211. aiecs/scripts/tools_develop/TOOL_AUTO_DISCOVERY.md +234 -0
  212. aiecs/scripts/tools_develop/__init__.py +21 -0
  213. aiecs/scripts/tools_develop/check_type_annotations.py +259 -0
  214. aiecs/scripts/tools_develop/validate_tool_schemas.py +422 -0
  215. aiecs/scripts/tools_develop/verify_tools.py +356 -0
  216. aiecs/tasks/__init__.py +1 -0
  217. aiecs/tasks/worker.py +172 -0
  218. aiecs/tools/__init__.py +299 -0
  219. aiecs/tools/apisource/__init__.py +99 -0
  220. aiecs/tools/apisource/intelligence/__init__.py +19 -0
  221. aiecs/tools/apisource/intelligence/data_fusion.py +381 -0
  222. aiecs/tools/apisource/intelligence/query_analyzer.py +413 -0
  223. aiecs/tools/apisource/intelligence/search_enhancer.py +388 -0
  224. aiecs/tools/apisource/monitoring/__init__.py +9 -0
  225. aiecs/tools/apisource/monitoring/metrics.py +303 -0
  226. aiecs/tools/apisource/providers/__init__.py +115 -0
  227. aiecs/tools/apisource/providers/base.py +664 -0
  228. aiecs/tools/apisource/providers/census.py +401 -0
  229. aiecs/tools/apisource/providers/fred.py +564 -0
  230. aiecs/tools/apisource/providers/newsapi.py +412 -0
  231. aiecs/tools/apisource/providers/worldbank.py +357 -0
  232. aiecs/tools/apisource/reliability/__init__.py +12 -0
  233. aiecs/tools/apisource/reliability/error_handler.py +375 -0
  234. aiecs/tools/apisource/reliability/fallback_strategy.py +391 -0
  235. aiecs/tools/apisource/tool.py +850 -0
  236. aiecs/tools/apisource/utils/__init__.py +9 -0
  237. aiecs/tools/apisource/utils/validators.py +338 -0
  238. aiecs/tools/base_tool.py +201 -0
  239. aiecs/tools/docs/__init__.py +121 -0
  240. aiecs/tools/docs/ai_document_orchestrator.py +599 -0
  241. aiecs/tools/docs/ai_document_writer_orchestrator.py +2403 -0
  242. aiecs/tools/docs/content_insertion_tool.py +1333 -0
  243. aiecs/tools/docs/document_creator_tool.py +1317 -0
  244. aiecs/tools/docs/document_layout_tool.py +1166 -0
  245. aiecs/tools/docs/document_parser_tool.py +994 -0
  246. aiecs/tools/docs/document_writer_tool.py +1818 -0
  247. aiecs/tools/knowledge_graph/__init__.py +17 -0
  248. aiecs/tools/knowledge_graph/graph_reasoning_tool.py +734 -0
  249. aiecs/tools/knowledge_graph/graph_search_tool.py +923 -0
  250. aiecs/tools/knowledge_graph/kg_builder_tool.py +476 -0
  251. aiecs/tools/langchain_adapter.py +542 -0
  252. aiecs/tools/schema_generator.py +275 -0
  253. aiecs/tools/search_tool/__init__.py +100 -0
  254. aiecs/tools/search_tool/analyzers.py +589 -0
  255. aiecs/tools/search_tool/cache.py +260 -0
  256. aiecs/tools/search_tool/constants.py +128 -0
  257. aiecs/tools/search_tool/context.py +216 -0
  258. aiecs/tools/search_tool/core.py +749 -0
  259. aiecs/tools/search_tool/deduplicator.py +123 -0
  260. aiecs/tools/search_tool/error_handler.py +271 -0
  261. aiecs/tools/search_tool/metrics.py +371 -0
  262. aiecs/tools/search_tool/rate_limiter.py +178 -0
  263. aiecs/tools/search_tool/schemas.py +277 -0
  264. aiecs/tools/statistics/__init__.py +80 -0
  265. aiecs/tools/statistics/ai_data_analysis_orchestrator.py +643 -0
  266. aiecs/tools/statistics/ai_insight_generator_tool.py +505 -0
  267. aiecs/tools/statistics/ai_report_orchestrator_tool.py +694 -0
  268. aiecs/tools/statistics/data_loader_tool.py +564 -0
  269. aiecs/tools/statistics/data_profiler_tool.py +658 -0
  270. aiecs/tools/statistics/data_transformer_tool.py +573 -0
  271. aiecs/tools/statistics/data_visualizer_tool.py +495 -0
  272. aiecs/tools/statistics/model_trainer_tool.py +487 -0
  273. aiecs/tools/statistics/statistical_analyzer_tool.py +459 -0
  274. aiecs/tools/task_tools/__init__.py +86 -0
  275. aiecs/tools/task_tools/chart_tool.py +732 -0
  276. aiecs/tools/task_tools/classfire_tool.py +922 -0
  277. aiecs/tools/task_tools/image_tool.py +447 -0
  278. aiecs/tools/task_tools/office_tool.py +684 -0
  279. aiecs/tools/task_tools/pandas_tool.py +635 -0
  280. aiecs/tools/task_tools/report_tool.py +635 -0
  281. aiecs/tools/task_tools/research_tool.py +392 -0
  282. aiecs/tools/task_tools/scraper_tool.py +715 -0
  283. aiecs/tools/task_tools/stats_tool.py +688 -0
  284. aiecs/tools/temp_file_manager.py +130 -0
  285. aiecs/tools/tool_executor/__init__.py +37 -0
  286. aiecs/tools/tool_executor/tool_executor.py +881 -0
  287. aiecs/utils/LLM_output_structor.py +445 -0
  288. aiecs/utils/__init__.py +34 -0
  289. aiecs/utils/base_callback.py +47 -0
  290. aiecs/utils/cache_provider.py +695 -0
  291. aiecs/utils/execution_utils.py +184 -0
  292. aiecs/utils/logging.py +1 -0
  293. aiecs/utils/prompt_loader.py +14 -0
  294. aiecs/utils/token_usage_repository.py +323 -0
  295. aiecs/ws/__init__.py +0 -0
  296. aiecs/ws/socket_server.py +52 -0
  297. aiecs-1.5.1.dist-info/METADATA +608 -0
  298. aiecs-1.5.1.dist-info/RECORD +302 -0
  299. aiecs-1.5.1.dist-info/WHEEL +5 -0
  300. aiecs-1.5.1.dist-info/entry_points.txt +10 -0
  301. aiecs-1.5.1.dist-info/licenses/LICENSE +225 -0
  302. aiecs-1.5.1.dist-info/top_level.txt +1 -0
aiecs/core/__init__.py ADDED
@@ -0,0 +1,46 @@
1
+ """
2
+ Core module for the Python middleware application.
3
+
4
+ This module provides the core interfaces and abstractions including:
5
+ - Execution interfaces
6
+ - Core abstractions
7
+ """
8
+
9
+ # Core interfaces
10
+ from .interface.execution_interface import (
11
+ ExecutionInterface,
12
+ IToolProvider,
13
+ IToolExecutor,
14
+ ICacheProvider,
15
+ IOperationExecutor,
16
+ )
17
+
18
+ from .interface.storage_interface import (
19
+ ISessionStorage,
20
+ IConversationStorage,
21
+ ICheckpointStorage,
22
+ ITaskContextStorage,
23
+ IStorageBackend,
24
+ ICheckpointerBackend,
25
+ )
26
+
27
+ __all__ = [
28
+ # Execution interfaces
29
+ "ExecutionInterface",
30
+ "IToolProvider",
31
+ "IToolExecutor",
32
+ "ICacheProvider",
33
+ "IOperationExecutor",
34
+ # Storage interfaces
35
+ "ISessionStorage",
36
+ "IConversationStorage",
37
+ "ICheckpointStorage",
38
+ "ITaskContextStorage",
39
+ "IStorageBackend",
40
+ "ICheckpointerBackend",
41
+ ]
42
+
43
+ # Version information
44
+ __version__ = "1.0.0"
45
+ __author__ = "Python Middleware Team"
46
+ __description__ = "Core interfaces and abstractions for the middleware architecture"
@@ -0,0 +1,34 @@
1
+ """Core interfaces module"""
2
+
3
+ from .execution_interface import (
4
+ ExecutionInterface,
5
+ IToolProvider,
6
+ IToolExecutor,
7
+ ICacheProvider,
8
+ IOperationExecutor,
9
+ )
10
+
11
+ from .storage_interface import (
12
+ ISessionStorage,
13
+ IConversationStorage,
14
+ ICheckpointStorage,
15
+ ITaskContextStorage,
16
+ IStorageBackend,
17
+ ICheckpointerBackend,
18
+ )
19
+
20
+ __all__ = [
21
+ # Execution interfaces
22
+ "ExecutionInterface",
23
+ "IToolProvider",
24
+ "IToolExecutor",
25
+ "ICacheProvider",
26
+ "IOperationExecutor",
27
+ # Storage interfaces
28
+ "ISessionStorage",
29
+ "IConversationStorage",
30
+ "ICheckpointStorage",
31
+ "ITaskContextStorage",
32
+ "IStorageBackend",
33
+ "ICheckpointerBackend",
34
+ ]
@@ -0,0 +1,152 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import Any, Dict, List, Optional, Callable
3
+ from aiecs.domain.execution.model import TaskStepResult
4
+
5
+
6
+ class IToolProvider(ABC):
7
+ """Tool provider interface - Domain layer abstraction"""
8
+
9
+ @abstractmethod
10
+ def get_tool(self, tool_name: str) -> Any:
11
+ """Get tool instance"""
12
+
13
+ @abstractmethod
14
+ def has_tool(self, tool_name: str) -> bool:
15
+ """Check if tool exists"""
16
+
17
+
18
+ class IToolExecutor(ABC):
19
+ """Tool executor interface - Domain layer abstraction"""
20
+
21
+ @abstractmethod
22
+ def execute(self, tool: Any, operation_name: str, **params) -> Any:
23
+ """Execute tool operation synchronously"""
24
+
25
+ @abstractmethod
26
+ async def execute_async(self, tool: Any, operation_name: str, **params) -> Any:
27
+ """Execute tool operation asynchronously"""
28
+
29
+
30
+ class ICacheProvider(ABC):
31
+ """Cache provider interface - Domain layer abstraction"""
32
+
33
+ @abstractmethod
34
+ def generate_cache_key(
35
+ self,
36
+ operation_type: str,
37
+ user_id: str,
38
+ task_id: str,
39
+ args: tuple,
40
+ kwargs: Dict[str, Any],
41
+ ) -> str:
42
+ """Generate cache key"""
43
+
44
+ @abstractmethod
45
+ def get_from_cache(self, cache_key: str) -> Optional[Any]:
46
+ """Get data from cache"""
47
+
48
+ @abstractmethod
49
+ def add_to_cache(self, cache_key: str, value: Any) -> None:
50
+ """Add data to cache"""
51
+
52
+
53
+ class IOperationExecutor(ABC):
54
+ """Operation executor interface - Domain layer abstraction"""
55
+
56
+ @abstractmethod
57
+ async def execute_operation(self, operation_spec: str, params: Dict[str, Any]) -> Any:
58
+ """Execute single operation"""
59
+
60
+ @abstractmethod
61
+ async def batch_execute_operations(self, operations: List[Dict[str, Any]]) -> List[Any]:
62
+ """Batch execute operations"""
63
+
64
+ @abstractmethod
65
+ async def execute_operations_sequence(
66
+ self,
67
+ operations: List[Dict[str, Any]],
68
+ user_id: str,
69
+ task_id: str,
70
+ stop_on_failure: bool = False,
71
+ save_callback: Optional[Callable] = None,
72
+ ) -> List[TaskStepResult]:
73
+ """Execute operations sequence sequentially"""
74
+
75
+ @abstractmethod
76
+ async def execute_parallel_operations(
77
+ self, operations: List[Dict[str, Any]]
78
+ ) -> List[TaskStepResult]:
79
+ """Execute operations in parallel"""
80
+
81
+
82
+ class ExecutionInterface(ABC):
83
+ """
84
+ Unified execution interface that defines standard methods for service and tool execution.
85
+ Supports plugin-based execution engines, allowing future introduction of new executors without modifying upper-level code.
86
+ """
87
+
88
+ @abstractmethod
89
+ async def execute_operation(self, operation_spec: str, params: Dict[str, Any]) -> Any:
90
+ """
91
+ Execute a single operation (e.g., tool operation or service subtask).
92
+
93
+ Args:
94
+ operation_spec (str): Operation specification, format as 'tool_name.operation_name' or other identifier
95
+ params (Dict[str, Any]): Operation parameters
96
+
97
+ Returns:
98
+ Any: Operation result
99
+ """
100
+
101
+ @abstractmethod
102
+ async def execute_task(
103
+ self,
104
+ task_name: str,
105
+ input_data: Dict[str, Any],
106
+ context: Dict[str, Any],
107
+ ) -> Any:
108
+ """
109
+ Execute a single task (e.g., service task).
110
+
111
+ Args:
112
+ task_name (str): Task name
113
+ input_data (Dict[str, Any]): Input data
114
+ context (Dict[str, Any]): Context information
115
+
116
+ Returns:
117
+ Any: Task result
118
+ """
119
+
120
+ @abstractmethod
121
+ async def batch_execute_operations(self, operations: List[Dict[str, Any]]) -> List[Any]:
122
+ """
123
+ Batch execute multiple operations.
124
+
125
+ Args:
126
+ operations (List[Dict[str, Any]]): List of operations, each containing 'operation' and 'params'
127
+
128
+ Returns:
129
+ List[Any]: List of operation results
130
+ """
131
+
132
+ @abstractmethod
133
+ async def batch_execute_tasks(self, tasks: List[Dict[str, Any]]) -> List[Any]:
134
+ """
135
+ Batch execute multiple tasks.
136
+
137
+ Args:
138
+ tasks (List[Dict[str, Any]]): List of tasks, each containing 'task_name', 'input_data', 'context'
139
+
140
+ Returns:
141
+ List[Any]: List of task results
142
+ """
143
+
144
+ def register_executor(self, executor_type: str, executor_instance: Any) -> None:
145
+ """
146
+ Register new executor type, supporting plugin-based extension.
147
+
148
+ Args:
149
+ executor_type (str): Executor type identifier
150
+ executor_instance (Any): Executor instance
151
+ """
152
+ raise NotImplementedError("Executor registration is not implemented in this interface")
@@ -0,0 +1,171 @@
1
+ """
2
+ Storage interfaces for the middleware architecture.
3
+
4
+ This module defines the core storage abstractions following the same pattern
5
+ as other core interfaces, enabling dependency inversion and clean architecture.
6
+ """
7
+
8
+ from abc import ABC, abstractmethod
9
+ from typing import Dict, Any, Optional, List
10
+
11
+
12
+ class ISessionStorage(ABC):
13
+ """Session storage interface - Domain layer abstraction"""
14
+
15
+ @abstractmethod
16
+ async def create_session(
17
+ self, session_id: str, user_id: str, metadata: Dict[str, Any] = None
18
+ ) -> Dict[str, Any]:
19
+ """Create a new session."""
20
+
21
+ @abstractmethod
22
+ async def get_session(self, session_id: str) -> Optional[Dict[str, Any]]:
23
+ """Get session by ID."""
24
+
25
+ @abstractmethod
26
+ async def update_session(
27
+ self,
28
+ session_id: str,
29
+ updates: Dict[str, Any] = None,
30
+ increment_requests: bool = False,
31
+ add_processing_time: float = 0.0,
32
+ mark_error: bool = False,
33
+ ) -> bool:
34
+ """Update session with activity and metrics."""
35
+
36
+ @abstractmethod
37
+ async def end_session(self, session_id: str, status: str = "completed") -> bool:
38
+ """End a session and update metrics."""
39
+
40
+
41
+ class IConversationStorage(ABC):
42
+ """Conversation storage interface - Domain layer abstraction"""
43
+
44
+ @abstractmethod
45
+ async def add_conversation_message(
46
+ self,
47
+ session_id: str,
48
+ role: str,
49
+ content: str,
50
+ metadata: Dict[str, Any] = None,
51
+ ) -> bool:
52
+ """Add message to conversation history."""
53
+
54
+ @abstractmethod
55
+ async def get_conversation_history(
56
+ self, session_id: str, limit: int = 50
57
+ ) -> List[Dict[str, Any]]:
58
+ """Get conversation history for a session."""
59
+
60
+
61
+ class ICheckpointStorage(ABC):
62
+ """Checkpoint storage interface - Domain layer abstraction"""
63
+
64
+ @abstractmethod
65
+ async def store_checkpoint(
66
+ self,
67
+ thread_id: str,
68
+ checkpoint_id: str,
69
+ checkpoint_data: Dict[str, Any],
70
+ metadata: Dict[str, Any] = None,
71
+ ) -> bool:
72
+ """Store checkpoint data."""
73
+
74
+ @abstractmethod
75
+ async def get_checkpoint(
76
+ self, thread_id: str, checkpoint_id: str = None
77
+ ) -> Optional[Dict[str, Any]]:
78
+ """Get checkpoint data. If checkpoint_id is None, get the latest."""
79
+
80
+ @abstractmethod
81
+ async def list_checkpoints(self, thread_id: str, limit: int = 10) -> List[Dict[str, Any]]:
82
+ """List checkpoints for a thread, ordered by creation time."""
83
+
84
+
85
+ class ITaskContextStorage(ABC):
86
+ """Task context storage interface - Domain layer abstraction"""
87
+
88
+ @abstractmethod
89
+ async def get_task_context(self, session_id: str) -> Optional[Any]:
90
+ """Get TaskContext for a session."""
91
+
92
+ @abstractmethod
93
+ async def store_task_context(self, session_id: str, context: Any) -> bool:
94
+ """Store TaskContext for a session."""
95
+
96
+
97
+ class IStorageBackend(
98
+ ISessionStorage,
99
+ IConversationStorage,
100
+ ICheckpointStorage,
101
+ ITaskContextStorage,
102
+ ):
103
+ """
104
+ Unified storage backend interface - Domain layer abstraction
105
+
106
+ This interface combines all storage capabilities and follows the same
107
+ pattern as other core interfaces in the middleware architecture.
108
+ """
109
+
110
+ @abstractmethod
111
+ async def initialize(self) -> bool:
112
+ """Initialize the storage backend."""
113
+
114
+ @abstractmethod
115
+ async def close(self):
116
+ """Close the storage backend."""
117
+
118
+ @abstractmethod
119
+ async def health_check(self) -> Dict[str, Any]:
120
+ """Perform health check."""
121
+
122
+ @abstractmethod
123
+ async def get_metrics(self) -> Dict[str, Any]:
124
+ """Get comprehensive metrics."""
125
+
126
+ @abstractmethod
127
+ async def cleanup_expired_sessions(self, max_idle_hours: int = 24) -> int:
128
+ """Clean up expired sessions and associated data."""
129
+
130
+
131
+ class ICheckpointerBackend(ABC):
132
+ """
133
+ Checkpointer backend interface for LangGraph integration.
134
+
135
+ This interface defines the minimal contract needed by BaseServiceCheckpointer
136
+ to work with any storage backend, following dependency inversion principle.
137
+ """
138
+
139
+ @abstractmethod
140
+ async def put_checkpoint(
141
+ self,
142
+ thread_id: str,
143
+ checkpoint_id: str,
144
+ checkpoint_data: Dict[str, Any],
145
+ metadata: Dict[str, Any] = None,
146
+ ) -> bool:
147
+ """Store a checkpoint for LangGraph workflows."""
148
+
149
+ @abstractmethod
150
+ async def get_checkpoint(
151
+ self, thread_id: str, checkpoint_id: str = None
152
+ ) -> Optional[Dict[str, Any]]:
153
+ """Retrieve a checkpoint for LangGraph workflows."""
154
+
155
+ @abstractmethod
156
+ async def list_checkpoints(self, thread_id: str, limit: int = 10) -> List[Dict[str, Any]]:
157
+ """List checkpoints for LangGraph workflows."""
158
+
159
+ @abstractmethod
160
+ async def put_writes(
161
+ self,
162
+ thread_id: str,
163
+ checkpoint_id: str,
164
+ task_id: str,
165
+ writes_data: List[tuple],
166
+ ) -> bool:
167
+ """Store intermediate writes for a checkpoint."""
168
+
169
+ @abstractmethod
170
+ async def get_writes(self, thread_id: str, checkpoint_id: str) -> List[tuple]:
171
+ """Get intermediate writes for a checkpoint."""
@@ -0,0 +1,289 @@
1
+ """Domain layer module
2
+
3
+ Contains business logic and domain models.
4
+ """
5
+
6
+ from .execution.model import TaskStepResult, TaskStatus, ErrorCode
7
+ from .task.model import TaskContext, DSLStep
8
+ from .task.dsl_processor import DSLProcessor
9
+ from .context import (
10
+ ContextEngine,
11
+ SessionMetrics,
12
+ ConversationMessage,
13
+ ConversationParticipant,
14
+ ConversationSession,
15
+ AgentCommunicationMessage,
16
+ create_session_key,
17
+ validate_conversation_isolation_pattern,
18
+ )
19
+ from .community import (
20
+ # Core managers
21
+ CommunityManager,
22
+ CommunityIntegration,
23
+ DecisionEngine,
24
+ ResourceManager,
25
+ CollaborativeWorkflowEngine,
26
+ CommunityAnalytics,
27
+ MemberLifecycleHooks,
28
+ # Communication and context
29
+ CommunicationHub,
30
+ Message,
31
+ Event,
32
+ MessageType,
33
+ EventType,
34
+ SharedContextManager,
35
+ SharedContext,
36
+ ContextScope,
37
+ ContextConflictStrategy,
38
+ # Agent adapters
39
+ AgentAdapter,
40
+ StandardLLMAdapter,
41
+ CustomAgentAdapter,
42
+ AgentAdapterRegistry,
43
+ AgentCapability,
44
+ # Builder
45
+ CommunityBuilder,
46
+ builder,
47
+ # Enums
48
+ CommunityRole,
49
+ GovernanceType,
50
+ DecisionStatus,
51
+ ResourceType,
52
+ ConsensusAlgorithm,
53
+ ConflictResolutionStrategy,
54
+ # Models
55
+ CommunityMember,
56
+ CommunityResource,
57
+ CommunityDecision,
58
+ AgentCommunity,
59
+ CollaborationSession,
60
+ # Exceptions
61
+ CommunityException,
62
+ CommunityNotFoundError,
63
+ MemberNotFoundError,
64
+ ResourceNotFoundError,
65
+ DecisionNotFoundError,
66
+ AccessDeniedError,
67
+ MembershipError,
68
+ VotingError,
69
+ GovernanceError,
70
+ CollaborationError,
71
+ CommunityInitializationError,
72
+ CommunityValidationError,
73
+ QuorumNotMetError,
74
+ ConflictResolutionError,
75
+ CommunityCapacityError,
76
+ AgentAdapterError,
77
+ CommunicationError,
78
+ ContextError,
79
+ )
80
+
81
+ from .agent import (
82
+ # Exceptions
83
+ AgentException,
84
+ AgentNotFoundError,
85
+ AgentAlreadyRegisteredError,
86
+ InvalidStateTransitionError,
87
+ ConfigurationError,
88
+ TaskExecutionError,
89
+ ToolAccessDeniedError,
90
+ SerializationError,
91
+ AgentInitializationError,
92
+ # Enums
93
+ AgentState,
94
+ AgentType,
95
+ GoalStatus,
96
+ GoalPriority,
97
+ CapabilityLevel,
98
+ MemoryType,
99
+ # Models
100
+ RetryPolicy,
101
+ AgentConfiguration,
102
+ AgentGoal,
103
+ AgentCapabilityDeclaration,
104
+ AgentMetrics,
105
+ AgentInteraction,
106
+ AgentMemory,
107
+ # Base and Concrete Agents
108
+ BaseAIAgent,
109
+ LLMAgent,
110
+ ToolAgent,
111
+ HybridAgent,
112
+ # Lifecycle Management
113
+ AgentRegistry,
114
+ AgentLifecycleManager,
115
+ get_global_registry,
116
+ get_global_lifecycle_manager,
117
+ # Persistence
118
+ InMemoryPersistence,
119
+ FilePersistence,
120
+ get_global_persistence,
121
+ set_global_persistence,
122
+ # Observability
123
+ AgentController,
124
+ LoggingObserver,
125
+ MetricsObserver,
126
+ # Prompts
127
+ PromptTemplate,
128
+ ChatPromptTemplate,
129
+ MessageBuilder,
130
+ # Tools
131
+ ToolSchemaGenerator,
132
+ generate_tool_schema,
133
+ # Memory
134
+ ConversationMemory,
135
+ Session,
136
+ # Integration
137
+ ContextEngineAdapter,
138
+ EnhancedRetryPolicy,
139
+ RoleConfiguration,
140
+ ContextCompressor,
141
+ compress_messages,
142
+ # Migration
143
+ LegacyAgentWrapper,
144
+ convert_langchain_prompt,
145
+ convert_legacy_config,
146
+ )
147
+
148
+ __all__ = [
149
+ # Execution domain
150
+ "TaskStepResult",
151
+ "TaskStatus",
152
+ "ErrorCode",
153
+ # Task domain
154
+ "TaskContext",
155
+ "DSLStep",
156
+ "DSLProcessor",
157
+ # Context domain
158
+ "ContextEngine",
159
+ "SessionMetrics",
160
+ "ConversationMessage",
161
+ "ConversationParticipant",
162
+ "ConversationSession",
163
+ "AgentCommunicationMessage",
164
+ "create_session_key",
165
+ "validate_conversation_isolation_pattern",
166
+ # Community domain - Core managers
167
+ "CommunityManager",
168
+ "CommunityIntegration",
169
+ "DecisionEngine",
170
+ "ResourceManager",
171
+ "CollaborativeWorkflowEngine",
172
+ "CommunityAnalytics",
173
+ "MemberLifecycleHooks",
174
+ # Community domain - Communication and context
175
+ "CommunicationHub",
176
+ "Message",
177
+ "Event",
178
+ "MessageType",
179
+ "EventType",
180
+ "SharedContextManager",
181
+ "SharedContext",
182
+ "ContextScope",
183
+ "ContextConflictStrategy",
184
+ # Community domain - Agent adapters
185
+ "AgentAdapter",
186
+ "StandardLLMAdapter",
187
+ "CustomAgentAdapter",
188
+ "AgentAdapterRegistry",
189
+ "AgentCapability",
190
+ # Community domain - Builder
191
+ "CommunityBuilder",
192
+ "builder",
193
+ # Community domain - Enums
194
+ "CommunityRole",
195
+ "GovernanceType",
196
+ "DecisionStatus",
197
+ "ResourceType",
198
+ "ConsensusAlgorithm",
199
+ "ConflictResolutionStrategy",
200
+ # Community domain - Models
201
+ "CommunityMember",
202
+ "CommunityResource",
203
+ "CommunityDecision",
204
+ "AgentCommunity",
205
+ "CollaborationSession",
206
+ # Community domain - Exceptions
207
+ "CommunityException",
208
+ "CommunityNotFoundError",
209
+ "MemberNotFoundError",
210
+ "ResourceNotFoundError",
211
+ "DecisionNotFoundError",
212
+ "AccessDeniedError",
213
+ "MembershipError",
214
+ "VotingError",
215
+ "GovernanceError",
216
+ "CollaborationError",
217
+ "CommunityInitializationError",
218
+ "CommunityValidationError",
219
+ "QuorumNotMetError",
220
+ "ConflictResolutionError",
221
+ "CommunityCapacityError",
222
+ "AgentAdapterError",
223
+ "CommunicationError",
224
+ "ContextError",
225
+ # Agent domain - Exceptions
226
+ "AgentException",
227
+ "AgentNotFoundError",
228
+ "AgentAlreadyRegisteredError",
229
+ "InvalidStateTransitionError",
230
+ "ConfigurationError",
231
+ "TaskExecutionError",
232
+ "ToolAccessDeniedError",
233
+ "SerializationError",
234
+ "AgentInitializationError",
235
+ # Agent domain - Enums
236
+ "AgentState",
237
+ "AgentType",
238
+ "GoalStatus",
239
+ "GoalPriority",
240
+ "CapabilityLevel",
241
+ "MemoryType",
242
+ # Agent domain - Models
243
+ "RetryPolicy",
244
+ "AgentConfiguration",
245
+ "AgentGoal",
246
+ "AgentCapabilityDeclaration",
247
+ "AgentMetrics",
248
+ "AgentInteraction",
249
+ "AgentMemory",
250
+ # Agent domain - Base and Concrete Agents
251
+ "BaseAIAgent",
252
+ "LLMAgent",
253
+ "ToolAgent",
254
+ "HybridAgent",
255
+ # Agent domain - Lifecycle Management
256
+ "AgentRegistry",
257
+ "AgentLifecycleManager",
258
+ "get_global_registry",
259
+ "get_global_lifecycle_manager",
260
+ # Agent domain - Persistence
261
+ "InMemoryPersistence",
262
+ "FilePersistence",
263
+ "get_global_persistence",
264
+ "set_global_persistence",
265
+ # Agent domain - Observability
266
+ "AgentController",
267
+ "LoggingObserver",
268
+ "MetricsObserver",
269
+ # Agent domain - Prompts
270
+ "PromptTemplate",
271
+ "ChatPromptTemplate",
272
+ "MessageBuilder",
273
+ # Agent domain - Tools
274
+ "ToolSchemaGenerator",
275
+ "generate_tool_schema",
276
+ # Agent domain - Memory
277
+ "ConversationMemory",
278
+ "Session",
279
+ # Agent domain - Integration
280
+ "ContextEngineAdapter",
281
+ "EnhancedRetryPolicy",
282
+ "RoleConfiguration",
283
+ "ContextCompressor",
284
+ "compress_messages",
285
+ # Agent domain - Migration
286
+ "LegacyAgentWrapper",
287
+ "convert_langchain_prompt",
288
+ "convert_legacy_config",
289
+ ]