aegis-stack 0.7.0__tar.gz → 0.8.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 (812) hide show
  1. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/.gitignore +4 -0
  2. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/CHANGELOG.md +85 -0
  3. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/PKG-INFO +6 -16
  4. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/README.md +4 -14
  5. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/__init__.py +1 -1
  6. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/__main__.py +7 -2
  7. aegis_stack-0.8.0/aegis/cli/brand.py +143 -0
  8. aegis_stack-0.8.0/aegis/cli/build_plan.py +145 -0
  9. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/cli/callbacks.py +69 -64
  10. aegis_stack-0.8.0/aegis/cli/guided.py +1625 -0
  11. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/cli/interactive.py +492 -381
  12. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/cli/validation.py +6 -9
  13. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/cli/validators.py +4 -5
  14. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/add.py +38 -63
  15. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/add_service.py +45 -74
  16. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/deploy.py +91 -197
  17. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/ingress.py +8 -15
  18. aegis_stack-0.8.0/aegis/commands/init.py +571 -0
  19. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/plugins.py +38 -67
  20. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/remove.py +25 -37
  21. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/remove_service.py +17 -18
  22. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/services.py +10 -23
  23. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/update.py +41 -52
  24. aegis_stack-0.8.0/aegis/config/shared_files.py +123 -0
  25. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/constants.py +22 -7
  26. aegis_stack-0.8.0/aegis/core/build_reporter.py +33 -0
  27. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/component_files.py +47 -61
  28. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/components.py +104 -16
  29. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/copier_manager.py +28 -7
  30. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/copier_updater.py +8 -11
  31. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/file_manifest.py +25 -18
  32. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/manual_updater.py +11 -12
  33. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/migration_generator.py +2 -0
  34. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/spec.py +87 -1
  35. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/post_gen_tasks.py +137 -315
  36. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/project_map.py +4 -7
  37. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/services.py +106 -21
  38. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/template_cleanup.py +2 -1
  39. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/version_compatibility.py +4 -3
  40. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/__init__.py +5 -2
  41. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/de.py +2 -0
  42. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/en.py +3 -1
  43. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/es.py +2 -0
  44. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/fr.py +2 -0
  45. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/ja.py +2 -0
  46. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/ko.py +2 -0
  47. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/ru.py +2 -0
  48. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/zh.py +2 -0
  49. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/zh_hant.py +2 -0
  50. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.env.example.jinja +30 -21
  51. aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/.env.ports +7 -0
  52. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/ai.py.jinja +177 -191
  53. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/ai_rendering.py +6 -5
  54. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/api_load_test.py +179 -40
  55. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/auth.py.jinja +31 -71
  56. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/blog.py.jinja +86 -38
  57. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/comms.py +91 -89
  58. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/dns.py +13 -17
  59. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/docs.py +7 -8
  60. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/health.py.jinja +30 -15
  61. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/insights.py.jinja +33 -29
  62. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/llm.py +59 -53
  63. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/load_test.py.jinja +94 -93
  64. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/main.py.jinja +8 -5
  65. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/payment.py.jinja +48 -44
  66. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/rag.py +73 -73
  67. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/slash_commands.py.jinja +27 -26
  68. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/status_line.py +10 -9
  69. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/tasks.py.jinja +61 -34
  70. aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/theme.py +168 -0
  71. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/backend_modal.py +28 -2
  72. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/blog_modal.py +111 -0
  73. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/config.py.jinja +70 -70
  74. aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/route_auth.py +31 -0
  75. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/__init__.py +5 -2
  76. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/en.py +8 -0
  77. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/zh.py +6 -0
  78. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/config.py +21 -1
  79. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/etl/clients/litellm_client.py +1 -1
  80. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/etl/clients/openrouter_client.py +1 -1
  81. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/llm_service.py +9 -4
  82. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/__init__.py.jinja +24 -0
  83. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/providers.py.jinja +29 -15
  84. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/refresh_service.py.jinja +44 -4
  85. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/backend/models.py.jinja +1 -0
  86. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/backend/route_inspector.py.jinja +2 -0
  87. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/blog_service.py +27 -0
  88. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/models.py +8 -1
  89. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/schemas.py +9 -0
  90. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/serialization.py +8 -0
  91. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/api/discovery.py +19 -7
  92. aegis_stack-0.7.0/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test_dramatiq.py → aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/worker/service_dramatiq.py +2 -2
  93. aegis_stack-0.7.0/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test_taskiq.py → aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/worker/service_taskiq.py +2 -2
  94. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/vectorstore.py +15 -0
  95. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/ui.py.jinja +9 -7
  96. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/scripts/resolve-ports.sh +24 -1
  97. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_auth_endpoints.py.jinja +53 -3
  98. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_worker_endpoints.py.jinja +5 -0
  99. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_ai_rendering.py +1 -1
  100. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_api_load_test_cli.py +53 -2
  101. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_llm_cli.py +27 -9
  102. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_worker_events.py.jinja +2 -2
  103. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/etl/conftest.py +0 -56
  104. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/etl/test_llm_sync_service.py.jinja +9 -9
  105. aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_provider_resolution.py +75 -0
  106. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_blog_serialization.py +31 -0
  107. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_blog_service.py +27 -0
  108. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_component_integration.py.jinja +3 -1
  109. aegis_stack-0.7.0/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_load_test_service.py → aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_load_test_service.py.jinja +2 -0
  110. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_refresh_service.py.jinja +69 -3
  111. aegis_stack-0.8.0/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_host_port_resolution.py.jinja +166 -0
  112. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/pyproject.toml +7 -2
  113. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/conftest.py +27 -1
  114. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_ai_configuration.py +46 -7
  115. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_cli_basic.py +4 -0
  116. aegis_stack-0.8.0/tests/cli/test_guided.py +526 -0
  117. aegis_stack-0.8.0/tests/cli/test_interactive_project_selection.py +243 -0
  118. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_interactive_scheduler.py +33 -13
  119. aegis_stack-0.8.0/tests/cli/test_interactive_service_selection.py +117 -0
  120. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_post_gen_worker_cleanup.py +66 -1
  121. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_remove_command.py +49 -0
  122. aegis_stack-0.8.0/tests/cli/test_replay_command.py +71 -0
  123. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_scheduler_persistence.py +34 -7
  124. aegis_stack-0.8.0/tests/cli/test_service_callbacks.py +94 -0
  125. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_services_cli.py +6 -0
  126. aegis_stack-0.8.0/tests/cli/test_shared_files_completeness.py +154 -0
  127. aegis_stack-0.8.0/tests/cli/test_update_feature_detection.py +116 -0
  128. aegis_stack-0.8.0/tests/core/test_constants_usage.py +68 -0
  129. aegis_stack-0.8.0/tests/core/test_copier_answers_placement.py +54 -0
  130. aegis_stack-0.8.0/tests/core/test_file_mapping_derivation.py +182 -0
  131. aegis_stack-0.8.0/tests/core/test_pairs_well_with.py +68 -0
  132. aegis_stack-0.8.0/tests/core/test_spec_docs_paths.py +39 -0
  133. aegis_stack-0.7.0/aegis/commands/init.py +0 -439
  134. aegis_stack-0.7.0/aegis/config/shared_files.py +0 -178
  135. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/LICENSE +0 -0
  136. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/cli/__init__.py +0 -0
  137. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/cli/utils.py +0 -0
  138. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/__init__.py +0 -0
  139. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/components.py +0 -0
  140. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/commands/version.py +0 -0
  141. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/config/__init__.py +0 -0
  142. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/config/defaults.py +0 -0
  143. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/__init__.py +0 -0
  144. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/ai_service_parser.py +0 -0
  145. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/auth_service_parser.py +0 -0
  146. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/component_utils.py +0 -0
  147. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/dependency_resolver.py +0 -0
  148. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/insights_service_parser.py +0 -0
  149. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/migration_spec.py +0 -0
  150. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/option_spec.py +0 -0
  151. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/__init__.py +0 -0
  152. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/compat.py +0 -0
  153. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/composer.py +0 -0
  154. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/discovery.py +0 -0
  155. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/resolver.py +0 -0
  156. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/scaffold.py +0 -0
  157. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/plugins/template_resolver.py +0 -0
  158. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/service_resolver.py +0 -0
  159. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/template_generator.py +0 -0
  160. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/core/verbosity.py +0 -0
  161. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/locales/__init__.py +0 -0
  162. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/i18n/registry.py +0 -0
  163. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.copier-answers.yml.jinja +0 -0
  164. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.dockerignore +0 -0
  165. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.env.deploy.example.jinja +0 -0
  166. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.github/workflows/ci.yml.jinja +0 -0
  167. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.github/workflows/security.yml.jinja +0 -0
  168. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.gitignore +0 -0
  169. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.pre-commit-config.yaml.jinja +0 -0
  170. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/.python-version.jinja +0 -0
  171. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/Dockerfile.jinja +0 -0
  172. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/Makefile.jinja +0 -0
  173. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/README.md.jinja +0 -0
  174. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/alembic/alembic.ini.jinja +0 -0
  175. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/alembic/env.py.jinja +0 -0
  176. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/alembic/script.py.mako +0 -0
  177. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/alembic/versions/.gitkeep +0 -0
  178. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/__init__.py.jinja +0 -0
  179. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/__init__.py.jinja +0 -0
  180. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/_i18n_click.py +0 -0
  181. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/chat_completer.py +0 -0
  182. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/marko_terminal_renderer.py +0 -0
  183. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/migrate_fix.py.jinja +0 -0
  184. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/__init__.py +0 -0
  185. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/__init__.py +0 -0
  186. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/ai/__init__.py +0 -0
  187. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/ai/router.py.jinja +0 -0
  188. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/auth/__init__.py +0 -0
  189. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/auth/oauth.py.jinja +0 -0
  190. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/auth/router.py.jinja +0 -0
  191. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/blog/__init__.py +0 -0
  192. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/blog/router.py.jinja +0 -0
  193. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/comms/__init__.py +0 -0
  194. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/comms/router.py.jinja +0 -0
  195. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/deps.py.jinja +0 -0
  196. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/events.py.jinja +0 -0
  197. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/health.py.jinja +0 -0
  198. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/insights.py.jinja +0 -0
  199. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/llm/__init__.py +0 -0
  200. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/llm/router.py +0 -0
  201. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/load_test_api.py.jinja +0 -0
  202. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/metrics.py.jinja +0 -0
  203. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/models.py.jinja +0 -0
  204. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/orgs/__init__.py +0 -0
  205. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/orgs/router.py.jinja +0 -0
  206. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/payment/__init__.py +0 -0
  207. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/payment/pages.py +0 -0
  208. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/payment/router.py.jinja +0 -0
  209. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/rag/__init__.py +0 -0
  210. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/rag/router.py +0 -0
  211. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/routing.py.jinja +0 -0
  212. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/scheduler.py.jinja +0 -0
  213. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/task_history.py.jinja +0 -0
  214. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/utils.py +0 -0
  215. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/voice/__init__.py +0 -0
  216. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/voice/router.py +0 -0
  217. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/worker.py.jinja +0 -0
  218. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/worker_dramatiq.py.jinja +0 -0
  219. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/worker_taskiq.py.jinja +0 -0
  220. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/hooks.py +0 -0
  221. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/main.py +0 -0
  222. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/middleware/__init__.py +0 -0
  223. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/middleware/cors.py +0 -0
  224. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/middleware/logfire_tracing.py.jinja +0 -0
  225. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/middleware/performance.py +0 -0
  226. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/middleware/session.py.jinja +0 -0
  227. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/security/__init__.py +0 -0
  228. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/security/rate_limit.py +0 -0
  229. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/shutdown/__init__.py +0 -0
  230. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/shutdown/cleanup.py +0 -0
  231. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/shutdown/payment_webhook_forwarder.py +0 -0
  232. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/startup/__init__.py +0 -0
  233. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/startup/component_health.py.jinja +0 -0
  234. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/startup/database_init.py.jinja +0 -0
  235. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/startup/payment_webhook_forwarder.py +0 -0
  236. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/__init__.py +0 -0
  237. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/auth/__init__.py.jinja +0 -0
  238. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/auth/login_view.py.jinja +0 -0
  239. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/auth/register_view.py.jinja +0 -0
  240. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/auth/session.py.jinja +0 -0
  241. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/__init__.py +0 -0
  242. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/action_menu.py +0 -0
  243. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/auth/__init__.py.jinja +0 -0
  244. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/auth/auth_shell.py.jinja +0 -0
  245. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/auth/branding_panel.py.jinja +0 -0
  246. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/auth/oauth_button.py.jinja +0 -0
  247. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/brand_mark.py.jinja +0 -0
  248. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/buttons.py +0 -0
  249. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/data_table.py +0 -0
  250. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/expand_arrow.py +0 -0
  251. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/expandable_data_table.py +0 -0
  252. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/form_fields.py +0 -0
  253. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/labeled_divider.py +0 -0
  254. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/method_badge.py +0 -0
  255. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/section_card.py +0 -0
  256. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/service_card.py +0 -0
  257. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/severity_filter.py +0 -0
  258. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/snack_bar.py +0 -0
  259. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/status_dot.py +0 -0
  260. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/table.py +0 -0
  261. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/tag.py +0 -0
  262. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/tech_badge.py +0 -0
  263. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/text.py +0 -0
  264. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/views/__init__.py +0 -0
  265. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/views/base.py +0 -0
  266. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/views/legacy_dashboard.py.jinja +0 -0
  267. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/core/__init__.py.jinja +0 -0
  268. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/core/events.py.jinja +0 -0
  269. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/core/routes.py.jinja +0 -0
  270. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/core/routing.py.jinja +0 -0
  271. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/activity_feed.py +0 -0
  272. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/__init__.py.jinja +0 -0
  273. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/ai_card.py +0 -0
  274. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/auth_card.py +0 -0
  275. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/base_card.py +0 -0
  276. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/blog_card.py +0 -0
  277. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/card_container.py.jinja +0 -0
  278. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/card_factory.py +0 -0
  279. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/card_utils.py.jinja +0 -0
  280. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/comms_card.py +0 -0
  281. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/database_card.py +0 -0
  282. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/ingress_card.py +0 -0
  283. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/insights_card.py +0 -0
  284. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/observability_card.py +0 -0
  285. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/ollama_card.py +0 -0
  286. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/payment_card.py +0 -0
  287. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/redis_card.py +0 -0
  288. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/scheduler_card.py +0 -0
  289. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/server_card.py +0 -0
  290. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/services_card.py +0 -0
  291. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/worker_card.py +0 -0
  292. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/diagram/__init__.py +0 -0
  293. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/diagram/diagram_canvas.py +0 -0
  294. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/diagram/diagram_node.py +0 -0
  295. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/diagram/diagram_view.py +0 -0
  296. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/diagram/layout.py +0 -0
  297. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/__init__.py.jinja +0 -0
  298. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/ai_analytics_tab.py +0 -0
  299. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/ai_modal.py +0 -0
  300. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/auth_modal.py.jinja +0 -0
  301. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/auth_orgs_tab.py.jinja +0 -0
  302. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/auth_sessions_tab.py.jinja +0 -0
  303. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/auth_users_tab.py.jinja +0 -0
  304. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/base_detail_popup.py +0 -0
  305. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/base_modal.py +0 -0
  306. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/base_popup.py +0 -0
  307. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/comms_modal.py +0 -0
  308. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/database_modal.py +0 -0
  309. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/frontend_modal.py +0 -0
  310. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/history_table.py +0 -0
  311. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/ingress_modal.py +0 -0
  312. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/insights_modal.py +0 -0
  313. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/llm_catalog_tab.py.jinja +0 -0
  314. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/load_tests_tab.py +0 -0
  315. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/modal_constants.py +0 -0
  316. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/modal_sections.py +0 -0
  317. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/observability_modal.py +0 -0
  318. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/ollama_modal.py +0 -0
  319. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/payment_modal.py +0 -0
  320. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/rag_tab.py +0 -0
  321. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/redis_modal.py +0 -0
  322. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/scheduler_history_section.py +0 -0
  323. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/scheduler_modal.py +0 -0
  324. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/task_history_section.py +0 -0
  325. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/voice_settings_tab.py +0 -0
  326. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/worker_modal.py +0 -0
  327. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/status_overview.py.jinja +0 -0
  328. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/main.py.jinja +0 -0
  329. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/projects/__init__.py.jinja +0 -0
  330. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/projects/active_project.py.jinja +0 -0
  331. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/projects/project_form_view.py.jinja +0 -0
  332. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/projects/project_list_view.py.jinja +0 -0
  333. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/projects/project_switcher.py.jinja +0 -0
  334. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/state/__init__.py.jinja +0 -0
  335. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/state/session_state.py.jinja +0 -0
  336. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/styles.py +0 -0
  337. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/theme.py +0 -0
  338. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/scheduler/__init__.py +0 -0
  339. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/scheduler/main.py.jinja +0 -0
  340. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/CLAUDE.md.jinja +0 -0
  341. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/__init__.py +0 -0
  342. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/broker_dramatiq.py +0 -0
  343. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/broker_taskiq.py +0 -0
  344. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/constants.py.jinja +0 -0
  345. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/events.py.jinja +0 -0
  346. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/heartbeat.py +0 -0
  347. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/middleware_dramatiq.py +0 -0
  348. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/middleware_taskiq.py +0 -0
  349. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/pools.py +0 -0
  350. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/pools_dramatiq.py +0 -0
  351. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/pools_taskiq.py +0 -0
  352. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/__init__.py +0 -0
  353. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/load_test.py +0 -0
  354. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/load_test_dramatiq.py +0 -0
  355. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/load_test_taskiq.py +0 -0
  356. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/media.py +0 -0
  357. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/system.py +0 -0
  358. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/system_dramatiq.py +0 -0
  359. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/queues/system_taskiq.py +0 -0
  360. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/registry.py +0 -0
  361. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/registry_dramatiq.py +0 -0
  362. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/registry_taskiq.py +0 -0
  363. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/task_history.py +0 -0
  364. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/tasks/__init__.py +0 -0
  365. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/tasks/load_tasks.py +0 -0
  366. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/tasks/simple_system_tasks.py +0 -0
  367. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/worker/tasks/system_tasks.py +0 -0
  368. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/audit.py +0 -0
  369. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/cache.py +0 -0
  370. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/client.py +0 -0
  371. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/constants.py +0 -0
  372. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/db.py.jinja +0 -0
  373. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/encryption.py +0 -0
  374. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/formatting.py +0 -0
  375. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/log.py +0 -0
  376. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/security.py.jinja +0 -0
  377. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/entrypoints/__init__.py +0 -0
  378. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/entrypoints/scheduler.py.jinja +0 -0
  379. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/entrypoints/webserver.py +0 -0
  380. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/__init__.py +0 -0
  381. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/de.py +0 -0
  382. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/es.py +0 -0
  383. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/fr.py +0 -0
  384. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/ja.py +0 -0
  385. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/ko.py +0 -0
  386. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/ru.py +0 -0
  387. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/zh_hant.py +0 -0
  388. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/registry.py.jinja +0 -0
  389. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/integrations/__init__.py +0 -0
  390. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/integrations/main.py +0 -0
  391. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/models/__init__.py +0 -0
  392. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/models/conversation.py +0 -0
  393. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/models/org.py.jinja +0 -0
  394. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/models/refresh_token.py.jinja +0 -0
  395. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/models/user.py.jinja +0 -0
  396. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/py.typed +0 -0
  397. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/__init__.py +0 -0
  398. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/__init__.py.jinja +0 -0
  399. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/conversation.py.jinja +0 -0
  400. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/etl/__init__.py +0 -0
  401. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/etl/clients/__init__.py +0 -0
  402. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/etl/llm_sync_service.py +0 -0
  403. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/etl/mappers/__init__.py +0 -0
  404. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/etl/mappers/llm_mapper.py +0 -0
  405. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/fixtures/__init__.py.jinja +0 -0
  406. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/fixtures/llm_fixtures.py +0 -0
  407. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/health.py.jinja +0 -0
  408. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/health_context.py +0 -0
  409. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/jobs.py.jinja +0 -0
  410. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/llm_catalog_context.py +0 -0
  411. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/llm/__init__.py +0 -0
  412. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/llm/large_language_model.py +0 -0
  413. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/llm/llm_deployment.py +0 -0
  414. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/llm/llm_modality.py +0 -0
  415. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/llm/llm_price.py +0 -0
  416. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/llm/llm_usage.py +0 -0
  417. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/models/llm/llm_vendor.py +0 -0
  418. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/ollama.py.jinja +0 -0
  419. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/prompts.py +0 -0
  420. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/provider_management.py +0 -0
  421. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/rag_context.py +0 -0
  422. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/rag_stats_context.py +0 -0
  423. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/service.py.jinja +0 -0
  424. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/usage_context.py +0 -0
  425. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/__init__.py +0 -0
  426. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/catalog.py +0 -0
  427. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/models.py +0 -0
  428. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/stt/__init__.py +0 -0
  429. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/stt/config.py +0 -0
  430. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/stt/providers.py +0 -0
  431. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/stt/service.py +0 -0
  432. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/stt/usage.py +0 -0
  433. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/tts/__init__.py +0 -0
  434. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/tts/config.py +0 -0
  435. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/tts/providers.py +0 -0
  436. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/tts/service.py +0 -0
  437. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/voice/tts/usage.py +0 -0
  438. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/__init__.py +0 -0
  439. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/auth_service.py.jinja +0 -0
  440. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/cleanup_jobs.py.jinja +0 -0
  441. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/deps.py.jinja +0 -0
  442. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/health.py.jinja +0 -0
  443. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/hooks.py +0 -0
  444. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/invite_service.py.jinja +0 -0
  445. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/membership_service.py.jinja +0 -0
  446. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/org_service.py.jinja +0 -0
  447. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/user_service.py.jinja +0 -0
  448. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/backend/middleware_inspector.py.jinja +0 -0
  449. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/__init__.py +0 -0
  450. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/constants.py +0 -0
  451. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/deps.py +0 -0
  452. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/blog/health.py +0 -0
  453. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/comms/__init__.py +0 -0
  454. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/comms/call.py +0 -0
  455. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/comms/email.py +0 -0
  456. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/comms/health.py +0 -0
  457. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/comms/models.py +0 -0
  458. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/comms/sms.py +0 -0
  459. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/comms/webhooks.py +0 -0
  460. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/__init__.py +0 -0
  461. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collector_service.py.jinja +0 -0
  462. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/__init__.py +0 -0
  463. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/base.py.jinja +0 -0
  464. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_events.py.jinja +0 -0
  465. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_stars.py.jinja +0 -0
  466. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_traffic.py.jinja +0 -0
  467. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/plausible.py.jinja +0 -0
  468. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/pypi.py.jinja +0 -0
  469. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/reddit.py.jinja +0 -0
  470. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/constants.py +0 -0
  471. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/deps.py.jinja +0 -0
  472. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/event_schemas.py.jinja +0 -0
  473. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/event_service.py.jinja +0 -0
  474. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/goal_catalog.py +0 -0
  475. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/goal_schemas.py.jinja +0 -0
  476. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/goal_service.py.jinja +0 -0
  477. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/health.py.jinja +0 -0
  478. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/insight_service.py.jinja +0 -0
  479. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/jobs.py.jinja +0 -0
  480. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/models.py.jinja +0 -0
  481. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/project_schemas.py.jinja +0 -0
  482. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/project_service.py.jinja +0 -0
  483. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/query_service.py +0 -0
  484. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/schemas.py +0 -0
  485. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/seed.py.jinja +0 -0
  486. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/view_cache.py +0 -0
  487. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/view_schemas.py +0 -0
  488. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/view_service.py +0 -0
  489. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/__init__.py.jinja +0 -0
  490. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/api/__init__.py +0 -0
  491. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/api/models.py +0 -0
  492. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/api/service.py +0 -0
  493. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/common/__init__.py +0 -0
  494. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/common/analysis.py +0 -0
  495. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/common/models.py +0 -0
  496. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/common/storage.py +0 -0
  497. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/worker/__init__.py +0 -0
  498. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/worker/models.py +0 -0
  499. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test/worker/service.py +0 -0
  500. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test_models.py +0 -0
  501. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/load_test_workloads.py +0 -0
  502. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/__init__.py +0 -0
  503. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/adapters/__init__.py +0 -0
  504. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/adapters/porkbun.py +0 -0
  505. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/adapters/resend.py +0 -0
  506. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/audit.py +0 -0
  507. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/email_setup.py +0 -0
  508. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/protocols.py +0 -0
  509. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/types.py +0 -0
  510. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/__init__.py +0 -0
  511. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/catalog.py +0 -0
  512. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/constants.py +0 -0
  513. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/deps.py.jinja +0 -0
  514. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_helpers.py +0 -0
  515. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/_layout.html +0 -0
  516. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/_macros.html +0 -0
  517. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/invoice_paid.html +0 -0
  518. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/payment_failed.html +0 -0
  519. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/refund_processed.html +0 -0
  520. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/subscription_canceled.html +0 -0
  521. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/subscription_started.html +0 -0
  522. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/subscription_updated.html +0 -0
  523. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/email_templates/trial_ending_soon.html +0 -0
  524. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/fake_data.py +0 -0
  525. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/health.py.jinja +0 -0
  526. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/models.py +0 -0
  527. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/payment_service.py.jinja +0 -0
  528. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/providers/__init__.py +0 -0
  529. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/providers/base.py +0 -0
  530. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/providers/stripe.py.jinja +0 -0
  531. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/schemas.py +0 -0
  532. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/seed.py.jinja +0 -0
  533. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/stripe_events.py +0 -0
  534. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/__init__.py +0 -0
  535. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/chunking.py +0 -0
  536. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/config.py +0 -0
  537. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/health.py +0 -0
  538. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/ids.py +0 -0
  539. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/loaders.py +0 -0
  540. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/models/__init__.py +0 -0
  541. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/rag/service.py +0 -0
  542. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/scheduler/__init__.py.jinja +0 -0
  543. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/scheduler/execution_log.py.jinja +0 -0
  544. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/scheduler/models.py.jinja +0 -0
  545. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/scheduler/scheduled_task_manager.py.jinja +0 -0
  546. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/scheduler/task_monitor.py.jinja +0 -0
  547. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/scheduler/trigger.py.jinja +0 -0
  548. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/shared/__init__.py +0 -0
  549. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/shared/models.py +0 -0
  550. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/__init__.py +0 -0
  551. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/activity.py +0 -0
  552. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/alerts.py +0 -0
  553. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/backup.py.jinja +0 -0
  554. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/env_config.py +0 -0
  555. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/health.py.jinja +0 -0
  556. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/health_db.py.jinja +0 -0
  557. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/health_db_postgres.py.jinja +0 -0
  558. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/health_db_sqlite.py.jinja +0 -0
  559. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/models.py +0 -0
  560. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57223!aegis-manifesto.png +0 -0
  561. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57224!aegis-manifesto-dark.png +0 -0
  562. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57225!aegis-manifesto-square-backup.png +0 -0
  563. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57533!aegis-manifesto.png +0 -0
  564. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57534!aegis-manifesto-dark.png +0 -0
  565. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57538!aegis-manifesto-square-backup.png +0 -0
  566. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57897!aegis-manifesto.png +0 -0
  567. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57898!aegis-manifesto-dark.png +0 -0
  568. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!57904!aegis-manifesto-square-backup.png +0 -0
  569. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!58315!aegis-manifesto.png +0 -0
  570. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!58316!aegis-manifesto-dark.png +0 -0
  571. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!58324!aegis-manifesto-square-backup.png +0 -0
  572. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!58837!aegis-manifesto.png +0 -0
  573. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!58838!aegis-manifesto-dark.png +0 -0
  574. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/.!58849!aegis-manifesto-square-backup.png +0 -0
  575. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/aegis-manifesto-dark.png +0 -0
  576. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/aegis-manifesto-square-backup.png +0 -0
  577. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/aegis-manifesto.png +0 -0
  578. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/icons/github.svg +0 -0
  579. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/icons/google.svg +0 -0
  580. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/assets/overseer.png +0 -0
  581. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/clean-validation/.env.example.jinja +0 -0
  582. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/clean-validation/README.md.jinja +0 -0
  583. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/clean-validation/docker-compose.yml.jinja +0 -0
  584. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/clean-validation/mkdocs.yml.jinja +0 -0
  585. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/clean-validation/pyproject.toml.jinja +0 -0
  586. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docker-compose.dev.yml.jinja +0 -0
  587. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docker-compose.prod.yml.jinja +0 -0
  588. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docker-compose.yml.jinja +0 -0
  589. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/api.md.jinja +0 -0
  590. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/components/api-load-testing.md +0 -0
  591. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/components/scheduler.md.jinja +0 -0
  592. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/development.md.jinja +0 -0
  593. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/health.md.jinja +0 -0
  594. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/javascripts/mermaid-config.js +0 -0
  595. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/services/comms/api.md +0 -0
  596. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/services/comms/cli.md +0 -0
  597. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/services/comms/index.md +0 -0
  598. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/services/comms/setup.md +0 -0
  599. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/docs/stylesheets/mermaid.css +0 -0
  600. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/mkdocs.yml.jinja +0 -0
  601. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/pyproject.toml.jinja +0 -0
  602. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/scripts/entrypoint.sh +0 -0
  603. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/scripts/entrypoint.sh.jinja +0 -0
  604. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/scripts/find-free-port.sh +0 -0
  605. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/scripts/gen_docs.py +0 -0
  606. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/scripts/server-setup.sh.jinja +0 -0
  607. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/_test_org.py.jinja +0 -0
  608. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/__init__.py +0 -0
  609. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_ai_endpoints.py +0 -0
  610. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_blog_endpoints.py +0 -0
  611. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_comms_endpoints.py.jinja +0 -0
  612. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_health_endpoints.py.jinja +0 -0
  613. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_insights_endpoints.py +0 -0
  614. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_insights_projects_endpoints.py.jinja +0 -0
  615. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_load_test_api_endpoints.py.jinja +0 -0
  616. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_metrics_endpoints.py.jinja +0 -0
  617. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_oauth_endpoints.py.jinja +0 -0
  618. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_org_endpoints.py.jinja +0 -0
  619. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_payment_endpoints.py +0 -0
  620. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_scheduler_endpoints.py.jinja +0 -0
  621. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_voice_endpoints.py +0 -0
  622. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_chat_completer.py +0 -0
  623. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_conversation_memory.py +0 -0
  624. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_docs.py +0 -0
  625. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_payment_trigger.py +0 -0
  626. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_slash_commands.py +0 -0
  627. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/cli/test_status_line.py +0 -0
  628. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/frontend/test_ai_analytics_utils.py +0 -0
  629. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_frontend_auth_session.py.jinja +0 -0
  630. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_frontend_base_view.py +0 -0
  631. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_frontend_routing.py.jinja +0 -0
  632. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_frontend_session_state.py +0 -0
  633. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_frontend_snack_bar.py +0 -0
  634. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_scheduler.py +0 -0
  635. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_worker_broker.py.jinja +0 -0
  636. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/components/test_worker_heartbeat.py.jinja +0 -0
  637. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/conftest.py.jinja +0 -0
  638. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/__init__.py +0 -0
  639. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/_collector_fixtures.py +0 -0
  640. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/__init__.py +0 -0
  641. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/conftest.py.jinja +0 -0
  642. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/etl/__init__.py +0 -0
  643. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/etl/test_litellm_client.py +0 -0
  644. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/etl/test_llm_mapper.py +0 -0
  645. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/etl/test_openrouter_client.py +0 -0
  646. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_health.py.jinja +0 -0
  647. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_llm_catalog_context.py +0 -0
  648. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_llm_service.py +0 -0
  649. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_models.py +0 -0
  650. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_provider_management.py +0 -0
  651. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_providers.py +0 -0
  652. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_rag_stats_context.py +0 -0
  653. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_service.py +0 -0
  654. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/test_usage_tracking.py +0 -0
  655. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/__init__.py +0 -0
  656. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/conftest.py +0 -0
  657. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_catalog.py +0 -0
  658. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_stt_config.py +0 -0
  659. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_stt_models.py +0 -0
  660. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_stt_providers.py +0 -0
  661. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_stt_service.py +0 -0
  662. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_tts_config.py +0 -0
  663. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_tts_models.py +0 -0
  664. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_tts_providers.py +0 -0
  665. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/voice/test_tts_service.py +0 -0
  666. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/comms/__init__.py +0 -0
  667. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/comms/conftest.py +0 -0
  668. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/comms/test_call.py +0 -0
  669. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/comms/test_email.py +0 -0
  670. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/comms/test_sms.py +0 -0
  671. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/rag/__init__.py +0 -0
  672. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/rag/test_chunking.py +0 -0
  673. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/rag/test_loaders.py +0 -0
  674. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/rag/test_service.py +0 -0
  675. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_api_load_test_discovery.py +0 -0
  676. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_api_load_test_models.py +0 -0
  677. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_api_load_test_service.py +0 -0
  678. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_auth_integration.py.jinja +0 -0
  679. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_github_events.py +0 -0
  680. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_github_stars.py +0 -0
  681. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_github_traffic.py +0 -0
  682. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_plausible.py +0 -0
  683. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_pypi.py +0 -0
  684. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_reddit.py +0 -0
  685. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_service.py +0 -0
  686. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_conversation_persistence.py +0 -0
  687. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_goal_service.py.jinja +0 -0
  688. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_health_logic.py.jinja +0 -0
  689. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_insight_service.py +0 -0
  690. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_insights_collectors.py +0 -0
  691. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_load_test_common.py +0 -0
  692. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_load_test_models.py +0 -0
  693. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_metrics_service.py +0 -0
  694. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_middleware_inspector.py.jinja +0 -0
  695. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_oauth_user_service.py.jinja +0 -0
  696. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_org_integration.py.jinja +0 -0
  697. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_payment_catalog.py +0 -0
  698. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_payment_models.py +0 -0
  699. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_payment_service.py +0 -0
  700. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_payment_webhook_forwarder.py +0 -0
  701. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_performance_middleware.py +0 -0
  702. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_performance_tab.py +0 -0
  703. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_project_service.py.jinja +0 -0
  704. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_query_service.py +0 -0
  705. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_scheduled_task_manager.py.jinja +0 -0
  706. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_scheduler_execution_log.py.jinja +0 -0
  707. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_scheduler_executions_read.py.jinja +0 -0
  708. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_system_service.py +0 -0
  709. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_worker_health_registration.py.jinja +0 -0
  710. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_bulk_response.py +0 -0
  711. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_cache.py +0 -0
  712. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_cache_integration.py +0 -0
  713. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_client.py +0 -0
  714. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_core.py +0 -0
  715. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_docs_auth.py +0 -0
  716. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_encryption.py.jinja +0 -0
  717. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_factories_demo.py.jinja +0 -0
  718. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_formatting.py +0 -0
  719. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_i18n.py +0 -0
  720. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/traefik/traefik.dev.yml.jinja +0 -0
  721. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/copier-aegis-project/{{ project_slug }}/traefik/traefik.yml.jinja +0 -0
  722. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/.github/workflows/test.yml.jinja +0 -0
  723. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/.gitignore.jinja +0 -0
  724. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/.pre-commit-config.yaml.jinja +0 -0
  725. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/Makefile.jinja +0 -0
  726. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/README.md.jinja +0 -0
  727. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/pyproject.toml.jinja +0 -0
  728. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/src/__PLUGIN_PKG__/__init__.py.jinja +0 -0
  729. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/src/__PLUGIN_PKG__/plugin.py.jinja +0 -0
  730. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/src/__PLUGIN_PKG__/templates/__PROJECT_SLUG__/app/services/__PLUGIN_NAME__/__init__.py.jinja +0 -0
  731. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/tests/__init__.py.jinja +0 -0
  732. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/aegis/templates/plugin_scaffold/tests/test_plugin.py.jinja +0 -0
  733. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/CLAUDE.md +0 -0
  734. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/__init__.py +0 -0
  735. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/__init__.py +0 -0
  736. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_add_command.py +0 -0
  737. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_add_plugin_resolver_integration.py +0 -0
  738. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_add_service_migrations.py +0 -0
  739. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_add_service_preserves_state.py +0 -0
  740. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_add_worker.py +0 -0
  741. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_ai_backend_utils.py +0 -0
  742. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_auth_service_generation.py +0 -0
  743. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_cli_init.py +0 -0
  744. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_component_dependencies.py +0 -0
  745. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_database_config.py +0 -0
  746. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_database_runtime.py +0 -0
  747. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_database_runtime_postgres.py +0 -0
  748. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_deploy_helpers.py +0 -0
  749. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_error_handling.py +0 -0
  750. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_issue_686_integration.py +0 -0
  751. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_issue_715_shared_file_divergence.py +0 -0
  752. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_issue_715_three_way_merge.py +0 -0
  753. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_model_imports.py +0 -0
  754. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_plugins_command.py +0 -0
  755. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_plugins_create_command.py +0 -0
  756. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_plugins_update_command.py +0 -0
  757. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_python_version.py +0 -0
  758. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_resolve_plugin.py +0 -0
  759. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_scheduler_backend.py +0 -0
  760. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_scheduler_postgres_migrations.py +0 -0
  761. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_stack_generation.py +0 -0
  762. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_stack_validation.py +0 -0
  763. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_update_command.py +0 -0
  764. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_utils.py +0 -0
  765. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_worker_backend.py +0 -0
  766. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/cli/test_worker_streaming.py +0 -0
  767. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/config/__init__.py +0 -0
  768. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/config/test_defaults.py +0 -0
  769. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/conftest.py +0 -0
  770. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_ai_service_parser.py +0 -0
  771. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_auth_service_parser.py +0 -0
  772. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_blog_template_render.py +0 -0
  773. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_component_files.py +0 -0
  774. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_component_utils.py +0 -0
  775. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_copier_updater.py +0 -0
  776. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_file_manifest.py +0 -0
  777. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_i18n.py +0 -0
  778. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_ingress_component.py +0 -0
  779. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_insights_service_parser.py +0 -0
  780. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_issue_686_reconciliation.py +0 -0
  781. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_manual_updater_plugins.py +0 -0
  782. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_manual_updater_service.py +0 -0
  783. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_migrate_fix.py +0 -0
  784. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_migration_generator.py +0 -0
  785. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_migration_spec.py +0 -0
  786. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_observability_oom_renders.py +0 -0
  787. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_option_spec.py +0 -0
  788. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_compat.py +0 -0
  789. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_discovery.py +0 -0
  790. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_render_parity.py +0 -0
  791. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_resolver.py +0 -0
  792. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_scaffold.py +0 -0
  793. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_spec.py +0 -0
  794. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_template_resolver.py +0 -0
  795. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_plugin_wiring.py +0 -0
  796. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_post_gen_tasks.py +0 -0
  797. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_provider_extra_mapping.py +0 -0
  798. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_service_resolver.py +0 -0
  799. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_services.py +0 -0
  800. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_template_cleanup.py +0 -0
  801. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/core/test_template_generator.py +0 -0
  802. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/fixtures/aegis_plugin_test/pyproject.toml +0 -0
  803. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/fixtures/aegis_plugin_test/src/aegis_plugin_test/__init__.py +0 -0
  804. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/fixtures/aegis_plugin_test/src/aegis_plugin_test/spec.py +0 -0
  805. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/fixtures/aegis_plugin_test/src/aegis_plugin_test/templates/{{ project_slug }}/app/services/test_plugin/__init__.py.jinja +0 -0
  806. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/fixtures/aegis_plugin_test/src/aegis_plugin_test/templates/{{ project_slug }}/app/services/test_plugin/service.py.jinja +0 -0
  807. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/integration/__init__.py +0 -0
  808. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/integration/conftest.py +0 -0
  809. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/integration/test_update_integration.py +0 -0
  810. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/scripts/test_worker_addition_workflow.sh +0 -0
  811. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/test_copier_redis_conditional.py +0 -0
  812. {aegis_stack-0.7.0 → aegis_stack-0.8.0}/tests/test_serve_port_autodiscovery.py +0 -0
