tempest-fastapi-sdk 0.294.0__tar.gz → 0.296.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 (1351) hide show
  1. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/CHANGELOG.md +183 -0
  2. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/PKG-INFO +101 -2
  3. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/README.md +100 -1
  4. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/SHIPPED.md +42 -1
  5. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/architecture.en.md +53 -0
  6. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/architecture.md +53 -0
  7. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/index.en.md +4 -0
  8. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/index.md +4 -0
  9. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/cli.en.md +562 -2
  10. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/cli.md +565 -2
  11. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/reference.md +1 -0
  12. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/tutorial.en.md +1 -0
  13. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/tutorial.md +1 -0
  14. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/pyproject.toml +1 -1
  15. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/__init__.py +5 -1
  16. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/__init__.py +4 -0
  17. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/handlers.py +49 -9
  18. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/__init__.py +8 -0
  19. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/api/middlewares/error_envelope.py +154 -0
  20. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/agents.py +158 -0
  21. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/cache.py +229 -0
  22. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/db.py +44 -0
  23. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/doctor.py +414 -0
  24. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/email.py +122 -0
  25. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/flags.py +158 -0
  26. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/integrations.py +264 -0
  27. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/main.py +32 -0
  28. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/openapi_export.py +240 -0
  29. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/project.py +365 -0
  30. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/queue.py +174 -0
  31. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/routes.py +239 -0
  32. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/secrets.py +548 -0
  33. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/serve.py +97 -0
  34. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/shell.py +245 -0
  35. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/storage.py +239 -0
  36. tempest_fastapi_sdk-0.296.0/tempest_fastapi_sdk/cli/tasks.py +208 -0
  37. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/user.py +570 -0
  38. tempest_fastapi_sdk-0.296.0/tests/api/test_error_envelope.py +296 -0
  39. tempest_fastapi_sdk-0.296.0/tests/cli/test_agents.py +193 -0
  40. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_db.py +105 -0
  41. tempest_fastapi_sdk-0.296.0/tests/cli/test_doctor.py +124 -0
  42. tempest_fastapi_sdk-0.296.0/tests/cli/test_email_storage.py +363 -0
  43. tempest_fastapi_sdk-0.296.0/tests/cli/test_flags_cache.py +138 -0
  44. tempest_fastapi_sdk-0.296.0/tests/cli/test_integrations.py +207 -0
  45. tempest_fastapi_sdk-0.296.0/tests/cli/test_openapi_export.py +140 -0
  46. tempest_fastapi_sdk-0.296.0/tests/cli/test_queue_tasks.py +243 -0
  47. tempest_fastapi_sdk-0.296.0/tests/cli/test_routes.py +188 -0
  48. tempest_fastapi_sdk-0.296.0/tests/cli/test_secrets.py +349 -0
  49. tempest_fastapi_sdk-0.296.0/tests/cli/test_serve.py +138 -0
  50. tempest_fastapi_sdk-0.296.0/tests/cli/test_shell.py +152 -0
  51. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_user.py +371 -0
  52. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docs_signature_guard.py +9 -1
  53. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/uv.lock +1 -1
  54. tempest_fastapi_sdk-0.294.0/tempest_fastapi_sdk/cli/secrets.py +0 -177
  55. tempest_fastapi_sdk-0.294.0/tests/cli/test_secrets.py +0 -111
  56. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  57. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  58. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/ISSUE_TEMPLATE/docs.yml +0 -0
  59. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  60. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  61. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  62. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/workflows/ci.yml +0 -0
  63. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/workflows/docs.yml +0 -0
  64. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/workflows/nightly-model.yml +0 -0
  65. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.github/workflows/release-pypi.yml +0 -0
  66. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.gitignore +0 -0
  67. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/.python-version +0 -0
  68. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/CLAUDE.md +0 -0
  69. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/LESSONS.md +0 -0
  70. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/Makefile +0 -0
  71. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/CLAUDE.md +0 -0
  72. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/admin-showcase.en.md +0 -0
  73. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/admin-showcase.md +0 -0
  74. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/changelog.en.md +0 -0
  75. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/changelog.md +0 -0
  76. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/contributing.en.md +0 -0
  77. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/contributing.md +0 -0
  78. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/fullstack-web.en.md +0 -0
  79. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/fullstack-web.md +0 -0
  80. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/genai-examples.en.md +0 -0
  81. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/genai-examples.md +0 -0
  82. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/first-project.en.md +0 -0
  83. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/first-project.md +0 -0
  84. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/python-versions.en.md +0 -0
  85. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/python-versions.md +0 -0
  86. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/references.en.md +0 -0
  87. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/references.md +0 -0
  88. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/uv.en.md +0 -0
  89. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/getting-started/uv.md +0 -0
  90. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/installation.en.md +0 -0
  91. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/installation.md +0 -0
  92. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/integrated.en.md +0 -0
  93. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/integrated.md +0 -0
  94. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/index.en.md +0 -0
  95. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/index.md +0 -0
  96. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/api.en.md +0 -0
  97. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/api.md +0 -0
  98. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/business-rules.en.md +0 -0
  99. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/business-rules.md +0 -0
  100. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/domain.en.md +0 -0
  101. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/domain.md +0 -0
  102. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/flows.en.md +0 -0
  103. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/flows.md +0 -0
  104. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/index.en.md +0 -0
  105. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/learning/marketplace/index.md +0 -0
  106. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/marketplace-local.en.md +0 -0
  107. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/marketplace-local.md +0 -0
  108. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/migration.en.md +0 -0
  109. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/migration.md +0 -0
  110. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/admin-sql-console.en.md +0 -0
  111. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/admin-sql-console.md +0 -0
  112. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/admin.en.md +0 -0
  113. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/admin.md +0 -0
  114. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-advanced.en.md +0 -0
  115. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-advanced.md +0 -0
  116. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-architecture.en.md +0 -0
  117. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-architecture.md +0 -0
  118. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-concepts.en.md +0 -0
  119. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-concepts.md +0 -0
  120. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-db.en.md +0 -0
  121. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-db.md +0 -0
  122. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-testing.en.md +0 -0
  123. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents-testing.md +0 -0
  124. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents.en.md +0 -0
  125. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/agents.md +0 -0
  126. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/app-errors.en.md +0 -0
  127. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/app-errors.md +0 -0
  128. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/artifact-registry.en.md +0 -0
  129. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/artifact-registry.md +0 -0
  130. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/asyncapi-client.en.md +0 -0
  131. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/asyncapi-client.md +0 -0
  132. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/audit-trail.en.md +0 -0
  133. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/audit-trail.md +0 -0
  134. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/auth-flow.en.md +0 -0
  135. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/auth-flow.md +0 -0
  136. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/authz.en.md +0 -0
  137. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/authz.md +0 -0
  138. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/br-helpers.en.md +0 -0
  139. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/br-helpers.md +0 -0
  140. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/cache.en.md +0 -0
  141. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/cache.md +0 -0
  142. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/chat.en.md +0 -0
  143. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/chat.md +0 -0
  144. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/database.en.md +0 -0
  145. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/database.md +0 -0
  146. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/deploy-safety.en.md +0 -0
  147. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/deploy-safety.md +0 -0
  148. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/downloads.en.md +0 -0
  149. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/downloads.md +0 -0
  150. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/email.en.md +0 -0
  151. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/email.md +0 -0
  152. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/enum-columns.en.md +0 -0
  153. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/enum-columns.md +0 -0
  154. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/faces.en.md +0 -0
  155. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/faces.md +0 -0
  156. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/fakes.en.md +0 -0
  157. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/fakes.md +0 -0
  158. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/feature-flags.en.md +0 -0
  159. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/feature-flags.md +0 -0
  160. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/fields.en.md +0 -0
  161. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/fields.md +0 -0
  162. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/file-store.en.md +0 -0
  163. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/file-store.md +0 -0
  164. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/firebase-auth.en.md +0 -0
  165. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/firebase-auth.md +0 -0
  166. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/genai.en.md +0 -0
  167. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/genai.md +0 -0
  168. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/geo.en.md +0 -0
  169. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/geo.md +0 -0
  170. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/hostbridge.en.md +0 -0
  171. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/hostbridge.md +0 -0
  172. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/http-client.en.md +0 -0
  173. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/http-client.md +0 -0
  174. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/http.en.md +0 -0
  175. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/http.md +0 -0
  176. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/idempotency.en.md +0 -0
  177. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/idempotency.md +0 -0
  178. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/image-generation.en.md +0 -0
  179. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/image-generation.md +0 -0
  180. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/index.en.md +0 -0
  181. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/index.md +0 -0
  182. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/introspection-auth.en.md +0 -0
  183. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/introspection-auth.md +0 -0
  184. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/jobs.en.md +0 -0
  185. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/jobs.md +0 -0
  186. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/logging.en.md +0 -0
  187. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/logging.md +0 -0
  188. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/management-commands.en.md +0 -0
  189. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/management-commands.md +0 -0
  190. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/mercado-pago.en.md +0 -0
  191. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/mercado-pago.md +0 -0
  192. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/metrics.en.md +0 -0
  193. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/metrics.md +0 -0
  194. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/mfa.en.md +0 -0
  195. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/mfa.md +0 -0
  196. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/migrations.en.md +0 -0
  197. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/migrations.md +0 -0
  198. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/model-weights.en.md +0 -0
  199. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/model-weights.md +0 -0
  200. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/modelops.en.md +0 -0
  201. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/modelops.md +0 -0
  202. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/models.en.md +0 -0
  203. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/models.md +0 -0
  204. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/multi-tenant.en.md +0 -0
  205. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/multi-tenant.md +0 -0
  206. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/oauth.en.md +0 -0
  207. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/oauth.md +0 -0
  208. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/observability.en.md +0 -0
  209. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/observability.md +0 -0
  210. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/offline-sync.en.md +0 -0
  211. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/offline-sync.md +0 -0
  212. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openapi-client.en.md +0 -0
  213. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openapi-client.md +0 -0
  214. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openapi-errors.en.md +0 -0
  215. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openapi-errors.md +0 -0
  216. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openpix-subscriptions.en.md +0 -0
  217. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openpix-subscriptions.md +0 -0
  218. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openpix.en.md +0 -0
  219. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/openpix.md +0 -0
  220. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/outbox.en.md +0 -0
  221. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/outbox.md +0 -0
  222. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/pdf.en.md +0 -0
  223. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/pdf.md +0 -0
  224. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/permission-guards.en.md +0 -0
  225. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/permission-guards.md +0 -0
  226. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/pix-protocol.en.md +0 -0
  227. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/pix-protocol.md +0 -0
  228. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/push.en.md +0 -0
  229. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/push.md +0 -0
  230. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/query-plans.en.md +0 -0
  231. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/query-plans.md +0 -0
  232. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/queue-tasks.en.md +0 -0
  233. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/queue-tasks.md +0 -0
  234. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/react-spa.en.md +0 -0
  235. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/react-spa.md +0 -0
  236. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/realtime.en.md +0 -0
  237. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/realtime.md +0 -0
  238. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/refresh-tokens.en.md +0 -0
  239. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/refresh-tokens.md +0 -0
  240. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/reviews.en.md +0 -0
  241. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/reviews.md +0 -0
  242. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/security.en.md +0 -0
  243. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/security.md +0 -0
  244. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/sessions.en.md +0 -0
  245. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/sessions.md +0 -0
  246. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/spreadsheets.en.md +0 -0
  247. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/spreadsheets.md +0 -0
  248. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/sse.en.md +0 -0
  249. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/sse.md +0 -0
  250. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/storage.en.md +0 -0
  251. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/storage.md +0 -0
  252. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/stored-files.en.md +0 -0
  253. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/stored-files.md +0 -0
  254. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/stripe.en.md +0 -0
  255. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/stripe.md +0 -0
  256. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/system-checks.en.md +0 -0
  257. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/system-checks.md +0 -0
  258. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/tempestweb-frontend.en.md +0 -0
  259. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/tempestweb-frontend.md +0 -0
  260. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/testing.en.md +0 -0
  261. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/testing.md +0 -0
  262. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/text-search.en.md +0 -0
  263. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/text-search.md +0 -0
  264. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/transactions.en.md +0 -0
  265. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/transactions.md +0 -0
  266. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/transcription-pipeline.en.md +0 -0
  267. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/transcription-pipeline.md +0 -0
  268. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/typing.en.md +0 -0
  269. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/typing.md +0 -0
  270. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/ui-css.en.md +0 -0
  271. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/ui-css.md +0 -0
  272. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/ui-forms.en.md +0 -0
  273. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/ui-forms.md +0 -0
  274. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/ui.en.md +0 -0
  275. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/ui.md +0 -0
  276. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/uploads.en.md +0 -0
  277. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/uploads.md +0 -0
  278. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/utilities.en.md +0 -0
  279. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/utilities.md +0 -0
  280. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/vision.en.md +0 -0
  281. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/vision.md +0 -0
  282. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/webauthn.en.md +0 -0
  283. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/webauthn.md +0 -0
  284. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/webpush.en.md +0 -0
  285. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/webpush.md +0 -0
  286. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/websocket.en.md +0 -0
  287. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/websocket.md +0 -0
  288. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/zap.en.md +0 -0
  289. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/recipes/zap.md +0 -0
  290. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/reference.en.md +0 -0
  291. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/roadmap.en.md +0 -0
  292. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/roadmap.md +0 -0
  293. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/ssr.en.md +0 -0
  294. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/docs/ssr.md +0 -0
  295. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/mkdocs.yml +0 -0
  296. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/mkdocs_hooks/llmstxt.py +0 -0
  297. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/planning/genai/README.md +0 -0
  298. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/planning/genai/manual-validation.md +0 -0
  299. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/planning/genai/phase-0.md +0 -0
  300. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/planning/genai/phase-1.md +0 -0
  301. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/planning/genai/phase-2.md +0 -0
  302. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/planning/genai/phase-3.md +0 -0
  303. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/planning/genai/validation-strategy.md +0 -0
  304. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/export_order.py +0 -0
  305. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/extract_recipe.py +0 -0
  306. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/face_separation.py +0 -0
  307. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/mercadopago_diff.py +0 -0
  308. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/mercadopago_overlay.py +0 -0
  309. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/openpix_diff.py +0 -0
  310. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/openpix_overlay.py +0 -0
  311. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/regen_mercado_pago.py +0 -0
  312. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/regen_openpix.py +0 -0
  313. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/regen_stripe.py +0 -0
  314. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/regen_zap.py +0 -0
  315. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/scripts/regen_zap_ws.py +0 -0
  316. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/__init__.py +0 -0
  317. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/actions.py +0 -0
  318. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/auth.py +0 -0
  319. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/config.py +0 -0
  320. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/dashboard.py +0 -0
  321. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/discovery.py +0 -0
  322. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/forms.py +0 -0
  323. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/permissions.py +0 -0
  324. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/router.py +0 -0
  325. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/session.py +0 -0
  326. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/site.py +0 -0
  327. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/sql_shell.py +0 -0
  328. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/static/admin.css +0 -0
  329. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/tasks.py +0 -0
  330. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/autocomplete.html +0 -0
  331. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/base.html +0 -0
  332. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/dashboard.html +0 -0
  333. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/detail.html +0 -0
  334. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/form.html +0 -0
  335. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/import.html +0 -0
  336. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/list.html +0 -0
  337. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/login.html +0 -0
  338. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/logs.html +0 -0
  339. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/mfa.html +0 -0
  340. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/sql_shell.html +0 -0
  341. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/task_detail.html +0 -0
  342. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/templates/tasks.html +0 -0
  343. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/admin/theme.py +0 -0
  344. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/__init__.py +0 -0
  345. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/agent.py +0 -0
  346. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/builtin.py +0 -0
  347. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/fact_stores.py +0 -0
  348. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/loop.py +0 -0
  349. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/memory.py +0 -0
  350. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/multi.py +0 -0
  351. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/protocols.py +0 -0
  352. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/router.py +0 -0
  353. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/schemas.py +0 -0
  354. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/skills.py +0 -0
  355. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/storage.py +0 -0
  356. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/structured.py +0 -0
  357. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/testing.py +0 -0
  358. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/tools.py +0 -0
  359. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/agents/typed.py +0 -0
  360. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/cookies.py +0 -0
  361. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/dependencies/__init__.py +0 -0
  362. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/dependencies/auth.py +0 -0
  363. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/error_docs.py +0 -0
  364. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/_exempt.py +0 -0
  365. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/_streaming.py +0 -0
  366. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/access_log.py +0 -0
  367. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/body_size.py +0 -0
  368. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/cors.py +0 -0
  369. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/csrf.py +0 -0
  370. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/graceful.py +0 -0
  371. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/honeypot.py +0 -0
  372. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/idempotency.py +0 -0
  373. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/quota.py +0 -0
  374. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/rate_limit.py +0 -0
  375. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/request_id.py +0 -0
  376. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/middlewares/response_cache.py +0 -0
  377. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/oauth.py +0 -0
  378. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/routers/__init__.py +0 -0
  379. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/routers/health.py +0 -0
  380. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/routers/logs.py +0 -0
  381. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/routers/metrics.py +0 -0
  382. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/routers/tool_spec.py +0 -0
  383. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/server.py +0 -0
  384. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/spa.py +0 -0
  385. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/static.py +0 -0
  386. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/tracing.py +0 -0
  387. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/api/webhooks.py +0 -0
  388. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/app_errors/__init__.py +0 -0
  389. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/app_errors/constants.py +0 -0
  390. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/app_errors/models.py +0 -0
  391. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/app_errors/router.py +0 -0
  392. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/app_errors/schemas.py +0 -0
  393. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/app_errors/service.py +0 -0
  394. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/artifacts/__init__.py +0 -0
  395. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/artifacts/actions.py +0 -0
  396. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/artifacts/digest.py +0 -0
  397. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/artifacts/model.py +0 -0
  398. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/artifacts/registry.py +0 -0
  399. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/asyncapi/__init__.py +0 -0
  400. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/asyncapi/emit_stream.py +0 -0
  401. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/asyncapi/generate.py +0 -0
  402. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/asyncapi/ir.py +0 -0
  403. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/asyncapi/loader.py +0 -0
  404. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/asyncapi/parse.py +0 -0
  405. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/__init__.py +0 -0
  406. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/firebase.py +0 -0
  407. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/guards.py +0 -0
  408. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/introspection.py +0 -0
  409. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/locale.py +0 -0
  410. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/page_renderer.py +0 -0
  411. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/router.py +0 -0
  412. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/schemas.py +0 -0
  413. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/service.py +0 -0
  414. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/activation.html +0 -0
  415. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_error.html +0 -0
  416. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_success.html +0 -0
  417. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change.html +0 -0
  418. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_error.html +0 -0
  419. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_success.html +0 -0
  420. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/email_changed_notice.html +0 -0
  421. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification.html +0 -0
  422. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_error.html +0 -0
  423. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_success.html +0 -0
  424. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset.html +0 -0
  425. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_error.html +0 -0
  426. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_form.html +0 -0
  427. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_success.html +0 -0
  428. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation.html +0 -0
  429. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_error.html +0 -0
  430. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_success.html +0 -0
  431. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change.html +0 -0
  432. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_error.html +0 -0
  433. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_success.html +0 -0
  434. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_changed_notice.html +0 -0
  435. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification.html +0 -0
  436. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_error.html +0 -0
  437. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_success.html +0 -0
  438. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset.html +0 -0
  439. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_error.html +0 -0
  440. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_form.html +0 -0
  441. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_success.html +0 -0
  442. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/token_delivery.py +0 -0
  443. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/auth/webauthn.py +0 -0
  444. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/authz/__init__.py +0 -0
  445. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/authz/dependencies.py +0 -0
  446. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/authz/permissions.py +0 -0
  447. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/authz/requires.py +0 -0
  448. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cache/__init__.py +0 -0
  449. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cache/decorator.py +0 -0
  450. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cache/invalidation.py +0 -0
  451. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cache/redis_manager.py +0 -0
  452. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/chat/__init__.py +0 -0
  453. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/chat/constants.py +0 -0
  454. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/chat/models.py +0 -0
  455. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/chat/router.py +0 -0
  456. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/chat/schemas.py +0 -0
  457. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/chat/service.py +0 -0
  458. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/checks/__init__.py +0 -0
  459. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/checks/builtins.py +0 -0
  460. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/checks/messages.py +0 -0
  461. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/checks/registry.py +0 -0
  462. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/__init__.py +0 -0
  463. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/CLAUDE.md.tmpl +0 -0
  464. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/Dockerfile.tmpl +0 -0
  465. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/README.md.tmpl +0 -0
  466. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/dockerignore.tmpl +0 -0
  467. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/env.example.tmpl +0 -0
  468. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/gitignore.tmpl +0 -0
  469. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/main.py.tmpl +0 -0
  470. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/pyproject.toml.tmpl +0 -0
  471. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/__init__.py.tmpl +0 -0
  472. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/api/__init__.py.tmpl +0 -0
  473. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/api/app.py.tmpl +0 -0
  474. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/__init__.py.tmpl +0 -0
  475. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/auth.py.tmpl +0 -0
  476. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/resources.py.tmpl +0 -0
  477. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/__init__.py.tmpl +0 -0
  478. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/__init__.py.tmpl +0 -0
  479. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/core/__init__.py.tmpl +0 -0
  480. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/core/exceptions.py.tmpl +0 -0
  481. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/core/settings.py.tmpl +0 -0
  482. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/db/__init__.py.tmpl +0 -0
  483. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/__init__.py.tmpl +0 -0
  484. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/names.py.tmpl +0 -0
  485. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/__init__.py.tmpl +0 -0
  486. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/user.py.tmpl +0 -0
  487. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/db/repositories/__init__.py.tmpl +0 -0
  488. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/__init__.py.tmpl +0 -0
  489. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/server.py.tmpl +0 -0
  490. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/services/__init__.py.tmpl +0 -0
  491. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/src/utils/__init__.py.tmpl +0 -0
  492. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/tests/__init__.py.tmpl +0 -0
  493. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/_templates/tests/test_smoke.py.tmpl +0 -0
  494. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/commands.py +0 -0
  495. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/config.py +0 -0
  496. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/docker_compose.py +0 -0
  497. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/generate.py +0 -0
  498. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/lint.py +0 -0
  499. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/model.py +0 -0
  500. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/new.py +0 -0
  501. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/openapi_errors.py +0 -0
  502. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/openapi_fix.py +0 -0
  503. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/pdf.py +0 -0
  504. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/permissions.py +0 -0
  505. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/pr_prompt.py +0 -0
  506. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/src_layers.py +0 -0
  507. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/cli/voice.py +0 -0
  508. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/controllers/__init__.py +0 -0
  509. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/controllers/base.py +0 -0
  510. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/core/__init__.py +0 -0
  511. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/core/context.py +0 -0
  512. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/core/enums.py +0 -0
  513. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/core/logging.py +0 -0
  514. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/core/typed.py +0 -0
  515. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/__init__.py +0 -0
  516. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/_alembic_templates/__init__.py +0 -0
  517. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/_alembic_templates/env.py.template +0 -0
  518. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/alembic_hooks.py +0 -0
  519. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/audit.py +0 -0
  520. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/backup.py +0 -0
  521. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/connection.py +0 -0
  522. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/datetime_type.py +0 -0
  523. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/device_token_model.py +0 -0
  524. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/enum_migrations.py +0 -0
  525. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/enums.py +0 -0
  526. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/explain.py +0 -0
  527. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/expressions.py +0 -0
  528. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/integrity.py +0 -0
  529. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/migrations.py +0 -0
  530. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/mixins.py +0 -0
  531. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/model.py +0 -0
  532. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/outbox.py +0 -0
  533. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/repository.py +0 -0
  534. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/search.py +0 -0
  535. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/signals.py +0 -0
  536. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/slow_query.py +0 -0
  537. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/tenant.py +0 -0
  538. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/transaction.py +0 -0
  539. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/user_model.py +0 -0
  540. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/user_oauth_account_model.py +0 -0
  541. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/user_recovery_code_model.py +0 -0
  542. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/user_refresh_token_model.py +0 -0
  543. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/user_token_model.py +0 -0
  544. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/user_webauthn_credential_model.py +0 -0
  545. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/voice_profile_model.py +0 -0
  546. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/db/webpush_subscription_model.py +0 -0
  547. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/__init__.py +0 -0
  548. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/base.py +0 -0
  549. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/conflict.py +0 -0
  550. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/factories.py +0 -0
  551. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/forbidden.py +0 -0
  552. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/i18n.py +0 -0
  553. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/jwt.py +0 -0
  554. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/not_found.py +0 -0
  555. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/oauth.py +0 -0
  556. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/too_many_requests.py +0 -0
  557. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/unauthorized.py +0 -0
  558. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/upload.py +0 -0
  559. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/validation.py +0 -0
  560. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/exceptions/value_errors.py +0 -0
  561. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/faces/__init__.py +0 -0
  562. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/faces/detector.py +0 -0
  563. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/faces/geometry.py +0 -0
  564. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/faces/models.py +0 -0
  565. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/faces/recognizer.py +0 -0
  566. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/faces/schemas.py +0 -0
  567. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/flags/__init__.py +0 -0
  568. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/flags/backends.py +0 -0
  569. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/flags/dependencies.py +0 -0
  570. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/flags/service.py +0 -0
  571. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/__init__.py +0 -0
  572. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/admin.py +0 -0
  573. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/__init__.py +0 -0
  574. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/conversation.py +0 -0
  575. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/diarization.py +0 -0
  576. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/language.py +0 -0
  577. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/profiles.py +0 -0
  578. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/router.py +0 -0
  579. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/schemas.py +0 -0
  580. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/speaker_count.py +0 -0
  581. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/stt.py +0 -0
  582. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/tts.py +0 -0
  583. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/audio/voiceprint.py +0 -0
  584. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/batching.py +0 -0
  585. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/catalog.py +0 -0
  586. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/embeddings.py +0 -0
  587. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/generation_cache.py +0 -0
  588. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/hardware.py +0 -0
  589. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/hub.py +0 -0
  590. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/image.py +0 -0
  591. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/inventory.py +0 -0
  592. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/metrics.py +0 -0
  593. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/moderation.py +0 -0
  594. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/ollama.py +0 -0
  595. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/onnx_embed.py +0 -0
  596. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/openai_compat.py +0 -0
  597. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/pipeline.py +0 -0
  598. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/__init__.py +0 -0
  599. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/chroma.py +0 -0
  600. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/chunking.py +0 -0
  601. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/context.py +0 -0
  602. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/extract.py +0 -0
  603. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/fusion.py +0 -0
  604. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/hybrid.py +0 -0
  605. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/pdf.py +0 -0
  606. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/rerank.py +0 -0
  607. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/retriever.py +0 -0
  608. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/schemas.py +0 -0
  609. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/search.py +0 -0
  610. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/rag/vectorstore.py +0 -0
  611. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/registry.py +0 -0
  612. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/router.py +0 -0
  613. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/schemas.py +0 -0
  614. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/structured.py +0 -0
  615. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/text.py +0 -0
  616. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/tokens.py +0 -0
  617. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/tracing.py +0 -0
  618. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/usage.py +0 -0
  619. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/genai/vision_text.py +0 -0
  620. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/__init__.py +0 -0
  621. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/br.py +0 -0
  622. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/db.py +0 -0
  623. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/distance.py +0 -0
  624. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/enums.py +0 -0
  625. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/estimate.py +0 -0
  626. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/geocoding.py +0 -0
  627. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/geometry.py +0 -0
  628. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/polyline.py +0 -0
  629. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/routing.py +0 -0
  630. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/geo/schemas.py +0 -0
  631. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/__init__.py +0 -0
  632. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/bridge.py +0 -0
  633. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/config.py +0 -0
  634. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/exceptions.py +0 -0
  635. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/paths.py +0 -0
  636. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/router.py +0 -0
  637. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/schemas.py +0 -0
  638. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/hostbridge/shell.py +0 -0
  639. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/CLAUDE.md +0 -0
  640. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/__init__.py +0 -0
  641. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/messaging/__init__.py +0 -0
  642. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/messaging/zap/__init__.py +0 -0
  643. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/messaging/zap/client.py +0 -0
  644. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/messaging/zap/schemas.py +0 -0
  645. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/__init__.py +0 -0
  646. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/schemas.py +0 -0
  647. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/stream.py +0 -0
  648. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/__init__.py +0 -0
  649. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/adapters/__init__.py +0 -0
  650. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/adapters/openpix.py +0 -0
  651. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/base.py +0 -0
  652. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/__init__.py +0 -0
  653. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/client.py +0 -0
  654. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/environment.py +0 -0
  655. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/events.py +0 -0
  656. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/money.py +0 -0
  657. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/pix.py +0 -0
  658. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/schemas.py +0 -0
  659. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/webhooks.py +0 -0
  660. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/openpix/__init__.py +0 -0
  661. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/openpix/client.py +0 -0
  662. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/openpix/environment.py +0 -0
  663. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/openpix/events.py +0 -0
  664. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/openpix/money.py +0 -0
  665. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/openpix/schemas.py +0 -0
  666. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/openpix/webhooks.py +0 -0
  667. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/stripe/__init__.py +0 -0
  668. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/stripe/client.py +0 -0
  669. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/stripe/environment.py +0 -0
  670. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/stripe/events.py +0 -0
  671. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/stripe/money.py +0 -0
  672. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/stripe/schemas.py +0 -0
  673. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/integrations/payment/stripe/webhooks.py +0 -0
  674. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/__init__.py +0 -0
  675. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/_fs.py +0 -0
  676. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/bench.py +0 -0
  677. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/compact.py +0 -0
  678. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/compose.py +0 -0
  679. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/edge.py +0 -0
  680. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/energy.py +0 -0
  681. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/export.py +0 -0
  682. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/monitoring.py +0 -0
  683. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/pickled.py +0 -0
  684. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/quantize.py +0 -0
  685. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/ranking.py +0 -0
  686. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/router.py +0 -0
  687. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/schemas.py +0 -0
  688. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/serving.py +0 -0
  689. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/sklearn.py +0 -0
  690. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/modelops/static.py +0 -0
  691. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/__init__.py +0 -0
  692. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/emit_client.py +0 -0
  693. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/emit_schemas.py +0 -0
  694. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/generate.py +0 -0
  695. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/ir.py +0 -0
  696. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/loader.py +0 -0
  697. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/naming.py +0 -0
  698. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/parse.py +0 -0
  699. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/openapi/source.py +0 -0
  700. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/__init__.py +0 -0
  701. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/assets.py +0 -0
  702. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/documents.py +0 -0
  703. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/formatting.py +0 -0
  704. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/pages.py +0 -0
  705. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/reader.py +0 -0
  706. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/renderer.py +0 -0
  707. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/router.py +0 -0
  708. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/_base.html +0 -0
  709. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/_party.html +0 -0
  710. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/_styles.css +0 -0
  711. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/contract.html +0 -0
  712. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/quote.html +0 -0
  713. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/receipt.html +0 -0
  714. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/report.html +0 -0
  715. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/pdf/templates/voucher.html +0 -0
  716. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/__init__.py +0 -0
  717. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/dispatcher.py +0 -0
  718. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/router.py +0 -0
  719. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/schemas.py +0 -0
  720. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/service.py +0 -0
  721. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/transports/__init__.py +0 -0
  722. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/transports/fcm.py +0 -0
  723. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/push/transports/webpush.py +0 -0
  724. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/py.typed +0 -0
  725. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/__init__.py +0 -0
  726. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/broker.py +0 -0
  727. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/consumer.py +0 -0
  728. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/dedup.py +0 -0
  729. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/manager.py +0 -0
  730. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/publisher.py +0 -0
  731. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/reliability.py +0 -0
  732. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/topology.py +0 -0
  733. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/queue/tracing.py +0 -0
  734. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/reviews/__init__.py +0 -0
  735. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/reviews/models.py +0 -0
  736. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/reviews/router.py +0 -0
  737. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/reviews/schemas.py +0 -0
  738. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/reviews/service.py +0 -0
  739. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/schemas/__init__.py +0 -0
  740. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/schemas/base.py +0 -0
  741. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/schemas/errors.py +0 -0
  742. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/schemas/link_headers.py +0 -0
  743. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/schemas/logs.py +0 -0
  744. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/schemas/pagination.py +0 -0
  745. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/schemas/response.py +0 -0
  746. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/services/__init__.py +0 -0
  747. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/services/base.py +0 -0
  748. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/services/file_mixin.py +0 -0
  749. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sessions/__init__.py +0 -0
  750. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sessions/dependencies.py +0 -0
  751. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sessions/middleware.py +0 -0
  752. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sessions/router.py +0 -0
  753. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sessions/schemas.py +0 -0
  754. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sessions/service.py +0 -0
  755. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sessions/store.py +0 -0
  756. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/settings/__init__.py +0 -0
  757. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/settings/base.py +0 -0
  758. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/settings/mixins.py +0 -0
  759. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/spreadsheet/__init__.py +0 -0
  760. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/spreadsheet/formats.py +0 -0
  761. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/spreadsheet/styles.py +0 -0
  762. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/spreadsheet/writer.py +0 -0
  763. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sse/__init__.py +0 -0
  764. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sse/broker.py +0 -0
  765. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/sse/event_stream.py +0 -0
  766. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ssr/__init__.py +0 -0
  767. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ssr/_static/htmx.min.js +0 -0
  768. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ssr/assets.py +0 -0
  769. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ssr/attributes.py +0 -0
  770. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ssr/page.py +0 -0
  771. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ssr/response.py +0 -0
  772. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ssr/webapp.py +0 -0
  773. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/storage/__init__.py +0 -0
  774. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/storage/minio_client.py +0 -0
  775. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/__init__.py +0 -0
  776. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/cancellation.py +0 -0
  777. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/cron.py +0 -0
  778. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/dead_letter.py +0 -0
  779. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/jobs.py +0 -0
  780. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/lock.py +0 -0
  781. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/manager.py +0 -0
  782. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/observability.py +0 -0
  783. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/oop.py +0 -0
  784. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/progress.py +0 -0
  785. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/queue.py +0 -0
  786. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/scheduler.py +0 -0
  787. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/tasks/stages.py +0 -0
  788. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/__init__.py +0 -0
  789. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/database.py +0 -0
  790. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/factories.py +0 -0
  791. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/__init__.py +0 -0
  792. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/_control.py +0 -0
  793. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/email.py +0 -0
  794. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/genai.py +0 -0
  795. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/geo.py +0 -0
  796. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/payment.py +0 -0
  797. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/push.py +0 -0
  798. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/testing/fakes/search.py +0 -0
  799. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/__init__.py +0 -0
  800. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/_core.py +0 -0
  801. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/__init__.py +0 -0
  802. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/alert.py +0 -0
  803. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/card.py +0 -0
  804. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/classes.py +0 -0
  805. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/empty.py +0 -0
  806. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/nav.py +0 -0
  807. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/pagination.py +0 -0
  808. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/styles.py +0 -0
  809. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/components/table.py +0 -0
  810. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/css/__init__.py +0 -0
  811. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/css/router.py +0 -0
  812. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/css/rules.py +0 -0
  813. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/css/tokens.py +0 -0
  814. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/forms/__init__.py +0 -0
  815. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/forms/introspect.py +0 -0
  816. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/forms/parse.py +0 -0
  817. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/forms/render.py +0 -0
  818. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/forms/spec.py +0 -0
  819. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/forms/styles.py +0 -0
  820. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/layout/__init__.py +0 -0
  821. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/layout/grid.py +0 -0
  822. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/layout/shell.py +0 -0
  823. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/pages/__init__.py +0 -0
  824. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/pages/page.py +0 -0
  825. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/ui/stylesheet.py +0 -0
  826. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/__init__.py +0 -0
  827. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/client_ip.py +0 -0
  828. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/currency.py +0 -0
  829. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/data/br_locations.json +0 -0
  830. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/datetime.py +0 -0
  831. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/dict.py +0 -0
  832. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/download.py +0 -0
  833. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/email.py +0 -0
  834. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/fields.py +0 -0
  835. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/file_store.py +0 -0
  836. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/forms.py +0 -0
  837. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/http_client.py +0 -0
  838. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/jwt.py +0 -0
  839. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/locations.py +0 -0
  840. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/log.py +0 -0
  841. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/metrics.py +0 -0
  842. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/naming.py +0 -0
  843. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/opaque_token.py +0 -0
  844. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/password.py +0 -0
  845. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/regex.py +0 -0
  846. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/retry.py +0 -0
  847. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/storage_backends.py +0 -0
  848. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/throttle.py +0 -0
  849. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/token_types.py +0 -0
  850. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/totp.py +0 -0
  851. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/utils/upload.py +0 -0
  852. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/vision/__init__.py +0 -0
  853. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/vision/mapping.py +0 -0
  854. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/vision/router.py +0 -0
  855. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/vision/schemas.py +0 -0
  856. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/webpush/__init__.py +0 -0
  857. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/webpush/dispatcher.py +0 -0
  858. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/webpush/router.py +0 -0
  859. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/webpush/schemas.py +0 -0
  860. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/webpush/service.py +0 -0
  861. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/websockets/__init__.py +0 -0
  862. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/websockets/heartbeat.py +0 -0
  863. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/websockets/hub.py +0 -0
  864. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/websockets/router.py +0 -0
  865. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tempest_fastapi_sdk/websockets/schemas.py +0 -0
  866. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/CLAUDE.md +0 -0
  867. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/__init__.py +0 -0
  868. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/__init__.py +0 -0
  869. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_actions.py +0 -0
  870. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_audit_viewer.py +0 -0
  871. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_auth.py +0 -0
  872. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_autocomplete_fk.py +0 -0
  873. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_csv_import.py +0 -0
  874. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_dashboard_cards.py +0 -0
  875. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_discovery.py +0 -0
  876. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_display_timezone.py +0 -0
  877. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_form_error_rollback.py +0 -0
  878. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_forms.py +0 -0
  879. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_inlines.py +0 -0
  880. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_lenses.py +0 -0
  881. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_logs_nav.py +0 -0
  882. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_logs_traceback_export.py +0 -0
  883. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_mfa.py +0 -0
  884. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_password_field.py +0 -0
  885. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_rbac.py +0 -0
  886. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_rich_filters.py +0 -0
  887. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_router.py +0 -0
  888. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_site.py +0 -0
  889. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_sql_shell.py +0 -0
  890. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_sql_shell_page.py +0 -0
  891. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_tasks_panel.py +0 -0
  892. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_theme.py +0 -0
  893. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_upload_field.py +0 -0
  894. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_user_model.py +0 -0
  895. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/admin/test_widgets_json_time.py +0 -0
  896. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/__init__.py +0 -0
  897. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_agent.py +0 -0
  898. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_agent_router.py +0 -0
  899. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_builtin_tools.py +0 -0
  900. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_fact_stores.py +0 -0
  901. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_memory.py +0 -0
  902. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_multi_agent.py +0 -0
  903. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_skills.py +0 -0
  904. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/agents/test_typed_tools.py +0 -0
  905. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/__init__.py +0 -0
  906. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_access_log.py +0 -0
  907. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_body_size.py +0 -0
  908. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_business_metrics.py +0 -0
  909. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_client_error_envelope.py +0 -0
  910. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_cookies.py +0 -0
  911. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_cors.py +0 -0
  912. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_csrf.py +0 -0
  913. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_dependencies_auth.py +0 -0
  914. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_error_docs.py +0 -0
  915. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_error_field.py +0 -0
  916. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_graceful.py +0 -0
  917. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_handlers.py +0 -0
  918. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_health_router.py +0 -0
  919. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_honeypot.py +0 -0
  920. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_idempotency.py +0 -0
  921. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_jwt_dependency.py +0 -0
  922. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_logs_router.py +0 -0
  923. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_middleware_exempt_semantics.py +0 -0
  924. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_oauth.py +0 -0
  925. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_outbound_webhooks.py +0 -0
  926. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_prometheus.py +0 -0
  927. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_quota.py +0 -0
  928. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_rate_limit.py +0 -0
  929. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_rate_limit_envelope.py +0 -0
  930. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_rate_limit_extras.py +0 -0
  931. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_rate_limit_fail_open.py +0 -0
  932. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_rate_limit_redis_proxy.py +0 -0
  933. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_request_id_middleware.py +0 -0
  934. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_response_cache.py +0 -0
  935. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_role_dependency.py +0 -0
  936. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_server.py +0 -0
  937. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_server_error_notify.py +0 -0
  938. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_spa.py +0 -0
  939. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_static.py +0 -0
  940. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_streaming_passthrough.py +0 -0
  941. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_token_type_strict.py +0 -0
  942. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_tool_spec.py +0 -0
  943. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_tracing.py +0 -0
  944. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_validation_envelope.py +0 -0
  945. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_webhooks.py +0 -0
  946. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/api/test_webhooks_rsa.py +0 -0
  947. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/app_errors/__init__.py +0 -0
  948. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/app_errors/test_app_errors.py +0 -0
  949. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/artifacts/__init__.py +0 -0
  950. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/artifacts/support.py +0 -0
  951. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/artifacts/test_actions.py +0 -0
  952. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/artifacts/test_digest.py +0 -0
  953. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/artifacts/test_registry.py +0 -0
  954. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/asyncapi/__init__.py +0 -0
  955. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/asyncapi/conftest.py +0 -0
  956. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/asyncapi/test_generate.py +0 -0
  957. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/asyncapi/test_loader.py +0 -0
  958. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/asyncapi/test_parse.py +0 -0
  959. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/__init__.py +0 -0
  960. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_cookie_delivery.py +0 -0
  961. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_email_change.py +0 -0
  962. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_expire_on_commit.py +0 -0
  963. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_firebase.py +0 -0
  964. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_guards.py +0 -0
  965. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_introspection.py +0 -0
  966. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_locale.py +0 -0
  967. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_me.py +0 -0
  968. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_mfa.py +0 -0
  969. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_oauth_login.py +0 -0
  970. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_oauth_token_login.py +0 -0
  971. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_refresh.py +0 -0
  972. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_refresh_db.py +0 -0
  973. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_router_session_sharing.py +0 -0
  974. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_service.py +0 -0
  975. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_signup_extension.py +0 -0
  976. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_signup_mounting.py +0 -0
  977. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_token_supersede.py +0 -0
  978. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/test_webauthn.py +0 -0
  979. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/auth/webauthn_authenticator.py +0 -0
  980. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/authz/__init__.py +0 -0
  981. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/authz/test_dependencies.py +0 -0
  982. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/authz/test_permissions.py +0 -0
  983. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/authz/test_requires.py +0 -0
  984. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cache/__init__.py +0 -0
  985. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cache/test_decorator.py +0 -0
  986. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cache/test_invalidation.py +0 -0
  987. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cache/test_redis_manager.py +0 -0
  988. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/chat/__init__.py +0 -0
  989. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/chat/test_chat.py +0 -0
  990. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/chat/test_messenger.py +0 -0
  991. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/chat/test_messenger_router.py +0 -0
  992. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/checks/__init__.py +0 -0
  993. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/checks/test_check_config_cli.py +0 -0
  994. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/checks/test_checks.py +0 -0
  995. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/__init__.py +0 -0
  996. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_config.py +0 -0
  997. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_db_alembic_errors.py +0 -0
  998. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_db_resolution.py +0 -0
  999. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_db_seed.py +0 -0
  1000. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_docker_compose.py +0 -0
  1001. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_dockerfile_spa.py +0 -0
  1002. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_generate.py +0 -0
  1003. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_main.py +0 -0
  1004. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_management_commands.py +0 -0
  1005. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_model.py +0 -0
  1006. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_openapi_errors.py +0 -0
  1007. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_openapi_errors_bare_calls.py +0 -0
  1008. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_openapi_errors_callgraph.py +0 -0
  1009. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_openapi_errors_configured.py +0 -0
  1010. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_openapi_errors_delegation.py +0 -0
  1011. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_openapi_fix.py +0 -0
  1012. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_permissions.py +0 -0
  1013. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_project_claude_md.py +0 -0
  1014. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_quality_gate_integration.py +0 -0
  1015. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_scaffold_placeholders.py +0 -0
  1016. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/cli/test_scaffold_runtime.py +0 -0
  1017. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/conftest.py +0 -0
  1018. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/controllers/__init__.py +0 -0
  1019. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/controllers/test_base.py +0 -0
  1020. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/controllers/test_generic_bounds.py +0 -0
  1021. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/core/__init__.py +0 -0
  1022. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/core/test_context.py +0 -0
  1023. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/core/test_enums.py +0 -0
  1024. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/core/test_logging.py +0 -0
  1025. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/core/test_typed.py +0 -0
  1026. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/__init__.py +0 -0
  1027. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_alembic_hooks.py +0 -0
  1028. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_audit.py +0 -0
  1029. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_backup.py +0 -0
  1030. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_bulk_ops.py +0 -0
  1031. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_connection.py +0 -0
  1032. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_cursor_types.py +0 -0
  1033. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_eager_load.py +0 -0
  1034. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_enum_column.py +0 -0
  1035. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_enum_migrations.py +0 -0
  1036. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_explain.py +0 -0
  1037. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_expressions.py +0 -0
  1038. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_integrity.py +0 -0
  1039. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_integrity_live.py +0 -0
  1040. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_migrations.py +0 -0
  1041. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_mixins.py +0 -0
  1042. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_model.py +0 -0
  1043. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_none_filter_is_null.py +0 -0
  1044. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_outbox.py +0 -0
  1045. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_repository.py +0 -0
  1046. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_repository_conflict_exceptions.py +0 -0
  1047. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_safe_upgrade.py +0 -0
  1048. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_schema_sync.py +0 -0
  1049. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_search.py +0 -0
  1050. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_signals.py +0 -0
  1051. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_slow_query.py +0 -0
  1052. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_sqlite_wal.py +0 -0
  1053. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_tenant.py +0 -0
  1054. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_transaction.py +0 -0
  1055. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/db/test_utc_datetime.py +0 -0
  1056. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/exceptions/__init__.py +0 -0
  1057. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/exceptions/test_exceptions.py +0 -0
  1058. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/exceptions/test_factories.py +0 -0
  1059. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/exceptions/test_i18n.py +0 -0
  1060. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/exceptions/test_inherited_code_warning.py +0 -0
  1061. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/exceptions/test_value_error_codes.py +0 -0
  1062. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/faces/__init__.py +0 -0
  1063. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/faces/test_faces.py +0 -0
  1064. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/flags/__init__.py +0 -0
  1065. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/flags/test_flags.py +0 -0
  1066. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/__init__.py +0 -0
  1067. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/_eval/__init__.py +0 -0
  1068. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/_eval/corpus.py +0 -0
  1069. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/__init__.py +0 -0
  1070. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_audio.py +0 -0
  1071. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_audio_runtime_extra.py +0 -0
  1072. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_concurrency.py +0 -0
  1073. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_diarization.py +0 -0
  1074. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_language.py +0 -0
  1075. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_profiles.py +0 -0
  1076. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_speaker_count.py +0 -0
  1077. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_stt_loading.py +0 -0
  1078. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/audio/test_voice_router.py +0 -0
  1079. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/conftest.py +0 -0
  1080. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_batching.py +0 -0
  1081. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_chat_memory.py +0 -0
  1082. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_embedding_cache_redis.py +0 -0
  1083. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_embeddings.py +0 -0
  1084. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_env_defaults.py +0 -0
  1085. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_eval_harness.py +0 -0
  1086. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_genai_metrics.py +0 -0
  1087. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_genai_observability.py +0 -0
  1088. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_generation_cache.py +0 -0
  1089. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_generation_config.py +0 -0
  1090. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_gpu_validation.py +0 -0
  1091. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_hardware.py +0 -0
  1092. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_hub.py +0 -0
  1093. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_hybrid.py +0 -0
  1094. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_image.py +0 -0
  1095. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_inventory.py +0 -0
  1096. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_moderation.py +0 -0
  1097. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_ollama.py +0 -0
  1098. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_onnx_embed.py +0 -0
  1099. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_openai_compat.py +0 -0
  1100. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_pipeline.py +0 -0
  1101. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_pipeline_integration.py +0 -0
  1102. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_precision_kwarg.py +0 -0
  1103. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_rag.py +0 -0
  1104. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_refinements.py +0 -0
  1105. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_rerank.py +0 -0
  1106. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_router.py +0 -0
  1107. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_structured.py +0 -0
  1108. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_structured_extraction.py +0 -0
  1109. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_structured_parity.py +0 -0
  1110. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_structured_retry.py +0 -0
  1111. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_text.py +0 -0
  1112. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_textgen_embed_metrics.py +0 -0
  1113. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_tokens.py +0 -0
  1114. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_tracing.py +0 -0
  1115. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_usage.py +0 -0
  1116. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_usage_cache_hit.py +0 -0
  1117. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_vectorstore.py +0 -0
  1118. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/genai/test_vision_text.py +0 -0
  1119. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/__init__.py +0 -0
  1120. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_br.py +0 -0
  1121. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_db.py +0 -0
  1122. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_distance.py +0 -0
  1123. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_estimate.py +0 -0
  1124. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_geocoding.py +0 -0
  1125. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_geometry.py +0 -0
  1126. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_polyline.py +0 -0
  1127. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_routing.py +0 -0
  1128. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/geo/test_routing_extra.py +0 -0
  1129. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/__init__.py +0 -0
  1130. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/conftest.py +0 -0
  1131. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/test_bridge_files.py +0 -0
  1132. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/test_bridge_host.py +0 -0
  1133. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/test_messages.py +0 -0
  1134. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/test_paths.py +0 -0
  1135. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/test_router.py +0 -0
  1136. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/hostbridge/test_shell.py +0 -0
  1137. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/__init__.py +0 -0
  1138. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/messaging/__init__.py +0 -0
  1139. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/messaging/zap/__init__.py +0 -0
  1140. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/messaging/zap/test_generated_drift.py +0 -0
  1141. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/messaging/zap_ws/__init__.py +0 -0
  1142. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/messaging/zap_ws/test_generated_drift.py +0 -0
  1143. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/__init__.py +0 -0
  1144. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/adapters/__init__.py +0 -0
  1145. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/adapters/test_openpix_adapter.py +0 -0
  1146. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/adapters/test_openpix_adapter_wire.py +0 -0
  1147. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/mercado_pago/__init__.py +0 -0
  1148. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/mercado_pago/test_generated_drift.py +0 -0
  1149. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/mercado_pago/test_mercado_pago.py +0 -0
  1150. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/mercado_pago/test_overlay.py +0 -0
  1151. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/mercado_pago/test_pix.py +0 -0
  1152. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/mercado_pago/test_provenance.py +0 -0
  1153. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/mercado_pago/test_sdk_coverage.py +0 -0
  1154. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/openpix/__init__.py +0 -0
  1155. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/openpix/test_generated_drift.py +0 -0
  1156. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/openpix/test_openpix.py +0 -0
  1157. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/openpix/test_overlay.py +0 -0
  1158. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/openpix/test_real_payload_shapes.py +0 -0
  1159. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/openpix/test_request_body_shape.py +0 -0
  1160. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/openpix/test_spec_type_conflicts.py +0 -0
  1161. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/stripe/__init__.py +0 -0
  1162. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/stripe/test_client.py +0 -0
  1163. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/stripe/test_generated_drift.py +0 -0
  1164. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/stripe/test_money.py +0 -0
  1165. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/stripe/test_webhooks.py +0 -0
  1166. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/integrations/payment/test_contract.py +0 -0
  1167. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/__init__.py +0 -0
  1168. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/conftest.py +0 -0
  1169. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_bench.py +0 -0
  1170. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_compact.py +0 -0
  1171. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_compose.py +0 -0
  1172. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_edge.py +0 -0
  1173. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_energy.py +0 -0
  1174. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_export.py +0 -0
  1175. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_monitoring.py +0 -0
  1176. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_pickled.py +0 -0
  1177. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_quantize.py +0 -0
  1178. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_ranking.py +0 -0
  1179. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_serving.py +0 -0
  1180. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_sklearn_export.py +0 -0
  1181. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/modelops/test_static.py +0 -0
  1182. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/__init__.py +0 -0
  1183. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/conftest.py +0 -0
  1184. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_divergent_success.py +0 -0
  1185. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_form_bodies.py +0 -0
  1186. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_generate.py +0 -0
  1187. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_hostile_spec.py +0 -0
  1188. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_loader.py +0 -0
  1189. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_multipart_bodies.py +0 -0
  1190. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_naming.py +0 -0
  1191. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_nested_capture.py +0 -0
  1192. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_parse.py +0 -0
  1193. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_payload_arrays.py +0 -0
  1194. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/openapi/test_raw_responses.py +0 -0
  1195. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/pdf/__init__.py +0 -0
  1196. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/pdf/test_assets.py +0 -0
  1197. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/pdf/test_formatting.py +0 -0
  1198. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/pdf/test_pages.py +0 -0
  1199. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/pdf/test_reader.py +0 -0
  1200. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/pdf/test_renderer.py +0 -0
  1201. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/pdf/test_router_and_cli.py +0 -0
  1202. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/push/__init__.py +0 -0
  1203. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/push/test_router.py +0 -0
  1204. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/push/test_service.py +0 -0
  1205. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/push/test_transports.py +0 -0
  1206. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/__init__.py +0 -0
  1207. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_broker.py +0 -0
  1208. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_consumer.py +0 -0
  1209. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_dedup.py +0 -0
  1210. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_manager.py +0 -0
  1211. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_prefetch.py +0 -0
  1212. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_publisher.py +0 -0
  1213. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_reliability.py +0 -0
  1214. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_topology.py +0 -0
  1215. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/queue/test_tracing.py +0 -0
  1216. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/reviews/__init__.py +0 -0
  1217. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/reviews/test_reviews.py +0 -0
  1218. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/schemas/__init__.py +0 -0
  1219. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/schemas/test_base.py +0 -0
  1220. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/schemas/test_cursor_pagination.py +0 -0
  1221. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/schemas/test_errors.py +0 -0
  1222. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/schemas/test_link_headers.py +0 -0
  1223. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/schemas/test_pagination.py +0 -0
  1224. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/schemas/test_response.py +0 -0
  1225. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/services/__init__.py +0 -0
  1226. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/services/test_base.py +0 -0
  1227. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/services/test_file_mixin.py +0 -0
  1228. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/sessions/__init__.py +0 -0
  1229. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/sessions/test_sessions.py +0 -0
  1230. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/settings/__init__.py +0 -0
  1231. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/settings/test_base.py +0 -0
  1232. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/settings/test_mixins.py +0 -0
  1233. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/spreadsheet/__init__.py +0 -0
  1234. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/spreadsheet/test_formats.py +0 -0
  1235. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/spreadsheet/test_writer.py +0 -0
  1236. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/sse/__init__.py +0 -0
  1237. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/sse/test_broker.py +0 -0
  1238. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/sse/test_event_stream.py +0 -0
  1239. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ssr/__init__.py +0 -0
  1240. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ssr/test_attributes.py +0 -0
  1241. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ssr/test_integration.py +0 -0
  1242. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ssr/test_page.py +0 -0
  1243. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ssr/test_response.py +0 -0
  1244. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ssr/test_web_app_theme.py +0 -0
  1245. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ssr/test_webapp.py +0 -0
  1246. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/storage/__init__.py +0 -0
  1247. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/storage/test_minio_client.py +0 -0
  1248. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/__init__.py +0 -0
  1249. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_cancellation.py +0 -0
  1250. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_cron.py +0 -0
  1251. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_dead_letter.py +0 -0
  1252. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_jobs.py +0 -0
  1253. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_jobs_cancellation.py +0 -0
  1254. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_manager.py +0 -0
  1255. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_observability.py +0 -0
  1256. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_oop.py +0 -0
  1257. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_progress.py +0 -0
  1258. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_queue.py +0 -0
  1259. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_queue_from_settings.py +0 -0
  1260. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_queue_lifecycle_hooks.py +0 -0
  1261. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_scheduler.py +0 -0
  1262. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_scheduler_lease.py +0 -0
  1263. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/tasks/test_stages.py +0 -0
  1264. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_agent_docs_guard.py +0 -0
  1265. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_alias_guard.py +0 -0
  1266. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_constraint_shape_guard.py +0 -0
  1267. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docs_api_guard.py +0 -0
  1268. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docs_examples_compile.py +0 -0
  1269. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docs_examples_names.py +0 -0
  1270. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docs_method_guard.py +0 -0
  1271. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docs_organization.py +0 -0
  1272. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docs_type_guard.py +0 -0
  1273. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_docstring_example_guard.py +0 -0
  1274. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_enum_schema_guard.py +0 -0
  1275. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_i18n_coverage_guard.py +0 -0
  1276. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_kwargs_guard.py +0 -0
  1277. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_llmstxt.py +0 -0
  1278. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_lock_version_guard.py +0 -0
  1279. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_protocol_shape_guard.py +0 -0
  1280. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_pydantic_error_types_guard.py +0 -0
  1281. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_pydantic_mypy_guard.py +0 -0
  1282. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_reexport_guard.py +0 -0
  1283. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_reference_coverage.py +0 -0
  1284. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_schedule_projection_guard.py +0 -0
  1285. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_sdist_payload.py +0 -0
  1286. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_settings_passthrough_guard.py +0 -0
  1287. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_testclient_httpx2_guard.py +0 -0
  1288. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_vacuous_guard.py +0 -0
  1289. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_version_agreement.py +0 -0
  1290. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/test_wheel_payload.py +0 -0
  1291. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/testing/__init__.py +0 -0
  1292. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/testing/test_database.py +0 -0
  1293. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/testing/test_factories.py +0 -0
  1294. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/testing/test_fakes_behaviour.py +0 -0
  1295. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/testing/test_fakes_contract.py +0 -0
  1296. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/__init__.py +0 -0
  1297. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_components.py +0 -0
  1298. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_core_contract.py +0 -0
  1299. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_css.py +0 -0
  1300. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_css_router.py +0 -0
  1301. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_forms_introspect.py +0 -0
  1302. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_forms_parse.py +0 -0
  1303. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_forms_render.py +0 -0
  1304. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_integration.py +0 -0
  1305. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_layout_and_pages.py +0 -0
  1306. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/ui/test_stylesheet.py +0 -0
  1307. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/__init__.py +0 -0
  1308. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_client_ip.py +0 -0
  1309. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_currency.py +0 -0
  1310. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_datetime.py +0 -0
  1311. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_dict.py +0 -0
  1312. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_download.py +0 -0
  1313. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_email.py +0 -0
  1314. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_fields.py +0 -0
  1315. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_file_store.py +0 -0
  1316. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_forms.py +0 -0
  1317. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_http_client.py +0 -0
  1318. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_jwt.py +0 -0
  1319. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_lazy_extras.py +0 -0
  1320. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_locations.py +0 -0
  1321. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_log.py +0 -0
  1322. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_metrics.py +0 -0
  1323. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_opaque_token.py +0 -0
  1324. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_password.py +0 -0
  1325. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_regex.py +0 -0
  1326. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_retry.py +0 -0
  1327. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_storage_backends.py +0 -0
  1328. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_throttle.py +0 -0
  1329. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_token_types.py +0 -0
  1330. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_upload.py +0 -0
  1331. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/utils/test_upload_signature_policy.py +0 -0
  1332. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/vision/__init__.py +0 -0
  1333. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/vision/test_detect_classify.py +0 -0
  1334. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/vision/test_router.py +0 -0
  1335. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/vision/test_vision.py +0 -0
  1336. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/webpush/__init__.py +0 -0
  1337. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/webpush/test_dispatcher.py +0 -0
  1338. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/webpush/test_router.py +0 -0
  1339. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/webpush/test_schemas.py +0 -0
  1340. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/webpush/test_service.py +0 -0
  1341. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/websockets/__init__.py +0 -0
  1342. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/websockets/test_heartbeat.py +0 -0
  1343. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/tests/websockets/test_hub_and_router.py +0 -0
  1344. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/PROVENANCE.md +0 -0
  1345. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/mercadopago-evidence.md +0 -0
  1346. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/mercadopago-openapi.yaml +0 -0
  1347. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/openpix-evidence.md +0 -0
  1348. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/openpix-openapi.json +0 -0
  1349. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/stripe-api-facts.yaml +0 -0
  1350. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/zap-asyncapi.yaml +0 -0
  1351. {tempest_fastapi_sdk-0.294.0 → tempest_fastapi_sdk-0.296.0}/vendor/zap-openapi.yaml +0 -0
