agentmesh-py 0.1.5__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 (55) hide show
  1. agentmesh_py-0.1.5.dist-info/METADATA +438 -0
  2. agentmesh_py-0.1.5.dist-info/RECORD +55 -0
  3. agentmesh_py-0.1.5.dist-info/WHEEL +5 -0
  4. agentmesh_py-0.1.5.dist-info/licenses/LICENSE +21 -0
  5. agentmesh_py-0.1.5.dist-info/top_level.txt +1 -0
  6. mesh/__init__.py +192 -0
  7. mesh/backends/__init__.py +11 -0
  8. mesh/backends/base.py +147 -0
  9. mesh/backends/memory.py +173 -0
  10. mesh/backends/sqlite.py +382 -0
  11. mesh/builders/__init__.py +7 -0
  12. mesh/builders/state_graph.py +638 -0
  13. mesh/checkpoints.py +260 -0
  14. mesh/core/__init__.py +19 -0
  15. mesh/core/events.py +504 -0
  16. mesh/core/executor.py +1851 -0
  17. mesh/core/graph.py +418 -0
  18. mesh/core/state.py +248 -0
  19. mesh/input_collection.py +555 -0
  20. mesh/interrupts.py +179 -0
  21. mesh/nodes/__init__.py +45 -0
  22. mesh/nodes/agent.py +1496 -0
  23. mesh/nodes/approval.py +254 -0
  24. mesh/nodes/base.py +177 -0
  25. mesh/nodes/condition.py +698 -0
  26. mesh/nodes/conversation.py +766 -0
  27. mesh/nodes/data_handler.py +395 -0
  28. mesh/nodes/dynamic_tool_selector.py +338 -0
  29. mesh/nodes/end.py +55 -0
  30. mesh/nodes/llm.py +925 -0
  31. mesh/nodes/loop.py +367 -0
  32. mesh/nodes/orchestrator.py +459 -0
  33. mesh/nodes/rag.py +361 -0
  34. mesh/nodes/start.py +91 -0
  35. mesh/nodes/sub_agent.py +95 -0
  36. mesh/nodes/subgraph.py +115 -0
  37. mesh/nodes/tool.py +235 -0
  38. mesh/parallel.py +427 -0
  39. mesh/parsers/__init__.py +10 -0
  40. mesh/parsers/react_flow.py +1411 -0
  41. mesh/parsers/validation.py +52 -0
  42. mesh/py.typed +1 -0
  43. mesh/streaming/__init__.py +9 -0
  44. mesh/streaming/iterator.py +65 -0
  45. mesh/streaming/modes.py +334 -0
  46. mesh/streaming/sse.py +171 -0
  47. mesh/subgraph.py +320 -0
  48. mesh/utils/__init__.py +31 -0
  49. mesh/utils/config.py +79 -0
  50. mesh/utils/errors.py +42 -0
  51. mesh/utils/input_parser.py +136 -0
  52. mesh/utils/mermaid.py +235 -0
  53. mesh/utils/registry.py +210 -0
  54. mesh/utils/translator_orchestrator.py +313 -0
  55. mesh/utils/variables.py +261 -0
