aiecs 1.0.1__py3-none-any.whl → 1.7.6__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.

Files changed (340) hide show
  1. aiecs/__init__.py +13 -16
  2. aiecs/__main__.py +7 -7
  3. aiecs/aiecs_client.py +269 -75
  4. aiecs/application/executors/operation_executor.py +79 -54
  5. aiecs/application/knowledge_graph/__init__.py +7 -0
  6. aiecs/application/knowledge_graph/builder/__init__.py +37 -0
  7. aiecs/application/knowledge_graph/builder/data_quality.py +302 -0
  8. aiecs/application/knowledge_graph/builder/data_reshaping.py +293 -0
  9. aiecs/application/knowledge_graph/builder/document_builder.py +369 -0
  10. aiecs/application/knowledge_graph/builder/graph_builder.py +490 -0
  11. aiecs/application/knowledge_graph/builder/import_optimizer.py +396 -0
  12. aiecs/application/knowledge_graph/builder/schema_inference.py +462 -0
  13. aiecs/application/knowledge_graph/builder/schema_mapping.py +563 -0
  14. aiecs/application/knowledge_graph/builder/structured_pipeline.py +1384 -0
  15. aiecs/application/knowledge_graph/builder/text_chunker.py +317 -0
  16. aiecs/application/knowledge_graph/extractors/__init__.py +27 -0
  17. aiecs/application/knowledge_graph/extractors/base.py +98 -0
  18. aiecs/application/knowledge_graph/extractors/llm_entity_extractor.py +422 -0
  19. aiecs/application/knowledge_graph/extractors/llm_relation_extractor.py +347 -0
  20. aiecs/application/knowledge_graph/extractors/ner_entity_extractor.py +241 -0
  21. aiecs/application/knowledge_graph/fusion/__init__.py +78 -0
  22. aiecs/application/knowledge_graph/fusion/ab_testing.py +395 -0
  23. aiecs/application/knowledge_graph/fusion/abbreviation_expander.py +327 -0
  24. aiecs/application/knowledge_graph/fusion/alias_index.py +597 -0
  25. aiecs/application/knowledge_graph/fusion/alias_matcher.py +384 -0
  26. aiecs/application/knowledge_graph/fusion/cache_coordinator.py +343 -0
  27. aiecs/application/knowledge_graph/fusion/entity_deduplicator.py +433 -0
  28. aiecs/application/knowledge_graph/fusion/entity_linker.py +511 -0
  29. aiecs/application/knowledge_graph/fusion/evaluation_dataset.py +240 -0
  30. aiecs/application/knowledge_graph/fusion/knowledge_fusion.py +632 -0
  31. aiecs/application/knowledge_graph/fusion/matching_config.py +489 -0
  32. aiecs/application/knowledge_graph/fusion/name_normalizer.py +352 -0
  33. aiecs/application/knowledge_graph/fusion/relation_deduplicator.py +183 -0
  34. aiecs/application/knowledge_graph/fusion/semantic_name_matcher.py +464 -0
  35. aiecs/application/knowledge_graph/fusion/similarity_pipeline.py +534 -0
  36. aiecs/application/knowledge_graph/pattern_matching/__init__.py +21 -0
  37. aiecs/application/knowledge_graph/pattern_matching/pattern_matcher.py +342 -0
  38. aiecs/application/knowledge_graph/pattern_matching/query_executor.py +366 -0
  39. aiecs/application/knowledge_graph/profiling/__init__.py +12 -0
  40. aiecs/application/knowledge_graph/profiling/query_plan_visualizer.py +195 -0
  41. aiecs/application/knowledge_graph/profiling/query_profiler.py +223 -0
  42. aiecs/application/knowledge_graph/reasoning/__init__.py +27 -0
  43. aiecs/application/knowledge_graph/reasoning/evidence_synthesis.py +341 -0
  44. aiecs/application/knowledge_graph/reasoning/inference_engine.py +500 -0
  45. aiecs/application/knowledge_graph/reasoning/logic_form_parser.py +163 -0
  46. aiecs/application/knowledge_graph/reasoning/logic_parser/__init__.py +79 -0
  47. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_builder.py +513 -0
  48. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_nodes.py +913 -0
  49. aiecs/application/knowledge_graph/reasoning/logic_parser/ast_validator.py +866 -0
  50. aiecs/application/knowledge_graph/reasoning/logic_parser/error_handler.py +475 -0
  51. aiecs/application/knowledge_graph/reasoning/logic_parser/parser.py +396 -0
  52. aiecs/application/knowledge_graph/reasoning/logic_parser/query_context.py +208 -0
  53. aiecs/application/knowledge_graph/reasoning/logic_query_integration.py +170 -0
  54. aiecs/application/knowledge_graph/reasoning/query_planner.py +855 -0
  55. aiecs/application/knowledge_graph/reasoning/reasoning_engine.py +518 -0
  56. aiecs/application/knowledge_graph/retrieval/__init__.py +27 -0
  57. aiecs/application/knowledge_graph/retrieval/query_intent_classifier.py +211 -0
  58. aiecs/application/knowledge_graph/retrieval/retrieval_strategies.py +592 -0
  59. aiecs/application/knowledge_graph/retrieval/strategy_types.py +23 -0
  60. aiecs/application/knowledge_graph/search/__init__.py +59 -0
  61. aiecs/application/knowledge_graph/search/hybrid_search.py +457 -0
  62. aiecs/application/knowledge_graph/search/reranker.py +293 -0
  63. aiecs/application/knowledge_graph/search/reranker_strategies.py +535 -0
  64. aiecs/application/knowledge_graph/search/text_similarity.py +392 -0
  65. aiecs/application/knowledge_graph/traversal/__init__.py +15 -0
  66. aiecs/application/knowledge_graph/traversal/enhanced_traversal.py +305 -0
  67. aiecs/application/knowledge_graph/traversal/path_scorer.py +271 -0
  68. aiecs/application/knowledge_graph/validators/__init__.py +13 -0
  69. aiecs/application/knowledge_graph/validators/relation_validator.py +239 -0
  70. aiecs/application/knowledge_graph/visualization/__init__.py +11 -0
  71. aiecs/application/knowledge_graph/visualization/graph_visualizer.py +313 -0
  72. aiecs/common/__init__.py +9 -0
  73. aiecs/common/knowledge_graph/__init__.py +17 -0
  74. aiecs/common/knowledge_graph/runnable.py +471 -0
  75. aiecs/config/__init__.py +20 -5
  76. aiecs/config/config.py +762 -31
  77. aiecs/config/graph_config.py +131 -0
  78. aiecs/config/tool_config.py +399 -0
  79. aiecs/core/__init__.py +29 -13
  80. aiecs/core/interface/__init__.py +2 -2
  81. aiecs/core/interface/execution_interface.py +22 -22
  82. aiecs/core/interface/storage_interface.py +37 -88
  83. aiecs/core/registry/__init__.py +31 -0
  84. aiecs/core/registry/service_registry.py +92 -0
  85. aiecs/domain/__init__.py +270 -1
  86. aiecs/domain/agent/__init__.py +191 -0
  87. aiecs/domain/agent/base_agent.py +3870 -0
  88. aiecs/domain/agent/exceptions.py +99 -0
  89. aiecs/domain/agent/graph_aware_mixin.py +569 -0
  90. aiecs/domain/agent/hybrid_agent.py +1435 -0
  91. aiecs/domain/agent/integration/__init__.py +29 -0
  92. aiecs/domain/agent/integration/context_compressor.py +216 -0
  93. aiecs/domain/agent/integration/context_engine_adapter.py +587 -0
  94. aiecs/domain/agent/integration/protocols.py +281 -0
  95. aiecs/domain/agent/integration/retry_policy.py +218 -0
  96. aiecs/domain/agent/integration/role_config.py +213 -0
  97. aiecs/domain/agent/knowledge_aware_agent.py +1892 -0
  98. aiecs/domain/agent/lifecycle.py +291 -0
  99. aiecs/domain/agent/llm_agent.py +692 -0
  100. aiecs/domain/agent/memory/__init__.py +12 -0
  101. aiecs/domain/agent/memory/conversation.py +1124 -0
  102. aiecs/domain/agent/migration/__init__.py +14 -0
  103. aiecs/domain/agent/migration/conversion.py +163 -0
  104. aiecs/domain/agent/migration/legacy_wrapper.py +86 -0
  105. aiecs/domain/agent/models.py +884 -0
  106. aiecs/domain/agent/observability.py +479 -0
  107. aiecs/domain/agent/persistence.py +449 -0
  108. aiecs/domain/agent/prompts/__init__.py +29 -0
  109. aiecs/domain/agent/prompts/builder.py +159 -0
  110. aiecs/domain/agent/prompts/formatters.py +187 -0
  111. aiecs/domain/agent/prompts/template.py +255 -0
  112. aiecs/domain/agent/registry.py +253 -0
  113. aiecs/domain/agent/tool_agent.py +444 -0
  114. aiecs/domain/agent/tools/__init__.py +15 -0
  115. aiecs/domain/agent/tools/schema_generator.py +364 -0
  116. aiecs/domain/community/__init__.py +155 -0
  117. aiecs/domain/community/agent_adapter.py +469 -0
  118. aiecs/domain/community/analytics.py +432 -0
  119. aiecs/domain/community/collaborative_workflow.py +648 -0
  120. aiecs/domain/community/communication_hub.py +634 -0
  121. aiecs/domain/community/community_builder.py +320 -0
  122. aiecs/domain/community/community_integration.py +796 -0
  123. aiecs/domain/community/community_manager.py +803 -0
  124. aiecs/domain/community/decision_engine.py +849 -0
  125. aiecs/domain/community/exceptions.py +231 -0
  126. aiecs/domain/community/models/__init__.py +33 -0
  127. aiecs/domain/community/models/community_models.py +234 -0
  128. aiecs/domain/community/resource_manager.py +461 -0
  129. aiecs/domain/community/shared_context_manager.py +589 -0
  130. aiecs/domain/context/__init__.py +40 -10
  131. aiecs/domain/context/context_engine.py +1910 -0
  132. aiecs/domain/context/conversation_models.py +87 -53
  133. aiecs/domain/context/graph_memory.py +582 -0
  134. aiecs/domain/execution/model.py +12 -4
  135. aiecs/domain/knowledge_graph/__init__.py +19 -0
  136. aiecs/domain/knowledge_graph/models/__init__.py +52 -0
  137. aiecs/domain/knowledge_graph/models/entity.py +148 -0
  138. aiecs/domain/knowledge_graph/models/evidence.py +178 -0
  139. aiecs/domain/knowledge_graph/models/inference_rule.py +184 -0
  140. aiecs/domain/knowledge_graph/models/path.py +171 -0
  141. aiecs/domain/knowledge_graph/models/path_pattern.py +171 -0
  142. aiecs/domain/knowledge_graph/models/query.py +261 -0
  143. aiecs/domain/knowledge_graph/models/query_plan.py +181 -0
  144. aiecs/domain/knowledge_graph/models/relation.py +202 -0
  145. aiecs/domain/knowledge_graph/schema/__init__.py +23 -0
  146. aiecs/domain/knowledge_graph/schema/entity_type.py +131 -0
  147. aiecs/domain/knowledge_graph/schema/graph_schema.py +253 -0
  148. aiecs/domain/knowledge_graph/schema/property_schema.py +143 -0
  149. aiecs/domain/knowledge_graph/schema/relation_type.py +163 -0
  150. aiecs/domain/knowledge_graph/schema/schema_manager.py +691 -0
  151. aiecs/domain/knowledge_graph/schema/type_enums.py +209 -0
  152. aiecs/domain/task/dsl_processor.py +172 -56
  153. aiecs/domain/task/model.py +20 -8
  154. aiecs/domain/task/task_context.py +27 -24
  155. aiecs/infrastructure/__init__.py +0 -2
  156. aiecs/infrastructure/graph_storage/__init__.py +11 -0
  157. aiecs/infrastructure/graph_storage/base.py +837 -0
  158. aiecs/infrastructure/graph_storage/batch_operations.py +458 -0
  159. aiecs/infrastructure/graph_storage/cache.py +424 -0
  160. aiecs/infrastructure/graph_storage/distributed.py +223 -0
  161. aiecs/infrastructure/graph_storage/error_handling.py +380 -0
  162. aiecs/infrastructure/graph_storage/graceful_degradation.py +294 -0
  163. aiecs/infrastructure/graph_storage/health_checks.py +378 -0
  164. aiecs/infrastructure/graph_storage/in_memory.py +1197 -0
  165. aiecs/infrastructure/graph_storage/index_optimization.py +446 -0
  166. aiecs/infrastructure/graph_storage/lazy_loading.py +431 -0
  167. aiecs/infrastructure/graph_storage/metrics.py +344 -0
  168. aiecs/infrastructure/graph_storage/migration.py +400 -0
  169. aiecs/infrastructure/graph_storage/pagination.py +483 -0
  170. aiecs/infrastructure/graph_storage/performance_monitoring.py +456 -0
  171. aiecs/infrastructure/graph_storage/postgres.py +1563 -0
  172. aiecs/infrastructure/graph_storage/property_storage.py +353 -0
  173. aiecs/infrastructure/graph_storage/protocols.py +76 -0
  174. aiecs/infrastructure/graph_storage/query_optimizer.py +642 -0
  175. aiecs/infrastructure/graph_storage/schema_cache.py +290 -0
  176. aiecs/infrastructure/graph_storage/sqlite.py +1373 -0
  177. aiecs/infrastructure/graph_storage/streaming.py +487 -0
  178. aiecs/infrastructure/graph_storage/tenant.py +412 -0
  179. aiecs/infrastructure/messaging/celery_task_manager.py +92 -54
  180. aiecs/infrastructure/messaging/websocket_manager.py +51 -35
  181. aiecs/infrastructure/monitoring/__init__.py +22 -0
  182. aiecs/infrastructure/monitoring/executor_metrics.py +45 -11
  183. aiecs/infrastructure/monitoring/global_metrics_manager.py +212 -0
  184. aiecs/infrastructure/monitoring/structured_logger.py +3 -7
  185. aiecs/infrastructure/monitoring/tracing_manager.py +63 -35
  186. aiecs/infrastructure/persistence/__init__.py +14 -1
  187. aiecs/infrastructure/persistence/context_engine_client.py +184 -0
  188. aiecs/infrastructure/persistence/database_manager.py +67 -43
  189. aiecs/infrastructure/persistence/file_storage.py +180 -103
  190. aiecs/infrastructure/persistence/redis_client.py +74 -21
  191. aiecs/llm/__init__.py +73 -25
  192. aiecs/llm/callbacks/__init__.py +11 -0
  193. aiecs/llm/{custom_callbacks.py → callbacks/custom_callbacks.py} +26 -19
  194. aiecs/llm/client_factory.py +224 -36
  195. aiecs/llm/client_resolver.py +155 -0
  196. aiecs/llm/clients/__init__.py +38 -0
  197. aiecs/llm/clients/base_client.py +324 -0
  198. aiecs/llm/clients/google_function_calling_mixin.py +457 -0
  199. aiecs/llm/clients/googleai_client.py +241 -0
  200. aiecs/llm/clients/openai_client.py +158 -0
  201. aiecs/llm/clients/openai_compatible_mixin.py +367 -0
  202. aiecs/llm/clients/vertex_client.py +897 -0
  203. aiecs/llm/clients/xai_client.py +201 -0
  204. aiecs/llm/config/__init__.py +51 -0
  205. aiecs/llm/config/config_loader.py +272 -0
  206. aiecs/llm/config/config_validator.py +206 -0
  207. aiecs/llm/config/model_config.py +143 -0
  208. aiecs/llm/protocols.py +149 -0
  209. aiecs/llm/utils/__init__.py +10 -0
  210. aiecs/llm/utils/validate_config.py +89 -0
  211. aiecs/main.py +140 -121
  212. aiecs/scripts/aid/VERSION_MANAGEMENT.md +138 -0
  213. aiecs/scripts/aid/__init__.py +19 -0
  214. aiecs/scripts/aid/module_checker.py +499 -0
  215. aiecs/scripts/aid/version_manager.py +235 -0
  216. aiecs/scripts/{DEPENDENCY_SYSTEM_SUMMARY.md → dependance_check/DEPENDENCY_SYSTEM_SUMMARY.md} +1 -0
  217. aiecs/scripts/{README_DEPENDENCY_CHECKER.md → dependance_check/README_DEPENDENCY_CHECKER.md} +1 -0
  218. aiecs/scripts/dependance_check/__init__.py +15 -0
  219. aiecs/scripts/dependance_check/dependency_checker.py +1835 -0
  220. aiecs/scripts/{dependency_fixer.py → dependance_check/dependency_fixer.py} +192 -90
  221. aiecs/scripts/{download_nlp_data.py → dependance_check/download_nlp_data.py} +203 -71
  222. aiecs/scripts/dependance_patch/__init__.py +7 -0
  223. aiecs/scripts/dependance_patch/fix_weasel/__init__.py +11 -0
  224. aiecs/scripts/{fix_weasel_validator.py → dependance_patch/fix_weasel/fix_weasel_validator.py} +21 -14
  225. aiecs/scripts/{patch_weasel_library.sh → dependance_patch/fix_weasel/patch_weasel_library.sh} +1 -1
  226. aiecs/scripts/knowledge_graph/__init__.py +3 -0
  227. aiecs/scripts/knowledge_graph/run_threshold_experiments.py +212 -0
  228. aiecs/scripts/migrations/multi_tenancy/README.md +142 -0
  229. aiecs/scripts/tools_develop/README.md +671 -0
  230. aiecs/scripts/tools_develop/README_CONFIG_CHECKER.md +273 -0
  231. aiecs/scripts/tools_develop/TOOLS_CONFIG_GUIDE.md +1287 -0
  232. aiecs/scripts/tools_develop/TOOL_AUTO_DISCOVERY.md +234 -0
  233. aiecs/scripts/tools_develop/__init__.py +21 -0
  234. aiecs/scripts/tools_develop/check_all_tools_config.py +548 -0
  235. aiecs/scripts/tools_develop/check_type_annotations.py +257 -0
  236. aiecs/scripts/tools_develop/pre-commit-schema-coverage.sh +66 -0
  237. aiecs/scripts/tools_develop/schema_coverage.py +511 -0
  238. aiecs/scripts/tools_develop/validate_tool_schemas.py +475 -0
  239. aiecs/scripts/tools_develop/verify_executor_config_fix.py +98 -0
  240. aiecs/scripts/tools_develop/verify_tools.py +352 -0
  241. aiecs/tasks/__init__.py +0 -1
  242. aiecs/tasks/worker.py +115 -47
  243. aiecs/tools/__init__.py +194 -72
  244. aiecs/tools/apisource/__init__.py +99 -0
  245. aiecs/tools/apisource/intelligence/__init__.py +19 -0
  246. aiecs/tools/apisource/intelligence/data_fusion.py +632 -0
  247. aiecs/tools/apisource/intelligence/query_analyzer.py +417 -0
  248. aiecs/tools/apisource/intelligence/search_enhancer.py +385 -0
  249. aiecs/tools/apisource/monitoring/__init__.py +9 -0
  250. aiecs/tools/apisource/monitoring/metrics.py +330 -0
  251. aiecs/tools/apisource/providers/__init__.py +112 -0
  252. aiecs/tools/apisource/providers/base.py +671 -0
  253. aiecs/tools/apisource/providers/census.py +397 -0
  254. aiecs/tools/apisource/providers/fred.py +535 -0
  255. aiecs/tools/apisource/providers/newsapi.py +409 -0
  256. aiecs/tools/apisource/providers/worldbank.py +352 -0
  257. aiecs/tools/apisource/reliability/__init__.py +12 -0
  258. aiecs/tools/apisource/reliability/error_handler.py +363 -0
  259. aiecs/tools/apisource/reliability/fallback_strategy.py +376 -0
  260. aiecs/tools/apisource/tool.py +832 -0
  261. aiecs/tools/apisource/utils/__init__.py +9 -0
  262. aiecs/tools/apisource/utils/validators.py +334 -0
  263. aiecs/tools/base_tool.py +415 -21
  264. aiecs/tools/docs/__init__.py +121 -0
  265. aiecs/tools/docs/ai_document_orchestrator.py +607 -0
  266. aiecs/tools/docs/ai_document_writer_orchestrator.py +2350 -0
  267. aiecs/tools/docs/content_insertion_tool.py +1320 -0
  268. aiecs/tools/docs/document_creator_tool.py +1323 -0
  269. aiecs/tools/docs/document_layout_tool.py +1160 -0
  270. aiecs/tools/docs/document_parser_tool.py +1011 -0
  271. aiecs/tools/docs/document_writer_tool.py +1829 -0
  272. aiecs/tools/knowledge_graph/__init__.py +17 -0
  273. aiecs/tools/knowledge_graph/graph_reasoning_tool.py +807 -0
  274. aiecs/tools/knowledge_graph/graph_search_tool.py +944 -0
  275. aiecs/tools/knowledge_graph/kg_builder_tool.py +524 -0
  276. aiecs/tools/langchain_adapter.py +300 -138
  277. aiecs/tools/schema_generator.py +455 -0
  278. aiecs/tools/search_tool/__init__.py +100 -0
  279. aiecs/tools/search_tool/analyzers.py +581 -0
  280. aiecs/tools/search_tool/cache.py +264 -0
  281. aiecs/tools/search_tool/constants.py +128 -0
  282. aiecs/tools/search_tool/context.py +224 -0
  283. aiecs/tools/search_tool/core.py +778 -0
  284. aiecs/tools/search_tool/deduplicator.py +119 -0
  285. aiecs/tools/search_tool/error_handler.py +242 -0
  286. aiecs/tools/search_tool/metrics.py +343 -0
  287. aiecs/tools/search_tool/rate_limiter.py +172 -0
  288. aiecs/tools/search_tool/schemas.py +275 -0
  289. aiecs/tools/statistics/__init__.py +80 -0
  290. aiecs/tools/statistics/ai_data_analysis_orchestrator.py +646 -0
  291. aiecs/tools/statistics/ai_insight_generator_tool.py +508 -0
  292. aiecs/tools/statistics/ai_report_orchestrator_tool.py +684 -0
  293. aiecs/tools/statistics/data_loader_tool.py +555 -0
  294. aiecs/tools/statistics/data_profiler_tool.py +638 -0
  295. aiecs/tools/statistics/data_transformer_tool.py +580 -0
  296. aiecs/tools/statistics/data_visualizer_tool.py +498 -0
  297. aiecs/tools/statistics/model_trainer_tool.py +507 -0
  298. aiecs/tools/statistics/statistical_analyzer_tool.py +472 -0
  299. aiecs/tools/task_tools/__init__.py +49 -36
  300. aiecs/tools/task_tools/chart_tool.py +200 -184
  301. aiecs/tools/task_tools/classfire_tool.py +268 -267
  302. aiecs/tools/task_tools/image_tool.py +175 -131
  303. aiecs/tools/task_tools/office_tool.py +226 -146
  304. aiecs/tools/task_tools/pandas_tool.py +477 -121
  305. aiecs/tools/task_tools/report_tool.py +390 -142
  306. aiecs/tools/task_tools/research_tool.py +149 -79
  307. aiecs/tools/task_tools/scraper_tool.py +339 -145
  308. aiecs/tools/task_tools/stats_tool.py +448 -209
  309. aiecs/tools/temp_file_manager.py +26 -24
  310. aiecs/tools/tool_executor/__init__.py +18 -16
  311. aiecs/tools/tool_executor/tool_executor.py +364 -52
  312. aiecs/utils/LLM_output_structor.py +74 -48
  313. aiecs/utils/__init__.py +14 -3
  314. aiecs/utils/base_callback.py +0 -3
  315. aiecs/utils/cache_provider.py +696 -0
  316. aiecs/utils/execution_utils.py +50 -31
  317. aiecs/utils/prompt_loader.py +1 -0
  318. aiecs/utils/token_usage_repository.py +37 -11
  319. aiecs/ws/socket_server.py +14 -4
  320. {aiecs-1.0.1.dist-info → aiecs-1.7.6.dist-info}/METADATA +52 -15
  321. aiecs-1.7.6.dist-info/RECORD +337 -0
  322. aiecs-1.7.6.dist-info/entry_points.txt +13 -0
  323. aiecs/config/registry.py +0 -19
  324. aiecs/domain/context/content_engine.py +0 -982
  325. aiecs/llm/base_client.py +0 -99
  326. aiecs/llm/openai_client.py +0 -125
  327. aiecs/llm/vertex_client.py +0 -186
  328. aiecs/llm/xai_client.py +0 -184
  329. aiecs/scripts/dependency_checker.py +0 -857
  330. aiecs/scripts/quick_dependency_check.py +0 -269
  331. aiecs/tools/task_tools/search_api.py +0 -7
  332. aiecs-1.0.1.dist-info/RECORD +0 -90
  333. aiecs-1.0.1.dist-info/entry_points.txt +0 -7
  334. /aiecs/scripts/{setup_nlp_data.sh → dependance_check/setup_nlp_data.sh} +0 -0
  335. /aiecs/scripts/{README_WEASEL_PATCH.md → dependance_patch/fix_weasel/README_WEASEL_PATCH.md} +0 -0
  336. /aiecs/scripts/{fix_weasel_validator.sh → dependance_patch/fix_weasel/fix_weasel_validator.sh} +0 -0
  337. /aiecs/scripts/{run_weasel_patch.sh → dependance_patch/fix_weasel/run_weasel_patch.sh} +0 -0
  338. {aiecs-1.0.1.dist-info → aiecs-1.7.6.dist-info}/WHEEL +0 -0
  339. {aiecs-1.0.1.dist-info → aiecs-1.7.6.dist-info}/licenses/LICENSE +0 -0
  340. {aiecs-1.0.1.dist-info → aiecs-1.7.6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,231 @@
1
+ """
2
+ Community Exceptions
3
+
4
+ Defines community-specific exception classes with clear error messages
5
+ and recovery suggestions.
6
+ """
7
+
8
+ from typing import Optional
9
+
10
+
11
+ class CommunityException(Exception):
12
+ """Base exception for community-related errors."""
13
+
14
+ def __init__(self, message: str, recovery_suggestion: Optional[str] = None):
15
+ """
16
+ Initialize community exception.
17
+
18
+ Args:
19
+ message: Error message
20
+ recovery_suggestion: Optional suggestion for recovery
21
+ """
22
+ self.message = message
23
+ self.recovery_suggestion = recovery_suggestion
24
+ super().__init__(self.message)
25
+
26
+ def __str__(self):
27
+ """String representation with recovery suggestion."""
28
+ if self.recovery_suggestion:
29
+ return f"{self.message}\nSuggestion: {self.recovery_suggestion}"
30
+ return self.message
31
+
32
+
33
+ class CommunityNotFoundError(CommunityException):
34
+ """Raised when a community is not found."""
35
+
36
+ def __init__(self, community_id: str):
37
+ super().__init__(
38
+ f"Community not found: {community_id}",
39
+ "Verify the community ID is correct and the community exists.",
40
+ )
41
+ self.community_id = community_id
42
+
43
+
44
+ class MemberNotFoundError(CommunityException):
45
+ """Raised when a member is not found."""
46
+
47
+ def __init__(self, member_id: str):
48
+ super().__init__(
49
+ f"Member not found: {member_id}",
50
+ "Verify the member ID is correct and the member exists in the community.",
51
+ )
52
+ self.member_id = member_id
53
+
54
+
55
+ class ResourceNotFoundError(CommunityException):
56
+ """Raised when a resource is not found."""
57
+
58
+ def __init__(self, resource_id: str):
59
+ super().__init__(
60
+ f"Resource not found: {resource_id}",
61
+ "Verify the resource ID is correct and the resource exists.",
62
+ )
63
+ self.resource_id = resource_id
64
+
65
+
66
+ class DecisionNotFoundError(CommunityException):
67
+ """Raised when a decision is not found."""
68
+
69
+ def __init__(self, decision_id: str):
70
+ super().__init__(
71
+ f"Decision not found: {decision_id}",
72
+ "Verify the decision ID is correct and the decision exists.",
73
+ )
74
+ self.decision_id = decision_id
75
+
76
+
77
+ class AccessDeniedError(CommunityException):
78
+ """Raised when access to a community resource is denied."""
79
+
80
+ def __init__(self, agent_id: str, resource_type: str, resource_id: str):
81
+ super().__init__(
82
+ f"Access denied for agent {agent_id} to {resource_type} {resource_id}",
83
+ "Request access from the resource owner or community administrator.",
84
+ )
85
+ self.agent_id = agent_id
86
+ self.resource_type = resource_type
87
+ self.resource_id = resource_id
88
+
89
+
90
+ class MembershipError(CommunityException):
91
+ """Raised when there's an issue with community membership."""
92
+
93
+ def __init__(self, message: str, agent_id: Optional[str] = None):
94
+ super().__init__(message, "Check membership status and community requirements.")
95
+ self.agent_id = agent_id
96
+
97
+
98
+ class VotingError(CommunityException):
99
+ """Raised when there's an issue with voting."""
100
+
101
+ def __init__(self, message: str, decision_id: Optional[str] = None):
102
+ super().__init__(
103
+ message,
104
+ "Verify voting is open and you are eligible to vote on this decision.",
105
+ )
106
+ self.decision_id = decision_id
107
+
108
+
109
+ class GovernanceError(CommunityException):
110
+ """Raised when there's an issue with community governance."""
111
+
112
+ def __init__(self, message: str, community_id: Optional[str] = None):
113
+ super().__init__(message, "Review community governance rules and requirements.")
114
+ self.community_id = community_id
115
+
116
+
117
+ class CollaborationError(CommunityException):
118
+ """Raised when there's an issue with collaboration."""
119
+
120
+ def __init__(self, message: str, session_id: Optional[str] = None):
121
+ super().__init__(message, "Check session status and participant availability.")
122
+ self.session_id = session_id
123
+
124
+
125
+ class CommunityInitializationError(CommunityException):
126
+ """Raised when community initialization fails."""
127
+
128
+ def __init__(self, component: str, reason: str):
129
+ super().__init__(
130
+ f"Failed to initialize {component}: {reason}",
131
+ "Check configuration and dependencies are properly set up.",
132
+ )
133
+ self.component = component
134
+ self.reason = reason
135
+
136
+
137
+ class CommunityValidationError(CommunityException):
138
+ """Raised when community validation fails."""
139
+
140
+ def __init__(self, field_or_message: str, reason: Optional[str] = None):
141
+ # Initialize attributes first
142
+ self.field: Optional[str]
143
+ self.reason: Optional[str]
144
+
145
+ if reason:
146
+ # Two-argument form: field and reason
147
+ message = f"Validation error for {field_or_message}: {reason}"
148
+ self.field = field_or_message
149
+ self.reason = reason
150
+ else:
151
+ # One-argument form: just message
152
+ message = field_or_message
153
+ self.field = None
154
+ self.reason = None
155
+
156
+ super().__init__(message, "Review the field value and ensure it meets requirements.")
157
+
158
+
159
+ class QuorumNotMetError(CommunityException):
160
+ """Raised when quorum is not met for a decision."""
161
+
162
+ def __init__(self, required: int, actual: int, decision_id: Optional[str] = None):
163
+ super().__init__(
164
+ f"Quorum not met: {actual} votes cast, {required} required",
165
+ "Encourage more members to participate in voting.",
166
+ )
167
+ self.required = required
168
+ self.actual = actual
169
+ self.decision_id = decision_id
170
+
171
+
172
+ class ConflictResolutionError(CommunityException):
173
+ """Raised when conflict resolution fails."""
174
+
175
+ def __init__(self, decision_id: str, strategy: str):
176
+ super().__init__(
177
+ f"Conflict resolution failed for decision {decision_id} using {strategy}",
178
+ "Try a different conflict resolution strategy or escalate the decision.",
179
+ )
180
+ self.decision_id = decision_id
181
+ self.strategy = strategy
182
+
183
+
184
+ class CommunityCapacityError(CommunityException):
185
+ """Raised when community reaches capacity."""
186
+
187
+ def __init__(self, community_id: str, current: int, maximum: int):
188
+ super().__init__(
189
+ f"Community {community_id} is at capacity: {current}/{maximum} members",
190
+ "Create a new community or increase the member limit.",
191
+ )
192
+ self.community_id = community_id
193
+ self.current = current
194
+ self.maximum = maximum
195
+
196
+
197
+ class AgentAdapterError(CommunityException):
198
+ """Raised when there's an issue with agent adapter."""
199
+
200
+ def __init__(self, agent_id: str, reason: str):
201
+ super().__init__(
202
+ f"Agent adapter error for {agent_id}: {reason}",
203
+ "Check agent adapter configuration and connectivity.",
204
+ )
205
+ self.agent_id = agent_id
206
+ self.reason = reason
207
+
208
+
209
+ class CommunicationError(CommunityException):
210
+ """Raised when there's an issue with agent communication."""
211
+
212
+ def __init__(self, sender_id: str, recipient_id: str, reason: str):
213
+ super().__init__(
214
+ f"Communication error from {sender_id} to {recipient_id}: {reason}",
215
+ "Verify both agents are registered and active in the communication hub.",
216
+ )
217
+ self.sender_id = sender_id
218
+ self.recipient_id = recipient_id
219
+ self.reason = reason
220
+
221
+
222
+ class ContextError(CommunityException):
223
+ """Raised when there's an issue with shared context."""
224
+
225
+ def __init__(self, context_id: str, reason: str):
226
+ super().__init__(
227
+ f"Context error for {context_id}: {reason}",
228
+ "Check context access permissions and version compatibility.",
229
+ )
230
+ self.context_id = context_id
231
+ self.reason = reason
@@ -0,0 +1,33 @@
1
+ """
2
+ Community Models
3
+
4
+ Data models for agent community collaboration, governance, and resource sharing.
5
+ """
6
+
7
+ from .community_models import (
8
+ # Enums
9
+ CommunityRole,
10
+ GovernanceType,
11
+ DecisionStatus,
12
+ ResourceType,
13
+ # Models
14
+ CommunityMember,
15
+ CommunityResource,
16
+ CommunityDecision,
17
+ AgentCommunity,
18
+ CollaborationSession,
19
+ )
20
+
21
+ __all__ = [
22
+ # Enums
23
+ "CommunityRole",
24
+ "GovernanceType",
25
+ "DecisionStatus",
26
+ "ResourceType",
27
+ # Models
28
+ "CommunityMember",
29
+ "CommunityResource",
30
+ "CommunityDecision",
31
+ "AgentCommunity",
32
+ "CollaborationSession",
33
+ ]
@@ -0,0 +1,234 @@
1
+ """
2
+ Community Collaboration Models
3
+
4
+ Defines the data models for agent community collaboration,
5
+ including governance, resource sharing, and collective decision-making.
6
+ """
7
+
8
+ from datetime import datetime
9
+ from typing import Dict, List, Any, Optional
10
+ from enum import Enum
11
+ from pydantic import BaseModel, Field, ConfigDict
12
+ import uuid
13
+
14
+
15
+ class CommunityRole(str, Enum):
16
+ """Roles within the agent community."""
17
+
18
+ LEADER = "leader"
19
+ COORDINATOR = "coordinator"
20
+ SPECIALIST = "specialist"
21
+ CONTRIBUTOR = "contributor"
22
+ OBSERVER = "observer"
23
+
24
+
25
+ class GovernanceType(str, Enum):
26
+ """Types of community governance."""
27
+
28
+ DEMOCRATIC = "democratic" # Voting-based decisions
29
+ CONSENSUS = "consensus" # Consensus-based decisions
30
+ HIERARCHICAL = "hierarchical" # Leader-based decisions
31
+ HYBRID = "hybrid" # Mixed governance
32
+
33
+
34
+ class DecisionStatus(str, Enum):
35
+ """Status of community decisions."""
36
+
37
+ PROPOSED = "proposed"
38
+ VOTING = "voting"
39
+ APPROVED = "approved"
40
+ REJECTED = "rejected"
41
+ IMPLEMENTED = "implemented"
42
+
43
+
44
+ class ResourceType(str, Enum):
45
+ """Types of community resources."""
46
+
47
+ KNOWLEDGE = "knowledge"
48
+ TOOL = "tool"
49
+ EXPERIENCE = "experience"
50
+ DATA = "data"
51
+ CAPABILITY = "capability"
52
+
53
+
54
+ class CommunityMember(BaseModel):
55
+ """Model representing a member of the agent community."""
56
+
57
+ member_id: str = Field(..., description="Unique identifier for the member")
58
+ agent_id: str = Field(..., description="Associated agent ID")
59
+ agent_role: str = Field(..., description="Agent's functional role")
60
+ community_role: CommunityRole = Field(..., description="Role within the community")
61
+
62
+ # Participation metrics
63
+ contribution_score: float = Field(default=0.0, description="Contribution score to the community")
64
+ reputation: float = Field(default=0.0, description="Reputation within the community")
65
+ participation_level: str = Field(default="active", description="Level of participation")
66
+
67
+ # Capabilities and specializations
68
+ specializations: List[str] = Field(default_factory=list, description="Areas of specialization")
69
+ available_resources: List[str] = Field(default_factory=list, description="Resources this member can provide")
70
+
71
+ # Status
72
+ is_active: bool = Field(default=True, description="Whether the member is active")
73
+ joined_at: datetime = Field(default_factory=datetime.utcnow, description="When the member joined")
74
+ last_active_at: Optional[datetime] = Field(None, description="Last activity timestamp")
75
+
76
+ # Metadata
77
+ metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
78
+ model_config = ConfigDict()
79
+
80
+
81
+ class CommunityResource(BaseModel):
82
+ """Model representing a shared community resource."""
83
+
84
+ resource_id: str = Field(
85
+ default_factory=lambda: str(uuid.uuid4()),
86
+ description="Unique resource identifier",
87
+ )
88
+ name: str = Field(..., description="Name of the resource")
89
+ resource_type: ResourceType = Field(..., description="Type of resource")
90
+ description: Optional[str] = Field(None, description="Description of the resource")
91
+
92
+ # Ownership and access
93
+ owner_id: str = Field(..., description="ID of the member who owns/contributed this resource")
94
+ access_level: str = Field(
95
+ default="public",
96
+ description="Access level (public, restricted, private)",
97
+ )
98
+ allowed_members: List[str] = Field(
99
+ default_factory=list,
100
+ description="Members allowed to access (if restricted)",
101
+ )
102
+
103
+ # Content
104
+ content: Dict[str, Any] = Field(default_factory=dict, description="Resource content/data")
105
+ tags: List[str] = Field(default_factory=list, description="Tags for categorization")
106
+
107
+ # Usage metrics
108
+ usage_count: int = Field(default=0, description="Number of times this resource has been used")
109
+ rating: float = Field(default=0.0, description="Average rating from community members")
110
+
111
+ # Status
112
+ is_available: bool = Field(default=True, description="Whether the resource is available")
113
+ created_at: datetime = Field(default_factory=datetime.utcnow, description="Creation timestamp")
114
+ updated_at: Optional[datetime] = Field(None, description="Last update timestamp")
115
+
116
+ # Metadata
117
+ metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
118
+ model_config = ConfigDict()
119
+
120
+
121
+ class CommunityDecision(BaseModel):
122
+ """Model representing a community decision or proposal."""
123
+
124
+ decision_id: str = Field(
125
+ default_factory=lambda: str(uuid.uuid4()),
126
+ description="Unique decision identifier",
127
+ )
128
+ title: str = Field(..., description="Title of the decision/proposal")
129
+ description: str = Field(..., description="Detailed description")
130
+
131
+ # Proposal details
132
+ proposer_id: str = Field(..., description="ID of the member who proposed this")
133
+ decision_type: str = Field(..., description="Type of decision (policy, resource, task, etc.)")
134
+ priority: str = Field(default="medium", description="Priority level")
135
+
136
+ # Voting and consensus
137
+ status: DecisionStatus = Field(default=DecisionStatus.PROPOSED, description="Current status")
138
+ votes_for: List[str] = Field(default_factory=list, description="Member IDs who voted for")
139
+ votes_against: List[str] = Field(default_factory=list, description="Member IDs who voted against")
140
+ abstentions: List[str] = Field(default_factory=list, description="Member IDs who abstained")
141
+
142
+ # Implementation
143
+ implementation_plan: Optional[str] = Field(None, description="Plan for implementing the decision")
144
+ assigned_members: List[str] = Field(default_factory=list, description="Members assigned to implement")
145
+ deadline: Optional[datetime] = Field(None, description="Implementation deadline")
146
+
147
+ # Status tracking
148
+ created_at: datetime = Field(default_factory=datetime.utcnow, description="Creation timestamp")
149
+ voting_ends_at: Optional[datetime] = Field(None, description="When voting ends")
150
+ implemented_at: Optional[datetime] = Field(None, description="When decision was implemented")
151
+
152
+ # Metadata
153
+ metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
154
+ model_config = ConfigDict()
155
+
156
+
157
+ class AgentCommunity(BaseModel):
158
+ """Model representing an agent community."""
159
+
160
+ community_id: str = Field(
161
+ default_factory=lambda: str(uuid.uuid4()),
162
+ description="Unique community identifier",
163
+ )
164
+ name: str = Field(..., description="Name of the community")
165
+ description: Optional[str] = Field(None, description="Description of the community")
166
+
167
+ # Governance
168
+ governance_type: GovernanceType = Field(default=GovernanceType.DEMOCRATIC, description="Type of governance")
169
+ governance_rules: Dict[str, Any] = Field(default_factory=dict, description="Governance rules and policies")
170
+
171
+ # Membership
172
+ members: List[str] = Field(default_factory=list, description="List of member IDs")
173
+ max_members: Optional[int] = Field(None, description="Maximum number of members")
174
+ membership_criteria: Dict[str, Any] = Field(default_factory=dict, description="Criteria for membership")
175
+
176
+ # Leadership
177
+ leaders: List[str] = Field(default_factory=list, description="List of leader member IDs")
178
+ coordinators: List[str] = Field(default_factory=list, description="List of coordinator member IDs")
179
+
180
+ # Resources and capabilities
181
+ shared_resources: List[str] = Field(default_factory=list, description="List of shared resource IDs")
182
+ collective_capabilities: List[str] = Field(default_factory=list, description="Collective capabilities")
183
+ knowledge_base: Dict[str, Any] = Field(default_factory=dict, description="Community knowledge base")
184
+
185
+ # Activity and metrics
186
+ activity_level: str = Field(default="active", description="Overall activity level")
187
+ collaboration_score: float = Field(default=0.0, description="Overall collaboration effectiveness score")
188
+ decision_count: int = Field(default=0, description="Number of decisions made")
189
+ resource_count: int = Field(default=0, description="Number of shared resources")
190
+
191
+ # Status
192
+ is_active: bool = Field(default=True, description="Whether the community is active")
193
+ created_at: datetime = Field(default_factory=datetime.utcnow, description="Creation timestamp")
194
+ updated_at: Optional[datetime] = Field(None, description="Last update timestamp")
195
+
196
+ # Metadata
197
+ metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
198
+ model_config = ConfigDict()
199
+
200
+
201
+ class CollaborationSession(BaseModel):
202
+ """Model representing a collaborative session between community members."""
203
+
204
+ session_id: str = Field(
205
+ default_factory=lambda: str(uuid.uuid4()),
206
+ description="Unique session identifier",
207
+ )
208
+ community_id: str = Field(..., description="Associated community ID")
209
+
210
+ # Participants
211
+ participants: List[str] = Field(..., description="List of participating member IDs")
212
+ session_leader: Optional[str] = Field(None, description="Session leader member ID")
213
+
214
+ # Session details
215
+ purpose: str = Field(..., description="Purpose of the collaboration session")
216
+ session_type: str = Field(
217
+ ...,
218
+ description="Type of session (brainstorm, decision, problem-solving, etc.)",
219
+ )
220
+ agenda: List[str] = Field(default_factory=list, description="Session agenda items")
221
+
222
+ # Outcomes
223
+ decisions_made: List[str] = Field(default_factory=list, description="Decision IDs made during session")
224
+ resources_created: List[str] = Field(default_factory=list, description="Resource IDs created during session")
225
+ action_items: List[Dict[str, Any]] = Field(default_factory=list, description="Action items from the session")
226
+
227
+ # Status
228
+ status: str = Field(default="active", description="Session status")
229
+ started_at: datetime = Field(default_factory=datetime.utcnow, description="Session start time")
230
+ ended_at: Optional[datetime] = Field(None, description="Session end time")
231
+
232
+ # Metadata
233
+ metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
234
+ model_config = ConfigDict()