@@ -144,3 +144,7 @@ my-app/
144
144
 
145
145
  # Translation review artifacts
146
146
  aegis_*_review.csv
147
+ demo-*/
148
+
149
+ # Generated-project artifact if aegis init ever runs at repo root
150
+ /.copier-answers.yml
@@ -5,6 +5,91 @@
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.8.0] - 2026-06-15
9
+
10
+ ### Added
11
+
12
+ - **Guided `aegis init`**: a full-screen, interactive setup is now the default
13
+ for `aegis init`, walking through components and services with a live review
14
+ screen before generating. `--quick` keeps the classic one-line prompts, and
15
+ tiny terminals fall back to quick mode automatically. `--no-interactive` is
16
+ unchanged.
17
+ - **`tasks statistics` CLI command**: report overall scheduler statistics
18
+ (total, active, and paused tasks) straight from the project CLI, mirroring the
19
+ data behind the admin-gated `/scheduler/statistics` endpoint.
20
+ - **Authenticated load testing**: `api-load-test run` now authenticates by
21
+ default so auth-gated routes work without manual login. `--as-admin` mints a
22
+ bearer token for an `ADMIN_USER_EMAILS` address, `--as-user` for a regular
23
+ account, and `--anon` opts out.
24
+ - **`HF_TOKEN` setting**: authenticates the RAG embedding-model download from the
25
+ Hugging Face Hub, silencing the unauthenticated-request warning and raising
26
+ rate limits. Optional; public models still download without it.
27
+
28
+ ### Changed
29
+
30
+ - **CLI brand pass**: warnings are now amber (`#F5A623`, matching the frontend)
31
+ instead of violet; status icons are monochrome text glyphs (`✓ ⚠ ✗ ℹ`) colored
32
+ by state instead of emoji, so they align to the terminal grid and render
33
+ consistently everywhere; the load-test report is themed (teal progress bar,
34
+ dim labels).
35
+ - **Quiet RAG model load**: the embedding model now loads without progress bars
36
+ or log noise in CLI output.
37
+
38
+ ### Fixed
39
+
40
+ - **gpt-5 family and o-series models in AI chat**: these reject any non-default
41
+ `temperature` and returned a 400; temperature is now omitted for them so the
42
+ streaming chat works.
43
+ - **`llm` CLI commands now run**: `list`, `current`, `use`, and `info` were
44
+ declared `async def`, which Typer never awaits, so they exited without doing
45
+ anything; they now execute correctly.
46
+ - **Deprecation warning** in the AI chat streaming path (`result.usage()` is a
47
+ property in pydantic-ai 1.x, no longer a method).
48
+
49
+ ### Documentation
50
+
51
+ - **Installation guide clarity**: explain what `uvx` is and that it ships with
52
+ uv, distinguish `uvx` (ephemeral run) from `uv tool install` (persistent
53
+ install), and correct the uvx version note (latest on first run, cached
54
+ thereafter; `uvx aegis-stack@latest` to refresh). The CLI language section now
55
+ lists all 9 supported locales (`en`, `de`, `es`, `fr`, `ja`, `ko`, `ru`, `zh`,
56
+ `zh_Hant`) in a table instead of only Simplified Chinese.
57
+
58
+ ## [0.7.0] - 2026-06-08
59
+
60
+ ### Added
61
+
62
+ - **Rolling deploys**: zero-downtime, code-only `aegis deploy --rolling`. The
63
+ webserver rolls over while still serving traffic and the worker queue is
64
+ paused so in-flight jobs drain cleanly before workers restart.
65
+ - **Free-port auto-discovery for `make serve`**: picks an open host port instead
66
+ of failing with "address already in use" when the default is taken.
67
+ - **CI/CD scaffolding in generated projects**: a GitHub Actions deploy workflow
68
+ generated out of the box.
69
+ - **Scheduler**: run a scheduled job on demand from the project CLI, plus
70
+ scheduler fixes.
71
+ - **Payment service**: Stripe-backed payment capability, with end-to-end tests.
72
+ - **Performance middleware** in generated projects.
73
+
74
+ ### Changed
75
+
76
+ - **`aegis update` is now idempotent**: after a clean update it advances the
77
+ copier baseline (`_commit` / `_template_version`) so a re-run is a no-op and
78
+ future updates don't re-apply changes that are already present.
79
+ - `aegis update --to-version` accepts both PEP 440 (`0.7.0`) and tag (`v0.7.0`)
80
+ forms.
81
+ - Dependency: typer bumped to 0.26.7.
82
+
83
+ ### Fixed
84
+
85
+ - Rolling deploy no longer rolls back a slow-but-healthy webserver: the
86
+ docker-rollout wait is sized to the container's own healthcheck budget
87
+ (`-t`), not a fixed 60s wall clock.
88
+ - `make serve` port detection no longer reports a busy port as free under load
89
+ (a timed-out probe is treated as in-use, not free).
90
+
91
+ ---
92
+
8
93
  ## [0.4.0] - 2025-12-07