@@ -0,0 +1,438 @@
1
+ Metadata-Version: 2.4
2
+ Name: agentmesh-py
3
+ Version: 0.1.5
4
+ Summary: Python Agent Graph Orchestration Engine - Build multi-agent workflows as executable graphs
5
+ Author-email: Richard Scheiwe <rscheiwe@users.noreply.github.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/rscheiwe/mesh
8
+ Project-URL: Documentation, https://github.com/rscheiwe/mesh#readme
9
+ Project-URL: Repository, https://github.com/rscheiwe/mesh
10
+ Project-URL: Issues, https://github.com/rscheiwe/mesh/issues
11
+ Keywords: agents,graph,orchestration,workflow,llm,ai,streaming
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
19
+ Requires-Python: >=3.11
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: pydantic>=2.0.0
23
+ Requires-Dist: aiosqlite>=0.19.0
24
+ Requires-Dist: openai>=1.0.0
25
+ Requires-Dist: httpx>=0.24.0
26
+ Requires-Dist: jsonpath-ng>=1.6.0
27
+ Requires-Dist: python-dotenv>=1.0.0
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
30
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
31
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
32
+ Requires-Dist: black>=23.0.0; extra == "dev"
33
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
34
+ Requires-Dist: mypy>=1.5.0; extra == "dev"
35
+ Provides-Extra: server
36
+ Requires-Dist: fastapi>=0.104.0; extra == "server"
37
+ Requires-Dist: sse-starlette>=1.8.0; extra == "server"
38
+ Requires-Dist: uvicorn>=0.24.0; extra == "server"
39
+ Provides-Extra: agents
40
+ Requires-Dist: openai-agents>=0.1.0; extra == "agents"
41
+ Provides-Extra: all
42
+ Requires-Dist: agentmesh-py[agents,dev,server]; extra == "all"
43
+ Dynamic: license-file
44
+
45
+ <div align="center">
46
+
47
+ <img src="assets/mesh-network.png" alt="Mesh Logo" width="400"/>
48
+
49
+ # Mesh: Python Agent Graph Orchestration Engine
50
+
51
+ **Build agent and multi-agent workflows as executable graphs**
52
+
53
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
54
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
55
+
56
+ </div>
57
+
58
+ ---
59
+
60
+ **Mesh** is a lightweight Python library for orchestrating multi-agent workflows as executable graphs. Build complex agent systems with token-by-token streaming, state management, and seamless integration with Vel and OpenAI Agents SDK.
61
+
62
+ ## Documentation
63
+
64
+ 📚 **[View Full Documentation →](https://rscheiwe.github.io/mesh)**
65
+
66
+ Comprehensive guides and API reference:
67
+
68
+ - **[Getting Started](https://rscheiwe.github.io/mesh/getting-started)** - Installation and configuration
69
+ - **[Quick Start](https://rscheiwe.github.io/mesh/quick-start)** - Build your first graph in 5 minutes
70
+ - **[Core Concepts](https://rscheiwe.github.io/mesh/concepts/graphs)** - Graphs, nodes, execution, events
71
+ - **[Guides](https://rscheiwe.github.io/mesh/guides/streaming)** - Streaming, loops, state management, variables
72
+ - **[Integrations](https://rscheiwe.github.io/mesh/integrations/vel)** - Vel, OpenAI Agents SDK
73
+ - **[API Reference](https://rscheiwe.github.io/mesh/api-reference)** - Complete API documentation
74
+ - **[Examples](https://rscheiwe.github.io/mesh/examples)** - Working code examples
75
+
76
+ ## Features
77
+
78
+ - **Graph-Based Workflows**: Build agent workflows as directed graphs with controlled cycles
79
+ - **Dual API**: Programmatic (LangGraph-style) and declarative (React Flow JSON) interfaces
80
+ - **Graph Visualization**: Generate Mermaid diagrams with color-coded node types
81
+ - **Token-by-Token Streaming**: Real-time streaming with provider-agnostic events
82
+ - **Advanced Event Types**: Reasoning (o1/o3), usage tracking, citations, multi-modal files, custom events
83
+ - **Event Translation**: Use Vel's standardized events or provider-native events
84
+ - **Multiple Agent Frameworks**: Auto-detection for Vel and OpenAI Agents SDK
85
+ - **Multi-Provider Support**: OpenAI, Anthropic, Google via Vel translation
86
+ - **7 Core Node Types**: Start, End, Agent, LLM, Tool, Condition, Loop
87
+ - **State Persistence**: Pluggable backends (SQLite, in-memory, custom)
88
+ - **Variable Resolution**: Template variables for dynamic workflows
89
+ - **Production Ready**: Error handling, retries, and structured logging
90
+
91
+ ## Installation
92
+
93
+ ```bash
94
+ # Basic installation
95
+ pip install agentmesh-py
96
+
97
+ # With OpenAI Agents SDK support
98
+ pip install agentmesh-py[agents]
99
+
100
+ # With FastAPI server support
101
+ pip install agentmesh-py[server]
102
+
103
+ # Development installation
104
+ pip install agentmesh-py[dev]
105
+
106
+ # All features
107
+ pip install agentmesh-py[all]
108
+
109
+ # With Vel SDK support (install separately)
110
+ pip install agentmesh-py
111
+ pip install git+https://github.com/rscheiwe/vel.git
112
+ ```
113
+
114
+ ## Configuration
115
+
116
+ Create a `.env` file in your project root:
117
+
118
+ ```bash
119
+ cp .env.example .env
120
+ ```
121
+
122
+ Add your OpenAI API key:
123
+
124
+ ```bash
125
+ OPENAI_API_KEY=sk-your-key-here
126
+ ```
127
+
128
+ Load it in your code:
129
+
130
+ ```python
131
+ from mesh.utils import load_env
132
+ load_env() # Loads variables from .env
133
+ ```
134
+
135
+ ## Quick Start
136
+
137
+ ### Programmatic API (LangGraph-style)
138
+
139
+ ```python
140
+ import asyncio
141
+ from mesh import StateGraph, Executor, ExecutionContext, MemoryBackend
142
+ from mesh.nodes import LLMNode
143
+
144
+ async def main():
145
+ # Build graph
146
+ graph = StateGraph()
147
+ graph.add_node("llm", None, node_type="llm", model="gpt-4")
148
+ graph.add_edge("START", "llm")
149
+ graph.set_entry_point("llm")
150
+
151
+ # Compile and execute
152
+ compiled = graph.compile()
153
+ executor = Executor(compiled, MemoryBackend())
154
+ context = ExecutionContext(
155
+ graph_id="my-graph",
156
+ session_id="session-1",
157
+ chat_history=[],
158
+ variables={},
159
+ state={}
160
+ )
161
+
162
+ # Stream results
163
+ async for event in executor.execute("What is 2+2?", context):
164
+ if event.type == "token":
165
+ print(event.content, end="", flush=True)
166
+
167
+ asyncio.run(main())
168
+ ```
169
+
170
+ ### React Flow JSON (Flowise-compatible)
171
+
172
+ ```python
173
+ from mesh import ReactFlowParser, NodeRegistry, Executor
174
+
175
+ # Parse Flowise JSON
176
+ registry = NodeRegistry()
177
+ parser = ReactFlowParser(registry)
178
+ graph = parser.parse(flow_json)
179
+
180
+ # Execute
181
+ executor = Executor(graph, backend)
182
+ async for event in executor.execute(input_data, context):
183
+ print(event)
184
+ ```
185
+
186
+ ### FastAPI Server
187
+
188
+ ```python
189
+ from fastapi import FastAPI
190
+ from mesh import Executor, ExecutionContext
191
+ from mesh.streaming import SSEAdapter
192
+
193
+ app = FastAPI()
194
+
195
+ @app.post("/execute/stream")
196
+ async def execute_stream(request: ExecuteRequest):
197
+ executor = Executor(graph, backend)
198
+ context = ExecutionContext(...)
199
+
200
+ adapter = SSEAdapter()
201
+ return adapter.to_streaming_response(
202
+ executor.execute(request.input, context)
203
+ )
204
+ ```
205
+
206
+ ## Core Concepts
207
+
208
+ ### Node Types
209
+
210
+ 1. **StartNode**: Entry point to the graph
211
+ 2. **EndNode**: Exit point from the graph
212
+ 3. **AgentNode**: Wraps Vel or OpenAI agents with auto-detection
213
+ 4. **LLMNode**: Direct LLM calls with streaming
214
+ 5. **ToolNode**: Execute Python functions
215
+ 6. **ConditionNode**: Conditional branching
216
+ 7. **LoopNode**: Iterate over arrays
217
+
218
+ ### Variable Resolution
219
+
220
+ Mesh supports template variables in node configurations:
221
+
222
+ - `{{$question}}` - User input
223
+ - `{{node_id}}` - Reference node output
224
+ - `{{node_id.field}}` - Access nested fields
225
+ - `{{$vars.key}}` - Global variables
226
+ - `{{$chat_history}}` - Formatted chat history
227
+ - `{{$iteration}}` - Current iteration value (in loops)
228
+
229
+ ### State Management
230
+
231
+ ```python
232
+ # In-memory (for development)
233
+ from mesh.backends import MemoryBackend
234
+ backend = MemoryBackend()
235
+
236
+ # SQLite (for production)
237
+ from mesh.backends import SQLiteBackend
238
+ backend = SQLiteBackend("mesh_state.db")
239
+ ```
240
+
241
+ ## Advanced Usage
242
+
243
+ ### Conditional Branching
244
+
245
+ ```python
246
+ from mesh.nodes import Condition
247
+
248
+ def check_success(output):
249
+ return "success" in str(output).lower()
250
+
251
+ graph.add_node("condition", [
252
+ Condition("success", check_success, "success_handler"),
253
+ Condition("failure", lambda x: not check_success(x), "error_handler"),
254
+ ], node_type="condition")
255
+ ```
256
+
257
+ ### Loop Processing
258
+
259
+ ```python
260
+ graph.add_node("loop", None, node_type="loop",
261
+ array_path="$.items", max_iterations=100)
262
+ ```
263
+
264
+ ### Custom Tools
265
+
266
+ ```python
267
+ def my_tool(input: str, multiplier: int = 2) -> str:
268
+ return input * multiplier
269
+
270
+ graph.add_node("tool", my_tool, node_type="tool",
271
+ config={"bindings": {"multiplier": 3}})
272
+ ```
273
+
274
+ ### Agent Integration
275
+
276
+ ```python
277
+ # Vel Agent (with streaming)
278
+ from vel import Agent as VelAgent
279
+ vel_agent = VelAgent(
280
+ id="assistant",
281
+ model={
282
+ "provider": "openai",
283
+ "name": "gpt-4",
284
+ "temperature": 0.7,
285
+ },
286
+ )
287
+ graph.add_node("agent", vel_agent, node_type="agent")
288
+
289
+ # Stream the output
290
+ async for event in executor.execute("Hello!", context):
291
+ if event.type == "token":
292
+ print(event.content, end="", flush=True)
293
+
294
+ # OpenAI Agents SDK (with Vel translation by default)
295
+ from agents import Agent
296
+ openai_agent = Agent(
297
+ name="Assistant",
298
+ instructions="You are a helpful assistant"
299
+ )
300
+ graph.add_node("agent", openai_agent, node_type="agent", config={"model": "gpt-4"})
301
+
302
+ # Or use native events
303
+ graph.add_node("agent", openai_agent, node_type="agent",
304
+ use_native_events=True, config={"model": "gpt-4"})
305
+ ```
306
+
307
+ ### Event Translation
308
+
309
+ By default, Mesh uses Vel's event translation for consistent event handling across providers:
310
+
311
+ ```python
312
+ # Default: Vel-translated events (consistent across providers)
313
+ graph.add_node("agent", agent, node_type="agent")
314
+
315
+ # All providers emit the same event types
316
+ async for event in executor.execute(input, context):
317
+ if event.type == "token": # Same for OpenAI, Anthropic, Google
318
+ print(event.content, end="", flush=True)
319
+
320
+ # Optional: Use provider's native events
321
+ graph.add_node("agent", agent, node_type="agent", use_native_events=True)
322
+ ```
323
+
324
+ See [Event Translation Guide](examples/EVENT_TRANSLATION.md) for details.
325
+
326
+ ## Architecture
327
+
328
+ ```
329
+ ┌─────────────────────────────────────────────┐
330
+ │ User Application │
331
+ │ (FastAPI/Flask/Django) │
332
+ └────────────────┬────────────────────────────┘
333
+ │
334
+ ▼
335
+ ┌─────────────────────────────────────────────┐
336
+ │ MESH LIBRARY │
337
+ ├─────────────────────────────────────────────┤
338
+ │ ┌──────────────┐ ┌──────────────┐ │
339
+ │ │ Parsers │ │ Builders │ │
340
+ │ │ - ReactFlow │ │ - StateGraph│ │
341
+ │ └──────┬───────┘ └──────┬───────┘ │
342
+ │ └──────────┬─────────┘ │
343
+ │ ▼ │
344
+ │ ┌──────────────────┐ │
345
+ │ │ Graph Compiler │ │
346
+ │ └────────┬─────────┘ │
347
+ │ ▼ │
348
+ │ ┌──────────────────┐ │
349
+ │ │ Execution Engine │ │
350
+ │ │ - Queue-based │ │
351
+ │ │ - Streaming │ │
352
+ │ └────────┬─────────┘ │
353
+ │ ▼ │
354
+ │ ┌───────────────────────┐ │
355
+ │ │ Node Implementations│ │
356
+ │ │ Agent│LLM│Tool│... │ │
357
+ │ └───────────────────────┘ │
358
+ └─────────────────────────────────────────────┘
359
+ ```
360
+
361
+ ## Examples
362
+
363
+ See the **[examples/](examples/)** directory:
364
+
365
+ - **[simple_agent.py](examples/simple_agent.py)** - Basic LLM usage with streaming
366
+ - **[vel_agent_streaming.py](examples/vel_agent_streaming.py)** - Vel agent with token-by-token streaming
367
+ - **[openai_agent_streaming.py](examples/openai_agent_streaming.py)** - OpenAI Agents SDK with streaming
368
+ - **[event_translation_comparison.py](examples/event_translation_comparison.py)** - Compare Vel vs native events
369
+ - **[react_flow_parse.py](examples/react_flow_parse.py)** - Parse Flowise JSON
370
+ - **[fastapi_server.py](examples/fastapi_server.py)** - Full API server with streaming
371
+
372
+ **Guides:**
373
+
374
+ - **[Event Translation Guide](examples/EVENT_TRANSLATION.md)** - Detailed event translation documentation
375
+ - **[Vel Integration Guide](examples/VEL_INTEGRATION.md)** - Vel-specific integration
376
+ - **[OpenAI Agents Integration](examples/OPENAI_AGENTS_INTEGRATION.md)** - OpenAI SDK integration
377
+ - **[Native Events Implementation](NATIVE_EVENTS_IMPLEMENTATION.md)** - use_native_events flag details
378
+
379
+ ## Development
380
+
381
+ ```bash
382
+ # Clone repository
383
+ git clone https://github.com/rscheiwe/mesh.git
384
+ cd mesh
385
+
386
+ # Create virtual environment
387
+ python -m venv venv
388
+ source venv/bin/activate # On Windows: venv\Scripts\activate
389
+
390
+ # Install development dependencies
391
+ pip install -e ".[all]"
392
+
393
+ # Run tests
394
+ pytest
395
+
396
+ # Run tests with coverage
397
+ pytest --cov=mesh --cov-report=html
398
+
399
+ # Format code
400
+ black mesh/
401
+ ruff check mesh/
402
+
403
+ # Type checking
404
+ mypy mesh/
405
+ ```
406
+
407
+ **For AI Assistants:** See [CLAUDE.md](CLAUDE.md) for comprehensive development context and architecture details.
408
+
409
+ ## Roadmap
410
+
411
+ - [ ] WebSocket streaming support
412
+ - [ ] Distributed execution
413
+ - [ ] Visual graph editor
414
+ - [ ] LangChain/LlamaIndex integration
415
+ - [ ] Human-in-the-loop approval nodes
416
+ - [ ] Sub-graph composition
417
+
418
+ ## Contributing
419
+
420
+ Contributions welcome! Please read our contributing guidelines and submit PRs.
421
+
422
+ ## License
423
+
424
+ MIT License - see LICENSE file for details.
425
+
426
+ ## Credits
427
+
428
+ Inspired by:
429
+
430
+ - [Flowise](https://github.com/FlowiseAI/Flowise) - React Flow execution patterns
431
+ - [LangGraph](https://github.com/langchain-ai/langgraph) - StateGraph API design
432
+ - [Vel](https://github.com/rscheiwe/vel) - Event translation layer
433
+
434
+ ## Support
435
+
436
+ - **Documentation:** https://rscheiwe.github.io/mesh
437
+ - **GitHub Issues:** https://github.com/rscheiwe/mesh/issues
438
+ - **GitHub Repository:** https://github.com/rscheiwe/mesh
@@ -0,0 +1,55 @@
1
+ agentmesh_py-0.1.5.dist-info/licenses/LICENSE,sha256=ImWemWnmzT_Z_xxO2LxpR0o5Q8SqDdtRtXPtDosSmow,1072
2
+ mesh/__init__.py,sha256=yVe5A93kYDx2OuJkI9e-PCcZM8tZRHMKj3lrvnCr_kU,4719
3
+ mesh/checkpoints.py,sha256=6w4eNRHKDUiKpO3KwBSlClor2UOko43QLP_ZeXFf5dY,9420
4
+ mesh/input_collection.py,sha256=N0rn-yoCKmsgn_wJpkau_qPD4aqMoNhEs47ADa1l_eU,20139
5
+ mesh/interrupts.py,sha256=11iD4KE6jSwyW9KDKEQE-5Vpf6JVsyXkoIeSwcta-is,6223
6
+ mesh/parallel.py,sha256=-oP5FPDWE9ywl3Cm7A3Kd1yPVq9LSkiXE0gG2AQrv0A,14578
7
+ mesh/py.typed,sha256=cZhjU4bgcfkAJgWW8rlBPwh-6sWO56Oixl8mV1RlwjI,74
8
+ mesh/subgraph.py,sha256=K3J51NYqR6f2b_9MEjDXXGe-WEKYejZUgztp7TljkYo,11443
9
+ mesh/backends/__init__.py,sha256=8NunjV1c-rIL0IB9xTpFYc6yPSHHMZAmcJZAhQch8Oo,250
10
+ mesh/backends/base.py,sha256=zg9cSYKlB7JK3XCPX0303yPgcecySQpUUU3o2FHQVWo,3674
11
+ mesh/backends/memory.py,sha256=ADpHARTDUr0gskJQEUgrCN5JKjnZ9J8NEv_NrgxlVwo,5164
12
+ mesh/backends/sqlite.py,sha256=0MNf-NHyRwSOIJAKopLwyNHgNjccFtF5eRo5_sF8EA8,12391
13
+ mesh/builders/__init__.py,sha256=0HWZVaLjiXJpS4x_MIzCZ7osvp4kvQLAXSPTVhHS61A,145
14
+ mesh/builders/state_graph.py,sha256=xEyHQAjatlYpghLq-jn7RYQVApMJkGmWnpM1UBypej8,23593
15
+ mesh/core/__init__.py,sha256=6GMPzloHitJh9wh7Kkf4j2vR4JZdr5i-BtDVY0KXLXA,496
16
+ mesh/core/events.py,sha256=Pfo8qbvhyVNtsGnpQF9aW9H_GM-QU_CIcIAcDLbyFpU,18083
17
+ mesh/core/executor.py,sha256=unxhWSPNOrd9RWDISqxfjVzNFZmzIzYgha1qH3z0Yew,74479
18
+ mesh/core/graph.py,sha256=7cFAOoNfDpgkAG3J28A_R0htNSfofdBx69GiG2lVDHI,16010
19
+ mesh/core/state.py,sha256=2G83MN_l1VgvRQQTv6sCqeI1pB6xKBljvcHm3_pwheo,8029
20
+ mesh/nodes/__init__.py,sha256=iGF4o3yyk5nbKUjffpkK4n7n9CWiG_LuPVfVXdlTBdg,1331
21
+ mesh/nodes/agent.py,sha256=X6JWnxv6-x9A414FAHvF_mXt_yf0zMBoPKUjOwRppnM,65399
22
+ mesh/nodes/approval.py,sha256=ydx2iOtCFLhvHufgtVyuX6I9lWUStBwebfcLsyiFFCk,8797
23
+ mesh/nodes/base.py,sha256=RbikpWV_Vv7EGZwwdgDhLaaJJor7mUGJV4c30nK_FIg,5132
24
+ mesh/nodes/condition.py,sha256=tzp21BUgw-cp6T16s66G_uBMhqXq1SwCIC1bKs2N4CE,25487
25
+ mesh/nodes/conversation.py,sha256=Vdcgu05b0CtGox-Uy3P9IyhlAssgbllQypI3fUlMHOs,32334
26
+ mesh/nodes/data_handler.py,sha256=V6mPIWukxP0q44_piHcIbMEzaaK-Xp1QTeIB7YcncNA,14650
27
+ mesh/nodes/dynamic_tool_selector.py,sha256=K0b-6quvqnmmm_3se46dwS_JjERmXEjkuvOIT95R_34,11967
28
+ mesh/nodes/end.py,sha256=2weo6pmIDkCVXrUDPFAgpgMQ2fseog0-WJRFUTxFKv0,1521
29
+ mesh/nodes/llm.py,sha256=BBXDV7uTd__7TLjJ08f-6sgSQ6t81W-4akPuLYQVaQY,35139
30
+ mesh/nodes/loop.py,sha256=1dzLmDu46Fgyo8Rx4jaLBg6iU7EhaLK9Qt_XFpXntCo,12166
31
+ mesh/nodes/orchestrator.py,sha256=t_dd7Q9Ch2-b-7pkb8EP5gUhTJCf3-BsNwW1egBz58E,17532
32
+ mesh/nodes/rag.py,sha256=1IHiB7Hw8b3MoAlpTTjHkdXRu59q11K4KPMORASo4OY,12342
33
+ mesh/nodes/start.py,sha256=NoEfvBVGBua2LbHSnhHbaxXz0ccXqtOniN-WFKyGV_U,3066
34
+ mesh/nodes/sub_agent.py,sha256=RdtwKbyNQKOvpOi3t64aeWxxXJ3hukdadHU0846bHEw,3106
35
+ mesh/nodes/subgraph.py,sha256=ycEhelmnEt4DA7IvQCAxAV99pkJa3h-Q7r3NgJ8b2ew,3540
36
+ mesh/nodes/tool.py,sha256=WhUwj5qqZmoH0ixXDvobeXj1W5Cva52jqSOahqQTLdY,8350
37
+ mesh/parsers/__init__.py,sha256=TxZr4PZzing35Z4dyQG_qq81HKwU_xjDHUbbAfdHJpc,262
38
+ mesh/parsers/react_flow.py,sha256=bmIci2865sIaaE-ksW_1SdSNU6QPsYICiOSR2cD2XgY,54632
39
+ mesh/parsers/validation.py,sha256=KfKyqNCeybpOUL039MWes_NgB-QQ9LL7yQS0jcml5_M,1469
40
+ mesh/streaming/__init__.py,sha256=iPiCdk0czqV_TYZdWrcmmxWc18AEW586Ee60h4u-Tqc,196
41
+ mesh/streaming/iterator.py,sha256=C-da64qZQ4TXpta2V7TXgkDy_WvRduEbabFJIvULFSM,1906
42
+ mesh/streaming/modes.py,sha256=ZnRAKS-KpDnc35kG4ekz3RMZdL2hg3gtp13uGQ6XNt0,12180
43
+ mesh/streaming/sse.py,sha256=9dCbwtrtynB6wi_k90xDMR5Y2jbEAskiaD56uk5U7kY,5007
44
+ mesh/utils/__init__.py,sha256=fxoFVNQZsY8Ia45ljmb1ggGRa2niLwc7KK_7VySdYRQ,774
45
+ mesh/utils/config.py,sha256=P59uSRd5B4YYYr5lzstMV2ZvJkmNAe4wzsmXJvuUedk,2026
46
+ mesh/utils/errors.py,sha256=BsF5QCuT55pKdRhxqWH4UF2tv1Lb2vcG38bngR7XYt8,1026
47
+ mesh/utils/input_parser.py,sha256=HNyWTMToU89R48bcuVALL1Ro5_hazbTtc4OCFKLEziQ,4056
48
+ mesh/utils/mermaid.py,sha256=tF3PZoj9mswDhRD0YAgoVOAhBf211D_qBeq9Maq5l9c,8197
49
+ mesh/utils/registry.py,sha256=vZzUdzmSjEiBa06aybZ8FdWr1t9SlL8krfic7gWKv7M,6458
50
+ mesh/utils/translator_orchestrator.py,sha256=RAk1PezgeZwU-ofQWDBSMvBtAa7S1NH1DMygN6WCcK0,11738
51
+ mesh/utils/variables.py,sha256=hX01QJzVcyI0TYW7COvxBVl_9zp4wQV9HULQr--FKaI,8885
52
+ agentmesh_py-0.1.5.dist-info/METADATA,sha256=tRl1eSk-PzluXCeeR4FQqGXMMRr925LnF6kvSyx_l_I,14733
53
+ agentmesh_py-0.1.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
54
+ agentmesh_py-0.1.5.dist-info/top_level.txt,sha256=9TJpknW1CazBq5sbZ4N1q-DzUDPVdHuu5ygt1fbLK0s,5
55
+ agentmesh_py-0.1.5.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.2)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Richard Scheiwe
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ mesh