fastapi-fullstack 0.2.19__tar.gz → 0.2.20__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 (950) hide show
  1. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/PKG-INFO +48 -39
  2. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/README.md +44 -35
  3. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/UPGRADES.yaml +13 -0
  4. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/cli.py +15 -2
  5. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/config.py +28 -3
  6. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/prompts.py +42 -2
  7. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/pyproject.toml +3 -3
  8. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/VARIABLES.md +15 -13
  9. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/cookiecutter.json +2 -0
  10. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/hooks/post_gen_project.py +50 -0
  11. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +13 -13
  12. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.gitlab-ci.yml +1 -1
  13. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/ENV_VARS.md +5 -0
  14. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/MANUAL_STEPS.md +9 -0
  15. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/.env.example +16 -0
  16. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/env.py +9 -0
  17. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/assistant.py +34 -4
  18. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/mcp.py +7 -4
  19. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/mcp_oauth.py +12 -12
  20. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/app/agents/memory.py +139 -0
  21. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/app/agents/openai_compatible.py +41 -0
  22. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/pydantic_deep_assistant.py +90 -70
  23. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/code_execution.py +1 -1
  24. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/deps.py +12 -0
  25. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/__init__.py +8 -0
  26. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/agent.py +18 -26
  27. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/conversations.py +7 -1
  28. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/health.py +2 -0
  29. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/me_memory.py +114 -0
  30. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/config.py +24 -2
  31. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/app/db/memory_pool.py +180 -0
  32. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/app/db/migration_filters.py +29 -0
  33. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/todo_pool.py +7 -3
  34. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/main.py +12 -0
  35. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/app/schemas/user_memory.py +49 -0
  36. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/agent.py +15 -0
  37. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/agent_invocation.py +48 -7
  38. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/agent_session.py +157 -73
  39. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/channels/router.py +3 -0
  40. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/channels/slack.py +2 -1
  41. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/conversation.py +27 -2
  42. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/embeddings.py +6 -0
  43. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/user.py +8 -0
  44. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/app/services/user_memory.py +202 -0
  45. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/pyproject.toml +38 -15
  46. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/api/test_me_memory.py +217 -0
  47. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_agents.py +21 -0
  48. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/test_channel_history.py +38 -0
  49. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/test_conversation_write_access.py +121 -0
  50. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_mcp_connections.py +18 -18
  51. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/test_memory.py +297 -0
  52. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/test_memory_channels.py +65 -0
  53. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/test_memory_postgres.py +127 -0
  54. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/test_openai_compatible.py +60 -0
  55. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/backend/tests/test_pydantic_deep_history.py +167 -0
  56. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_services_conversation.py +59 -1
  57. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docker-compose.dev.yml +5 -5
  58. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docker-compose.prod.yml +12 -9
  59. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docker-compose.yml +5 -5
  60. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/configuration.md +8 -0
  61. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/layout.tsx +4 -1
  62. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/memory/page.tsx +22 -0
  63. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/memory/file/route.ts +79 -0
  64. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/memory/route.ts +28 -0
  65. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-call-card.tsx +27 -10
  66. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/memory.tsx +222 -0
  67. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/skills.tsx +27 -0
  68. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/demo/demo-replay.tsx +51 -11
  69. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-delete-dialog.tsx +53 -0
  70. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-file-editor.tsx +121 -0
  71. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-file-name.ts +30 -0
  72. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/memory-manager.tsx +247 -0
  73. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +3 -0
  74. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-memory.ts +100 -0
  75. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-step-replay.ts +1 -1
  76. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/agent-step-captions.ts +14 -3
  77. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/constants.ts +3 -0
  78. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/lib/memory-api.ts +53 -0
  79. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/lib/py-literal.ts +112 -0
  80. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/query-keys.ts +5 -0
  81. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/lib/skill-result.test.ts +38 -0
  82. fastapi_fullstack-0.2.20/template/{{cookiecutter.project_slug}}/frontend/src/lib/skill-result.ts +30 -0
  83. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/kubernetes/secret.yaml +3 -0
  84. fastapi_fullstack-0.2.19/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/skills.tsx +0 -35
  85. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/.gitignore +0 -0
  86. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/LICENSE +0 -0
  87. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/__init__.py +0 -0
  88. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/generator.py +0 -0
  89. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/__init__.py +0 -0
  90. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/_render_worker.py +0 -0
  91. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/classify.py +0 -0
  92. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/fetch.py +0 -0
  93. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/manifest.py +0 -0
  94. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/merge.py +0 -0
  95. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/metadata.py +0 -0
  96. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/normalize.py +0 -0
  97. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/reconcile.py +0 -0
  98. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/recovery.py +0 -0
  99. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/rename_guard.py +0 -0
  100. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/render.py +0 -0
  101. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/report.py +0 -0
  102. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/fastapi_gen/upgrade/runner.py +0 -0
  103. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/commands/add-endpoint.md +0 -0
  104. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/commands/fix-issue.md +0 -0
  105. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/commands/review.md +0 -0
  106. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/rules/api-conventions.md +0 -0
  107. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/rules/architecture.md +0 -0
  108. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/rules/code-style.md +0 -0
  109. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/rules/exceptions-security.md +0 -0
  110. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/rules/frontend.md +0 -0
  111. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/rules/schemas-models.md +0 -0
  112. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/rules/testing.md +0 -0
  113. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/settings.json +0 -0
  114. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/agent-tool/SKILL.md +0 -0
  115. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/alembic-migration/SKILL.md +0 -0
  116. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/background-task/SKILL.md +0 -0
  117. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/billing-stripe/SKILL.md +0 -0
  118. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/channel-bot/SKILL.md +0 -0
  119. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/frontend-feature/SKILL.md +0 -0
  120. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/pytest-suite/SKILL.md +0 -0
  121. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.claude/skills/rag-knowledge/SKILL.md +0 -0
  122. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/.gitignore +0 -0
  123. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/AGENTS.md +0 -0
  124. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/CLAUDE.md +0 -0
  125. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/CONTRIBUTING.md +0 -0
  126. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/Makefile +0 -0
  127. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/README.md +0 -0
  128. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/SECURITY.md +0 -0
  129. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/.dockerignore +0 -0
  130. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/.pre-commit-config.yaml +0 -0
  131. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/Dockerfile +0 -0
  132. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/script.py.mako +0 -0
  133. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/.gitkeep +0 -0
  134. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0000_create_users.py +0 -0
  135. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0001_create_organization_tables.py +0 -0
  136. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0002_backfill_personal_orgs.py +0 -0
  137. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0003_add_is_app_admin.py +0 -0
  138. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0004_5_create_core_tables.py +0 -0
  139. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0004_create_audit_log.py +0 -0
  140. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0005_add_org_id_to_conversations_and_rag.py +0 -0
  141. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0006_backfill_org_id_on_conversations.py +0 -0
  142. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0007_create_knowledge_bases.py +0 -0
  143. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0008_backfill_default_kbs.py +0 -0
  144. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0009_conv_active_kb_ids.py +0 -0
  145. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0010_org_billing_seats.py +0 -0
  146. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0011_create_plan_price_tables.py +0 -0
  147. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0012_create_subscription_table.py +0 -0
  148. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0013_create_stripe_event_table.py +0 -0
  149. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0014_credits_usage_events.py +0 -0
  150. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0015_create_mv_usage_daily.py +0 -0
  151. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0016_user_onboarding_at.py +0 -0
  152. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0018_user_slash_commands.py +0 -0
  153. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0019_user_external_id.py +0 -0
  154. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0020_conversation_external_user_id.py +0 -0
  155. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0021_create_items.py +0 -0
  156. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0022_sync_source_org_scope.py +0 -0
  157. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0023_add_is_demo_conversations.py +0 -0
  158. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0024_create_webhook_tables.py +0 -0
  159. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0025_message_thinking.py +0 -0
  160. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0026_create_mcp_connections.py +0 -0
  161. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/0027_user_magic_link_epoch.py +0 -0
  162. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/alembic.ini +0 -0
  163. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/__init__.py +0 -0
  164. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/admin.py +0 -0
  165. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/__init__.py +0 -0
  166. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/deepagents_assistant.py +0 -0
  167. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/langchain_assistant.py +0 -0
  168. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/langgraph_assistant.py +0 -0
  169. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/prompts.py +0 -0
  170. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/__init__.py +0 -0
  171. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/ask_user_tool.py +0 -0
  172. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/chart_tool.py +0 -0
  173. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/fetch_url.py +0 -0
  174. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/rag_tool.py +0 -0
  175. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/research.py +0 -0
  176. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/web_search.py +0 -0
  177. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/agents/utils.py +0 -0
  178. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/__init__.py +0 -0
  179. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/exception_handlers.py +0 -0
  180. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/router.py +0 -0
  181. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/__init__.py +0 -0
  182. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/admin_conversations.py +0 -0
  183. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/admin_ratings.py +0 -0
  184. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/admin_stats.py +0 -0
  185. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/admin_users.py +0 -0
  186. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/auth.py +0 -0
  187. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/billing.py +0 -0
  188. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/channels.py +0 -0
  189. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/contact.py +0 -0
  190. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/files.py +0 -0
  191. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/invitations.py +0 -0
  192. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/items.py +0 -0
  193. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/knowledge_bases.py +0 -0
  194. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/marketing.py +0 -0
  195. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/me_mcp_connections.py +0 -0
  196. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/me_slash_commands.py +0 -0
  197. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/members.py +0 -0
  198. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/oauth.py +0 -0
  199. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/org_integrations.py +0 -0
  200. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/organizations.py +0 -0
  201. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/projects.py +0 -0
  202. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/public_demos.py +0 -0
  203. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/rag.py +0 -0
  204. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/sessions.py +0 -0
  205. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/slack_webhook.py +0 -0
  206. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/telegram_webhook.py +0 -0
  207. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/users.py +0 -0
  208. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/webhooks.py +0 -0
  209. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/clients/__init__.py +0 -0
  210. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/clients/redis.py +0 -0
  211. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/__init__.py +0 -0
  212. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/channel.py +0 -0
  213. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/cleanup.py +0 -0
  214. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/create_app_admin.py +0 -0
  215. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/example.py +0 -0
  216. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/rag.py +0 -0
  217. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/seed.py +0 -0
  218. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/commands/sync_stripe_plans.py +0 -0
  219. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/__init__.py +0 -0
  220. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/audit.py +0 -0
  221. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/cache.py +0 -0
  222. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/channel_crypto.py +0 -0
  223. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/crypto.py +0 -0
  224. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/exceptions.py +0 -0
  225. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/logfire_setup.py +0 -0
  226. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/logging.py +0 -0
  227. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/middleware.py +0 -0
  228. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/oauth.py +0 -0
  229. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/sanitize.py +0 -0
  230. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/core/security.py +0 -0
  231. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/__init__.py +0 -0
  232. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/base.py +0 -0
  233. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/__init__.py +0 -0
  234. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/audit_log.py +0 -0
  235. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_bot.py +0 -0
  236. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_identity.py +0 -0
  237. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/channel_session.py +0 -0
  238. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/chat_file.py +0 -0
  239. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation.py +0 -0
  240. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation_share.py +0 -0
  241. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/credit_transaction.py +0 -0
  242. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/item.py +0 -0
  243. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/knowledge_base.py +0 -0
  244. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/mcp_connection.py +0 -0
  245. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/message_rating.py +0 -0
  246. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/organization.py +0 -0
  247. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/plan.py +0 -0
  248. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/project.py +0 -0
  249. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/rag_document.py +0 -0
  250. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/session.py +0 -0
  251. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/stripe_event.py +0 -0
  252. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/subscription.py +0 -0
  253. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/sync_log.py +0 -0
  254. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/sync_source.py +0 -0
  255. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/user.py +0 -0
  256. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/user_slash_command.py +0 -0
  257. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/models/webhook.py +0 -0
  258. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/db/session.py +0 -0
  259. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/__init__.py +0 -0
  260. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_bot.py +0 -0
  261. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_identity.py +0 -0
  262. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/channel_session.py +0 -0
  263. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/chat_file.py +0 -0
  264. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation.py +0 -0
  265. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation_share.py +0 -0
  266. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/credit_transaction.py +0 -0
  267. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/invitation.py +0 -0
  268. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/item.py +0 -0
  269. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/knowledge_base.py +0 -0
  270. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/mcp_connection.py +0 -0
  271. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/member.py +0 -0
  272. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/message_rating.py +0 -0
  273. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/organization.py +0 -0
  274. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/plan.py +0 -0
  275. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/project.py +0 -0
  276. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/rag_document.py +0 -0
  277. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/session.py +0 -0
  278. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/stripe_event.py +0 -0
  279. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/subscription.py +0 -0
  280. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/sync_log.py +0 -0
  281. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/sync_source.py +0 -0
  282. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/usage_event.py +0 -0
  283. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/user.py +0 -0
  284. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/user_slash_command.py +0 -0
  285. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/repositories/webhook.py +0 -0
  286. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/__init__.py +0 -0
  287. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/admin.py +0 -0
  288. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/base.py +0 -0
  289. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/billing.py +0 -0
  290. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/channel_bot.py +0 -0
  291. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/contact.py +0 -0
  292. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation.py +0 -0
  293. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation_share.py +0 -0
  294. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/file.py +0 -0
  295. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/item.py +0 -0
  296. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/knowledge_base.py +0 -0
  297. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/marketing.py +0 -0
  298. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/mcp_connection.py +0 -0
  299. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/message_rating.py +0 -0
  300. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/organization.py +0 -0
  301. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/password_reset.py +0 -0
  302. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/project.py +0 -0
  303. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/rag.py +0 -0
  304. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/session.py +0 -0
  305. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/sync_source.py +0 -0
  306. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/token.py +0 -0
  307. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/user.py +0 -0
  308. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/user_slash_command.py +0 -0
  309. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/schemas/webhook.py +0 -0
  310. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/__init__.py +0 -0
  311. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/admin.py +0 -0
  312. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/anomaly_detection.py +0 -0
  313. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/__init__.py +0 -0
  314. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/checkout_service.py +0 -0
  315. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/credit_service.py +0 -0
  316. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/exceptions.py +0 -0
  317. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/facade.py +0 -0
  318. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/handlers/__init__.py +0 -0
  319. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/handlers/customer_events.py +0 -0
  320. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/handlers/invoice_events.py +0 -0
  321. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/handlers/payment_events.py +0 -0
  322. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/handlers/subscription_events.py +0 -0
  323. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/pricing.py +0 -0
  324. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/stripe_client.py +0 -0
  325. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/subscription_service.py +0 -0
  326. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/billing/webhook_handler.py +0 -0
  327. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/channel_bot.py +0 -0
  328. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/channels/__init__.py +0 -0
  329. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/channels/base.py +0 -0
  330. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/channels/chart_render.py +0 -0
  331. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/channels/telegram.py +0 -0
  332. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/contact.py +0 -0
  333. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/conversation_share.py +0 -0
  334. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/__init__.py +0 -0
  335. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/exceptions.py +0 -0
  336. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/providers/__init__.py +0 -0
  337. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/providers/base.py +0 -0
  338. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/providers/log.py +0 -0
  339. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/providers/resend.py +0 -0
  340. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/providers/smtp.py +0 -0
  341. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/service.py +0 -0
  342. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/email/templates.py +0 -0
  343. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/file_storage.py +0 -0
  344. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/file_upload.py +0 -0
  345. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/health.py +0 -0
  346. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/invitation.py +0 -0
  347. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/item.py +0 -0
  348. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/knowledge_base.py +0 -0
  349. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/mcp_connection.py +0 -0
  350. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/member.py +0 -0
  351. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/message_rating.py +0 -0
  352. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/newsletter.py +0 -0
  353. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/organization.py +0 -0
  354. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/project.py +0 -0
  355. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/__init__.py +0 -0
  356. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/config.py +0 -0
  357. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/connectors/__init__.py +0 -0
  358. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/connectors/google_drive.py +0 -0
  359. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/connectors/s3.py +0 -0
  360. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/documents.py +0 -0
  361. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/image_describer.py +0 -0
  362. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/ingestion.py +0 -0
  363. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/models.py +0 -0
  364. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/reranker.py +0 -0
  365. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/retrieval.py +0 -0
  366. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/sources/__init__.py +0 -0
  367. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/sources/base.py +0 -0
  368. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/sources/google_drive.py +0 -0
  369. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/sources/s3.py +0 -0
  370. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag/vectorstore.py +0 -0
  371. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag_document.py +0 -0
  372. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag_status.py +0 -0
  373. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rag_sync.py +0 -0
  374. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rate_limit/__init__.py +0 -0
  375. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rate_limit/rules.py +0 -0
  376. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rate_limit/service.py +0 -0
  377. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/rate_limit/storage.py +0 -0
  378. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/research.py +0 -0
  379. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/session.py +0 -0
  380. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/sync_source.py +0 -0
  381. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/usage.py +0 -0
  382. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/user_slash_command.py +0 -0
  383. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/services/webhook.py +0 -0
  384. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/__init__.py +0 -0
  385. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/arq_app.py +0 -0
  386. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/background/__init__.py +0 -0
  387. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/background/channel.py +0 -0
  388. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/background/rag.py +0 -0
  389. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/celery_app.py +0 -0
  390. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/prefect_app.py +0 -0
  391. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/taskiq_app.py +0 -0
  392. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/__init__.py +0 -0
  393. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/anomaly_tasks.py +0 -0
  394. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/cleanup_tasks.py +0 -0
  395. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/email_tasks.py +0 -0
  396. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/rag_tasks.py +0 -0
  397. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/schedules.py +0 -0
  398. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/cli/__init__.py +0 -0
  399. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/cli/commands.py +0 -0
  400. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/scripts/.gitkeep +0 -0
  401. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/__init__.py +0 -0
  402. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/api/__init__.py +0 -0
  403. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_auth.py +0 -0
  404. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_exceptions.py +0 -0
  405. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_health.py +0 -0
  406. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_metrics.py +0 -0
  407. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_openapi.py +0 -0
  408. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_users.py +0 -0
  409. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/conftest.py +0 -0
  410. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_admin.py +0 -0
  411. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_chart_tool.py +0 -0
  412. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_clients.py +0 -0
  413. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_commands.py +0 -0
  414. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_conversation_kb_toggle.py +0 -0
  415. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_core.py +0 -0
  416. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_fetch_url.py +0 -0
  417. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_kb_scoping.py +0 -0
  418. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_migrations.py +0 -0
  419. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_rbac_teams.py +0 -0
  420. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_repositories.py +0 -0
  421. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_repositories_teams.py +0 -0
  422. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_security.py +0 -0
  423. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_services.py +0 -0
  424. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_services_members.py +0 -0
  425. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_services_organizations.py +0 -0
  426. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_ssrf.py +0 -0
  427. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_stripe_seats.py +0 -0
  428. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_tenant_isolation.py +0 -0
  429. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_web_search.py +0 -0
  430. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/backend/tests/test_worker_taskiq.py +0 -0
  431. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docker-compose.frontend.yml +0 -0
  432. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/adding_features.md +0 -0
  433. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/architecture.md +0 -0
  434. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/commands.md +0 -0
  435. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/deploy.md +0 -0
  436. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/file-processing.md +0 -0
  437. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/add-agent-tool.md +0 -0
  438. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/add-api-endpoint.md +0 -0
  439. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/add-background-task.md +0 -0
  440. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/add-rag-source.md +0 -0
  441. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/add-sync-connector.md +0 -0
  442. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/configure-sync-sources.md +0 -0
  443. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/customize-agent-prompt.md +0 -0
  444. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/howto/use-ratings.md +0 -0
  445. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/patterns.md +0 -0
  446. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/permissions.md +0 -0
  447. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/docs/testing.md +0 -0
  448. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/email_verification.html +0 -0
  449. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/email_verification.txt +0 -0
  450. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/invitation.html +0 -0
  451. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/invitation.txt +0 -0
  452. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/low_credits.html +0 -0
  453. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/low_credits.txt +0 -0
  454. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/magic_link.html +0 -0
  455. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/magic_link.txt +0 -0
  456. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/newsletter_welcome.html +0 -0
  457. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/newsletter_welcome.txt +0 -0
  458. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/password_reset.html +0 -0
  459. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/password_reset.txt +0 -0
  460. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/payment_failed.html +0 -0
  461. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/payment_failed.txt +0 -0
  462. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/payment_succeeded.html +0 -0
  463. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/payment_succeeded.txt +0 -0
  464. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/subscription_canceled.html +0 -0
  465. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/subscription_canceled.txt +0 -0
  466. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/subscription_changed.html +0 -0
  467. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/subscription_changed.txt +0 -0
  468. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/trial_ending.html +0 -0
  469. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/trial_ending.txt +0 -0
  470. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/trial_expired.html +0 -0
  471. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/trial_expired.txt +0 -0
  472. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/welcome.html +0 -0
  473. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/emails/compiled/welcome.txt +0 -0
  474. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/.dockerignore +0 -0
  475. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/.editorconfig +0 -0
  476. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/.env.example +0 -0
  477. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/.gitignore +0 -0
  478. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/.husky/pre-commit +0 -0
  479. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/.prettierignore +0 -0
  480. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/.prettierrc +0 -0
  481. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/Dockerfile +0 -0
  482. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/README.md +0 -0
  483. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/content/blog/rag-defaults-that-age-well.mdx +0 -0
  484. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/content/blog/shipping-ai-saas-template.mdx +0 -0
  485. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/content/blog/streaming-tool-calls-without-tears.mdx +0 -0
  486. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/assets/user-avatar.jpg +0 -0
  487. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/entry.css +0 -0
  488. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/index.html +0 -0
  489. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/main.tsx +0 -0
  490. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/postcss.config.mjs +0 -0
  491. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/shims/next-dynamic.ts +0 -0
  492. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/shims/next-image.tsx +0 -0
  493. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/shims/next-intl.ts +0 -0
  494. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/shims/next-link.tsx +0 -0
  495. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/shims/next-navigation.ts +0 -0
  496. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/vite-env.d.ts +0 -0
  497. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/demo-export/vite.config.ts +0 -0
  498. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.setup.ts +0 -0
  499. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.spec.ts +0 -0
  500. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/e2e/chat.spec.ts +0 -0
  501. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/e2e/home.spec.ts +0 -0
  502. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/eslint.config.mjs +0 -0
  503. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/instrumentation.ts +0 -0
  504. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/messages/en.json +0 -0
  505. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/messages/pl.json +0 -0
  506. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/next.config.ts +0 -0
  507. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/package.json +0 -0
  508. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/playwright.config.ts +0 -0
  509. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs +0 -0
  510. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/public/.gitkeep +0 -0
  511. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/scripts/gen-mcp-logos.ts +0 -0
  512. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/forgot-password/page.tsx +0 -0
  513. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/layout.tsx +0 -0
  514. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/login/page.tsx +0 -0
  515. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/magic-link-sent/page.tsx +0 -0
  516. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/register/page.tsx +0 -0
  517. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/reset-password/page.tsx +0 -0
  518. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/conversations/page.tsx +0 -0
  519. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/layout.tsx +0 -0
  520. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/page.tsx +0 -0
  521. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/ratings/page.tsx +0 -0
  522. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/ratings/ratings-chart.tsx +0 -0
  523. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/stripe-events/page.tsx +0 -0
  524. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/system/page.tsx +0 -0
  525. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/admin/users/page.tsx +0 -0
  526. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/credits/page.tsx +0 -0
  527. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/credits/usage-spark.tsx +0 -0
  528. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/invoices/page.tsx +0 -0
  529. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/layout.tsx +0 -0
  530. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/page.tsx +0 -0
  531. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/payment-methods/page.tsx +0 -0
  532. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/subscription/page.tsx +0 -0
  533. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/usage/page.tsx +0 -0
  534. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/billing/usage/usage-charts.tsx +0 -0
  535. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/chat/page.tsx +0 -0
  536. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/dashboard/page.tsx +0 -0
  537. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/dev/components/page.tsx +0 -0
  538. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/error.tsx +0 -0
  539. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/invitations/[token]/page.tsx +0 -0
  540. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/kb/[id]/page.tsx +0 -0
  541. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/kb/page.tsx +0 -0
  542. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/layout.tsx +0 -0
  543. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/orgs/[id]/integrations/page.tsx +0 -0
  544. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/orgs/[id]/members/page.tsx +0 -0
  545. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/orgs/page.tsx +0 -0
  546. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/profile/page.tsx +0 -0
  547. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/rag/page.tsx +0 -0
  548. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/account/page.tsx +0 -0
  549. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/appearance/page.tsx +0 -0
  550. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/integrations/page.tsx +0 -0
  551. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/notifications/page.tsx +0 -0
  552. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/page.tsx +0 -0
  553. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/profile/page.tsx +0 -0
  554. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/settings/slash-commands/page.tsx +0 -0
  555. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/about/page.tsx +0 -0
  556. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/auth/callback/page.tsx +0 -0
  557. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/auth/magic-link/layout.tsx +0 -0
  558. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/auth/magic-link/page.tsx +0 -0
  559. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/blog/[slug]/page.tsx +0 -0
  560. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/blog/page.tsx +0 -0
  561. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/changelog/page.tsx +0 -0
  562. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/community/page.tsx +0 -0
  563. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/contact/page.tsx +0 -0
  564. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/demo/[id]/page.tsx +0 -0
  565. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/demo/page.tsx +0 -0
  566. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/error.tsx +0 -0
  567. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/help/page.tsx +0 -0
  568. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/layout.tsx +0 -0
  569. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/legal/cookies/page.tsx +0 -0
  570. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/legal/privacy/page.tsx +0 -0
  571. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/legal/terms/page.tsx +0 -0
  572. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/onboarding/[step]/page.tsx +0 -0
  573. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/onboarding/page.tsx +0 -0
  574. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/page.tsx +0 -0
  575. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/pricing/layout.tsx +0 -0
  576. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/pricing/page.tsx +0 -0
  577. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/security/page.tsx +0 -0
  578. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/shared/[token]/page.tsx +0 -0
  579. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/conversations/[id]/demo/route.ts +0 -0
  580. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/conversations/[id]/route.ts +0 -0
  581. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/conversations/route.ts +0 -0
  582. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/conversations/users/route.ts +0 -0
  583. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/ratings/export/route.ts +0 -0
  584. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/ratings/route.ts +0 -0
  585. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/ratings/summary/route.ts +0 -0
  586. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/stats/route.ts +0 -0
  587. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/stripe-events/route.ts +0 -0
  588. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/users/[userId]/impersonate/route.ts +0 -0
  589. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/users/[userId]/route.ts +0 -0
  590. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/admin/users/route.ts +0 -0
  591. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/login/route.ts +0 -0
  592. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/logout/route.ts +0 -0
  593. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/magic-link/request/route.ts +0 -0
  594. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/magic-link/verify/route.ts +0 -0
  595. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/me/route.ts +0 -0
  596. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/oauth-callback/route.ts +0 -0
  597. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/password-reset/confirm/route.ts +0 -0
  598. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/password-reset/request/route.ts +0 -0
  599. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/refresh/route.ts +0 -0
  600. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/register/route.ts +0 -0
  601. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/billing/checkout/route.ts +0 -0
  602. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/billing/invoices/route.ts +0 -0
  603. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/billing/me/[...path]/route.ts +0 -0
  604. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/billing/portal/route.ts +0 -0
  605. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/contact/route.ts +0 -0
  606. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/messages/[messageId]/rate/route.ts +0 -0
  607. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/messages/route.ts +0 -0
  608. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/route.ts +0 -0
  609. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/shares/[shareId]/route.ts +0 -0
  610. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/shares/route.ts +0 -0
  611. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/export/route.ts +0 -0
  612. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/route.ts +0 -0
  613. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/shared-with-me/route.ts +0 -0
  614. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/tool-stats/route.ts +0 -0
  615. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/files/[id]/route.ts +0 -0
  616. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/files/upload/route.ts +0 -0
  617. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/health/route.ts +0 -0
  618. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/invitations/[token]/route.ts +0 -0
  619. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/documents/[docId]/download/route.ts +0 -0
  620. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/documents/[docId]/route.ts +0 -0
  621. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/documents/route.ts +0 -0
  622. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/route.ts +0 -0
  623. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/sync-sources/[sourceId]/route.ts +0 -0
  624. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/sync-sources/[sourceId]/trigger/route.ts +0 -0
  625. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/sync-sources/connectors/route.ts +0 -0
  626. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/[id]/sync-sources/route.ts +0 -0
  627. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/kb/route.ts +0 -0
  628. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/mcp-connections/[id]/route.ts +0 -0
  629. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/mcp-connections/[id]/test/route.ts +0 -0
  630. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/mcp-connections/oauth/callback/route.ts +0 -0
  631. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/mcp-connections/oauth/start/route.ts +0 -0
  632. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/mcp-connections/route.ts +0 -0
  633. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/mcp-connections/workspace/route.ts +0 -0
  634. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/slash-commands/[id]/route.ts +0 -0
  635. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/slash-commands/builtin/route.ts +0 -0
  636. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/slash-commands/custom/route.ts +0 -0
  637. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/me/slash-commands/route.ts +0 -0
  638. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/avatar/route.ts +0 -0
  639. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/integrations/[sourceId]/route.ts +0 -0
  640. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/integrations/[sourceId]/trigger/route.ts +0 -0
  641. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/integrations/connectors/route.ts +0 -0
  642. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/integrations/route.ts +0 -0
  643. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/invitations/route.ts +0 -0
  644. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/members/[userId]/route.ts +0 -0
  645. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/members/route.ts +0 -0
  646. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/[id]/route.ts +0 -0
  647. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/orgs/route.ts +0 -0
  648. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/sessions/[id]/route.ts +0 -0
  649. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/sessions/route.ts +0 -0
  650. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/users/avatar/[userId]/route.ts +0 -0
  651. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/users/me/avatar/route.ts +0 -0
  652. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/users/me/route.ts +0 -0
  653. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/agent/models/route.ts +0 -0
  654. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/documents/[documentId]/route.ts +0 -0
  655. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/documents/route.ts +0 -0
  656. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/info/route.ts +0 -0
  657. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/ingest/route.ts +0 -0
  658. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/[name]/route.ts +0 -0
  659. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/collections/route.ts +0 -0
  660. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/[docId]/download/route.ts +0 -0
  661. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/[docId]/route.ts +0 -0
  662. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/documents/route.ts +0 -0
  663. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/search/route.ts +0 -0
  664. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/supported-formats/route.ts +0 -0
  665. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/[syncId]/route.ts +0 -0
  666. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/connectors/route.ts +0 -0
  667. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/local/route.ts +0 -0
  668. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/[sourceId]/route.ts +0 -0
  669. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/[sourceId]/trigger/route.ts +0 -0
  670. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/v1/rag/sync/sources/route.ts +0 -0
  671. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/apple-icon.tsx +0 -0
  672. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/global-error.tsx +0 -0
  673. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/globals.css +0 -0
  674. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/icon.tsx +0 -0
  675. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/layout.tsx +0 -0
  676. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/manifest.ts +0 -0
  677. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/not-found.tsx +0 -0
  678. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/opengraph-image.tsx +0 -0
  679. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/providers.tsx +0 -0
  680. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/robots.ts +0 -0
  681. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/app/sitemap.ts +0 -0
  682. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/admin/admin-nav.tsx +0 -0
  683. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/admin/user-detail-drawer.tsx +0 -0
  684. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/forgot-password-form.tsx +0 -0
  685. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/index.ts +0 -0
  686. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/login-form.tsx +0 -0
  687. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/oauth-buttons.tsx +0 -0
  688. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/register-form.tsx +0 -0
  689. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/reset-password-form.tsx +0 -0
  690. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/billing-card.tsx +0 -0
  691. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/credits-panel.tsx +0 -0
  692. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/index.ts +0 -0
  693. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/invoices-panel.tsx +0 -0
  694. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/payment-methods-panel.tsx +0 -0
  695. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/seat-selector-dialog.tsx +0 -0
  696. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/subscription-panel.tsx +0 -0
  697. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/billing/usage-gauge.tsx +0 -0
  698. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/blog/mdx-components.tsx +0 -0
  699. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/brand-override.tsx +0 -0
  700. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chart-message.impl.tsx +0 -0
  701. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chart-message.tsx +0 -0
  702. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-container.tsx +0 -0
  703. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-controls.tsx +0 -0
  704. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-empty-state.tsx +0 -0
  705. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-input.tsx +0 -0
  706. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/conversation-sidebar.tsx +0 -0
  707. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/copy-button.tsx +0 -0
  708. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/file-preview-card.tsx +0 -0
  709. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/file-preview-panel.tsx +0 -0
  710. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/index.ts +0 -0
  711. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/map-leaflet.tsx +0 -0
  712. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/map-message.tsx +0 -0
  713. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/markdown-content.impl.tsx +0 -0
  714. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/markdown-content.tsx +0 -0
  715. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-item.tsx +0 -0
  716. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-list.tsx +0 -0
  717. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/pending-messages.tsx +0 -0
  718. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/rating-buttons.tsx +0 -0
  719. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/research-panel.tsx +0 -0
  720. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/research-replay-block.tsx +0 -0
  721. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/share-dialog.tsx +0 -0
  722. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/slash-command-palette.tsx +0 -0
  723. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/slash-commands.ts +0 -0
  724. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/sources-panel.tsx +0 -0
  725. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/subagent-feed.tsx +0 -0
  726. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/subagent-panel.tsx +0 -0
  727. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-approval-dialog.tsx +0 -0
  728. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/ask-user.tsx +0 -0
  729. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/datetime.tsx +0 -0
  730. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/fetch-url.tsx +0 -0
  731. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/generic.tsx +0 -0
  732. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/rag.tsx +0 -0
  733. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/run-python.tsx +0 -0
  734. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-results/web-search.tsx +0 -0
  735. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/active-sessions.tsx +0 -0
  736. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/onboarding-banner.tsx +0 -0
  737. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/page-header.tsx +0 -0
  738. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/page-hero.tsx +0 -0
  739. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/page-tabs.tsx +0 -0
  740. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/quick-actions.tsx +0 -0
  741. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/recent-activity.tsx +0 -0
  742. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/segmented-control.tsx +0 -0
  743. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/stat-card-spark.tsx +0 -0
  744. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/stat-card.tsx +0 -0
  745. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/subscription-chip.tsx +0 -0
  746. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/team-summary.tsx +0 -0
  747. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/tool-usage.tsx +0 -0
  748. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/top-models.tsx +0 -0
  749. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/usage-timeline-chart.tsx +0 -0
  750. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/dashboard/usage-timeline.tsx +0 -0
  751. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/demo/demo-mode.tsx +0 -0
  752. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/google-icon.tsx +0 -0
  753. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/index.ts +0 -0
  754. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/kb/create-kb-dialog.tsx +0 -0
  755. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/kb/file-viewer.tsx +0 -0
  756. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/kb/index.ts +0 -0
  757. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/kb/kb-list.tsx +0 -0
  758. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/language-switcher.tsx +0 -0
  759. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/auth-guard.tsx +0 -0
  760. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/breadcrumb.tsx +0 -0
  761. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/command-palette.tsx +0 -0
  762. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/header.tsx +0 -0
  763. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/index.ts +0 -0
  764. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/landing-nav.tsx +0 -0
  765. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/mobile-tab-bar.tsx +0 -0
  766. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/not-found-back-button.tsx +0 -0
  767. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/page-transition.tsx +0 -0
  768. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/sidebar.tsx +0 -0
  769. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/legal/cookies-content.tsx +0 -0
  770. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/legal/privacy-content.tsx +0 -0
  771. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/legal/terms-content.tsx +0 -0
  772. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/animated-number.tsx +0 -0
  773. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/brand-icon.tsx +0 -0
  774. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/case-study.tsx +0 -0
  775. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/code-preview.tsx +0 -0
  776. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/comparison-table.tsx +0 -0
  777. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/contact-form.tsx +0 -0
  778. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/cookie-banner.tsx +0 -0
  779. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/data-flow-diagram.tsx +0 -0
  780. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/enterprise-security.tsx +0 -0
  781. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/faq-accordion.tsx +0 -0
  782. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/feature-bento.tsx +0 -0
  783. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/feature-glyph.tsx +0 -0
  784. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/feature-mockup.tsx +0 -0
  785. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/feature-section.tsx +0 -0
  786. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/final-cta.tsx +0 -0
  787. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/footer-config.ts +0 -0
  788. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/hero-demo.tsx +0 -0
  789. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/hero.tsx +0 -0
  790. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/highlight.tsx +0 -0
  791. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/how-it-works.tsx +0 -0
  792. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/integrations-grid.tsx +0 -0
  793. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/legal-page.tsx +0 -0
  794. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/logos-strip.tsx +0 -0
  795. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/marketing-footer.tsx +0 -0
  796. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/marketing-page-layout.tsx +0 -0
  797. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/marquee.tsx +0 -0
  798. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/newsletter-signup.tsx +0 -0
  799. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/outcomes-band.tsx +0 -0
  800. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/pill-nav.tsx +0 -0
  801. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/pricing-teaser.tsx +0 -0
  802. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/reveal.tsx +0 -0
  803. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/section.tsx +0 -0
  804. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/smooth-scroll.tsx +0 -0
  805. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/testimonial-carousel.tsx +0 -0
  806. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/marketing/testimonial-grid.tsx +0 -0
  807. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/onboarding/onboarding-shell.tsx +0 -0
  808. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/onboarding/onboarding-state.ts +0 -0
  809. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/onboarding/step-agent.tsx +0 -0
  810. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/onboarding/step-data.tsx +0 -0
  811. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/onboarding/step-done.tsx +0 -0
  812. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/onboarding/step-team.tsx +0 -0
  813. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/onboarding/step-welcome.tsx +0 -0
  814. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/rag/drag-drop-overlay.tsx +0 -0
  815. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/rag/sync-source-logs.tsx +0 -0
  816. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/rag/sync-source-wizard.tsx +0 -0
  817. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/seo/json-ld.tsx +0 -0
  818. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/brand-color-picker.tsx +0 -0
  819. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/mcp-connections-manager.tsx +0 -0
  820. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/settings-nav.tsx +0 -0
  821. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/settings-section.tsx +0 -0
  822. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/settings/slash-commands-manager.tsx +0 -0
  823. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/states/empty-state.tsx +0 -0
  824. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/states/error-state.tsx +0 -0
  825. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/states/index.ts +0 -0
  826. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/states/loading-state.tsx +0 -0
  827. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/teams/create-org-dialog.tsx +0 -0
  828. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/teams/index.ts +0 -0
  829. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/teams/invite-member-dialog.tsx +0 -0
  830. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/teams/members-table.tsx +0 -0
  831. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/teams/org-switcher.tsx +0 -0
  832. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/index.ts +0 -0
  833. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-provider.tsx +0 -0
  834. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-toggle.tsx +0 -0
  835. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/accordion.tsx +0 -0
  836. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/alert-dialog.tsx +0 -0
  837. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/alert.tsx +0 -0
  838. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/avatar.tsx +0 -0
  839. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/badge.tsx +0 -0
  840. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.test.tsx +0 -0
  841. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.tsx +0 -0
  842. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/card.tsx +0 -0
  843. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/checkbox.tsx +0 -0
  844. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/confirm-dialog.tsx +0 -0
  845. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/data-table.tsx +0 -0
  846. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/dialog.tsx +0 -0
  847. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  848. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/form-field.tsx +0 -0
  849. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/icon-button.tsx +0 -0
  850. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/index.ts +0 -0
  851. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/input.tsx +0 -0
  852. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/label.tsx +0 -0
  853. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/popover.tsx +0 -0
  854. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/progress.tsx +0 -0
  855. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/question-prompt.tsx +0 -0
  856. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/radio-group.tsx +0 -0
  857. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/scroll-area.tsx +0 -0
  858. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/section-heading.tsx +0 -0
  859. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/select.tsx +0 -0
  860. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/separator.tsx +0 -0
  861. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/sheet.tsx +0 -0
  862. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/skeleton.tsx +0 -0
  863. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/spinner.tsx +0 -0
  864. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/switch.tsx +0 -0
  865. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/table.tsx +0 -0
  866. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/tabs.tsx +0 -0
  867. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/textarea.tsx +0 -0
  868. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/tooltip.tsx +0 -0
  869. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-admin-conversations.ts +0 -0
  870. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-admin-users.ts +0 -0
  871. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-auth.ts +0 -0
  872. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-billing.ts +0 -0
  873. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-chat.ts +0 -0
  874. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversation-replay.ts +0 -0
  875. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversation-shares.ts +0 -0
  876. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversations.ts +0 -0
  877. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-copy-to-clipboard.ts +0 -0
  878. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-invitations.ts +0 -0
  879. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-knowledge-bases.ts +0 -0
  880. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-mcp-connections.ts +0 -0
  881. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-members.ts +0 -0
  882. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-org-integrations.ts +0 -0
  883. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-organizations.ts +0 -0
  884. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-projects.ts +0 -0
  885. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-slash-commands.ts +0 -0
  886. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-websocket.ts +0 -0
  887. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/i18n.ts +0 -0
  888. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/active-route.ts +0 -0
  889. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/admin-auth.ts +0 -0
  890. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/api-client.ts +0 -0
  891. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/auth-cookies.test.ts +0 -0
  892. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/auth-cookies.ts +0 -0
  893. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/blog.ts +0 -0
  894. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/changelog.ts +0 -0
  895. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/chat-sources.ts +0 -0
  896. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/contact-info.ts +0 -0
  897. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/conversation-to-chat.ts +0 -0
  898. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/file-api.ts +0 -0
  899. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/mcp-catalog.ts +0 -0
  900. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/mcp-connections-api.ts +0 -0
  901. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/mcp-logos.generated.ts +0 -0
  902. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/rag-api.ts +0 -0
  903. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/research-from-tools.ts +0 -0
  904. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/schema-org.ts +0 -0
  905. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/seo.ts +0 -0
  906. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/server-api.ts +0 -0
  907. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/slash-commands-api.ts +0 -0
  908. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/sql-format.ts +0 -0
  909. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/teaser-plans.ts +0 -0
  910. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.test.ts +0 -0
  911. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.ts +0 -0
  912. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/middleware.ts +0 -0
  913. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.test.ts +0 -0
  914. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.ts +0 -0
  915. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-mode-store.ts +0 -0
  916. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-sidebar-store.ts +0 -0
  917. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-store.ts +0 -0
  918. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/conversation-store.ts +0 -0
  919. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/file-preview-store.ts +0 -0
  920. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/index.ts +0 -0
  921. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/kb-selection-store.ts +0 -0
  922. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/org-store.ts +0 -0
  923. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/project-store.ts +0 -0
  924. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/research-store.ts +0 -0
  925. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/sidebar-store.ts +0 -0
  926. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/sources-panel-store.ts +0 -0
  927. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/stores/theme-store.ts +0 -0
  928. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/api.ts +0 -0
  929. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/auth.ts +0 -0
  930. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/billing.ts +0 -0
  931. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/chat.ts +0 -0
  932. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/conversation.ts +0 -0
  933. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/index.ts +0 -0
  934. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/knowledge-base.ts +0 -0
  935. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/organization.ts +0 -0
  936. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/project.ts +0 -0
  937. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/src/types/speech.d.ts +0 -0
  938. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/tsconfig.json +0 -0
  939. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/vercel.json +0 -0
  940. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/vitest.config.ts +0 -0
  941. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/frontend/vitest.setup.ts +0 -0
  942. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/kubernetes/configmap.yaml +0 -0
  943. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/kubernetes/deployment.yaml +0 -0
  944. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/kubernetes/ingress.yaml +0 -0
  945. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/kubernetes/kustomization.yaml +0 -0
  946. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/kubernetes/namespace.yaml +0 -0
  947. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/kubernetes/service.yaml +0 -0
  948. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/nginx/nginx.conf +0 -0
  949. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/nginx/ssl/.gitkeep +0 -0
  950. {fastapi_fullstack-0.2.19 → fastapi_fullstack-0.2.20}/template/{{cookiecutter.project_slug}}/scripts/export_demo_html.py +0 -0
