fastapi-fullstack 0.2.4__tar.gz → 0.2.6__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 (423) hide show
  1. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/PKG-INFO +67 -21
  2. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/README.md +66 -20
  3. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/fastapi_gen/cli.py +1 -0
  4. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/fastapi_gen/config.py +19 -7
  5. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/fastapi_gen/prompts.py +90 -11
  6. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/pyproject.toml +2 -1
  7. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/VARIABLES.md +21 -3
  8. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/cookiecutter.json +5 -2
  9. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/hooks/post_gen_project.py +5 -2
  10. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.env.prod.example +14 -0
  11. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.gitignore +1 -1
  12. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/README.md +12 -0
  13. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/.env.example +27 -1
  14. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/.pre-commit-config.yaml +1 -1
  15. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/alembic/env.py +24 -0
  16. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/__init__.py +11 -0
  17. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/assistant.py +7 -2
  18. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/deepagents_assistant.py +81 -34
  19. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/langchain_assistant.py +1 -1
  20. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/agents/pydantic_deep_assistant.py +359 -0
  21. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/deps.py +134 -18
  22. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/exception_handlers.py +6 -15
  23. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/__init__.py +50 -2
  24. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/admin_conversations.py +400 -0
  25. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/admin_ratings.py +365 -0
  26. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/agent.py +1081 -47
  27. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/channels.py +431 -0
  28. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/conversations.py +531 -15
  29. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/projects.py +200 -0
  30. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/slack_webhook.py +128 -0
  31. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/telegram_webhook.py +181 -0
  32. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/channels/__init__.py +31 -0
  33. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/channels/base.py +99 -0
  34. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/channels/router.py +633 -0
  35. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/channels/slack.py +254 -0
  36. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/channels/telegram.py +259 -0
  37. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/commands/channel.py +309 -0
  38. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/core/channel_crypto.py +47 -0
  39. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/config.py +37 -1
  40. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/sanitize.py +1 -1
  41. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/__init__.py +18 -0
  42. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_bot.py +243 -0
  43. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_identity.py +219 -0
  44. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_session.py +303 -0
  45. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation.py +44 -1
  46. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation_share.py +277 -0
  47. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/db/models/message_rating.py +295 -0
  48. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/db/models/project.py +425 -0
  49. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/session.py +5 -0
  50. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/main.py +79 -11
  51. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/vectorstore.py +1 -1
  52. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/__init__.py +21 -1
  53. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_bot.py +387 -0
  54. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_identity.py +280 -0
  55. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_session.py +378 -0
  56. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation.py +225 -1
  57. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation_share.py +373 -0
  58. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/repositories/message_rating.py +541 -0
  59. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/repositories/project.py +611 -0
  60. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/schemas/channel_bot.py +165 -0
  61. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation.py +32 -1
  62. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation_share.py +112 -0
  63. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/schemas/message_rating.py +126 -0
  64. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/schemas/project.py +103 -0
  65. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/__init__.py +16 -1
  66. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/services/agent_invocation.py +496 -0
  67. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/services/channel_bot.py +331 -0
  68. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/conversation.py +569 -44
  69. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/services/conversation_share.py +495 -0
  70. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/services/message_rating.py +891 -0
  71. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/backend/app/services/project.py +678 -0
  72. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/pyproject.toml +22 -8
  73. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_admin.py +0 -14
  74. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_agents.py +3 -3
  75. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_services_conversation.py +27 -7
  76. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_ssrf.py +0 -12
  77. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/architecture.md +4 -0
  78. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/configuration.md +21 -1
  79. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/docs/howto/use-ratings.md +132 -0
  80. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/permissions.md +11 -0
  81. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/conversations/page.tsx +273 -0
  82. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/ratings/page.tsx +334 -0
  83. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/chat/page.tsx +29 -0
  84. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/dashboard/page.tsx +40 -0
  85. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/shared/[token]/page.tsx +98 -0
  86. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/login/route.ts +3 -1
  87. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/me/route.ts +4 -1
  88. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/refresh/route.ts +4 -1
  89. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/messages/[messageId]/rate/route.ts +95 -0
  90. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/shares/[shareId]/route.ts +29 -0
  91. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/shares/route.ts +55 -0
  92. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/shared-with-me/route.ts +27 -0
  93. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/admin/conversations/route.ts +48 -0
  94. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/admin/ratings/export/route.ts +58 -0
  95. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/admin/ratings/route.ts +42 -0
  96. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/admin/ratings/summary/route.ts +35 -0
  97. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-container.tsx +20 -3
  98. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/conversation-sidebar.tsx +43 -0
  99. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-item.tsx +25 -1
  100. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/rating-buttons.tsx +244 -0
  101. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/share-dialog.tsx +199 -0
  102. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +11 -0
  103. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-admin-conversations.ts +130 -0
  104. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-auth.ts +18 -8
  105. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-chat.ts +70 -8
  106. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversation-shares.ts +126 -0
  107. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-projects.ts +207 -0
  108. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-websocket.ts +5 -2
  109. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/lib/admin-auth.ts +47 -0
  110. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/lib/constants.ts +4 -0
  111. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/lib/server-api.ts +7 -1
  112. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.ts +7 -0
  113. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-store.ts +9 -0
  114. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/index.ts +3 -0
  115. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/stores/project-store.ts +73 -0
  116. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/types/chat.ts +20 -0
  117. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/types/conversation.ts +149 -0
  118. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/types/index.ts +3 -0
  119. fastapi_fullstack-0.2.6/template/{{cookiecutter.project_slug}}/frontend/src/types/project.ts +59 -0
  120. fastapi_fullstack-0.2.4/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/chat/page.tsx +0 -16
  121. fastapi_fullstack-0.2.4/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +0 -4
  122. fastapi_fullstack-0.2.4/template/{{cookiecutter.project_slug}}/frontend/src/types/conversation.ts +0 -47
  123. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/.gitignore +0 -0
  124. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/LICENSE +0 -0
  125. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/fastapi_gen/__init__.py +0 -0
  126. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/fastapi_gen/generator.py +0 -0
  127. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/commands/add-endpoint.md +0 -0
  128. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/commands/fix-issue.md +0 -0
  129. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/commands/review.md +0 -0
  130. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/rules/api-conventions.md +0 -0
  131. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/rules/architecture.md +0 -0
  132. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/rules/code-style.md +0 -0
  133. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/rules/exceptions-security.md +0 -0
  134. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/rules/frontend.md +0 -0
  135. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/rules/schemas-models.md +0 -0
  136. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/rules/testing.md +0 -0
  137. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.claude/settings.json +0 -0
  138. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +0 -0
  139. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/.gitlab-ci.yml +0 -0
  140. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/AGENTS.md +0 -0
  141. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/CLAUDE.md +0 -0
  142. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/Makefile +0 -0
  143. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/.dockerignore +0 -0
  144. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/Dockerfile +0 -0
  145. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/alembic/script.py.mako +0 -0
  146. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/.gitkeep +0 -0
  147. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/alembic.ini +0 -0
  148. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/__init__.py +0 -0
  149. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/admin.py +0 -0
  150. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/crewai_assistant.py +0 -0
  151. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/langgraph_assistant.py +0 -0
  152. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/prompts.py +0 -0
  153. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/__init__.py +0 -0
  154. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/datetime_tool.py +0 -0
  155. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/rag_tool.py +0 -0
  156. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/web_search.py +0 -0
  157. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/__init__.py +0 -0
  158. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/router.py +0 -0
  159. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/__init__.py +0 -0
  160. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/auth.py +0 -0
  161. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/files.py +0 -0
  162. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/health.py +0 -0
  163. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/oauth.py +0 -0
  164. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/rag.py +0 -0
  165. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/sessions.py +0 -0
  166. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/users.py +0 -0
  167. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/webhooks.py +0 -0
  168. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/api/versioning.py +0 -0
  169. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/clients/__init__.py +0 -0
  170. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/clients/redis.py +0 -0
  171. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/commands/__init__.py +0 -0
  172. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/commands/cleanup.py +0 -0
  173. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/commands/example.py +0 -0
  174. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/commands/rag.py +0 -0
  175. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/commands/seed.py +0 -0
  176. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/__init__.py +0 -0
  177. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/cache.py +0 -0
  178. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/csrf.py +0 -0
  179. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/exceptions.py +0 -0
  180. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/logfire_setup.py +0 -0
  181. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/logging.py +0 -0
  182. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/middleware.py +0 -0
  183. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/oauth.py +0 -0
  184. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/rate_limit.py +0 -0
  185. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/core/security.py +0 -0
  186. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/__init__.py +0 -0
  187. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/base.py +0 -0
  188. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/chat_file.py +0 -0
  189. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/rag_document.py +0 -0
  190. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/session.py +0 -0
  191. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/sync_log.py +0 -0
  192. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/sync_source.py +0 -0
  193. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/user.py +0 -0
  194. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/db/models/webhook.py +0 -0
  195. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/__init__.py +0 -0
  196. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/config.py +0 -0
  197. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/connectors/__init__.py +0 -0
  198. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/connectors/google_drive.py +0 -0
  199. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/connectors/s3.py +0 -0
  200. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/documents.py +0 -0
  201. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/embeddings.py +0 -0
  202. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/image_describer.py +0 -0
  203. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/ingestion.py +0 -0
  204. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/models.py +0 -0
  205. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/reranker.py +0 -0
  206. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/retrieval.py +0 -0
  207. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/__init__.py +0 -0
  208. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/base.py +0 -0
  209. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/google_drive.py +0 -0
  210. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/rag/sources/s3.py +0 -0
  211. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/chat_file.py +0 -0
  212. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/rag_document.py +0 -0
  213. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/session.py +0 -0
  214. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/sync_log.py +0 -0
  215. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/sync_source.py +0 -0
  216. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/user.py +0 -0
  217. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/repositories/webhook.py +0 -0
  218. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/__init__.py +0 -0
  219. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/base.py +0 -0
  220. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/file.py +0 -0
  221. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/rag.py +0 -0
  222. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/session.py +0 -0
  223. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/sync_source.py +0 -0
  224. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/token.py +0 -0
  225. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/user.py +0 -0
  226. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/schemas/webhook.py +0 -0
  227. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/file_storage.py +0 -0
  228. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/file_upload.py +0 -0
  229. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/rag_document.py +0 -0
  230. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/rag_sync.py +0 -0
  231. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/session.py +0 -0
  232. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/sync_source.py +0 -0
  233. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/user.py +0 -0
  234. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/services/webhook.py +0 -0
  235. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/__init__.py +0 -0
  236. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/arq_app.py +0 -0
  237. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/celery_app.py +0 -0
  238. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/taskiq_app.py +0 -0
  239. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/__init__.py +0 -0
  240. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/examples.py +0 -0
  241. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/rag_tasks.py +0 -0
  242. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/schedules.py +0 -0
  243. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/taskiq_examples.py +0 -0
  244. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/cli/__init__.py +0 -0
  245. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/cli/commands.py +0 -0
  246. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/scripts/.gitkeep +0 -0
  247. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/__init__.py +0 -0
  248. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/api/__init__.py +0 -0
  249. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_auth.py +0 -0
  250. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_exceptions.py +0 -0
  251. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_health.py +0 -0
  252. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_metrics.py +0 -0
  253. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_openapi.py +0 -0
  254. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_users.py +0 -0
  255. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/conftest.py +0 -0
  256. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_clients.py +0 -0
  257. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_commands.py +0 -0
  258. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_core.py +0 -0
  259. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_migrations.py +0 -0
  260. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_repositories.py +0 -0
  261. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_security.py +0 -0
  262. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_services.py +0 -0
  263. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/backend/tests/test_worker.py +0 -0
  264. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docker-compose.dev.yml +0 -0
  265. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docker-compose.frontend.yml +0 -0
  266. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docker-compose.prod.yml +0 -0
  267. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docker-compose.yml +0 -0
  268. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/adding_features.md +0 -0
  269. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/commands.md +0 -0
  270. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/file-processing.md +0 -0
  271. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/howto/add-agent-tool.md +0 -0
  272. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/howto/add-api-endpoint.md +0 -0
  273. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/howto/add-background-task.md +0 -0
  274. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/howto/add-rag-source.md +0 -0
  275. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/howto/add-sync-connector.md +0 -0
  276. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/howto/configure-sync-sources.md +0 -0
  277. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/howto/customize-agent-prompt.md +0 -0
  278. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/patterns.md +0 -0
  279. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/docs/testing.md +0 -0
  280. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/.dockerignore +0 -0
  281. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/.env.example +0 -0
  282. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/.gitignore +0 -0
  283. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/.prettierignore +0 -0
  284. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/.prettierrc +0 -0
  285. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/Dockerfile +0 -0
  286. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/README.md +0 -0
  287. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.setup.ts +0 -0
  288. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.spec.ts +0 -0
  289. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/e2e/chat.spec.ts +0 -0
  290. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/e2e/home.spec.ts +0 -0
  291. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/eslint.config.mjs +0 -0
  292. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/instrumentation.ts +0 -0
  293. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/messages/en.json +0 -0
  294. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/messages/pl.json +0 -0
  295. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/next.config.ts +0 -0
  296. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/package.json +0 -0
  297. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/playwright.config.ts +0 -0
  298. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs +0 -0
  299. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/layout.tsx +0 -0
  300. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/login/page.tsx +0 -0
  301. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/register/page.tsx +0 -0
  302. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/layout.tsx +0 -0
  303. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/profile/page.tsx +0 -0
  304. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/rag/page.tsx +0 -0
  305. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/page.tsx +0 -0
  306. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/auth/callback/page.tsx +0 -0
  307. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/error.tsx +0 -0
  308. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/layout.tsx +0 -0
  309. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/page.tsx +0 -0
  310. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/logout/route.ts +0 -0
  311. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/oauth-callback/route.ts +0 -0
  312. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/register/route.ts +0 -0
  313. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/messages/route.ts +0 -0
  314. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/route.ts +0 -0
  315. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/export/route.ts +0 -0
  316. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/route.ts +0 -0
  317. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/files/[id]/route.ts +0 -0
  318. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/files/upload/route.ts +0 -0
  319. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/health/route.ts +0 -0
  320. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/users/avatar/[userId]/route.ts +0 -0
  321. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/users/me/avatar/route.ts +0 -0
  322. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/agent/models/route.ts +0 -0
  323. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/documents/[documentId]/route.ts +0 -0
  324. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/documents/route.ts +0 -0
  325. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/info/route.ts +0 -0
  326. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/ingest/route.ts +0 -0
  327. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/route.ts +0 -0
  328. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/route.ts +0 -0
  329. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/[docId]/download/route.ts +0 -0
  330. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/[docId]/route.ts +0 -0
  331. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/route.ts +0 -0
  332. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/search/route.ts +0 -0
  333. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/supported-formats/route.ts +0 -0
  334. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/[syncId]/route.ts +0 -0
  335. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/connectors/route.ts +0 -0
  336. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/local/route.ts +0 -0
  337. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/[sourceId]/route.ts +0 -0
  338. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/[sourceId]/trigger/route.ts +0 -0
  339. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/route.ts +0 -0
  340. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/global-error.tsx +0 -0
  341. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/globals.css +0 -0
  342. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/layout.tsx +0 -0
  343. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/not-found.tsx +0 -0
  344. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/app/providers.tsx +0 -0
  345. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/index.ts +0 -0
  346. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/login-form.tsx +0 -0
  347. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/register-form.tsx +0 -0
  348. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-input.tsx +0 -0
  349. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/copy-button.tsx +0 -0
  350. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/index.ts +0 -0
  351. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/markdown-content.tsx +0 -0
  352. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-list.tsx +0 -0
  353. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-approval-dialog.tsx +0 -0
  354. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-call-card.tsx +0 -0
  355. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/google-icon.tsx +0 -0
  356. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/index.ts +0 -0
  357. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/language-switcher.tsx +0 -0
  358. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/auth-guard.tsx +0 -0
  359. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/breadcrumb.tsx +0 -0
  360. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/header.tsx +0 -0
  361. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/index.ts +0 -0
  362. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/landing-nav.tsx +0 -0
  363. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/page-transition.tsx +0 -0
  364. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/sidebar.tsx +0 -0
  365. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/index.ts +0 -0
  366. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-provider.tsx +0 -0
  367. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-toggle.tsx +0 -0
  368. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/accordion.tsx +0 -0
  369. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/alert-dialog.tsx +0 -0
  370. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/avatar.tsx +0 -0
  371. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/badge.tsx +0 -0
  372. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.test.tsx +0 -0
  373. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.tsx +0 -0
  374. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/card.tsx +0 -0
  375. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/checkbox.tsx +0 -0
  376. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/dialog.tsx +0 -0
  377. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  378. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/index.ts +0 -0
  379. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/input.tsx +0 -0
  380. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/label.tsx +0 -0
  381. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/popover.tsx +0 -0
  382. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/progress.tsx +0 -0
  383. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/radio-group.tsx +0 -0
  384. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/scroll-area.tsx +0 -0
  385. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/select.tsx +0 -0
  386. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/separator.tsx +0 -0
  387. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/sheet.tsx +0 -0
  388. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/skeleton.tsx +0 -0
  389. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/spinner.tsx +0 -0
  390. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/switch.tsx +0 -0
  391. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/table.tsx +0 -0
  392. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/tabs.tsx +0 -0
  393. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/textarea.tsx +0 -0
  394. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/tooltip.tsx +0 -0
  395. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversations.ts +0 -0
  396. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/i18n.ts +0 -0
  397. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/lib/api-client.ts +0 -0
  398. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/lib/file-api.ts +0 -0
  399. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/lib/rag-api.ts +0 -0
  400. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.test.ts +0 -0
  401. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.ts +0 -0
  402. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/middleware.ts +0 -0
  403. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.test.ts +0 -0
  404. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-sidebar-store.ts +0 -0
  405. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/conversation-store.ts +0 -0
  406. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/sidebar-store.ts +0 -0
  407. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/stores/theme-store.ts +0 -0
  408. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/types/api.ts +0 -0
  409. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/types/auth.ts +0 -0
  410. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/src/types/speech.d.ts +0 -0
  411. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/tsconfig.json +0 -0
  412. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/vercel.json +0 -0
  413. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/vitest.config.ts +0 -0
  414. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/frontend/vitest.setup.ts +0 -0
  415. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/kubernetes/configmap.yaml +0 -0
  416. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/kubernetes/deployment.yaml +0 -0
  417. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/kubernetes/ingress.yaml +0 -0
  418. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/kubernetes/kustomization.yaml +0 -0
  419. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/kubernetes/namespace.yaml +0 -0
  420. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/kubernetes/secret.yaml +0 -0
  421. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/kubernetes/service.yaml +0 -0
  422. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/template/{{cookiecutter.project_slug}}/nginx/nginx.conf +0 -0
  423. {fastapi_fullstack-0.2.4 → fastapi_fullstack-0.2.6}/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.6
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,11 +390,14 @@ 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
400
+ - **Message Ratings** - Like/dislike responses with feedback, admin analytics
358
401
  - **Image Description** - Extract images from documents, describe via LLM vision
