fastapi-fullstack 0.2.4__tar.gz → 0.2.5__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 (408) hide show
  1. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/PKG-INFO +66 -21
  2. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/README.md +65 -20
  3. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/fastapi_gen/cli.py +1 -0
  4. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/fastapi_gen/config.py +19 -7
  5. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/fastapi_gen/prompts.py +90 -11
  6. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/pyproject.toml +1 -1
  7. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/VARIABLES.md +21 -3
  8. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/cookiecutter.json +5 -2
  9. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/hooks/post_gen_project.py +5 -2
  10. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.env.prod.example +14 -0
  11. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/.env.example +26 -0
  12. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/.pre-commit-config.yaml +1 -1
  13. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/__init__.py +11 -0
  14. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/assistant.py +7 -2
  15. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/deepagents_assistant.py +81 -34
  16. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/langchain_assistant.py +1 -1
  17. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/agents/pydantic_deep_assistant.py +359 -0
  18. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/deps.py +53 -2
  19. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/__init__.py +46 -1
  20. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/admin_conversations.py +400 -0
  21. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/agent.py +976 -32
  22. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/channels.py +431 -0
  23. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/conversations.py +207 -4
  24. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/projects.py +200 -0
  25. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/slack_webhook.py +128 -0
  26. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/telegram_webhook.py +181 -0
  27. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/channels/__init__.py +31 -0
  28. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/channels/base.py +99 -0
  29. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/channels/router.py +633 -0
  30. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/channels/slack.py +254 -0
  31. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/channels/telegram.py +259 -0
  32. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/commands/channel.py +309 -0
  33. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/core/channel_crypto.py +47 -0
  34. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/config.py +36 -0
  35. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/sanitize.py +1 -1
  36. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/__init__.py +14 -0
  37. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_bot.py +243 -0
  38. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_identity.py +219 -0
  39. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_session.py +303 -0
  40. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation.py +44 -1
  41. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation_share.py +277 -0
  42. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/db/models/project.py +425 -0
  43. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/main.py +79 -11
  44. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/vectorstore.py +1 -1
  45. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/__init__.py +21 -1
  46. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_bot.py +387 -0
  47. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_identity.py +280 -0
  48. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_session.py +378 -0
  49. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation.py +26 -0
  50. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation_share.py +373 -0
  51. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/repositories/project.py +611 -0
  52. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/schemas/channel_bot.py +165 -0
  53. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation.py +13 -1
  54. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation_share.py +112 -0
  55. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/schemas/project.py +103 -0
  56. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/__init__.py +16 -1
  57. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/services/agent_invocation.py +496 -0
  58. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/services/channel_bot.py +331 -0
  59. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/conversation.py +36 -5
  60. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/services/conversation_share.py +495 -0
  61. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/backend/app/services/project.py +678 -0
  62. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/pyproject.toml +22 -8
  63. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_admin.py +0 -14
  64. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_agents.py +3 -3
  65. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_services_conversation.py +15 -7
  66. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_ssrf.py +0 -12
  67. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/configuration.md +20 -0
  68. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/conversations/page.tsx +273 -0
  69. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/shared/[token]/page.tsx +98 -0
  70. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/shares/[shareId]/route.ts +29 -0
  71. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/shares/route.ts +55 -0
  72. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/shared-with-me/route.ts +27 -0
  73. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/conversation-sidebar.tsx +43 -0
  74. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/share-dialog.tsx +199 -0
  75. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +11 -0
  76. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-admin-conversations.ts +130 -0
  77. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversation-shares.ts +126 -0
  78. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-projects.ts +207 -0
  79. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/index.ts +3 -0
  80. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/stores/project-store.ts +73 -0
  81. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/types/conversation.ts +107 -0
  82. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/types/index.ts +3 -0
  83. fastapi_fullstack-0.2.5/template/{{cookiecutter.project_slug}}/frontend/src/types/project.ts +59 -0
  84. fastapi_fullstack-0.2.4/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +0 -4
  85. fastapi_fullstack-0.2.4/template/{{cookiecutter.project_slug}}/frontend/src/types/conversation.ts +0 -47
  86. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/.gitignore +0 -0
  87. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/LICENSE +0 -0
  88. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/fastapi_gen/__init__.py +0 -0
  89. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/fastapi_gen/generator.py +0 -0
  90. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/commands/add-endpoint.md +0 -0
  91. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/commands/fix-issue.md +0 -0
  92. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/commands/review.md +0 -0
  93. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/rules/api-conventions.md +0 -0
  94. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/rules/architecture.md +0 -0
  95. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/rules/code-style.md +0 -0
  96. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/rules/exceptions-security.md +0 -0
  97. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/rules/frontend.md +0 -0
  98. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/rules/schemas-models.md +0 -0
  99. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/rules/testing.md +0 -0
  100. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.claude/settings.json +0 -0
  101. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +0 -0
  102. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.gitignore +0 -0
  103. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/.gitlab-ci.yml +0 -0
  104. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/AGENTS.md +0 -0
  105. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/CLAUDE.md +0 -0
  106. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/Makefile +0 -0
  107. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/README.md +0 -0
  108. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/.dockerignore +0 -0
  109. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/Dockerfile +0 -0
  110. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/alembic/env.py +0 -0
  111. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/alembic/script.py.mako +0 -0
  112. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/.gitkeep +0 -0
  113. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/alembic.ini +0 -0
  114. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/__init__.py +0 -0
  115. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/admin.py +0 -0
  116. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/crewai_assistant.py +0 -0
  117. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/langgraph_assistant.py +0 -0
  118. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/prompts.py +0 -0
  119. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/__init__.py +0 -0
  120. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/datetime_tool.py +0 -0
  121. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/rag_tool.py +0 -0
  122. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/web_search.py +0 -0
  123. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/__init__.py +0 -0
  124. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/exception_handlers.py +0 -0
  125. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/router.py +0 -0
  126. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/__init__.py +0 -0
  127. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/auth.py +0 -0
  128. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/files.py +0 -0
  129. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/health.py +0 -0
  130. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/oauth.py +0 -0
  131. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/rag.py +0 -0
  132. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/sessions.py +0 -0
  133. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/users.py +0 -0
  134. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/webhooks.py +0 -0
  135. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/api/versioning.py +0 -0
  136. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/clients/__init__.py +0 -0
  137. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/clients/redis.py +0 -0
  138. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/commands/__init__.py +0 -0
  139. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/commands/cleanup.py +0 -0
  140. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/commands/example.py +0 -0
  141. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/commands/rag.py +0 -0
  142. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/commands/seed.py +0 -0
  143. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/__init__.py +0 -0
  144. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/cache.py +0 -0
  145. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/csrf.py +0 -0
  146. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/exceptions.py +0 -0
  147. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/logfire_setup.py +0 -0
  148. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/logging.py +0 -0
  149. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/middleware.py +0 -0
  150. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/oauth.py +0 -0
  151. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/rate_limit.py +0 -0
  152. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/core/security.py +0 -0
  153. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/__init__.py +0 -0
  154. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/base.py +0 -0
  155. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/chat_file.py +0 -0
  156. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/rag_document.py +0 -0
  157. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/session.py +0 -0
  158. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/sync_log.py +0 -0
  159. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/sync_source.py +0 -0
  160. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/user.py +0 -0
  161. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/models/webhook.py +0 -0
  162. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/db/session.py +0 -0
  163. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/__init__.py +0 -0
  164. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/config.py +0 -0
  165. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/connectors/__init__.py +0 -0
  166. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/connectors/google_drive.py +0 -0
  167. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/connectors/s3.py +0 -0
  168. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/documents.py +0 -0
  169. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/embeddings.py +0 -0
  170. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/image_describer.py +0 -0
  171. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/ingestion.py +0 -0
  172. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/models.py +0 -0
  173. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/reranker.py +0 -0
  174. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/retrieval.py +0 -0
  175. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/__init__.py +0 -0
  176. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/base.py +0 -0
  177. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/google_drive.py +0 -0
  178. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/s3.py +0 -0
  179. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/chat_file.py +0 -0
  180. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/rag_document.py +0 -0
  181. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/session.py +0 -0
  182. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/sync_log.py +0 -0
  183. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/sync_source.py +0 -0
  184. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/user.py +0 -0
  185. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/repositories/webhook.py +0 -0
  186. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/__init__.py +0 -0
  187. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/base.py +0 -0
  188. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/file.py +0 -0
  189. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/rag.py +0 -0
  190. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/session.py +0 -0
  191. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/sync_source.py +0 -0
  192. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/token.py +0 -0
  193. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/user.py +0 -0
  194. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/schemas/webhook.py +0 -0
  195. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/file_storage.py +0 -0
  196. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/file_upload.py +0 -0
  197. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/rag_document.py +0 -0
  198. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/rag_sync.py +0 -0
  199. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/session.py +0 -0
  200. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/sync_source.py +0 -0
  201. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/user.py +0 -0
  202. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/services/webhook.py +0 -0
  203. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/__init__.py +0 -0
  204. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/arq_app.py +0 -0
  205. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/celery_app.py +0 -0
  206. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/taskiq_app.py +0 -0
  207. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/__init__.py +0 -0
  208. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/examples.py +0 -0
  209. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/rag_tasks.py +0 -0
  210. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/schedules.py +0 -0
  211. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/taskiq_examples.py +0 -0
  212. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/cli/__init__.py +0 -0
  213. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/cli/commands.py +0 -0
  214. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/scripts/.gitkeep +0 -0
  215. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/__init__.py +0 -0
  216. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/api/__init__.py +0 -0
  217. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_auth.py +0 -0
  218. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_exceptions.py +0 -0
  219. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_health.py +0 -0
  220. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_metrics.py +0 -0
  221. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_openapi.py +0 -0
  222. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_users.py +0 -0
  223. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/conftest.py +0 -0
  224. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_clients.py +0 -0
  225. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_commands.py +0 -0
  226. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_core.py +0 -0
  227. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_migrations.py +0 -0
  228. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_repositories.py +0 -0
  229. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_security.py +0 -0
  230. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_services.py +0 -0
  231. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/backend/tests/test_worker.py +0 -0
  232. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docker-compose.dev.yml +0 -0
  233. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docker-compose.frontend.yml +0 -0
  234. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docker-compose.prod.yml +0 -0
  235. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docker-compose.yml +0 -0
  236. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/adding_features.md +0 -0
  237. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/architecture.md +0 -0
  238. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/commands.md +0 -0
  239. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/file-processing.md +0 -0
  240. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/howto/add-agent-tool.md +0 -0
  241. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/howto/add-api-endpoint.md +0 -0
  242. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/howto/add-background-task.md +0 -0
  243. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/howto/add-rag-source.md +0 -0
  244. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/howto/add-sync-connector.md +0 -0
  245. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/howto/configure-sync-sources.md +0 -0
  246. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/howto/customize-agent-prompt.md +0 -0
  247. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/patterns.md +0 -0
  248. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/permissions.md +0 -0
  249. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/docs/testing.md +0 -0
  250. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/.dockerignore +0 -0
  251. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/.env.example +0 -0
  252. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/.gitignore +0 -0
  253. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/.prettierignore +0 -0
  254. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/.prettierrc +0 -0
  255. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/Dockerfile +0 -0
  256. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/README.md +0 -0
  257. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.setup.ts +0 -0
  258. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.spec.ts +0 -0
  259. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/e2e/chat.spec.ts +0 -0
  260. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/e2e/home.spec.ts +0 -0
  261. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/eslint.config.mjs +0 -0
  262. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/instrumentation.ts +0 -0
  263. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/messages/en.json +0 -0
  264. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/messages/pl.json +0 -0
  265. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/next.config.ts +0 -0
  266. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/package.json +0 -0
  267. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/playwright.config.ts +0 -0
  268. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs +0 -0
  269. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/layout.tsx +0 -0
  270. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/login/page.tsx +0 -0
  271. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/register/page.tsx +0 -0
  272. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/chat/page.tsx +0 -0
  273. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/dashboard/page.tsx +0 -0
  274. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/layout.tsx +0 -0
  275. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/profile/page.tsx +0 -0
  276. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/rag/page.tsx +0 -0
  277. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/page.tsx +0 -0
  278. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/auth/callback/page.tsx +0 -0
  279. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/error.tsx +0 -0
  280. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/layout.tsx +0 -0
  281. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/page.tsx +0 -0
  282. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/login/route.ts +0 -0
  283. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/logout/route.ts +0 -0
  284. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/me/route.ts +0 -0
  285. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/oauth-callback/route.ts +0 -0
  286. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/refresh/route.ts +0 -0
  287. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/register/route.ts +0 -0
  288. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/messages/route.ts +0 -0
  289. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/route.ts +0 -0
  290. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/export/route.ts +0 -0
  291. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/route.ts +0 -0
  292. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/files/[id]/route.ts +0 -0
  293. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/files/upload/route.ts +0 -0
  294. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/health/route.ts +0 -0
  295. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/users/avatar/[userId]/route.ts +0 -0
  296. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/users/me/avatar/route.ts +0 -0
  297. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/agent/models/route.ts +0 -0
  298. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/documents/[documentId]/route.ts +0 -0
  299. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/documents/route.ts +0 -0
  300. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/info/route.ts +0 -0
  301. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/ingest/route.ts +0 -0
  302. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/route.ts +0 -0
  303. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/route.ts +0 -0
  304. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/[docId]/download/route.ts +0 -0
  305. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/[docId]/route.ts +0 -0
  306. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/route.ts +0 -0
  307. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/search/route.ts +0 -0
  308. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/supported-formats/route.ts +0 -0
  309. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/[syncId]/route.ts +0 -0
  310. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/connectors/route.ts +0 -0
  311. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/local/route.ts +0 -0
  312. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/[sourceId]/route.ts +0 -0
  313. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/[sourceId]/trigger/route.ts +0 -0
  314. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/route.ts +0 -0
  315. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/global-error.tsx +0 -0
  316. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/globals.css +0 -0
  317. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/layout.tsx +0 -0
  318. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/not-found.tsx +0 -0
  319. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/app/providers.tsx +0 -0
  320. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/index.ts +0 -0
  321. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/login-form.tsx +0 -0
  322. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/register-form.tsx +0 -0
  323. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-container.tsx +0 -0
  324. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-input.tsx +0 -0
  325. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/copy-button.tsx +0 -0
  326. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/index.ts +0 -0
  327. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/markdown-content.tsx +0 -0
  328. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-item.tsx +0 -0
  329. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-list.tsx +0 -0
  330. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-approval-dialog.tsx +0 -0
  331. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-call-card.tsx +0 -0
  332. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/google-icon.tsx +0 -0
  333. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/index.ts +0 -0
  334. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/language-switcher.tsx +0 -0
  335. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/auth-guard.tsx +0 -0
  336. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/breadcrumb.tsx +0 -0
  337. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/header.tsx +0 -0
  338. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/index.ts +0 -0
  339. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/landing-nav.tsx +0 -0
  340. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/page-transition.tsx +0 -0
  341. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/sidebar.tsx +0 -0
  342. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/index.ts +0 -0
  343. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-provider.tsx +0 -0
  344. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-toggle.tsx +0 -0
  345. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/accordion.tsx +0 -0
  346. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/alert-dialog.tsx +0 -0
  347. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/avatar.tsx +0 -0
  348. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/badge.tsx +0 -0
  349. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.test.tsx +0 -0
  350. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.tsx +0 -0
  351. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/card.tsx +0 -0
  352. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/checkbox.tsx +0 -0
  353. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/dialog.tsx +0 -0
  354. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  355. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/index.ts +0 -0
  356. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/input.tsx +0 -0
  357. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/label.tsx +0 -0
  358. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/popover.tsx +0 -0
  359. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/progress.tsx +0 -0
  360. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/radio-group.tsx +0 -0
  361. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/scroll-area.tsx +0 -0
  362. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/select.tsx +0 -0
  363. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/separator.tsx +0 -0
  364. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/sheet.tsx +0 -0
  365. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/skeleton.tsx +0 -0
  366. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/spinner.tsx +0 -0
  367. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/switch.tsx +0 -0
  368. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/table.tsx +0 -0
  369. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/tabs.tsx +0 -0
  370. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/textarea.tsx +0 -0
  371. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/tooltip.tsx +0 -0
  372. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-auth.ts +0 -0
  373. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-chat.ts +0 -0
  374. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversations.ts +0 -0
  375. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-websocket.ts +0 -0
  376. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/i18n.ts +0 -0
  377. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/lib/api-client.ts +0 -0
  378. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/lib/constants.ts +0 -0
  379. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/lib/file-api.ts +0 -0
  380. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/lib/rag-api.ts +0 -0
  381. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/lib/server-api.ts +0 -0
  382. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.test.ts +0 -0
  383. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.ts +0 -0
  384. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/middleware.ts +0 -0
  385. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.test.ts +0 -0
  386. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.ts +0 -0
  387. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-sidebar-store.ts +0 -0
  388. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-store.ts +0 -0
  389. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/conversation-store.ts +0 -0
  390. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/sidebar-store.ts +0 -0
  391. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/stores/theme-store.ts +0 -0
  392. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/types/api.ts +0 -0
  393. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/types/auth.ts +0 -0
  394. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/types/chat.ts +0 -0
  395. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/src/types/speech.d.ts +0 -0
  396. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/tsconfig.json +0 -0
  397. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/vercel.json +0 -0
  398. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/vitest.config.ts +0 -0
  399. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/frontend/vitest.setup.ts +0 -0
  400. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/kubernetes/configmap.yaml +0 -0
  401. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/kubernetes/deployment.yaml +0 -0
  402. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/kubernetes/ingress.yaml +0 -0
  403. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/kubernetes/kustomization.yaml +0 -0
  404. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/kubernetes/namespace.yaml +0 -0
  405. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/kubernetes/secret.yaml +0 -0
  406. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/kubernetes/service.yaml +0 -0
  407. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/nginx/nginx.conf +0 -0
  408. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.5}/template/{{cookiecutter.project_slug}}/nginx/ssl/.gitkeep +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastapi-fullstack
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Full-stack FastAPI + Next.js template generator with PydanticAI/LangChain agents, WebSocket streaming, 20+ enterprise integrations, and Logfire/LangSmith observability. Ship AI apps fast. CLI tool to generate production-ready FastAPI + Next.js projects with AI agents, auth, and observability.
5
5
  Project-URL: Homepage, https://github.com/vstorm-co/full-stack-ai-agent-template
