kailash 0.9.18__tar.gz → 0.9.19__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.
Files changed (441) hide show
  1. {kailash-0.9.18/src/kailash.egg-info → kailash-0.9.19}/PKG-INFO +1 -1
  2. {kailash-0.9.18 → kailash-0.9.19}/pyproject.toml +1 -1
  3. {kailash-0.9.18 → kailash-0.9.19}/setup.py +1 -1
  4. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/subscriptions.py +3 -3
  5. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/async_sql.py +93 -26
  6. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/local.py +4 -1
  7. {kailash-0.9.18 → kailash-0.9.19/src/kailash.egg-info}/PKG-INFO +1 -1
  8. {kailash-0.9.18 → kailash-0.9.19}/LICENSE +0 -0
  9. {kailash-0.9.18 → kailash-0.9.19}/MANIFEST.in +0 -0
  10. {kailash-0.9.18 → kailash-0.9.19}/NOTICE +0 -0
  11. {kailash-0.9.18 → kailash-0.9.19}/README.md +0 -0
  12. {kailash-0.9.18 → kailash-0.9.19}/setup.cfg +0 -0
  13. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/__init__.py +0 -0
  14. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/__main__.py +0 -0
  15. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/access_control/__init__.py +0 -0
  16. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/access_control/managers.py +0 -0
  17. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/access_control/rule_evaluators.py +0 -0
  18. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/access_control.py +0 -0
  19. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/access_control_abac.py +0 -0
  20. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/adapters/__init__.py +0 -0
  21. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/adapters/mcp_platform_adapter.py +0 -0
  22. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/analysis/__init__.py +0 -0
  23. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/analysis/conditional_branch_analyzer.py +0 -0
  24. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/api/auth.py +0 -0
  25. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/api/custom_nodes.py +0 -0
  26. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/api/custom_nodes_secure.py +0 -0
  27. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/api/gateway.py +0 -0
  28. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/api/mcp_integration.py +0 -0
  29. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/api/studio.py +0 -0
  30. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/api/workflow_api.py +0 -0
  31. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/channels/__init__.py +0 -0
  32. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/channels/api_channel.py +0 -0
  33. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/channels/base.py +0 -0
  34. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/channels/cli_channel.py +0 -0
  35. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/channels/event_router.py +0 -0
  36. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/channels/mcp_channel.py +0 -0
  37. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/channels/session.py +0 -0
  38. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/cli/__init__.py +0 -0
  39. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/cli/commands.py +0 -0
  40. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/cli/validate_imports.py +0 -0
  41. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/cli/validation_audit.py +0 -0
  42. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/client/__init__.py +0 -0
  43. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/client/enhanced_client.py +0 -0
  44. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/config/__init__.py +0 -0
  45. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/config/database_config.py +0 -0
  46. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/actors/__init__.py +0 -0
  47. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/actors/adaptive_pool_controller.py +0 -0
  48. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/actors/connection_actor.py +0 -0
  49. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/actors/supervisor.py +0 -0
  50. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/ml/__init__.py +0 -0
  51. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/ml/query_patterns.py +0 -0
  52. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/monitoring/__init__.py +0 -0
  53. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/monitoring/connection_metrics.py +0 -0
  54. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/optimization/__init__.py +0 -0
  55. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/resilience/__init__.py +0 -0
  56. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/resilience/bulkhead.py +0 -0
  57. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/resilience/circuit_breaker.py +0 -0
  58. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/core/resilience/health_monitor.py +0 -0
  59. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/database/__init__.py +0 -0
  60. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/database/execution_pipeline.py +0 -0
  61. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/__init__.py +0 -0
  62. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/compliance.py +0 -0
  63. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/consistency.py +0 -0
  64. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/coordination/__init__.py +0 -0
  65. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/coordination/global_ordering.py +0 -0
  66. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/coordination/leader_election.py +0 -0
  67. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/coordination/partition_detector.py +0 -0
  68. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/coordination/raft.py +0 -0
  69. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/discovery.py +0 -0
  70. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/location.py +0 -0
  71. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/migration/__init__.py +0 -0
  72. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/migration/edge_migration_service.py +0 -0
  73. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/migration/edge_migrator.py +0 -0
  74. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/monitoring/__init__.py +0 -0
  75. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/monitoring/edge_monitor.py +0 -0
  76. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/prediction/__init__.py +0 -0
  77. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/prediction/predictive_warmer.py +0 -0
  78. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/__init__.py +0 -0
  79. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/cloud_integration.py +0 -0
  80. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/cost_optimizer.py +0 -0
  81. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/docker_integration.py +0 -0
  82. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/kubernetes_integration.py +0 -0
  83. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/platform_integration.py +0 -0
  84. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/predictive_scaler.py +0 -0
  85. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/resource_analyzer.py +0 -0
  86. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/edge/resource/resource_pools.py +0 -0
  87. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/gateway/__init__.py +0 -0
  88. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/gateway/api.py +0 -0
  89. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/gateway/enhanced_gateway.py +0 -0
  90. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/gateway/resource_resolver.py +0 -0
  91. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/gateway/security.py +0 -0
  92. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/integrations/dataflow_edge.py +0 -0
  93. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/manifest.py +0 -0
  94. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/__init__.py +0 -0
  95. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/advanced_features.py +0 -0
  96. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/ai_registry_server.py +0 -0
  97. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/auth.py +0 -0
  98. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/client.py +0 -0
  99. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/client_new.py +0 -0
  100. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/discovery.py +0 -0
  101. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/errors.py +0 -0
  102. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/oauth.py +0 -0
  103. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/protocol.py +0 -0
  104. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/registry_integration.py +0 -0
  105. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/server.py +0 -0
  106. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/servers/ai_registry.py +0 -0
  107. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/transports.py +0 -0
  108. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/utils/__init__.py +0 -0
  109. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/utils/cache.py +0 -0
  110. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/utils/config.py +0 -0
  111. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/utils/formatters.py +0 -0
  112. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/mcp_server/utils/metrics.py +0 -0
  113. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/__init__.py +0 -0
  114. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/auth/__init__.py +0 -0
  115. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/auth/access_control.py +0 -0
  116. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/auth/auth_manager.py +0 -0
  117. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/auth/exceptions.py +0 -0
  118. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/auth/jwt_auth.py +0 -0
  119. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/auth/models.py +0 -0
  120. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/auth/utils.py +0 -0
  121. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/communication/__init__.py +0 -0
  122. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/communication/ai_chat.py +0 -0
  123. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/communication/api_gateway.py +0 -0
  124. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/communication/events.py +0 -0
  125. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/communication/realtime.py +0 -0
  126. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/core/__init__.py +0 -0
  127. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/core/agent_ui.py +0 -0
  128. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/core/schema.py +0 -0
  129. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/core/workflows.py +0 -0
  130. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/__init__.py +0 -0
  131. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/base.py +0 -0
  132. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/base_models.py +0 -0
  133. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/enums.py +0 -0
  134. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/migrations.py +0 -0
  135. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/models.py +0 -0
  136. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/repositories.py +0 -0
  137. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/database/session_manager.py +0 -0
  138. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/gateway/__init__.py +0 -0
  139. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/gateway/checkpoint_manager.py +0 -0
  140. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/gateway/deduplicator.py +0 -0
  141. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/gateway/durable_gateway.py +0 -0
  142. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/gateway/durable_request.py +0 -0
  143. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/gateway/event_store.py +0 -0
  144. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/gateway/storage_backends.py +0 -0
  145. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/mcp/__init__.py +0 -0
  146. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/mcp/client_integration.py +0 -0
  147. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/middleware/mcp/enhanced_server.py +0 -0
  148. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/__init__.py +0 -0
  149. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/cli.py +0 -0
  150. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/compatibility_checker.py +0 -0
  151. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/configuration_validator.py +0 -0
  152. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/documentation_generator.py +0 -0
  153. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/examples/__init__.py +0 -0
  154. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/examples/complete_migration_example.py +0 -0
  155. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/migration_assistant.py +0 -0
  156. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/performance_comparator.py +0 -0
  157. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/regression_detector.py +0 -0
  158. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/tests/__init__.py +0 -0
  159. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/tests/test_compatibility_checker.py +0 -0
  160. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/tests/test_integration.py +0 -0
  161. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/tests/test_migration_assistant.py +0 -0
  162. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/migration/tests/test_performance_comparator.py +0 -0
  163. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/monitoring/__init__.py +0 -0
  164. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/monitoring/alerts.py +0 -0
  165. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/monitoring/asyncsql_metrics.py +0 -0
  166. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/monitoring/metrics.py +0 -0
  167. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/__init__.py +0 -0
  168. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/__init___original.py +0 -0
  169. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/__init__.py +0 -0
  170. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/audit_log.py +0 -0
  171. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/permission_check.py +0 -0
  172. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/role_management.py +0 -0
  173. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/schema.sql +0 -0
  174. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/schema_manager.py +0 -0
  175. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/security_event.py +0 -0
  176. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/tenant_isolation.py +0 -0
  177. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/transaction_utils.py +0 -0
  178. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/admin/user_management.py +0 -0
  179. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/__init__.py +0 -0
  180. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/a2a.py +0 -0
  181. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/a2a_backup.py +0 -0
  182. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/agents.py +0 -0
  183. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/ai_providers.py +0 -0
  184. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/embedding_generator.py +0 -0
  185. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/hybrid_search.py +0 -0
  186. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/intelligent_agent_orchestrator.py +0 -0
  187. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/iterative_llm_agent.py +0 -0
  188. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/llm_agent.py +0 -0
  189. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/models.py +0 -0
  190. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/self_organizing.py +0 -0
  191. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/semantic_memory.py +0 -0
  192. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/streaming_analytics.py +0 -0
  193. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ai/vision_utils.py +0 -0
  194. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/alerts/__init__.py +0 -0
  195. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/alerts/base.py +0 -0
  196. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/alerts/discord.py +0 -0
  197. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/__init__.py +0 -0
  198. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/auth.py +0 -0
  199. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/graphql.py +0 -0
  200. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/http.py +0 -0
  201. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/monitoring.py +0 -0
  202. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/rate_limiting.py +0 -0
  203. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/rest.py +0 -0
  204. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/api/security.py +0 -0
  205. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/auth/__init__.py +0 -0
  206. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/auth/directory_integration.py +0 -0
  207. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/auth/enterprise_auth_provider.py +0 -0
  208. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/auth/mfa.py +0 -0
  209. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/auth/risk_assessment.py +0 -0
  210. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/auth/session_management.py +0 -0
  211. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/auth/sso.py +0 -0
  212. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/base.py +0 -0
  213. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/base_async.py +0 -0
  214. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/base_cycle_aware.py +0 -0
  215. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/base_with_acl.py +0 -0
  216. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/cache/__init__.py +0 -0
  217. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/cache/cache.py +0 -0
  218. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/cache/cache_invalidation.py +0 -0
  219. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/cache/redis_pool_manager.py +0 -0
  220. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/code/__init__.py +0 -0
  221. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/code/async_python.py +0 -0
  222. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/code/python.py +0 -0
  223. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/compliance/__init__.py +0 -0
  224. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/compliance/data_retention.py +0 -0
  225. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/compliance/gdpr.py +0 -0
  226. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/__init__.py +0 -0
  227. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/async_connection.py +0 -0
  228. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/async_vector.py +0 -0
  229. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/bulk_operations.py +0 -0
  230. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/directory.py +0 -0
  231. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/event_generation.py +0 -0
  232. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/file_discovery.py +0 -0
  233. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/optimistic_locking.py +0 -0
  234. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/query_builder.py +0 -0
  235. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/query_cache.py +0 -0
  236. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/query_pipeline.py +0 -0
  237. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/query_router.py +0 -0
  238. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/readers.py +0 -0
  239. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/redis.py +0 -0
  240. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/retrieval.py +0 -0
  241. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/sharepoint_graph.py +0 -0
  242. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/sources.py +0 -0
  243. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/sql.py +0 -0
  244. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/streaming.py +0 -0
  245. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/vector_db.py +0 -0
  246. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/workflow_connection_pool.py +0 -0
  247. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/data/writers.py +0 -0
  248. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/__init__.py +0 -0
  249. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/base.py +0 -0
  250. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/cloud_node.py +0 -0
  251. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/coordination.py +0 -0
  252. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/docker_node.py +0 -0
  253. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/edge_data.py +0 -0
  254. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/edge_migration_node.py +0 -0
  255. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/edge_monitoring_node.py +0 -0
  256. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/edge_state.py +0 -0
  257. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/edge_warming_node.py +0 -0
  258. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/kubernetes_node.py +0 -0
  259. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/platform_node.py +0 -0
  260. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/resource_analyzer_node.py +0 -0
  261. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/resource_optimizer_node.py +0 -0
  262. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/edge/resource_scaler_node.py +0 -0
  263. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/enterprise/__init__.py +0 -0
  264. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/enterprise/audit_logger.py +0 -0
  265. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/enterprise/batch_processor.py +0 -0
  266. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/enterprise/data_lineage.py +0 -0
  267. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/enterprise/mcp_executor.py +0 -0
  268. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/enterprise/service_discovery.py +0 -0
  269. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/enterprise/tenant_assignment.py +0 -0
  270. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/governance.py +0 -0
  271. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/logic/__init__.py +0 -0
  272. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/logic/async_operations.py +0 -0
  273. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/logic/convergence.py +0 -0
  274. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/logic/intelligent_merge.py +0 -0
  275. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/logic/loop.py +0 -0
  276. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/logic/operations.py +0 -0
  277. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/logic/workflow.py +0 -0
  278. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/mixins/__init__.py +0 -0
  279. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/mixins/event_emitter.py +0 -0
  280. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/mixins/mcp.py +0 -0
  281. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/mixins/security.py +0 -0
  282. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/mixins.py +0 -0
  283. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/__init__.py +0 -0
  284. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/connection_dashboard.py +0 -0
  285. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/deadlock_detector.py +0 -0
  286. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/health_check.py +0 -0
  287. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/log_processor.py +0 -0
  288. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/metrics_collector.py +0 -0
  289. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/performance_anomaly.py +0 -0
  290. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/performance_benchmark.py +0 -0
  291. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/race_condition_detector.py +0 -0
  292. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/transaction_metrics.py +0 -0
  293. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/monitoring/transaction_monitor.py +0 -0
  294. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/ports.py +0 -0
  295. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/__init__.py +0 -0
  296. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/advanced.py +0 -0
  297. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/agentic.py +0 -0
  298. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/conversational.py +0 -0
  299. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/evaluation.py +0 -0
  300. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/federated.py +0 -0
  301. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/graph.py +0 -0
  302. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/multimodal.py +0 -0
  303. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/optimized.py +0 -0
  304. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/privacy.py +0 -0
  305. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/query_processing.py +0 -0
  306. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/realtime.py +0 -0
  307. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/registry.py +0 -0
  308. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/router.py +0 -0
  309. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/similarity.py +0 -0
  310. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/strategies.py +0 -0
  311. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/rag/workflows.py +0 -0
  312. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/__init__.py +0 -0
  313. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/abac_evaluator.py +0 -0
  314. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/audit_log.py +0 -0
  315. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/behavior_analysis.py +0 -0
  316. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/credential_manager.py +0 -0
  317. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/rotating_credentials.py +0 -0
  318. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/security_event.py +0 -0
  319. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/security/threat_detection.py +0 -0
  320. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/system/__init__.py +0 -0
  321. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/system/command_parser.py +0 -0
  322. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/testing/__init__.py +0 -0
  323. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/testing/credential_testing.py +0 -0
  324. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transaction/__init__.py +0 -0
  325. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transaction/distributed_transaction_manager.py +0 -0
  326. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transaction/saga_coordinator.py +0 -0
  327. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transaction/saga_state_storage.py +0 -0
  328. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transaction/saga_step.py +0 -0
  329. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transaction/transaction_context.py +0 -0
  330. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transaction/two_phase_commit.py +0 -0
  331. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transform/__init__.py +0 -0
  332. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transform/chunkers.py +0 -0
  333. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transform/formatters.py +0 -0
  334. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/transform/processors.py +0 -0
  335. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/validation/__init__.py +0 -0
  336. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/validation/test_executor.py +0 -0
  337. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/validation/validation_nodes.py +0 -0
  338. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/nodes/validation.py +0 -0
  339. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/planning/__init__.py +0 -0
  340. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/planning/dynamic_execution_planner.py +0 -0
  341. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/resources/__init__.py +0 -0
  342. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/resources/factory.py +0 -0
  343. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/resources/health.py +0 -0
  344. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/resources/reference.py +0 -0
  345. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/resources/registry.py +0 -0
  346. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/__init__.py +0 -0
  347. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/access_controlled.py +0 -0
  348. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/async_local.py +0 -0
  349. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/compatibility_reporter.py +0 -0
  350. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/docker.py +0 -0
  351. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/hierarchical_switch_executor.py +0 -0
  352. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/monitoring/__init__.py +0 -0
  353. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/monitoring/runtime_monitor.py +0 -0
  354. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/parallel.py +0 -0
  355. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/parallel_cyclic.py +0 -0
  356. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/parameter_injection.py +0 -0
  357. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/parameter_injector.py +0 -0
  358. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/performance_monitor.py +0 -0
  359. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/resource_manager.py +0 -0
  360. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/runner.py +0 -0
  361. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/secret_provider.py +0 -0
  362. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/testing.py +0 -0
  363. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/__init__.py +0 -0
  364. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/connection_context.py +0 -0
  365. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/enhanced_error_formatter.py +0 -0
  366. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/error_categorizer.py +0 -0
  367. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/import_validator.py +0 -0
  368. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/metrics.py +0 -0
  369. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/performance.py +0 -0
  370. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/runtime/validation/suggestion_engine.py +0 -0
  371. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/sdk_exceptions.py +0 -0
  372. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/security.py +0 -0
  373. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/servers/__init__.py +0 -0
  374. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/servers/durable_workflow_server.py +0 -0
  375. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/servers/enterprise_workflow_server.py +0 -0
  376. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/servers/gateway.py +0 -0
  377. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/servers/workflow_server.py +0 -0
  378. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/testing/__init__.py +0 -0
  379. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/testing/async_test_case.py +0 -0
  380. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/testing/async_utils.py +0 -0
  381. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/testing/fixtures.py +0 -0
  382. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/testing/mock_registry.py +0 -0
  383. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/__init__.py +0 -0
  384. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/manager.py +0 -0
  385. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/metrics_collector.py +0 -0
  386. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/models.py +0 -0
  387. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/storage/__init__.py +0 -0
  388. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/storage/base.py +0 -0
  389. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/storage/database.py +0 -0
  390. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/tracking/storage/filesystem.py +0 -0
  391. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/__init__.py +0 -0
  392. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/circular_dependency_detector.py +0 -0
  393. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/data_paths.py +0 -0
  394. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/data_validation.py +0 -0
  395. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/export.py +0 -0
  396. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/migrations/__init__.py +0 -0
  397. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/migrations/generator.py +0 -0
  398. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/migrations/models.py +0 -0
  399. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/migrations/runner.py +0 -0
  400. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/resource_manager.py +0 -0
  401. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/secure_logging.py +0 -0
  402. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/utils/templates.py +0 -0
  403. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/visualization/__init__.py +0 -0
  404. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/visualization/api.py +0 -0
  405. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/visualization/dashboard.py +0 -0
  406. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/visualization/performance.py +0 -0
  407. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/visualization/reports.py +0 -0
  408. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/__init__.py +0 -0
  409. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/async_builder.py +0 -0
  410. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/async_patterns.py +0 -0
  411. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/builder.py +0 -0
  412. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/contracts.py +0 -0
  413. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/convergence.py +0 -0
  414. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cycle_analyzer.py +0 -0
  415. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cycle_builder.py +0 -0
  416. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cycle_config.py +0 -0
  417. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cycle_debugger.py +0 -0
  418. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cycle_exceptions.py +0 -0
  419. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cycle_profiler.py +0 -0
  420. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cycle_state.py +0 -0
  421. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/cyclic_runner.py +0 -0
  422. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/edge_infrastructure.py +0 -0
  423. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/graph.py +0 -0
  424. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/input_handling.py +0 -0
  425. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/mermaid_visualizer.py +0 -0
  426. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/migration.py +0 -0
  427. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/mock_registry.py +0 -0
  428. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/resilience.py +0 -0
  429. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/runner.py +0 -0
  430. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/safety.py +0 -0
  431. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/state.py +0 -0
  432. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/templates.py +0 -0
  433. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/type_inference.py +0 -0
  434. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/validation.py +0 -0
  435. {kailash-0.9.18 → kailash-0.9.19}/src/kailash/workflow/visualization.py +0 -0
  436. {kailash-0.9.18 → kailash-0.9.19}/src/kailash.egg-info/SOURCES.txt +0 -0
  437. {kailash-0.9.18 → kailash-0.9.19}/src/kailash.egg-info/dependency_links.txt +0 -0
  438. {kailash-0.9.18 → kailash-0.9.19}/src/kailash.egg-info/entry_points.txt +0 -0
  439. {kailash-0.9.18 → kailash-0.9.19}/src/kailash.egg-info/not-zip-safe +0 -0
  440. {kailash-0.9.18 → kailash-0.9.19}/src/kailash.egg-info/requires.txt +0 -0
  441. {kailash-0.9.18 → kailash-0.9.19}/src/kailash.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kailash