359
402
  - **Multimodal Embeddings** - Google Gemini embedding model (text + images)
360
403
  - **Document Sources** - Local files, API upload, Google Drive, S3/MinIO
@@ -380,7 +423,7 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
380
423
 
381
424
  | Category | Integrations |
382
425
  |----------|-------------|
383
- | **AI Frameworks** | PydanticAI, LangChain, LangGraph, CrewAI, DeepAgents |
426
+ | **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents |
384
427
  | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |
385
428
  | **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |
386
429
  | **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (configurable, scheduled) |
@@ -389,6 +432,8 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
389
432
  | **Security** | Rate limiting, CORS, CSRF protection |
390
433
  | **Observability** | Logfire, LangSmith, Sentry, Prometheus |
391
434
  | **Admin** | SQLAdmin panel with auth |
435
+ | **Collaboration** | Conversation sharing (direct + link), admin conversation browser |
436
+ | **Messaging** | Telegram multi-bot (polling + webhook), Slack multi-bot (Events API + Socket Mode) |
392
437
  | **Events** | Webhooks, WebSockets |
393
438
  | **DevOps** | Docker, GitHub Actions, GitLab CI, Kubernetes |
394
439
 
@@ -512,7 +557,7 @@ See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agen
512
557
 
513
558
  ## 🤖 AI Agent
