vorte 1.0.0__tar.gz

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 (166) hide show
  1. vorte-1.0.0/LICENSE +21 -0
  2. vorte-1.0.0/PKG-INFO +133 -0
  3. vorte-1.0.0/README.md +74 -0
  4. vorte-1.0.0/pyproject.toml +85 -0
  5. vorte-1.0.0/setup.cfg +4 -0
  6. vorte-1.0.0/setup.py +50 -0
  7. vorte-1.0.0/vorte/__init__.py +97 -0
  8. vorte-1.0.0/vorte/cli/__init__.py +5 -0
  9. vorte-1.0.0/vorte/cli/main.py +959 -0
  10. vorte-1.0.0/vorte/core/__init__.py +27 -0
  11. vorte-1.0.0/vorte/core/app.py +663 -0
  12. vorte-1.0.0/vorte/core/config.py +281 -0
  13. vorte-1.0.0/vorte/core/di.py +234 -0
  14. vorte-1.0.0/vorte/core/module.py +259 -0
  15. vorte-1.0.0/vorte/core/response.py +264 -0
  16. vorte-1.0.0/vorte/core/router.py +148 -0
  17. vorte-1.0.0/vorte/middleware/__init__.py +10 -0
  18. vorte-1.0.0/vorte/middleware/error_handler.py +28 -0
  19. vorte-1.0.0/vorte/middleware/request_timing.py +17 -0
  20. vorte-1.0.0/vorte/modules/__init__.py +47 -0
  21. vorte-1.0.0/vorte/modules/agents/__init__.py +98 -0
  22. vorte-1.0.0/vorte/modules/agents/agent.py +564 -0
  23. vorte-1.0.0/vorte/modules/agents/guardrails.py +147 -0
  24. vorte-1.0.0/vorte/modules/agents/memory.py +475 -0
  25. vorte-1.0.0/vorte/modules/agents/module.py +198 -0
  26. vorte-1.0.0/vorte/modules/agents/orchestrator.py +579 -0
  27. vorte-1.0.0/vorte/modules/agents/pipeline.py +650 -0
  28. vorte-1.0.0/vorte/modules/agents/prompts.py +105 -0
  29. vorte-1.0.0/vorte/modules/agents/rag.py +475 -0
  30. vorte-1.0.0/vorte/modules/agents/tools.py +504 -0
  31. vorte-1.0.0/vorte/modules/ai/__init__.py +109 -0
  32. vorte-1.0.0/vorte/modules/ai/client.py +586 -0
  33. vorte-1.0.0/vorte/modules/ai/cost_tracker.py +336 -0
  34. vorte-1.0.0/vorte/modules/ai/embeddings.py +251 -0
  35. vorte-1.0.0/vorte/modules/ai/module.py +245 -0
  36. vorte-1.0.0/vorte/modules/ai/providers/__init__.py +19 -0
  37. vorte-1.0.0/vorte/modules/ai/providers/anthropic.py +358 -0
  38. vorte-1.0.0/vorte/modules/ai/providers/base.py +85 -0
  39. vorte-1.0.0/vorte/modules/ai/providers/gemini.py +346 -0
  40. vorte-1.0.0/vorte/modules/ai/providers/mistral.py +296 -0
  41. vorte-1.0.0/vorte/modules/ai/providers/openai.py +308 -0
  42. vorte-1.0.0/vorte/modules/ai/providers/registry.py +196 -0
  43. vorte-1.0.0/vorte/modules/ai/schemas.py +295 -0
  44. vorte-1.0.0/vorte/modules/ai/streaming.py +320 -0
  45. vorte-1.0.0/vorte/modules/auth/__init__.py +54 -0
  46. vorte-1.0.0/vorte/modules/auth/api_keys.py +326 -0
  47. vorte-1.0.0/vorte/modules/auth/guards.py +336 -0
  48. vorte-1.0.0/vorte/modules/auth/jwt.py +380 -0
  49. vorte-1.0.0/vorte/modules/auth/mfa.py +390 -0
  50. vorte-1.0.0/vorte/modules/auth/models.py +343 -0
  51. vorte-1.0.0/vorte/modules/auth/module.py +304 -0
  52. vorte-1.0.0/vorte/modules/auth/oauth.py +223 -0
  53. vorte-1.0.0/vorte/modules/auth/rbac.py +442 -0
  54. vorte-1.0.0/vorte/modules/auth/schemas.py +315 -0
  55. vorte-1.0.0/vorte/modules/auth/sessions.py +351 -0
  56. vorte-1.0.0/vorte/modules/cache/__init__.py +30 -0
  57. vorte-1.0.0/vorte/modules/cache/cache.py +516 -0
  58. vorte-1.0.0/vorte/modules/cache/decorators.py +258 -0
  59. vorte-1.0.0/vorte/modules/cache/l1_memory.py +302 -0
  60. vorte-1.0.0/vorte/modules/cache/l2_redis.py +418 -0
  61. vorte-1.0.0/vorte/modules/cache/l3_cdn.py +318 -0
  62. vorte-1.0.0/vorte/modules/cache/l4_db.py +431 -0
  63. vorte-1.0.0/vorte/modules/cache/module.py +119 -0
  64. vorte-1.0.0/vorte/modules/dashboard/__init__.py +5 -0
  65. vorte-1.0.0/vorte/modules/dashboard/module.py +118 -0
  66. vorte-1.0.0/vorte/modules/dashboard/static/404.html +1 -0
  67. vorte-1.0.0/vorte/modules/dashboard/static/__next.__PAGE__.txt +9 -0
  68. vorte-1.0.0/vorte/modules/dashboard/static/__next._full.txt +23 -0
  69. vorte-1.0.0/vorte/modules/dashboard/static/__next._head.txt +6 -0
  70. vorte-1.0.0/vorte/modules/dashboard/static/__next._index.txt +8 -0
  71. vorte-1.0.0/vorte/modules/dashboard/static/__next._tree.txt +5 -0
  72. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0.k7yvsa6bmck.js +1 -0
  73. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/03~yq9q893hmn.js +1 -0
  74. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0f0e3edvi~g7a.js +5 -0
  75. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0hidhenro5qz..js +1 -0
  76. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0k~u_jyibvj9b.js +31 -0
  77. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0neevhl_o1ozu.css +2 -0
  78. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0pjew48sfwghj.js +26 -0
  79. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0wnud6qnj8g2-.js +1 -0
  80. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0x37azccnzmn9.css +1 -0
  81. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/0~_1x27hmki5g.js +1 -0
  82. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/chunks/turbopack-0dsxmtxq9y3yu.js +1 -0
  83. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
  84. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2 +0 -0
  85. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
  86. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 +0 -0
  87. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
  88. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 +0 -0
  89. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/vorte-build/_buildManifest.js +11 -0
  90. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/vorte-build/_clientMiddlewareManifest.js +1 -0
  91. vorte-1.0.0/vorte/modules/dashboard/static/_next/static/vorte-build/_ssgManifest.js +1 -0
  92. vorte-1.0.0/vorte/modules/dashboard/static/_not-found/__next._full.txt +19 -0
  93. vorte-1.0.0/vorte/modules/dashboard/static/_not-found/__next._head.txt +6 -0
  94. vorte-1.0.0/vorte/modules/dashboard/static/_not-found/__next._index.txt +8 -0
  95. vorte-1.0.0/vorte/modules/dashboard/static/_not-found/__next._not-found/__PAGE__.txt +5 -0
  96. vorte-1.0.0/vorte/modules/dashboard/static/_not-found/__next._not-found.txt +5 -0
  97. vorte-1.0.0/vorte/modules/dashboard/static/_not-found/__next._tree.txt +3 -0
  98. vorte-1.0.0/vorte/modules/dashboard/static/_not-found.html +1 -0
  99. vorte-1.0.0/vorte/modules/dashboard/static/_not-found.txt +19 -0
  100. vorte-1.0.0/vorte/modules/dashboard/static/api +1 -0
  101. vorte-1.0.0/vorte/modules/dashboard/static/index.html +1 -0
  102. vorte-1.0.0/vorte/modules/dashboard/static/index.txt +23 -0
  103. vorte-1.0.0/vorte/modules/dashboard/static/logo.svg +29 -0
  104. vorte-1.0.0/vorte/modules/dashboard/static/robots.txt +14 -0
  105. vorte-1.0.0/vorte/modules/database/__init__.py +94 -0
  106. vorte-1.0.0/vorte/modules/database/connection.py +275 -0
  107. vorte-1.0.0/vorte/modules/database/migrations.py +736 -0
  108. vorte-1.0.0/vorte/modules/database/model.py +436 -0
  109. vorte-1.0.0/vorte/modules/database/module.py +331 -0
  110. vorte-1.0.0/vorte/modules/database/pagination.py +303 -0
  111. vorte-1.0.0/vorte/modules/database/query.py +680 -0
  112. vorte-1.0.0/vorte/modules/database/seeders.py +299 -0
  113. vorte-1.0.0/vorte/modules/features/__init__.py +5 -0
  114. vorte-1.0.0/vorte/modules/features/module.py +157 -0
  115. vorte-1.0.0/vorte/modules/graphql/__init__.py +5 -0
  116. vorte-1.0.0/vorte/modules/graphql/module.py +239 -0
  117. vorte-1.0.0/vorte/modules/i18n/__init__.py +5 -0
  118. vorte-1.0.0/vorte/modules/i18n/module.py +153 -0
  119. vorte-1.0.0/vorte/modules/logging/__init__.py +5 -0
  120. vorte-1.0.0/vorte/modules/logging/module.py +173 -0
  121. vorte-1.0.0/vorte/modules/mailer/__init__.py +10 -0
  122. vorte-1.0.0/vorte/modules/mailer/mailer.py +444 -0
  123. vorte-1.0.0/vorte/modules/mailer/module.py +70 -0
  124. vorte-1.0.0/vorte/modules/mpesa/__init__.py +21 -0
  125. vorte-1.0.0/vorte/modules/mpesa/events.py +75 -0
  126. vorte-1.0.0/vorte/modules/mpesa/module.py +122 -0
  127. vorte-1.0.0/vorte/modules/mpesa/mpesa.py +418 -0
  128. vorte-1.0.0/vorte/modules/notifications/__init__.py +10 -0
  129. vorte-1.0.0/vorte/modules/notifications/module.py +70 -0
  130. vorte-1.0.0/vorte/modules/notifications/notifier.py +323 -0
  131. vorte-1.0.0/vorte/modules/payments/__init__.py +5 -0
  132. vorte-1.0.0/vorte/modules/payments/module.py +258 -0
  133. vorte-1.0.0/vorte/modules/queue/__init__.py +17 -0
  134. vorte-1.0.0/vorte/modules/queue/job.py +272 -0
  135. vorte-1.0.0/vorte/modules/queue/module.py +77 -0
  136. vorte-1.0.0/vorte/modules/queue/queue.py +222 -0
  137. vorte-1.0.0/vorte/modules/queue/scheduler.py +392 -0
  138. vorte-1.0.0/vorte/modules/queue/worker.py +296 -0
  139. vorte-1.0.0/vorte/modules/search/__init__.py +30 -0
  140. vorte-1.0.0/vorte/modules/search/module.py +156 -0
  141. vorte-1.0.0/vorte/modules/search/search.py +700 -0
  142. vorte-1.0.0/vorte/modules/security/__init__.py +5 -0
  143. vorte-1.0.0/vorte/modules/security/module.py +249 -0
  144. vorte-1.0.0/vorte/modules/sockets/__init__.py +8 -0
  145. vorte-1.0.0/vorte/modules/sockets/events.py +37 -0
  146. vorte-1.0.0/vorte/modules/sockets/manager.py +197 -0
  147. vorte-1.0.0/vorte/modules/sockets/module.py +54 -0
  148. vorte-1.0.0/vorte/modules/sockets/presence.py +5 -0
  149. vorte-1.0.0/vorte/modules/sockets/rooms.py +8 -0
  150. vorte-1.0.0/vorte/modules/storage/__init__.py +10 -0
  151. vorte-1.0.0/vorte/modules/storage/drivers/__init__.py +5 -0
  152. vorte-1.0.0/vorte/modules/storage/drivers/local.py +111 -0
  153. vorte-1.0.0/vorte/modules/storage/drivers/s3.py +158 -0
  154. vorte-1.0.0/vorte/modules/storage/module.py +106 -0
  155. vorte-1.0.0/vorte/modules/storage/storage.py +181 -0
  156. vorte-1.0.0/vorte/modules/tenancy/__init__.py +5 -0
  157. vorte-1.0.0/vorte/modules/tenancy/module.py +163 -0
  158. vorte-1.0.0/vorte/modules/webhooks/__init__.py +5 -0
  159. vorte-1.0.0/vorte/modules/webhooks/module.py +148 -0
  160. vorte-1.0.0/vorte/testing/__init__.py +234 -0
  161. vorte-1.0.0/vorte.egg-info/PKG-INFO +133 -0
  162. vorte-1.0.0/vorte.egg-info/SOURCES.txt +164 -0
  163. vorte-1.0.0/vorte.egg-info/dependency_links.txt +1 -0
  164. vorte-1.0.0/vorte.egg-info/entry_points.txt +2 -0
  165. vorte-1.0.0/vorte.egg-info/requires.txt +46 -0
  166. vorte-1.0.0/vorte.egg-info/top_level.txt +1 -0
