kailash 0.2.1__py3-none-any.whl → 0.3.0__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.
Files changed (37) hide show
  1. kailash/__init__.py +1 -1
  2. kailash/api/custom_nodes_secure.py +2 -2
  3. kailash/api/studio_secure.py +1 -1
  4. kailash/mcp/client_new.py +1 -1
  5. kailash/nodes/ai/a2a.py +1 -1
  6. kailash/nodes/api/__init__.py +26 -0
  7. kailash/nodes/api/monitoring.py +463 -0
  8. kailash/nodes/api/security.py +822 -0
  9. kailash/nodes/base.py +3 -3
  10. kailash/nodes/code/python.py +6 -0
  11. kailash/nodes/data/__init__.py +9 -0
  12. kailash/nodes/data/directory.py +278 -0
  13. kailash/nodes/data/event_generation.py +297 -0
  14. kailash/nodes/data/file_discovery.py +601 -0
  15. kailash/nodes/data/sql.py +2 -2
  16. kailash/nodes/transform/processors.py +32 -1
  17. kailash/runtime/async_local.py +1 -1
  18. kailash/runtime/docker.py +4 -4
  19. kailash/runtime/local.py +41 -4
  20. kailash/runtime/parallel.py +2 -2
  21. kailash/runtime/parallel_cyclic.py +2 -2
  22. kailash/runtime/testing.py +2 -2
  23. kailash/utils/templates.py +6 -6
  24. kailash/visualization/performance.py +16 -3
  25. kailash/visualization/reports.py +5 -1
  26. kailash/workflow/convergence.py +1 -1
  27. kailash/workflow/cycle_analyzer.py +8 -1
  28. kailash/workflow/cyclic_runner.py +1 -1
  29. kailash/workflow/graph.py +33 -6
  30. kailash/workflow/visualization.py +10 -2
  31. kailash-0.3.0.dist-info/METADATA +428 -0
  32. {kailash-0.2.1.dist-info → kailash-0.3.0.dist-info}/RECORD +36 -31
  33. kailash-0.2.1.dist-info/METADATA +0 -1617
  34. {kailash-0.2.1.dist-info → kailash-0.3.0.dist-info}/WHEEL +0 -0
  35. {kailash-0.2.1.dist-info → kailash-0.3.0.dist-info}/entry_points.txt +0 -0
  36. {kailash-0.2.1.dist-info → kailash-0.3.0.dist-info}/licenses/LICENSE +0 -0
  37. {kailash-0.2.1.dist-info → kailash-0.3.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,428 @@
1
+ Metadata-Version: 2.4
2
+ Name: kailash
3
+ Version: 0.3.0
4
+ Summary: Python SDK for the Kailash container-node architecture
5
+ Home-page: https://github.com/integrum/kailash-python-sdk
6
+ Author: Integrum
7
+ Author-email: Integrum <info@integrum.com>
8
+ Project-URL: Homepage, https://github.com/integrum/kailash-python-sdk
9
+ Project-URL: Bug Tracker, https://github.com/integrum/kailash-python-sdk/issues
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: networkx>=2.7
19
+ Requires-Dist: pydantic>=1.9
20
+ Requires-Dist: matplotlib>=3.5
21
+ Requires-Dist: pyyaml>=6.0
22
+ Requires-Dist: click>=8.0
23
+ Requires-Dist: pytest>=8.3.5
24
+ Requires-Dist: mcp[cli]>=1.9.2
25
+ Requires-Dist: pandas>=2.2.3
26
+ Requires-Dist: numpy>=2.2.5
27
+ Requires-Dist: scipy>=1.15.3
28
+ Requires-Dist: scikit-learn>=1.6.1
29
+ Requires-Dist: requests>=2.32.3
30
+ Requires-Dist: pytest-cov>=6.1.1
31
+ Requires-Dist: isort>=6.0.1
32
+ Requires-Dist: aiohttp>=3.12.4
33
+ Requires-Dist: ruff>=0.11.12
34
+ Requires-Dist: msal>=1.32.3
35
+ Requires-Dist: sphinx>=8.2.3
36
+ Requires-Dist: sphinx-rtd-theme>=3.0.2
37
+ Requires-Dist: sphinx-copybutton>=0.5.2
38
+ Requires-Dist: sphinxcontrib-mermaid>=1.0.0
39
+ Requires-Dist: sphinx-autobuild>=2024.10.3
40
+ Requires-Dist: autodoc>=0.5.0
41
+ Requires-Dist: myst-parser>=4.0.1
42
+ Requires-Dist: black>=25.1.0
43
+ Requires-Dist: psutil>=7.0.0
44
+ Requires-Dist: fastapi>=0.115.12
45
+ Requires-Dist: uvicorn[standard]>=0.31.0
46
+ Requires-Dist: pytest-asyncio>=1.0.0
47
+ Requires-Dist: pre-commit>=4.2.0
48
+ Requires-Dist: twine>=6.1.0
49
+ Requires-Dist: ollama>=0.5.1
50
+ Requires-Dist: sqlalchemy>=2.0.0
51
+ Requires-Dist: psycopg2-binary>=2.9.0
52
+ Requires-Dist: pymysql>=1.1.0
53
+ Requires-Dist: aiosqlite>=0.19.0
54
+ Requires-Dist: websockets>=12.0
55
+ Requires-Dist: httpx>=0.25.0
56
+ Requires-Dist: python-jose>=3.5.0
57
+ Requires-Dist: pytest-xdist>=3.6.0
58
+ Requires-Dist: pytest-timeout>=2.3.0
59
+ Requires-Dist: pytest-split>=0.9.0
60
+ Provides-Extra: dev
61
+ Requires-Dist: pytest>=7.0; extra == "dev"
62
+ Requires-Dist: pytest-cov>=3.0; extra == "dev"
63
+ Requires-Dist: black>=22.0; extra == "dev"
64
+ Requires-Dist: isort>=5.10; extra == "dev"
65
+ Requires-Dist: mypy>=0.9; extra == "dev"
66
+ Dynamic: author
67
+ Dynamic: home-page
68
+ Dynamic: license-file
69
+ Dynamic: requires-python
70
+
71
+ # Kailash Python SDK
72
+
73
+ <p align="center">
74
+ <a href="https://pypi.org/project/kailash/"><img src="https://img.shields.io/pypi/v/kailash.svg" alt="PyPI version"></a>
75
+ <a href="https://pypi.org/project/kailash/"><img src="https://img.shields.io/pypi/pyversions/kailash.svg" alt="Python versions"></a>
76
+ <a href="https://pepy.tech/project/kailash"><img src="https://static.pepy.tech/badge/kailash" alt="Downloads"></a>
77
+ <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License">
78
+ <img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code style: black">
79
+ <img src="https://img.shields.io/badge/tests-751%20passing-brightgreen.svg" alt="Tests: 751 passing">
80
+ <img src="https://img.shields.io/badge/coverage-100%25-brightgreen.svg" alt="Coverage: 100%">
81
+ </p>
82
+
83
+ <p align="center">
84
+ <strong>A Pythonic SDK for the Kailash container-node architecture</strong>
85
+ </p>
86
+
87
+ <p align="center">
88
+ Build workflows that seamlessly integrate with Kailash's production environment while maintaining the flexibility to prototype quickly and iterate locally.
89
+ </p>
90
+
91
+ ---
92
+
93
+ ## ✨ Highlights
94
+
95
+ - 🚀 **Rapid Prototyping**: Create and test workflows locally without containerization
96
+ - 🏗️ **Architecture-Aligned**: Automatically ensures compliance with Kailash standards
97
+ - 🔄 **Seamless Handoff**: Export prototypes directly to production-ready formats
98
+ - 📊 **Real-time Monitoring**: Live dashboards with WebSocket streaming and performance metrics
99
+ - 🧩 **Extensible**: Easy to create custom nodes for domain-specific operations
100
+ - ⚡ **Fast Installation**: Uses `uv` for lightning-fast Python package management
101
+ - 🤖 **AI-Powered**: Complete LLM agents, embeddings, and hierarchical RAG architecture
102
+ - 🧠 **Retrieval-Augmented Generation**: Full RAG pipeline with intelligent document processing
103
+ - 🌐 **REST API Wrapper**: Expose any workflow as a production-ready API in 3 lines
104
+ - 🚪 **Multi-Workflow Gateway**: Manage multiple workflows through unified API with MCP integration
105
+ - 🤖 **Self-Organizing Agents**: Autonomous agent pools with intelligent team formation and convergence detection
106
+ - 🧠 **Agent-to-Agent Communication**: Shared memory pools and intelligent caching for coordinated multi-agent systems
107
+ - 🔒 **Production Security**: Comprehensive security framework with path traversal prevention, code sandboxing, and audit logging
108
+ - 🎨 **Visual Workflow Builder**: Kailash Workflow Studio - drag-and-drop interface for creating and managing workflows (coming soon)
109
+ - 🔁 **Cyclic Workflows (v0.2.0)**: Universal Hybrid Cyclic Graph Architecture with 30,000+ iterations/second performance
110
+ - 🛠️ **Developer Tools**: CycleAnalyzer, CycleDebugger, CycleProfiler for production-ready cyclic workflows
111
+ - 📈 **High Performance**: Optimized execution engine supporting 100,000+ iteration workflows
112
+ - 📁 **Enhanced Documentation (v0.2.2)**: Reorganized structure with production-ready workflow library
113
+
114
+ ## 🎯 Who Is This For?
115
+
116
+ The Kailash Python SDK is designed for:
117
+
118
+ - **AI Business Coaches (ABCs)** who need to prototype workflows quickly
119
+ - **Data Scientists** building ML pipelines compatible with production infrastructure
120
+ - **Engineers** who want to test Kailash workflows locally before deployment
121
+ - **Teams** looking to standardize their workflow development process
122
+
123
+ ## 🚀 Quick Start
124
+
125
+ ### Installation
126
+
127
+ **Requirements:** Python 3.11 or higher
128
+
129
+ ```bash
130
+ # Install uv if you haven't already
131
+ curl -LsSf https://astral.sh/uv/install.sh | sh
132
+
133
+ # For users: Install from PyPI
134
+ pip install kailash
135
+
136
+ # For developers: Clone and sync
137
+ git clone https://github.com/integrum/kailash-python-sdk.git
138
+ cd kailash-python-sdk
139
+ uv sync
140
+
141
+ # Set up SDK development infrastructure (optional but recommended)
142
+ ./scripts/setup-sdk-environment.sh
143
+ ```
144
+
145
+ ### Your First Workflow
146
+
147
+ ```python
148
+ from kailash.workflow import Workflow
149
+ from kailash.nodes.data import CSVReaderNode
150
+ from kailash.nodes.code import PythonCodeNode
151
+ from kailash.runtime.local import LocalRuntime
152
+ import pandas as pd
153
+
154
+ # Create a workflow
155
+ workflow = Workflow("customer_analysis", name="customer_analysis")
156
+
157
+ # Add data reader
158
+ reader = CSVReaderNode(file_path="customers.csv")
159
+ workflow.add_node("read_customers", reader)
160
+
161
+ # Add custom processing using Python code
162
+ def analyze_customers(data):
163
+ """Analyze customer data and compute metrics."""
164
+ df = pd.DataFrame(data)
165
+ # Convert total_spent to numeric
166
+ df['total_spent'] = pd.to_numeric(df['total_spent'])
167
+ return {
168
+ "result": {
169
+ "total_customers": len(df),
170
+ "avg_spend": df["total_spent"].mean(),
171
+ "top_customers": df.nlargest(10, "total_spent").to_dict("records")
172
+ }
173
+ }
174
+
175
+ processor = PythonCodeNode(code=analyze_customers)
176
+ workflow.add_node("analyze", processor)
177
+
178
+ # Connect nodes
179
+ workflow.connect("read_customers", "analyze", mapping={"data": "data"})
180
+
181
+ # Run locally
182
+ runtime = LocalRuntime()
183
+ results, run_id = runtime.execute(workflow, parameters={
184
+ "read_customers": {"file_path": "customers.csv"}
185
+ })
186
+
187
+ print(f"Total customers: {results['analyze']['result']['total_customers']}")
188
+ print(f"Average spend: ${results['analyze']['result']['avg_spend']:.2f}")
189
+ ```
190
+
191
+ ### Export to Production
192
+
193
+ ```python
194
+ # Export to Kailash container format
195
+ from kailash.utils.export import export_workflow
196
+
197
+ export_workflow(workflow, "customer_analysis.yaml")
198
+ ```
199
+
200
+ ## 📚 Documentation
201
+
202
+ ### For SDK Users
203
+
204
+ **Build solutions with the SDK:**
205
+ - `sdk-users/` - Everything you need to build with Kailash
206
+ - `developer/` - Node creation patterns and troubleshooting
207
+ - `workflows/` - Production-ready workflow library (NEW in v0.2.2)
208
+ - Quick-start patterns (30-second workflows)
209
+ - Industry-specific solutions (healthcare, finance)
210
+ - Enterprise integration patterns
211
+ - `essentials/` - Quick reference and cheatsheets
212
+ - `nodes/` - Comprehensive node catalog (66+ nodes)
213
+ - `patterns/` - Architectural patterns
214
+
215
+ ### For SDK Contributors
216
+
217
+ **Develop the SDK itself:**
218
+ - `sdk-contributors/` - Internal SDK development resources
219
+ - `architecture/` - ADRs and design decisions
220
+ - `project/` - TODOs and development tracking
221
+ - `training/` - LLM training examples
222
+
223
+ ### Shared Resources
224
+
225
+ - `shared/` - Resources for both users and contributors
226
+ - `mistakes/` - Common error patterns and solutions
227
+ - `frontend/` - UI development resources
228
+
229
+ ### Quick Links
230
+
231
+ - [SDK User Guide](sdk-users/README.md) - Build with the SDK
232
+ - [SDK Contributor Guide](sdk-contributors/README.md) - Develop the SDK
233
+ - [API Documentation](https://integrum.github.io/kailash-python-sdk)
234
+ - [Examples](examples/)
235
+ - [Release Notes](CHANGELOG.md)
236
+
237
+ ## 🔥 Advanced Features
238
+
239
+ ### Cyclic Workflows (Enhanced in v0.2.2)
240
+
241
+ Build iterative workflows with the new CycleBuilder API:
242
+
243
+ ```python
244
+ # Create an optimization cycle
245
+ workflow.create_cycle("optimization_loop")
246
+ .connect("processor", "processor")
247
+ .max_iterations(100)
248
+ .converge_when("quality >= 0.95")
249
+ .timeout(30)
250
+ .build()
251
+ ```
252
+
253
+ ### Self-Organizing Agent Pools
254
+
255
+ Create teams of AI agents that autonomously coordinate:
256
+
257
+ ```python
258
+ from kailash.nodes.ai import SelfOrganizingAgentPoolNode
259
+
260
+ agent_pool = SelfOrganizingAgentPoolNode(
261
+ formation_strategy="capability_matching",
262
+ convergence_strategy="quality_voting",
263
+ min_agents=3,
264
+ max_agents=10
265
+ )
266
+ workflow.add_node("agent_team", agent_pool)
267
+ ```
268
+
269
+ ### Hierarchical RAG Pipeline
270
+
271
+ Build sophisticated document processing systems:
272
+
273
+ ```python
274
+ from kailash.nodes.data import DocumentSourceNode, HierarchicalChunkerNode
275
+ from kailash.nodes.ai import EmbeddingGeneratorNode
276
+
277
+ # Build a complete RAG pipeline
278
+ workflow.add_node("docs", DocumentSourceNode(directory="./knowledge"))
279
+ workflow.add_node("chunker", HierarchicalChunkerNode(chunk_size=512))
280
+ workflow.add_node("embedder", EmbeddingGeneratorNode(provider="openai"))
281
+ ```
282
+
283
+ ### REST API Wrapper
284
+
285
+ Transform any workflow into a production API:
286
+
287
+ ```python
288
+ from kailash.api import WorkflowAPI
289
+
290
+ # Create API from workflow
291
+ api = WorkflowAPI(workflow, host="0.0.0.0", port=8000)
292
+ api.run()
293
+
294
+ # Your workflow is now available at:
295
+ # POST http://localhost:8000/execute
296
+ # GET http://localhost:8000/workflow/info
297
+ ```
298
+
299
+ ## 🏗️ Key Components
300
+
301
+ ### Nodes (60+ built-in)
302
+
303
+ - **Data**: CSVReaderNode, JSONReaderNode, SQLDatabaseNode, DirectoryReaderNode
304
+ - **Transform**: DataTransformer, DataFrameFilter, DataFrameJoiner
305
+ - **AI/ML**: LLMAgentNode, EmbeddingGeneratorNode, A2ACoordinatorNode
306
+ - **API**: RESTClientNode, GraphQLNode, AuthNode
307
+ - **Logic**: SwitchNode, MergeNode, ConvergenceCheckerNode
308
+ - **Code**: PythonCodeNode, WorkflowNode
309
+
310
+ ### Runtimes
311
+
312
+ - **LocalRuntime**: Test workflows on your machine
313
+ - **DockerRuntime**: Run in containers (coming soon)
314
+ - **ParallelRuntime**: Execute nodes concurrently
315
+ - **CyclicWorkflowExecutor**: Optimized for iterative workflows
316
+
317
+ ### Visualization
318
+
319
+ - **Mermaid diagrams**: Workflow structure visualization
320
+ - **Real-time dashboard**: Monitor execution with WebSocket streaming
321
+ - **Performance metrics**: Track execution time, resource usage
322
+
323
+ ## 🧪 Testing Your Workflows
324
+
325
+ ```python
326
+ # Use the testing runtime for unit tests
327
+ from kailash.runtime.testing import TestingRuntime
328
+
329
+ runtime = TestingRuntime()
330
+ runtime.set_mock_result("read_customers", {"data": test_data})
331
+ results, run_id = runtime.execute(workflow)
332
+ assert results["analyze"]["result"]["total_customers"] == len(test_data)
333
+ ```
334
+
335
+ ## 🚢 Production Deployment
336
+
337
+ 1. **Export your workflow**:
338
+ ```python
339
+ export_workflow(workflow, "workflow.yaml", format="kailash")
340
+ ```
341
+
342
+ 2. **Deploy to Kailash**:
343
+ ```bash
344
+ kailash deploy workflow.yaml --environment production
345
+ ```
346
+
347
+ 3. **Monitor in real-time**:
348
+ ```python
349
+ from kailash.visualization import DashboardServer
350
+
351
+ server = DashboardServer(port=8080)
352
+ server.start()
353
+ # Open http://localhost:8080 for live monitoring
354
+ ```
355
+
356
+ ## 🤝 Contributing
357
+
358
+ We welcome contributions! We use a **Claude Code-driven workflow** for all team collaboration.
359
+
360
+ ### 🚀 New Team Member?
361
+ **Start Here → [NEW_TEAM_MEMBER.md](NEW_TEAM_MEMBER.md)**
362
+
363
+ ### For Contributors
364
+ - **SDK Users**: See [sdk-users/CLAUDE.md](sdk-users/CLAUDE.md) for building with the SDK
365
+ - **SDK Contributors**: See [sdk-contributors/CLAUDE.md](sdk-contributors/CLAUDE.md) for SDK development
366
+ - **Team Collaboration**: Use [Claude Code Workflow System](sdk-contributors/operations/claude-code-workflows/) for all project management
367
+
368
+ ### Claude Code Workflow
369
+ All project management is done through conversational interaction with Claude Code:
370
+ - **No manual TODO editing** - Claude Code handles all updates
371
+ - **No direct GitHub issues** - Created through planning sessions
372
+ - **All progress tracked** - Through natural conversation
373
+
374
+ See [Contributing Guide](CONTRIBUTING.md) for complete details.
375
+
376
+ ### Development Setup
377
+
378
+ ```bash
379
+ # Clone the repository
380
+ git clone https://github.com/integrum/kailash-python-sdk.git
381
+ cd kailash-python-sdk
382
+
383
+ # Install with development dependencies
384
+ uv sync
385
+
386
+ # Run tests
387
+ pytest
388
+
389
+ # Run linting
390
+ black .
391
+ isort .
392
+ ruff check .
393
+
394
+ # Test all examples
395
+ python scripts/test-all-examples.py
396
+ ```
397
+
398
+ ## 📈 Project Status
399
+
400
+ - ✅ Core workflow engine
401
+ - ✅ 60+ production-ready nodes
402
+ - ✅ Local and parallel runtimes
403
+ - ✅ Export to container format
404
+ - ✅ Real-time monitoring
405
+ - ✅ Comprehensive test suite (751 tests)
406
+ - ✅ Self-organizing agent systems
407
+ - ✅ Hierarchical RAG architecture
408
+ - ✅ REST API wrapper
409
+ - ✅ Cyclic workflow support with CycleBuilder API
410
+ - ✅ Production security framework
411
+ - ✅ Comprehensive workflow library (v0.2.2)
412
+ - 🚧 Visual workflow builder (in progress)
413
+ - 🚧 Docker runtime
414
+ - 🚧 Cloud deployment tools
415
+
416
+ ## 📄 License
417
+
418
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
419
+
420
+ ## 🙏 Acknowledgments
421
+
422
+ Built with ❤️ by the Integrum team for the Kailash ecosystem.
423
+
424
+ ---
425
+
426
+ <p align="center">
427
+ <strong>Ready to build your first workflow? Check out our <a href="examples/">examples</a> or dive into the <a href="sdk-users/README.md">documentation</a>!</strong>
428
+ </p>
@@ -1,4 +1,4 @@
1
- kailash/__init__.py,sha256=18nnQJjpf6wotVZ4nNepy5fR8UVttlbAktoQxTepsgk,902
1
+ kailash/__init__.py,sha256=bvM6Yopv0yxkaLCEHIK3IdJJ4yy3SSJqyIw1b6_nX_8,902
2
2
  kailash/__main__.py,sha256=vr7TVE5o16V6LsTmRFKG6RDKUXHpIWYdZ6Dok2HkHnI,198
3
3
  kailash/access_control.py,sha256=zLJ6vrBQj9VDO4SP9Mfci9OOu8II5tYq4ERSmWhycg8,25600
4
4
  kailash/manifest.py,sha256=8H4ObT3qvdV0FQDXYUF49ppbmOvnK1PmmpdC6h5npn8,24892
@@ -8,12 +8,12 @@ kailash/api/__init__.py,sha256=9Ofp4qTZCry_hovrtSjPjqyZbrccoPqyz9za_TfSHVg,445
8
8
  kailash/api/__main__.py,sha256=79v7N6eCFQ2Otcv66wAv2iM2hD6mwJ__pNiR9yy_qd4,120
9
9
  kailash/api/auth.py,sha256=UTGnslYwQxRsz0-kzLiu_pn0QjUrjwDU1EFVCHv15DI,20167
10
10
  kailash/api/custom_nodes.py,sha256=e4xqdm4i8bGMGyt3H3Tv7cXSALdgFFyqRL031IDmI9M,10690
11
- kailash/api/custom_nodes_secure.py,sha256=GAyH2WTvUnvTfdSa6IWKz5d1DW_gbaSQAWTFYiu4k2M,13258
11
+ kailash/api/custom_nodes_secure.py,sha256=wGzuZt2HtYAD3yMMBCqH-PIBYqwljUccFEdJXwgmDPM,13260
12
12
  kailash/api/database.py,sha256=tBslJjpM6cHdicnQGnGXUuc-V6Qkm6UrEfpFP8WwtsU,19477
13
13
  kailash/api/gateway.py,sha256=rp0Doz7HaEgLFXRqZvzMk6EfK-M6HmMHcSAJSv28FL8,12576
14
14
  kailash/api/mcp_integration.py,sha256=Pvm65Nb1g4-QGKqweeRE-hMJe0HvqhljHB-UTtItnVc,14541
15
15
  kailash/api/studio.py,sha256=HNauboOnWTHNcxyulgng4E8MRiZJGqd80u5d8SxPtXU,35056
16
- kailash/api/studio_secure.py,sha256=sUqvsaTF7P-d2riviuvfFc_sujhjAnnhGcdhqi0H8Ls,32191
16
+ kailash/api/studio_secure.py,sha256=VuvvSOYDuwEqiCJbZkHaUETHOkVi83mLworjP4eLeEw,32201
17
17
  kailash/api/workflow_api.py,sha256=8e4YSeeTQQT_9GJ_5-kWQFhL8v5-qqVWFv3ToREzBXE,13177
18
18
  kailash/cli/__init__.py,sha256=kJaqsBp3fRmagJhqA6LMwMbEa_Vkz93hIPH3W5Mn5r0,97
19
19
  kailash/cli/commands.py,sha256=K5slsaoYSw7ZpVgePvobN6K4w9_dXJugBTIY0aifKik,18236
@@ -21,19 +21,19 @@ kailash/mcp/__init__.py,sha256=ZEhYIsPcy3sgywvdcr4w2FBjtqorOGXxHCngxK4sy9k,1804
21
21
  kailash/mcp/__main__.py,sha256=ohgrksZZ8Z5IDZToH12IUVtW3dl5NtQ63UmprNzGFZ0,215
22
22
  kailash/mcp/ai_registry_server.py,sha256=mOVNyQdtiWIalWzXFILl6rt0TfnbJ4RD5ZiADjT3kdk,28155
23
23
  kailash/mcp/client.py,sha256=X914ddaAY7NdOxIin-5lLQKDZOLT86u12q0fxXgzGFk,16121
24
- kailash/mcp/client_new.py,sha256=I9a68gSMWaBv7WRgvDRvHAfm7fdMO_0sbJL0eM9b3gw,10322
24
+ kailash/mcp/client_new.py,sha256=ZcWv9ybYQrtIfiUzAswn29itGJLWYSuJ0pjjmGsqV9A,10323
25
25
  kailash/mcp/server.py,sha256=ESwOulBkEjHJp22lzmCQt33YCz2CQmMFZzhPL0AV4ac,8250
26
26
  kailash/mcp/server_new.py,sha256=GukeeVSNuJG99hYo0cQs-oiPhT8UUaxr9yl96NYClXc,10914
27
27
  kailash/mcp/servers/__init__.py,sha256=Ajho8j0chg36_DlMsyP6DLsvODgGesOvO0f95BgLxro,325
28
28
  kailash/mcp/servers/ai_registry.py,sha256=NLqhsOTD6L8HFOprY6IwaYD-kkgdZD3eg_sIuUPiAhY,10003
29
29
  kailash/nodes/__init__.py,sha256=MO2N1k-lq68CuQvsWiYV2GQG0T15X41E1aRkLFL46kU,650
30
- kailash/nodes/base.py,sha256=k8sKGsMriENzjg0cUtBZ2rUNuD6cvMNZX-DUfdZXxNg,38189
30
+ kailash/nodes/base.py,sha256=3QjoGS2MJwnduVY0K8ug9rl68wrdp1dZoJv9W0XaJug,38243
31
31
  kailash/nodes/base_async.py,sha256=t9Hf3F30q6CMDfgd2BFkXYIJMEGdEir8xdWCl9euqAs,6622
32
32
  kailash/nodes/base_cycle_aware.py,sha256=NJh-8zOfdgBzAK_3faMl9i2aqCp3f4RG1aQ-IJbSSxo,13293
33
33
  kailash/nodes/base_with_acl.py,sha256=aeIhLX3B17twYe_B-tba6e47bj7tZ9CstnlCana0aps,11868
34
34
  kailash/nodes/mixins.py,sha256=wIG0No-nUSnk6EBnrW4vQt6m_nDVQHhcR2UOHbIyWRE,12116
35
35
  kailash/nodes/ai/__init__.py,sha256=rslxIS8jlovshiNgWqVzQjD_kfT_3h3Ct03sk-iRe6U,2202
36
- kailash/nodes/ai/a2a.py,sha256=U1nDjWkSxlN98b1EwRN-74HtuONHdOoVc-jYEnpQA80,69303
36
+ kailash/nodes/ai/a2a.py,sha256=X8abbpOsi_DQOYtl8X0mJYmY77pBKaDR9LimO9C6cNI,69313
37
37
  kailash/nodes/ai/agents.py,sha256=yygZw8eJPt7iuRm4jZR-I2wtfIVrIH8OxoorgZ2HNrw,20379
38
38
  kailash/nodes/ai/ai_providers.py,sha256=rtFOvsyUlcoD0voeiCHyBR7ELcRMfJa5T2T7wFyB5js,53026
39
39
  kailash/nodes/ai/embedding_generator.py,sha256=UZagRpoybTlV_LMCt0HMUuc1TYFh5yLfs38mqdLItEI,31846
@@ -42,20 +42,25 @@ kailash/nodes/ai/iterative_llm_agent.py,sha256=pUPIPt5TcvfCmw9Tw8fp3gQ6AfrLNAEIH
42
42
  kailash/nodes/ai/llm_agent.py,sha256=huU3GwJVOukn0qyJc6T7Nh2v-y-JvJsK-53bCUAZAg0,60780
43
43
  kailash/nodes/ai/models.py,sha256=t90NvEIEJJxdBXwW0DhKACQG1Um-sJPm-lBdPBt8-ZA,16399
44
44
  kailash/nodes/ai/self_organizing.py,sha256=NCUoq8y3aYZOJNToZhwgl0ExsE9vQaWN0CWAAWR4U7E,60584
45
- kailash/nodes/api/__init__.py,sha256=1yFcWVYyc-bsilknBT5aAGV7jcp-Ysu_afRilNJlD0A,1529
45
+ kailash/nodes/api/__init__.py,sha256=dzK6kiAdJcTQa7NSBkSmd5CCTSefBlMZMewGlTJSr0c,2334
46
46
  kailash/nodes/api/auth.py,sha256=cpHUIZ6-YFo3jkW0K4-eBP38EZCl7Lrfibg5XTZaPWo,19427
47
47
  kailash/nodes/api/graphql.py,sha256=PH1ccwbw-fsBfKHl8L_whkZSRMgGAPKM7kkLTmwci5s,16994
48
48
  kailash/nodes/api/http.py,sha256=XTkHmmVnGyvIqpNhmjUsRNuk-qYzvWdyF89cg5zHxI8,38396
49
+ kailash/nodes/api/monitoring.py,sha256=D8NKstHO3sBIggXzKMh1JyU38M2lhIGjJnvqv7illpI,17512
49
50
  kailash/nodes/api/rate_limiting.py,sha256=f-cY_ee5juWHyKT3FqtaTk-SjEgMWX2DxU10Y41DZG4,19728
50
51
  kailash/nodes/api/rest.py,sha256=yRLcNuIGVq5Nc1z759tc3Nqt3c2d7UnMqE7lZ8tVKMM,43357
52
+ kailash/nodes/api/security.py,sha256=doPTI_ukDgiVufznWvUg1ujqnPkprLI9vQyVOkZvJXQ,31422
51
53
  kailash/nodes/code/__init__.py,sha256=L3QBfnITPb6v-Wbq2ezNWt8xDlC4uGaTgrkqIJ9vGKU,1191
52
- kailash/nodes/code/python.py,sha256=hUOdS2_dWEcLWkH5m_VeFgJ8tajY0FjJLmDQfHYbbRs,38775
53
- kailash/nodes/data/__init__.py,sha256=TjMgG-Z7JzbVklnT12EZLt06RzxhXYMRMINWyZ46xm8,4059
54
+ kailash/nodes/code/python.py,sha256=v_EcP5O8mrqLRSlGXUCpy58e-1rO_rab4u5pC14dKB0,39006
55
+ kailash/nodes/data/__init__.py,sha256=doke_AW6pax3rONERFPgYv0EGJUcSBq40d-P9Bty0OM,4389
56
+ kailash/nodes/data/directory.py,sha256=yQQSHm7IcfGSY0LEmjOVg_DnTD4Ugt8YE7ymzM_NSKA,9948
57
+ kailash/nodes/data/event_generation.py,sha256=apLO7jtE2fOgNs0_2AJX_NFSMDE6s4h-PMYEnXedFbg,11626
58
+ kailash/nodes/data/file_discovery.py,sha256=Dicu7Pj8vjWs1bZ8_fjXBfWjOTprKK7008ltwh76_pQ,21939
54
59
  kailash/nodes/data/readers.py,sha256=zVAXHAX8yZp5fomlnjc8eXODjjiO8oaxeRWrg7uRk6s,19375
55
60
  kailash/nodes/data/retrieval.py,sha256=ANQXk0h5QI_NX_VdgABJEHbKWI3wtiRXCNgoap27M04,7516
56
61
  kailash/nodes/data/sharepoint_graph.py,sha256=UIyy8Q-9bGTzj-hjcxne8DkBJvr6Eig1HgY1JqGZqss,22437
57
62
  kailash/nodes/data/sources.py,sha256=MaXFPSDg4VN7TN5iNMZxwhxgj6nNpH43tQYmkxhHxjE,3638
58
- kailash/nodes/data/sql.py,sha256=wQNcK_5BPW0d6czTRMnxLfpsWQVd-Y-Xhmxg4afi8Fo,30443
63
+ kailash/nodes/data/sql.py,sha256=ORINaMqVweK2pa6ZeK7MXwPCnSRF5OIwF0Roqytu0rE,30441
59
64
  kailash/nodes/data/streaming.py,sha256=OAME3quVU9NbQFMBM6X-Yiri8Q5WGlEi91U4oGs78Fw,35223
60
65
  kailash/nodes/data/vector_db.py,sha256=rywRU65g7ou9v1QPSZmC5esnqC-O0DezGOJS37wKdJs,30556
61
66
  kailash/nodes/data/writers.py,sha256=07gDN44i3k0nRv1qRVJYMWmvhyJxcQ4OiDPZ9dzfDIc,17543
@@ -70,16 +75,16 @@ kailash/nodes/mixins/mcp.py,sha256=kE3qhqHlyfUquPyk13u73zfj9oYWuhfrsjWo6q1xbIM,6
70
75
  kailash/nodes/transform/__init__.py,sha256=sIUk7XMEl3x_XKNiRIyVtHmbLRUa0jHj1fEuUyELT_s,584
71
76
  kailash/nodes/transform/chunkers.py,sha256=qh2wYq6bdo5qGoDRLrowDrpl4VinRO4hDOj05DOr3RY,2580
72
77
  kailash/nodes/transform/formatters.py,sha256=02T87cQ4nVJoUKV9spEBzKa1YxtbV_KurngbhnfkVao,3078
73
- kailash/nodes/transform/processors.py,sha256=BZjDigpHD5pFxyZ0sty7-jpdEmD11euQip9N3U4Uzlw,18490
78
+ kailash/nodes/transform/processors.py,sha256=C3gc3qxLvXpHh6uAHsS23aI5fB0SGkRnBCaEBykqktw,19906
74
79
  kailash/runtime/__init__.py,sha256=CvU-qBMESYYISqFOlYlLsYJrXJu0Gqr4x6yr4Ob_Rng,278
75
80
  kailash/runtime/access_controlled.py,sha256=hEpLv9hwaaJoD03YTkUnr4rWEatFvgRrhu4sa1RTUU4,17274
76
- kailash/runtime/async_local.py,sha256=h8NrwgXOEX-pgozPS1_TPLCrWeSorf0AqridKX1yI2w,12264
77
- kailash/runtime/docker.py,sha256=U0nU4fGTLA59H25mBDFC6EkTXry-5bwXkWUgRw1qBqc,23559
78
- kailash/runtime/local.py,sha256=HCMOkezJ9L3sTWO1x4dAnLMGroaFWwm42MvU-9PCPZs,19001
79
- kailash/runtime/parallel.py,sha256=VPVSBglVqdnMyyHMgThDedbghK47f6-2Jx7434BAlz4,21129
80
- kailash/runtime/parallel_cyclic.py,sha256=vAlg_XvdMrrBuDbdhXhI88FCPYgIJ_t--zjKi1kJB1A,19942
81
+ kailash/runtime/async_local.py,sha256=Pt2Lfg_ri7GlbPT8riLCosgtm9TuiMfQvoWKDv02Dj4,12260
82
+ kailash/runtime/docker.py,sha256=ZUlrIohLRb6_417-V749_CiDQcPRCqgK0ucjEMoN9nI,23575
83
+ kailash/runtime/local.py,sha256=ygRzivuisVdxi3pkZpReQ3xTjjOmKlrfrdemQIRjj7U,20967
84
+ kailash/runtime/parallel.py,sha256=fLmgjR8XLOCz6Dia_Vkgn6nXL30hAubRF1TkT9_EUxA,21154
85
+ kailash/runtime/parallel_cyclic.py,sha256=nGqgRdGyrl5Bnwp8ZFP9iYTxnJRU5OYQaD2yQsCj_Tg,19967
81
86
  kailash/runtime/runner.py,sha256=wzTiC8hHoy3dca5NRImaw2qfjH1bkUJR2UaFwCkTV6Y,3246
82
- kailash/runtime/testing.py,sha256=UJdLD7Eh45sa3oIWy6Pe0LA6yf9NcY_9r8YXWUwSuEQ,11578
87
+ kailash/runtime/testing.py,sha256=zp2BcnNp3Ljia1iQ1XbOl6jE1TFKiejTlOLes_zZzhk,11570
83
88
  kailash/tracking/__init__.py,sha256=nhyecV24JuB_D-veJ3qw7h4oO8Sbdmyb6RvPS6VQktU,305
84
89
  kailash/tracking/manager.py,sha256=C7DEMLJN6oQwKnISHqwRbDuGdYs0_j0ATEE3FJjF8eA,28135
85
90
  kailash/tracking/metrics_collector.py,sha256=8CvNK3lUIN7BfGy0Re-2WrNKM3J0vx8vjfd-uyvaJJs,11820
@@ -90,24 +95,24 @@ kailash/tracking/storage/database.py,sha256=3pHaohN_tuP3bfV2gCD8vOdqJSZhuKlGRjig
90
95
  kailash/tracking/storage/filesystem.py,sha256=7Cmpd1CEWhtQu7Buf71d2Nda0r1btJEa7FuilctDP5w,19891
91
96
  kailash/utils/__init__.py,sha256=pFKhHJxU_kyFE9aGT5recw5E-3nbfVF5pMHepBJWB2E,253
92
97
  kailash/utils/export.py,sha256=LIahj_qIM0vaC5rFnV_iVGaL92jRp1WkYmi8pEgf6yE,31964
93
- kailash/utils/templates.py,sha256=WBZMd8-HoGB47nhJTSwxEkJi9etfNppOTiwtlZe2DFI,22049
98
+ kailash/utils/templates.py,sha256=cb72aN0JIm9WQHxYQupj3vybcBKSnWhakzpHNGLxkME,22014
94
99
  kailash/visualization/__init__.py,sha256=6bvgE_Rt8z3Rf4kSvdWvZNaTYvbofRHc_QbGlC0xDYE,1880
95
100
  kailash/visualization/api.py,sha256=jKjfxuufSsXZEsEWIu6_FF7XHQsjjO2d5MJfO0F8S20,28890
96
101
  kailash/visualization/dashboard.py,sha256=euAyqTu5QWwcUOhLBcdYrKnJdFVX_pQThlNLp-yYbaA,32874
97
- kailash/visualization/performance.py,sha256=qW4sI8ios8__j5-qXUhN7Pa3mE-9E3JTEBkFkt7fSY8,28053
98
- kailash/visualization/reports.py,sha256=FKERee_SUm12P3QEBwm4Up_WZYcgXPJfx_0ZAzcUNug,52671
102
+ kailash/visualization/performance.py,sha256=KqLObRImyfS3QnaGnX40Qw1cmb9vy5qZ2JUK6riQ080,28478
103
+ kailash/visualization/reports.py,sha256=GyfGv0mRlfWUXppix6jxhU-v7Z1USHrWwDr17opBOcw,52847
99
104
  kailash/workflow/__init__.py,sha256=x-yL8h6tsXq5gZj_fVYKJhyYJOEMFbaVXTNIomE-CDo,1011
100
105
  kailash/workflow/builder.py,sha256=zoNQT2LUym1ykkoVz5RK4O2aqsmZWGNXHkAnCi8xyUg,7683
101
- kailash/workflow/convergence.py,sha256=OFoQvnVfFjjhIjncz_16uG8koKVLQC7QhfLP4G7mmH8,10039
102
- kailash/workflow/cycle_analyzer.py,sha256=x8nY8mvMsAIfatNdDr9WUUV1G-qOevuqBIv9PLZ-cnE,32355
106
+ kailash/workflow/convergence.py,sha256=Xu0HZQKjQ1_Zk-BpydflNaFhZLR76mDoZ0B6KDX3d2I,10040
107
+ kailash/workflow/cycle_analyzer.py,sha256=Bn8rAsG3J973t9rGapLRbuuu8fe1LSKhovxJ6EkSmKo,32665
103
108
  kailash/workflow/cycle_builder.py,sha256=UqxXYSGsHg7KTZY-pKJSECB8XVXR4XB6NePo6nTIi0Q,20932
104
109
  kailash/workflow/cycle_config.py,sha256=KjbbA5jnqPwyqey8AacLEvu4CJAI4hJtAuXSxZA6Ew0,28417
105
110
  kailash/workflow/cycle_debugger.py,sha256=fTdxMpLYtRZYSkmVd9YL9xuZnx6Vy4ZOrn6KEskcb6o,31642
106
111
  kailash/workflow/cycle_exceptions.py,sha256=9MY_AmRFwqweideAQjfVA8oYgCDMvqiFKb9WLtEvDMU,21944
107
112
  kailash/workflow/cycle_profiler.py,sha256=vZb5KO8zadN5aDktlZrpsFRonJhSptAkrfRkQlSN4WY,28582
108
113
  kailash/workflow/cycle_state.py,sha256=M7f60R8idkHpgNhziutiZV3TPV-cSCz5K_VChHfkj1o,10834
109
- kailash/workflow/cyclic_runner.py,sha256=VUPU-OMiZB_hBGBtfFwvMAVgzAONNt62C5HuUeNXO4w,37222
110
- kailash/workflow/graph.py,sha256=D0FyHlHAg1YVpiJrE-6yl5Tkj1uqk1SgT5ygObuSMLQ,51514
114
+ kailash/workflow/cyclic_runner.py,sha256=VjJUzNiPVPyOmlVs99FrTpHCTE7a8KRBRJJJ64QL7K4,37251
115
+ kailash/workflow/graph.py,sha256=THFh3pqVZEH7jnFyK-A11ppmdISugUcsuqk8bgBeZ6g,53058
111
116
  kailash/workflow/mermaid_visualizer.py,sha256=PU_uVeYqR1m59z-qhbQOJHztf0um3FYw9jpF3j22QYA,22351
112
117
  kailash/workflow/migration.py,sha256=h67EGYnMg32dukHBF9AdPeQh7mYTCO9O07pNsBTSeVc,31515
113
118
  kailash/workflow/mock_registry.py,sha256=oweiPQ-mBuDdzTUbo3qZAW6OaBKNqST_1vX32xMtcL4,1704
@@ -116,10 +121,10 @@ kailash/workflow/safety.py,sha256=pWXpl1ED76HejNoTn-M5fY4hVB-_-WBWP2_2uo4WGd0,11
116
121
  kailash/workflow/state.py,sha256=3vZkptVfPYqN-Q9aFwO2sUpmy-l1h5vIMVwh67uTwE4,7722
117
122
  kailash/workflow/templates.py,sha256=WCgN_Xeu9kpdC2Fqdh0NqyJc8ebvQyAK6ZfYyQM2lFM,24410
118
123
  kailash/workflow/validation.py,sha256=6Cgs_uTiznywJS6OQz0VuXpHdAjs2XfF88CGj7D3R7k,33094
119
- kailash/workflow/visualization.py,sha256=gSMT-jaSzQBufV4mDArWVPJj5bpNIxTa_NE796Rm8I8,19536
120
- kailash-0.2.1.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
121
- kailash-0.2.1.dist-info/METADATA,sha256=4rH2C-FhkntFmp5azX2YHbaks4E350YMj9V-ceOkgs4,53507
122
- kailash-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
123
- kailash-0.2.1.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
124
- kailash-0.2.1.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
125
- kailash-0.2.1.dist-info/RECORD,,
124
+ kailash/workflow/visualization.py,sha256=gOrsXyA1K2nqFl0XHpB7D-in0bKT2Un7OqDb8O8G-oU,19787
125
+ kailash-0.3.0.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
126
+ kailash-0.3.0.dist-info/METADATA,sha256=1qxdXgUpB_tExkuZ8uhKcFUoljg0Eq6cXPsrO3yBOok,14388
127
+ kailash-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
128
+ kailash-0.3.0.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
129
+ kailash-0.3.0.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
130
+ kailash-0.3.0.dist-info/RECORD,,