514
559
 
515
- Choose from **5 AI frameworks** and **4 LLM providers** when generating your project:
560
+ Choose from **6 AI frameworks** and **4 LLM providers** when generating your project:
516
561
 
517
562
  ```bash
518
563
  # PydanticAI with OpenAI (default)
@@ -536,6 +581,7 @@ fastapi-fullstack create my_app --rag --database postgresql --task-queue celery
536
581
  | Framework | OpenAI | Anthropic | Gemini | OpenRouter |
537
582
  |-----------|:------:|:---------:|:------:|:----------:|
538
583
  | **PydanticAI** | ✓ | ✓ | ✓ | ✓ |
584
+ | **PydanticDeep** | ✓ | ✓ | ✓ | - |
539
585
  | **LangChain** | ✓ | ✓ | ✓ | - |
540
586
  | **LangGraph** | ✓ | ✓ | ✓ | - |
541
587
  | **CrewAI** | ✓ | ✓ | ✓ | - |
@@ -659,7 +705,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
659
705
  - **Image description** - Extract images from documents, describe via LLM vision API (opt-in)
660
706
  - **Chunking** - RecursiveCharacterTextSplitter with configurable size/overlap
661
707
  - **Reranking** - Cohere API or local CrossEncoder for improved search quality
662
- - **Agent integration** - All 5 AI frameworks get a `search_knowledge_base` tool automatically
708
+ - **Agent integration** - All 6 AI frameworks get a `search_knowledge_base` tool automatically
663
709
 
664
710
  ---
665
711
 
@@ -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,11 +350,14 @@ 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
360
+ - **Message Ratings** - Like/dislike responses with feedback, admin analytics
318
361
  - **Image Description** - Extract images from documents, describe via LLM vision
319
362
  - **Multimodal Embeddings** - Google Gemini embedding model (text + images)
320
363
  - **Document Sources** - Local files, API upload, Google Drive, S3/MinIO
@@ -340,7 +383,7 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
340
383
 
341
384
  | Category | Integrations |
342
385
  |----------|-------------|
343
- | **AI Frameworks** | PydanticAI, LangChain, LangGraph, CrewAI, DeepAgents |
386
+ | **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, CrewAI, DeepAgents |
344
387
  | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |
345
388
  | **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |
346
389
  | **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (configurable, scheduled) |
@@ -349,6 +392,8 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
349
392
  | **Security** | Rate limiting, CORS, CSRF protection |
350
393
  | **Observability** | Logfire, LangSmith, Sentry, Prometheus |
351
394
  | **Admin** | SQLAdmin panel with auth |
395
+ | **Collaboration** | Conversation sharing (direct + link), admin conversation browser |
396
+ | **Messaging** | Telegram multi-bot (polling + webhook), Slack multi-bot (Events API + Socket Mode) |
352
397
  | **Events** | Webhooks, WebSockets |
353
398
  | **DevOps** | Docker, GitHub Actions, GitLab CI, Kubernetes |
354
399
 
@@ -472,7 +517,7 @@ See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agen
472
517
 
473
518
  ## 🤖 AI Agent
474
519
 
475
- Choose from **5 AI frameworks** and **4 LLM providers** when generating your project:
520
+ Choose from **6 AI frameworks** and **4 LLM providers** when generating your project:
476
521
 
477
522
  ```bash