vorte-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Vorte Framework
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.
vorte-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,133 @@
1
+ Metadata-Version: 2.4
2
+ Name: vorte
3
+ Version: 1.0.0
4
+ Summary: The AI-First Python API Framework. Fast, intelligent, and modular.
5
+ Author-email: Vorte Framework <hello@vorte.dev>
6
+ License: MIT
7
+ Keywords: api,framework,ai,fastapi,async,python
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
15
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
16
+ Requires-Python: >=3.11
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: fastapi>=0.115.0
20
+ Requires-Dist: uvicorn[standard]>=0.32.0
21
+ Requires-Dist: pydantic[email]>=2.10.0
22
+ Requires-Dist: sqlalchemy[asyncio]>=2.0.0
23
+ Requires-Dist: asyncpg>=0.30.0
24
+ Requires-Dist: redis>=5.0.0
25
+ Requires-Dist: httpx>=0.28.0
26
+ Requires-Dist: PyJWT>=2.9.0
27
+ Requires-Dist: passlib[bcrypt]>=1.7.4
28
+ Requires-Dist: python-multipart>=0.0.18
29
+ Requires-Dist: alembic>=1.14.0
30
+ Requires-Dist: cryptography>=44.0.0
31
+ Requires-Dist: jinja2>=3.1.0
32
+ Requires-Dist: click>=8.1.0
33
+ Requires-Dist: python-dotenv>=1.0.0
34
+ Requires-Dist: aiosqlite>=0.20.0
35
+ Provides-Extra: full
36
+ Requires-Dist: vorte[ai]; extra == "full"
37
+ Requires-Dist: vorte[mpesa]; extra == "full"
38
+ Requires-Dist: vorte[payments]; extra == "full"
39
+ Requires-Dist: vorte[search]; extra == "full"
40
+ Requires-Dist: vorte[storage]; extra == "full"
41
+ Provides-Extra: ai
42
+ Requires-Dist: openai>=1.60.0; extra == "ai"
43
+ Requires-Dist: anthropic>=0.40.0; extra == "ai"
44
+ Requires-Dist: google-generativeai>=0.8.0; extra == "ai"
45
+ Provides-Extra: mpesa
46
+ Provides-Extra: payments
47
+ Requires-Dist: stripe>=11.0.0; extra == "payments"
48
+ Provides-Extra: search
49
+ Requires-Dist: meilisearch>=0.31.0; extra == "search"
50
+ Provides-Extra: storage
51
+ Requires-Dist: boto3>=1.35.0; extra == "storage"
52
+ Provides-Extra: dev
53
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
54
+ Requires-Dist: pytest-asyncio>=0.24.0; extra == "dev"
55
+ Requires-Dist: httpx>=0.28.0; extra == "dev"
56
+ Requires-Dist: ruff>=0.8.0; extra == "dev"
57
+ Requires-Dist: mypy>=1.13.0; extra == "dev"
58
+ Dynamic: license-file
59
+
60
+ # 🌌 Vorte Framework
61
+
62
+ **The AI-First, Battery-Included Python API Framework.**
63
+
64
+ Vorte is a high-performance Python framework designed for modern web development, with a specific focus on AI agents, real-time monitoring, and seamless developer experience. It bridges the gap between powerful backends and stunning, real-time administrative interfaces.
65
+
66
+ ---
67
+
68
+ ## ✨ Key Features
69
+
70
+ - 🚀 **Built-in Dashboard**: A premium Next.js admin panel automatically served at `/vorte/dashboard`.
71
+ - 🧠 **AI-First**: Native support for AI agents, pipelines, and cost tracking out of the box.
72
+ - 🛠️ **Module System**: Highly decoupled architecture—only use what you need.
73
+ - ⚡ **High Performance**: Built on top of FastAPI and Uvicorn for maximum throughput.
74
+ - 📱 **M-Pesa Integration**: First-class support for Safaricom M-Pesa (Daraja) operations.
75
+ - 📊 **Real-time Metrics**: Track traffic, latency, and system health in real-time.
76
+ - 🐳 **Cloud Ready**: Auto-generates Docker and Kubernetes manifests.
77
+
78
+ ---
79
+
80
+ ## 🚀 Quick Start
81
+
82
+ ### 1. Install Vorte
83
+ ```bash
84
+ pip install vorte
85
+ ```
86
+
87
+ ### 2. Scaffold Your Project
88
+ ```bash
89
+ vorte new my-awesome-app
90
+ cd my-awesome-app
91
+ ```
92
+
93
+ ### 3. Launch
94
+ ```bash
95
+ vorte serve --watch
96
+ ```
97
+ Visit `http://localhost:8000/vorte/dashboard` to see your new console!
98
+
99
+ ---
100
+
101
+ ## 🏗️ Architecture
102
+
103
+ Vorte follows a modular "Core + Plugins" architecture. The core provides the engine, while modules handle specific functionality like AI, Database, and Auth.
104
+
105
+ ```python
106
+ from vorte import Vorte
107
+
108
+ app = Vorte(auto_load=True)
109
+
110
+ @app.get("/api/v1/hello")
111
+ async def hello():
112
+ return {"message": "Welcome to Vorte!"}
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 🎨 Dashboard Customization
118
+
119
+ The dashboard is built with **Next.js**, **Tailwind CSS**, and **Framer Motion**. You can find the source in the `src/` directory if you wish to build custom modules or skins.
120
+
121
+ ---
122
+
123
+ ## 📄 License
124
+
125
+ Vorte is released under the **MIT License**.
126
+
127
+ ## 🤝 Contributing
128
+
129
+ We welcome contributions! Please check the issues or submit a pull request.
130
+
131
+ ---
132
+
133
+ *Built with ❤️ for developers who value speed, aesthetics, and intelligence.*
vorte-1.0.0/README.md ADDED
@@ -0,0 +1,74 @@
1
+ # 🌌 Vorte Framework
2
+
3
+ **The AI-First, Battery-Included Python API Framework.**
4
+
5
+ Vorte is a high-performance Python framework designed for modern web development, with a specific focus on AI agents, real-time monitoring, and seamless developer experience. It bridges the gap between powerful backends and stunning, real-time administrative interfaces.
6
+
7
+ ---
8
+
9
+ ## ✨ Key Features
10
+
11
+ - 🚀 **Built-in Dashboard**: A premium Next.js admin panel automatically served at `/vorte/dashboard`.
12
+ - 🧠 **AI-First**: Native support for AI agents, pipelines, and cost tracking out of the box.
13
+ - 🛠️ **Module System**: Highly decoupled architecture—only use what you need.
14
+ - ⚡ **High Performance**: Built on top of FastAPI and Uvicorn for maximum throughput.
15
+ - 📱 **M-Pesa Integration**: First-class support for Safaricom M-Pesa (Daraja) operations.
16
+ - 📊 **Real-time Metrics**: Track traffic, latency, and system health in real-time.
17
+ - 🐳 **Cloud Ready**: Auto-generates Docker and Kubernetes manifests.
18
+
19
+ ---
20
+
21
+ ## 🚀 Quick Start
22
+
23
+ ### 1. Install Vorte
24
+ ```bash
25
+ pip install vorte
26
+ ```
27
+
28
+ ### 2. Scaffold Your Project
29
+ ```bash
30
+ vorte new my-awesome-app
31
+ cd my-awesome-app
32
+ ```
33
+
34
+ ### 3. Launch
35
+ ```bash
36
+ vorte serve --watch
37
+ ```
38
+ Visit `http://localhost:8000/vorte/dashboard` to see your new console!
39
+
40
+ ---
41
+
42
+ ## 🏗️ Architecture
43
+
44
+ Vorte follows a modular "Core + Plugins" architecture. The core provides the engine, while modules handle specific functionality like AI, Database, and Auth.
45
+
46
+ ```python
47
+ from vorte import Vorte
48
+
49
+ app = Vorte(auto_load=True)
50
+
51
+ @app.get("/api/v1/hello")
52
+ async def hello():
53
+ return {"message": "Welcome to Vorte!"}
54
+ ```
55
+
56
+ ---
57
+
58
+ ## 🎨 Dashboard Customization
59
+
60
+ The dashboard is built with **Next.js**, **Tailwind CSS**, and **Framer Motion**. You can find the source in the `src/` directory if you wish to build custom modules or skins.
61
+
62
+ ---
63
+
64
+ ## 📄 License
65
+
66
+ Vorte is released under the **MIT License**.
67
+
68
+ ## 🤝 Contributing
69
+
70
+ We welcome contributions! Please check the issues or submit a pull request.
71
+
72
+ ---
73
+
74
+ *Built with ❤️ for developers who value speed, aesthetics, and intelligence.*
@@ -0,0 +1,85 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "vorte"
7
+ version = "1.0.0"
8
+ description = "The AI-First Python API Framework. Fast, intelligent, and modular."
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ requires-python = ">=3.11"
12
+ authors = [
13
+ {name = "Vorte Framework", email = "hello@vorte.dev"},
14
+ ]
15
+ keywords = ["api", "framework", "ai", "fastapi", "async", "python"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Topic :: Internet :: WWW/HTTP :: HTTP Servers",
24
+ "Topic :: Software Development :: Libraries :: Application Frameworks",
25
+ ]
26
+ dependencies = [
27
+ "fastapi>=0.115.0",
28
+ "uvicorn[standard]>=0.32.0",
29
+ "pydantic[email]>=2.10.0",
30
+ "sqlalchemy[asyncio]>=2.0.0",
31
+ "asyncpg>=0.30.0",
32
+ "redis>=5.0.0",
33
+ "httpx>=0.28.0",
34
+ "PyJWT>=2.9.0",
35
+ "passlib[bcrypt]>=1.7.4",
36
+ "python-multipart>=0.0.18",
37
+ "alembic>=1.14.0",
38
+ "cryptography>=44.0.0",
39
+ "jinja2>=3.1.0",
40
+ "click>=8.1.0",
41
+ "python-dotenv>=1.0.0",
42
+ "aiosqlite>=0.20.0",
43
+ ]
44
+
45
+ [project.optional-dependencies]
46
+ full = [
47
+ "vorte[ai]",
48
+ "vorte[mpesa]",
49
+ "vorte[payments]",
50
+ "vorte[search]",
51
+ "vorte[storage]",
52
+ ]
53
+ ai = [
54
+ "openai>=1.60.0",
55
+ "anthropic>=0.40.0",
56
+ "google-generativeai>=0.8.0",
57
+ ]
58
+ mpesa = []
59
+ payments = ["stripe>=11.0.0"]
60
+ search = ["meilisearch>=0.31.0"]
61
+ storage = ["boto3>=1.35.0"]
62
+ dev = [
63
+ "pytest>=8.0.0",
64
+ "pytest-asyncio>=0.24.0",
65
+ "httpx>=0.28.0",
66
+ "ruff>=0.8.0",
67
+ "mypy>=1.13.0",
68
+ ]
69
+
70
+ [project.scripts]
71
+ vorte = "vorte.cli.main:cli"
72
+
73
+ [tool.setuptools.packages.find]
74
+ include = ["vorte*"]
75
+
76
+ [tool.setuptools.package-data]
77
+ "vorte.modules.dashboard" = ["static/**/*"]
78
+
79
+ [tool.ruff]
80
+ target-version = "py311"
81
+ line-length = 100
82
+
83
+ [tool.pytest.ini_options]
84
+ asyncio_mode = "auto"
85
+ testpaths = ["tests"]
vorte-1.0.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
vorte-1.0.0/setup.py ADDED
@@ -0,0 +1,50 @@
1
+ import os
2
+ import subprocess
3
+ import shutil
4
+ from pathlib import Path
5
+ from setuptools import setup
6
+ from setuptools.command.build_py import build_py
7
+ from setuptools.command.sdist import sdist
8
+
9
+ dashboard_built = False
10
+
11
+ def build_dashboard():
12
+ """Build the Next.js dashboard and copy to static directory."""
13
+ global dashboard_built
14
+ if dashboard_built:
15
+ return
16
+
17
+ print("Building Vorte Dashboard...")
18
+ setup_dir = Path(__file__).parent
19
+ vorte_dir = setup_dir.parent
20
+
21
+ if not (vorte_dir / "package.json").exists():
22
+ print(f"Warning: Could not find package.json in {vorte_dir}. Skipping dashboard build.")
23
+ return
24
+
25
+ # Run npm run build
26
+ print("Running 'npm run build'...")
27
+ try:
28
+ # Use shell=True for cross-platform compatibility (especially Windows npm)
29
+ subprocess.run(["npm", "run", "build"], cwd=vorte_dir, check=True, shell=True)
30
+ except subprocess.CalledProcessError as e:
31
+ print(f"Error: Dashboard build failed. {e}")
32
+ return
33
+
34
+ # Copy out/ to static/
35
+ out_dir = vorte_dir / "out"
36
+ static_dir = setup_dir / "vorte" / "modules" / "dashboard" / "static"
37
+
38
+ if out_dir.exists():
39
+ if static_dir.exists():
40
+ shutil.rmtree(static_dir)
41
+ shutil.copytree(out_dir, static_dir)
42
+ print(f"Dashboard successfully built and copied to {static_dir}")
43
+ else:
44
+ print("Warning: out/ directory not found after build.")
45
+
46
+
47
+ # Run the build before setup() is called so setuptools sees the new files
48
+ build_dashboard()
49
+
50
+ setup()
@@ -0,0 +1,97 @@
1
+ """
2
+ Vorte Framework - The AI-First Python API Framework
3
+ =====================================================
4
+ Fast, intelligent, and modular. Built on FastAPI with batteries-included architecture,
5
+ multi-provider AI integration, and production-ready features.
6
+
7
+ Version: 1.0.0
8
+ License: MIT
9
+
10
+ Quick Start:
11
+ from vorte import Vorte
12
+
13
+ # Create app with all 21 modules auto-loaded
14
+ app = Vorte(auto_load=True)
15
+
16
+ # Or cherry-pick modules
17
+ app = Vorte()
18
+ app.register(AuthModule(), AIModule(), CacheModule())
19
+
20
+ import uvicorn
21
+ uvicorn.run(app, host="0.0.0.0", port=8000)
22
+ """
23
+
24
+ __version__ = "1.0.0"
25
+ __author__ = "Vorte Framework"
26
+ __license__ = "MIT"
27
+
28
+ from vorte.core.app import Vorte
29
+ from vorte.core.module import Module, ModuleRegistry, ModuleMeta, ModuleState, ModulePriority
30
+ from vorte.core.config import Settings, settings
31
+ from vorte.core.response import VorteResponse, success_response, error_response
32
+ from vorte.core.router import router
33
+ from vorte.core.di import Container, Depends, inject
34
+
35
+ # All 21 built-in modules — directly importable
36
+ from vorte.modules.auth import AuthModule
37
+ from vorte.modules.database import DatabaseModule
38
+ from vorte.modules.ai import AIModule
39
+ from vorte.modules.agents import AgentsModule
40
+ from vorte.modules.cache import CacheModule
41
+ from vorte.modules.queue import QueueModule
42
+ from vorte.modules.search import SearchModule
43
+ from vorte.modules.storage import StorageModule
44
+ from vorte.modules.mailer import MailerModule
45
+ from vorte.modules.notifications import NotificationsModule
46
+ from vorte.modules.mpesa import MpesaModule
47
+ from vorte.modules.payments import PaymentsModule
48
+ from vorte.modules.tenancy import MultiTenancyModule
49
+ from vorte.modules.i18n import I18nModule
50
+ from vorte.modules.security import SecurityModule
51
+ from vorte.modules.webhooks import WebhooksModule
52
+ from vorte.modules.features import FeaturesModule
53
+ from vorte.modules.graphql import GraphQLModule
54
+ from vorte.modules.logging import LoggingModule
55
+ from vorte.modules.sockets import SocketModule
56
+ from vorte.modules.dashboard import DashboardModule
57
+
58
+ __all__ = [
59
+ # Core
60
+ "Vorte",
61
+ "Module",
62
+ "ModuleRegistry",
63
+ "ModuleMeta",
64
+ "ModuleState",
65
+ "ModulePriority",
66
+ "Settings",
67
+ "settings",
68
+ "VorteResponse",
69
+ "success_response",
70
+ "error_response",
71
+ "router",
72
+ "Container",
73
+ "Depends",
74
+ "inject",
75
+ # Built-in Modules
76
+ "AuthModule",
77
+ "DatabaseModule",
78
+ "AIModule",
79
+ "AgentsModule",
80
+ "CacheModule",
81
+ "QueueModule",
82
+ "SearchModule",
83
+ "StorageModule",
84
+ "MailerModule",
85
+ "NotificationsModule",
86
+ "MpesaModule",
87
+ "PaymentsModule",
88
+ "MultiTenancyModule",
89
+ "I18nModule",
90
+ "SecurityModule",
91
+ "WebhooksModule",
92
+ "FeaturesModule",
93
+ "GraphQLModule",
94
+ "LoggingModule",
95
+ "SocketModule",
96
+ "DashboardModule",
97
+ ]
@@ -0,0 +1,5 @@
1
+ """Vorte CLI - Command-line interface for Vorte Framework."""
2
+
3
+ from vorte.cli.main import cli
4
+
5
+ __all__ = ["cli"]