kailash 0.6.4__py3-none-any.whl → 0.6.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -82,22 +82,24 @@ class RedisNode(Node):
82
82
  **kwargs: Additional parameters
83
83
  """
84
84
  super().__init__(**kwargs)
85
-
85
+
86
86
  # Store all parameters in config for validation
87
- self.config.update({
88
- 'host': host,
89
- 'port': port,
90
- 'db': db,
91
- 'password': password,
92
- 'operation': operation,
93
- 'key': key,
94
- 'value': value,
95
- 'field': field,
96
- 'fields': fields,
97
- 'ttl': ttl,
98
- 'decode_responses': decode_responses,
99
- })
100
-
87
+ self.config.update(
88
+ {
89
+ "host": host,
90
+ "port": port,
91
+ "db": db,
92
+ "password": password,
93
+ "operation": operation,
94
+ "key": key,
95
+ "value": value,
96
+ "field": field,
97
+ "fields": fields,
98
+ "ttl": ttl,
99
+ "decode_responses": decode_responses,
100
+ }
101
+ )
102
+
101
103
  # Also store as instance attributes for backward compatibility
102
104
  self.host = host
103
105
  self.port = port
@@ -117,13 +119,25 @@ class RedisNode(Node):
117
119
  """Define node parameters."""
118
120
  return {
119
121
  "host": NodeParameter(
120
- name="host", type=str, required=False, default="localhost", description="Redis host"
122
+ name="host",
123
+ type=str,
124
+ required=False,
125
+ default="localhost",
126
+ description="Redis host",
121
127
  ),
122
128
  "port": NodeParameter(
123
- name="port", type=int, required=False, default=6379, description="Redis port"
129
+ name="port",
130
+ type=int,
131
+ required=False,
132
+ default=6379,
133
+ description="Redis port",
124
134
  ),
125
135
  "db": NodeParameter(
126
- name="db", type=int, required=False, default=0, description="Redis database number"
136
+ name="db",
137
+ type=int,
138
+ required=False,
139
+ default=0,
140
+ description="Redis database number",
127
141
  ),
128
142
  "password": NodeParameter(
129
143
  name="password", type=str, required=False, description="Redis password"
@@ -135,7 +149,11 @@ class RedisNode(Node):
135
149
  description="Redis operation (get, set, hget, hset, hgetall, etc.)",
136
150
  ),
137
151
  "key": NodeParameter(
138
- name="key", type=str, required=False, description="Redis key", input=True
152
+ name="key",
153
+ type=str,
154
+ required=False,
155
+ description="Redis key",
156
+ input=True,
139
157
  ),
140
158
  "value": NodeParameter(
141
159
  name="value",
@@ -148,19 +166,30 @@ class RedisNode(Node):
148
166
  name="field", type=str, required=False, description="Hash field name"
149
167
  ),
150
168
  "fields": NodeParameter(
151
- name="fields", type=list, required=False, description="Multiple hash fields"
169
+ name="fields",
170
+ type=list,
171
+ required=False,
172
+ description="Multiple hash fields",
152
173
  ),
153
174
  "ttl": NodeParameter(
154
- name="ttl", type=int, required=False, description="Time to live in seconds"
175
+ name="ttl",
176
+ type=int,
177
+ required=False,
178
+ description="Time to live in seconds",
155
179
  ),
156
180
  "decode_responses": NodeParameter(
157
- name="decode_responses", type=bool,
181
+ name="decode_responses",
182
+ type=bool,
158
183
  required=False,
159
184
  default=True,
160
185
  description="Decode byte responses to strings",
161
186
  ),
162
187
  "result": NodeParameter(
163
- name="result", type=Any, required=False, description="Operation result", output=True
188
+ name="result",
189
+ type=Any,
190
+ required=False,
191
+ description="Operation result",
192
+ output=True,
164
193
  ),
165
194
  "success": NodeParameter(
166
195
  name="success",
@@ -8,7 +8,11 @@ Provides a unified interface for users to find the right RAG approach.
8
8
  import logging
9
9
  from typing import Any, Dict, List, Optional, Type
10
10
 
11
- from .router import RAGPerformanceMonitorNode, RAGQualityAnalyzerNode, RAGStrategyRouterNode
11
+ from .router import (
12
+ RAGPerformanceMonitorNode,
13
+ RAGQualityAnalyzerNode,
14
+ RAGStrategyRouterNode,
15
+ )
12
16
  from .strategies import (
13
17
  HierarchicalRAGNode,
14
18
  HybridRAGNode,
@@ -16,6 +16,7 @@ from datetime import UTC, datetime, timedelta
16
16
  from typing import Any, Dict, List, Optional, Set, Tuple
17
17
 
18
18
  import numpy as np
19
+
19
20
  from kailash.nodes.ai.llm_agent import LLMAgentNode
20
21
  from kailash.nodes.base import Node, NodeParameter, register_node
21
22
  from kailash.nodes.mixins import LoggingMixin, PerformanceMixin, SecurityMixin
kailash/runtime/local.py CHANGED
@@ -40,6 +40,7 @@ from datetime import UTC, datetime
40
40
  from typing import Any, Optional
41
41
 
42
42
  import networkx as nx
43
+
43
44
  from kailash.nodes import Node
44
45
  from kailash.runtime.parameter_injector import WorkflowParameterInjector
45
46
  from kailash.sdk_exceptions import (
@@ -548,14 +549,16 @@ class LocalRuntime:
548
549
  # Update node config with parameters (Session 061: direct config update)
549
550
  {**node_instance.config, **parameters.get(node_id, {})}
550
551
  node_instance.config.update(parameters.get(node_id, {}))
551
-
552
+
552
553
  # ENTERPRISE PARAMETER INJECTION FIX: Injected parameters should override connection inputs
553
554
  # This ensures workflow parameters take precedence over connection inputs for the same parameter names
554
555
  injected_params = parameters.get(node_id, {})
555
556
  if injected_params:
556
557
  inputs.update(injected_params)
557
558
  if self.debug:
558
- self.logger.debug(f"Applied parameter injections for {node_id}: {list(injected_params.keys())}")
559
+ self.logger.debug(
560
+ f"Applied parameter injections for {node_id}: {list(injected_params.keys())}"
561
+ )
559
562
 
560
563
  if self.debug:
561
564
  self.logger.debug(f"Node {node_id} inputs: {inputs}")
@@ -869,7 +872,10 @@ class LocalRuntime:
869
872
 
870
873
  try:
871
874
  # Use existing AccessControlManager pattern
872
- from kailash.access_control import WorkflowPermission, get_access_control_manager
875
+ from kailash.access_control import (
876
+ WorkflowPermission,
877
+ get_access_control_manager,
878
+ )
873
879
 
874
880
  if self._access_control_manager is None:
875
881
  self._access_control_manager = get_access_control_manager()
@@ -392,28 +392,28 @@ class WorkflowParameterInjector:
392
392
 
393
393
  def _get_nested_parameter(self, parameters: Dict[str, Any], path: str) -> Any:
394
394
  """Get a nested parameter value using dot notation.
