aegis-stack 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.

Potentially problematic release.


This version of aegis-stack might be problematic. Click here for more details.

Files changed (103) hide show
  1. aegis/__init__.py +5 -0
  2. aegis/__main__.py +374 -0
  3. aegis/core/CLAUDE.md +365 -0
  4. aegis/core/__init__.py +6 -0
  5. aegis/core/components.py +115 -0
  6. aegis/core/dependency_resolver.py +119 -0
  7. aegis/core/template_generator.py +163 -0
  8. aegis/templates/CLAUDE.md +306 -0
  9. aegis/templates/cookiecutter-aegis-project/cookiecutter.json +27 -0
  10. aegis/templates/cookiecutter-aegis-project/hooks/post_gen_project.py +172 -0
  11. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.dockerignore +71 -0
  12. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.env.example.j2 +70 -0
  13. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.gitignore +127 -0
  14. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/Dockerfile +53 -0
  15. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/Makefile +211 -0
  16. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/README.md.j2 +196 -0
  17. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/__init__.py +5 -0
  18. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/__init__.py +6 -0
  19. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/health.py +321 -0
  20. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/load_test.py +638 -0
  21. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/main.py +41 -0
  22. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/__init__.py +0 -0
  23. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/__init__.py +0 -0
  24. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/health.py +134 -0
  25. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/models.py.j2 +247 -0
  26. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/routing.py.j2 +14 -0
  27. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/tasks.py.j2 +596 -0
  28. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/hooks.py +133 -0
  29. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/main.py +16 -0
  30. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/middleware/__init__.py +1 -0
  31. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/middleware/cors.py +20 -0
  32. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/shutdown/__init__.py +1 -0
  33. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/shutdown/cleanup.py +14 -0
  34. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/startup/__init__.py +1 -0
  35. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/startup/component_health.py.j2 +190 -0
  36. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/__init__.py +0 -0
  37. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/core/__init__.py +1 -0
  38. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/core/theme.py +46 -0
  39. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/main.py +687 -0
  40. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/scheduler/__init__.py +1 -0
  41. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/scheduler/main.py +138 -0
  42. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/CLAUDE.md +213 -0
  43. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/__init__.py +6 -0
  44. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/constants.py.j2 +30 -0
  45. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/pools.py +78 -0
  46. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/__init__.py +1 -0
  47. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/load_test.py +48 -0
  48. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/media.py +41 -0
  49. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/system.py +36 -0
  50. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/registry.py +139 -0
  51. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/__init__.py +119 -0
  52. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/load_tasks.py +526 -0
  53. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/simple_system_tasks.py +32 -0
  54. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/system_tasks.py +279 -0
  55. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/config.py.j2 +119 -0
  56. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/constants.py +60 -0
  57. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/db.py +67 -0
  58. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/log.py +85 -0
  59. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/__init__.py +1 -0
  60. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/webserver.py +40 -0
  61. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/{% if cookiecutter.include_scheduler == /"yes/" %}scheduler.py{% endif %}" +21 -0
  62. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/integrations/__init__.py +0 -0
  63. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/integrations/main.py +61 -0
  64. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/py.typed +0 -0
  65. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/__init__.py +1 -0
  66. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/load_test.py +661 -0
  67. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/load_test_models.py +269 -0
  68. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/shared/__init__.py +15 -0
  69. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/shared/models.py +26 -0
  70. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/__init__.py +52 -0
  71. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/alerts.py +94 -0
  72. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/health.py.j2 +1105 -0
  73. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/models.py +169 -0
  74. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/ui.py +52 -0
  75. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docker-compose.yml.j2 +195 -0
  76. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/api.md +191 -0
  77. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/components/scheduler.md +414 -0
  78. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/development.md +215 -0
  79. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/health.md +240 -0
  80. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/javascripts/mermaid-config.js +62 -0
  81. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/stylesheets/mermaid.css +95 -0
  82. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/mkdocs.yml.j2 +62 -0
  83. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/pyproject.toml.j2 +156 -0
  84. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/entrypoint.sh +87 -0
  85. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/entrypoint.sh.j2 +104 -0
  86. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/gen_docs.py +16 -0
  87. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/api/__init__.py +1 -0
  88. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/api/test_health_endpoints.py.j2 +239 -0
  89. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/components/test_scheduler.py +76 -0
  90. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/conftest.py.j2 +81 -0
  91. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/__init__.py +1 -0
  92. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_component_integration.py.j2 +376 -0
  93. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_health_logic.py.j2 +633 -0
  94. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_load_test_models.py +665 -0
  95. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_load_test_service.py +602 -0
  96. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_system_service.py +96 -0
  97. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_worker_health_registration.py.j2 +224 -0
  98. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/test_core.py +50 -0
  99. aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/uv.lock +1673 -0
  100. aegis_stack-0.1.0.dist-info/METADATA +114 -0
  101. aegis_stack-0.1.0.dist-info/RECORD +103 -0
  102. aegis_stack-0.1.0.dist-info/WHEEL +4 -0
  103. aegis_stack-0.1.0.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,114 @@