6
6
  Project-URL: Documentation, https://github.com/vstorm-co/full-stack-ai-agent-template#readme
@@ -59,22 +59,27 @@ Description-Content-Type: text/markdown
59
59
 
60
60
  <p align="center">
61
61
  <a href="https://pypi.org/project/fastapi-fullstack/"><img src="https://img.shields.io/pypi/v/fastapi-fullstack?color=green&logo=pypi&logoColor=white" alt="PyPI"></a>
62
- <a href="https://pepy.tech/projects/fastapi-fullstack"><img src="https://static.pepy.tech/badge/fastapi-fullstack" alt="PyPI Downloads"></a>
62
+ <a href="https://pepy.tech/projects/fastapi-fullstack"><img src="https://static.pepy.tech/badge/fastapi-fullstack/month" alt="PyPI Downloads"></a>
63
+ <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
63
64
  <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11+-blue?logo=python&logoColor=white" alt="Python 3.11+"></a>
64
65
  <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vstorm-co/full-stack-ai-agent-template?color=blue" alt="License"></a>
65
66
  <img src="https://img.shields.io/badge/coverage-100%25-brightgreen" alt="Coverage">
67
+ <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/actions/workflows/ci.yml"><img src="https://github.com/vstorm-co/full-stack-ai-agent-template/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
66
68
  <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/SECURITY.md"><img src="https://img.shields.io/badge/security-policy-blueviolet?logo=shieldsdotio&logoColor=white" alt="Security Policy"></a>