395
-
395
+
396
396
  Args:
397
397
  parameters: Parameters dictionary
398
398
  path: Dot-separated path (e.g., "data.user_id")
399
-
399
+
400
400
  Returns:
401
401
  Value at the specified path or None if not found
402
402
  """
403
403
  if "." not in path:
404
404
  # Simple parameter lookup
405
405
  return parameters.get(path)
406
-
406
+
407
407
  # Handle nested parameter access
408
408
  parts = path.split(".")
409
409
  current = parameters
410
-
410
+
411
411
  for part in parts:
412
412
  if isinstance(current, dict) and part in current:
413
413
  current = current[part]
414
414
  else:
415
415
  return None
416
-
416
+
417
417
  return current
418
418
 
419
419
  def validate_parameters(self, parameters: Dict[str, Any]) -> list[str]:
@@ -239,33 +239,35 @@ class WorkflowBuilder:
239
239
  self._metadata["_workflow_inputs"][input_node_id] = input_mappings
240
240
  return self
241
241
 
242
- def update_node(self, node_id: str, config_updates: dict[str, Any]) -> "WorkflowBuilder":
242
+ def update_node(
243
+ self, node_id: str, config_updates: dict[str, Any]
244
+ ) -> "WorkflowBuilder":
243
245
  """
244
246
  Update the configuration of an existing node.
245
-
247
+
246
248
  This is essential for enterprise scenarios like:
247
249
  - Dynamic environment-specific configuration
248
- - Runtime parameter injection
250
+ - Runtime parameter injection
249
251
  - Security context updates
250
252
  - A/B testing and feature flags
251
-
253
+
252
254
  Args:
253
255
  node_id: ID of the node to update
254
256
  config_updates: Dictionary of configuration updates to apply
255
-
257
+
256
258
  Returns:
257
259
  Self for chaining
258
-
260
+
259
261
  Raises:
260
262
  WorkflowValidationError: If node doesn't exist
