kailash 0.8.6__py3-none-any.whl → 0.8.7__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.
kailash/__init__.py CHANGED
@@ -3,10 +3,10 @@
3
3
  The Kailash SDK provides a comprehensive framework for creating nodes and workflows
4
4
  that align with container-node architecture while allowing rapid prototyping.
5
5
 
6
- New in v0.8.6: Enhanced parameter validation system with 4 modes (off/warn/strict/debug),
7
- ParameterDebugger for comprehensive flow tracing (10x faster debugging), production-ready
8
- performance (<1ms overhead), and complete troubleshooting documentation.
9
- Previous v0.8.5: Test infrastructure enhancement, application framework improvements.
6
+ New in v0.8.7: MCP Parameter Validation Tool, 100% MCP Protocol compliance with missing
7
+ handlers, Phase 2 MCP subscriptions with GraphQL optimization, WebSocket compression, and
8
+ Redis-backed distributed coordination.
9
+ Previous v0.8.6: Enhanced parameter validation system with debugging tools.
10
10
  """
11
11
 
12
12
  from kailash.nodes.base import Node, NodeMetadata, NodeParameter
@@ -58,6 +58,7 @@ import time
58
58
  import uuid
59
59
  from abc import ABC, abstractmethod
60
60
  from dataclasses import asdict, dataclass, field
61
+ from datetime import datetime
61
62
  from enum import Enum
62
63
  from typing import Any, AsyncGenerator, Callable, Dict, List, Optional, Union
63
64
 
@@ -322,6 +323,31 @@ class ResourceTemplate:
322
323
  return result
323
324
 
324
325
 
326
+ class ResourceChangeType(Enum):
327
+ """Types of resource changes."""
328
+
329
+ CREATED = "created"
330
+ UPDATED = "updated"
331
+ DELETED = "deleted"
332
+
333
+
334
+ @dataclass
335
+ class ResourceChange:
336
+ """Represents a resource change event."""
337
+
338
+ type: ResourceChangeType
339
+ uri: str
340
+ timestamp: datetime
341
+
342
+ def to_dict(self) -> Dict[str, Any]:
343
+ """Convert to dictionary for serialization."""
344
+ return {
345
+ "type": self.type.value,
346
+ "uri": self.uri,
347
+ "timestamp": self.timestamp.isoformat(),
348
+ }
349
+
350
+
325
351
  @dataclass
326
352
  class ToolResult:
327
353
  """Enhanced tool result with structured content."""