1
+ Metadata-Version: 2.4
2
+ Name: aegis-stack
3
+ Version: 0.1.0
4
+ Summary: A production-ready Python foundation for builders who refuse to wait
5
+ Project-URL: Homepage, https://github.com/lbedner/aegis-stack
6
+ Project-URL: Documentation, https://github.com/lbedner/aegis-stack#readme
7
+ Project-URL: Repository, https://github.com/lbedner/aegis-stack
8
+ Project-URL: Issues, https://github.com/lbedner/aegis-stack/issues
9
+ Project-URL: Changelog, https://github.com/lbedner/aegis-stack/blob/main/CHANGELOG.md
10
+ Author-email: Leonard Bedner <gamecoder99@gmail.com>
11
+ License: MIT
12
+ Keywords: boilerplate,cli,cookiecutter,database,fastapi,generator,python,scaffold,scheduler,stack,template,worker
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Natural Language :: English
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
24
+ Classifier: Topic :: Software Development :: Code Generators
25
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
26
+ Classifier: Typing :: Typed
27
+ Requires-Python: >=3.11
28
+ Requires-Dist: cookiecutter>=2.6.0
29
+ Requires-Dist: rich>=13.0.0
30
+ Requires-Dist: typer>=0.9.0
31
+ Provides-Extra: dev
32
+ Requires-Dist: mypy>=1.8.0; extra == 'dev'
33
+ Requires-Dist: pip-audit>=2.6.0; extra == 'dev'
34
+ Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
35
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
36
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
37
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
38
+ Provides-Extra: docs
39
+ Requires-Dist: mkdocs-gen-files>=0.5.0; extra == 'docs'
40
+ Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
41
+ Requires-Dist: mkdocs-mermaid2-plugin>=1.1.0; extra == 'docs'
42
+ Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
43
+ Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
44
+ Requires-Dist: pymdown-extensions>=10.0.0; extra == 'docs'
45
+ Description-Content-Type: text/markdown
46
+
47
+ # Aegis Stack 🛡️
48
+
49
+ [![CI](https://github.com/lbedner/aegis-stack/workflows/CI/badge.svg)](https://github.com/lbedner/aegis-stack/actions/workflows/ci.yml)
50
+ [![Documentation](https://github.com/lbedner/aegis-stack/workflows/Deploy%20Documentation/badge.svg)](https://github.com/lbedner/aegis-stack/actions/workflows/docs.yml)
51
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
52
+
53
+ **Build production-ready Python applications with your chosen components.**
54
+
55
+ Aegis Stack is a CLI-driven framework for creating custom Python applications. Select exactly the components you need - no bloat, no unused dependencies.
56
+
57
+ ## 🚀 Quick Start
58
+
59
+ ```bash
60
+ # Install
61
+ pip install aegis-stack
62
+
63
+ # Create a simple API
64
+ aegis init my-api
65
+
66
+ # Create with background processing
67
+ aegis init task-processor --components scheduler,worker
68
+
69
+ # Start building
70
+ cd my-project && uv sync && source .venv/bin/activate && make run-local
71
+ ```
72
+
73
+ ## 🧩 Available Components
74
+
75
+ | Component | Purpose | Status |
76
+ |-----------|---------|--------|
77
+ | **Core** (FastAPI + Flet) | Web API + Frontend | ✅ **Included** |
78
+ | **Scheduler** | Background tasks, cron jobs | ✅ **Available** |
79
+ | **Worker** | Async task queues, job processing | ✅ **Available** |
80
+ | **Database** | PostgreSQL + SQLAlchemy + Alembic | 🚧 **Coming Soon** |
81
+ | **Cache** | Redis caching and sessions | 🚧 **Coming Soon** |
82
+
83
+ ## What You Get
84
+
85
+ - **FastAPI backend** with automatic API documentation
86
+ - **Flet frontend** with health dashboard
87
+ - **CLI management** with health monitoring commands
88
+ - **Worker queues** with async task processing and load testing
89
+ - **Production ready** with structured logging and containerization
90
+ - **Async-first** architecture for high-concurrency workloads
91
+
92
+ ## 📱 System Health Dashboard
93
+
94
+ ![System Health Dashboard](docs/images/dashboard-light.png#only-light)
95
+ ![System Health Dashboard](docs/images/dashboard-dark.png#only-dark)
96
+
97
+ Real-time monitoring with component status, health percentages, and cross-platform deployment (web, desktop, mobile).
98
+
99
+ ## 📚 Learn More
100
+
101
+ - **[📖 CLI Reference](docs/cli-reference.md)** - Complete command reference
102
+ - **[🏗️ Components](docs/components/index.md)** - Deep dive into available components
103
+ - **[🧠 Philosophy](docs/philosophy.md)** - Architecture and design principles
104
+
105
+ ## Development Commands
106
+
107
+ ```bash
108
+ make run-local # Start development server
109
+ make test # Run test suite
110
+ make check # Run all quality checks
111
+ make docs-serve # Serve documentation
112
+ ```
113
+
114
+ Built on FastAPI, Flet, Typer, and other open-source tools.
@@ -0,0 +1,103 @@
1
+ aegis/__init__.py,sha256=OSBsdcZC1i-1eTMi39Qsa3kqy9i44Hwaotsgfmape-c,100
2
+ aegis/__main__.py,sha256=yo67eGR5_wABIrFErtRrdi_vKQMkEE37EA3PClogAD4,12442
3
+ aegis/core/CLAUDE.md,sha256=D_abKXdz-8-hu3KnSoykYRCEkvCmYmbI1bY5OMKKHdY,13080
4
+ aegis/core/__init__.py,sha256=YGTePomNNnhOp4_gG-BNFC2Da9H8F0FX0lMMDfGtyc4,194
5
+ aegis/core/components.py,sha256=eNuCxY5Sj36gIwY7HM32ZRJadv5vRJevFAJQP4Pv12A,3854
6
+ aegis/core/dependency_resolver.py,sha256=h35F3J-nlwGea_cWBUDjxa2ISioaYFvZyu7LXqkiOjs,3693
7
+ aegis/core/template_generator.py,sha256=t7PiPvV9cdmUGW4WinjUMw4d8g_O_IEn6r372xeK08Y,6001
8
+ aegis/templates/CLAUDE.md,sha256=O8Ll-cFhVnsGz1hKdWaDlh98lUZHc69arVivzySwiNg,9733
9
+ aegis/templates/cookiecutter-aegis-project/cookiecutter.json,sha256=UOttggL712p1b_PAYFxovIC8CLuUiPDTxKwzmxrd72s,1530
10
+ aegis/templates/cookiecutter-aegis-project/hooks/post_gen_project.py,sha256=ET-EkUGmm6q4QRwCQ5U0nfWH7GpV5TIKBJB-VIIlPLQ,6118
11
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.dockerignore,sha256=NARRLwl2gbQ4daipgvQg84pYSuix3gaxKNJG29w6u8o,602
12
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.env.example.j2,sha256=brlTITC7AYv3Nv3u-q2d-3GnqB9gaA98Uk-sB5AzTZQ,2227
13
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/.gitignore,sha256=jYPGygfk4pQIvO4xO-FFkmeZvMf5qpD3E-n227rhSGA,1404
14
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/Dockerfile,sha256=5d5ftnBmgyCmz5xDr3Ly2yi98Fy-DK4dygdhW9DZSQI,1300
15
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/Makefile,sha256=P4L8fDzyoke3YkfU37nNwNiAn8AU5jKxKdz2nW-V_Bs,7769
16
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/README.md.j2,sha256=96Tz9YMXxmaQl8xNnthEQG6nQVJVstCkcipppCTLLFk,5543
17
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docker-compose.yml.j2,sha256=NYbdGJENmzTPzudWRCxGeIlxeMRWFMwvxyRH4TKQrRE,4596
18
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/mkdocs.yml.j2,sha256=WMObs7sbB42in0GE5xYMF9Imh068tHxehiY9Txct_kk,1565
19
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/pyproject.toml.j2,sha256=GBbkKEvjXeU_HowMVE7mNdnijWLXmY_nUzysQEjv05M,3586
20
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/uv.lock,sha256=WRkHWUQiLmd9lR9bVyii0PYNf_xjC-Azb2BIXsVzetQ,184378
21
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/__init__.py,sha256=VPTZjcLPOaEJclWFpgqu7QTNmXbdvnfo7TtZ69RHfes,112
22
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/__init__.py,sha256=cgbPZzceZP7CG6yvohVIwb9Z46T-sDzxrGmY14v69JE,196
24
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/health.py,sha256=DFMJWAfFmV8Jb2OA3dUd80V8Rx4bOxuXMxMHhC9vxqY,12628
25
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/load_test.py,sha256=a_QqC-IHTpuuer7lE7jHKOJlZZv4qnAYpjL-tWn-5VU,21367
26
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/cli/main.py,sha256=0Rv2AOn6iuMZ1WQC2_wDZIjbSoKJrgLfVI19twCMNrM,841
27
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/hooks.py,sha256=8isZC64vfWZzQ8d1or5-63no1C7izy2dUptUKprplV0,5089
29
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/main.py,sha256=xeUEY_9ajIpd_ZrCDlgIXyZ6CskEicG_eTpanf4b6YY,424
30
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/health.py,sha256=M96D9woXYlDD85eAoz_EgFhe9Iz5Ez5PzhplcyaMkn8,4821
32
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/models.py.j2,sha256=mpDRJdMsO67ahjANyE4PdhmD5MO2e8_r5pdah57S7Qw,8863
33
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/routing.py.j2,sha256=A8Rzqo5r0TmB8N7tL9c2kKg9Za4Gu9LE10ENl_C8YYE,490
34
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/api/tasks.py.j2,sha256=5Q4KxnkBzGogkxVj5xxoPbwLxEmyj_EsJ9iMD4GuvZ0,18918
35
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/middleware/__init__.py,sha256=-M3SgaoQfZ1CUmRYtezPWZb8YHBqbfRH4UfhTcbWMYc,21
36
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/middleware/cors.py,sha256=tGYF4j3avMd-rXl2Ux69K-FXO4D4tFNdkNzF4CxuxWk,582
37
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/shutdown/__init__.py,sha256=srU9Z5M8slY_sI1Lcm_jjK9WDvv4WN_arUMaAn04jNs,25
38
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/shutdown/cleanup.py,sha256=97WmtsnMdWVvurNerBPC7UIJ_7bdf6r7EiqNzmQrbFI,380
39
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/startup/__init__.py,sha256=yx71f-eGj5p6yWgfgfapqPLBYOL5IpmLdHubtkCNTZc,24
40
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/backend/startup/component_health.py.j2,sha256=lQEVFyDL8l1YK2ar7t6ncmrEKCbYjUkJYEueMbHyRCQ,6763
41
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/main.py,sha256=oYqMY9WxczyCKL-tRRsgBgjgvDDAakPvrsGv4I6ADO4,29753
43
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/core/__init__.py,sha256=570Xdeg2bed2omaI50VGAkWBqd1iS7OK4J9YrbPoTm8,30
44
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/frontend/core/theme.py,sha256=qZL-I2PXzrxZPMRDiVcScDajb6GiwZHi0Wf7FpASJUw,1418
45
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/scheduler/__init__.py,sha256=dfOSccy_F5-Ob6KU23ZuX1RQ3M1ZQV9Kms6OTQmvz3c,22
46
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/scheduler/main.py,sha256=5yLoisyoHHi_ZahDLzZe52nn3GK3yarQqi-u6krag7E,4504
47
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/CLAUDE.md,sha256=dNi4lUmzuFkRjRwfMgBRdcDTtWaU2rvqoN1zBw8P5vc,7506
48
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/__init__.py,sha256=D6bjCHz1roDZN22PeFcyPilNqB9Aa2eMkxdevQlmXW0,227
49
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/constants.py.j2,sha256=F-rKqHRpm9uvV8YXV3sq7sZRXENuFvBPajFJgZ37X9I,829
50
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/pools.py,sha256=T3HXjtfbo6PYnxr5P3X6C3e58W6CBo1P9bV3GDHodnA,2780
51
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/registry.py,sha256=TEvqvqesqDChsxVyryBKzKSorN5vALQrdEngXuhOEFI,4494
52
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/__init__.py,sha256=IBHIt91FCxF9ZYwj91uUIlgERt7Yxio5nv6Kv6NYqCA,66
53
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/load_test.py,sha256=96eBfq_E1CSg3uUhDG7-fiQ7KjA2sF9oPZQBRV2q1WE,1285
54
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/media.py,sha256=nnbOJbIC9hQ146ooqKbFUtEEkEzwobFhLosDkBQjuX0,1119
55
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/queues/system.py,sha256=pM9-zTBJTCvu3W__hrONDINnhAW0r-km5Sq28AAYeCk,992
56
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/__init__.py,sha256=E2xGbBLhURp25k7oa93gp_ZkHGQCZKM9sXzSduKRO0E,3158
57
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/load_tasks.py,sha256=LmvsVAZkW90goFWcgTEBg7QumHMaVCoM28bcP_cUf_Q,19578
58
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/simple_system_tasks.py,sha256=t3hIYxyHc5fZg3QvMLwAB45URjIy3tR6A3opQ6-32O4,902
59
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/components/worker/tasks/system_tasks.py,sha256=8E58pWGr0-InT1MbRnPFaQes2q7u6ejLXY6eFaRLVso,10112
60
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/config.py.j2,sha256=3sOsib9Bn_7R5mucQxWOoPei836UFPaRZ57k8eWOPTY,3735
61
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/constants.py,sha256=wWLHoURMS0pW6CTA_q7OrbLlis4nQ3O4-y46ibR79TE,1349
62
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/db.py,sha256=YFK-g0jCZa0byvl_ZqPhi_zJd0NQlStiePa24SIXbsE,1863
63
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/core/log.py,sha256=pmZCJ4lXKAVhLxTA89Fj6Lk6Lqmvzd3dWtSG3WoHJAs,3021
64
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/__init__.py,sha256=bTHdhFdjJHe3IuNv460-dR0ZBW88dzAd18mRqH0jOTc,57
65
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/webserver.py,sha256=bM3Ijz06PF2CriKiRM75ZgU_CeIrEDOIXZ1BnLeCC5A,1025
66
+ "aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/entrypoints/{% if cookiecutter.include_scheduler == ""yes"" %}scheduler.py{% endif %}",sha256=7078OnOzcCZN93oTacVZg7nJLYOON_Z4xNqCeECIzwI,414
67
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/integrations/main.py,sha256=yRegL-8LS0-OIObPwx2NITKZ9DaHjuy64IDtxmCcCjc,1876
69
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/__init__.py,sha256=jBfMqpv3qPZsxuuRZAQatlLaHukwirAXM1u3TwbHmhU,26
70
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/load_test.py,sha256=vYTGD_uI7f_O8xEM9hhRg7zuEY9ifZs7vyO1IlG67lY,24747
71
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/load_test_models.py,sha256=SSniPWMjPTbNQyElS-yJttRAIofAmWYr-MCp_3pKLXI,10972
72
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/shared/__init__.py,sha256=DVZASaPwQ3bgcsMRguALFjSZql4fSl6f1sWorkfA2IU,217
73
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/shared/models.py,sha256=4IDmyNN2zCQBO_RKzANUFoNr-bglb5_-0hXueWHugRs,841
74
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/__init__.py,sha256=LFgr7RlNCzcEHXdvjRMgHteBNvDwnfE_bKosDZa3p9U,1096
75
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/alerts.py,sha256=ArnJbw8ROt1eNZBNrJ8L0ElivcvW6gcjIFGYcx4EJak,2803
76
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/health.py.j2,sha256=6czka7DD_51NNsKAJC6c0jwScivdDdBGYBHkAu0VJIY,42621
77
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/models.py,sha256=Ho-EkVjYDCtGqYOohP_b_EZZfeBLuplf_DEnqkZN7qY,6218
78
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/app/services/system/ui.py,sha256=s1LG3mnj7YF0hlhazbsKJ-uEcDhsLLyV2MIzZ8g3J4c,1616
79
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/api.md,sha256=pzHke6KbDv-1BYYDSJyAsnCB_LvQ-By-C0Ci8Q5xLEg,4657
80
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/development.md,sha256=HGzDsMYVQwjcZnPMiUZHt9PyEzo-HJWglrPsck_0g2Q,5136
81
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/health.md,sha256=HruA5Mfdruji9DneddiU3s6V98XPAYSDZKOThMwZOls,6626
82
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/components/scheduler.md,sha256=rx2hKopEgtQKD7dl002MdCEWDaONCBsiJ5HKuXGOthQ,9815
83
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/javascripts/mermaid-config.js,sha256=PQRRqspAV-Fkn7M1lINSv-PQUiwKI0Vgzowzo75Mnjc,2658
84
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/docs/stylesheets/mermaid.css,sha256=6bVV1Vfgef8Ylywdd9gZe7UuE3sxVMyFdOyHM0PX92Q,2978
85
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/entrypoint.sh,sha256=gjW6sJ134gWGvk1J3K2EEL7hkdb5rgYLJC7Yi-YWAYk,3148
86
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/entrypoint.sh.j2,sha256=dxGY_NBmMuDH4gIWKTWv8FYmldcE1Gy7-vvYMEb9_Fg,3948
87
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/scripts/gen_docs.py,sha256=CGMFAsB8VSzdfy-xFGg47lYQPPlx9SGRo8snNWDrSO0,592
88
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/conftest.py.j2,sha256=2lrApUvcIQgJu4MLVnHVMS0g__eVMtddQY8pe9kyfmQ,2376
89
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/test_core.py,sha256=4Js0VtehNh0yCrkPQmyhYLOL_mMKWagsHabIbiNZfII,1521
90
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/api/__init__.py,sha256=yksC_mYT_oHX0Bf4M_RBX8R0gkZEh5_oAMlIoHzmYqA,19
91
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/api/test_health_endpoints.py.j2,sha256=_2TPUn3JhBJP5Q4OCPphp6WNJ8X_xyMpnCxh1meOFdg,9712
92
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/components/test_scheduler.py,sha256=SybnXHRFsKrEEb9ZGrv4VTFetAwYrwz2vypl3J9v6nU,2533
93
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/__init__.py,sha256=tjTvQ1ETbd-mXWN_RpKqGxXdae-2AqvyGjUkCFv2pek,16
94
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_component_integration.py.j2,sha256=BCwbbZFeFPjcmnDV1_QSc_eaFf0nsxjy4sEZh4DxyBs,14497
95
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_health_logic.py.j2,sha256=-wMlfjOhtXvt-5ED-Nlx_PSy1rXdQRMlmtnTc3wRzik,25533
96
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_load_test_models.py,sha256=EKpugmuKUcUVpnyd5dfd0zdem9FYAplNbX88qlNZvP4,22980
97
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_load_test_service.py,sha256=4Bn4bQFWETVMVImMlBLqe024emq9yKDT_wAeKainiYs,22898
98
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_system_service.py,sha256=bfqjTn9Wn9lcuwIq845VN398vLM2J3hr4GZA4VVnoKY,3572
99
+ aegis/templates/cookiecutter-aegis-project/{{cookiecutter.project_slug}}/tests/services/test_worker_health_registration.py.j2,sha256=Fvn0W2NwvQLvH5JmPmBE8BxwWodWQE8t5IKSmfW8mCs,9056
100
+ aegis_stack-0.1.0.dist-info/METADATA,sha256=xj5jxdfxuZNHiQzc2yu2uF2aS28-sdcWMZEmSMXSFKA,4774
101
+ aegis_stack-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
102
+ aegis_stack-0.1.0.dist-info/entry_points.txt,sha256=XGulnn71VY4hUSkf-d0ItJiIJ7gTZFoVU3nz9_k4wPg,45
103
+ aegis_stack-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ aegis = aegis.__main__:app