genxai-framework 0.1.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.
- cli/__init__.py +3 -0
- cli/commands/__init__.py +6 -0
- cli/commands/approval.py +85 -0
- cli/commands/audit.py +127 -0
- cli/commands/metrics.py +25 -0
- cli/commands/tool.py +389 -0
- cli/main.py +32 -0
- genxai/__init__.py +81 -0
- genxai/api/__init__.py +5 -0
- genxai/api/app.py +21 -0
- genxai/config/__init__.py +5 -0
- genxai/config/settings.py +37 -0
- genxai/connectors/__init__.py +19 -0
- genxai/connectors/base.py +122 -0
- genxai/connectors/kafka.py +92 -0
- genxai/connectors/postgres_cdc.py +95 -0
- genxai/connectors/registry.py +44 -0
- genxai/connectors/sqs.py +94 -0
- genxai/connectors/webhook.py +73 -0
- genxai/core/__init__.py +37 -0
- genxai/core/agent/__init__.py +32 -0
- genxai/core/agent/base.py +206 -0
- genxai/core/agent/config_io.py +59 -0
- genxai/core/agent/registry.py +98 -0
- genxai/core/agent/runtime.py +970 -0
- genxai/core/communication/__init__.py +6 -0
- genxai/core/communication/collaboration.py +44 -0
- genxai/core/communication/message_bus.py +192 -0
- genxai/core/communication/protocols.py +35 -0
- genxai/core/execution/__init__.py +22 -0
- genxai/core/execution/metadata.py +181 -0
- genxai/core/execution/queue.py +201 -0
- genxai/core/graph/__init__.py +30 -0
- genxai/core/graph/checkpoints.py +77 -0
- genxai/core/graph/edges.py +131 -0
- genxai/core/graph/engine.py +813 -0
- genxai/core/graph/executor.py +516 -0
- genxai/core/graph/nodes.py +161 -0
- genxai/core/graph/trigger_runner.py +40 -0
- genxai/core/memory/__init__.py +19 -0
- genxai/core/memory/base.py +72 -0
- genxai/core/memory/embedding.py +327 -0
- genxai/core/memory/episodic.py +448 -0
- genxai/core/memory/long_term.py +467 -0
- genxai/core/memory/manager.py +543 -0
- genxai/core/memory/persistence.py +297 -0
- genxai/core/memory/procedural.py +461 -0
- genxai/core/memory/semantic.py +526 -0
- genxai/core/memory/shared.py +62 -0
- genxai/core/memory/short_term.py +303 -0
- genxai/core/memory/vector_store.py +508 -0
- genxai/core/memory/working.py +211 -0
- genxai/core/state/__init__.py +6 -0
- genxai/core/state/manager.py +293 -0
- genxai/core/state/schema.py +115 -0
- genxai/llm/__init__.py +14 -0
- genxai/llm/base.py +150 -0
- genxai/llm/factory.py +329 -0
- genxai/llm/providers/__init__.py +1 -0
- genxai/llm/providers/anthropic.py +249 -0
- genxai/llm/providers/cohere.py +274 -0
- genxai/llm/providers/google.py +334 -0
- genxai/llm/providers/ollama.py +147 -0
- genxai/llm/providers/openai.py +257 -0
- genxai/llm/routing.py +83 -0
- genxai/observability/__init__.py +6 -0
- genxai/observability/logging.py +327 -0
- genxai/observability/metrics.py +494 -0
- genxai/observability/tracing.py +372 -0
- genxai/performance/__init__.py +39 -0
- genxai/performance/cache.py +256 -0
- genxai/performance/pooling.py +289 -0
- genxai/security/audit.py +304 -0
- genxai/security/auth.py +315 -0
- genxai/security/cost_control.py +528 -0
- genxai/security/default_policies.py +44 -0
- genxai/security/jwt.py +142 -0
- genxai/security/oauth.py +226 -0
- genxai/security/pii.py +366 -0
- genxai/security/policy_engine.py +82 -0
- genxai/security/rate_limit.py +341 -0
- genxai/security/rbac.py +247 -0
- genxai/security/validation.py +218 -0
- genxai/tools/__init__.py +21 -0
- genxai/tools/base.py +383 -0
- genxai/tools/builtin/__init__.py +131 -0
- genxai/tools/builtin/communication/__init__.py +15 -0
- genxai/tools/builtin/communication/email_sender.py +159 -0
- genxai/tools/builtin/communication/notification_manager.py +167 -0
- genxai/tools/builtin/communication/slack_notifier.py +118 -0
- genxai/tools/builtin/communication/sms_sender.py +118 -0
- genxai/tools/builtin/communication/webhook_caller.py +136 -0
- genxai/tools/builtin/computation/__init__.py +15 -0
- genxai/tools/builtin/computation/calculator.py +101 -0
- genxai/tools/builtin/computation/code_executor.py +183 -0
- genxai/tools/builtin/computation/data_validator.py +259 -0
- genxai/tools/builtin/computation/hash_generator.py +129 -0
- genxai/tools/builtin/computation/regex_matcher.py +201 -0
- genxai/tools/builtin/data/__init__.py +15 -0
- genxai/tools/builtin/data/csv_processor.py +213 -0
- genxai/tools/builtin/data/data_transformer.py +299 -0
- genxai/tools/builtin/data/json_processor.py +233 -0
- genxai/tools/builtin/data/text_analyzer.py +288 -0
- genxai/tools/builtin/data/xml_processor.py +175 -0
- genxai/tools/builtin/database/__init__.py +15 -0
- genxai/tools/builtin/database/database_inspector.py +157 -0
- genxai/tools/builtin/database/mongodb_query.py +196 -0
- genxai/tools/builtin/database/redis_cache.py +167 -0
- genxai/tools/builtin/database/sql_query.py +145 -0
- genxai/tools/builtin/database/vector_search.py +163 -0
- genxai/tools/builtin/file/__init__.py +17 -0
- genxai/tools/builtin/file/directory_scanner.py +214 -0
- genxai/tools/builtin/file/file_compressor.py +237 -0
- genxai/tools/builtin/file/file_reader.py +102 -0
- genxai/tools/builtin/file/file_writer.py +122 -0
- genxai/tools/builtin/file/image_processor.py +186 -0
- genxai/tools/builtin/file/pdf_parser.py +144 -0
- genxai/tools/builtin/test/__init__.py +15 -0
- genxai/tools/builtin/test/async_simulator.py +62 -0
- genxai/tools/builtin/test/data_transformer.py +99 -0
- genxai/tools/builtin/test/error_generator.py +82 -0
- genxai/tools/builtin/test/simple_math.py +94 -0
- genxai/tools/builtin/test/string_processor.py +72 -0
- genxai/tools/builtin/web/__init__.py +15 -0
- genxai/tools/builtin/web/api_caller.py +161 -0
- genxai/tools/builtin/web/html_parser.py +330 -0
- genxai/tools/builtin/web/http_client.py +187 -0
- genxai/tools/builtin/web/url_validator.py +162 -0
- genxai/tools/builtin/web/web_scraper.py +170 -0
- genxai/tools/custom/my_test_tool_2.py +9 -0
- genxai/tools/dynamic.py +105 -0
- genxai/tools/mcp_server.py +167 -0
- genxai/tools/persistence/__init__.py +6 -0
- genxai/tools/persistence/models.py +55 -0
- genxai/tools/persistence/service.py +322 -0
- genxai/tools/registry.py +227 -0
- genxai/tools/security/__init__.py +11 -0
- genxai/tools/security/limits.py +214 -0
- genxai/tools/security/policy.py +20 -0
- genxai/tools/security/sandbox.py +248 -0
- genxai/tools/templates.py +435 -0
- genxai/triggers/__init__.py +19 -0
- genxai/triggers/base.py +104 -0
- genxai/triggers/file_watcher.py +75 -0
- genxai/triggers/queue.py +68 -0
- genxai/triggers/registry.py +82 -0
- genxai/triggers/schedule.py +66 -0
- genxai/triggers/webhook.py +68 -0
- genxai/utils/__init__.py +1 -0
- genxai/utils/tokens.py +295 -0
- genxai_framework-0.1.0.dist-info/METADATA +495 -0
- genxai_framework-0.1.0.dist-info/RECORD +156 -0
- genxai_framework-0.1.0.dist-info/WHEEL +5 -0
- genxai_framework-0.1.0.dist-info/entry_points.txt +2 -0
- genxai_framework-0.1.0.dist-info/licenses/LICENSE +21 -0
- genxai_framework-0.1.0.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: genxai-framework
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Advanced Agentic AI Framework with Graph-Based Orchestration
|
|
5
|
+
Author-email: GenXAI Team <team@genxai.dev>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/genxai/genxai
|
|
8
|
+
Project-URL: Documentation, https://docs.genxai.dev
|
|
9
|
+
Project-URL: Repository, https://github.com/genxai/genxai
|
|
10
|
+
Project-URL: Issues, https://github.com/genxai/genxai/issues
|
|
11
|
+
Keywords: ai,agents,llm,graph,orchestration,multi-agent
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: pydantic>=2.5.0
|
|
24
|
+
Requires-Dist: pydantic-settings>=2.1.0
|
|
25
|
+
Requires-Dist: asyncio>=3.4.3
|
|
26
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
27
|
+
Requires-Dist: httpx>=0.25.0
|
|
28
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
29
|
+
Requires-Dist: pyyaml>=6.0.1
|
|
30
|
+
Requires-Dist: typing-extensions>=4.8.0
|
|
31
|
+
Requires-Dist: click>=8.1.0
|
|
32
|
+
Requires-Dist: rich>=13.0.0
|
|
33
|
+
Requires-Dist: sqlalchemy>=2.0.23
|
|
34
|
+
Requires-Dist: aiokafka>=0.10.0
|
|
35
|
+
Requires-Dist: aioboto3>=12.0.0
|
|
36
|
+
Requires-Dist: asyncpg>=0.29.0
|
|
37
|
+
Provides-Extra: dev
|
|
38
|
+
Requires-Dist: pytest>=7.4.0; extra == "dev"
|
|
39
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
|
|
42
|
+
Requires-Dist: black>=23.12.0; extra == "dev"
|
|
43
|
+
Requires-Dist: ruff>=0.1.8; extra == "dev"
|
|
44
|
+
Requires-Dist: mypy>=1.7.0; extra == "dev"
|
|
45
|
+
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
|
|
46
|
+
Provides-Extra: llm
|
|
47
|
+
Requires-Dist: openai>=1.6.0; extra == "llm"
|
|
48
|
+
Requires-Dist: anthropic>=0.18.0; extra == "llm"
|
|
49
|
+
Requires-Dist: google-generativeai>=0.3.0; extra == "llm"
|
|
50
|
+
Requires-Dist: cohere>=4.37; extra == "llm"
|
|
51
|
+
Provides-Extra: storage
|
|
52
|
+
Requires-Dist: pinecone-client>=3.0.0; extra == "storage"
|
|
53
|
+
Requires-Dist: weaviate-client>=3.26.0; extra == "storage"
|
|
54
|
+
Requires-Dist: chromadb>=0.4.18; extra == "storage"
|
|
55
|
+
Requires-Dist: neo4j>=5.15.0; extra == "storage"
|
|
56
|
+
Requires-Dist: redis>=5.0.1; extra == "storage"
|
|
57
|
+
Requires-Dist: psycopg2-binary>=2.9.9; extra == "storage"
|
|
58
|
+
Requires-Dist: sqlalchemy>=2.0.23; extra == "storage"
|
|
59
|
+
Provides-Extra: tools
|
|
60
|
+
Requires-Dist: beautifulsoup4>=4.12.0; extra == "tools"
|
|
61
|
+
Requires-Dist: playwright>=1.40.0; extra == "tools"
|
|
62
|
+
Requires-Dist: pandas>=2.1.4; extra == "tools"
|
|
63
|
+
Requires-Dist: numpy>=1.26.2; extra == "tools"
|
|
64
|
+
Requires-Dist: pillow>=10.1.0; extra == "tools"
|
|
65
|
+
Requires-Dist: pypdf2>=3.0.1; extra == "tools"
|
|
66
|
+
Requires-Dist: python-magic>=0.4.27; extra == "tools"
|
|
67
|
+
Requires-Dist: RestrictedPython>=6.2; extra == "tools"
|
|
68
|
+
Provides-Extra: observability
|
|
69
|
+
Requires-Dist: opentelemetry-api>=1.21.0; extra == "observability"
|
|
70
|
+
Requires-Dist: opentelemetry-sdk>=1.21.0; extra == "observability"
|
|
71
|
+
Requires-Dist: opentelemetry-instrumentation>=0.42b0; extra == "observability"
|
|
72
|
+
Requires-Dist: prometheus-client>=0.19.0; extra == "observability"
|
|
73
|
+
Provides-Extra: api
|
|
74
|
+
Requires-Dist: fastapi>=0.108.0; extra == "api"
|
|
75
|
+
Requires-Dist: uvicorn[standard]>=0.25.0; extra == "api"
|
|
76
|
+
Requires-Dist: python-multipart>=0.0.6; extra == "api"
|
|
77
|
+
Requires-Dist: python-jose[cryptography]>=3.3.0; extra == "api"
|
|
78
|
+
Provides-Extra: all
|
|
79
|
+
Requires-Dist: genxai[api,dev,llm,observability,storage,tools]; extra == "all"
|
|
80
|
+
Dynamic: license-file
|
|
81
|
+
|
|
82
|
+
# GenXAI - Advanced Agentic AI Framework
|
|
83
|
+
|
|
84
|
+
**Version:** 1.0.0 (Design Phase)
|
|
85
|
+
**Status:** Planning & Architecture
|
|
86
|
+
**License:** MIT (Planned)
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 🚀 Overview
|
|
91
|
+
|
|
92
|
+
GenXAI is an advanced agentic AI framework designed to surpass existing solutions (CrewAI, AutoGen, BeeAI) by combining:
|
|
93
|
+
|
|
94
|
+
- **Graph-Based Orchestration** (like LangGraph) for complex agent workflows
|
|
95
|
+
- **Advanced Memory Systems** with multiple memory types (short-term, long-term, episodic, semantic, procedural)
|
|
96
|
+
- **No-Code Interface** for visual workflow building
|
|
97
|
+
- **50+ Built-in Tools** for web, database, file, computation, and communication tasks
|
|
98
|
+
- **Enterprise Features** including observability, security, and scalability
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## ✨ Key Features
|
|
103
|
+
|
|
104
|
+
### 🔗 Graph-Based Workflows
|
|
105
|
+
- Define complex agent relationships as directed graphs
|
|
106
|
+
- Conditional edges and dynamic routing
|
|
107
|
+
- Parallel and sequential execution
|
|
108
|
+
- Cycles, loops, and subgraphs
|
|
109
|
+
- Real-time visualization
|
|
110
|
+
|
|
111
|
+
### 🧠 Advanced Agent Capabilities
|
|
112
|
+
- **Multi-Modal**: Text, vision, audio, code understanding
|
|
113
|
+
- **Learning**: Self-improvement through feedback
|
|
114
|
+
- **Memory**: Multi-layered memory system
|
|
115
|
+
- **Tools**: 50+ built-in tools + custom tool creation
|
|
116
|
+
- **Personality**: Configurable agent personalities
|
|
117
|
+
|
|
118
|
+
### 💾 Multi-Layered Memory
|
|
119
|
+
- **Short-Term**: Recent conversation context
|
|
120
|
+
- **Long-Term**: Persistent knowledge with vector search
|
|
121
|
+
- **Episodic**: Past experiences and learning
|
|
122
|
+
- **Semantic**: Factual knowledge base
|
|
123
|
+
- **Procedural**: Learned skills and procedures
|
|
124
|
+
- **Working**: Active processing space
|
|
125
|
+
|
|
126
|
+
### 🎨 No-Code Studio
|
|
127
|
+
- Drag-and-drop workflow builder
|
|
128
|
+
- Visual agent designer
|
|
129
|
+
- Tool marketplace
|
|
130
|
+
- Template library
|
|
131
|
+
- Real-time testing playground
|
|
132
|
+
- One-click deployment
|
|
133
|
+
|
|
134
|
+
### ⚡ Trigger SDK (Non-Studio)
|
|
135
|
+
- Webhook triggers for external events
|
|
136
|
+
- Cron/interval schedule triggers
|
|
137
|
+
- Async queue triggers for message-driven workflows
|
|
138
|
+
- Lightweight registry to start/stop triggers programmatically
|
|
139
|
+
|
|
140
|
+
### 🏢 Enterprise-Ready
|
|
141
|
+
- **Observability**: Logging, metrics, tracing
|
|
142
|
+
- **Security**: RBAC, encryption, guardrails
|
|
143
|
+
- **Scalability**: Horizontal scaling, distributed execution
|
|
144
|
+
- **Reliability**: 99.9% uptime target
|
|
145
|
+
|
|
146
|
+
### 📈 Metrics API
|
|
147
|
+
- **Prometheus endpoint** at `/metrics` (non-Studio FastAPI app)
|
|
148
|
+
- **CLI launch**: `genxai metrics serve --host 0.0.0.0 --port 8001`
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 📋 Documentation
|
|
153
|
+
|
|
154
|
+
Comprehensive documentation is available in the following files:
|
|
155
|
+
|
|
156
|
+
- **[ARCHITECTURE.md](./ARCHITECTURE.md)** - Complete system architecture and design principles
|
|
157
|
+
- **[REQUIREMENTS.md](./REQUIREMENTS.md)** - Detailed functional and non-functional requirements
|
|
158
|
+
- **[IMPLEMENTATION_PLAN.md](./IMPLEMENTATION_PLAN.md)** - 20-week development roadmap
|
|
159
|
+
- **[TOOLS_DESIGN.md](./TOOLS_DESIGN.md)** - Tool system architecture and 50+ built-in tools
|
|
160
|
+
- **[MEMORY_DESIGN.md](./MEMORY_DESIGN.md)** - Multi-layered memory system design
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 🎯 Design Goals
|
|
165
|
+
|
|
166
|
+
1. **Superior to Existing Frameworks**: More features than CrewAI, AutoGen, BeeAI
|
|
167
|
+
2. **Graph-First**: Complex orchestration like LangGraph, but better
|
|
168
|
+
3. **No-Code Friendly**: Visual interface for non-technical users
|
|
169
|
+
4. **Enterprise-Grade**: Production-ready with observability and security
|
|
170
|
+
5. **Extensible**: Plugin architecture for easy customization
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 🏗️ Architecture
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
178
|
+
│ PRESENTATION LAYER │
|
|
179
|
+
│ ┌──────────────────┐ ┌──────────────────┐ │
|
|
180
|
+
│ │ No-Code Studio │ │ CLI/SDK/API │ │
|
|
181
|
+
│ └──────────────────┘ └──────────────────┘ │
|
|
182
|
+
└─────────────────────────────────────────────────────────────┘
|
|
183
|
+
↓
|
|
184
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
185
|
+
│ ORCHESTRATION LAYER │
|
|
186
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
187
|
+
│ │ Graph Engine │ │ Flow Control │ │ State Manager│ │
|
|
188
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
189
|
+
└─────────────────────────────────────────────────────────────┘
|
|
190
|
+
↓
|
|
191
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
192
|
+
│ AGENT LAYER │
|
|
193
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
194
|
+
│ │ Agent Runtime│ │ Memory System│ │ Tool Registry│ │
|
|
195
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
196
|
+
└─────────────────────────────────────────────────────────────┘
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
See [ARCHITECTURE.md](./ARCHITECTURE.md) for complete details.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 🚦 Development Roadmap
|
|
204
|
+
|
|
205
|
+
### Phase 1: Foundation (Weeks 1-4)
|
|
206
|
+
- Core graph engine
|
|
207
|
+
- Basic agent system
|
|
208
|
+
- CLI interface
|
|
209
|
+
- Initial documentation
|
|
210
|
+
|
|
211
|
+
### Phase 2: Advanced Features (Weeks 5-8)
|
|
212
|
+
- Complete memory system
|
|
213
|
+
- Communication layer
|
|
214
|
+
- 20+ built-in tools
|
|
215
|
+
|
|
216
|
+
### Phase 3: No-Code Studio (Weeks 9-12)
|
|
217
|
+
- Visual workflow builder
|
|
218
|
+
- REST API
|
|
219
|
+
- Real-time testing
|
|
220
|
+
|
|
221
|
+
### Phase 4: Enterprise Features (Weeks 13-16)
|
|
222
|
+
- Observability stack
|
|
223
|
+
- Security features
|
|
224
|
+
- 50+ tools total
|
|
225
|
+
|
|
226
|
+
### Phase 5: Polish & Launch (Weeks 17-20)
|
|
227
|
+
- Documentation
|
|
228
|
+
- Examples & templates
|
|
229
|
+
- Beta testing
|
|
230
|
+
- Official launch 🚀
|
|
231
|
+
|
|
232
|
+
See [IMPLEMENTATION_PLAN.md](./IMPLEMENTATION_PLAN.md) for detailed timeline.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 💡 Quick Start
|
|
237
|
+
|
|
238
|
+
### Using GenXAI as a Framework Library
|
|
239
|
+
|
|
240
|
+
```python
|
|
241
|
+
import os
|
|
242
|
+
from genxai import Agent, AgentConfig, AgentRegistry, Graph
|
|
243
|
+
|
|
244
|
+
# Set your API key (required)
|
|
245
|
+
os.environ["OPENAI_API_KEY"] = "sk-your-api-key-here"
|
|
246
|
+
|
|
247
|
+
# Define agents
|
|
248
|
+
classifier = Agent(
|
|
249
|
+
id="classifier",
|
|
250
|
+
config=AgentConfig(
|
|
251
|
+
role="Classifier",
|
|
252
|
+
goal="Categorize customer requests",
|
|
253
|
+
llm_model="gpt-4",
|
|
254
|
+
tools=["sentiment_analysis", "category_detector"],
|
|
255
|
+
),
|
|
256
|
+
)
|
|
257
|
+
|
|
258
|
+
support = Agent(
|
|
259
|
+
id="support",
|
|
260
|
+
config=AgentConfig(
|
|
261
|
+
role="Support Agent",
|
|
262
|
+
goal="Resolve customer issues",
|
|
263
|
+
llm_model="claude-3-opus",
|
|
264
|
+
enable_memory=True,
|
|
265
|
+
),
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
AgentRegistry.register(classifier)
|
|
269
|
+
AgentRegistry.register(support)
|
|
270
|
+
|
|
271
|
+
# Build graph
|
|
272
|
+
graph = Graph()
|
|
273
|
+
from genxai.core.graph.nodes import InputNode, OutputNode, AgentNode
|
|
274
|
+
from genxai.core.graph.edges import Edge
|
|
275
|
+
|
|
276
|
+
graph.add_node(InputNode(id="start"))
|
|
277
|
+
graph.add_node(AgentNode(id="classify", agent_id="classifier"))
|
|
278
|
+
graph.add_node(AgentNode(id="support", agent_id="support"))
|
|
279
|
+
graph.add_node(OutputNode(id="end"))
|
|
280
|
+
|
|
281
|
+
graph.add_edge(Edge(source="start", target="classify"))
|
|
282
|
+
graph.add_edge(Edge(source="classify", target="support"))
|
|
283
|
+
graph.add_edge(Edge(source="support", target="end"))
|
|
284
|
+
|
|
285
|
+
# Run workflow
|
|
286
|
+
result = await graph.run(input_data="My app crashed")
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Trigger SDK Quick Start
|
|
290
|
+
|
|
291
|
+
```python
|
|
292
|
+
from genxai.triggers import WebhookTrigger
|
|
293
|
+
from genxai.core.graph import TriggerWorkflowRunner
|
|
294
|
+
|
|
295
|
+
trigger = WebhookTrigger(trigger_id="support_webhook", secret="my-secret")
|
|
296
|
+
|
|
297
|
+
# Wire trigger to workflow
|
|
298
|
+
runner = TriggerWorkflowRunner(nodes=nodes, edges=edges)
|
|
299
|
+
|
|
300
|
+
async def on_event(event):
|
|
301
|
+
result = await runner.handle_event(event)
|
|
302
|
+
print("Workflow result:", result)
|
|
303
|
+
|
|
304
|
+
trigger.on_event(on_event)
|
|
305
|
+
await trigger.start()
|
|
306
|
+
|
|
307
|
+
# In your FastAPI handler:
|
|
308
|
+
# await trigger.handle_request(payload, raw_body=raw, headers=request.headers)
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Install Options
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
# Core install
|
|
315
|
+
pip install genxai
|
|
316
|
+
|
|
317
|
+
# Full install with providers/tools/observability/API
|
|
318
|
+
pip install "genxai[llm,tools,observability,api]"
|
|
319
|
+
|
|
320
|
+
# Everything included
|
|
321
|
+
pip install "genxai[all]"
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### No-Code Interface
|
|
325
|
+
|
|
326
|
+
```yaml
|
|
327
|
+
workflow:
|
|
328
|
+
name: "Customer Support"
|
|
329
|
+
agents:
|
|
330
|
+
- id: "classifier"
|
|
331
|
+
role: "Classifier"
|
|
332
|
+
llm: "gpt-4"
|
|
333
|
+
- id: "support"
|
|
334
|
+
role: "Support Agent"
|
|
335
|
+
llm: "claude-3-opus"
|
|
336
|
+
|
|
337
|
+
graph:
|
|
338
|
+
nodes:
|
|
339
|
+
- id: "start"
|
|
340
|
+
type: "input"
|
|
341
|
+
- id: "classify"
|
|
342
|
+
agent: "classifier"
|
|
343
|
+
- id: "support"
|
|
344
|
+
agent: "support"
|
|
345
|
+
edges:
|
|
346
|
+
- from: "start"
|
|
347
|
+
to: "classify"
|
|
348
|
+
- from: "classify"
|
|
349
|
+
to: "support"
|
|
350
|
+
condition: "category == 'technical'"
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## 🛠️ Technology Stack
|
|
356
|
+
|
|
357
|
+
### Core Framework
|
|
358
|
+
- **Language**: Python 3.11+
|
|
359
|
+
- **Validation**: Pydantic v2
|
|
360
|
+
- **Concurrency**: AsyncIO
|
|
361
|
+
- **Testing**: Pytest
|
|
362
|
+
|
|
363
|
+
### Storage
|
|
364
|
+
- **Metadata**: PostgreSQL
|
|
365
|
+
- **Caching**: Redis
|
|
366
|
+
- **Vector DB**: Pinecone, Weaviate, Chroma
|
|
367
|
+
- **Graph DB**: Neo4j
|
|
368
|
+
|
|
369
|
+
### LLM Providers
|
|
370
|
+
- OpenAI (GPT-4, GPT-3.5)
|
|
371
|
+
- Anthropic (Claude 3)
|
|
372
|
+
- Google (Gemini)
|
|
373
|
+
- Cohere
|
|
374
|
+
- Local models (Ollama, LM Studio)
|
|
375
|
+
|
|
376
|
+
### No-Code Studio
|
|
377
|
+
- **Frontend**: React + TypeScript
|
|
378
|
+
- **Graph Viz**: ReactFlow
|
|
379
|
+
- **Styling**: TailwindCSS
|
|
380
|
+
- **Backend**: FastAPI
|
|
381
|
+
|
|
382
|
+
### DevOps
|
|
383
|
+
- **Containers**: Docker
|
|
384
|
+
- **Orchestration**: Kubernetes
|
|
385
|
+
- **CI/CD**: GitHub Actions
|
|
386
|
+
- **Monitoring**: Prometheus + Grafana
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 🎯 Key Differentiators
|
|
391
|
+
|
|
392
|
+
### vs CrewAI
|
|
393
|
+
✅ Graph-based workflows (not just sequential)
|
|
394
|
+
✅ Advanced memory system
|
|
395
|
+
✅ No-code interface
|
|
396
|
+
✅ Learning agents
|
|
397
|
+
✅ Enterprise features
|
|
398
|
+
|
|
399
|
+
### vs AutoGen
|
|
400
|
+
✅ Simpler configuration
|
|
401
|
+
✅ Rich built-in tools
|
|
402
|
+
✅ Visual workflow builder
|
|
403
|
+
✅ Better state management
|
|
404
|
+
✅ Multi-modal support
|
|
405
|
+
|
|
406
|
+
### vs BeeAI
|
|
407
|
+
✅ More sophisticated agents
|
|
408
|
+
✅ Complex orchestration
|
|
409
|
+
✅ Advanced memory
|
|
410
|
+
✅ Enterprise scalability
|
|
411
|
+
✅ Comprehensive tooling
|
|
412
|
+
|
|
413
|
+
### vs LangGraph
|
|
414
|
+
✅ All graph features PLUS:
|
|
415
|
+
✅ No-code interface
|
|
416
|
+
✅ Advanced agent capabilities
|
|
417
|
+
✅ Multi-layered memory
|
|
418
|
+
✅ Tool marketplace
|
|
419
|
+
✅ Learning and adaptation
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 📊 Success Metrics
|
|
424
|
+
|
|
425
|
+
### Technical
|
|
426
|
+
- ✅ All functional requirements implemented
|
|
427
|
+
- ✅ 80%+ test coverage
|
|
428
|
+
- ✅ 99.9% uptime
|
|
429
|
+
- ✅ < 2s agent response time
|
|
430
|
+
|
|
431
|
+
### Business
|
|
432
|
+
- 🎯 10,000+ GitHub stars in first year
|
|
433
|
+
- 🎯 100+ contributors
|
|
434
|
+
- 🎯 100+ companies in production
|
|
435
|
+
- 🎯 4.5+ star rating
|
|
436
|
+
|
|
437
|
+
### User Experience
|
|
438
|
+
- 🎯 < 5 minutes to first workflow
|
|
439
|
+
- 🎯 Non-technical users productive in < 1 hour
|
|
440
|
+
- 🎯 < 5% framework-related failures
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## 🤝 Contributing
|
|
445
|
+
|
|
446
|
+
We welcome contributions! This project is currently in the design phase. Once implementation begins, we'll provide:
|
|
447
|
+
|
|
448
|
+
- Contributing guidelines
|
|
449
|
+
- Code of conduct
|
|
450
|
+
- Development setup instructions
|
|
451
|
+
- Issue templates
|
|
452
|
+
- Pull request templates
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
## 📜 License
|
|
457
|
+
|
|
458
|
+
MIT License (Planned)
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
## 🔗 Links
|
|
463
|
+
|
|
464
|
+
- **Documentation**: See docs/ directory
|
|
465
|
+
- **GitHub**: (To be created)
|
|
466
|
+
- **Discord**: (To be created)
|
|
467
|
+
- **Website**: (To be created)
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## 📧 Contact
|
|
472
|
+
|
|
473
|
+
For questions or collaboration opportunities, please reach out through GitHub Discussions (once created).
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
## 🙏 Acknowledgments
|
|
478
|
+
|
|
479
|
+
Inspired by:
|
|
480
|
+
- [LangGraph](https://github.com/langchain-ai/langgraph) - Graph-based orchestration
|
|
481
|
+
- [CrewAI](https://github.com/joaomdmoura/crewAI) - Multi-agent collaboration
|
|
482
|
+
- [AutoGen](https://github.com/microsoft/autogen) - Conversational agents
|
|
483
|
+
- [BeeAI](https://github.com/i-am-bee/bee-agent-framework) - Agent framework design
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## 📈 Project Status
|
|
488
|
+
|
|
489
|
+
**Current Phase**: Design & Planning
|
|
490
|
+
**Next Milestone**: Begin Phase 1 implementation
|
|
491
|
+
**Expected Launch**: Week 20 (approximately 5 months from start)
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
**Built with ❤️ by the GenXAI team**
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
cli/__init__.py,sha256=vb-wwfq1Lz5emeSVLKdjlpog3wLhGLG4Hmc3gkeAmqk,77
|
|
2
|
+
cli/main.py,sha256=8arqxbgZSWT-kKZTavJvXMFO0S1xGSK_0N3ZNvfNODc,622
|
|
3
|
+
cli/commands/__init__.py,sha256=XAAt8fliMcnIjPUitlnDuZnh5ssdg2epmimsFSnbS4Y,139
|
|
4
|
+
cli/commands/approval.py,sha256=hBHHohdZh6Ii4g3olVfos5EvK5t2bHxdYIgUNqyF138,2417
|
|
5
|
+
cli/commands/audit.py,sha256=5bODjx6zrZCPZeRmlpcNjCScJI07Y_-LVEmQwO-Igco,3631
|
|
6
|
+
cli/commands/metrics.py,sha256=UrNB7raZG0fWcTy8aN68RXgeTOrBaHDBOF54whn9d9A,810
|
|
7
|
+
cli/commands/tool.py,sha256=Odzq413f-yCGNY-vaHOGe8js6eR9TzwhEizQKmLC2_Q,14113
|
|
8
|
+
genxai/__init__.py,sha256=7yvzNAOUsTDJ6SQTdop5X5WM51GGsqGF8_PuLO9UvUU,1531
|
|
9
|
+
genxai/api/__init__.py,sha256=2h93nh1bAStn6a9UN9tHYdVOEdkK6Q9opM9JfIOfqW4,109
|
|
10
|
+
genxai/api/app.py,sha256=lslCmIJonUhw5qTkJJPmIR6tyXoFMX9SePQr4yKKU2E,616
|
|
11
|
+
genxai/config/__init__.py,sha256=oue5dGpDI3NsVaQjVBUPgEWVO9RydDvLrEGJMUEDbVc,150
|
|
12
|
+
genxai/config/settings.py,sha256=WGBFen9ObRMV1xLUBkyMs4a29u2D3QXVDmd1QiJkhdo,1004
|
|
13
|
+
genxai/connectors/__init__.py,sha256=q9dEwMvAvDwBgyroKuCViv0FkCETVdVUtR4-vFJ1aZ0,593
|
|
14
|
+
genxai/connectors/base.py,sha256=6u1J5Ko4Q98aYQdbgHIx3VDxn1kJjaW1eD5tWsdT7m8,4305
|
|
15
|
+
genxai/connectors/kafka.py,sha256=SGJfLWb7J3XkfpX851LSNOmI5kNHN-F8LHKqUQ_AHiU,3012
|
|
16
|
+
genxai/connectors/postgres_cdc.py,sha256=ZfOP99VSVbIDXCnQfKlk7wXLPv9KgC369IWpq6818pk,3052
|
|
17
|
+
genxai/connectors/registry.py,sha256=q32sp6v9aq4oaezANuOqpV6Hthhp0KFv_pEZNqpqxGk,1237
|
|
18
|
+
genxai/connectors/sqs.py,sha256=WBaQTX_WbRpSL2jgUG0tl2F5TKjmKQjVZzDqptmHXbk,3211
|
|
19
|
+
genxai/connectors/webhook.py,sha256=f6KVSAFrZcNqT0RKC3AveMv8X8cWIsS-QdAkA7u-G30,2532
|
|
20
|
+
genxai/core/__init__.py,sha256=_rrzjEpoPvvUZs0OPFTsrw0LpqiefSeNHhERN4GscDk,647
|
|
21
|
+
genxai/core/agent/__init__.py,sha256=oQTkLNZMu8y7tOoUxP92ePpGAMs2st1ug-hJig9WgCA,804
|
|
22
|
+
genxai/core/agent/base.py,sha256=qjop8py8yr_BQi4ChdHwxb5TL6akN6jRFd7aUUiUnOM,6065
|
|
23
|
+
genxai/core/agent/config_io.py,sha256=uB0ZIMrrqN9xU6VaOsVO_efR1pGojpXDNjwZOD6mucc,2066
|
|
24
|
+
genxai/core/agent/registry.py,sha256=-P25g4qkwK5DvqyIA5unwghm0MqqKO2Ddm7fFp0RSbg,2518
|
|
25
|
+
genxai/core/agent/runtime.py,sha256=Hxfz05fUV7T1GleAzcc-BYtrSURLvylI7ExA3IfimKw,35532
|
|
26
|
+
genxai/core/communication/__init__.py,sha256=Zg0IDCtFv-xdbstsfZ-Lk4p9tVFURdS0Ixd9xFKRa9Y,259
|
|
27
|
+
genxai/core/communication/collaboration.py,sha256=MduOBHYD6qAXHrm8TlSeVP0R177KSOCQVrRis8DwVSo,1216
|
|
28
|
+
genxai/core/communication/message_bus.py,sha256=Knp02zEbWwVeGn-oNlhraO1M_4-qWBF6UwoYHEPmQlA,6240
|
|
29
|
+
genxai/core/communication/protocols.py,sha256=MNYU8B1n34BGD9APNOkCm1XLrE8AiFQDn7UMUMxPhR8,872
|
|
30
|
+
genxai/core/execution/__init__.py,sha256=8SU_ra0f7zMio48JQzMrjyofQW7Ht3wUMROSFYz1J_E,492
|
|
31
|
+
genxai/core/execution/metadata.py,sha256=96mEx4meT5si3vrc4E-HMAlkkbZIGDVRm7EertNUHJQ,6025
|
|
32
|
+
genxai/core/execution/queue.py,sha256=59S9ZYBC8-2bDhykyxa-KuFgAWdrRuHHWNpo2EOaH1E,6322
|
|
33
|
+
genxai/core/graph/__init__.py,sha256=AsiGVdTTxaqhwcyl5imwwnrlWuVm1zb-6IXAt-ekDFw,772
|
|
34
|
+
genxai/core/graph/checkpoints.py,sha256=6Njc-FaDeKR08Xhl4QyQWzdU465DutfM5QN1op2lJ3g,2274
|
|
35
|
+
genxai/core/graph/edges.py,sha256=NwiHiMQwpo6CG-HPKtVO9ee-F1nrfYCMenqNWLkAb4U,3966
|
|
36
|
+
genxai/core/graph/engine.py,sha256=sodtF2p02uWydCYOhe4Vr3EYja0N-PAiVPOhrBskyfo,27758
|
|
37
|
+
genxai/core/graph/executor.py,sha256=161fJA8iyKWuBKl1-k2mnKdqN3aNcZWfrdDc0y7zcYI,18033
|
|
38
|
+
genxai/core/graph/nodes.py,sha256=N5Vd8UwJJIUtM17JeaJFNkYqnICCodfXVXhO4OybiYo,4461
|
|
39
|
+
genxai/core/graph/trigger_runner.py,sha256=yoZlfGUO9___GjJT3cMXqefYZmVwSLu5TVgfnoz98G0,1220
|
|
40
|
+
genxai/core/memory/__init__.py,sha256=YqoYq_iaiOCZ-vrmOCiQr491pYFtEYFbLUhpTUUfKPE,599
|
|
41
|
+
genxai/core/memory/base.py,sha256=HN3D-uK1tD3Lu6vsp8c-l2ePBokfCWEJZL7uGF-dhEU,2068
|
|
42
|
+
genxai/core/memory/embedding.py,sha256=pwTey-HaOrGpROsMTKG4yj4SEcpJQVgjYPAcUTz9Bg8,10013
|
|
43
|
+
genxai/core/memory/episodic.py,sha256=JJk3bxei8BsdhHZeZkrSGwSjMFxV4J92w91-bnq9B3Y,14091
|
|
44
|
+
genxai/core/memory/long_term.py,sha256=H6L2eUQ_oPMePWB3ehquC54OFeE-u-xhfNWwMCBYt00,16526
|
|
45
|
+
genxai/core/memory/manager.py,sha256=DSe8E5bPaeU2yHXPgJD6T3eqJjUfQyh5EJkCV968uTg,16720
|
|
46
|
+
genxai/core/memory/persistence.py,sha256=wjc1ke5aA92H6ZrIM6_l8ghjI8uHRNyjFp2U-QxeCK0,9438
|
|
47
|
+
genxai/core/memory/procedural.py,sha256=JFw1QXBczpU7oWO0F1rBCuOvT1AxIuTzGidsOGqY_ns,14817
|
|
48
|
+
genxai/core/memory/semantic.py,sha256=bAR6WrFWTPbwlzyGxNTcddljVSuP11TnHuKtQMnWRgY,16251
|
|
49
|
+
genxai/core/memory/shared.py,sha256=xZdJ55VoYrn-GxjbO6Xa11MCsoQZzMU1bTncdYMu_pg,2211
|
|
50
|
+
genxai/core/memory/short_term.py,sha256=AtvRi2yIYvihwAxHOPePBIBefaK46DD8NZQ7_OFaSNQ,9740
|
|
51
|
+
genxai/core/memory/vector_store.py,sha256=j5JvfwewCXP8WdaXwbjGqRE67ow44EjTBFKyg2zW-x8,16576
|
|
52
|
+
genxai/core/memory/working.py,sha256=lI0utbuF5FK1B04YB0-SpNMZnWDBgYUHnCodcpdkseQ,5754
|
|
53
|
+
genxai/core/state/__init__.py,sha256=RV7-2nEjzjpNk7L2k6M9BWBrcL6LgNn3uKCy6C783z8,189
|
|
54
|
+
genxai/core/state/manager.py,sha256=WTZZTAkBqfFnqa6X8bjrzPmvxhRa4WleNzKmaBTjdLQ,8621
|
|
55
|
+
genxai/core/state/schema.py,sha256=TN30IivQ1QAzM0-Ar5O1RNmFQ-LzLPP43Fn3XQEjFcw,3562
|
|
56
|
+
genxai/llm/__init__.py,sha256=dZhE99A78co-JjO666KJ1s29wfO1QZCC1aueT_9bQwQ,381
|
|
57
|
+
genxai/llm/base.py,sha256=zBVWAAGOIFWXp2Xm6oA9Y_JOo5EOyPObGiTuWwCzZYk,4259
|
|
58
|
+
genxai/llm/factory.py,sha256=Vjl9BNZklEAJi-Imr9jI77Fr_vt_sYesOgBktWxPRYk,11872
|
|
59
|
+
genxai/llm/routing.py,sha256=wV_aMjSzfq_oxTKhIK-nbO6SJfQSWzoeqezX4O6PUkI,2612
|
|
60
|
+
genxai/llm/providers/__init__.py,sha256=vY9WHmhhmCP-zctpOIAViDJbjnNqfINdSqPQttBfOhA,36
|
|
61
|
+
genxai/llm/providers/anthropic.py,sha256=qsqNxiXEcuudznP_cnsEhh_efzHflztVy5FqtekarLM,8089
|
|
62
|
+
genxai/llm/providers/cohere.py,sha256=WRugzfVWgzZ3wvbfRqfKtyUR1XrcvZtLP3b6MspVeLY,9145
|
|
63
|
+
genxai/llm/providers/google.py,sha256=QiiW6aLIibAWC5Rj09YSujIazSjMw_OFNBU7BkH7Bok,12019
|
|
64
|
+
genxai/llm/providers/ollama.py,sha256=hlJb0p5JUFTKwDZOhbhbZ01hn1QMEsDTOG7Ajh-edX4,4753
|
|
65
|
+
genxai/llm/providers/openai.py,sha256=nAyN0OyEVGxxDydlfmUq2ct6YuZEkm-NtbQSVl-Rwp4,8266
|
|
66
|
+
genxai/observability/__init__.py,sha256=S-75DlP3jO1u7FbRFCBVHg0dMGhrM7ariMSFPDvHWJw,228
|
|
67
|
+
genxai/observability/logging.py,sha256=nGL9rQBlty3i3YosowXUQ_JueNms4qJS0ZHGatTXWCU,9530
|
|
68
|
+
genxai/observability/metrics.py,sha256=MwvRMd8Ae6crm-bAE1zFYm02W_3PGpI-K1tWGVHQpZ8,14625
|
|
69
|
+
genxai/observability/tracing.py,sha256=Rx-tgHCA7ijeOS1cZsK0EDKhl8IrhzkI9IzTY4ivksY,11256
|
|
70
|
+
genxai/performance/__init__.py,sha256=THsAmJ91Ys5B84CwjvYLfx16Tn_9mIXmZ8ibtVdXr7Y,742
|
|
71
|
+
genxai/performance/cache.py,sha256=8_m7cyFi3raW-fJKzLmQ7nqW3HsLutgbzGPvWgdY5N8,7159
|
|
72
|
+
genxai/performance/pooling.py,sha256=HHGvOfb6YDuBzL-YZIpn1aqNuw5NpDAZ2BEwaRENew4,8407
|
|
73
|
+
genxai/security/audit.py,sha256=s-ohUnI4zNHnx6K6gf1hdhqeg8OccuSQR-fql-qlAHs,9491
|
|
74
|
+
genxai/security/auth.py,sha256=dLB4xnZnaiGFR0xifN_jPTtLkq71TlqpvkVGULIoEfM,8928
|
|
75
|
+
genxai/security/cost_control.py,sha256=ri8b8czr3y45G36vn5JmWRCg8aqYFBN1sXUnAGxtXDM,14892
|
|
76
|
+
genxai/security/default_policies.py,sha256=-Z9C4VE6MeMkF-MybB63GXGKG5kZExX9nGUhc3y9l6E,1495
|
|
77
|
+
genxai/security/jwt.py,sha256=e2hni92AnWp4sJCJrAQdEkbobNV64yTj6wHGD4NIEgU,3751
|
|
78
|
+
genxai/security/oauth.py,sha256=xsCkTmphCtRDQ_i3myOoUzI3miAOPMlFGnzT1deakjM,7085
|
|
79
|
+
genxai/security/pii.py,sha256=11m42MpiTjLaYBQTmK-OB2ij0Ofologn_EtLDf1UGbg,10218
|
|
80
|
+
genxai/security/policy_engine.py,sha256=u7qXThbqgyGIDp2CWu7ooiwS4WsvXpbG78PocLLqMts,2517
|
|
81
|
+
genxai/security/rate_limit.py,sha256=L9OOeII0hTu9_O4itivXuubBcOUICb9v5Af2QcjGRrA,9434
|
|
82
|
+
genxai/security/rbac.py,sha256=ZT1hso6ch1LmLZxisFD8IA4r9GFJwy-JHEe7FsiCKd8,6542
|
|
83
|
+
genxai/security/validation.py,sha256=7vOqdK-VtEZztjhYghYAjRG-XwP_Kt3EWb6oFOBpJ-E,6017
|
|
84
|
+
genxai/tools/__init__.py,sha256=XPoz62-S-2C61nd3dNyWqE1-74MZ483viR5rDAB0s8Q,380
|
|
85
|
+
genxai/tools/base.py,sha256=ffZqRaR_hou7LmJcbwDdN8eeRZl2MWPhme42colv85o,13566
|
|
86
|
+
genxai/tools/dynamic.py,sha256=xNr8EgIvZ-Msm-2PEgBZ7MgTEArmVmgV-cM6QGobG9o,3554
|
|
87
|
+
genxai/tools/mcp_server.py,sha256=NwajypdLszEATVo_BHIK7iqleLIR5pQxMo4HGjDOvJk,5122
|
|
88
|
+
genxai/tools/registry.py,sha256=u_1N7JUoX_hnFy3dbUycsFTnneDChR8p60q-u3YfEWo,6503
|
|
89
|
+
genxai/tools/templates.py,sha256=k6Di2igBvMhT-tj2x3ULnKrSKvwjHgpYEMes9IhpsWQ,13498
|
|
90
|
+
genxai/tools/builtin/__init__.py,sha256=AMq8HUUth3sUPbp3L0PbEdmXUzVOB3PLAKL16c_hgo8,4386
|
|
91
|
+
genxai/tools/builtin/communication/__init__.py,sha256=dj2ohtLSPn9-IBY8oSo2azuFCacMui4PrMGrW8P0gXk,579
|
|
92
|
+
genxai/tools/builtin/communication/email_sender.py,sha256=Hywarx7t1qF5epJj-TitNCtB2NLoIHN1R04KhU768Tk,4665
|
|
93
|
+
genxai/tools/builtin/communication/notification_manager.py,sha256=sPdsqJ-3nscIc-me3tqKB48Dr4akd1AUk3l0xg7KMDI,5767
|
|
94
|
+
genxai/tools/builtin/communication/slack_notifier.py,sha256=7HeUJnj_t8Ry7QqUCc5mViiWYwTAY-gedsNru781gLA,3582
|
|
95
|
+
genxai/tools/builtin/communication/sms_sender.py,sha256=sE_IBpqNPFbpP-HQQ80apdC97IW26A5Q9sb-2Hw12Q0,3465
|
|
96
|
+
genxai/tools/builtin/communication/webhook_caller.py,sha256=4KfoOCyC_6Bs0SYJMBWFQgCInQ8tB7NX2vtJ-dWElPQ,4151
|
|
97
|
+
genxai/tools/builtin/computation/__init__.py,sha256=PjTZM2WyH4a-FeymbILU02yDHcNoPojo5DYQdUwb92g,551
|
|
98
|
+
genxai/tools/builtin/computation/calculator.py,sha256=SAyCnmWaqpfMpAh9nIhArnByrQRpIZjnyBLNj5XfZeQ,3211
|
|
99
|
+
genxai/tools/builtin/computation/code_executor.py,sha256=cPa2UQoKZZdZap0qhJCi-0UFYydeppC6_aBlwjLyvqE,6172
|
|
100
|
+
genxai/tools/builtin/computation/data_validator.py,sha256=F6Q8vCaZX2uOUQ-k9loPjbwjOjZbF891oW1tZEM3kP8,8333
|
|
101
|
+
genxai/tools/builtin/computation/hash_generator.py,sha256=l5aKsinavm_JKPJfZ67X0_Qw23cSpDQvy5nCvwCO_Fs,4022
|
|
102
|
+
genxai/tools/builtin/computation/regex_matcher.py,sha256=apSXWwEHsBnbq_zFGApu2gFnndr7K6CQuaJDOWTi42E,6397
|
|
103
|
+
genxai/tools/builtin/data/__init__.py,sha256=Wogq3M9VDhReKXT4fUtoCFUIffRtbq--F5r12xw6V2g,533
|
|
104
|
+
genxai/tools/builtin/data/csv_processor.py,sha256=GVgmJw6FlKjPycQAp6vyAP9IE65rvnisWj6WqiGSWFI,7844
|
|
105
|
+
genxai/tools/builtin/data/data_transformer.py,sha256=-_XPNSV8a9T6ozZLdt2GgJ-vinfbfJP8ctmlUD6lrjQ,9712
|
|
106
|
+
genxai/tools/builtin/data/json_processor.py,sha256=dEjwcOXPDXEJPvwvM1iI_ZzqZwKvrc_IIqde04qjpVc,8157
|
|
107
|
+
genxai/tools/builtin/data/text_analyzer.py,sha256=r2_HNfcluC7rS6tinTtblFv7OB5g8xBTrSn04sfSPQM,9879
|
|
108
|
+
genxai/tools/builtin/data/xml_processor.py,sha256=NkxgeramvJUB6q7wd9Ng4vRsQjzvHGFrbQNzUfkmSVI,5543
|
|
109
|
+
genxai/tools/builtin/database/__init__.py,sha256=A6PehxcXRrT5iLJSihws_g3UA6HsWSywKK6j9Kmioro,531
|
|
110
|
+
genxai/tools/builtin/database/database_inspector.py,sha256=UsOG5iyP019mgPZqicKZIgXu9FdVdYctynrbkDTJtOA,5341
|
|
111
|
+
genxai/tools/builtin/database/mongodb_query.py,sha256=8moXrfBbPKax6S8UJIeq0D7U8bgwWMXM5MWdEzNgSg8,6549
|
|
112
|
+
genxai/tools/builtin/database/redis_cache.py,sha256=VpcGrWzIO0liGaVRo56jo3Ptt-aqX9TL0GC_BuHDzfc,5085
|
|
113
|
+
genxai/tools/builtin/database/sql_query.py,sha256=XzFqJ3-bAi0KcVlnAjHkkMzsq13EYFt5Lhs0MFWaoSs,4924
|
|
114
|
+
genxai/tools/builtin/database/vector_search.py,sha256=BSGxnCFFcK_pumhho2BM-BlYfX-1ENEh7F9ElZTam7M,5167
|
|
115
|
+
genxai/tools/builtin/file/__init__.py,sha256=TxyH10nrLwyJWEbpAshU7hmfyNKT6-MKQfmWuA1bdIw,606
|
|
116
|
+
genxai/tools/builtin/file/directory_scanner.py,sha256=p4mqWkNolUWbzKSsyL45sa2In5M8rqEEz7lZfpIDMVg,7607
|
|
117
|
+
genxai/tools/builtin/file/file_compressor.py,sha256=69WCYTKWSSsdXQsv61sZsGH_dtpK9D1dMjQWIpiHSTY,8289
|
|
118
|
+
genxai/tools/builtin/file/file_reader.py,sha256=AU5s3zKG-TcfKzZh3Fo0PBzs2hA-oTNWSso1kE0WlrI,3059
|
|
119
|
+
genxai/tools/builtin/file/file_writer.py,sha256=easOknQxVSD8n5fuwj4CB4HHP5jSS5ieJkzqWajdNdI,3701
|
|
120
|
+
genxai/tools/builtin/file/image_processor.py,sha256=znl_GDtthLi1m5Lap0FdmD0Gq3Fo6F6_6pAYB4N5cx4,6559
|
|
121
|
+
genxai/tools/builtin/file/pdf_parser.py,sha256=AA09fpKeMSMMXaq6BNHeoCcC0vdPqhSr7i4zbjPkBNs,5110
|
|
122
|
+
genxai/tools/builtin/test/__init__.py,sha256=2OFM47Za6wRsb4h51f48QvFohXP5vCj45ArWiGb-v58,549
|
|
123
|
+
genxai/tools/builtin/test/async_simulator.py,sha256=4LGAJKYCdTkKu-g05pCkZ0BsfEk6Cv-cdVhqSJfF2wU,1884
|
|
124
|
+
genxai/tools/builtin/test/data_transformer.py,sha256=a2lHIxLjt7-1kfP5cZlmsX170GNDFsZdplqARnfRf7c,3308
|
|
125
|
+
genxai/tools/builtin/test/error_generator.py,sha256=AQxBvrzV9ILks4oAUTVHDvJfgI9BqtfZ6cCJKUPBIhs,2621
|
|
126
|
+
genxai/tools/builtin/test/simple_math.py,sha256=liytHnTk0elf2t7apK7mT1qBraU5joWtqQbBalO-irI,2673
|
|
127
|
+
genxai/tools/builtin/test/string_processor.py,sha256=PBoi3YNc0J0qYiIlLou0defnqndrKOWx8YQI_1xcWG8,2275
|
|
128
|
+
genxai/tools/builtin/web/__init__.py,sha256=4YFnCLPfyDWJP2bVsN7MihhiP1pnq39pn-bRRz6C3js,477
|
|
129
|
+
genxai/tools/builtin/web/api_caller.py,sha256=ZZMJfVefy4DBI_UcAik_P7hVniJFWdMEaM1oOn7AuLo,5079
|
|
130
|
+
genxai/tools/builtin/web/html_parser.py,sha256=K32zLFGLxRcE1F-inea3SOoT0gvvUM58FmCOjn1qNAQ,12610
|
|
131
|
+
genxai/tools/builtin/web/http_client.py,sha256=J_Kfz3d3bIAc_O5lPOUFF-whMRYgudiazYQd1x39ePo,6170
|
|
132
|
+
genxai/tools/builtin/web/url_validator.py,sha256=byFJ3oG9dOaifRQjI4hAKygT4KzA6NFhwybRhNHcfSQ,5622
|
|
133
|
+
genxai/tools/builtin/web/web_scraper.py,sha256=WMlVb5yM8UPGveH_t1BoZb4IQgf1xBZKyrhgQP3LKM8,5550
|
|
134
|
+
genxai/tools/custom/my_test_tool_2.py,sha256=OGAwfDia7mpLmekUhIEtywO_MryIeR_ydIojoUpqsFc,173
|
|
135
|
+
genxai/tools/persistence/__init__.py,sha256=5iWxHtzdN-Dsa42N1TUsWlHYyNaPZh-FsKsxVX6C8JY,208
|
|
136
|
+
genxai/tools/persistence/models.py,sha256=K6_6zUb5ll91wcD7eJrGUrkzjy1r8vIzAWfqXFPboSM,1896
|
|
137
|
+
genxai/tools/persistence/service.py,sha256=XWomqTWrq5gdxqIMmZmzbTvohp9pUXZNWO_8Zq_qjaw,10203
|
|
138
|
+
genxai/tools/security/__init__.py,sha256=t2LMt1cLH_h6aSYbNql6XJtpW_eoCZ7NXil0uGbLj1s,303
|
|
139
|
+
genxai/tools/security/limits.py,sha256=EVffwnIFz2ceYqc_42Nm3drlhKnnnL__rLbIyGLID0Y,7553
|
|
140
|
+
genxai/tools/security/policy.py,sha256=ZQf2BV2rJCtAWrt5mQmCJbIT3KTkUUvXFu7eI0D1trY,598
|
|
141
|
+
genxai/tools/security/sandbox.py,sha256=ulyCHOP_GXIHDLjdccgBGnbiXaGpP7oFN-Hce7UiwuY,7789
|
|
142
|
+
genxai/triggers/__init__.py,sha256=UX3qWumJWkt-E0P5S_gvAd6pZdon5ymhdGQHTGwehkw,570
|
|
143
|
+
genxai/triggers/base.py,sha256=Kl1mc-UpHipfwTU08l3wE4q0Xrs4G1B1UfvikwMbhfY,3573
|
|
144
|
+
genxai/triggers/file_watcher.py,sha256=FUaz6UQ9Y4S2HtatU2ev45JTM6uyYcyFuP_fKAYF6bQ,2482
|
|
145
|
+
genxai/triggers/queue.py,sha256=-fzx8KXjz9_3fvs6nayfx3QC2F6idXVKitAFCmp4Vss,2211
|
|
146
|
+
genxai/triggers/registry.py,sha256=4n_1IhRsc-7vKuTqWSjj5ftEIzTIAodSfZNgiEqiox8,2701
|
|
147
|
+
genxai/triggers/schedule.py,sha256=lDMmkZMz3OcK23yH2RHDs3EdPW1U7AC2rB5XHb5xKKk,2264
|
|
148
|
+
genxai/triggers/webhook.py,sha256=Mke2J8Du7FoooPi4RfQJlNFzuKGEKdEMMSZb6POHN04,2305
|
|
149
|
+
genxai/utils/__init__.py,sha256=G-QqU0cbUBxARFUvB5-AC0iU7d4wNiXRBGdVthItB6o,36
|
|
150
|
+
genxai/utils/tokens.py,sha256=Bj7_ogE3UYTGKLnkLtjiaIVMGa7ey8RxBKzRXADJCmA,8707
|
|
151
|
+
genxai_framework-0.1.0.dist-info/licenses/LICENSE,sha256=Uhsc-LcYGNEbJle0w4oeluHqh_W1SJxrN-_M4UxhoH8,1068
|
|
152
|
+
genxai_framework-0.1.0.dist-info/METADATA,sha256=By24FGVejn7j8kfW-7lp9i5pTx-MmjVjAqYgScgmBao,15824
|
|
153
|
+
genxai_framework-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
154
|
+
genxai_framework-0.1.0.dist-info/entry_points.txt,sha256=f9AdbBidEnMS9u_UNPlWV8LCR-8Kp_93YxVP357WdoM,41
|
|
155
|
+
genxai_framework-0.1.0.dist-info/top_level.txt,sha256=Jqpp4DVVrqhEJL8WeKrExKNLEX3TIWdMAr7Gm3PU9SA,11
|
|
156
|
+
genxai_framework-0.1.0.dist-info/RECORD,,
|