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
@@ -0,0 +1,221 @@
1
+ """
2
+ Tool Schema Generator
3
+
4
+ Generate OpenAI-style function schemas from AIECS tools.
5
+ """
6
+
7
+ import inspect
8
+ import logging
9
+ from typing import Dict, Any, List, Optional
10
+ from aiecs.tools import get_tool
11
+
12
+ logger = logging.getLogger(__name__)
13
+
14
+
15
+ class ToolSchemaGenerator:
16
+ """
17
+ Generates OpenAI-style function calling schemas from AIECS tools.
18
+
19
+ Example:
20
+ generator = ToolSchemaGenerator()
21
+ schema = generator.generate_schema("search", "search_web")
22
+ """
23
+
24
+ @staticmethod
25
+ def generate_schema(
26
+ tool_name: str,
27
+ operation: Optional[str] = None,
28
+ description: Optional[str] = None,
29
+ ) -> Dict[str, Any]:
30
+ """
31
+ Generate OpenAI function schema for a tool operation.
32
+
33
+ Args:
34
+ tool_name: Tool name
35
+ operation: Optional operation name
36
+ description: Optional custom description
37
+
38
+ Returns:
39
+ OpenAI function schema dictionary
40
+ """
41
+ try:
42
+ tool = get_tool(tool_name)
43
+ except Exception as e:
44
+ logger.error(f"Failed to get tool {tool_name}: {e}")
45
+ raise
46
+
47
+ # Generate function name
48
+ if operation:
49
+ function_name = f"{tool_name}_{operation}"
50
+ else:
51
+ function_name = tool_name
52
+
53
+ # Get operation method if specified
54
+ if operation:
55
+ if not hasattr(tool, operation):
56
+ raise ValueError(f"Tool {tool_name} has no operation '{operation}'")
57
+ method = getattr(tool, operation)
58
+ else:
59
+ # Default to 'run' method
60
+ method = getattr(tool, "run", None)
61
+ if method is None:
62
+ raise ValueError(f"Tool {tool_name} has no 'run' method")
63
+
64
+ # Extract parameters
65
+ parameters = ToolSchemaGenerator._extract_parameters(method)
66
+
67
+ # Build schema
68
+ schema = {
69
+ "name": function_name,
70
+ "description": description or f"{tool_name} tool",
71
+ "parameters": {
72
+ "type": "object",
73
+ "properties": parameters,
74
+ "required": ToolSchemaGenerator._get_required_params(method),
75
+ },
76
+ }
77
+
78
+ return schema
79
+
80
+ @staticmethod
81
+ def _extract_parameters(method) -> Dict[str, Dict[str, Any]]:
82
+ """Extract parameter schemas from method."""
83
+ sig = inspect.signature(method)
84
+ parameters = {}
85
+
86
+ for param_name, param in sig.parameters.items():
87
+ # Skip 'self' and 'op' parameters
88
+ if param_name in ["self", "op", "cls"]:
89
+ continue
90
+
91
+ param_schema = ToolSchemaGenerator._param_to_schema(param_name, param)
92
+ if param_schema:
93
+ parameters[param_name] = param_schema
94
+
95
+ return parameters
96
+
97
+ @staticmethod
98
+ def _param_to_schema(param_name: str, param: inspect.Parameter) -> Optional[Dict[str, Any]]:
99
+ """Convert parameter to JSON schema."""
100
+ schema: Dict[str, Any] = {}
101
+
102
+ # Try to infer type from annotation
103
+ if param.annotation != inspect.Parameter.empty:
104
+ schema.update(ToolSchemaGenerator._type_to_schema(param.annotation))
105
+
106
+ # Add default if present
107
+ if param.default != inspect.Parameter.empty:
108
+ schema["default"] = param.default
109
+
110
+ # If no type info, default to string
111
+ if "type" not in schema:
112
+ schema["type"] = "string"
113
+
114
+ return schema
115
+
116
+ @staticmethod
117
+ def _type_to_schema(type_hint) -> Dict[str, Any]:
118
+ """Convert Python type hint to JSON schema type."""
119
+ # Handle string annotations
120
+ if isinstance(type_hint, str):
121
+ if type_hint == "str":
122
+ return {"type": "string"}
123
+ elif type_hint == "int":
124
+ return {"type": "integer"}
125
+ elif type_hint == "float":
126
+ return {"type": "number"}
127
+ elif type_hint == "bool":
128
+ return {"type": "boolean"}
129
+ elif type_hint.startswith("List"):
130
+ return {"type": "array"}
131
+ elif type_hint.startswith("Dict"):
132
+ return {"type": "object"}
133
+ else:
134
+ return {"type": "string"}
135
+
136
+ # Handle actual types
137
+ if type_hint == str:
138
+ return {"type": "string"}
139
+ elif type_hint == int:
140
+ return {"type": "integer"}
141
+ elif type_hint == float:
142
+ return {"type": "number"}
143
+ elif type_hint == bool:
144
+ return {"type": "boolean"}
145
+ elif hasattr(type_hint, "__origin__"):
146
+ # Generic types (List, Dict, etc.)
147
+ origin = type_hint.__origin__
148
+ if origin == list:
149
+ return {"type": "array"}
150
+ elif origin == dict:
151
+ return {"type": "object"}
152
+ else:
153
+ return {"type": "string"}
154
+ else:
155
+ return {"type": "string"}
156
+
157
+ @staticmethod
158
+ def _get_required_params(method) -> List[str]:
159
+ """Get list of required parameter names."""
160
+ sig = inspect.signature(method)
161
+ required = []
162
+
163
+ for param_name, param in sig.parameters.items():
164
+ # Skip 'self' and 'op' parameters
165
+ if param_name in ["self", "op", "cls"]:
166
+ continue
167
+
168
+ # Required if no default value
169
+ if param.default == inspect.Parameter.empty:
170
+ required.append(param_name)
171
+
172
+ return required
173
+
174
+ @staticmethod
175
+ def generate_schemas_for_tools(
176
+ tool_names: List[str],
177
+ operations: Optional[Dict[str, List[str]]] = None,
178
+ ) -> List[Dict[str, Any]]:
179
+ """
180
+ Generate schemas for multiple tools.
181
+
182
+ Args:
183
+ tool_names: List of tool names
184
+ operations: Optional dict mapping tool names to operations
185
+
186
+ Returns:
187
+ List of function schemas
188
+ """
189
+ schemas = []
190
+ operations = operations or {}
191
+
192
+ for tool_name in tool_names:
193
+ tool_ops = operations.get(tool_name, [None])
194
+
195
+ for op in tool_ops:
196
+ try:
197
+ schema = ToolSchemaGenerator.generate_schema(tool_name, op)
198
+ schemas.append(schema)
199
+ except Exception as e:
200
+ logger.warning(f"Failed to generate schema for {tool_name}.{op}: {e}")
201
+
202
+ return schemas
203
+
204
+
205
+ def generate_tool_schema(
206
+ tool_name: str,
207
+ operation: Optional[str] = None,
208
+ description: Optional[str] = None,
209
+ ) -> Dict[str, Any]:
210
+ """
211
+ Convenience function to generate tool schema.
212
+
213
+ Args:
214
+ tool_name: Tool name
215
+ operation: Optional operation name
216
+ description: Optional custom description
217
+
218
+ Returns:
219
+ OpenAI function schema dictionary
220
+ """
221
+ return ToolSchemaGenerator.generate_schema(tool_name, operation, description)
@@ -0,0 +1,155 @@
1
+ """
2
+ Community Domain Module
3
+
4
+ Provides agent community collaboration features including governance,
5
+ resource sharing, decision-making, and collaborative workflows.
6
+
7
+ This module enables developers to:
8
+ - Create and manage agent communities
9
+ - Facilitate agent-to-agent communication
10
+ - Share resources and knowledge between agents
11
+ - Make collective decisions through various governance models
12
+ - Run collaborative workflows and sessions
13
+
14
+ Version: 1.0.0
15
+ """
16
+
17
+ __version__ = "1.0.0"
18
+
19
+ # Core managers
20
+ from .community_manager import CommunityManager, MemberLifecycleHooks
21
+ from .community_integration import CommunityIntegration
22
+ from .decision_engine import (
23
+ DecisionEngine,
24
+ ConsensusAlgorithm,
25
+ ConflictResolutionStrategy,
26
+ )
27
+ from .resource_manager import ResourceManager
28
+ from .collaborative_workflow import CollaborativeWorkflowEngine
29
+ from .analytics import CommunityAnalytics
30
+
31
+ # Communication and context
32
+ from .communication_hub import (
33
+ CommunicationHub,
34
+ Message,
35
+ Event,
36
+ MessageType,
37
+ EventType,
38
+ )
39
+ from .shared_context_manager import (
40
+ SharedContextManager,
41
+ SharedContext,
42
+ ContextScope,
43
+ ConflictResolutionStrategy as ContextConflictStrategy,
44
+ )
45
+
46
+ # Agent adapters
47
+ from .agent_adapter import (
48
+ AgentAdapter,
49
+ StandardLLMAdapter,
50
+ CustomAgentAdapter,
51
+ AgentAdapterRegistry,
52
+ AgentCapability,
53
+ )
54
+
55
+ # Builder
56
+ from .community_builder import CommunityBuilder, builder
57
+
58
+ # Models
59
+ from .models import (
60
+ CommunityRole,
61
+ GovernanceType,
62
+ DecisionStatus,
63
+ ResourceType,
64
+ CommunityMember,
65
+ CommunityResource,
66
+ CommunityDecision,
67
+ AgentCommunity,
68
+ CollaborationSession,
69
+ )
70
+
71
+ # Exceptions
72
+ from .exceptions import (
73
+ CommunityException,
74
+ CommunityNotFoundError,
75
+ MemberNotFoundError,
76
+ ResourceNotFoundError,
77
+ DecisionNotFoundError,
78
+ AccessDeniedError,
79
+ MembershipError,
80
+ VotingError,
81
+ GovernanceError,
82
+ CollaborationError,
83
+ CommunityInitializationError,
84
+ CommunityValidationError,
85
+ QuorumNotMetError,
86
+ ConflictResolutionError,
87
+ CommunityCapacityError,
88
+ AgentAdapterError,
89
+ CommunicationError,
90
+ ContextError,
91
+ )
92
+
93
+ __all__ = [
94
+ # Version
95
+ "__version__",
96
+ # Core managers
97
+ "CommunityManager",
98
+ "CommunityIntegration",
99
+ "DecisionEngine",
100
+ "ResourceManager",
101
+ "CollaborativeWorkflowEngine",
102
+ "CommunityAnalytics",
103
+ "MemberLifecycleHooks",
104
+ # Communication and context
105
+ "CommunicationHub",
106
+ "Message",
107
+ "Event",
108
+ "MessageType",
109
+ "EventType",
110
+ "SharedContextManager",
111
+ "SharedContext",
112
+ "ContextScope",
113
+ "ContextConflictStrategy",
114
+ # Agent adapters
115
+ "AgentAdapter",
116
+ "StandardLLMAdapter",
117
+ "CustomAgentAdapter",
118
+ "AgentAdapterRegistry",
119
+ "AgentCapability",
120
+ # Builder
121
+ "CommunityBuilder",
122
+ "builder",
123
+ # Enums
124
+ "CommunityRole",
125
+ "GovernanceType",
126
+ "DecisionStatus",
127
+ "ResourceType",
128
+ "ConsensusAlgorithm",
129
+ "ConflictResolutionStrategy",
130
+ # Models
131
+ "CommunityMember",
132
+ "CommunityResource",
133
+ "CommunityDecision",
134
+ "AgentCommunity",
135
+ "CollaborationSession",
136
+ # Exceptions
137
+ "CommunityException",
138
+ "CommunityNotFoundError",
139
+ "MemberNotFoundError",
140
+ "ResourceNotFoundError",
141
+ "DecisionNotFoundError",
142
+ "AccessDeniedError",
143
+ "MembershipError",
144
+ "VotingError",
145
+ "GovernanceError",
146
+ "CollaborationError",
147
+ "CommunityInitializationError",
148
+ "CommunityValidationError",
149
+ "QuorumNotMetError",
150
+ "ConflictResolutionError",
151
+ "CommunityCapacityError",
152
+ "AgentAdapterError",
153
+ "CommunicationError",
154
+ "ContextError",
155
+ ]