@@ -1,9 +1,9 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: fastapi-fullstack
3
- Version: 0.2.19
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.
3
+ Version: 0.2.20
4
+ Summary: Full-stack FastAPI + Next.js template generator with Pydantic AI/LangChain agents, WebSocket streaming, 20+ enterprise integrations, and Logfire/LangSmith observability. Ship AI apps fast.
5
5
  Project-URL: Homepage, https://github.com/vstorm-co/full-stack-ai-agent-template
6
- Project-URL: Documentation, https://github.com/vstorm-co/full-stack-ai-agent-template#readme
6
+ Project-URL: Documentation, https://vstorm-co.github.io/full-stack-ai-agent-template/
7
7
  Project-URL: Repository, https://github.com/vstorm-co/full-stack-ai-agent-template
8
8
  Author-email: Vstorm <hr@vstorm.co>
9
9
  License: MIT
@@ -46,6 +46,13 @@ Requires-Dist: mkdocs>=1.6.1; extra == 'docs'
46
46
  Requires-Dist: pymdown-extensions>=10.20; extra == 'docs'
47
47
  Description-Content-Type: text/markdown
48
48
 
49
+ <p align="center">
50
+ <a href="https://github.com/vstorm-co/agenticos">
51
+ <img src="assets/agenticos-banner-light.png" width="100%" alt="AgenticOS by Vstorm, the Sovereign Agentic AI Layer: AI agents your whole team can use and improve. Open source (Apache-2.0), self-hosted, built on Pydantic AI, with budgets, approvals, guardrails and activity built in. Links to the AgenticOS repository on GitHub.">
52
+ </a>
53
+ </p>
54
+ <p align="center"><sub>From the team behind this repo: <a href="https://github.com/vstorm-co/agenticos"><b>AgenticOS</b></a>, the Sovereign Agentic AI Layer. AI agents your whole team can use and improve: open source (Apache-2.0), self-hosted, built on Pydantic AI.</sub></p>
55
+
49
56
  <h1 align="center">Full-Stack AI Agent Template</h1>