261
263
  """
262
264
  if node_id not in self.nodes:
263
265
  raise WorkflowValidationError(f"Node '{node_id}' not found in workflow")
264
-
266
+
265
267
  # Deep merge the configuration updates
266
268
  if "config" not in self.nodes[node_id]:
267
269
  self.nodes[node_id]["config"] = {}
268
-
270
+
269
271
  self.nodes[node_id]["config"].update(config_updates)
270
272
  return self
271
273
 
@@ -392,18 +394,20 @@ class WorkflowBuilder:
392
394
 
393
395
  # Add nodes - handle both dict and list formats
394
396
  nodes_config = config.get("nodes", [])
395
-
397
+
396
398
  if isinstance(nodes_config, dict):
397
399
  # Dict format: {node_id: {type: "...", parameters: {...}}}
398
400
  for node_id, node_config in nodes_config.items():
399
401
  node_type = node_config.get("type")
400
- node_params = node_config.get("parameters", node_config.get("config", {}))
401
-
402
+ node_params = node_config.get(
403
+ "parameters", node_config.get("config", {})
404
+ )
405
+
402
406
  if not node_type:
403
407
  raise WorkflowValidationError(
404
408
  f"Node type is required for node '{node_id}'"
405
409
  )
406
-
410
+
407
411
  builder.add_node(node_type, node_id, node_params)
408
412
  else:
409
413
  # List format: [{id: "...", type: "...", config: {...}}]
@@ -426,9 +430,9 @@ class WorkflowBuilder:
426
430
  # Try full format first: {from_node, from_output, to_node, to_input}
427
431
  from_node = conn.get("from_node")
428
432
  from_output = conn.get("from_output")
429
- to_node = conn.get("to_node")
433
+ to_node = conn.get("to_node")
430
434
  to_input = conn.get("to_input")
431
-
435
+
432
436
  # Handle simple format: {from, to} with default outputs/inputs
433
437
  if not from_node:
434
438
  from_node = conn.get("from")
@@ -441,7 +445,7 @@ class WorkflowBuilder:
441
445
  raise WorkflowValidationError(
442
446
  f"Invalid connection: missing from_node and to_node. Connection data: {conn}"
443
447
  )
444
-
448
+
445
449
  # Use defaults if not specified
446
450
  from_output = from_output or "result"
447
451
  to_input = to_input or "input"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kailash
3
- Version: 0.6.4
3
+ Version: 0.6.6
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
@@ -1,4 +1,4 @@
1
- kailash/__init__.py,sha256=FV-hF51kiKc5ovZXM6ka-VtRFtSbfZ8E5SkaVluQQsw,1734
1
+ kailash/__init__.py,sha256=x9_jsahCoMHqqNJPXD18YiVBoUuNVYtLL_ymWLnWVWI,1796
2
2
  kailash/__main__.py,sha256=vr7TVE5o16V6LsTmRFKG6RDKUXHpIWYdZ6Dok2HkHnI,198
3
3
  kailash/access_control.py,sha256=2ctdRFeSeu-d7DU04Aovxh6Rt_4t3IyQfkKEjTeQiMM,25519
4
4
  kailash/access_control_abac.py,sha256=FPfa_8PuDP3AxTjdWfiH3ntwWO8NodA0py9W8SE5dno,30263
@@ -13,8 +13,8 @@ kailash/api/custom_nodes.py,sha256=ATCrfAgYJhspKmgTdpWgPrSHkea6YLHcjjvaL_zfuqk,1
13
13
  kailash/api/custom_nodes_secure.py,sha256=cMh1FbEtUAEoLmTb5ew_CeX5kjikBzmBsat1GOkZzFY,13196
14
14
  kailash/api/gateway.py,sha256=BVEKyC53JRnBkOyg3YXAPGDzLm3zon0vbO1xiM6yNxU,12540
15
15
  kailash/api/mcp_integration.py,sha256=xY5VjYXh4bFuNyyWBXEuTm4jjwUn8_9QxZpa4hh6a0Q,14521
16
- kailash/api/studio.py,sha256=s9g6OL4N1mc1DHzYhCjTfpUJNloOGk6CX9V9C5B7jZw,34891
17
- kailash/api/workflow_api.py,sha256=1ClWC6y70w6c-c4_y5p95GjCoSohuRhngcQofQFSZEs,13146
16
+ kailash/api/studio.py,sha256=8Gj3R3p_-EpJerkWYLyrqVzJprKOQmTmK-1EgiLoXMc,34892
17
+ kailash/api/workflow_api.py,sha256=8g0yOtlartpuVpJpR92xpqjSt-sPohcw9CUp-J_uOus,13147
18
18
  kailash/cli/__init__.py,sha256=kJaqsBp3fRmagJhqA6LMwMbEa_Vkz93hIPH3W5Mn5r0,97
19
19
  kailash/cli/commands.py,sha256=lv1S1uB0JQE4tiQCJIa1HCbjYDbFE9KwcK3M1jRtRU4,18168
20
20
  kailash/client/__init__.py,sha256=WNR39t4O6TDQLI14uR_MjQpLza2c6rU3YkQCXcGCiSU,293
@@ -31,8 +31,9 @@ kailash/core/monitoring/__init__.py,sha256=Qua4i50JYUQcRkWHy1wGyuXGqzqsDVMmdPtud
31
31
  kailash/core/monitoring/connection_metrics.py,sha256=fvFyHOgMU5lgRB2EB7d-D_F5XERjlmcGAfkrIL0I_OQ,16805
32
32
  kailash/core/optimization/__init__.py,sha256=FY5SLLNedH0_aawLYdXHj2rsGdBaaB49QuJ_R9ctHOE,65
33
33
  kailash/core/resilience/__init__.py,sha256=nYfMU_hK0CHeK_ZZGZWM3oeI2YjcNg5Wop7bnjPt28c,364
34
- kailash/core/resilience/bulkhead.py,sha256=eLzsKD9U0_mNahUyreHjjBva1LHEi9UkCFMlh_ct59c,16453
34
+ kailash/core/resilience/bulkhead.py,sha256=Op02MjnucieSsJ5CIPHlONEJfP36DRGKn6L9nxYOpR8,17202
35
35
  kailash/core/resilience/circuit_breaker.py,sha256=uL_jaY4xAhHAi1kYHe6qyVZCG0FBS08EmWYBM-5Jrew,18294
36
+ kailash/core/resilience/health_monitor.py,sha256=w-Pb-hmQO3HA5-UxRA8qHv3PQR97ipwUh7eMcjnVd5E,20164
36
37
  kailash/database/__init__.py,sha256=keUIl-BhRMSR7ohW4kojaEYCzKmeb_pb4IpWqDqfnOk,686
37
38
  kailash/database/execution_pipeline.py,sha256=1Y-iVXKPoCED3dRoQvOZe1lQyff92NJ__q77NPI0CRQ,16453
38
39
  kailash/edge/__init__.py,sha256=-jhM4xaDAUCbwrq6jJjRCdlf49XDULVTcvfsUiqz_qg,447
@@ -46,7 +47,7 @@ kailash/gateway/resource_resolver.py,sha256=IC1dceiKfjfUWToYCIBcrUapuR3LlDG6RJ4o
46
47
  kailash/gateway/security.py,sha256=kf4Quf6u7dqhs80fQQ982eHbRb4weDKG0DaYNeKntT4,7557
47
48
  kailash/mcp_server/__init__.py,sha256=AzrCEat5gdl9Nes8xOs7D4Wj3HpGlms3xLbOrx2diPA,8791
48
49
  kailash/mcp_server/advanced_features.py,sha256=76dmttUa0M61ReBbgexf7Igu4CXaXS-CUmFhvTDjKyI,30673
49
- kailash/mcp_server/ai_registry_server.py,sha256=jaNa_EN0GfBZGdnpqcEJF8xFnwTyU8zr9qu82hrjoyE,28985
50
+ kailash/mcp_server/ai_registry_server.py,sha256=vMNMvWLegKBVp7YAHVKgltWa2vTXKNvV-_Ni_z1argM,28973
50
51
  kailash/mcp_server/auth.py,sha256=Y2BztTL2IILCLSHzZIDSXsIKyUTR8gUXwum5rKffUxs,25251
51
52
  kailash/mcp_server/client.py,sha256=uJXOP7Z4q3CFnX_RvRL5NM6PBcEfR7fUkPQIxfa8c8I,25710
52
53
  kailash/mcp_server/client_new.py,sha256=YU671JvAM0uvuX0uhGZCIKI8co3fqz0cs6HqLZ59Xyo,10285
@@ -55,7 +56,7 @@ kailash/mcp_server/errors.py,sha256=_lycwudWP_AJ_KwLO5N3VCKbG1ikfaTyzA2PBF8UAYU,
55
56
  kailash/mcp_server/oauth.py,sha256=GFC2O2ueiTTI6V-91Huevhc3K8CxrHe22knuHfuCTqY,56493
56
57
  kailash/mcp_server/protocol.py,sha256=gXeJ-GvSf39WymfS6433SqLKBA40PdeDoBQqu7DUbJE,35129
57
58
  kailash/mcp_server/registry_integration.py,sha256=Iv_vg-0gFjOFBj-kqqnCD-AnnDcA35Zu67mnCoylVJQ,19787
58
- kailash/mcp_server/server.py,sha256=DBplcDw6XcwNVvYkk814fe5qif2xUSL5wgLU0MHKKM0,67504
59
+ kailash/mcp_server/server.py,sha256=5pb5eIiB-qGi8UF-nL81D3mF8t066-O1_Q94GhLVplY,67441
59
60
  kailash/mcp_server/transports.py,sha256=wl7EbImvmBxjPvvPhRW4VJc6Xp9H3_upqFKL4UCFK7o,39289
60
61
  kailash/mcp_server/servers/ai_registry.py,sha256=IdF_keUuJlMsvjLjSAykxxbm46K4qA7eCj7T-lYSrzk,10007
61
62
  kailash/mcp_server/utils/__init__.py,sha256=R20N-iiKXUPxc9MOh6vPO1vIfkPmwhEQ5KNFgGd4xSs,771
@@ -73,11 +74,11 @@ kailash/middleware/auth/models.py,sha256=sMQ1JnEDKPId1kLNCi2fDfhgLZX-YguHPnSMfS_
73
74
  kailash/middleware/auth/utils.py,sha256=AW4fYJ2opQvOr_1YgSQi_MsC_RoFPq0XVOEgbxoXWtw,6555
74
75
  kailash/middleware/communication/__init__.py,sha256=keQ2db4WI2-oZ_nJ5sLE1Tum_RkUt7M2VLTmqOlt0zA,778
75
76
  kailash/middleware/communication/ai_chat.py,sha256=2XmnJB2Nz2xm2darsF2DYnSLGLAYdyYooHok5GrHKb8,35994
76
- kailash/middleware/communication/api_gateway.py,sha256=Sh8hU1y175Jy3v94WhTVy-QeylodlMPMNdwWuanWeiE,31334
77
+ kailash/middleware/communication/api_gateway.py,sha256=-y2gUyeWXWvn5PO2GXkaDYFIEZb6kM1iHTiKHrm8WYc,31363
77
78
  kailash/middleware/communication/events.py,sha256=MEjgcibNyjA4tSFK8CeXDn1oCE75My7K_saxdCBz2HY,15367
78
79
  kailash/middleware/communication/realtime.py,sha256=__34kf61akSibvKYz-myw0BnIxWfMOns-wLh-oRfI-A,24955
79
80
  kailash/middleware/core/__init__.py,sha256=4yQkOWC4b88zSogs1YVqtKG1PugbncqNCwNNWxTdIZA,545
80
- kailash/middleware/core/agent_ui.py,sha256=MVmKznG2OcSF3quIr_uNR7rbPv7aaB2VgkHu2hA1AU4,36097
81
+ kailash/middleware/core/agent_ui.py,sha256=_2mIsseJjAm118iOhPeGrdE8_lmccrv4K29uC3tlPrc,36357
81
82
  kailash/middleware/core/schema.py,sha256=uVF-5ZJlLYHOQdsKrG46FnTO1bq_QtDjhUSkIIDL9dY,23584
82
83
  kailash/middleware/core/workflows.py,sha256=kjwwP69-T6eCY7kWIMLUBwVy2CapoPR34cqCETquq0s,12480
83
84
  kailash/middleware/database/__init__.py,sha256=UMws94L-vja94AjfzPWIgn0h4_5BGQzI3YaSdqtzeLk,1682
@@ -98,7 +99,7 @@ kailash/middleware/mcp/__init__.py,sha256=EdZB8zOMSBEEmudRzs8ksz9QZJYWQMEx7Tm1MO
98
99
  kailash/middleware/mcp/client_integration.py,sha256=dY1RmX-g5E6JzUFuWxk7viuOYIh8bMwoUSvHQMVEsYk,18265
99
100
  kailash/middleware/mcp/enhanced_server.py,sha256=e7cIV4jASyhV12ujpRD21jfQl5_R5IVgdPATggJglCI,18450
100
101
  kailash/nodes/__init__.py,sha256=xXSDm1DRpb0uJM4r1tDcSbX65gYNWwBs7H6Gl0OjK4w,960
101
- kailash/nodes/base.py,sha256=4fucTcwO5yAl0eKiPyjWwksUq4kxT99AFsfuDamOUb8,55828
102
+ kailash/nodes/base.py,sha256=g8hVZYd-XDbyLaJlKHRYb-xJ9wMGresI34UsCrgvURE,55876
102
103
  kailash/nodes/base_async.py,sha256=B6BB9yVUrmOgqplgsfSY90VNxd3GTQrwNpN6wz7UuT8,7120
103
104
  kailash/nodes/base_cycle_aware.py,sha256=Xpze9xZzLepWeLpi9Y3tMn1dm2LVv-omr5TSQuGTtWo,13377
104
105
  kailash/nodes/base_with_acl.py,sha256=ZfrkLPgrEBcNbG0LKvtq6glDxyOYOMRw3VXX4vWX6bI,11852
@@ -110,10 +111,10 @@ kailash/nodes/admin/permission_check.py,sha256=m2-i8gisA8U-ERt3yPA6D03XbGzPqbzgW
110
111
  kailash/nodes/admin/role_management.py,sha256=F5OFTf9rP6Jbux5-E10q2gDl0kY0-R0kQmzkEM1vupg,73050
111
112
  kailash/nodes/admin/schema.sql,sha256=MZ_hS7U1U8q_oQ5rJMOn4BD9aYx1moTCg1AhBEZ1UOU,14398
112
113
  kailash/nodes/admin/schema_manager.py,sha256=_m9D2yTXpIyoag7ljwCg_TYffh6VFd-xy3_ceYrA2To,15125
113
- kailash/nodes/admin/security_event.py,sha256=gmcbdAjl-dnhpsZU5H7al0ZIvu-hiF63y19cw14qJ6U,56379
114
+ kailash/nodes/admin/security_event.py,sha256=SSxVHhufMBnqZmAKKDQ3Z2OUpHjY7tB3sGfMy__EiDs,56396
114
115
  kailash/nodes/admin/tenant_isolation.py,sha256=AKEARuUQ9-cF3DAkYFgRhshWRcooFtfahTuWe4ja02M,8282
115
116
  kailash/nodes/admin/transaction_utils.py,sha256=IAAdIiQ5Q4kTT5ul4hv1iSfoXG3CeFAkYd2xs7zxrnk,7896
116
- kailash/nodes/admin/user_management.py,sha256=TK1vHuemr6VS83rX4-SM3ZgiQVuJFFoZMT59SvnGcsU,54706
117
+ kailash/nodes/admin/user_management.py,sha256=Al9mKgTx3ASDSefZaIcPxL4zSjASI3cGdZIs33uwpvg,54707
117
118
  kailash/nodes/ai/__init__.py,sha256=rslxIS8jlovshiNgWqVzQjD_kfT_3h3Ct03sk-iRe6U,2202
118
119
  kailash/nodes/ai/a2a.py,sha256=fDSnihMFQ6MuhKSzL9ueWGAQLrKZQRkq9HqArdotf_w,70048
119
120
  kailash/nodes/ai/agents.py,sha256=CRA3cdapQjpuvOniXUh6ZVWAlRxUIepVw1BROW6QzdY,20373
@@ -131,7 +132,7 @@ kailash/nodes/alerts/discord.py,sha256=d7tFQy_yFdQSJwNrB-adVwep7-N0vgQ7xX1pXsPCU
131
132
  kailash/nodes/api/__init__.py,sha256=dzK6kiAdJcTQa7NSBkSmd5CCTSefBlMZMewGlTJSr0c,2334
132
133
  kailash/nodes/api/auth.py,sha256=mve8rdshFIfLpkJX6M9opgDDru1LjcTyf3KpuCs1wd0,30869
133
134
  kailash/nodes/api/graphql.py,sha256=IJsL-oi6U_QbeKHzyKBgUZYYR-fUmS7doWw1fqsKjCo,16999
134
- kailash/nodes/api/http.py,sha256=ChhWw0aS4diQWu21GtFg4W6G-xtOLkdg_ejB4nIp6Y4,39306
135
+ kailash/nodes/api/http.py,sha256=1D62v1gtoh91meuT9PBjzPKkIFX31sH2gGCLAxwu1Hg,39324
135
136
  kailash/nodes/api/monitoring.py,sha256=vV0nLPyqw34YgsZvuegxNMSLyHU59pMdnzkdXelPYFc,17468
136
137
  kailash/nodes/api/rate_limiting.py,sha256=y_yPkuCfiaD9R3Jc7fTVR6_ABRCqnl8TiCVtH-r0uOs,19673
137
138
  kailash/nodes/api/rest.py,sha256=jrbVROhcsSwmp2zvCVNnd4zDBVhfpglmChcdBJz7TA4,48798
@@ -139,23 +140,23 @@ kailash/nodes/api/security.py,sha256=VxMl5p7jWF2ViAqzHTFkte6agUiS9QEiQztV9l9PzDk
139
140
  kailash/nodes/auth/__init__.py,sha256=8d6OJCuyDytejA9_o_PDdRBFxuTdoTCScc4qRi5wlK4,562
140
141
  kailash/nodes/auth/directory_integration.py,sha256=tzXyLdHMR2ja1Wf659BzSfSSd1P256D3LEfzPCgBUyE,47010
141
142
  kailash/nodes/auth/enterprise_auth_provider.py,sha256=ggWgRTYPBXFtNG1XuYv3cE-3JyEGgMQMWqaBu8MjyMs,50368
142
- kailash/nodes/auth/mfa.py,sha256=oNYhhlZgjs_klxaVNpFLTMSHZ0NAg9KnubIYVPqpTPc,85405
143
+ kailash/nodes/auth/mfa.py,sha256=_cD_5VNPM7D5hDg0HVSwF33wZAK6ECNl8pccwhHvwXI,85406
143
144
  kailash/nodes/auth/risk_assessment.py,sha256=UbSvbAMGNyEYOF3p51_hrQKexFg8MTkl0emZQyt4XU4,30165
144
145
  kailash/nodes/auth/session_management.py,sha256=mQcSNn84PsqBIzthCtvcMhpACsirJ_fKxkrCDQKau0E,38714
145
146
  kailash/nodes/auth/sso.py,sha256=eL_WGRGPuHbuBA9AQdsMI85Dnz_tE0Bh4lCtv-P4MqE,43716
146
147
  kailash/nodes/cache/__init__.py,sha256=4E--KXBF_8BzuEMeOZWBKEqG9zHy39hnezfp-D4IFGk,184
147
148
  kailash/nodes/cache/cache.py,sha256=Qme8fmPVyH_OXSQqjBaQRRu8l9csX39Z3AY1Hi1r6gk,44166
148
- kailash/nodes/cache/cache_invalidation.py,sha256=IgPn7HhyVBnbsayKFnEHvmHo8uPPocau2ZaYUkMvOpU,34032
149
+ kailash/nodes/cache/cache_invalidation.py,sha256=IUvxrRj3K5EF29Z2EaKl7t6Uze_cssnzTqhOH4fLrio,34044
149
150
  kailash/nodes/cache/redis_pool_manager.py,sha256=GR82GCWxo_gAzRE-091OB6AhKre8CTwM3OoePLb2gvE,21574
150
151
  kailash/nodes/code/__init__.py,sha256=yhEwuMjUEPFfe6hMGMd4E4gZdLUuf2JEQ7knYapiM4o,1283
151
152
  kailash/nodes/code/async_python.py,sha256=oXSNkP5d0RTJXaro8AKySlK_N51cBcvnfH0wXeSjDHw,37005
152
- kailash/nodes/code/python.py,sha256=gP34yZJP6u_L6I2pW6I4Ur_a05X8LLIKVmUKnYWd2Fs,58501
153
+ kailash/nodes/code/python.py,sha256=lH3GHorFZL4Uz7pkaXliTtLi4rUog5ni5EFip8cNqmY,58509
153
154
  kailash/nodes/compliance/__init__.py,sha256=6a_FL4ofc8MAVuZ-ARW5uYenZLS4mBFVM9AI2QsnoF8,214
154
155
  kailash/nodes/compliance/data_retention.py,sha256=90bH_eGwlcDzUdklAJeXQM-RcuLUGQFQ5fgHOK8a4qk,69443
155
156
  kailash/nodes/compliance/gdpr.py,sha256=ZMoHZjAo4QtGwtFCzGMrAUBFV3TbZOnJ5DZGZS87Bas,70548
156
157
  kailash/nodes/data/__init__.py,sha256=f0h4ysvXxlyFcNJLvDyXrgJ0ixwDF1cS0pJ2QNPakhg,5213
157
158
  kailash/nodes/data/async_connection.py,sha256=wfArHs9svU48bxGZIiixSV2YVn9cukNgEjagwTRu6J4,17250
158
- kailash/nodes/data/async_sql.py,sha256=QQg-wFzwPlmwjC23H1JgR20EyTAIsR0Zw1e0PHJkP70,27337
159
+ kailash/nodes/data/async_sql.py,sha256=bb6Qc-QwoTJwzAOjwT_ooQikk4JWoS2ntb71O7KzXbw,99228
159
160
  kailash/nodes/data/async_vector.py,sha256=HtwQLO25IXu8Vq80qzU8rMkUAKPQ2qM0x8YxjXHlygU,21005
160
161
  kailash/nodes/data/directory.py,sha256=fbfLqD_ijRubk-4xew3604QntPsyDxqaF4k6TpfyjDg,9923
161
162
  kailash/nodes/data/event_generation.py,sha256=Bc1se0tPg1IAGCQDrWqlFmgoOpUyfMN9ku4Lm3akhXU,11579
@@ -164,7 +165,7 @@ kailash/nodes/data/optimistic_locking.py,sha256=R3C69Vs4_4jlmnpfrI3GSIfA6zVQ3hyh
164
165
  kailash/nodes/data/query_pipeline.py,sha256=qX9QdszpMyjTRrljFLtcY_CytSJRDTpGjt4DhwAdPlk,21710
165
166
  kailash/nodes/data/query_router.py,sha256=HExyJlOoz4p5gCYh1zonlFls4Y0r19VvM2TjRztzmqg,32005
166
167
  kailash/nodes/data/readers.py,sha256=MbhILOs7A6XdtvHNqeDLTN4x4MJAzxmlYR7KaPJkDJY,45994
167
- kailash/nodes/data/redis.py,sha256=nPlr2Sqt8dqXFbJMwUTc5Nb5p4wa0xgNFMu10Zq30IQ,12071
168
+ kailash/nodes/data/redis.py,sha256=A7aEMRo8xzEkEPOZXmyj6D_SFUeWAmllMzmnjXd-aXo,12564
168
169
  kailash/nodes/data/retrieval.py,sha256=H8Qb2R64fQ_OeaQBh6jVn7-xLuygiF3fjzbh4ssNOrU,20591
169
170
  kailash/nodes/data/sharepoint_graph.py,sha256=J1_KZQ5s8yXkjGY1PjsMY7T8viKARi3os5P8CXpmn2U,37160
170
171
  kailash/nodes/data/sources.py,sha256=tvgDDDerWELD6QkAm73ciKmNakD_SYMd50idlOjpbF0,3632
@@ -208,7 +209,7 @@ kailash/nodes/rag/optimized.py,sha256=zTYHs7pxO9nkqTcPjKjjuY0QZEJd2WTd_0G6tzHOcK
208
209
  kailash/nodes/rag/privacy.py,sha256=XyMsW1ZcUfPy5arGgte-AR_X40Ho9wy25RrMbwi0m6I,36724
209
210
  kailash/nodes/rag/query_processing.py,sha256=ivZYrwX4Agb4iWeTXIVwWuZm2WDOL75aSDa9Zy8kQxw,44698
210
211
  kailash/nodes/rag/realtime.py,sha256=9Lmay0RbsQWfaXFRfXyO30wFK_xtZZ6xomDNwB8YQh4,24758
211
- kailash/nodes/rag/registry.py,sha256=SAbraZ7v3gwoEvFH5j0findTRTbtD6pHFP8E_xquXgo,19262
212
+ kailash/nodes/rag/registry.py,sha256=ocb2iyhuffA3KiK3IOHgYfUvUX52y1-DKKqP5gZBizQ,19279
212
213
  kailash/nodes/rag/router.py,sha256=3FvPBXcT-LYCxEpapwaeXy3ISWSfTGs5bPvFrOORqyA,30143
213
214
  kailash/nodes/rag/similarity.py,sha256=bngtAcx_WjnXlDcXgP5IQeKWScPywH7qu_I7uPD-j6M,61285
214
215
  kailash/nodes/rag/strategies.py,sha256=cOSn-JaGfF56EYm3PVDSMx3TOtqFtP4JEaVbpjt2wMw,18460
@@ -216,7 +217,7 @@ kailash/nodes/rag/workflows.py,sha256=PL9d3Lk15drwo2QVdNR9B61EpZ8Kc1crjnqFXc10O1
216
217
  kailash/nodes/security/__init__.py,sha256=oaoZdbKhjEZ8vtUHGRPZPDixInzFDmhUZg4ou_Lz6mI,611
217
218
  kailash/nodes/security/abac_evaluator.py,sha256=MAVJrIIQGHdOI-OfzGJFImVaHSq4vO8avEB0bSTprWk,50313
218
219
  kailash/nodes/security/audit_log.py,sha256=zjwLoWHJLhkJiD5rRmE8H2mSEE7-6EHh_FR0FT91uLU,3130
219
- kailash/nodes/security/behavior_analysis.py,sha256=BZIbdzHFDcSgY4i7_NrcW_HW34pngSLUAe29U4bAUkM,71562
220
+ kailash/nodes/security/behavior_analysis.py,sha256=4R2NNC3CKGnePAeVP1gjjyAL7ZjWDjsEXdHebRVNRig,71563
220
221
  kailash/nodes/security/credential_manager.py,sha256=kqetmEBUnOOtSJyCpf0o_IRlwzpCv5FeInB4enBfk5E,14968
221
222
  kailash/nodes/security/rotating_credentials.py,sha256=yEDSraBi_M3DKAaodmkkVPXHreUvrLU8xuTky_Z-tT4,28928
222
223
  kailash/nodes/security/security_event.py,sha256=yVP8foaki-LDD16mlRapaPsbaWMwsum5J_V0n1bnqvw,4150
@@ -236,11 +237,11 @@ kailash/runtime/__init__.py,sha256=CvU-qBMESYYISqFOlYlLsYJrXJu0Gqr4x6yr4Ob_Rng,2
236
237
  kailash/runtime/access_controlled.py,sha256=Td8Fa8oPxEqlb74bDiH_HtT6J-ku0AudvN7mrUZOacc,17219
237
238
  kailash/runtime/async_local.py,sha256=XJyJYWmsezZBmAB8Y8xfAbiytPaY1j_zYU_moABP-3E,30313
238
239
  kailash/runtime/docker.py,sha256=sZknVl1PCGfAZeyc0-exTuKlllSyjYlFIgJoiB3CRNs,23500
239
- kailash/runtime/local.py,sha256=UU9HxCAFb-l982YS3S1C9CPA3KM0JIIqePR-Vo0mTd8,45542
240
+ kailash/runtime/local.py,sha256=W6onzSqTDEtQFQmppjugbD7qy5jKEMrejbLcybcjb1w,45630
240
241
  kailash/runtime/parallel.py,sha256=mz_wPD13-YVc3Q_8HkOs4nPQPdTjnjCcnRL7ZRM70lo,21070
241
242
  kailash/runtime/parallel_cyclic.py,sha256=yANZHnePjhCPuCFbq3lFQA1K6jbCv5Of5-vIKbCsmZk,19863
242
243
  kailash/runtime/parameter_injection.py,sha256=kG4GhmarsRr5t3VDFbc2G1HSbsZJg6UmienHCE2Ru7o,14852
243
- kailash/runtime/parameter_injector.py,sha256=XZDZgHteRXyT-4zEdZYAM1KLmwsrl8ex0V8vZED-rBQ,24244
244
+ kailash/runtime/parameter_injector.py,sha256=9tMF8mdwwIIs2XnZarkcdyU_G8Ui0ccwjGUO0jnSlaY,24192
244
245
  kailash/runtime/runner.py,sha256=Lt9ugsk56ICD9XLKJjnhejtqdiz0mJNdlqH7sSxIlWU,3214
245
246
  kailash/runtime/testing.py,sha256=nHTYKdVCPZpyC5h2J6cvtgsG4lXEZnMYn7VtKDSlutI,19081
246
247
  kailash/testing/__init__.py,sha256=4cqLSbcFz9bDY09vuK5Vpg3UtoAAa93R5tc9zIUvGAE,796
@@ -273,7 +274,7 @@ kailash/visualization/reports.py,sha256=D7kJ0flHr16d-qSEq8vnw20N8u_dgTrXtKVSXVm8
273
274
  kailash/workflow/__init__.py,sha256=DDQDE9K6RmbX6479guNLLgjiVVV-gQERRvCEJWSVlsM,1836
274
275
  kailash/workflow/async_builder.py,sha256=iv8bDJHdWAUZ77SyMo6sucd92dTdtXesdxycrSE7mM4,20613
275
276
  kailash/workflow/async_patterns.py,sha256=X0ZDXwr6UAu0WC1xnCB7-0V1-tRbKs9UI4JqaBCB6tE,22824
276
- kailash/workflow/builder.py,sha256=fbs-U10FEClHe0rbPGthBqecT954VMfQqhm7_I3VzYE,15666
277
+ kailash/workflow/builder.py,sha256=fAk5ccPD52zxn_62ZSvc8O6HFd-5nYR5-FI7k7i82KU,15583
277
278
  kailash/workflow/builder_improvements.py,sha256=MYAf-CJkrXTP8Q6leapnfVZATQxCJJ1cAymNOqXCh2w,7374
278
279
  kailash/workflow/convergence.py,sha256=vfIDR-uNaQE-LVUEzrRtfgKPgX9gL0nLNH-nTg5ra-c,10031
279
280
  kailash/workflow/cycle_analyzer.py,sha256=BGBpgdB-g0-KRI65sVAvHV4lxfoCzMt4uKOHbw8GXT4,32596
@@ -296,9 +297,9 @@ kailash/workflow/state.py,sha256=UTZxs5-Ona6uvBhx1__i6-RX8gB4qazkBIWE7uyRmWQ,760
296
297
  kailash/workflow/templates.py,sha256=98EN5H4fO9b4xeczk20Hu5L8hNcAuRQNGayT6vnZYCw,48540
297
298
  kailash/workflow/validation.py,sha256=JIbIajWVIaWHSvWtgZ4WUVJaBaUOCz5B9cyTwM--dL4,33060
298
299
  kailash/workflow/visualization.py,sha256=ICMWCWqh5fOQ7eJygbvu2PMWHxe-H5_0epwdZuz8cMw,19737
299
- kailash-0.6.4.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
300
- kailash-0.6.4.dist-info/METADATA,sha256=VgZTj-1UGFb0ZG4XNhztcwsct7qT3d0IzhwCqvQ50fg,26409
301
- kailash-0.6.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
302
- kailash-0.6.4.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
303
- kailash-0.6.4.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
304
- kailash-0.6.4.dist-info/RECORD,,
300
+ kailash-0.6.6.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
301
+ kailash-0.6.6.dist-info/METADATA,sha256=IIL5xeaymlhaLcnEgM1_P-lxgy-o8nC-H7LX9O9Dx8s,26409
302
+ kailash-0.6.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
303
+ kailash-0.6.6.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
304
+ kailash-0.6.6.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
305
+ kailash-0.6.6.dist-info/RECORD,,