67
- <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
69
+ <a href="https://www.bestpractices.dev/projects/12539"><img src="https://www.bestpractices.dev/projects/12539/badge" alt="OpenSSF Best Practices"></a>
70
+ <a href="https://github.com/pydantic/pydantic-ai"><img src="https://img.shields.io/badge/Powered%20by-Pydantic%20AI-E92063?logo=pydantic&logoColor=white" alt="Pydantic AI"></a>
68
71
  <a href="https://x.com/Kacper95682155"><img src="https://img.shields.io/badge/X-000000?logo=x&logoColor=white" alt="X"></a>
69
72
  </p>
70
73
 
71
74
  <p align="center">
72
- <b>🤖 5 AI Agent Frameworks</b> <i>(PydanticAI, LangChain, LangGraph, CrewAI, DeepAgents)</i>
75
+ <b>🤖 6 AI Agent Frameworks</b> <i>(PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents)</i>
73
76
  <br>
74
77
  <b>📄 RAG Pipeline</b> <i>(Milvus, Qdrant, pgvector, ChromaDB)</i>
75
78
  <br>
76
79
  <b>⚡ FastAPI + Next.js 15</b> <i>(WebSocket streaming, real-time chat UI)</i>
77
80
  <br>
81
+ <b>🔗 Conversation Sharing</b> <i>(direct sharing, public links, admin browser)</i>
82
+ <br>
78
83
  <b>🔒 Enterprise-Ready</b> <i>(JWT, OAuth, admin panel, Celery, Docker, K8s)</i>