9
94
 
10
95
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aegis-stack
3
- Version: 0.7.0
3
+ Version: 0.8.0
4
4
  Summary: A production-ready FastAPI platform with modular components and a built-in control plane. Try: uvx aegis-stack init my-project
5
5
  Project-URL: Homepage, https://docs.aegis-stack.io/
6
6
  Project-URL: Documentation, https://docs.aegis-stack.io/
@@ -26,7 +26,7 @@ Classifier: Topic :: Software Development :: Code Generators
26
26
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
27
27
  Classifier: Typing :: Typed
28
28
  Requires-Python: <3.15,>=3.11
29
- Requires-Dist: copier>=9.11.2
29
+ Requires-Dist: copier<9.15,>=9.11.2
30
30
  Requires-Dist: filelock>=3.20.1
31
31
  Requires-Dist: packaging>=24.0
32
32
  Requires-Dist: pillow>=12.2.0
@@ -88,6 +88,8 @@ Aegis Stack scaffolds complete FastAPI applications with auth, payments, workers
88
88
  uvx aegis-stack init my-api && cd my-api && make serve
89
89
  ```
90
90
 
91
+ `init` opens a full-screen guided setup that walks through every component and service with explanations. Prefer the classic one-line prompts? Pass `--quick`.
92
+
91
93
  <details>
92
94
  <summary><strong>More examples</strong></summary>
93
95
 
@@ -110,6 +112,8 @@ uvx aegis-stack init full-app --services auth,payment,comms --components worker,
110
112
 
111
113
  ## Customizing Your Stack
112
114
 
115
+ ![Aegis Stack spinning up a new project](docs/images/aegis-spinup-demo.gif)
116
+
113
117
  **Components** are infrastructure pieces (database, workers, scheduler, cache). **Services** are business capabilities (auth, AI, payments, comms).
114
118
 
115
119
  **Don't worry about what you pick today.** Add anything later with a single command, remove what you outgrow, no rework required.
@@ -210,20 +214,6 @@ Every generated project ships with GitHub Actions and developer tooling pre-wire
210
214
 
211
215
  [Deployment Docs →](https://docs.aegis-stack.io/deployment/)
212
216
 
213
- Components compose into capabilities you didn't have to build:
214
-
215
- ```mermaid
216
- graph LR
217
- Auth[Auth] --> A[User-specific AI conversations]
218
- AI[AI] --> A
219
- AI --> B[Persistent history &<br/>token analytics]
220
- DB[(Database)] --> B
221
- AI --> C[Background AI pipelines]
222
- Worker[Worker] --> C
223
- Scheduler[Scheduler] --> D[Persistent job scheduling]
224
- DB --> D
225
- ```
226
-
227
217
  ## Your Stack Grows With You
228
218
 
229
219
  **Your choices aren't permanent.** Start with what you need today, add when requirements change, remove what you outgrow.
@@ -30,6 +30,8 @@ Aegis Stack scaffolds complete FastAPI applications with auth, payments, workers
30
30
  uvx aegis-stack init my-api && cd my-api && make serve
31
31
  ```