478
523
  # PydanticAI with OpenAI (default)
@@ -496,6 +541,7 @@ fastapi-fullstack create my_app --rag --database postgresql --task-queue celery
496
541
  | Framework | OpenAI | Anthropic | Gemini | OpenRouter |
497
542
  |-----------|:------:|:---------:|:------:|:----------:|
498
543
  | **PydanticAI** | ✓ | ✓ | ✓ | ✓ |
544
+ | **PydanticDeep** | ✓ | ✓ | ✓ | - |
499
545
  | **LangChain** | ✓ | ✓ | ✓ | - |
500
546
  | **LangGraph** | ✓ | ✓ | ✓ | - |
501
547
  | **CrewAI** | ✓ | ✓ | ✓ | - |
@@ -619,7 +665,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
619
665
  - **Image description** - Extract images from documents, describe via LLM vision API (opt-in)
620
666
  - **Chunking** - RecursiveCharacterTextSplitter with configurable size/overlap
621
667
  - **Reranking** - Cohere API or local CrossEncoder for improved search quality
622
- - **Agent integration** - All 5 AI frameworks get a `search_knowledge_base` tool automatically
668
+ - **Agent integration** - All 6 AI frameworks get a `search_knowledge_base` tool automatically
623
669
 
624
670
  ---
625
671
 
@@ -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
  }