50
57
 
51
58
  <p align="center">
@@ -57,7 +64,6 @@ Description-Content-Type: text/markdown
57
64
  <a href="#-features">Features</a> •
58
65
  <a href="#-demo">Demo</a> •
59
66
  <a href="https://vstorm-co.github.io/full-stack-ai-agent-template/">Documentation</a> •
60
- <a href="https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/">Configurator</a> •
61
67
  <a href="https://pypi.org/project/fastapi-fullstack/">PyPI</a>
62
68
  </p>
63
69
 
@@ -80,7 +86,7 @@ Description-Content-Type: text/markdown
80
86
  </p>
81
87
 
82
88
  <p align="center">
83
- <b>🤖 5 AI Agent Frameworks</b> <i>(PydanticAI, PydanticDeep, LangChain, LangGraph, DeepAgents)</i>
89
+ <b>🤖 5 AI Agent Frameworks</b> <i>(Pydantic AI, Pydantic Deep Agents, LangChain, LangGraph, DeepAgents)</i>
84
90
  <br>
85
91
  <b>📄 RAG Pipeline</b> <i>(Milvus, Qdrant, pgvector, ChromaDB)</i>
86
92
  <br>
@@ -121,22 +127,23 @@ This template is part of a broader open-source ecosystem for production AI agent
121
127
 