32
32
 
33
+ `init` opens a full-screen guided setup that walks through every component and service with explanations. Prefer the classic one-line prompts? Pass `--quick`.
34
+
33
35
  <details>
34
36
  <summary><strong>More examples</strong></summary>
35
37
 
@@ -52,6 +54,8 @@ uvx aegis-stack init full-app --services auth,payment,comms --components worker,
52
54
 
53
55
  ## Customizing Your Stack
54
56
 
57
+ ![Aegis Stack spinning up a new project](docs/images/aegis-spinup-demo.gif)
58
+
55
59
  **Components** are infrastructure pieces (database, workers, scheduler, cache). **Services** are business capabilities (auth, AI, payments, comms).
56
60
 
57
61
  **Don't worry about what you pick today.** Add anything later with a single command, remove what you outgrow, no rework required.
@@ -152,20 +156,6 @@ Every generated project ships with GitHub Actions and developer tooling pre-wire
152
156
 
153
157
  [Deployment Docs →](https://docs.aegis-stack.io/deployment/)
154
158
 
155
- Components compose into capabilities you didn't have to build:
156
-
157
- ```mermaid
158
- graph LR
159
- Auth[Auth] --> A[User-specific AI conversations]
160
- AI[AI] --> A
161
- AI --> B[Persistent history &<br/>token analytics]
162
- DB[(Database)] --> B
163
- AI --> C[Background AI pipelines]
164
- Worker[Worker] --> C
165
- Scheduler[Scheduler] --> D[Persistent job scheduling]
166
- DB --> D
167
- ```
168
-
169
159
  ## Your Stack Grows With You
170
160
 
171
161
  **Your choices aren't permanent.** Start with what you need today, add when requirements change, remove what you outgrow.
@@ -2,4 +2,4 @@
2
2
  Aegis Stack CLI - Component generation and project management tools.
3
3
  """
4
4
 
5
- __version__ = "0.7.0"
5
+ __version__ = "0.8.0"
@@ -10,6 +10,7 @@ Usage:
10
10
 
11
11
  import typer
12
12
 
13
+ from .cli import brand
13
14
  from .commands.add import add_command
14
15
  from .commands.add_service import add_service_command
15
16
  from .commands.components import components_command
@@ -59,10 +60,9 @@ def _resolve_locale_callback(value: str | None) -> str | None:
59
60
  # so check if the input actually maps to a real locale.
60
61
  base = value.lower().replace("-", "_").split(".")[0].split("@")[0]
61
62
  if resolved == "en" and not base.startswith("en"):
62
- typer.secho(
63
+ brand.error(
63
64
  f"Unsupported language '{value}'. Available: "
64
65
  f"{', '.join(sorted(AVAILABLE_LOCALES))}",
65
- fg="red",
66
66
  err=True,
67
67
  )
68
68
  raise typer.Exit(1)
@@ -70,6 +70,11 @@ def _resolve_locale_callback(value: str | None) -> str | None:
70
70
  return value
71
71
 
72
72
 
73
+ # Brand the rich ``--help`` output (teal = typeable tokens, neutral = prose,
74
+ # dim = annotations/chrome). Single source in brand.py; must run before the
75
+ # Typer app is built so its help panels pick up the styling.
76
+ brand.apply_help_theme()
77
+
73
78
  # Create the main Typer application
74
79
  app = typer.Typer(
75
80
  name="aegis",
@@ -0,0 +1,143 @@
1
+ """Aegis brand palette and semantic rendering helpers for CLI output.
2
+
3
+ Single source for the colors used by aegis CLI surfaces. The hex values
4
+ mirror the generated frontend theme
5
+ (``app/components/frontend/theme.py`` in the template) so the CLI and the
6
+ product it generates share one visual identity.
7
+
8
+ Call sites express intent, never colors: import this module and use the
9
+ semantic helpers (``brand.success(...)``, ``brand.warn(...)``,
10
+ ``brand.error(...)``, ``brand.accent(...)``, ``brand.muted(...)``). The
11
+ palette is defined here exactly once; no per-command color constants.
12
+ """
13
+
14
+ from typing import Any
15
+
16
+ import typer
17
+
18
+ AEGIS_TEAL = "#17CCBF"
19
+ """Primary teal/cyan — the brand standard accent (and success state)."""
20
+
21
+ AEGIS_TEAL_DARK = "#248F87"
22
+ """Darker teal — secondary accent."""
23
+
24
+ AEGIS_WARNING = "#F5A623"
25
+ """Warning amber — matches the frontend theme's ``ACCENT_WARNING``."""
26
+
27
+ AEGIS_ERROR = "#E23E3E"
28
+ """Error red — mirrors the theme's ``ACCENT_STOP``."""
29
+
30
+
31
+ def _rgb(hex_color: str) -> tuple[int, int, int]:
32
+ """Hex color to the (r, g, b) tuple click/typer expects."""
33
+ value = hex_color.lstrip("#")
34
+ return int(value[0:2], 16), int(value[2:4], 16), int(value[4:6], 16)
35
+
36
+
37
+ _TEAL = _rgb(AEGIS_TEAL)
38
+ _WARNING = _rgb(AEGIS_WARNING)
39
+ _ERROR = _rgb(AEGIS_ERROR)
40
+
41
+
42
+ def success(
43
+ message: str = "", *, bold: bool = False, nl: bool = True, err: bool = False
44
+ ) -> None:
45
+ """Echo a success line in the brand teal."""
46
+ typer.secho(message, fg=_TEAL, bold=bold or None, nl=nl, err=err)
47
+
48
+
49
+ def accent(
50
+ message: str = "", *, bold: bool = False, nl: bool = True, err: bool = False
51
+ ) -> None:
52
+ """Echo an accented line (headings, highlights) in the brand teal."""
53
+ typer.secho(message, fg=_TEAL, bold=bold or None, nl=nl, err=err)
54
+
55
+
56
+ def warn(
57
+ message: str = "", *, bold: bool = False, nl: bool = True, err: bool = False
58
+ ) -> None:
59
+ """Echo a warning line in the brand amber."""
60
+ typer.secho(message, fg=_WARNING, bold=bold or None, nl=nl, err=err)
61
+
62
+
63
+ def error(
64
+ message: str = "", *, bold: bool = False, nl: bool = True, err: bool = False
65
+ ) -> None:
66
+ """Echo an error line in the brand red."""
67
+ typer.secho(message, fg=_ERROR, bold=bold or None, nl=nl, err=err)
68
+
69
+
70
+ def muted(
71
+ message: str = "", *, bold: bool = False, nl: bool = True, err: bool = False
72
+ ) -> None:
73
+ """Echo a secondary/de-emphasized line (terminal dim)."""
74
+ typer.secho(message, dim=True, bold=bold or None, nl=nl, err=err)
75
+
76
+
77
+ def accent_text(text: str, *, bold: bool = False) -> str:
78
+ """Style ``text`` in the brand teal for inline composition."""
79
+ return typer.style(text, fg=_TEAL, bold=bold or None)
80
+
81
+
82
+ def warn_text(text: str, *, bold: bool = False) -> str:
83
+ """Style ``text`` in the brand amber for inline composition."""
84
+ return typer.style(text, fg=_WARNING, bold=bold or None)
85
+
86
+
87
+ def muted_text(text: str, *, bold: bool = False) -> str:
88
+ """Style ``text`` de-emphasized (terminal dim) for inline composition."""
89
+ return typer.style(text, dim=True, bold=bold or None)
90
+
91
+
92
+ def questionary_style() -> Any:
93
+ """Brand style for questionary prompts.
94
+
95
+ Replaces questionary's default orange (``#FF9D00``) answer/pointer/
96
+ highlight tokens with the brand teal. Imported lazily so plain
97
+ ``typer``-only surfaces don't pay for questionary at import time.
98
+ """
99
+ import questionary
100
+
101
+ return questionary.Style(
102
+ [
103
+ ("qmark", f"fg:{AEGIS_TEAL} bold"),
104
+ ("question", "bold"),
105
+ ("answer", f"fg:{AEGIS_TEAL} bold"),
106
+ ("pointer", f"fg:{AEGIS_TEAL} bold"),
107
+ ("highlighted", f"fg:{AEGIS_TEAL} bold"),
108
+ ("selected", f"fg:{AEGIS_TEAL}"),
109
+ ("instruction", "fg:#7E8A9A"),
110
+ ("disabled", "fg:#7E8A9A italic"),
111
+ ]
112
+ )
113
+
114
+
115
+ def apply_help_theme() -> None:
116
+ """Theme Typer's rich ``--help`` output to the brand palette.
117
+
118
+ One accent (teal) encodes exactly one meaning — "a token you can type":
119
+ command names and flags. Prose (usage, descriptions, titles) stays
120
+ neutral foreground; annotations and chrome (metavars, defaults, env-var
121
+ hints, panel borders) go dim. Two colors, three brightnesses — color is
122
+ wayfinding, not decoration. Call once before building the Typer app;
123
+ ``rich_utils`` constants are global, so every help panel inherits it.
124
+ """
125
+ from typer import rich_utils
126
+
127
+ typeable = f"bold {AEGIS_TEAL}" # commands + flags: the tokens you run
128
+ # setattr (not direct assignment) so the type checker doesn't narrow each
129
+ # rich_utils.STYLE_* to the Literal of its packaged default and reject the
130
+ # override. Values: teal = typeable, dim = annotations, "" = neutral prose.
131
+ overrides = {
132
+ "STYLE_COMMANDS_TABLE_FIRST_COLUMN": typeable, # command names
133
+ "STYLE_OPTION": typeable, # --flags
134
+ "STYLE_SWITCH": typeable, # -h style switches
135
+ "STYLE_NEGATIVE_OPTION": typeable,
136
+ "STYLE_NEGATIVE_SWITCH": typeable,
137
+ "STYLE_METAVAR": "dim", # TEXT/INTEGER metavars are annotations
138
+ "STYLE_OPTION_ENVVAR": "dim", # [env var: ...] — drop the yellow
139
+ "STYLE_USAGE": "", # "Usage:" header — neutral prose, not yellow
140
+ "STYLE_HELPTEXT": "", # help body — neutral foreground, not dimmed
141
+ }
142
+ for _name, _value in overrides.items():
143
+ setattr(rich_utils, _name, _value)
@@ -0,0 +1,145 @@
1
+ """Resolved build plan shared by quick and guided init flows.
2
+
3
+ ``resolve_build_plan`` runs the full selection-to-plan pipeline (component
4
+ dependency resolution, service-required component merge, auto-add
5
+ accounting, template previews) as a pure computation. Quick mode prints the
6
+ plan as today's terminal dump; the guided setup renders it as the REVIEW
7
+ screen. One resolution path, two presentations.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ from dataclasses import dataclass, field
13
+
14
+ from ..core.component_utils import (
15
+ clean_component_names,
16
+ extract_base_component_name,
17
+ restore_engine_info,
18
+ )
19
+ from ..core.components import COMPONENTS, CORE_COMPONENTS, ComponentType
20
+ from ..core.dependency_resolver import DependencyResolver
21
+ from ..core.service_resolver import ServiceResolver
22
+ from ..core.template_generator import TemplateGenerator
23
+
24
+
25
+ @dataclass
26
+ class BuildPlan:
27
+ """Everything both init flows need to preview and confirm a build."""
28
+
29
+ project_name: str
30
+ components: list[str]
31
+ """Final component list (bracket syntax preserved, CORE included)."""
32
+
33
+ services: list[str]
34
+ """Final service list (bracket syntax preserved)."""
35
+
36
+ scheduler_backend: str
37
+ auto_added_components: list[str] = field(default_factory=list)
38
+ """Components pulled in by component dependency resolution."""
39
+
40
+ service_component_map: dict[str, list[str]] = field(default_factory=dict)
41
+ """Component -> the services that required it (service auto-adds)."""
42
+
43
+ template_gen: TemplateGenerator | None = None
44
+ template_files: list[str] = field(default_factory=list)
45
+ entrypoints: list[str] = field(default_factory=list)
46
+ worker_queues: list[str] = field(default_factory=list)
47
+ dependencies: list[str] = field(default_factory=list)
48
+
49
+ @property
50
+ def infrastructure(self) -> list[str]:
51
+ """Non-CORE components for display, selection order preserved."""
52
+ out = []
53
+ for name in self.components:
54
+ base = extract_base_component_name(name)
55
+ if (
56
+ base in COMPONENTS
57
+ and COMPONENTS[base].type == ComponentType.INFRASTRUCTURE
58
+ ):
59
+ out.append(name)
60
+ return out
61
+
62
+
63
+ def resolve_build_plan(
64
+ project_name: str,
65
+ selected_components: list[str],
66
+ scheduler_backend: str,
67
+ selected_services: list[str],
68
+ python_version: str,
69
+ ) -> BuildPlan:
70
+ """Resolve a raw interactive selection into a confirmed-ready plan.
71
+
72
+ Mirrors the long-standing init pipeline: resolve component
73
+ dependencies on clean names, restore engine brackets, merge
74
+ service-required components (base-name de-duplicated, first occurrence
75
+ wins so an explicit ``database[postgres]`` beats the resolver's plain
76
+ ``database``), then build the template previews.
77
+ """
78
+ components = list(selected_components)
79
+ auto_added: list[str] = []
80
+
81
+ if components:
82
+ original = list(components)
83
+ # Auto-adds are judged against the PRE-resolution selection; judging
84
+ # the resolved set against itself always yields "nothing missing".
85
+ auto_added = DependencyResolver.get_missing_dependencies(
86
+ clean_component_names([c for c in original if c not in CORE_COMPONENTS])
87
+ )
88
+ resolved_clean = DependencyResolver.resolve_dependencies(
89
+ clean_component_names(components)
90
+ )
91
+ components = restore_engine_info(resolved_clean, original)
92
+
93
+ services = list(selected_services)
94
+ service_component_map: dict[str, list[str]] = {}
95
+ if services:
96
+ # Base-name comparison throughout: a service's plain requirement
97
+ # (database) must neither duplicate nor claim credit for an explicit
98
+ # bracketed selection (database[postgres]).
99
+ before_merge_bases = {extract_base_component_name(c) for c in components}
100
+ service_components, _ = ServiceResolver.resolve_service_dependencies(services)
101
+
102
+ merged = list(components)
103
+ merged_bases = set(before_merge_bases)
104
+ for comp in service_components:
105
+ base = extract_base_component_name(comp)
106
+ if base not in merged_bases:
107
+ merged.append(comp)
108
+ merged_bases.add(base)
109
+ components = merged
110
+
111
+ service_added = [
112
+ comp
113
+ for comp in service_components
114
+ if extract_base_component_name(comp) not in before_merge_bases
115
+ and comp not in CORE_COMPONENTS
116
+ ]
117
+ for service_name in services:
118
+ service_deps = ServiceResolver.resolve_service_dependencies([service_name])[
119
+ 0
120
+ ]
121
+ for comp in service_deps:
122
+ if comp in service_added:
123
+ service_component_map.setdefault(comp, []).append(service_name)
124
+
125
+ template_gen = TemplateGenerator(
126
+ project_name,
127
+ list(components),
128
+ scheduler_backend,
129
+ services,
130
+ python_version,
131
+ )
132
+
133
+ return BuildPlan(
134
+ project_name=project_name,
135
+ components=components,
136
+ services=services,
137
+ scheduler_backend=scheduler_backend,
138
+ auto_added_components=auto_added,
139
+ service_component_map=service_component_map,
140
+ template_gen=template_gen,
141
+ template_files=template_gen.get_template_files(),
142
+ entrypoints=template_gen.get_entrypoints(),
143
+ worker_queues=template_gen.get_worker_queues(),
144
+ dependencies=template_gen._get_pyproject_deps(),
145
+ )