kailash 0.9.8__tar.gz → 0.9.9__tar.gz
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.
- {kailash-0.9.8/src/kailash.egg-info → kailash-0.9.9}/PKG-INFO +1 -1
- {kailash-0.9.8 → kailash-0.9.9}/pyproject.toml +1 -1
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/__init__.py +1 -1
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/iterative_llm_agent.py +19 -38
- {kailash-0.9.8 → kailash-0.9.9/src/kailash.egg-info}/PKG-INFO +1 -1
- {kailash-0.9.8 → kailash-0.9.9}/LICENSE +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/MANIFEST.in +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/README.md +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/setup.cfg +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/setup.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/__main__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/access_control/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/access_control/managers.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/access_control/rule_evaluators.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/access_control.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/access_control_abac.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/adapters/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/adapters/mcp_platform_adapter.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/analysis/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/analysis/conditional_branch_analyzer.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/api/auth.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/api/custom_nodes.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/api/custom_nodes_secure.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/api/gateway.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/api/mcp_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/api/studio.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/api/workflow_api.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/channels/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/channels/api_channel.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/channels/base.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/channels/cli_channel.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/channels/event_router.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/channels/mcp_channel.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/channels/session.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/cli/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/cli/commands.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/cli/validate_imports.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/cli/validation_audit.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/client/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/client/enhanced_client.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/config/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/config/database_config.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/actors/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/actors/adaptive_pool_controller.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/actors/connection_actor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/actors/supervisor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/ml/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/ml/query_patterns.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/monitoring/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/monitoring/connection_metrics.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/optimization/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/resilience/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/resilience/bulkhead.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/resilience/circuit_breaker.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/core/resilience/health_monitor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/database/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/database/execution_pipeline.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/compliance.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/consistency.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/coordination/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/coordination/global_ordering.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/coordination/leader_election.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/coordination/partition_detector.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/coordination/raft.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/discovery.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/location.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/migration/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/migration/edge_migration_service.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/migration/edge_migrator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/monitoring/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/monitoring/edge_monitor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/prediction/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/prediction/predictive_warmer.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/cloud_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/cost_optimizer.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/docker_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/kubernetes_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/platform_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/predictive_scaler.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/resource_analyzer.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/edge/resource/resource_pools.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/gateway/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/gateway/api.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/gateway/enhanced_gateway.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/gateway/resource_resolver.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/gateway/security.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/integrations/dataflow_edge.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/manifest.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/advanced_features.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/ai_registry_server.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/auth.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/client.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/client_new.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/discovery.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/errors.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/oauth.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/protocol.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/registry_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/server.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/servers/ai_registry.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/subscriptions.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/transports.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/utils/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/utils/cache.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/utils/config.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/utils/formatters.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/mcp_server/utils/metrics.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/auth/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/auth/access_control.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/auth/auth_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/auth/exceptions.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/auth/jwt_auth.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/auth/models.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/auth/utils.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/communication/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/communication/ai_chat.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/communication/api_gateway.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/communication/events.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/communication/realtime.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/core/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/core/agent_ui.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/core/schema.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/core/workflows.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/base.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/base_models.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/enums.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/migrations.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/models.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/repositories.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/database/session_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/gateway/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/gateway/checkpoint_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/gateway/deduplicator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/gateway/durable_gateway.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/gateway/durable_request.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/gateway/event_store.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/gateway/storage_backends.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/mcp/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/mcp/client_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/middleware/mcp/enhanced_server.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/monitoring/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/monitoring/alerts.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/monitoring/metrics.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/audit_log.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/permission_check.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/role_management.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/schema.sql +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/schema_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/security_event.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/tenant_isolation.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/transaction_utils.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/admin/user_management.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/a2a.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/a2a_backup.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/agents.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/ai_providers.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/embedding_generator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/hybrid_search.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/intelligent_agent_orchestrator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/llm_agent.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/models.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/self_organizing.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/semantic_memory.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/streaming_analytics.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ai/vision_utils.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/alerts/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/alerts/base.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/alerts/discord.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/auth.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/graphql.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/http.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/monitoring.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/rate_limiting.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/rest.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/api/security.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/auth/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/auth/directory_integration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/auth/enterprise_auth_provider.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/auth/mfa.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/auth/risk_assessment.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/auth/session_management.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/auth/sso.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/base.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/base_async.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/base_cycle_aware.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/base_with_acl.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/cache/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/cache/cache.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/cache/cache_invalidation.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/cache/redis_pool_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/code/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/code/async_python.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/code/python.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/compliance/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/compliance/data_retention.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/compliance/gdpr.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/async_connection.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/async_sql.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/async_vector.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/bulk_operations.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/directory.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/event_generation.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/file_discovery.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/optimistic_locking.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/query_builder.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/query_cache.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/query_pipeline.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/query_router.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/readers.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/redis.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/retrieval.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/sharepoint_graph.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/sources.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/sql.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/streaming.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/vector_db.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/workflow_connection_pool.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/data/writers.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/base.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/cloud_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/coordination.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/docker_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/edge_data.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/edge_migration_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/edge_monitoring_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/edge_state.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/edge_warming_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/kubernetes_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/platform_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/resource_analyzer_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/resource_optimizer_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/edge/resource_scaler_node.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/enterprise/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/enterprise/audit_logger.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/enterprise/batch_processor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/enterprise/data_lineage.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/enterprise/mcp_executor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/enterprise/service_discovery.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/enterprise/tenant_assignment.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/governance.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/logic/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/logic/async_operations.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/logic/convergence.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/logic/intelligent_merge.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/logic/loop.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/logic/operations.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/logic/workflow.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/mixins/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/mixins/event_emitter.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/mixins/mcp.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/mixins/security.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/mixins.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/connection_dashboard.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/deadlock_detector.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/health_check.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/log_processor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/metrics_collector.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/performance_anomaly.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/performance_benchmark.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/race_condition_detector.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/transaction_metrics.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/monitoring/transaction_monitor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/ports.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/advanced.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/agentic.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/conversational.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/evaluation.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/federated.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/graph.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/multimodal.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/optimized.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/privacy.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/query_processing.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/realtime.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/registry.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/router.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/similarity.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/strategies.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/rag/workflows.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/abac_evaluator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/audit_log.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/behavior_analysis.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/credential_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/rotating_credentials.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/security_event.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/security/threat_detection.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/system/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/system/command_parser.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/testing/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/testing/credential_testing.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transaction/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transaction/distributed_transaction_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transaction/saga_coordinator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transaction/saga_state_storage.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transaction/saga_step.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transaction/transaction_context.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transaction/two_phase_commit.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transform/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transform/chunkers.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transform/formatters.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/transform/processors.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/validation/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/validation/test_executor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/validation/validation_nodes.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/nodes/validation.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/planning/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/planning/dynamic_execution_planner.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/resources/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/resources/factory.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/resources/health.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/resources/reference.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/resources/registry.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/access_controlled.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/async_local.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/compatibility_reporter.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/docker.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/hierarchical_switch_executor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/local.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/parallel.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/parallel_cyclic.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/parameter_injection.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/parameter_injector.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/performance_monitor.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/runner.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/secret_provider.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/testing.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/connection_context.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/enhanced_error_formatter.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/error_categorizer.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/import_validator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/metrics.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/performance.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/runtime/validation/suggestion_engine.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/sdk_exceptions.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/security.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/servers/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/servers/durable_workflow_server.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/servers/enterprise_workflow_server.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/servers/gateway.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/servers/workflow_server.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/testing/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/testing/async_test_case.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/testing/async_utils.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/testing/fixtures.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/testing/mock_registry.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/metrics_collector.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/models.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/storage/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/storage/base.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/storage/database.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/tracking/storage/filesystem.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/data_paths.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/data_validation.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/export.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/migrations/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/migrations/generator.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/migrations/models.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/migrations/runner.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/resource_manager.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/secure_logging.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/utils/templates.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/visualization/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/visualization/api.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/visualization/dashboard.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/visualization/performance.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/visualization/reports.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/__init__.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/async_builder.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/async_patterns.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/builder.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/contracts.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/convergence.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cycle_analyzer.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cycle_builder.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cycle_config.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cycle_debugger.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cycle_exceptions.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cycle_profiler.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cycle_state.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/cyclic_runner.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/edge_infrastructure.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/graph.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/input_handling.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/mermaid_visualizer.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/migration.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/mock_registry.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/resilience.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/runner.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/safety.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/state.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/templates.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/type_inference.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/validation.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash/workflow/visualization.py +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash.egg-info/SOURCES.txt +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash.egg-info/dependency_links.txt +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash.egg-info/entry_points.txt +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash.egg-info/not-zip-safe +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash.egg-info/requires.txt +0 -0
- {kailash-0.9.8 → kailash-0.9.9}/src/kailash.egg-info/top_level.txt +0 -0
@@ -94,41 +94,37 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
94
94
|
Key Features:
|
95
95
|
- Progressive MCP discovery without pre-configuration
|
96
96
|
- 6-phase iterative process (Discovery → Planning → Execution → Reflection → Convergence → Synthesis)
|
97
|
-
-
|
97
|
+
- Real MCP tool execution with fallback to LLM capabilities
|
98
98
|
- Semantic tool understanding and capability mapping
|
99
99
|
- Adaptive strategy based on iteration results
|
100
100
|
- Smart convergence criteria and resource management
|
101
|
-
- Configurable execution modes (real MCP vs mock for testing)
|
102
101
|
|
103
102
|
Examples:
|
104
|
-
>>> # Basic iterative agent
|
103
|
+
>>> # Basic iterative agent execution
|
105
104
|
>>> agent = IterativeLLMAgentNode()
|
106
105
|
>>> result = agent.execute(
|
107
106
|
... messages=[{"role": "user", "content": "Find and analyze healthcare AI trends"}],
|
108
107
|
... mcp_servers=["http://localhost:8080"],
|
109
|
-
... max_iterations=3
|
110
|
-
... use_real_mcp=True # Enables real MCP tool execution
|
108
|
+
... max_iterations=3
|
111
109
|
... )
|
112
110
|
|
113
|
-
>>> # Advanced iterative agent with custom convergence
|
111
|
+
>>> # Advanced iterative agent with custom convergence
|
114
112
|
>>> result = agent.execute(
|
115
113
|
... messages=[{"role": "user", "content": "Research and recommend AI implementation strategy"}],
|
116
114
|
... mcp_servers=["http://ai-registry:8080", "http://knowledge-base:8081"],
|
117
115
|
... max_iterations=5,
|
118
116
|
... discovery_mode="semantic",
|
119
|
-
... use_real_mcp=True, # Use real MCP tools
|
120
117
|
... convergence_criteria={
|
121
118
|
... "goal_satisfaction": {"threshold": 0.9},
|
122
119
|
... "diminishing_returns": {"min_improvement": 0.1}
|
123
120
|
... }
|
124
121
|
... )
|
125
122
|
|
126
|
-
>>> #
|
123
|
+
>>> # Simple execution example
|
127
124
|
>>> result = agent.execute(
|
128
125
|
... messages=[{"role": "user", "content": "Test query"}],
|
129
126
|
... mcp_servers=["http://localhost:8080"],
|
130
|
-
... max_iterations=2
|
131
|
-
... use_real_mcp=False # Uses mock execution for testing
|
127
|
+
... max_iterations=2
|
132
128
|
... )
|
133
129
|
"""
|
134
130
|
|
@@ -232,18 +228,16 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
232
228
|
default=300,
|
233
229
|
description="Timeout for each iteration in seconds",
|
234
230
|
),
|
235
|
-
# MCP Execution Control
|
236
|
-
"use_real_mcp": NodeParameter(
|
237
|
-
name="use_real_mcp",
|
238
|
-
type=bool,
|
239
|
-
required=False,
|
240
|
-
default=True,
|
241
|
-
description="Use real MCP tool execution instead of mock execution",
|
242
|
-
),
|
243
231
|
}
|
244
232
|
|
245
233
|
# Merge base parameters with iterative parameters
|
246
234
|
base_params.update(iterative_params)
|
235
|
+
|
236
|
+
# Remove deprecated mock-related parameters since this node always uses real execution
|
237
|
+
deprecated_params = ["use_real_mcp", "mock_mode"]
|
238
|
+
for param_name in deprecated_params:
|
239
|
+
base_params.pop(param_name, None)
|
240
|
+
|
247
241
|
return base_params
|
248
242
|
|
249
243
|
def run(self, **kwargs) -> dict[str, Any]:
|
@@ -582,7 +576,7 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
582
576
|
self, server_config: Any, budget: dict[str, Any]
|
583
577
|
) -> list[dict[str, Any]]:
|
584
578
|
"""Discover resources from a specific MCP server."""
|
585
|
-
#
|
579
|
+
# Default implementation - provides basic resource discovery
|
586
580
|
try:
|
587
581
|
server_id = (
|
588
582
|
server_config
|
@@ -591,8 +585,8 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
591
585
|
)
|
592
586
|
max_resources = budget.get("max_resources", 50)
|
593
587
|
|
594
|
-
#
|
595
|
-
|
588
|
+
# Default discovered resources
|
589
|
+
default_resources = [
|
596
590
|
{
|
597
591
|
"uri": f"{server_id}/resource/data/overview",
|
598
592
|
"name": "Data Overview",
|
@@ -607,7 +601,7 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
607
601
|
},
|
608
602
|
]
|
609
603
|
|
610
|
-
return
|
604
|
+
return default_resources[:max_resources]
|
611
605
|
|
612
606
|
except Exception as e:
|
613
607
|
self.logger.debug(f"Resource discovery failed: {e}")
|
@@ -669,7 +663,7 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
669
663
|
domain=domain,
|
670
664
|
complexity=complexity,
|
671
665
|
dependencies=[],
|
672
|
-
confidence=0.8, #
|
666
|
+
confidence=0.8, # Default confidence estimate
|
673
667
|
server_source=server_id,
|
674
668
|
)
|
675
669
|
|
@@ -779,9 +773,6 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
779
773
|
"errors": [],
|
780
774
|
}
|
781
775
|
|
782
|
-
# Check if we should use real MCP tool execution
|
783
|
-
use_real_mcp = kwargs.get("use_real_mcp", True)
|
784
|
-
|
785
776
|
# Handle direct LLM response mode
|
786
777
|
if plan.get("planning_mode") == "direct_llm":
|
787
778
|
try:
|
@@ -828,21 +819,11 @@ class IterativeLLMAgentNode(LLMAgentNode):
|
|
828
819
|
tools = step.get("tools", [])
|
829
820
|
|
830
821
|
try:
|
831
|
-
if
|
822
|
+
if tools:
|
832
823
|
# Real MCP tool execution
|
833
824
|
step_result = self._execute_tools_with_mcp(
|
834
825
|
step_num, action, tools, discoveries, kwargs
|
835
826
|
)
|
836
|
-
elif tools:
|
837
|
-
# Mock tool execution for backward compatibility
|
838
|
-
step_result = {
|
839
|
-
"step": step_num,
|
840
|
-
"action": action,
|
841
|
-
"tools_used": tools,
|
842
|
-
"output": f"Mock execution result for {action} using tools: {', '.join(tools)}",
|
843
|
-
"success": True,
|
844
|
-
"duration": 1.5,
|
845
|
-
}
|
846
827
|
else:
|
847
828
|
# No tools available, try direct LLM call for this step
|
848
829
|
self.logger.info(
|
@@ -1814,7 +1795,7 @@ provide your best analysis of the query directly.""",
|
|
1814
1795
|
"total_tools_used": total_tools_used,
|
1815
1796
|
"total_api_calls": total_api_calls,
|
1816
1797
|
"average_iteration_time": total_duration / max(len(iterations), 1),
|
1817
|
-
"estimated_cost_usd": total_api_calls * 0.01, #
|
1798
|
+
"estimated_cost_usd": total_api_calls * 0.01, # Simple cost estimation
|
1818
1799
|
}
|
1819
1800
|
|
1820
1801
|
def _phase_convergence_with_mode(
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|