@@ -5,6 +5,189 @@ All notable changes to **tempest-fastapi-sdk** are listed below.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.296.0] — 2026-09-22
9
+
10
+ O `500` de uma exceção não tratada saía **fora** do `CORSMiddleware`. O
11
+ navegador descartava a resposta, e o front via só `TypeError: Failed to
12
+ fetch` — sem status, sem `code`, sem `X-Request-ID`. O scaffold do
13
+ `tempest new` gerava exatamente essa pilha (#287).
14
+
15
+ ### Fixed
16
+
17
+ - **O envelope de 500 passa pela pilha de middleware.** O Starlette
18
+ executa o handler de `Exception` no `ServerErrorMiddleware`, a camada
19
+ mais externa, então o envelope nunca voltava por `CORSMiddleware` nem
20
+ por `RequestIDMiddleware`. Medido antes da correção, com `RequestID` +
21
+ `apply_cors` + `register_exception_handlers` na ordem do template: `500`
22
+ sem `Access-Control-Allow-Origin`, sem `X-Request-ID` e com `details: {}`.
23
+ Agora `register_exception_handlers` instala também o
24
+ `ErrorEnvelopeMiddleware` como o middleware de usuário **mais interno**
25
+ (`append` em `user_middleware`, enquanto `add_middleware` sempre insere
26
+ no índice 0), e o mesmo `500` sai com o header de CORS, com o
27
+ `X-Request-ID` e com `details.request_id` igual ao header — **em
28
+ qualquer ordem** das três chamadas, e por isso o template não precisou
29
+ mudar. A camada não decide CORS: origem fora da allowlist continua sem
30
+ header no 500. O handler de `Exception` continua registrado para a
31
+ exceção levantada por um middleware, que a camada interna não vê.
32
+ Medido no Starlette 0.46.0 (o piso que `fastapi>=0.141.1` aceita) e no
33
+ 1.6.0.
34
+
35
+ ### Added
36
+
37
+ - **`ErrorEnvelopeMiddleware`** (e o alias `ErrorEnvelopeHandler`, em
38
+ `tempest_fastapi_sdk.api.middlewares`), para quem monta a pilha à mão
39
+ com um handler próprio.
40
+
41
+ ### Changed
42
+
43
+ - **`register_exception_handlers` levanta `RuntimeError` numa aplicação
44
+ que já montou a pilha** (já serviu requisição ou subiu). Antes a
45
+ chamada tardia registrava handlers que o Starlette nunca lia; agora
46
+ falha em vez de parecer funcionar, e falha antes de registrar qualquer
47
+ handler, então a aplicação recusada fica intocada. Chamar duas vezes
48
+ instala a camada
49
+ uma vez só, com o handler da segunda chamada.
50
+ - A exceção **continua sendo re-levantada** depois do envelope, como o
51
+ `ServerErrorMiddleware` já fazia: o servidor ASGI segue logando, e um
52
+ `TestClient` com o default `raise_server_exceptions=True` segue
53
+ levantando no teste do consumidor. Falha depois de a resposta começar
54
+ (stream quebrado no meio) é re-levantada sem segunda resposta.
55
+ - **Stream quebrado no meio passa a chegar ao `on_server_error`.** O
56
+ callback vai como `BackgroundTask` da resposta de erro, e uma resposta
57
+ que nunca é enviada nunca roda a background: medido antes, a falha era
58
+ logada e o `on_server_error` não disparava nenhuma vez. Agora a camada
59
+ interna roda a background da resposta que o handler construiu, e o
60
+ callback dispara uma vez, com o log também uma vez.
61
+
62
+ ## [0.295.0] — 2026-09-19
63
+
64
+ A CLI sabia **criar** serviço e rodar os gates. Não sabia **operar** o
65
+ serviço que já existe: nada listava as rotas servidas, nada exportava o
66
+ contrato, nada conectava nas dependências, e mexer em flag, cache, fila,
67
+ sessão ou bucket era `redis-cli`, script descartável ou SQL na mão.
68
+
69
+ ### Added
70
+
71
+ - **`tempest secrets generate|init|vapid`.** O grupo só sabia
72
+ `rotate`. `generate` imprime N segredos (crus, `KEY=value` com
73
+ `--keys`, ou JSON) e **não escreve arquivo nenhum** — é o que se pipa
74
+ num secret manager; `--count` junto de `--keys` é erro de uso, porque
75
+ os dois dizem a mesma coisa. `init` preenche só as chaves ausentes,
76
+ vazias ou ainda com o placeholder `change-me-change-me-change-me-32`
77
+ que o `tempest new` escreve (os valores que o `check_secrets` reporta
78
+ como `security.W001`/`W004`), mantém toda chave já configurada e
79
+ portanto é idempotente; `--force` substitui valor real e faz backup
80
+ antes. `vapid` gera o par P-256 do Web Push no formato que o
81
+ `WebPushSettings` e o `pywebpush` leem — escalar de 32 bytes e ponto
82
+ não-comprimido de 65, base64url sem padding — e **recusa sobrescrever
83
+ um par existente sem `--force`**, porque trocar o par invalida toda
84
+ subscrição ativa de browser. O formato não foi deduzido: a chave
85
+ privada é lida de volta por `py_vapid.Vapid02` e assina um header no
86
+ teste.
87
+
88
+ - **`tempest routes`.** Lista toda rota efetiva, com router montado
89
+ expandido. Lê `fastapi.routing.iter_route_contexts` — a mesma
90
+ expansão que o gerador de OpenAPI percorre — porque desde o FastAPI
91
+ 0.141.1 o `include_router` guarda uma entrada `_IncludedRouter` e uma
92
+ compreensão sobre `app.routes` não lista **nenhum** path do router
93
+ incluído. Rota fora do schema aparece com `SCHEMA=no`, e a coluna
94
+ `GUARDS` nomeia as dependências herdadas do `include_router`, não só
95
+ as declaradas na rota.
96
+
97
+ - **`tempest openapi-export [--check]`.** Escreve o documento OpenAPI do
98
+ próprio serviço (JSON, ou YAML com o extra `[openapi]`) sem subir
99
+ nada. `--check` compara com o arquivo commitado e **nomeia** o que
100
+ mudou (`+ DELETE /x`, `- GET /y`, `~ /z changed`), saindo 1 — "a spec
101
+ mudou" não é mensagem revisável.
102
+
103
+ - **`tempest db check`.** Roda a comparação de autogenerate do Alembic e
104
+ sai 1 listando as operações que uma revision conteria. O
105
+ `revision --autogenerate` grava o diff quando alguém pede; nada
106
+ percebia quando ninguém pediu.
107
+
108
+ - **`tempest serve` e `tempest shell`.** O `serve` entrega ao uvicorn a
109
+ **string** de import, nunca o objeto — o reloader reimporta no
110
+ processo filho, e passar a instância transforma `--reload` em nada, em
111
+ silêncio. `--reload` tem três estados, então `--no-reload` desliga de
112
+ verdade um `SERVER_RELOAD=true`; junto de `--workers` sai 2. O `shell`
113
+ abre um REPL com `settings`, cada model mapeado **que o projeto
114
+ define** (a `BaseModel` do SDK fica de fora), `select`, `text` e uma
115
+ `session` aberta; compila com `ast.PyCF_ALLOW_TOP_LEVEL_AWAIT` e roda
116
+ a corrotina **no loop em que a sessão foi aberta** — um helper
117
+ `run(coro)` pareceria equivalente e levantaria `MissingGreenlet` no
118
+ primeiro lazy load.
119
+
120
+ - **`tempest doctor`.** O `check-config` lê as settings e não abre
121
+ socket; este conecta de verdade em banco, Redis, RabbitMQ, SMTP e
122
+ MinIO, dobra o registry de checagens estáticas e sai 1 em qualquer
123
+ falha, servindo de smoke test de deploy. Capacidade não configurada
124
+ aparece como `skip`, **nunca** `ok` — e default de mixin conta como
125
+ não configurado (`SMTP_HOST=localhost`, `MINIO_ENDPOINT=localhost:9000`),
126
+ comparado contra `model_fields[campo].default`, a régua do
127
+ `check_secrets`.
128
+
129
+ - **`tempest user show|activate|deactivate|sessions|delete`.** O `show`
130
+ imprime toda coluna mapeada com o `hashed_password` redigido.
131
+ `deactivate` revoga os refresh tokens **na mesma transação** que o
132
+ flag, porque `is_active=False` sozinho não encerra nada. `sessions`
133
+ lista (ou revoga com `--revoke`, contando só o que aquela execução
134
+ matou); usuário sem sessão sai 0. `delete` apaga os refresh tokens
135
+ antes da linha do usuário — a FK scaffoldada não tem
136
+ `ON DELETE CASCADE`, então a ordem óbvia falharia citando uma
137
+ constraint em vez da causa — e exige `--yes` fora de um TTY.
138
+
139
+ - **`tempest flags` e `tempest cache`.** `flags list/get/enable/disable`
140
+ falam pelo `RedisFeatureFlagBackend`; `get` separa `unset` (código 1,
141
+ o serviço cai no default do chamador) de um `off` guardado (código 0).
142
+ `cache ping/stats/flush` usa o `CacheInvalidator` nas opções
143
+ direcionadas; `--all` é `FLUSHDB` e exige `--yes`, porque o banco
144
+ costuma guardar também sessão, contador de rate limit e as flags
145
+ acima.
146
+
147
+ - **`tempest email test` e `tempest storage`.** O `email test` manda uma
148
+ mensagem por `EmailUtils(**settings.email_kwargs())` e, na recusa, sai
149
+ 1 com a resposta do servidor mais a linha que lembra o par que mais
150
+ custa tempo: 587 quer STARTTLS (`SMTP_USE_TLS`), 465 quer TLS
151
+ implícito (`SMTP_USE_SSL`). O `storage check/ls/put/get/presign/rm`
152
+ dirige o `AsyncMinIOClient(**settings.minio_kwargs())`, endpoint
153
+ público incluído — o `presign` diz no `stderr` para qual host assinou,
154
+ porque URL assinada contra `minio:9000` é válida e inútil no browser.
155
+
156
+ - **`tempest queue` e `tempest tasks`.** `queue publish` conecta,
157
+ publica e **fecha**, nessa ordem, num processo só; `queue handlers`
158
+ lista os canais consumidos, importando os módulos de handler antes,
159
+ porque subscriber só existe no broker depois do import. `tasks list`
160
+ imprime o nome que o TaskIQ registra (`<módulo>:<função>`), que não é
161
+ o nome no arquivo e é o que o `run` recebe; `tasks run` **enfileira**,
162
+ e diz isso — quem executa é o worker.
163
+
164
+ - **`tempest integrations list|verify`.** `list` mostra os clientes que
165
+ o SDK ships e se este projeto tem a credencial; `verify` faz a leitura
166
+ autenticada mais barata de cada provedor (OpenPix `GET /company`,
167
+ Mercado Pago `GET /users/me`), que não move dinheiro nem cria
168
+ registro. Como isso é tabela mantida à mão sobre cliente gerado, um
169
+ guard assere que cada método nomeado ainda existe e não exige
170
+ argumento — ele já pagou por si: o campo é `MERCADOPAGO_ACCESS_TOKEN`,
171
+ não `MERCADO_PAGO_ACCESS_TOKEN`.
172
+
173
+ - **`tempest agents tools|run`.** `tools` lista as ferramentas sem
174
+ chamar modelo nenhum (zero token, funciona sem credencial de backend).
175
+ `run` segue `AgentRun.succeeded` no código de saída, não "não levantou
176
+ exceção": run cortado pelo orçamento ainda devolve texto, e tratar
177
+ esse texto como resposta é o erro que o comando se recusa a cometer
178
+ pelo chamador.
179
+
180
+ ### Changed
181
+
182
+ - `tempest secrets rotate` passou a usar o mesmo helper de backup dos
183
+ comandos novos; comportamento inalterado (backup antes de reescrever,
184
+ `0600` no arquivo e no `.bak`).
185
+ - `tempest_fastapi_sdk/cli/project.py` centraliza a resolução de
186
+ projeto usada pelos comandos novos: app FastAPI (por spec ou pelos
187
+ lugares scaffoldados, reportando **cada** tentativa com a causa),
188
+ instância de settings por tipo sob `src`/`app`, e URL de Redis
189
+ (`--redis-url` > `REDIS_URL` > settings).
190
+
8
191
  ## [0.294.0] — 2026-09-19
9
192
 
10
193
  Um assistente local que roda dentro do WSL precisa agir na máquina que o
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: tempest-fastapi-sdk
3
- Version: 0.294.0
3
+ Version: 0.296.0
4
4
  Summary: Shared FastAPI building blocks: base schemas, ORM model, async repository, exceptions, pagination and settings — the conventions used across Tempest projects.
5
5
  Project-URL: Homepage, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
6
6
  Project-URL: Repository, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
@@ -4082,6 +4082,28 @@ tempest check # lint + fmt-check + type + test
4082
4082
 
4083
4083
  Every command returns the underlying tool's exit code, so `tempest check` is safe to wire into CI (`tempest check || exit 1`) or pre-commit hooks. When neither the executable nor `uv` is on `PATH`, the wrapper prints `error: '<tool>' is not on PATH and 'uv' is unavailable` and exits with `127` instead of failing silently.
4084
4084
 
4085
+ #### Diagnostics — `tempest doctor`
4086
+
4087
+ ```bash
4088
+ tempest doctor # one line per dependency, real connections
4089
+ tempest doctor --json # for deployment health checks
4090
+ tempest doctor --timeout 2 # tighten each network probe
4091
+ ```
4092
+
4093
+ `check-config` reads the settings; `doctor` connects. It probes the database, Redis, RabbitMQ, SMTP and MinIO, folds in the static check registry, and exits `1` when anything failed. A capability the project never configured reads `skip`, never `ok` — and a mixin default (`SMTP_HOST=localhost`, `MINIO_ENDPOINT=localhost:9000`) counts as unconfigured, compared against `model_fields[field].default` the way `check_secrets` does it.
4094
+
4095
+ #### Run and inspect — `tempest serve` / `tempest shell`
4096
+
4097
+ ```bash
4098
+ tempest serve # host/port/reload from the project's settings
4099
+ tempest serve --reload --port 9000 # override for this run
4100
+ tempest serve --workers 4 # several processes (refused with --reload)
4101
+ tempest shell # async REPL: settings, models, open session
4102
+ tempest shell --no-db # skip the database connection
4103
+ ```
4104
+
4105
+ `tempest serve` hands uvicorn the import *string* (`src.server:app`), which is what keeps `--reload` working, and resolves host/port/reload the way `run_server` does: flag > project settings > SDK default. `tempest shell` opens a console with `settings`, every mapped model the project defines, `select`, `text` and an already-open `session`; it compiles with `ast.PyCF_ALLOW_TOP_LEVEL_AWAIT` and runs coroutines on the loop that session belongs to, so `await session.execute(...)` works at the prompt instead of raising `MissingGreenlet`.
4106
+
4085
4107
  #### Database — `tempest db`
4086
4108
 
4087
4109
  Alembic wrapper backed by `AlembicHelper`. Reads `DATABASE_URL` from `--database-url` > env var > `src.core.settings.settings.DATABASE_URL` > `alembic.ini`.
@@ -4094,6 +4116,7 @@ tempest db upgrade # alembic upgrade head
4094
4116
  tempest db upgrade <rev> # upgrade to a specific revision
4095
4117
  tempest db downgrade # roll back one step
4096
4118
  tempest db current # print the applied revision
4119
+ tempest db check # exit 1 when models drifted from the tree
4097
4120
  tempest db history -v # revisions newest → oldest, verbose
4098
4121
  tempest db stamp head # mark the DB without running migrations
4099
4122
  tempest db squash -m "init" --yes # collapse history into 1 migration
@@ -4111,15 +4134,71 @@ tempest db seed --seed src.db.fixtures:demo # custom seed callable
4111
4134
 
4112
4135
  #### Secrets — `tempest secrets`
4113
4136
 
4114
- Generates and rotates application secrets (`JWT_SECRET` / `TOKEN_SECRET` by default), rewriting the matching `.env` lines in place after a `.env.bak` backup; `--print` writes nothing and emits the values to stdout.
4137
+ Four commands, ordered by how much they touch your `.env`: `generate` never writes, `init` fills only what is unset, `rotate` always replaces, and `vapid` mints the Web Push key pair.
4115
4138
 
4116
4139
  ```bash
4140
+ tempest secrets generate # one value on stdout, nothing written
4141
+ tempest secrets generate --count 3 # three of them
4142
+ tempest secrets generate --keys JWT_SECRET --json # JSON, for a secret manager
4143
+ tempest secrets init # fill the keys `tempest new` left unset
4144
+ tempest secrets init --force # replace real values too (backs up first)
4117
4145
  tempest secrets rotate # rotate JWT_SECRET + TOKEN_SECRET in .env
4118
4146
  tempest secrets rotate --print # just print, write nothing
4119
4147
  tempest secrets rotate --keys JWT_SECRET,SESSION_SECRET --env .env.prod
4120
4148
  tempest secrets rotate --length 64 --no-backup
4149
+ tempest secrets vapid --subject mailto:ops@example.com # Web Push key pair
4121
4150
  ```
4122
4151
 
4152
+ `tempest secrets init` treats a key as unset when it is missing, empty, or still carries the `change-me` placeholder `tempest new` writes — the values `tempest check-config` reports as `security.W001` / `security.W004` — and keeps every configured key, so it is safe to re-run. `tempest secrets vapid` writes `VAPID_PUBLIC_KEY` / `VAPID_PRIVATE_KEY` in the shape `WebPushSettings` and `pywebpush` read (32-byte scalar, 65-byte uncompressed point, base64url), and refuses to overwrite an existing pair without `--force`, because replacing it invalidates every active browser subscription.
4153
+
4154
+ #### Integrations and agents — `tempest integrations` / `tempest agents`
4155
+
4156
+ ```bash
4157
+ tempest integrations list # bundled clients + credential state
4158
+ tempest integrations verify openpix # one real authenticated read
4159
+ tempest agents tools --agent src.agents:agent # tools, with no model call
4160
+ tempest agents run "summarise the report" --agent src.agents:agent --trace
4161
+ ```
4162
+
4163
+ `integrations verify` builds the client from `settings.<provider>_kwargs()` and calls the cheapest authenticated read each API offers (OpenPix `GET /company`, Mercado Pago `GET /users/me`) — a guard asserts those methods still exist on the generated clients and take no argument, so an upstream rename fails a test rather than an operator's terminal. `agents tools` spends no token; `agents run` exits `1` when the run was cut short by its budget, because a truncated run still returns text and treating it as an answer is the mistake worth refusing.
4164
+
4165
+ #### Queue and tasks — `tempest queue` / `tempest tasks`
4166
+
4167
+ ```bash
4168
+ tempest queue publish orders.paid '{"order_id": 7}' --json
4169
+ tempest queue handlers # channels this service consumes
4170
+ tempest tasks list # registered task names
4171
+ tempest tasks run src.tasks:send_welcome --arg ana@example.com --kwarg retries=2
4172
+ ```
4173
+
4174
+ `queue publish` connects, publishes and closes in one process, so the message is flushed before the command returns. `tasks list` imports the job modules first — a task exists on the broker only once its module has been imported — and prints the name TaskIQ registers (`<module>:<function>`), which is the name `run` takes. `run` enqueues; the worker executes, so success means the message was accepted, not that the job passed. Both default to the scaffolded `<root>.queue:broker` and `<root>.tasks:tq`.
4175
+
4176
+ #### Email and object store — `tempest email` / `tempest storage`
4177
+
4178
+ ```bash
4179
+ tempest email test --to you@example.com # send through the project's SMTP settings
4180
+ tempest storage check # endpoint reachable, bucket present
4181
+ tempest storage ls reports/ # keys under a prefix
4182
+ tempest storage put ./note.pdf --key notes/2026-09.pdf
4183
+ tempest storage presign notes/2026-09.pdf --expires 900
4184
+ ```
4185
+
4186
+ `email test` builds `EmailUtils(**settings.email_kwargs())`, so a message that arrives came through the same path the app uses; a refusal exits `1` with the server's reply and a reminder that port 587 wants `SMTP_USE_TLS` (STARTTLS) while 465 wants `SMTP_USE_SSL`. `storage` uses `AsyncMinIOClient(**settings.minio_kwargs())`, including the public endpoint — `presign` reports on stderr which host it signed for, because a URL signed against `minio:9000` is valid and unusable from a browser.
4187
+
4188
+ #### Feature flags and cache — `tempest flags` / `tempest cache`
4189
+
4190
+ ```bash
4191
+ tempest flags list # everything the Redis backend holds
4192
+ tempest flags enable new-checkout # on, for every process reading it
4193
+ tempest flags get new-checkout # exit 1 when unset, 0 when stored
4194
+ tempest cache ping # PONG, or exit 1
4195
+ tempest cache stats # version, keys, memory, hit ratio
4196
+ tempest cache flush --namespace orders # invalidate what @cached registered
4197
+ tempest cache flush --all --yes # FLUSHDB (deletes non-cache keys too)
4198
+ ```
4199
+
4200
+ Both resolve the URL from `--redis-url` > `REDIS_URL` > the project's settings, and both speak through the SDK's own classes — `RedisFeatureFlagBackend` and `CacheInvalidator` — so the CLI writes what the service reads. `flags get` separates `unset` (exit 1, the service falls back to the caller's default) from a stored `off` (exit 0). `cache flush --all` is `FLUSHDB` and needs `--yes`, because sessions, rate-limit counters and flags usually share that database.
4201
+
4123
4202
  #### Users — `tempest user`
4124
4203
 
4125
4204
  Seeds or lists users via the project's concrete `UserModel` (default `src.db.models:UserModel`). Bootstraps the first admin row so `/admin` login works without manual SQL.
@@ -4135,14 +4214,34 @@ tempest user set-password --email ana@example.com # prompt, hash, revoke ses
4135
4214
  tempest user set-password --email ana@example.com --keep-sessions
4136
4215
  tempest user list # everyone
4137
4216
  tempest user list --admin # admins only
4217
+ tempest user show --email ana@example.com # the whole row (hash redacted)
4218
+ tempest user deactivate --email ana@example.com # is_active=False + revoke sessions
4219
+ tempest user activate --email ana@example.com # back on
4220
+ tempest user sessions --email ana@example.com # list refresh tokens
4221
+ tempest user sessions --email ana@example.com --revoke
4222
+ tempest user delete --email ana@example.com --yes # irreversible, removes the tokens too
4138
4223
  ```
4139
4224
 
4225
+ `show` redacts `hashed_password` — no question it answers needs the hash, and printing one puts a credential in terminal scrollback and CI logs. `deactivate` revokes the user's refresh tokens in the same transaction as the flag, because `is_active=False` on its own leaves an issued token exchangeable. `sessions` lists one line per token and exits `0` on a user with none; `--revoke` reports how many *that run* killed. `delete` deletes the refresh-token rows first (the scaffolded FK has no `ON DELETE CASCADE`) and requires `--yes` outside a TTY.
4226
+
4140
4227
  When `tempest user create` runs in an interactive terminal **without** `--admin`/`--no-admin`, it asks `Should this user be an administrator? [y/N]`. Non-interactive runs (CI, pipes) skip the prompt and create a regular user. `promote` / `revoke` look the user up by email (case-insensitive) and exit `1` with `no user found` when nothing matches.
4141
4228
 
4142
4229
  `tempest user set-password` replaces an existing user's password, hashing with the model's own `set_password`. Because changing the hash does not end a session on its own, it also revokes the user's DB-backed refresh tokens **in the same transaction** — resolving `src.db.models:UserRefreshTokenModel` by default, `--refresh-token-model` for a table elsewhere, `--keep-sessions` to opt out. Every path reports which of the two happened. From code, the same revocation is `await service.revoke_user_sessions(session, user_id=user.id)`.
4143
4230
 
4144
4231
  Both `create` and `set-password` validate the plaintext with `check_password_policy` against the project's `AUTH_PASSWORD_*` settings (or the `PasswordPolicy` defaults: 12 characters minimum, 72 **bytes** maximum — the unit bcrypt counts), so the CLI accepts exactly the passwords `signup` and the admin panel accept.
4145
4232
 
4233
+ #### Routes and contract — `tempest routes` / `tempest openapi-export`
4234
+
4235
+ ```bash
4236
+ tempest routes # every route, mounted routers included
4237
+ tempest routes --match /api/orders --method post # filtered
4238
+ tempest routes --json # machine-readable
4239
+ tempest openapi-export --out contracts/openapi.json # write this service's own spec
4240
+ tempest openapi-export --out contracts/openapi.json --check # exit 1 when it drifted
4241
+ ```
4242
+
4243
+ `tempest routes` reads the effective paths from FastAPI's own route expansion, so a router mounted with `include_router` is listed (a comprehension over `app.routes` lists none of its paths since FastAPI 0.141.1), and routes kept out of the schema — HTML pages, internal endpoints — are listed with `SCHEMA=no` next to the dependencies guarding them. `tempest openapi-export` writes the document `openapi-client` (or any other generator) consumes without booting the service; `--check` compares it against the committed file and names the operations that moved, which is the CI guard against an undeclared contract change. Both take `--app module:attr` when the app does not sit at one of the scaffolded locations.
4244
+
4146
4245
  #### Generate artifacts in an existing project — `tempest generate`
4147
4246
 
4148
4247
  ```bash
@@ -3879,6 +3879,28 @@ tempest check # lint + fmt-check + type + test
3879
3879
 
3880
3880
  Every command returns the underlying tool's exit code, so `tempest check` is safe to wire into CI (`tempest check || exit 1`) or pre-commit hooks. When neither the executable nor `uv` is on `PATH`, the wrapper prints `error: '<tool>' is not on PATH and 'uv' is unavailable` and exits with `127` instead of failing silently.
3881
3881
 
3882
+ #### Diagnostics — `tempest doctor`
3883
+
3884
+ ```bash
3885
+ tempest doctor # one line per dependency, real connections
3886
+ tempest doctor --json # for deployment health checks
3887
+ tempest doctor --timeout 2 # tighten each network probe
3888
+ ```
3889
+
3890
+ `check-config` reads the settings; `doctor` connects. It probes the database, Redis, RabbitMQ, SMTP and MinIO, folds in the static check registry, and exits `1` when anything failed. A capability the project never configured reads `skip`, never `ok` — and a mixin default (`SMTP_HOST=localhost`, `MINIO_ENDPOINT=localhost:9000`) counts as unconfigured, compared against `model_fields[field].default` the way `check_secrets` does it.
3891
+
3892
+ #### Run and inspect — `tempest serve` / `tempest shell`
3893
+
3894
+ ```bash
3895
+ tempest serve # host/port/reload from the project's settings
3896
+ tempest serve --reload --port 9000 # override for this run
3897
+ tempest serve --workers 4 # several processes (refused with --reload)
3898
+ tempest shell # async REPL: settings, models, open session
3899
+ tempest shell --no-db # skip the database connection
3900
+ ```
3901
+
3902
+ `tempest serve` hands uvicorn the import *string* (`src.server:app`), which is what keeps `--reload` working, and resolves host/port/reload the way `run_server` does: flag > project settings > SDK default. `tempest shell` opens a console with `settings`, every mapped model the project defines, `select`, `text` and an already-open `session`; it compiles with `ast.PyCF_ALLOW_TOP_LEVEL_AWAIT` and runs coroutines on the loop that session belongs to, so `await session.execute(...)` works at the prompt instead of raising `MissingGreenlet`.
3903
+
3882
3904
  #### Database — `tempest db`
3883
3905
 
3884
3906
  Alembic wrapper backed by `AlembicHelper`. Reads `DATABASE_URL` from `--database-url` > env var > `src.core.settings.settings.DATABASE_URL` > `alembic.ini`.
@@ -3891,6 +3913,7 @@ tempest db upgrade # alembic upgrade head
3891
3913
  tempest db upgrade <rev> # upgrade to a specific revision
3892
3914
  tempest db downgrade # roll back one step
3893
3915
  tempest db current # print the applied revision
3916
+ tempest db check # exit 1 when models drifted from the tree
3894
3917
  tempest db history -v # revisions newest → oldest, verbose
3895
3918
  tempest db stamp head # mark the DB without running migrations
3896
3919
  tempest db squash -m "init" --yes # collapse history into 1 migration
@@ -3908,15 +3931,71 @@ tempest db seed --seed src.db.fixtures:demo # custom seed callable
3908
3931
 
3909
3932
  #### Secrets — `tempest secrets`
3910
3933
 
3911
- Generates and rotates application secrets (`JWT_SECRET` / `TOKEN_SECRET` by default), rewriting the matching `.env` lines in place after a `.env.bak` backup; `--print` writes nothing and emits the values to stdout.
3934
+ Four commands, ordered by how much they touch your `.env`: `generate` never writes, `init` fills only what is unset, `rotate` always replaces, and `vapid` mints the Web Push key pair.
3912
3935
 
3913
3936
  ```bash
3937
+ tempest secrets generate # one value on stdout, nothing written
3938
+ tempest secrets generate --count 3 # three of them
3939
+ tempest secrets generate --keys JWT_SECRET --json # JSON, for a secret manager
3940
+ tempest secrets init # fill the keys `tempest new` left unset
3941
+ tempest secrets init --force # replace real values too (backs up first)
3914
3942
  tempest secrets rotate # rotate JWT_SECRET + TOKEN_SECRET in .env
3915
3943
  tempest secrets rotate --print # just print, write nothing
3916
3944
  tempest secrets rotate --keys JWT_SECRET,SESSION_SECRET --env .env.prod
3917
3945
  tempest secrets rotate --length 64 --no-backup
3946
+ tempest secrets vapid --subject mailto:ops@example.com # Web Push key pair
3918
3947
  ```
3919
3948
 
3949
+ `tempest secrets init` treats a key as unset when it is missing, empty, or still carries the `change-me` placeholder `tempest new` writes — the values `tempest check-config` reports as `security.W001` / `security.W004` — and keeps every configured key, so it is safe to re-run. `tempest secrets vapid` writes `VAPID_PUBLIC_KEY` / `VAPID_PRIVATE_KEY` in the shape `WebPushSettings` and `pywebpush` read (32-byte scalar, 65-byte uncompressed point, base64url), and refuses to overwrite an existing pair without `--force`, because replacing it invalidates every active browser subscription.
3950
+
3951
+ #### Integrations and agents — `tempest integrations` / `tempest agents`
3952
+
3953
+ ```bash
3954
+ tempest integrations list # bundled clients + credential state
3955
+ tempest integrations verify openpix # one real authenticated read
3956
+ tempest agents tools --agent src.agents:agent # tools, with no model call
3957
+ tempest agents run "summarise the report" --agent src.agents:agent --trace
3958
+ ```
3959
+
3960
+ `integrations verify` builds the client from `settings.<provider>_kwargs()` and calls the cheapest authenticated read each API offers (OpenPix `GET /company`, Mercado Pago `GET /users/me`) — a guard asserts those methods still exist on the generated clients and take no argument, so an upstream rename fails a test rather than an operator's terminal. `agents tools` spends no token; `agents run` exits `1` when the run was cut short by its budget, because a truncated run still returns text and treating it as an answer is the mistake worth refusing.
3961
+
3962
+ #### Queue and tasks — `tempest queue` / `tempest tasks`
3963
+
3964
+ ```bash
3965
+ tempest queue publish orders.paid '{"order_id": 7}' --json
3966
+ tempest queue handlers # channels this service consumes
3967
+ tempest tasks list # registered task names
3968
+ tempest tasks run src.tasks:send_welcome --arg ana@example.com --kwarg retries=2
3969
+ ```
3970
+
3971
+ `queue publish` connects, publishes and closes in one process, so the message is flushed before the command returns. `tasks list` imports the job modules first — a task exists on the broker only once its module has been imported — and prints the name TaskIQ registers (`<module>:<function>`), which is the name `run` takes. `run` enqueues; the worker executes, so success means the message was accepted, not that the job passed. Both default to the scaffolded `<root>.queue:broker` and `<root>.tasks:tq`.
3972
+
3973
+ #### Email and object store — `tempest email` / `tempest storage`
3974
+
3975
+ ```bash
3976
+ tempest email test --to you@example.com # send through the project's SMTP settings
3977
+ tempest storage check # endpoint reachable, bucket present
3978
+ tempest storage ls reports/ # keys under a prefix
3979
+ tempest storage put ./note.pdf --key notes/2026-09.pdf
3980
+ tempest storage presign notes/2026-09.pdf --expires 900
3981
+ ```
3982
+
3983
+ `email test` builds `EmailUtils(**settings.email_kwargs())`, so a message that arrives came through the same path the app uses; a refusal exits `1` with the server's reply and a reminder that port 587 wants `SMTP_USE_TLS` (STARTTLS) while 465 wants `SMTP_USE_SSL`. `storage` uses `AsyncMinIOClient(**settings.minio_kwargs())`, including the public endpoint — `presign` reports on stderr which host it signed for, because a URL signed against `minio:9000` is valid and unusable from a browser.
3984
+
3985
+ #### Feature flags and cache — `tempest flags` / `tempest cache`
3986
+
3987
+ ```bash
3988
+ tempest flags list # everything the Redis backend holds
3989
+ tempest flags enable new-checkout # on, for every process reading it
3990
+ tempest flags get new-checkout # exit 1 when unset, 0 when stored
3991
+ tempest cache ping # PONG, or exit 1
3992
+ tempest cache stats # version, keys, memory, hit ratio
3993
+ tempest cache flush --namespace orders # invalidate what @cached registered
3994
+ tempest cache flush --all --yes # FLUSHDB (deletes non-cache keys too)
3995
+ ```
3996
+
3997
+ Both resolve the URL from `--redis-url` > `REDIS_URL` > the project's settings, and both speak through the SDK's own classes — `RedisFeatureFlagBackend` and `CacheInvalidator` — so the CLI writes what the service reads. `flags get` separates `unset` (exit 1, the service falls back to the caller's default) from a stored `off` (exit 0). `cache flush --all` is `FLUSHDB` and needs `--yes`, because sessions, rate-limit counters and flags usually share that database.
3998
+
3920
3999
  #### Users — `tempest user`
3921
4000
 
3922
4001
  Seeds or lists users via the project's concrete `UserModel` (default `src.db.models:UserModel`). Bootstraps the first admin row so `/admin` login works without manual SQL.
@@ -3932,14 +4011,34 @@ tempest user set-password --email ana@example.com # prompt, hash, revoke ses
3932
4011
  tempest user set-password --email ana@example.com --keep-sessions
3933
4012
  tempest user list # everyone
3934
4013
  tempest user list --admin # admins only
4014
+ tempest user show --email ana@example.com # the whole row (hash redacted)
4015
+ tempest user deactivate --email ana@example.com # is_active=False + revoke sessions
4016
+ tempest user activate --email ana@example.com # back on
4017
+ tempest user sessions --email ana@example.com # list refresh tokens
4018
+ tempest user sessions --email ana@example.com --revoke
4019
+ tempest user delete --email ana@example.com --yes # irreversible, removes the tokens too
3935
4020
  ```
3936
4021
 
4022
+ `show` redacts `hashed_password` — no question it answers needs the hash, and printing one puts a credential in terminal scrollback and CI logs. `deactivate` revokes the user's refresh tokens in the same transaction as the flag, because `is_active=False` on its own leaves an issued token exchangeable. `sessions` lists one line per token and exits `0` on a user with none; `--revoke` reports how many *that run* killed. `delete` deletes the refresh-token rows first (the scaffolded FK has no `ON DELETE CASCADE`) and requires `--yes` outside a TTY.
4023
+
3937
4024
  When `tempest user create` runs in an interactive terminal **without** `--admin`/`--no-admin`, it asks `Should this user be an administrator? [y/N]`. Non-interactive runs (CI, pipes) skip the prompt and create a regular user. `promote` / `revoke` look the user up by email (case-insensitive) and exit `1` with `no user found` when nothing matches.
3938
4025
 
3939
4026
  `tempest user set-password` replaces an existing user's password, hashing with the model's own `set_password`. Because changing the hash does not end a session on its own, it also revokes the user's DB-backed refresh tokens **in the same transaction** — resolving `src.db.models:UserRefreshTokenModel` by default, `--refresh-token-model` for a table elsewhere, `--keep-sessions` to opt out. Every path reports which of the two happened. From code, the same revocation is `await service.revoke_user_sessions(session, user_id=user.id)`.
3940
4027
 
3941
4028
  Both `create` and `set-password` validate the plaintext with `check_password_policy` against the project's `AUTH_PASSWORD_*` settings (or the `PasswordPolicy` defaults: 12 characters minimum, 72 **bytes** maximum — the unit bcrypt counts), so the CLI accepts exactly the passwords `signup` and the admin panel accept.
3942
4029
 
4030
+ #### Routes and contract — `tempest routes` / `tempest openapi-export`
4031
+
4032
+ ```bash
4033
+ tempest routes # every route, mounted routers included
4034
+ tempest routes --match /api/orders --method post # filtered
4035
+ tempest routes --json # machine-readable
4036
+ tempest openapi-export --out contracts/openapi.json # write this service's own spec
4037
+ tempest openapi-export --out contracts/openapi.json --check # exit 1 when it drifted
4038
+ ```
4039
+
4040
+ `tempest routes` reads the effective paths from FastAPI's own route expansion, so a router mounted with `include_router` is listed (a comprehension over `app.routes` lists none of its paths since FastAPI 0.141.1), and routes kept out of the schema — HTML pages, internal endpoints — are listed with `SCHEMA=no` next to the dependencies guarding them. `tempest openapi-export` writes the document `openapi-client` (or any other generator) consumes without booting the service; `--check` compares it against the committed file and names the operations that moved, which is the CI guard against an undeclared contract change. Both take `--app module:attr` when the app does not sit at one of the scaffolded locations.
4041
+
3943
4042
  #### Generate artifacts in an existing project — `tempest generate`
3944
4043
 
3945
4044
  ```bash
@@ -1700,10 +1700,35 @@ The SDK currently covers (Sep 2025+, post-v0.31.x):
1700
1700
  default, and both it and `create` validate the plaintext with
1701
1701
  `check_password_policy` against the project's own `AUTH_PASSWORD_*`
1702
1702
  settings),
1703
- `tempest secrets rotate`,
1703
+ `tempest secrets generate/init/rotate/vapid` (**v0.294.0**: `generate`
1704
+ prints without writing, `init` fills only missing/empty/`change-me`
1705
+ keys and is idempotent, `vapid` mints the Web Push P-256 pair and
1706
+ refuses to replace one without `--force`),
1704
1707
  `tempest model analyze/bench/optimize/quantize/export-ort/hardware/
1705
1708
  pull/cache-list/cache-rm`,
1706
1709
  `tempest pdf list/schema/render`,
1710
+ **Operating an existing service (v0.294.0)** — `tempest routes` (every
1711
+ effective route, mounted routers expanded via
1712
+ `fastapi.routing.iter_route_contexts`, schema-excluded routes listed
1713
+ with their guards), `tempest openapi-export [--check]` (this service's
1714
+ own document; `--check` names the operations added/removed/changed),
1715
+ `tempest db check` (Alembic autogenerate drift, exit 1),
1716
+ `tempest serve` / `tempest shell` (uvicorn with the project's
1717
+ resolution; async REPL with settings, the project's own models and an
1718
+ open session, top-level `await` on that session's loop),
1719
+ `tempest doctor` (real connections to database/Redis/RabbitMQ/SMTP/
1720
+ MinIO plus the check registry; unconfigured reads `skip`, and a mixin
1721
+ default counts as unconfigured),
1722
+ `tempest user show/activate/deactivate/sessions/delete` (hash
1723
+ redacted; deactivate and delete take the refresh tokens with them),
1724
+ `tempest flags list/get/enable/disable` (`unset` is exit 1, distinct
1725
+ from a stored `off`), `tempest cache ping/stats/flush`
1726
+ (`--all` is FLUSHDB and demands `--yes`), `tempest email test`,
1727
+ `tempest storage check/ls/put/get/presign/rm` (presign reports which
1728
+ host it signed for), `tempest queue publish/handlers`,
1729
+ `tempest tasks list/run`, `tempest integrations list/verify`
1730
+ (cheapest authenticated read per provider, with a guard on the table),
1731
+ `tempest agents tools/run` (exit follows `AgentRun.succeeded`),
1707
1732
  plus quality gates (`lint`, `fix`, `format`, `fmt-check`, `type`,
1708
1733
  `test`, `check`), `openapi-errors`, `openapi-client`, `permissions`.
1709
1734
  **`tempest pr-prompt` (v0.210.0)** — builds the prompt that makes an AI
@@ -2162,3 +2187,19 @@ coluna e tabela que o `[pdf-read]` entrega intercaladas, e o caminho com
2162
2187
  senha distingue documento cifrado de arquivo corrompido — o que só ficou
2163
2188
  verdade depois de descobrir que o `pdfplumber` embrulha `PDFPasswordIncorrect`
2164
2189
  num `PdfminerException`, fazendo o `except` específico nunca disparar.
2190
+
2191
+ ## O 500 volta a passar pelo CORS, v0.296.0 (2026-09-22)
2192
+
2193
+ `register_exception_handlers` instala o `ErrorEnvelopeMiddleware` como o
2194
+ middleware de usuário mais interno (#287). O handler de `Exception` do
2195
+ Starlette mora no `ServerErrorMiddleware`, fora de toda a pilha, e o
2196
+ envelope de 500 saía sem `Access-Control-Allow-Origin`: o navegador
2197
+ descartava, e o front via `Failed to fetch` num login que já estava em
2198
+ produção — escondendo a causa real por horas, porque todo `curl` mostrava
2199
+ as camadas funcionando.
2200
+
2201
+ A lição é a mesma do OAuth: o issue propunha documentar a ordem certa de
2202
+ registro e corrigir o template. Ordem que o consumidor precisa acertar é
2203
+ ordem que um dia ele inverte sem teste falhando. `append` em
2204
+ `user_middleware` deixa a camada no fundo **qualquer que seja a ordem**,
2205
+ então a regra deixou de existir em vez de ganhar um aviso.
@@ -123,6 +123,15 @@ Details in [UI layer](recipes/ui.md),
123
123
  [Forms from Pydantic schemas](recipes/ui-forms.md) and
124
124
  [Typed CSS](recipes/ui-css.md).
125
125
 
126
+ !!! tip "And when the frontend is an app, not a page"
127
+ The `ui` layer renders HTML **on the server**. When the screen needs
128
+ client-side state — a SPA — the path is still Python:
129
+ **[tempestweb](recipes/tempestweb-frontend.md)** writes the interface
130
+ and compiles it to WASM (or runs it in server-mode), and the SDK serves
131
+ the build through `make_web_app_router` / `build_web_app`, on the same
132
+ origin as the API. The two live together:
133
+ [Fullstack web](fullstack-web.md) compares when to use which.
134
+
126
135
  ## Request lifecycle
127
136
 
128
137
  ```mermaid
@@ -171,6 +180,50 @@ The SDK ships [`AppException`][tempest_fastapi_sdk.AppException] + [`register_ex
171
180
 
172
181
  The frontend branches on `code` (stable, machine-readable), never on the (potentially translated) `detail`.
173
182
 
183
+ ### The 500 goes through CORS too
184
+
185
+ An exception no handler catches becomes a `500` with `code: "INTERNAL_SERVER_ERROR"`. Starlette runs the `Exception` handler inside `ServerErrorMiddleware`, the **outermost** layer of the stack, so on its own that envelope would leave without passing through `CORSMiddleware`: with no `Access-Control-Allow-Origin` the browser discards the response and `fetch` rejects with `TypeError: Failed to fetch` — no status, no `code`, no `X-Request-ID`.
186
+
187
+ That is why `register_exception_handlers` also installs [`ErrorEnvelopeMiddleware`][tempest_fastapi_sdk.ErrorEnvelopeMiddleware] as the **innermost** middleware. From there the 500 passes through every middleware you added, and the order of the calls stops mattering:
188
+
189
+ ```python
190
+ from fastapi import FastAPI
191
+ from fastapi.testclient import TestClient
192
+
193
+ from tempest_fastapi_sdk import (
194
+ RequestIDMiddleware,
195
+ apply_cors,
196
+ register_exception_handlers,
197
+ )
198
+
199
+ app: FastAPI = FastAPI()
200
+ app.add_middleware(RequestIDMiddleware)
201
+ apply_cors(app, origins=["https://front.example"])
202
+ register_exception_handlers(app)
203
+
204
+
205
+ @app.get("/boom")
206
+ async def boom() -> None:
207
+ raise RuntimeError("unhandled failure")
208
+
209
+
210
+ client: TestClient = TestClient(app, raise_server_exceptions=False)
211
+ response = client.get("/boom", headers={"Origin": "https://front.example"})
212
+ print(response.status_code, response.headers["access-control-allow-origin"])
213
+ print(response.json()["details"]["request_id"] == response.headers["x-request-id"])
214
+ ```
215
+
216
+ ```text
217
+ 500 https://front.example
218
+ True
219
+ ```
220
+
221
+ !!! note "What stays the same"
222
+ - The layer **does not decide CORS**. An origin outside the allow-list still gets no header, on the 500 too.
223
+ - After sending the envelope the exception is **re-raised**, as Starlette already did: the ASGI server still logs it, and a `TestClient` with the default `raise_server_exceptions=True` still raises it in your test.
224
+ - A failure after the response started (a stream that breaks mid-body) is re-raised with no second response, because the status is already on the wire. It is logged and reaches `on_server_error` once, like a plain 500.
225
+ - `register_exception_handlers` must run **before** the application starts; after that the stack is built and it raises `RuntimeError`.
226
+
174
227
  ## Where to go next
175
228
 
176
229
  | You want to… | Read |