3
- Version: 0.9.18
3
+ Version: 0.9.19
4
4
  Summary: Python SDK for the Kailash container-node architecture
5
5
  Home-page: https://github.com/integrum/kailash-python-sdk
6
6
  Author: Integrum
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "kailash"
7
- version = "0.9.18"
7
+ version = "0.9.19"
8
8
  description = "Python SDK for the Kailash container-node architecture"
9
9
  authors = [
10
10
  {name = "Integrum", email = "info@integrum.com"}
@@ -13,7 +13,7 @@ with open(os.path.join(this_directory, "README.md"), encoding="utf-8") as f:
13
13
  # Package configuration
14
14
  setup(
15
15
  name="kailash",
16
- version="0.9.18",
16
+ version="0.9.19",
17
17
  author="Integrum",
18
18
  author_email="info@integrum.com",
19
19
  description="Python SDK for the Kailash container-node architecture",
@@ -1075,9 +1075,9 @@ class ResourceSubscriptionManager:
1075
1075
  This method should be overridden or configured to fetch actual resource data.
1076
1076
  For now, it returns basic resource information from the monitored state.
1077
1077
  """
1078
- async with self._resource_monitor._lock:
1079
- if uri in self._resource_monitor._resource_states:
1080
- state = self._resource_monitor._resource_states[uri]
1078
+ async with self.resource_monitor._lock:
1079
+ if uri in self.resource_monitor._resource_states:
1080
+ state = self.resource_monitor._resource_states[uri]
1081
1081
  return {
1082
1082
  "uri": uri,
1083
1083
  "content": state.get("content", {}),
@@ -1530,15 +1530,28 @@ class SQLiteAdapter(DatabaseAdapter):
1530
1530
 
1531
1531
  if fetch_mode == FetchMode.ONE:
1532
1532
  row = await cursor.fetchone()
1533
- return self._convert_row(dict(row)) if row else None
1533
+ result = self._convert_row(dict(row)) if row else None
1534
1534
  elif fetch_mode == FetchMode.ALL:
1535
1535
  rows = await cursor.fetchall()
1536
- return [self._convert_row(dict(row)) for row in rows]
1536
+ result = [self._convert_row(dict(row)) for row in rows]
1537
1537
  elif fetch_mode == FetchMode.MANY:
1538
1538
  if not fetch_size:
1539
1539
  raise ValueError("fetch_size required for MANY mode")
1540
1540
  rows = await cursor.fetchmany(fetch_size)
1541
- return [self._convert_row(dict(row)) for row in rows]
1541
+ result = [self._convert_row(dict(row)) for row in rows]
1542
+ else:
1543
+ result = []
1544
+
1545
+ # Check if this was an INSERT and capture lastrowid for SQLite
1546
+ if query.strip().upper().startswith("INSERT") and (
1547
+ not result or result == [] or result is None
1548
+ ):
1549
+ # For INSERT without RETURNING, capture lastrowid
1550
+ lastrowid = cursor.lastrowid if hasattr(cursor, "lastrowid") else None
1551
+ if lastrowid is not None:
1552
+ return {"lastrowid": lastrowid}
1553
+
1554
+ return result
1542
1555
  else:
1543
1556
  # Create new connection for non-transactional queries
1544
1557
  if self._is_memory_db:
@@ -1557,6 +1570,19 @@ class SQLiteAdapter(DatabaseAdapter):
1557
1570
  raise ValueError("fetch_size required for MANY mode")
1558
1571
  rows = await cursor.fetchmany(fetch_size)
1559
1572
  result = [self._convert_row(dict(row)) for row in rows]
1573
+ else:
1574
+ result = []
1575
+
1576
+ # Check if this was an INSERT and capture lastrowid for SQLite
1577
+ if query.strip().upper().startswith("INSERT") and (
1578
+ not result or result == []
1579
+ ):
1580
+ # For INSERT without RETURNING, capture lastrowid
1581
+ lastrowid = (
1582
+ cursor.lastrowid if hasattr(cursor, "lastrowid") else None
1583
+ )
1584
+ if lastrowid is not None:
1585
+ result = {"lastrowid": lastrowid}
1560
1586
 
1561
1587
  # Commit for memory databases (needed for INSERT/UPDATE/DELETE)
1562
1588
  await db.commit()
@@ -1577,9 +1603,24 @@ class SQLiteAdapter(DatabaseAdapter):
1577
1603
  if not fetch_size:
1578
1604
  raise ValueError("fetch_size required for MANY mode")
1579
1605
  rows = await cursor.fetchmany(fetch_size)
1580
- return [self._convert_row(dict(row)) for row in rows]
1606
+ result = [self._convert_row(dict(row)) for row in rows]
1607
+ else:
1608
+ result = []
1581
1609
 
1582
- await db.commit()
1610
+ # Check if this was an INSERT and capture lastrowid for SQLite
1611
+ if query.strip().upper().startswith("INSERT") and (
1612
+ not result or result == []
1613
+ ):
1614
+ # For INSERT without RETURNING, capture lastrowid
1615
+ lastrowid = (
1616
+ cursor.lastrowid if hasattr(cursor, "lastrowid") else None
1617
+ )
1618
+ if lastrowid is not None:
1619
+ await db.commit() # Commit before returning
1620
+ return {"lastrowid": lastrowid}
1621
+
1622
+ await db.commit()
1623
+ return result
1583
1624
 
1584
1625
  async def execute_many(
1585
1626
  self,
@@ -3421,28 +3462,37 @@ class AsyncSQLDatabaseNode(AsyncNode):
3421
3462
  parameter_types=parameter_types,
3422
3463
  )
3423
3464
 
3424
- # Ensure all data is JSON-serializable (safety net for adapter inconsistencies)
3425
- result = self._ensure_serializable(result)
3465
+ # Check for special SQLite lastrowid result
3466
+ if isinstance(result, dict) and "lastrowid" in result:
3467
+ # This is a special SQLite INSERT result
3468
+ formatted_data = result # Keep as-is
3469
+ row_count = 1 # One row was inserted
3470
+ else:
3471
+ # Ensure all data is JSON-serializable (safety net for adapter inconsistencies)
3472
+ result = self._ensure_serializable(result)
3426
3473
 
3427
- # Format results based on requested format
3428
- formatted_data = self._format_results(result, result_format)
3474
+ # Format results based on requested format
3475
+ formatted_data = self._format_results(result, result_format)
3476
+ row_count = None # Will be calculated below
3429
3477
 
3430
3478
  # For DataFrame, we need special handling for row count
3431
- row_count = 0
3432
- if result_format == "dataframe":
3433
- try:
3434
- row_count = len(formatted_data)
3435
- except:
3436
- # If pandas isn't available, formatted_data is still a list
3479
+ if row_count is None: # Only calculate if not already set
3480
+ if result_format == "dataframe":
3481
+ try:
3482
+ row_count = len(formatted_data)
3483
+ except:
3484
+ # If pandas isn't available, formatted_data is still a list
3485
+ row_count = (
3486
+ len(result)
3487
+ if isinstance(result, list)
3488
+ else (1 if result else 0)
3489
+ )
3490
+ else:
3437
3491
  row_count = (
3438
3492
  len(result)
3439
3493
  if isinstance(result, list)
3440
3494
  else (1 if result else 0)
3441
3495
  )
3442
- else:
3443
- row_count = (
3444
- len(result) if isinstance(result, list) else (1 if result else 0)
3445
- )
3446
3496
 
3447
3497
  # Extract column names if available
3448
3498
  columns = []
@@ -4677,13 +4727,30 @@ class AsyncSQLDatabaseNode(AsyncNode):
4677
4727
  self._adapter = None
4678
4728
 
4679
4729
  def __del__(self):
4680
- """Ensure connections are closed."""
4730
+ """Ensure connections are closed safely."""
4681
4731
  if self._adapter and self._connected:
4682
- # Schedule cleanup in the event loop if it exists
4732
+ # Try to schedule cleanup, but be resilient to event loop issues
4683
4733
  try:
4684
- loop = asyncio.get_event_loop()
4685
- if not loop.is_closed():
4686
- loop.create_task(self.cleanup())
4687
- except RuntimeError:
4688
- # No event loop, can't clean up async resources
4734
+ import asyncio
4735
+
4736
+ # Check if there's a running event loop that's not closed
4737
+ try:
4738
+ loop = asyncio.get_running_loop()
4739
+ if loop and not loop.is_closed():
4740
+ # Create cleanup task only if loop is healthy
4741
+ try:
4742
+ loop.create_task(self.cleanup())
4743
+ except RuntimeError as e:
4744
+ # Loop might be closing, ignore gracefully
4745
+ logger.debug(f"Could not schedule cleanup task: {e}")
4746
+ else:
4747
+ logger.debug("Event loop is closed, skipping async cleanup")
4748
+ except RuntimeError:
4749
+ # No running event loop - this is normal during shutdown
4750
+ logger.debug(
4751
+ "No running event loop for cleanup, connections will be cleaned by GC"
4752
+ )
4753
+ except Exception as e:
4754
+ # Complete fallback - any unexpected error should not crash __del__
4755
+ logger.debug(f"Error during connection cleanup: {e}")
4689
4756
  pass
@@ -2333,7 +2333,10 @@ class LocalRuntime:
2333
2333
  else:
2334
2334
  # Standard node execution (backward compatibility)
2335
2335
  try:
2336
- if hasattr(node, "async_run"):
2336
+ if hasattr(node, "execute_async"):
2337
+ # For AsyncNode and its subclasses, use execute_async which handles event loop properly
2338
+ node_result = await node.execute_async(**inputs)
2339
+ elif hasattr(node, "async_run"):
2337
2340
  node_result = await node.async_run(**inputs)
2338
2341
  else:
2339
2342
  node_result = node.execute(**inputs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kailash
3
- Version: 0.9.18
3
+ Version: 0.9.19
4
4
  Summary: Python SDK for the Kailash container-node architecture
5
5
  Home-page: https://github.com/integrum/kailash-python-sdk
6
6
  Author: Integrum
File without changes
File without changes
File without changes
File without changes
File without changes