79
84
  </p>
80
85
 
@@ -102,10 +107,21 @@ Description-Content-Type: text/markdown
102
107
 
103
108
  ---
104
109
 
105
- ## Related Projects
110
+ ## Vstorm OSS Ecosystem
106
111
 
107
- > [!TIP]
108
- > **Building advanced AI agents?** Check out [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) — a deepagent framework built on pydantic-ai for building Claude Code-style AI agents with filesystem tools, subagent delegation, persistent memory, context management, cost tracking, and an interactive CLI.
112
+ This template is part of a broader open-source ecosystem for production AI agents:
113
+
114
+ | Project | Description | |
115
+ |---------|-------------|---|
116
+ | **[pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents)** | The modular agent runtime for Python. Claude Code-style CLI with Docker sandbox, browser automation, multi-agent teams, and /improve. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-deepagents?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-deepagents) |
117
+ | **[pydantic-ai-shields](https://github.com/vstorm-co/pydantic-ai-shields)** | Drop-in guardrails for Pydantic AI agents. 5 infra + 5 content shields. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-shields?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-shields) |
118
+ | **[pydantic-ai-subagents](https://github.com/vstorm-co/pydantic-ai-subagents)** | Declarative multi-agent orchestration with token tracking. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-subagents?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-subagents) |
119
+ | **[summarization-pydantic-ai](https://github.com/vstorm-co/pydantic-ai-summarization)** | Smart context compression for long-running agents. | [![Stars](https://img.shields.io/github/stars/vstorm-co/summarization-pydantic-ai?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/summarization-pydantic-ai) |
120
+ | **[pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)** | Sandboxed execution for AI agents. Docker + Daytona. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-backend?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-backend) |
121
+
122
+ > **Want the runtime behind this template's AI agents?** [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) powers the `deepagents` framework option — install it standalone with `curl -fsSL .../install.sh | bash`.
123
+
124
+ Browse all projects at [oss.vstorm.co](https://oss.vstorm.co)
109
125
 
110
126
  ---
111
127
 
@@ -146,9 +162,28 @@ fastapi-fullstack create my_ai_app --preset ai-agent # AI agent with streami
146
162
  fastapi-fullstack create my_ai_app --minimal
147
163
  ```
148
164
 
149
- ### Start Development
165
+ ### Start Development (Docker — recommended)
166
+
167
+ The fastest way to get running — 2 commands:
168
+
169
+ ```bash
170
+ cd my_ai_app
171
+ make docker-up # Start backend + database + migrations + admin user
172
+ make docker-frontend # Start frontend
173
+ ```
174
+
175
+ **Access:**
176
+
177
+ - API: <http://localhost:8000>
178
+ - Docs: <http://localhost:8000/docs>
179
+ - Admin Panel: <http://localhost:8000/admin>
180
+ - Frontend: <http://localhost:3000>
181
+
182
+ > [!TIP]
183
+ > That's it. Docker handles database setup, migrations, and admin user creation automatically.
150
184
 
151
- After generating your project, follow these steps:
185
+ <details>
186
+ <summary><b>Manual setup (without Docker)</b></summary>
152
187
 
153
188
  #### 1. Install dependencies
154
189
 
@@ -211,14 +246,7 @@ bun dev
211
246
  - Admin Panel: <http://localhost:8000/admin> (login with admin user)
212
247
  - Frontend: <http://localhost:3000>
213
248
 
214
- ### Quick Start with Docker
215
-
216
- Run everything in Docker:
217
-
218
- ```bash
219
- make docker-up # Start backend + database
220
- make docker-frontend # Start frontend
221
- ```
249
+ </details>
222
250
 
223
251
  ### Using the Project CLI
224
252
 
@@ -268,6 +296,18 @@ Use `make help` to see all available Makefile shortcuts.
268
296
  |:---:|:---:|
269
297
  | ![Logfire](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/logfire.png) | ![LangSmith](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/langsmith.png) |
270
298
 
299
+ ### Messaging Channels
300
+
301
+ <p align="center">
302
+ <img src="https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/telegram_icon.png" width="40" alt="Telegram">
303
+ &nbsp;&nbsp;&nbsp;
304
+ <img src="https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/slack_icon.png" width="40" alt="Slack">
305
+ </p>
306
+
307
+ | Telegram Bot |
308
+ |:---:|
309
+ | ![Telegram](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/telegram.png) |
310
+
271
311
  ### Admin, Monitoring & API
272
312
 
273
313
  | Celery Flower | SQLAdmin Panel |
@@ -350,10 +390,12 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
350
390
 
351
391
  ### 🤖 AI/LLM First
352
392
 
353
- - **5 AI Frameworks** - [PydanticAI](https://ai.pydantic.dev), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [CrewAI](https://www.crewai.com), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)
393
+ - **6 AI Frameworks** - [PydanticAI](https://ai.pydantic.dev), [PydanticDeep](https://github.com/vstorm-co/pydantic-deep), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [CrewAI](https://www.crewai.com), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)
354
394
  - **4 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter
355
395
  - **RAG** - Document ingestion, vector search, reranking (Milvus, Qdrant, ChromaDB, pgvector)
356
396
  - **WebSocket Streaming** - Real-time responses with full event access
397
+ - **Messaging Channels** - Telegram and Slack multi-bot integration with polling, webhooks, per-thread sessions, group concurrency control
398
+ - **Conversation Sharing** - Share conversations with users or via public links, admin conversation browser
357
399
  - **Conversation Persistence** - Save chat history to database
358
400
  - **Image Description** - Extract images from documents, describe via LLM vision
359
401
  - **Multimodal Embeddings** - Google Gemini embedding model (text + images)
@@ -380,7 +422,7 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
380
422
 
381
423
  | Category | Integrations |
382
424
  |----------|-------------|
383
- | **AI Frameworks** | PydanticAI, LangChain, LangGraph, CrewAI, DeepAgents |
425
+ | **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents |
384
426
  | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |
385
427
  | **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |
386
428
  | **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (configurable, scheduled) |
@@ -389,6 +431,8 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
389
431
  | **Security** | Rate limiting, CORS, CSRF protection |
390
432
  | **Observability** | Logfire, LangSmith, Sentry, Prometheus |
391
433
  | **Admin** | SQLAdmin panel with auth |
434
+ | **Collaboration** | Conversation sharing (direct + link), admin conversation browser |
435
+ | **Messaging** | Telegram multi-bot (polling + webhook), Slack multi-bot (Events API + Socket Mode) |
392
436
  | **Events** | Webhooks, WebSockets |
393
437
  | **DevOps** | Docker, GitHub Actions, GitLab CI, Kubernetes |
394
438
 
@@ -512,7 +556,7 @@ See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agen
512
556
 
513
557
  ## 🤖 AI Agent
514
558
 
515
- Choose from **5 AI frameworks** and **4 LLM providers** when generating your project:
559
+ Choose from **6 AI frameworks** and **4 LLM providers** when generating your project:
516
560
 
517
561
  ```bash
518
562
  # PydanticAI with OpenAI (default)
@@ -536,6 +580,7 @@ fastapi-fullstack create my_app --rag --database postgresql --task-queue celery
536
580
  | Framework | OpenAI | Anthropic | Gemini | OpenRouter |
537
581
  |-----------|:------:|:---------:|:------:|:----------:|
538
582
  | **PydanticAI** | ✓ | ✓ | ✓ | ✓ |
583
+ | **PydanticDeep** | ✓ | ✓ | ✓ | - |
539
584
  | **LangChain** | ✓ | ✓ | ✓ | - |
540
585
  | **LangGraph** | ✓ | ✓ | ✓ | - |
541
586
  | **CrewAI** | ✓ | ✓ | ✓ | - |
@@ -659,7 +704,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
659
704
  - **Image description** - Extract images from documents, describe via LLM vision API (opt-in)
660
705
  - **Chunking** - RecursiveCharacterTextSplitter with configurable size/overlap
661
706
  - **Reranking** - Cohere API or local CrossEncoder for improved search quality
662
- - **Agent integration** - All 5 AI frameworks get a `search_knowledge_base` tool automatically
707
+ - **Agent integration** - All 6 AI frameworks get a `search_knowledge_base` tool automatically
663
708
 
664
709
  ---
665
710
 
@@ -19,22 +19,27 @@
19
19
 
20
20
  <p align="center">
21
21
  <a href="https://pypi.org/project/fastapi-fullstack/"><img src="https://img.shields.io/pypi/v/fastapi-fullstack?color=green&logo=pypi&logoColor=white" alt="PyPI"></a>
22
- <a href="https://pepy.tech/projects/fastapi-fullstack"><img src="https://static.pepy.tech/badge/fastapi-fullstack" alt="PyPI Downloads"></a>
22
+ <a href="https://pepy.tech/projects/fastapi-fullstack"><img src="https://static.pepy.tech/badge/fastapi-fullstack/month" alt="PyPI Downloads"></a>
23
+ <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
23
24
  <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11+-blue?logo=python&logoColor=white" alt="Python 3.11+"></a>
24
25
  <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vstorm-co/full-stack-ai-agent-template?color=blue" alt="License"></a>
25
26
  <img src="https://img.shields.io/badge/coverage-100%25-brightgreen" alt="Coverage">
27
+ <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/actions/workflows/ci.yml"><img src="https://github.com/vstorm-co/full-stack-ai-agent-template/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
26
28
  <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/SECURITY.md"><img src="https://img.shields.io/badge/security-policy-blueviolet?logo=shieldsdotio&logoColor=white" alt="Security Policy"></a>
27
- <a href="https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
29
+ <a href="https://www.bestpractices.dev/projects/12539"><img src="https://www.bestpractices.dev/projects/12539/badge" alt="OpenSSF Best Practices"></a>
30
+ <a href="https://github.com/pydantic/pydantic-ai"><img src="https://img.shields.io/badge/Powered%20by-Pydantic%20AI-E92063?logo=pydantic&logoColor=white" alt="Pydantic AI"></a>
28
31
  <a href="https://x.com/Kacper95682155"><img src="https://img.shields.io/badge/X-000000?logo=x&logoColor=white" alt="X"></a>
29
32
  </p>
30
33
 
31
34
  <p align="center">
32
- <b>🤖 5 AI Agent Frameworks</b> <i>(PydanticAI, LangChain, LangGraph, CrewAI, DeepAgents)</i>
35
+ <b>🤖 6 AI Agent Frameworks</b> <i>(PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents)</i>
33
36
  <br>
34
37
  <b>📄 RAG Pipeline</b> <i>(Milvus, Qdrant, pgvector, ChromaDB)</i>
35
38
  <br>
36
39
  <b>⚡ FastAPI + Next.js 15</b> <i>(WebSocket streaming, real-time chat UI)</i>
37
40
  <br>
41
+ <b>🔗 Conversation Sharing</b> <i>(direct sharing, public links, admin browser)</i>
42
+ <br>
38
43
  <b>🔒 Enterprise-Ready</b> <i>(JWT, OAuth, admin panel, Celery, Docker, K8s)</i>
39
44
  </p>
40
45
 
@@ -62,10 +67,21 @@
62
67
 
63
68
  ---
64
69
 
65
- ## Related Projects
70
+ ## Vstorm OSS Ecosystem
66
71
 
67
- > [!TIP]
68
- > **Building advanced AI agents?** Check out [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) — a deepagent framework built on pydantic-ai for building Claude Code-style AI agents with filesystem tools, subagent delegation, persistent memory, context management, cost tracking, and an interactive CLI.
72
+ This template is part of a broader open-source ecosystem for production AI agents:
73
+
74
+ | Project | Description | |
75
+ |---------|-------------|---|
76
+ | **[pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents)** | The modular agent runtime for Python. Claude Code-style CLI with Docker sandbox, browser automation, multi-agent teams, and /improve. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-deepagents?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-deepagents) |
77
+ | **[pydantic-ai-shields](https://github.com/vstorm-co/pydantic-ai-shields)** | Drop-in guardrails for Pydantic AI agents. 5 infra + 5 content shields. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-shields?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-shields) |
78
+ | **[pydantic-ai-subagents](https://github.com/vstorm-co/pydantic-ai-subagents)** | Declarative multi-agent orchestration with token tracking. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-subagents?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-subagents) |
79
+ | **[summarization-pydantic-ai](https://github.com/vstorm-co/pydantic-ai-summarization)** | Smart context compression for long-running agents. | [![Stars](https://img.shields.io/github/stars/vstorm-co/summarization-pydantic-ai?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/summarization-pydantic-ai) |
80
+ | **[pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)** | Sandboxed execution for AI agents. Docker + Daytona. | [![Stars](https://img.shields.io/github/stars/vstorm-co/pydantic-ai-backend?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/pydantic-ai-backend) |
81
+
82
+ > **Want the runtime behind this template's AI agents?** [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) powers the `deepagents` framework option — install it standalone with `curl -fsSL .../install.sh | bash`.
83
+
84
+ Browse all projects at [oss.vstorm.co](https://oss.vstorm.co)
69
85
 
70
86
  ---
71
87
 
@@ -106,9 +122,28 @@ fastapi-fullstack create my_ai_app --preset ai-agent # AI agent with streami
106
122
  fastapi-fullstack create my_ai_app --minimal
107
123
  ```
108
124
 
109
- ### Start Development
125
+ ### Start Development (Docker — recommended)
126
+
127
+ The fastest way to get running — 2 commands:
128
+
129
+ ```bash
130
+ cd my_ai_app
131
+ make docker-up # Start backend + database + migrations + admin user
132
+ make docker-frontend # Start frontend
133
+ ```
134
+
135
+ **Access:**
136
+
137
+ - API: <http://localhost:8000>
138
+ - Docs: <http://localhost:8000/docs>
139
+ - Admin Panel: <http://localhost:8000/admin>
140
+ - Frontend: <http://localhost:3000>
141
+
142
+ > [!TIP]
143
+ > That's it. Docker handles database setup, migrations, and admin user creation automatically.
110
144
 
111
- After generating your project, follow these steps:
145
+ <details>
146
+ <summary><b>Manual setup (without Docker)</b></summary>
112
147
 
113
148
  #### 1. Install dependencies
114
149
 
@@ -171,14 +206,7 @@ bun dev
171
206
  - Admin Panel: <http://localhost:8000/admin> (login with admin user)
172
207
  - Frontend: <http://localhost:3000>
173
208
 
174
- ### Quick Start with Docker
175
-
176
- Run everything in Docker:
177
-
178
- ```bash
179
- make docker-up # Start backend + database
180
- make docker-frontend # Start frontend
181
- ```
209
+ </details>
182
210
 
183
211
  ### Using the Project CLI
184
212
 
@@ -228,6 +256,18 @@ Use `make help` to see all available Makefile shortcuts.
228
256
  |:---:|:---:|
229
257
  | ![Logfire](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/logfire.png) | ![LangSmith](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/langsmith.png) |
230
258
 
259
+ ### Messaging Channels
260
+
261
+ <p align="center">
262
+ <img src="https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/telegram_icon.png" width="40" alt="Telegram">
263
+ &nbsp;&nbsp;&nbsp;
264
+ <img src="https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/slack_icon.png" width="40" alt="Slack">
265
+ </p>
266
+
267
+ | Telegram Bot |
268
+ |:---:|
269
+ | ![Telegram](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/telegram.png) |
270
+
231
271
  ### Admin, Monitoring & API
232
272
 
233
273
  | Celery Flower | SQLAdmin Panel |
@@ -310,10 +350,12 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
310
350
 
311
351
  ### 🤖 AI/LLM First
312
352
 
313
- - **5 AI Frameworks** - [PydanticAI](https://ai.pydantic.dev), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [CrewAI](https://www.crewai.com), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)
353
+ - **6 AI Frameworks** - [PydanticAI](https://ai.pydantic.dev), [PydanticDeep](https://github.com/vstorm-co/pydantic-deep), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [CrewAI](https://www.crewai.com), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)
314
354
  - **4 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter
315
355
  - **RAG** - Document ingestion, vector search, reranking (Milvus, Qdrant, ChromaDB, pgvector)
316
356
  - **WebSocket Streaming** - Real-time responses with full event access
357
+ - **Messaging Channels** - Telegram and Slack multi-bot integration with polling, webhooks, per-thread sessions, group concurrency control
358
+ - **Conversation Sharing** - Share conversations with users or via public links, admin conversation browser
317
359
  - **Conversation Persistence** - Save chat history to database
318
360
  - **Image Description** - Extract images from documents, describe via LLM vision
319
361
  - **Multimodal Embeddings** - Google Gemini embedding model (text + images)
@@ -340,7 +382,7 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
340
382
 
341
383
  | Category | Integrations |
342
384
  |----------|-------------|
343
- | **AI Frameworks** | PydanticAI, LangChain, LangGraph, CrewAI, DeepAgents |
385
+ | **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents |
344
386
  | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |
345
387
  | **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |
346
388
  | **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (configurable, scheduled) |
@@ -349,6 +391,8 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
349
391
  | **Security** | Rate limiting, CORS, CSRF protection |
350
392
  | **Observability** | Logfire, LangSmith, Sentry, Prometheus |
351
393
  | **Admin** | SQLAdmin panel with auth |
394
+ | **Collaboration** | Conversation sharing (direct + link), admin conversation browser |
395
+ | **Messaging** | Telegram multi-bot (polling + webhook), Slack multi-bot (Events API + Socket Mode) |
352
396
  | **Events** | Webhooks, WebSockets |
353
397
  | **DevOps** | Docker, GitHub Actions, GitLab CI, Kubernetes |
354
398
 
@@ -472,7 +516,7 @@ See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agen
472
516
 
473
517
  ## 🤖 AI Agent
474
518
 
475
- Choose from **5 AI frameworks** and **4 LLM providers** when generating your project:
519
+ Choose from **6 AI frameworks** and **4 LLM providers** when generating your project:
476
520
 
477
521
  ```bash
478
522
  # PydanticAI with OpenAI (default)
@@ -496,6 +540,7 @@ fastapi-fullstack create my_app --rag --database postgresql --task-queue celery
496
540
  | Framework | OpenAI | Anthropic | Gemini | OpenRouter |
497
541
  |-----------|:------:|:---------:|:------:|:----------:|
498
542
  | **PydanticAI** | ✓ | ✓ | ✓ | ✓ |
543
+ | **PydanticDeep** | ✓ | ✓ | ✓ | - |
499
544
  | **LangChain** | ✓ | ✓ | ✓ | - |
500
545
  | **LangGraph** | ✓ | ✓ | ✓ | - |
501
546
  | **CrewAI** | ✓ | ✓ | ✓ | - |
@@ -619,7 +664,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
619
664
  - **Image description** - Extract images from documents, describe via LLM vision API (opt-in)
620
665
  - **Chunking** - RecursiveCharacterTextSplitter with configurable size/overlap
621
666
  - **Reranking** - Cohere API or local CrossEncoder for improved search quality
622
- - **Agent integration** - All 5 AI frameworks get a `search_knowledge_base` tool automatically
667
+ - **Agent integration** - All 6 AI frameworks get a `search_knowledge_base` tool automatically
623
668
 
624
669
  ---
625
670
 
@@ -314,6 +314,7 @@ def create(
314
314
  database=DatabaseType.POSTGRESQL,
315
315
  enable_logfire=True,
316
316
  enable_redis=True,
317
+ enable_websockets=True,
317
318
  ai_framework=AIFrameworkType(ai_framework),
318
319
  llm_provider=LLMProviderType(llm_provider),
319
320
  enable_langsmith=ai_framework in ("langchain", "langgraph", "deepagents"),
@@ -76,6 +76,7 @@ class AIFrameworkType(StrEnum):
76
76
  LANGGRAPH = "langgraph"
77
77
  CREWAI = "crewai"
78
78
  DEEPAGENTS = "deepagents"
79
+ PYDANTIC_DEEP = "pydantic_deep"
79
80
 
80
81
 
81
82
  class LLMProviderType(StrEnum):
@@ -214,7 +215,7 @@ class ProjectConfig(BaseModel):
214
215
 
215
216
  # Authentication (always JWT + API Key)
216
217
  oauth_provider: OAuthProvider = OAuthProvider.NONE
217
- enable_session_management: bool = True
218
+ enable_session_management: bool = False
218
219
 
219
220
  # Observability
220
221
  enable_logfire: bool = True
@@ -234,15 +235,17 @@ class ProjectConfig(BaseModel):
234
235
  enable_sentry: bool = False
235
236
  enable_prometheus: bool = False
236
237
  enable_admin_panel: bool = False
237
- enable_websockets: bool = True
238
+ enable_websockets: bool = False
238
239
  enable_file_storage: bool = False
239
240
  ai_framework: AIFrameworkType = AIFrameworkType.PYDANTIC_AI
240
241
  llm_provider: LLMProviderType = LLMProviderType.OPENAI
242
+ sandbox_backend: str = "state" # "state" or "daytona" (for DeepAgents/PydanticDeep)
241
243
  enable_webhooks: bool = False
242
244
  enable_langsmith: bool = False
243
245
  enable_web_search: bool = False
246
+ use_telegram: bool = False
247
+ use_slack: bool = False
244
248
  enable_cors: bool = True
245
- enable_orjson: bool = True
246
249
 
247
250
  # Dev tools
248
251
  enable_pytest: bool = True
@@ -258,7 +261,7 @@ class ProjectConfig(BaseModel):
258
261
  python_version: str = "3.12"
259
262
 
260
263
  # Frontend
261
- frontend: FrontendType = FrontendType.NEXTJS
264
+ frontend: FrontendType = FrontendType.NONE
262
265
  frontend_port: int = 3000
263
266
  brand_color: BrandColorType = BrandColorType.BLUE
264
267
 
@@ -308,9 +311,11 @@ class ProjectConfig(BaseModel):
308
311
  raise ValueError("Caching requires Redis to be enabled")
309
312
  if self.llm_provider == LLMProviderType.OPENROUTER and self.ai_framework not in (
310
313
  AIFrameworkType.PYDANTIC_AI,
314
+ AIFrameworkType.PYDANTIC_DEEP,
311
315
  ):
312
316
  raise ValueError(
313
- f"OpenRouter is only supported with PydanticAI, not {self.ai_framework.value}"
317
+ f"OpenRouter is only supported with PydanticAI or PydanticDeep, "
318
+ f"not {self.ai_framework.value}"
314
319
  )
315
320
  if (
316
321
  self.enable_rate_limiting
@@ -333,7 +338,10 @@ class ProjectConfig(BaseModel):
333
338
  AIFrameworkType.LANGGRAPH,
334
339
  AIFrameworkType.DEEPAGENTS,
335
340
  ):
336
- raise ValueError("LangSmith requires LangChain, LangGraph, or DeepAgents framework")
341
+ raise ValueError(
342
+ "LangSmith requires LangChain, LangGraph, or DeepAgents framework. "
343
+ "PydanticDeep uses Logfire for observability."
344
+ )
337
345
 
338
346
  # Admin panel requires SQLAlchemy (SQLAdmin doesn't fully support SQLModel)
339
347
  if self.enable_admin_panel and self.orm_type == OrmType.SQLMODEL:
@@ -458,6 +466,8 @@ class ProjectConfig(BaseModel):
458
466
  "use_langgraph": self.ai_framework == AIFrameworkType.LANGGRAPH,
459
467
  "use_crewai": self.ai_framework == AIFrameworkType.CREWAI,
460
468
  "use_deepagents": self.ai_framework == AIFrameworkType.DEEPAGENTS,
469
+ "use_pydantic_deep": self.ai_framework == AIFrameworkType.PYDANTIC_DEEP,
470
+ "sandbox_backend": self.sandbox_backend,
461
471
  "llm_provider": self.llm_provider.value,
462
472
  "use_openai": self.llm_provider == LLMProviderType.OPENAI,
463
473
  "use_anthropic": self.llm_provider == LLMProviderType.ANTHROPIC,
@@ -474,7 +484,6 @@ class ProjectConfig(BaseModel):
474
484
  "websocket_auth_api_key": False,
475
485
  "websocket_auth_none": False,
476
486
  "enable_cors": self.enable_cors,
477
- "enable_orjson": self.enable_orjson,
478
487
  # Frontend features (always enabled)
479
488
  "enable_i18n": True,
480
489
  # Example CRUD (always disabled)
@@ -581,4 +590,7 @@ class ProjectConfig(BaseModel):
581
590
  "enable_rag_image_description": self.rag_features.enable_image_description
582
591
  if self.rag_features.enable_rag
583
592
  else False,
593
+ # Messaging channels
594
+ "use_telegram": self.use_telegram,
595
+ "use_slack": self.use_slack,
584
596
  }
@@ -367,11 +367,6 @@ def prompt_integrations(
367
367
  value="cors",
368
368
  checked=True,
369
369
  ),
370
- questionary.Choice(
371
- "orjson — faster JSON serialization",
372
- value="orjson",
373
- checked=True,
374
- ),
375
370
  ]
376
371
  )
377
372
 
@@ -398,7 +393,6 @@ def prompt_integrations(
398
393
  "enable_file_storage": "file_storage" in features,
399
394
  "enable_webhooks": "webhooks" in features,
400
395
  "enable_cors": "cors" in features,
401
- "enable_orjson": "orjson" in features,
402
396
  }
403
397
 
404
398
 
@@ -586,7 +580,13 @@ def prompt_ai_framework() -> AIFrameworkType:
586
580
  questionary.Choice("LangChain", value=AIFrameworkType.LANGCHAIN),
587
581
  questionary.Choice("LangGraph (ReAct agent)", value=AIFrameworkType.LANGGRAPH),
588
582
  questionary.Choice("CrewAI (multi-agent crews)", value=AIFrameworkType.CREWAI),
589
- questionary.Choice("DeepAgents (agentic coding)", value=AIFrameworkType.DEEPAGENTS),
583
+ questionary.Choice(
584
+ "DeepAgents (agentic coding, LangChain)", value=AIFrameworkType.DEEPAGENTS
585
+ ),
586
+ questionary.Choice(
587
+ "PydanticDeep (deep agentic coding, Docker sandbox)",
588
+ value=AIFrameworkType.PYDANTIC_DEEP,
589
+ ),
590
590
  ]
591
591
 
592
592
  return cast(
@@ -601,12 +601,43 @@ def prompt_ai_framework() -> AIFrameworkType:
601
601
  )
602
602
 
603
603
 
604
+ def prompt_sandbox_backend(ai_framework: AIFrameworkType) -> str:
605
+ """Prompt for sandbox/environment backend type.
606
+
607
+ Shown only when the selected AI framework supports sandbox backends
608
+ (DeepAgents, PydanticDeep).
609
+ """
610
+ console.print()
611
+ console.print("[bold cyan]Agent Sandbox Environment[/]")
612
+ console.print()
613
+
614
+ choices = [
615
+ questionary.Choice("State (in-memory, ephemeral — default)", value="state"),
616
+ ]
617
+
618
+ if ai_framework == AIFrameworkType.PYDANTIC_DEEP:
619
+ choices.append(
620
+ questionary.Choice("Daytona workspace (cloud dev environment)", value="daytona"),
621
+ )
622
+
623
+ return cast(
624
+ str,
625
+ _check_cancelled(
626
+ questionary.select(
627
+ "Select agent sandbox environment:",
628
+ choices=choices,
629
+ default=choices[0],
630
+ ).ask()
631
+ ),
632
+ )
633
+
634
+
604
635
  def prompt_llm_provider(ai_framework: AIFrameworkType) -> LLMProviderType:
605
636
  """Prompt for LLM provider selection.
606
637
 
607
638
  Args:
608
639
  ai_framework: The selected AI framework. OpenRouter is only
609
- available for PydanticAI (not LangChain, LangGraph, CrewAI, or DeepAgents).
640
+ available for PydanticAI and PydanticDeep (both use pydantic-ai under the hood).
610
641
  """
611
642
  console.print()
612
643
  console.print("[bold cyan]LLM Provider[/]")
@@ -618,8 +649,8 @@ def prompt_llm_provider(ai_framework: AIFrameworkType) -> LLMProviderType:
618
649
  questionary.Choice("Google Gemini (gemini-2.0-flash)", value=LLMProviderType.GOOGLE),
619
650
  ]
620
651
 
621
- # OpenRouter only available for PydanticAI (not LangChain, LangGraph, or CrewAI)
622
- if ai_framework == AIFrameworkType.PYDANTIC_AI:
652
+ # OpenRouter available for PydanticAI and PydanticDeep (both use pydantic-ai)
653
+ if ai_framework in (AIFrameworkType.PYDANTIC_AI, AIFrameworkType.PYDANTIC_DEEP):
623
654
  choices.append(
624
655
  questionary.Choice("OpenRouter (multi-provider)", value=LLMProviderType.OPENROUTER)
625
656
  )
@@ -767,6 +798,35 @@ def prompt_rag_config() -> RAGFeatures:
767
798
  )
768
799
 
769
800
 
801
+ def prompt_channels() -> tuple[bool, bool]:
802
+ """Prompt for messaging channel integrations (Telegram, Slack)."""
803
+ console.print()
804
+ console.print("[bold cyan]Messaging Channels[/]")
805
+ console.print()
806
+
807
+ use_telegram = cast(
808
+ bool,
809
+ _check_cancelled(
810
+ questionary.confirm(
811
+ "Enable Telegram bot integration? (multi-bot, polling + webhook, role-based access)",
812
+ default=False,
813
+ ).ask()
814
+ ),
815
+ )
816
+
817
+ use_slack = cast(
818
+ bool,
819
+ _check_cancelled(
820
+ questionary.confirm(
821
+ "Enable Slack bot integration? (Events API, threads, @mention support)",
822
+ default=False,
823
+ ).ask()
824
+ ),
825
+ )
826
+
827
+ return use_telegram, use_slack
828
+
829
+
770
830
  def prompt_python_version() -> str:
771
831
  """Prompt for Python version selection."""
772
832
  console.print()
@@ -894,12 +954,19 @@ def run_interactive_prompts() -> ProjectConfig:
894
954
  rag_features = RAGFeatures()
895
955
 
896
956
  ai_framework = prompt_ai_framework()
957
+
958
+ # Sandbox backend selection for agentic coding frameworks
959
+ sandbox_backend = "state"
960
+ if ai_framework in (AIFrameworkType.DEEPAGENTS, AIFrameworkType.PYDANTIC_DEEP):
961
+ sandbox_backend = prompt_sandbox_backend(ai_framework)
962
+
897
963
  llm_provider = prompt_llm_provider(ai_framework)
898
964
 
899
965
  # RAG Logic
900
966
  rag_features = prompt_rag_config()
901
967
 
902
- # LangSmith for LangChain-ecosystem frameworks
968
+ # LangSmith for LangChain-ecosystem frameworks only
969
+ # (PydanticDeep uses Logfire for observability, not LangSmith)
903
970
  if ai_framework in (
904
971
  AIFrameworkType.LANGCHAIN,
905
972
  AIFrameworkType.LANGGRAPH,
@@ -907,6 +974,9 @@ def run_interactive_prompts() -> ProjectConfig:
907
974
  ):
908
975
  enable_langsmith = prompt_langsmith()
909
976
 
977
+ # Messaging channel integrations
978
+ use_telegram, use_slack = prompt_channels()
979
+
910
980
  # Rate limit configuration (when rate limiting is enabled)
911
981
  rate_limit_requests = 100
912
982
  rate_limit_period = 60
@@ -939,9 +1009,12 @@ def run_interactive_prompts() -> ProjectConfig:
939
1009
  logfire_features=logfire_features,
940
1010
  background_tasks=background_tasks,
941
1011
  ai_framework=ai_framework,
1012
+ sandbox_backend=sandbox_backend,
942
1013
  llm_provider=llm_provider,
943
1014
  rag_features=rag_features,
944
1015
  enable_langsmith=enable_langsmith,
1016
+ use_telegram=use_telegram,
1017
+ use_slack=use_slack,
945
1018
  rate_limit_requests=rate_limit_requests,
946
1019
  rate_limit_period=rate_limit_period,
947
1020
  rate_limit_storage=rate_limit_storage,
@@ -990,11 +1063,17 @@ def show_summary(config: ProjectConfig) -> None:
990
1063
  if config.enable_admin_panel:
991
1064
  enabled_features.append("SQL Admin Panel")
992
1065
  ai_info = f"AI Agent ({config.ai_framework.value}, {config.llm_provider.value})"
1066
+ if config.ai_framework in (AIFrameworkType.DEEPAGENTS, AIFrameworkType.PYDANTIC_DEEP):
1067
+ ai_info += f", sandbox: {config.sandbox_backend}"
993
1068
  if config.rag_features.enable_rag:
994
1069
  ai_info += f" + RAG ({config.rag_features.vector_store.value})"
995
1070
  enabled_features.append(ai_info)
996
1071
  if config.enable_webhooks:
997
1072
  enabled_features.append("Webhooks")
1073
+ if config.use_telegram:
1074
+ enabled_features.append("Telegram")
1075
+ if config.use_slack:
1076
+ enabled_features.append("Slack")
998
1077
  if config.enable_docker:
999
1078
  enabled_features.append("Docker")
1000
1079