122
128
  | Project | Description | |
123
129
  |---------|-------------|---|
130
+ | **[AgenticOS](https://github.com/vstorm-co/agenticos)** | Open-source (Apache-2.0), self-hosted platform to build, share and govern AI agents across a company. | [![Stars](https://img.shields.io/github/stars/vstorm-co/agenticos?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/agenticos) |
124
131
  | **[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) |
125
132
  | **[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) |
126
- | **[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) |
127
- | **[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) |
133
+ | **[subagents-pydantic-ai](https://github.com/vstorm-co/subagents-pydantic-ai)** | Declarative multi-agent orchestration with token tracking. | [![Stars](https://img.shields.io/github/stars/vstorm-co/subagents-pydantic-ai?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/subagents-pydantic-ai) |
134
+ | **[summarization-pydantic-ai](https://github.com/vstorm-co/summarization-pydantic-ai)** | 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) |
128
135
  | **[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) |
129
136
 
130
- > **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`.
137
+ > **Want the runtime behind this template's AI agents?** [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) powers the `pydantic_deep` framework option — install it standalone with `curl -fsSL .../install.sh | bash`.
131
138
 
132
- Browse all projects at [oss.vstorm.co](https://oss.vstorm.co)
139
+ Browse all projects at [github.com/vstorm-co](https://github.com/vstorm-co)
133
140
 
134
141
  ---
135
142
 
136
143
  ## 🚀 Quick Start
137
144
 
138
145
  > [!TIP]
139
- > **Prefer a visual configurator?** Use the [Web Configurator](https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/) to configure your project in the browser and download a ZIP — no CLI installation needed.
146
+ > **Want to review every option first?** The [installation guide](https://vstorm-co.github.io/full-stack-ai-agent-template/installation/) covers the interactive wizard, non-interactive flags and presets; `fastapi-fullstack templates` lists every option.
140
147
 
141
148
  ### Installation
142
149
 
@@ -653,7 +660,7 @@ The chat UI streams responses over WebSocket and renders each tool call as a pur
653
660
  <tr>
654
661
  <td width="50%">
655
662
 
656
- **Logfire** — distributed tracing: FastAPI, PydanticAI, DB, Redis, Celery, HTTPX in one timeline.
663
+ **Logfire** — distributed tracing: FastAPI, Pydantic AI, DB, Redis, Celery, HTTPX in one timeline.
657
664
 
658
665
  ![Logfire](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/logfire.png)
659
666
 
@@ -700,7 +707,7 @@ This template gives you all of that out of the box, with **20+ configurable inte
700
707
 
701
708
  ### Perfect For
702
709
 
703
- - 🤖 **AI Chatbots & Assistants** - PydanticAI or LangChain agents with streaming responses
710
+ - 🤖 **AI Chatbots & Assistants** - Pydantic AI or LangChain agents with streaming responses
704
711
  - 📊 **ML Applications** - Background task processing with Celery/Taskiq
705
712
  - 🏢 **Enterprise SaaS** - Full auth, admin panel, webhooks, and more
706
713
  - 🚀 **Startups** - Ship fast with production-ready infrastructure
@@ -720,7 +727,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
720
727
  ## ✨ Features
721
728
 
722
729
  <p align="center">
723
- <a href="https://ai.pydantic.dev"><img src="https://img.shields.io/badge/PydanticAI-E92063?logo=pydantic&logoColor=white" alt="PydanticAI"></a>
730
+ <a href="https://ai.pydantic.dev"><img src="https://img.shields.io/badge/Pydantic%20AI-E92063?logo=pydantic&logoColor=white" alt="Pydantic AI"></a>
724
731
  <a href="https://python.langchain.com"><img src="https://img.shields.io/badge/LangChain-1C3C3C?logo=langchain&logoColor=white" alt="LangChain"></a>
725
732
  <a href="https://langchain-ai.github.io/langgraph/"><img src="https://img.shields.io/badge/LangGraph-005A9C?logo=langchain&logoColor=white" alt="LangGraph"></a>
726
733
  <a href="https://milvus.io"><img src="https://img.shields.io/badge/Milvus-FF6B35?logoColor=white" alt="Milvus"></a>
@@ -761,8 +768,8 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
761
768
 
762
769
  ### 🤖 AI/LLM First
763
770
 
764
- - **5 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/), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)
765
- - **4 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter
771
+ - **5 AI Frameworks** - [Pydantic AI](https://ai.pydantic.dev), [Pydantic Deep Agents](https://github.com/vstorm-co/pydantic-deepagents), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [DeepAgents](https://github.com/langchain-ai/deepagents)
772
+ - **5 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter, and any OpenAI-compatible gateway or server
766
773
  - **RAG** - Document ingestion, vector search, reranking (Milvus, Qdrant, ChromaDB, pgvector)
767
774
  - **WebSocket Streaming** - Real-time responses with full event access
768
775
  - **Rich Chat UI** - Specialized tool-call cards (web search, knowledge base, Python, charts, skills), live subagent feed, citation sources panel, plan/task checklist, reasoning view, and in-chat file previews
@@ -775,7 +782,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
775
782
  - **Multimodal Embeddings** - Provider-aware: OpenAI, Voyage (Anthropic), Gemini (multimodal text + images)
776
783
  - **Document Sources** - Local files, API upload, Google Drive, S3/MinIO
777
784
  - **Sync Sources** - Per-organization connector management UI (Google Drive, S3/MinIO) with scheduled sync, manual triggers, encrypted credentials, and per-run logs
778
- - **Observability** - Logfire for PydanticAI, LangSmith for LangChain/LangGraph/DeepAgents
785
+ - **Observability** - Logfire for Pydantic AI, LangSmith for LangChain/LangGraph/DeepAgents
779
786
 
780
787
  ### ⚡ Backend (FastAPI)
781
788
 
@@ -801,8 +808,8 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
801
808
 
802
809
  | Category | Integrations |
803
810
  |----------|-------------|
804
- | **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, DeepAgents |
805
- | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |
811
+ | **AI Frameworks** | Pydantic AI, Pydantic Deep Agents, LangChain, LangGraph, DeepAgents |
812
+ | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter, OpenAI-compatible endpoints |
806
813
  | **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |
807
814
  | **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (per-org UI, scheduled) |
808
815
  | **Embeddings** | OpenAI, Voyage, Gemini (multimodal), SentenceTransformers |
@@ -831,7 +838,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
831
838
  │ │
832
839
  │ ┌─────────────────────────────────────────────────────────────────┐ │
833
840
  │ │ AI AGENTS │ │
834
- │ │ PydanticAI · LangChain · LangGraph · DeepAgents │ │
841
+ │ │ Pydantic AI · LangChain · LangGraph · DeepAgents │ │
835
842
  │ │ ──────────────────────────────────────────────────────────── │ │
836
843
  │ │ Tools: datetime · web_search (Tavily) · search_knowledge_base │ │
837
844
  │ │ Providers: OpenAI · Anthropic · Gemini · OpenRouter │ │
@@ -941,7 +948,7 @@ See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agen
941
948
  Choose from **5 AI frameworks** and **4 LLM providers** when generating your project:
942
949
 
943
950
  ```bash
944
- # PydanticAI with OpenAI (default)
951
+ # Pydantic AI with OpenAI (default)
945
952
  fastapi-fullstack create my_app --ai-framework pydantic_ai
946
953
 
947
954
  # LangGraph with Anthropic
@@ -956,15 +963,17 @@ fastapi-fullstack create my_app --rag --database postgresql --task-queue celery
956
963
 
957
964
  ### Supported Combinations
958
965
 
959
- | Framework | OpenAI | Anthropic | Gemini | OpenRouter |
960
- |-----------|:------:|:---------:|:------:|:----------:|
961
- | **PydanticAI** | ✓ | ✓ | ✓ | ✓ |
962
- | **PydanticDeep** | ✓ | ✓ | ✓ | - |
963
- | **LangChain** | ✓ | ✓ | ✓ | - |
964
- | **LangGraph** | ✓ | ✓ | ✓ | - |
965
- | **DeepAgents** | ✓ | ✓ | ✓ | - |
966
+ | Framework | OpenAI | Anthropic | Gemini | OpenRouter | OpenAI-compatible |
967
+ |-----------|:------:|:---------:|:------:|:----------:|:-----------------:|
968
+ | **Pydantic AI** | ✓ | ✓ | ✓ | ✓ | ✓ |
969
+ | **Pydantic Deep Agents** | ✓ | ✓ | ✓ | ✓ | ✓ |
970
+ | **LangChain** | ✓ | ✓ | ✓ | - | - |
971
+ | **LangGraph** | ✓ | ✓ | ✓ | - | - |
972
+ | **DeepAgents** | ✓ | ✓ | ✓ | - | - |
973
+
974
+ **OpenAI-compatible** (`--llm-provider openai_compatible`) reaches any gateway or server that speaks the OpenAI API by its base URL: model routers and LLM gateways (LiteLLM, Requesty, OrcaRouter, Portkey) and self-hosted servers (vLLM, llama.cpp, LM Studio, Ollama). Set `OPENAI_COMPATIBLE_BASE_URL`, `AI_MODEL` as the endpoint names it, and `OPENAI_COMPATIBLE_API_KEY` if it checks one.
966
975
 
967
- ### PydanticAI Integration
976
+ ### Pydantic AI Integration
968
977
 
969
978
  Type-safe agents with full dependency injection:
970
979
 
@@ -1033,7 +1042,7 @@ Each framework has its own observability solution:
1033
1042
 
1034
1043
  | Framework | Observability | Dashboard |
1035
1044
  |-----------|--------------|-----------|
1036
- | **PydanticAI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
1045
+ | **Pydantic AI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
1037
1046
  | **LangChain** | [LangSmith](https://smith.langchain.com) | Traces, feedback, datasets |
1038
1047
 
1039
1048
  See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) for more.
@@ -1088,7 +1097,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
1088
1097
 
1089
1098
  ## 📊 Observability
1090
1099
 
1091
- ### Logfire (for PydanticAI)
1100
+ ### Logfire (for Pydantic AI)
1092
1101
 
1093
1102
  [Logfire](https://logfire.pydantic.dev) provides complete observability for your application - from AI agents to database queries. Built by the Pydantic team, it offers first-class support for the entire Python ecosystem.
1094
1103
 
@@ -1096,7 +1105,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
1096
1105
  graph LR
1097
1106
  subgraph Your App
1098
1107
  API[FastAPI]
1099
- Agent[PydanticAI]
1108
+ Agent[Pydantic AI]
1100
1109
  DB[(Database)]
1101
1110
  Cache[(Redis)]
1102
1111
  Queue[Celery/Taskiq]
@@ -1119,7 +1128,7 @@ graph LR
1119
1128
 
1120
1129
  | Component | What You See |
1121
1130
  |-----------|-------------|
1122
- | **PydanticAI** | Agent runs, tool calls, LLM requests, token usage, streaming events |
1131
+ | **Pydantic AI** | Agent runs, tool calls, LLM requests, token usage, streaming events |
1123
1132
  | **FastAPI** | Request/response traces, latency, status codes, route performance |
1124
1133
  | **PostgreSQL** | Query execution time, slow queries, connection pool stats |
1125
1134
  | **Redis** | Cache hits/misses, command latency, key patterns |
@@ -1293,7 +1302,7 @@ generated_at = "2024-12-21T10:30:00+00:00"
1293
1302
  | **Auth** | `jwt`, `api_key`, `both`, `none` | JWT includes user management |
1294
1303
  | **OAuth** | `none`, `google` | Social login |
1295
1304
  | **AI Framework** | `pydantic_ai`, `pydantic_deep`, `langchain`, `langgraph`, `deepagents` | Choose your AI agent framework |
1296
- | **LLM Provider** | `openai`, `anthropic`, `google`, `openrouter` | OpenRouter only with PydanticAI |
1305
+ | **LLM Provider** | `openai`, `anthropic`, `google`, `openrouter`, `openai_compatible`, `all` | OpenRouter and OpenAI-compatible only with Pydantic AI / Pydantic Deep Agents |
1297
1306
  | **RAG** | `--rag` | Enable RAG with vector database |
1298
1307
  | **Vector Store** | `milvus`, `qdrant`, `chromadb`, `pgvector` | pgvector uses existing PostgreSQL |
1299
1308
  | **Background Tasks** | `none`, `celery`, `taskiq`, `arq`, `prefect` | Distributed queues / orchestration |
@@ -1317,7 +1326,7 @@ fastapi-fullstack new
1317
1326
  # ✓ Rate limiting (per user/org/IP, Redis or in-memory)
1318
1327
  # ✓ Pagination (fastapi-pagination)
1319
1328
  # ✓ Admin Panel (SQLAdmin)
1320
- # ✓ AI Agent (PydanticAI or LangChain)
1329
+ # ✓ AI Agent (Pydantic AI or LangChain)
1321
1330
  # ✓ Webhooks
1322
1331
  # ✓ Sentry
1323
1332
  # ✓ Logfire / LangSmith
@@ -1339,7 +1348,7 @@ Setting up a production AI agent stack manually means wiring together 10+ tools
1339
1348
  # 2. Configure SQLAlchemy + Alembic migrations
1340
1349
  # 3. Implement JWT auth with refresh tokens
1341
1350
  # 4. Build WebSocket streaming for AI responses
1342
- # 5. Integrate PydanticAI/LangChain with tool calling
1351
+ # 5. Integrate Pydantic AI/LangChain with tool calling
1343
1352
  # 6. Set up RAG pipeline (parsing, chunking, embedding, vector store)
1344
1353
  # 7. Configure Celery + Redis for background tasks
1345
1354
  # 8. Build Next.js frontend with auth and chat UI
@@ -1409,7 +1418,7 @@ The generated project is plain code — no lock-in or runtime dependency on the
1409
1418
  <details>
1410
1419
  <summary><b>Can I use a different LLM provider than the one I selected?</b></summary>
1411
1420
 
1412
- Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPENAI_API_KEY`, etc.). You can switch providers by changing the `.env` file and the model name — no code changes needed for PydanticAI (which supports all providers natively).
1421
+ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPENAI_API_KEY`, etc.). You can switch providers by changing the `.env` file and the model name — no code changes needed for Pydantic AI (which supports all providers natively).
1413
1422
 
1414
1423
  </details>
1415
1424
 
@@ -1421,7 +1430,7 @@ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPEN
1421
1430
  |----------|-------------|
1422
1431
  | [Architecture](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) | Repository + Service pattern, layered design |
1423
1432
  | [Frontend](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/frontend.md) | Next.js setup, auth, state management |
1424
- | [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | PydanticAI, tools, WebSocket streaming |
1433
+ | [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | Pydantic AI, tools, WebSocket streaming |
1425
1434
  | [Observability](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/observability.md) | Logfire integration, tracing, metrics |
1426
1435
  | [Deployment](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/deployment.md) | Docker, Kubernetes, production setup |
1427
1436
  | [Development](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/development.md) | Local setup, testing, debugging |
@@ -1431,7 +1440,7 @@ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPEN
1431
1440
 
1432
1441
  ## Star History
1433
1442
 
1434
- [![Star History Chart](https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=date&legend=top-left)](https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template&type=date&legend=top-left)
1443
+ [![Star History Chart](https://api.star-history.com/svg?repos=vstorm-co/full-stack-ai-agent-template&type=date&legend=top-left)](https://www.star-history.com/#vstorm-co/full-stack-ai-agent-template&type=date&legend=top-left)
1435
1444
 
1436
1445
  ---
1437
1446
 
@@ -1,3 +1,10 @@
1
+ <p align="center">
2
+ <a href="https://github.com/vstorm-co/agenticos">
3
+ <img src="assets/agenticos-banner-light.png" width="100%" alt="AgenticOS by Vstorm, the Sovereign Agentic AI Layer: AI agents your whole team can use and improve. Open source (Apache-2.0), self-hosted, built on Pydantic AI, with budgets, approvals, guardrails and activity built in. Links to the AgenticOS repository on GitHub.">
4
+ </a>
5
+ </p>
6
+ <p align="center"><sub>From the team behind this repo: <a href="https://github.com/vstorm-co/agenticos"><b>AgenticOS</b></a>, the Sovereign Agentic AI Layer. AI agents your whole team can use and improve: open source (Apache-2.0), self-hosted, built on Pydantic AI.</sub></p>
7
+
1
8
  <h1 align="center">Full-Stack AI Agent Template</h1>
2
9
 
3
10
  <p align="center">
@@ -9,7 +16,6 @@
9
16
  <a href="#-features">Features</a> •
10
17
  <a href="#-demo">Demo</a> •
11
18
  <a href="https://vstorm-co.github.io/full-stack-ai-agent-template/">Documentation</a> •
12
- <a href="https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/">Configurator</a> •
13
19
  <a href="https://pypi.org/project/fastapi-fullstack/">PyPI</a>
14
20
  </p>
15
21
 
@@ -32,7 +38,7 @@
32
38
  </p>
33
39
 
34
40
  <p align="center">
35
- <b>🤖 5 AI Agent Frameworks</b> <i>(PydanticAI, PydanticDeep, LangChain, LangGraph, DeepAgents)</i>
41
+ <b>🤖 5 AI Agent Frameworks</b> <i>(Pydantic AI, Pydantic Deep Agents, LangChain, LangGraph, DeepAgents)</i>
36
42
  <br>
37
43
  <b>📄 RAG Pipeline</b> <i>(Milvus, Qdrant, pgvector, ChromaDB)</i>
38
44
  <br>
@@ -73,22 +79,23 @@ This template is part of a broader open-source ecosystem for production AI agent
73
79
 
74
80
  | Project | Description | |
75
81
  |---------|-------------|---|
82
+ | **[AgenticOS](https://github.com/vstorm-co/agenticos)** | Open-source (Apache-2.0), self-hosted platform to build, share and govern AI agents across a company. | [![Stars](https://img.shields.io/github/stars/vstorm-co/agenticos?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/agenticos) |
76
83
  | **[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
84
  | **[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) |
85
+ | **[subagents-pydantic-ai](https://github.com/vstorm-co/subagents-pydantic-ai)** | Declarative multi-agent orchestration with token tracking. | [![Stars](https://img.shields.io/github/stars/vstorm-co/subagents-pydantic-ai?style=flat&logo=github&color=yellow)](https://github.com/vstorm-co/subagents-pydantic-ai) |
86
+ | **[summarization-pydantic-ai](https://github.com/vstorm-co/summarization-pydantic-ai)** | 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
87
  | **[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
88
 
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`.
89
+ > **Want the runtime behind this template's AI agents?** [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) powers the `pydantic_deep` framework option — install it standalone with `curl -fsSL .../install.sh | bash`.
83
90
 
84
- Browse all projects at [oss.vstorm.co](https://oss.vstorm.co)
91
+ Browse all projects at [github.com/vstorm-co](https://github.com/vstorm-co)
85
92
 
86
93
  ---
87
94
 
88
95
  ## 🚀 Quick Start
89
96
 
90
97
  > [!TIP]
91
- > **Prefer a visual configurator?** Use the [Web Configurator](https://oss.vstorm.co/projects/full-stack-ai-agent-template/configurator/) to configure your project in the browser and download a ZIP — no CLI installation needed.
98
+ > **Want to review every option first?** The [installation guide](https://vstorm-co.github.io/full-stack-ai-agent-template/installation/) covers the interactive wizard, non-interactive flags and presets; `fastapi-fullstack templates` lists every option.
92
99
 
93
100
  ### Installation
94
101
 
@@ -605,7 +612,7 @@ The chat UI streams responses over WebSocket and renders each tool call as a pur
605
612
  <tr>
606
613
  <td width="50%">
607
614
 
608
- **Logfire** — distributed tracing: FastAPI, PydanticAI, DB, Redis, Celery, HTTPX in one timeline.
615
+ **Logfire** — distributed tracing: FastAPI, Pydantic AI, DB, Redis, Celery, HTTPX in one timeline.
609
616
 
610
617
  ![Logfire](https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/logfire.png)
611
618
 
@@ -652,7 +659,7 @@ This template gives you all of that out of the box, with **20+ configurable inte
652
659
 
653
660
  ### Perfect For
654
661
 
655
- - 🤖 **AI Chatbots & Assistants** - PydanticAI or LangChain agents with streaming responses
662
+ - 🤖 **AI Chatbots & Assistants** - Pydantic AI or LangChain agents with streaming responses
656
663
  - 📊 **ML Applications** - Background task processing with Celery/Taskiq
657
664
  - 🏢 **Enterprise SaaS** - Full auth, admin panel, webhooks, and more
658
665
  - 🚀 **Startups** - Ship fast with production-ready infrastructure
@@ -672,7 +679,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
672
679
  ## ✨ Features
673
680
 
674
681
  <p align="center">
675
- <a href="https://ai.pydantic.dev"><img src="https://img.shields.io/badge/PydanticAI-E92063?logo=pydantic&logoColor=white" alt="PydanticAI"></a>
682
+ <a href="https://ai.pydantic.dev"><img src="https://img.shields.io/badge/Pydantic%20AI-E92063?logo=pydantic&logoColor=white" alt="Pydantic AI"></a>
676
683
  <a href="https://python.langchain.com"><img src="https://img.shields.io/badge/LangChain-1C3C3C?logo=langchain&logoColor=white" alt="LangChain"></a>
677
684
  <a href="https://langchain-ai.github.io/langgraph/"><img src="https://img.shields.io/badge/LangGraph-005A9C?logo=langchain&logoColor=white" alt="LangGraph"></a>
678
685
  <a href="https://milvus.io"><img src="https://img.shields.io/badge/Milvus-FF6B35?logoColor=white" alt="Milvus"></a>
@@ -713,8 +720,8 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
713
720
 
714
721
  ### 🤖 AI/LLM First
715
722
 
716
- - **5 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/), [DeepAgents](https://github.com/vstorm-co/pydantic-deepagents)
717
- - **4 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter
723
+ - **5 AI Frameworks** - [Pydantic AI](https://ai.pydantic.dev), [Pydantic Deep Agents](https://github.com/vstorm-co/pydantic-deepagents), [LangChain](https://python.langchain.com), [LangGraph](https://langchain-ai.github.io/langgraph/), [DeepAgents](https://github.com/langchain-ai/deepagents)
724
+ - **5 LLM Providers** - OpenAI, Anthropic, Google Gemini, OpenRouter, and any OpenAI-compatible gateway or server
718
725
  - **RAG** - Document ingestion, vector search, reranking (Milvus, Qdrant, ChromaDB, pgvector)
719
726
  - **WebSocket Streaming** - Real-time responses with full event access
720
727
  - **Rich Chat UI** - Specialized tool-call cards (web search, knowledge base, Python, charts, skills), live subagent feed, citation sources panel, plan/task checklist, reasoning view, and in-chat file previews
@@ -727,7 +734,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
727
734
  - **Multimodal Embeddings** - Provider-aware: OpenAI, Voyage (Anthropic), Gemini (multimodal text + images)
728
735
  - **Document Sources** - Local files, API upload, Google Drive, S3/MinIO
729
736
  - **Sync Sources** - Per-organization connector management UI (Google Drive, S3/MinIO) with scheduled sync, manual triggers, encrypted credentials, and per-run logs
730
- - **Observability** - Logfire for PydanticAI, LangSmith for LangChain/LangGraph/DeepAgents
737
+ - **Observability** - Logfire for Pydantic AI, LangSmith for LangChain/LangGraph/DeepAgents
731
738
 
732
739
  ### ⚡ Backend (FastAPI)
733
740
 
@@ -753,8 +760,8 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
753
760
 
754
761
  | Category | Integrations |
755
762
  |----------|-------------|
756
- | **AI Frameworks** | PydanticAI, PydanticDeep, LangChain, LangGraph, DeepAgents |
757
- | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter |
763
+ | **AI Frameworks** | Pydantic AI, Pydantic Deep Agents, LangChain, LangGraph, DeepAgents |
764
+ | **LLM Providers** | OpenAI, Anthropic, Google Gemini, OpenRouter, OpenAI-compatible endpoints |
758
765
  | **RAG / Vector Stores** | Milvus, Qdrant, ChromaDB, pgvector |
759
766
  | **RAG Sources** | Local files, API upload, Google Drive, S3/MinIO, Sync Sources (per-org UI, scheduled) |
760
767
  | **Embeddings** | OpenAI, Voyage, Gemini (multimodal), SentenceTransformers |
@@ -783,7 +790,7 @@ They also ship a ready-to-use **`.claude/` toolkit** that adapts to the options
783
790
  │ │
784
791
  │ ┌─────────────────────────────────────────────────────────────────┐ │
785
792
  │ │ AI AGENTS │ │
786
- │ │ PydanticAI · LangChain · LangGraph · DeepAgents │ │
793
+ │ │ Pydantic AI · LangChain · LangGraph · DeepAgents │ │
787
794
  │ │ ──────────────────────────────────────────────────────────── │ │
788
795
  │ │ Tools: datetime · web_search (Tavily) · search_knowledge_base │ │
789
796
  │ │ Providers: OpenAI · Anthropic · Gemini · OpenRouter │ │
@@ -893,7 +900,7 @@ See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agen
893
900
  Choose from **5 AI frameworks** and **4 LLM providers** when generating your project:
894
901
 
895
902
  ```bash
896
- # PydanticAI with OpenAI (default)
903
+ # Pydantic AI with OpenAI (default)
897
904
  fastapi-fullstack create my_app --ai-framework pydantic_ai
898
905
 
899
906
  # LangGraph with Anthropic
@@ -908,15 +915,17 @@ fastapi-fullstack create my_app --rag --database postgresql --task-queue celery
908
915
 
909
916
  ### Supported Combinations
910
917
 
911
- | Framework | OpenAI | Anthropic | Gemini | OpenRouter |
912
- |-----------|:------:|:---------:|:------:|:----------:|
913
- | **PydanticAI** | ✓ | ✓ | ✓ | ✓ |
914
- | **PydanticDeep** | ✓ | ✓ | ✓ | - |
915
- | **LangChain** | ✓ | ✓ | ✓ | - |
916
- | **LangGraph** | ✓ | ✓ | ✓ | - |
917
- | **DeepAgents** | ✓ | ✓ | ✓ | - |
918
+ | Framework | OpenAI | Anthropic | Gemini | OpenRouter | OpenAI-compatible |
919
+ |-----------|:------:|:---------:|:------:|:----------:|:-----------------:|
920
+ | **Pydantic AI** | ✓ | ✓ | ✓ | ✓ | ✓ |
921
+ | **Pydantic Deep Agents** | ✓ | ✓ | ✓ | ✓ | ✓ |
922
+ | **LangChain** | ✓ | ✓ | ✓ | - | - |
923
+ | **LangGraph** | ✓ | ✓ | ✓ | - | - |
924
+ | **DeepAgents** | ✓ | ✓ | ✓ | - | - |
925
+
926
+ **OpenAI-compatible** (`--llm-provider openai_compatible`) reaches any gateway or server that speaks the OpenAI API by its base URL: model routers and LLM gateways (LiteLLM, Requesty, OrcaRouter, Portkey) and self-hosted servers (vLLM, llama.cpp, LM Studio, Ollama). Set `OPENAI_COMPATIBLE_BASE_URL`, `AI_MODEL` as the endpoint names it, and `OPENAI_COMPATIBLE_API_KEY` if it checks one.
918
927
 
919
- ### PydanticAI Integration
928
+ ### Pydantic AI Integration
920
929
 
921
930
  Type-safe agents with full dependency injection:
922
931
 
@@ -985,7 +994,7 @@ Each framework has its own observability solution:
985
994
 
986
995
  | Framework | Observability | Dashboard |
987
996
  |-----------|--------------|-----------|
988
- | **PydanticAI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
997
+ | **Pydantic AI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
989
998
  | **LangChain** | [LangSmith](https://smith.langchain.com) | Traces, feedback, datasets |
990
999
 
991
1000
  See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) for more.
@@ -1040,7 +1049,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
1040
1049
 
1041
1050
  ## 📊 Observability
1042
1051
 
1043
- ### Logfire (for PydanticAI)
1052
+ ### Logfire (for Pydantic AI)
1044
1053
 
1045
1054
  [Logfire](https://logfire.pydantic.dev) provides complete observability for your application - from AI agents to database queries. Built by the Pydantic team, it offers first-class support for the entire Python ecosystem.
1046
1055
 
@@ -1048,7 +1057,7 @@ uv run my_app rag-sync-s3 --collection docs --prefix reports/ --bucket my-bucket
1048
1057
  graph LR
1049
1058
  subgraph Your App
1050
1059
  API[FastAPI]
1051
- Agent[PydanticAI]
1060
+ Agent[Pydantic AI]
1052
1061
  DB[(Database)]
1053
1062
  Cache[(Redis)]
1054
1063
  Queue[Celery/Taskiq]
@@ -1071,7 +1080,7 @@ graph LR
1071
1080
 
1072
1081
  | Component | What You See |
1073
1082
  |-----------|-------------|
1074
- | **PydanticAI** | Agent runs, tool calls, LLM requests, token usage, streaming events |
1083
+ | **Pydantic AI** | Agent runs, tool calls, LLM requests, token usage, streaming events |
1075
1084
  | **FastAPI** | Request/response traces, latency, status codes, route performance |
1076
1085
  | **PostgreSQL** | Query execution time, slow queries, connection pool stats |
1077
1086
  | **Redis** | Cache hits/misses, command latency, key patterns |
@@ -1245,7 +1254,7 @@ generated_at = "2024-12-21T10:30:00+00:00"
1245
1254
  | **Auth** | `jwt`, `api_key`, `both`, `none` | JWT includes user management |
1246
1255
  | **OAuth** | `none`, `google` | Social login |
1247
1256
  | **AI Framework** | `pydantic_ai`, `pydantic_deep`, `langchain`, `langgraph`, `deepagents` | Choose your AI agent framework |
1248
- | **LLM Provider** | `openai`, `anthropic`, `google`, `openrouter` | OpenRouter only with PydanticAI |
1257
+ | **LLM Provider** | `openai`, `anthropic`, `google`, `openrouter`, `openai_compatible`, `all` | OpenRouter and OpenAI-compatible only with Pydantic AI / Pydantic Deep Agents |
1249
1258
  | **RAG** | `--rag` | Enable RAG with vector database |
1250
1259
  | **Vector Store** | `milvus`, `qdrant`, `chromadb`, `pgvector` | pgvector uses existing PostgreSQL |
1251
1260
  | **Background Tasks** | `none`, `celery`, `taskiq`, `arq`, `prefect` | Distributed queues / orchestration |
@@ -1269,7 +1278,7 @@ fastapi-fullstack new
1269
1278
  # ✓ Rate limiting (per user/org/IP, Redis or in-memory)
1270
1279
  # ✓ Pagination (fastapi-pagination)
1271
1280
  # ✓ Admin Panel (SQLAdmin)
1272
- # ✓ AI Agent (PydanticAI or LangChain)
1281
+ # ✓ AI Agent (Pydantic AI or LangChain)
1273
1282
  # ✓ Webhooks
1274
1283
  # ✓ Sentry
1275
1284
  # ✓ Logfire / LangSmith
@@ -1291,7 +1300,7 @@ Setting up a production AI agent stack manually means wiring together 10+ tools
1291
1300
  # 2. Configure SQLAlchemy + Alembic migrations
1292
1301
  # 3. Implement JWT auth with refresh tokens
1293
1302
  # 4. Build WebSocket streaming for AI responses
1294
- # 5. Integrate PydanticAI/LangChain with tool calling
1303
+ # 5. Integrate Pydantic AI/LangChain with tool calling
1295
1304
  # 6. Set up RAG pipeline (parsing, chunking, embedding, vector store)
1296
1305
  # 7. Configure Celery + Redis for background tasks
1297
1306
  # 8. Build Next.js frontend with auth and chat UI
@@ -1361,7 +1370,7 @@ The generated project is plain code — no lock-in or runtime dependency on the
1361
1370
  <details>
1362
1371
  <summary><b>Can I use a different LLM provider than the one I selected?</b></summary>
1363
1372
 
1364
- Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPENAI_API_KEY`, etc.). You can switch providers by changing the `.env` file and the model name — no code changes needed for PydanticAI (which supports all providers natively).
1373
+ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPENAI_API_KEY`, etc.). You can switch providers by changing the `.env` file and the model name — no code changes needed for Pydantic AI (which supports all providers natively).
1365
1374
 
1366
1375
  </details>
1367
1376
 
@@ -1373,7 +1382,7 @@ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPEN
1373
1382
  |----------|-------------|
1374
1383
  | [Architecture](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) | Repository + Service pattern, layered design |
1375
1384
  | [Frontend](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/frontend.md) | Next.js setup, auth, state management |
1376
- | [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | PydanticAI, tools, WebSocket streaming |
1385
+ | [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | Pydantic AI, tools, WebSocket streaming |
1377
1386
  | [Observability](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/observability.md) | Logfire integration, tracing, metrics |
1378
1387
  | [Deployment](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/deployment.md) | Docker, Kubernetes, production setup |
1379
1388
  | [Development](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/development.md) | Local setup, testing, debugging |
@@ -1383,7 +1392,7 @@ Yes. The LLM provider is configured via environment variables (`AI_MODEL`, `OPEN
1383
1392
 
1384
1393
  ## Star History
1385
1394
 
1386
- [![Star History Chart](https://api.star-history.com/svg?repos=vstorm-co/full-stack-fastapi-nextjs-llm-template&type=date&legend=top-left)](https://www.star-history.com/#vstorm-co/full-stack-fastapi-nextjs-llm-template&type=date&legend=top-left)
1395
+ [![Star History Chart](https://api.star-history.com/svg?repos=vstorm-co/full-stack-ai-agent-template&type=date&legend=top-left)](https://www.star-history.com/#vstorm-co/full-stack-ai-agent-template&type=date&legend=top-left)
1387
1396
 
1388
1397
  ---
1389
1398
 
@@ -18,6 +18,19 @@
18
18
  # manual_steps:
19
19
  # - "Run `alembic upgrade head` (new billing tables)."
20
20
 
21
+ - version: "0.2.20"
22
+ breaking:
23
+ - "Redis is replaced by Valkey (valkey/valkey:9-alpine) in the compose files and the generated CI. The protocol, the redis client, the REDIS_* settings and the `redis` service name are unchanged."
24
+ - "DATABASE_URL_SYNC now names its driver (postgresql+psycopg2://). Code that passed it to asyncpg must strip the driver first, as app/db/todo_pool.py does."
25
+ - "Pydantic AI 2.x is the floor (pydantic-ai-slim>=2.0.0). Custom code reading FunctionToolResultEvent.result must read .part instead; .result no longer exists."
26
+ - "PydanticDeep projects run on pydantic-deep 0.3.50 and Pydantic AI workspaces: PydanticDeepAssistant takes no backend_override, write_file_to_workspace is now upload_file(filename, content), and the Daytona backend is DaytonaWorkspace (the `daytona` extra of pydantic-ai-backend)."
27
+ - "MCP client projects need mcp>=2.0.0: the streamable-HTTP client is streamable_http_client, and app/agents/mcp_oauth.py uses httpx2."
28
+ - "Slack multi-person DMs (mpim) are now chat_type \"group\", not \"private\"."
29
+ manual_steps:
30
+ - "Before the first start on Valkey: move /data/dump.rdb out of the redis_data volume (or recreate the volume). Valkey cannot load an RDB written by Redis 7.4 (`Can't handle RDB format version 12`); the template keeps only cache, broker and rate-limit data there."
31
+ - "Run `uv sync` in backend/: several floors moved (pydantic-ai-slim 2.0, pydantic-monty 1.0, pydantic-ai-skills 2.0, mcp 2.0, pydantic-deep 0.3.50), and OpenAI embeddings now declare `openai` themselves."
32
+ - "Skills: drop-in SKILL.md files keep working; the agent now loads each one with `load_capability` instead of `load_skill`."
33
+
21
34
  - version: "0.2.19"
22
35
  removed:
23
36
  - "backend/app/core/rate_limit.py"
@@ -395,11 +395,13 @@ def new(output: Path | None, no_input: bool, name: str | None, minimal: bool) ->
395
395
  )
396
396
  @click.option(
397
397
  "--llm-provider",
398
- type=click.Choice(["openai", "anthropic", "google", "openrouter", "all"]),
398
+ type=click.Choice(["openai", "anthropic", "google", "openrouter", "openai_compatible", "all"]),
399
399
  default="openai",
400
400
  help=(
401
401
  "LLM provider (default: openai). 'all' installs every SDK and lets users "
402
- "pick the model at runtime. openrouter requires pydantic_ai."
402
+ "pick the model at runtime. openai_compatible targets any OpenAI-compatible "
403
+ "gateway or server by base URL. openrouter and openai_compatible require "
404
+ "pydantic_ai or pydantic_deep."
403
405
  ),
404
406
  )
405
407
  @click.option("--redis", is_flag=True, help="Enable Redis")
@@ -498,6 +500,12 @@ def new(output: Path | None, no_input: bool, name: str | None, minimal: bool) ->
498
500
  default=False,
499
501
  help="Enable the MCP client — connect external MCP servers as agent tools (PydanticAI only)",
500
502
  )
503
+ @click.option(
504
+ "--memory",
505
+ is_flag=True,
506
+ default=False,
507
+ help="Enable persistent per-user agent memory (Settings → Memory, Pydantic AI + PostgreSQL only)",
508
+ )
501
509
  @click.option("--session-management", is_flag=True, help="Enable session management")
502
510
  @click.option(
503
511
  "--reverse-proxy",
@@ -783,6 +791,7 @@ def create(
783
791
  skills: bool,
784
792
  deep_research: bool,
785
793
  mcp_client: bool,
794
+ memory: bool,
786
795
  session_management: bool,
787
796
  reverse_proxy: str,
788
797
  kubernetes: bool,
@@ -1205,6 +1214,7 @@ def create(
1205
1214
  enable_skills=skills,
1206
1215
  enable_deep_research=deep_research,
1207
1216
  enable_mcp_client=mcp_client,
1217
+ enable_memory=memory,
1208
1218
  enable_session_management=session_management,
1209
1219
  reverse_proxy=_rp_map[reverse_proxy],
1210
1220
  enable_kubernetes=kubernetes,
@@ -1362,6 +1372,9 @@ def templates() -> None:
1362
1372
  console.print(" --llm-provider anthropic Anthropic (claude-opus-4-7)")
1363
1373
  console.print(" --llm-provider google Google Gemini (gemini-2.5-flash)")
1364
1374
  console.print(" --llm-provider openrouter OpenRouter (pydantic_ai only)")
1375
+ console.print(
1376
+ " --llm-provider openai_compatible Any OpenAI-compatible gateway or server (pydantic_ai only)"
1377
+ )
1365
1378
  console.print(
1366
1379
  " --websockets Enable WebSocket support (real-time chat streaming)"
1367
1380
  )