aiecs 1.0.1__py3-none-any.whl → 1.7.17__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aiecs might be problematic. Click here for more details.
- aiecs/__init__.py +13 -16
- aiecs/__main__.py +7 -7
- aiecs/aiecs_client.py +269 -75
- aiecs/application/executors/operation_executor.py +79 -54
- aiecs/application/knowledge_graph/__init__.py +7 -0
- aiecs/application/knowledge_graph/builder/__init__.py +37 -0
- aiecs/application/knowledge_graph/builder/data_quality.py +302 -0
- aiecs/application/knowledge_graph/builder/data_reshaping.py +293 -0
- aiecs/application/knowledge_graph/builder/document_builder.py +369 -0
- aiecs/application/knowledge_graph/builder/graph_builder.py +490 -0
- aiecs/application/knowledge_graph/builder/import_optimizer.py +396 -0
- aiecs/application/knowledge_graph/builder/schema_inference.py +462 -0
- aiecs/application/knowledge_graph/builder/schema_mapping.py +563 -0
- aiecs/application/knowledge_graph/builder/structured_pipeline.py +1384 -0
- aiecs/application/knowledge_graph/builder/text_chunker.py +317 -0
- aiecs/application/knowledge_graph/extractors/__init__.py +27 -0
- aiecs/application/knowledge_graph/extractors/base.py +98 -0
- aiecs/application/knowledge_graph/extractors/llm_entity_extractor.py +422 -0
- aiecs/application/knowledge_graph/extractors/llm_relation_extractor.py +347 -0
- aiecs/application/knowledge_graph/extractors/ner_entity_extractor.py +241 -0
- aiecs/application/knowledge_graph/fusion/__init__.py +78 -0
- aiecs/application/knowledge_graph/fusion/ab_testing.py +395 -0
- aiecs/application/knowledge_graph/fusion/abbreviation_expander.py +327 -0
- aiecs/application/knowledge_graph/fusion/alias_index.py +597 -0
- aiecs/application/knowledge_graph/fusion/alias_matcher.py +384 -0
- aiecs/application/knowledge_graph/fusion/cache_coordinator.py +343 -0
- aiecs/application/knowledge_graph/fusion/entity_deduplicator.py +433 -0
- aiecs/application/knowledge_graph/fusion/entity_linker.py +511 -0
- aiecs/application/knowledge_graph/fusion/evaluation_dataset.py +240 -0
- aiecs/application/knowledge_graph/fusion/knowledge_fusion.py +632 -0
- aiecs/application/knowledge_graph/fusion/matching_config.py +489 -0
- aiecs/application/knowledge_graph/fusion/name_normalizer.py +352 -0
- aiecs/application/knowledge_graph/fusion/relation_deduplicator.py +183 -0
- aiecs/application/knowledge_graph/fusion/semantic_name_matcher.py +464 -0
- aiecs/application/knowledge_graph/fusion/similarity_pipeline.py +534 -0
- aiecs/application/knowledge_graph/pattern_matching/__init__.py +21 -0
- aiecs/application/knowledge_graph/pattern_matching/pattern_matcher.py +342 -0
- aiecs/application/knowledge_graph/pattern_matching/query_executor.py +366 -0
- aiecs/application/knowledge_graph/profiling/__init__.py +12 -0
- aiecs/application/knowledge_graph/profiling/query_plan_visualizer.py +195 -0
- aiecs/application/knowledge_graph/profiling/query_profiler.py +223 -0
- aiecs/application/knowledge_graph/reasoning/__init__.py +27 -0
- aiecs/application/knowledge_graph/reasoning/evidence_synthesis.py +341 -0
- aiecs/application/knowledge_graph/reasoning/inference_engine.py +500 -0
- aiecs/application/knowledge_graph/reasoning/logic_form_parser.py +163 -0
- aiecs/application/knowledge_graph/reasoning/logic_parser/__init__.py +79 -0
- aiecs/application/knowledge_graph/reasoning/logic_parser/ast_builder.py +513 -0
- aiecs/application/knowledge_graph/reasoning/logic_parser/ast_nodes.py +913 -0
- aiecs/application/knowledge_graph/reasoning/logic_parser/ast_validator.py +866 -0
- aiecs/application/knowledge_graph/reasoning/logic_parser/error_handler.py +475 -0
- aiecs/application/knowledge_graph/reasoning/logic_parser/parser.py +396 -0
- aiecs/application/knowledge_graph/reasoning/logic_parser/query_context.py +208 -0
- aiecs/application/knowledge_graph/reasoning/logic_query_integration.py +170 -0
- aiecs/application/knowledge_graph/reasoning/query_planner.py +855 -0
- aiecs/application/knowledge_graph/reasoning/reasoning_engine.py +518 -0
- aiecs/application/knowledge_graph/retrieval/__init__.py +27 -0
- aiecs/application/knowledge_graph/retrieval/query_intent_classifier.py +211 -0
- aiecs/application/knowledge_graph/retrieval/retrieval_strategies.py +592 -0
- aiecs/application/knowledge_graph/retrieval/strategy_types.py +23 -0
- aiecs/application/knowledge_graph/search/__init__.py +59 -0
- aiecs/application/knowledge_graph/search/hybrid_search.py +457 -0
- aiecs/application/knowledge_graph/search/reranker.py +293 -0
- aiecs/application/knowledge_graph/search/reranker_strategies.py +535 -0
- aiecs/application/knowledge_graph/search/text_similarity.py +392 -0
- aiecs/application/knowledge_graph/traversal/__init__.py +15 -0
- aiecs/application/knowledge_graph/traversal/enhanced_traversal.py +305 -0
- aiecs/application/knowledge_graph/traversal/path_scorer.py +271 -0
- aiecs/application/knowledge_graph/validators/__init__.py +13 -0
- aiecs/application/knowledge_graph/validators/relation_validator.py +239 -0
- aiecs/application/knowledge_graph/visualization/__init__.py +11 -0
- aiecs/application/knowledge_graph/visualization/graph_visualizer.py +313 -0
- aiecs/common/__init__.py +9 -0
- aiecs/common/knowledge_graph/__init__.py +17 -0
- aiecs/common/knowledge_graph/runnable.py +471 -0
- aiecs/config/__init__.py +20 -5
- aiecs/config/config.py +762 -31
- aiecs/config/graph_config.py +131 -0
- aiecs/config/tool_config.py +435 -0
- aiecs/core/__init__.py +29 -13
- aiecs/core/interface/__init__.py +2 -2
- aiecs/core/interface/execution_interface.py +22 -22
- aiecs/core/interface/storage_interface.py +37 -88
- aiecs/core/registry/__init__.py +31 -0
- aiecs/core/registry/service_registry.py +92 -0
- aiecs/domain/__init__.py +270 -1
- aiecs/domain/agent/__init__.py +191 -0
- aiecs/domain/agent/base_agent.py +3949 -0
- aiecs/domain/agent/exceptions.py +99 -0
- aiecs/domain/agent/graph_aware_mixin.py +569 -0
- aiecs/domain/agent/hybrid_agent.py +1731 -0
- aiecs/domain/agent/integration/__init__.py +29 -0
- aiecs/domain/agent/integration/context_compressor.py +216 -0
- aiecs/domain/agent/integration/context_engine_adapter.py +587 -0
- aiecs/domain/agent/integration/protocols.py +281 -0
- aiecs/domain/agent/integration/retry_policy.py +218 -0
- aiecs/domain/agent/integration/role_config.py +213 -0
- aiecs/domain/agent/knowledge_aware_agent.py +1892 -0
- aiecs/domain/agent/lifecycle.py +291 -0
- aiecs/domain/agent/llm_agent.py +692 -0
- aiecs/domain/agent/memory/__init__.py +12 -0
- aiecs/domain/agent/memory/conversation.py +1124 -0
- aiecs/domain/agent/migration/__init__.py +14 -0
- aiecs/domain/agent/migration/conversion.py +163 -0
- aiecs/domain/agent/migration/legacy_wrapper.py +86 -0
- aiecs/domain/agent/models.py +894 -0
- aiecs/domain/agent/observability.py +479 -0
- aiecs/domain/agent/persistence.py +449 -0
- aiecs/domain/agent/prompts/__init__.py +29 -0
- aiecs/domain/agent/prompts/builder.py +159 -0
- aiecs/domain/agent/prompts/formatters.py +187 -0
- aiecs/domain/agent/prompts/template.py +255 -0
- aiecs/domain/agent/registry.py +253 -0
- aiecs/domain/agent/tool_agent.py +444 -0
- aiecs/domain/agent/tools/__init__.py +15 -0
- aiecs/domain/agent/tools/schema_generator.py +377 -0
- aiecs/domain/community/__init__.py +155 -0
- aiecs/domain/community/agent_adapter.py +469 -0
- aiecs/domain/community/analytics.py +432 -0
- aiecs/domain/community/collaborative_workflow.py +648 -0
- aiecs/domain/community/communication_hub.py +634 -0
- aiecs/domain/community/community_builder.py +320 -0
- aiecs/domain/community/community_integration.py +796 -0
- aiecs/domain/community/community_manager.py +803 -0
- aiecs/domain/community/decision_engine.py +849 -0
- aiecs/domain/community/exceptions.py +231 -0
- aiecs/domain/community/models/__init__.py +33 -0
- aiecs/domain/community/models/community_models.py +234 -0
- aiecs/domain/community/resource_manager.py +461 -0
- aiecs/domain/community/shared_context_manager.py +589 -0
- aiecs/domain/context/__init__.py +40 -10
- aiecs/domain/context/context_engine.py +1910 -0
- aiecs/domain/context/conversation_models.py +87 -53
- aiecs/domain/context/graph_memory.py +582 -0
- aiecs/domain/execution/model.py +12 -4
- aiecs/domain/knowledge_graph/__init__.py +19 -0
- aiecs/domain/knowledge_graph/models/__init__.py +52 -0
- aiecs/domain/knowledge_graph/models/entity.py +148 -0
- aiecs/domain/knowledge_graph/models/evidence.py +178 -0
- aiecs/domain/knowledge_graph/models/inference_rule.py +184 -0
- aiecs/domain/knowledge_graph/models/path.py +171 -0
- aiecs/domain/knowledge_graph/models/path_pattern.py +171 -0
- aiecs/domain/knowledge_graph/models/query.py +261 -0
- aiecs/domain/knowledge_graph/models/query_plan.py +181 -0
- aiecs/domain/knowledge_graph/models/relation.py +202 -0
- aiecs/domain/knowledge_graph/schema/__init__.py +23 -0
- aiecs/domain/knowledge_graph/schema/entity_type.py +131 -0
- aiecs/domain/knowledge_graph/schema/graph_schema.py +253 -0
- aiecs/domain/knowledge_graph/schema/property_schema.py +143 -0
- aiecs/domain/knowledge_graph/schema/relation_type.py +163 -0
- aiecs/domain/knowledge_graph/schema/schema_manager.py +691 -0
- aiecs/domain/knowledge_graph/schema/type_enums.py +209 -0
- aiecs/domain/task/dsl_processor.py +172 -56
- aiecs/domain/task/model.py +20 -8
- aiecs/domain/task/task_context.py +27 -24
- aiecs/infrastructure/__init__.py +0 -2
- aiecs/infrastructure/graph_storage/__init__.py +11 -0
- aiecs/infrastructure/graph_storage/base.py +837 -0
- aiecs/infrastructure/graph_storage/batch_operations.py +458 -0
- aiecs/infrastructure/graph_storage/cache.py +424 -0
- aiecs/infrastructure/graph_storage/distributed.py +223 -0
- aiecs/infrastructure/graph_storage/error_handling.py +380 -0
- aiecs/infrastructure/graph_storage/graceful_degradation.py +294 -0
- aiecs/infrastructure/graph_storage/health_checks.py +378 -0
- aiecs/infrastructure/graph_storage/in_memory.py +1197 -0
- aiecs/infrastructure/graph_storage/index_optimization.py +446 -0
- aiecs/infrastructure/graph_storage/lazy_loading.py +431 -0
- aiecs/infrastructure/graph_storage/metrics.py +344 -0
- aiecs/infrastructure/graph_storage/migration.py +400 -0
- aiecs/infrastructure/graph_storage/pagination.py +483 -0
- aiecs/infrastructure/graph_storage/performance_monitoring.py +456 -0
- aiecs/infrastructure/graph_storage/postgres.py +1563 -0
- aiecs/infrastructure/graph_storage/property_storage.py +353 -0
- aiecs/infrastructure/graph_storage/protocols.py +76 -0
- aiecs/infrastructure/graph_storage/query_optimizer.py +642 -0
- aiecs/infrastructure/graph_storage/schema_cache.py +290 -0
- aiecs/infrastructure/graph_storage/sqlite.py +1373 -0
- aiecs/infrastructure/graph_storage/streaming.py +487 -0
- aiecs/infrastructure/graph_storage/tenant.py +412 -0
- aiecs/infrastructure/messaging/celery_task_manager.py +92 -54
- aiecs/infrastructure/messaging/websocket_manager.py +51 -35
- aiecs/infrastructure/monitoring/__init__.py +22 -0
- aiecs/infrastructure/monitoring/executor_metrics.py +45 -11
- aiecs/infrastructure/monitoring/global_metrics_manager.py +212 -0
- aiecs/infrastructure/monitoring/structured_logger.py +3 -7
- aiecs/infrastructure/monitoring/tracing_manager.py +63 -35
- aiecs/infrastructure/persistence/__init__.py +14 -1
- aiecs/infrastructure/persistence/context_engine_client.py +184 -0
- aiecs/infrastructure/persistence/database_manager.py +67 -43
- aiecs/infrastructure/persistence/file_storage.py +180 -103
- aiecs/infrastructure/persistence/redis_client.py +74 -21
- aiecs/llm/__init__.py +73 -25
- aiecs/llm/callbacks/__init__.py +11 -0
- aiecs/llm/{custom_callbacks.py → callbacks/custom_callbacks.py} +26 -19
- aiecs/llm/client_factory.py +230 -37
- aiecs/llm/client_resolver.py +155 -0
- aiecs/llm/clients/__init__.py +38 -0
- aiecs/llm/clients/base_client.py +328 -0
- aiecs/llm/clients/google_function_calling_mixin.py +415 -0
- aiecs/llm/clients/googleai_client.py +314 -0
- aiecs/llm/clients/openai_client.py +158 -0
- aiecs/llm/clients/openai_compatible_mixin.py +367 -0
- aiecs/llm/clients/vertex_client.py +1186 -0
- aiecs/llm/clients/xai_client.py +201 -0
- aiecs/llm/config/__init__.py +51 -0
- aiecs/llm/config/config_loader.py +272 -0
- aiecs/llm/config/config_validator.py +206 -0
- aiecs/llm/config/model_config.py +143 -0
- aiecs/llm/protocols.py +149 -0
- aiecs/llm/utils/__init__.py +10 -0
- aiecs/llm/utils/validate_config.py +89 -0
- aiecs/main.py +140 -121
- aiecs/scripts/aid/VERSION_MANAGEMENT.md +138 -0
- aiecs/scripts/aid/__init__.py +19 -0
- aiecs/scripts/aid/module_checker.py +499 -0
- aiecs/scripts/aid/version_manager.py +235 -0
- aiecs/scripts/{DEPENDENCY_SYSTEM_SUMMARY.md → dependance_check/DEPENDENCY_SYSTEM_SUMMARY.md} +1 -0
- aiecs/scripts/{README_DEPENDENCY_CHECKER.md → dependance_check/README_DEPENDENCY_CHECKER.md} +1 -0
- aiecs/scripts/dependance_check/__init__.py +15 -0
- aiecs/scripts/dependance_check/dependency_checker.py +1835 -0
- aiecs/scripts/{dependency_fixer.py → dependance_check/dependency_fixer.py} +192 -90
- aiecs/scripts/{download_nlp_data.py → dependance_check/download_nlp_data.py} +203 -71
- aiecs/scripts/dependance_patch/__init__.py +7 -0
- aiecs/scripts/dependance_patch/fix_weasel/__init__.py +11 -0
- aiecs/scripts/{fix_weasel_validator.py → dependance_patch/fix_weasel/fix_weasel_validator.py} +21 -14
- aiecs/scripts/{patch_weasel_library.sh → dependance_patch/fix_weasel/patch_weasel_library.sh} +1 -1
- aiecs/scripts/knowledge_graph/__init__.py +3 -0
- aiecs/scripts/knowledge_graph/run_threshold_experiments.py +212 -0
- aiecs/scripts/migrations/multi_tenancy/README.md +142 -0
- aiecs/scripts/tools_develop/README.md +671 -0
- aiecs/scripts/tools_develop/README_CONFIG_CHECKER.md +273 -0
- aiecs/scripts/tools_develop/TOOLS_CONFIG_GUIDE.md +1287 -0
- aiecs/scripts/tools_develop/TOOL_AUTO_DISCOVERY.md +234 -0
- aiecs/scripts/tools_develop/__init__.py +21 -0
- aiecs/scripts/tools_develop/check_all_tools_config.py +548 -0
- aiecs/scripts/tools_develop/check_type_annotations.py +257 -0
- aiecs/scripts/tools_develop/pre-commit-schema-coverage.sh +66 -0
- aiecs/scripts/tools_develop/schema_coverage.py +511 -0
- aiecs/scripts/tools_develop/validate_tool_schemas.py +475 -0
- aiecs/scripts/tools_develop/verify_executor_config_fix.py +98 -0
- aiecs/scripts/tools_develop/verify_tools.py +352 -0
- aiecs/tasks/__init__.py +0 -1
- aiecs/tasks/worker.py +115 -47
- aiecs/tools/__init__.py +194 -72
- aiecs/tools/apisource/__init__.py +99 -0
- aiecs/tools/apisource/intelligence/__init__.py +19 -0
- aiecs/tools/apisource/intelligence/data_fusion.py +632 -0
- aiecs/tools/apisource/intelligence/query_analyzer.py +417 -0
- aiecs/tools/apisource/intelligence/search_enhancer.py +385 -0
- aiecs/tools/apisource/monitoring/__init__.py +9 -0
- aiecs/tools/apisource/monitoring/metrics.py +330 -0
- aiecs/tools/apisource/providers/__init__.py +112 -0
- aiecs/tools/apisource/providers/base.py +671 -0
- aiecs/tools/apisource/providers/census.py +397 -0
- aiecs/tools/apisource/providers/fred.py +535 -0
- aiecs/tools/apisource/providers/newsapi.py +409 -0
- aiecs/tools/apisource/providers/worldbank.py +352 -0
- aiecs/tools/apisource/reliability/__init__.py +12 -0
- aiecs/tools/apisource/reliability/error_handler.py +363 -0
- aiecs/tools/apisource/reliability/fallback_strategy.py +376 -0
- aiecs/tools/apisource/tool.py +832 -0
- aiecs/tools/apisource/utils/__init__.py +9 -0
- aiecs/tools/apisource/utils/validators.py +334 -0
- aiecs/tools/base_tool.py +415 -21
- aiecs/tools/docs/__init__.py +121 -0
- aiecs/tools/docs/ai_document_orchestrator.py +607 -0
- aiecs/tools/docs/ai_document_writer_orchestrator.py +2350 -0
- aiecs/tools/docs/content_insertion_tool.py +1320 -0
- aiecs/tools/docs/document_creator_tool.py +1464 -0
- aiecs/tools/docs/document_layout_tool.py +1160 -0
- aiecs/tools/docs/document_parser_tool.py +1016 -0
- aiecs/tools/docs/document_writer_tool.py +2008 -0
- aiecs/tools/knowledge_graph/__init__.py +17 -0
- aiecs/tools/knowledge_graph/graph_reasoning_tool.py +807 -0
- aiecs/tools/knowledge_graph/graph_search_tool.py +944 -0
- aiecs/tools/knowledge_graph/kg_builder_tool.py +524 -0
- aiecs/tools/langchain_adapter.py +300 -138
- aiecs/tools/schema_generator.py +455 -0
- aiecs/tools/search_tool/__init__.py +100 -0
- aiecs/tools/search_tool/analyzers.py +581 -0
- aiecs/tools/search_tool/cache.py +264 -0
- aiecs/tools/search_tool/constants.py +128 -0
- aiecs/tools/search_tool/context.py +224 -0
- aiecs/tools/search_tool/core.py +778 -0
- aiecs/tools/search_tool/deduplicator.py +119 -0
- aiecs/tools/search_tool/error_handler.py +242 -0
- aiecs/tools/search_tool/metrics.py +343 -0
- aiecs/tools/search_tool/rate_limiter.py +172 -0
- aiecs/tools/search_tool/schemas.py +275 -0
- aiecs/tools/statistics/__init__.py +80 -0
- aiecs/tools/statistics/ai_data_analysis_orchestrator.py +646 -0
- aiecs/tools/statistics/ai_insight_generator_tool.py +508 -0
- aiecs/tools/statistics/ai_report_orchestrator_tool.py +684 -0
- aiecs/tools/statistics/data_loader_tool.py +555 -0
- aiecs/tools/statistics/data_profiler_tool.py +638 -0
- aiecs/tools/statistics/data_transformer_tool.py +580 -0
- aiecs/tools/statistics/data_visualizer_tool.py +498 -0
- aiecs/tools/statistics/model_trainer_tool.py +507 -0
- aiecs/tools/statistics/statistical_analyzer_tool.py +472 -0
- aiecs/tools/task_tools/__init__.py +49 -36
- aiecs/tools/task_tools/chart_tool.py +200 -184
- aiecs/tools/task_tools/classfire_tool.py +268 -267
- aiecs/tools/task_tools/image_tool.py +220 -141
- aiecs/tools/task_tools/office_tool.py +226 -146
- aiecs/tools/task_tools/pandas_tool.py +477 -121
- aiecs/tools/task_tools/report_tool.py +390 -142
- aiecs/tools/task_tools/research_tool.py +149 -79
- aiecs/tools/task_tools/scraper_tool.py +339 -145
- aiecs/tools/task_tools/stats_tool.py +448 -209
- aiecs/tools/temp_file_manager.py +26 -24
- aiecs/tools/tool_executor/__init__.py +18 -16
- aiecs/tools/tool_executor/tool_executor.py +364 -52
- aiecs/utils/LLM_output_structor.py +74 -48
- aiecs/utils/__init__.py +14 -3
- aiecs/utils/base_callback.py +0 -3
- aiecs/utils/cache_provider.py +696 -0
- aiecs/utils/execution_utils.py +50 -31
- aiecs/utils/prompt_loader.py +1 -0
- aiecs/utils/token_usage_repository.py +37 -11
- aiecs/ws/socket_server.py +14 -4
- {aiecs-1.0.1.dist-info → aiecs-1.7.17.dist-info}/METADATA +52 -15
- aiecs-1.7.17.dist-info/RECORD +337 -0
- aiecs-1.7.17.dist-info/entry_points.txt +13 -0
- aiecs/config/registry.py +0 -19
- aiecs/domain/context/content_engine.py +0 -982
- aiecs/llm/base_client.py +0 -99
- aiecs/llm/openai_client.py +0 -125
- aiecs/llm/vertex_client.py +0 -186
- aiecs/llm/xai_client.py +0 -184
- aiecs/scripts/dependency_checker.py +0 -857
- aiecs/scripts/quick_dependency_check.py +0 -269
- aiecs/tools/task_tools/search_api.py +0 -7
- aiecs-1.0.1.dist-info/RECORD +0 -90
- aiecs-1.0.1.dist-info/entry_points.txt +0 -7
- /aiecs/scripts/{setup_nlp_data.sh → dependance_check/setup_nlp_data.sh} +0 -0
- /aiecs/scripts/{README_WEASEL_PATCH.md → dependance_patch/fix_weasel/README_WEASEL_PATCH.md} +0 -0
- /aiecs/scripts/{fix_weasel_validator.sh → dependance_patch/fix_weasel/fix_weasel_validator.sh} +0 -0
- /aiecs/scripts/{run_weasel_patch.sh → dependance_patch/fix_weasel/run_weasel_patch.sh} +0 -0
- {aiecs-1.0.1.dist-info → aiecs-1.7.17.dist-info}/WHEEL +0 -0
- {aiecs-1.0.1.dist-info → aiecs-1.7.17.dist-info}/licenses/LICENSE +0 -0
- {aiecs-1.0.1.dist-info → aiecs-1.7.17.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,377 @@
|
|
|
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, Type, Tuple
|
|
10
|
+
from pydantic import BaseModel
|
|
11
|
+
from aiecs.tools import get_tool, BaseTool
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ToolSchemaGenerator:
|
|
17
|
+
"""
|
|
18
|
+
Generates OpenAI-style function calling schemas from AIECS tools.
|
|
19
|
+
|
|
20
|
+
Example:
|
|
21
|
+
generator = ToolSchemaGenerator()
|
|
22
|
+
schema = generator.generate_schema("search", "search_web")
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def generate_schema(
|
|
27
|
+
tool_name: str,
|
|
28
|
+
operation: Optional[str] = None,
|
|
29
|
+
description: Optional[str] = None,
|
|
30
|
+
) -> Dict[str, Any]:
|
|
31
|
+
"""
|
|
32
|
+
Generate OpenAI function schema for a tool operation.
|
|
33
|
+
|
|
34
|
+
This method prioritizes Pydantic schemas from BaseTool for accurate
|
|
35
|
+
parameter descriptions and types.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
tool_name: Tool name
|
|
39
|
+
operation: Optional operation name
|
|
40
|
+
description: Optional custom description
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
OpenAI function schema dictionary
|
|
44
|
+
"""
|
|
45
|
+
try:
|
|
46
|
+
tool = get_tool(tool_name)
|
|
47
|
+
except Exception as e:
|
|
48
|
+
logger.error(f"Failed to get tool {tool_name}: {e}")
|
|
49
|
+
raise
|
|
50
|
+
|
|
51
|
+
# Generate function name
|
|
52
|
+
if operation:
|
|
53
|
+
function_name = f"{tool_name}_{operation}"
|
|
54
|
+
else:
|
|
55
|
+
function_name = tool_name
|
|
56
|
+
|
|
57
|
+
# Get operation method if specified
|
|
58
|
+
if operation:
|
|
59
|
+
if not hasattr(tool, operation):
|
|
60
|
+
raise ValueError(f"Tool {tool_name} has no operation '{operation}'")
|
|
61
|
+
method = getattr(tool, operation)
|
|
62
|
+
else:
|
|
63
|
+
# Default to 'run' method
|
|
64
|
+
method = getattr(tool, "run", None)
|
|
65
|
+
if method is None:
|
|
66
|
+
raise ValueError(f"Tool {tool_name} has no 'run' method")
|
|
67
|
+
|
|
68
|
+
# Try to get Pydantic schema from BaseTool first
|
|
69
|
+
schema_class = None
|
|
70
|
+
if isinstance(tool, BaseTool) and hasattr(tool, "_schemas"):
|
|
71
|
+
schema_class = tool._schemas.get(operation)
|
|
72
|
+
|
|
73
|
+
# Extract parameters - prefer Pydantic schema if available
|
|
74
|
+
if schema_class:
|
|
75
|
+
parameters, required = ToolSchemaGenerator._extract_from_pydantic_schema(schema_class)
|
|
76
|
+
# Get description from schema class docstring or method docstring
|
|
77
|
+
if not description:
|
|
78
|
+
description = ToolSchemaGenerator._get_description(schema_class, method)
|
|
79
|
+
else:
|
|
80
|
+
# Fallback to method signature inspection
|
|
81
|
+
parameters = ToolSchemaGenerator._extract_parameters(method)
|
|
82
|
+
required = ToolSchemaGenerator._get_required_params(method)
|
|
83
|
+
if not description:
|
|
84
|
+
description = ToolSchemaGenerator._get_description(None, method) or f"{tool_name} tool"
|
|
85
|
+
|
|
86
|
+
# Build schema
|
|
87
|
+
schema = {
|
|
88
|
+
"name": function_name,
|
|
89
|
+
"description": description,
|
|
90
|
+
"parameters": {
|
|
91
|
+
"type": "object",
|
|
92
|
+
"properties": parameters,
|
|
93
|
+
"required": required,
|
|
94
|
+
},
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return schema
|
|
98
|
+
|
|
99
|
+
@staticmethod
|
|
100
|
+
def _extract_parameters(method) -> Dict[str, Dict[str, Any]]:
|
|
101
|
+
"""Extract parameter schemas from method."""
|
|
102
|
+
sig = inspect.signature(method)
|
|
103
|
+
parameters = {}
|
|
104
|
+
|
|
105
|
+
for param_name, param in sig.parameters.items():
|
|
106
|
+
# Skip 'self' and 'op' parameters
|
|
107
|
+
if param_name in ["self", "op", "cls"]:
|
|
108
|
+
continue
|
|
109
|
+
|
|
110
|
+
param_schema = ToolSchemaGenerator._param_to_schema(param_name, param)
|
|
111
|
+
if param_schema:
|
|
112
|
+
parameters[param_name] = param_schema
|
|
113
|
+
|
|
114
|
+
return parameters
|
|
115
|
+
|
|
116
|
+
@staticmethod
|
|
117
|
+
def _param_to_schema(param_name: str, param: inspect.Parameter) -> Optional[Dict[str, Any]]:
|
|
118
|
+
"""Convert parameter to JSON schema."""
|
|
119
|
+
schema: Dict[str, Any] = {}
|
|
120
|
+
|
|
121
|
+
# Try to infer type from annotation
|
|
122
|
+
if param.annotation != inspect.Parameter.empty:
|
|
123
|
+
schema.update(ToolSchemaGenerator._type_to_schema(param.annotation))
|
|
124
|
+
|
|
125
|
+
# Add default if present
|
|
126
|
+
if param.default != inspect.Parameter.empty:
|
|
127
|
+
schema["default"] = param.default
|
|
128
|
+
|
|
129
|
+
# If no type info, default to string
|
|
130
|
+
if "type" not in schema:
|
|
131
|
+
schema["type"] = "string"
|
|
132
|
+
|
|
133
|
+
return schema
|
|
134
|
+
|
|
135
|
+
@staticmethod
|
|
136
|
+
def _type_to_schema(type_hint) -> Dict[str, Any]:
|
|
137
|
+
"""Convert Python type hint to JSON schema type."""
|
|
138
|
+
# Handle string annotations
|
|
139
|
+
if isinstance(type_hint, str):
|
|
140
|
+
if type_hint == "str":
|
|
141
|
+
return {"type": "string"}
|
|
142
|
+
elif type_hint == "int":
|
|
143
|
+
return {"type": "integer"}
|
|
144
|
+
elif type_hint == "float":
|
|
145
|
+
return {"type": "number"}
|
|
146
|
+
elif type_hint == "bool":
|
|
147
|
+
return {"type": "boolean"}
|
|
148
|
+
elif type_hint.startswith("List"):
|
|
149
|
+
return {"type": "array"}
|
|
150
|
+
elif type_hint.startswith("Dict"):
|
|
151
|
+
return {"type": "object"}
|
|
152
|
+
else:
|
|
153
|
+
return {"type": "string"}
|
|
154
|
+
|
|
155
|
+
# Handle actual types
|
|
156
|
+
if type_hint == str:
|
|
157
|
+
return {"type": "string"}
|
|
158
|
+
elif type_hint == int:
|
|
159
|
+
return {"type": "integer"}
|
|
160
|
+
elif type_hint == float:
|
|
161
|
+
return {"type": "number"}
|
|
162
|
+
elif type_hint == bool:
|
|
163
|
+
return {"type": "boolean"}
|
|
164
|
+
elif hasattr(type_hint, "__origin__"):
|
|
165
|
+
# Generic types (List, Dict, etc.)
|
|
166
|
+
origin = type_hint.__origin__
|
|
167
|
+
if origin == list:
|
|
168
|
+
return {"type": "array"}
|
|
169
|
+
elif origin == dict:
|
|
170
|
+
return {"type": "object"}
|
|
171
|
+
else:
|
|
172
|
+
return {"type": "string"}
|
|
173
|
+
else:
|
|
174
|
+
return {"type": "string"}
|
|
175
|
+
|
|
176
|
+
@staticmethod
|
|
177
|
+
def _get_required_params(method) -> List[str]:
|
|
178
|
+
"""Get list of required parameter names."""
|
|
179
|
+
sig = inspect.signature(method)
|
|
180
|
+
required = []
|
|
181
|
+
|
|
182
|
+
for param_name, param in sig.parameters.items():
|
|
183
|
+
# Skip 'self' and 'op' parameters
|
|
184
|
+
if param_name in ["self", "op", "cls"]:
|
|
185
|
+
continue
|
|
186
|
+
|
|
187
|
+
# Required if no default value
|
|
188
|
+
if param.default == inspect.Parameter.empty:
|
|
189
|
+
required.append(param_name)
|
|
190
|
+
|
|
191
|
+
return required
|
|
192
|
+
|
|
193
|
+
@staticmethod
|
|
194
|
+
def _extract_from_pydantic_schema(schema_class: Type[BaseModel]) -> Tuple[Dict[str, Dict[str, Any]], List[str]]:
|
|
195
|
+
"""
|
|
196
|
+
Extract parameters from Pydantic schema class.
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
schema_class: Pydantic BaseModel class
|
|
200
|
+
|
|
201
|
+
Returns:
|
|
202
|
+
Tuple of (properties dict, required fields list)
|
|
203
|
+
"""
|
|
204
|
+
properties = {}
|
|
205
|
+
required = []
|
|
206
|
+
|
|
207
|
+
if not hasattr(schema_class, "model_fields"):
|
|
208
|
+
return properties, required
|
|
209
|
+
|
|
210
|
+
# Import PydanticUndefined for v2 compatibility
|
|
211
|
+
try:
|
|
212
|
+
from pydantic_core import PydanticUndefined
|
|
213
|
+
except ImportError:
|
|
214
|
+
PydanticUndefined = type(None) # Fallback for Pydantic v1
|
|
215
|
+
|
|
216
|
+
for field_name, field_info in schema_class.model_fields.items():
|
|
217
|
+
# Build property schema
|
|
218
|
+
prop_schema: Dict[str, Any] = {}
|
|
219
|
+
|
|
220
|
+
# Get type
|
|
221
|
+
field_type = field_info.annotation
|
|
222
|
+
prop_schema.update(ToolSchemaGenerator._type_to_schema(field_type))
|
|
223
|
+
|
|
224
|
+
# Get description from Field
|
|
225
|
+
if hasattr(field_info, "description") and field_info.description:
|
|
226
|
+
prop_schema["description"] = field_info.description
|
|
227
|
+
|
|
228
|
+
# Check if required using Pydantic v2 API (preferred)
|
|
229
|
+
if hasattr(field_info, "is_required") and callable(field_info.is_required):
|
|
230
|
+
if field_info.is_required():
|
|
231
|
+
required.append(field_name)
|
|
232
|
+
elif field_info.default is not None and field_info.default is not PydanticUndefined:
|
|
233
|
+
prop_schema["default"] = field_info.default
|
|
234
|
+
else:
|
|
235
|
+
# Fallback for Pydantic v1
|
|
236
|
+
if field_info.default is None or field_info.default == inspect.Parameter.empty:
|
|
237
|
+
required.append(field_name)
|
|
238
|
+
else:
|
|
239
|
+
prop_schema["default"] = field_info.default
|
|
240
|
+
|
|
241
|
+
properties[field_name] = prop_schema
|
|
242
|
+
|
|
243
|
+
return properties, required
|
|
244
|
+
|
|
245
|
+
@staticmethod
|
|
246
|
+
def _get_description(schema_class: Optional[Type[BaseModel]], method) -> Optional[str]:
|
|
247
|
+
"""Get description from schema class docstring or method docstring."""
|
|
248
|
+
if schema_class and schema_class.__doc__:
|
|
249
|
+
return schema_class.__doc__.strip().split("\n")[0]
|
|
250
|
+
if method and method.__doc__:
|
|
251
|
+
# Extract first line of docstring
|
|
252
|
+
doc_lines = method.__doc__.strip().split("\n")
|
|
253
|
+
if doc_lines:
|
|
254
|
+
return doc_lines[0]
|
|
255
|
+
return None
|
|
256
|
+
|
|
257
|
+
@staticmethod
|
|
258
|
+
def generate_schemas_for_tools(
|
|
259
|
+
tool_names: List[str],
|
|
260
|
+
operations: Optional[Dict[str, List[str]]] = None,
|
|
261
|
+
) -> List[Dict[str, Any]]:
|
|
262
|
+
"""
|
|
263
|
+
Generate schemas for multiple tools.
|
|
264
|
+
|
|
265
|
+
Args:
|
|
266
|
+
tool_names: List of tool names
|
|
267
|
+
operations: Optional dict mapping tool names to operations
|
|
268
|
+
|
|
269
|
+
Returns:
|
|
270
|
+
List of function schemas
|
|
271
|
+
"""
|
|
272
|
+
schemas = []
|
|
273
|
+
operations = operations or {}
|
|
274
|
+
|
|
275
|
+
for tool_name in tool_names:
|
|
276
|
+
tool_ops = operations.get(tool_name, [None])
|
|
277
|
+
|
|
278
|
+
for op in tool_ops:
|
|
279
|
+
try:
|
|
280
|
+
schema = ToolSchemaGenerator.generate_schema(tool_name, op)
|
|
281
|
+
schemas.append(schema)
|
|
282
|
+
except Exception as e:
|
|
283
|
+
logger.warning(f"Failed to generate schema for {tool_name}.{op}: {e}")
|
|
284
|
+
|
|
285
|
+
return schemas
|
|
286
|
+
|
|
287
|
+
@staticmethod
|
|
288
|
+
def generate_schemas_for_tool_instances(
|
|
289
|
+
tool_instances: Dict[str, BaseTool],
|
|
290
|
+
operations: Optional[Dict[str, List[str]]] = None,
|
|
291
|
+
) -> List[Dict[str, Any]]:
|
|
292
|
+
"""
|
|
293
|
+
Generate schemas for tool instances.
|
|
294
|
+
|
|
295
|
+
This method works directly with tool instances, which is useful
|
|
296
|
+
when tools are pre-configured with state.
|
|
297
|
+
|
|
298
|
+
Args:
|
|
299
|
+
tool_instances: Dict mapping tool names to BaseTool instances
|
|
300
|
+
operations: Optional dict mapping tool names to operations
|
|
301
|
+
|
|
302
|
+
Returns:
|
|
303
|
+
List of function schemas
|
|
304
|
+
"""
|
|
305
|
+
schemas = []
|
|
306
|
+
operations = operations or {}
|
|
307
|
+
|
|
308
|
+
for tool_name, tool in tool_instances.items():
|
|
309
|
+
tool_ops = operations.get(tool_name, [None])
|
|
310
|
+
|
|
311
|
+
for op in tool_ops:
|
|
312
|
+
try:
|
|
313
|
+
# Generate function name
|
|
314
|
+
if op:
|
|
315
|
+
function_name = f"{tool_name}_{op}"
|
|
316
|
+
else:
|
|
317
|
+
function_name = tool_name
|
|
318
|
+
|
|
319
|
+
# Get operation method
|
|
320
|
+
if op:
|
|
321
|
+
if not hasattr(tool, op):
|
|
322
|
+
logger.warning(f"Tool {tool_name} has no operation '{op}'")
|
|
323
|
+
continue
|
|
324
|
+
method = getattr(tool, op)
|
|
325
|
+
else:
|
|
326
|
+
method = getattr(tool, "run", None)
|
|
327
|
+
if method is None:
|
|
328
|
+
logger.warning(f"Tool {tool_name} has no 'run' method")
|
|
329
|
+
continue
|
|
330
|
+
|
|
331
|
+
# Try to get Pydantic schema from BaseTool
|
|
332
|
+
schema_class = None
|
|
333
|
+
if hasattr(tool, "_schemas"):
|
|
334
|
+
schema_class = tool._schemas.get(op)
|
|
335
|
+
|
|
336
|
+
# Extract parameters
|
|
337
|
+
if schema_class:
|
|
338
|
+
parameters, required = ToolSchemaGenerator._extract_from_pydantic_schema(schema_class)
|
|
339
|
+
description = ToolSchemaGenerator._get_description(schema_class, method)
|
|
340
|
+
else:
|
|
341
|
+
parameters = ToolSchemaGenerator._extract_parameters(method)
|
|
342
|
+
required = ToolSchemaGenerator._get_required_params(method)
|
|
343
|
+
description = ToolSchemaGenerator._get_description(None, method) or f"{tool_name} tool"
|
|
344
|
+
|
|
345
|
+
schema = {
|
|
346
|
+
"name": function_name,
|
|
347
|
+
"description": description,
|
|
348
|
+
"parameters": {
|
|
349
|
+
"type": "object",
|
|
350
|
+
"properties": parameters,
|
|
351
|
+
"required": required,
|
|
352
|
+
},
|
|
353
|
+
}
|
|
354
|
+
schemas.append(schema)
|
|
355
|
+
except Exception as e:
|
|
356
|
+
logger.warning(f"Failed to generate schema for {tool_name}.{op}: {e}")
|
|
357
|
+
|
|
358
|
+
return schemas
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
def generate_tool_schema(
|
|
362
|
+
tool_name: str,
|
|
363
|
+
operation: Optional[str] = None,
|
|
364
|
+
description: Optional[str] = None,
|
|
365
|
+
) -> Dict[str, Any]:
|
|
366
|
+
"""
|
|
367
|
+
Convenience function to generate tool schema.
|
|
368
|
+
|
|
369
|
+
Args:
|
|
370
|
+
tool_name: Tool name
|
|
371
|
+
operation: Optional operation name
|
|
372
|
+
description: Optional custom description
|
|
373
|
+
|
|
374
|
+
Returns:
|
|
375
|
+
OpenAI function schema dictionary
|
|
376
|
+
"""
|
|
377
|
+
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
|
+
]
|