fagoon-upgrade 2.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fagoon_upgrade-2.0.0/.dockerignore +15 -0
- fagoon_upgrade-2.0.0/.env.example +27 -0
- fagoon_upgrade-2.0.0/.env.template +129 -0
- fagoon_upgrade-2.0.0/.geminiignore +7 -0
- fagoon_upgrade-2.0.0/.github/CODEOWNERS +10 -0
- fagoon_upgrade-2.0.0/.github/pull_request_template.md +9 -0
- fagoon_upgrade-2.0.0/.github/workflows/ci.yml +63 -0
- fagoon_upgrade-2.0.0/.github/workflows/deploy.yml +71 -0
- fagoon_upgrade-2.0.0/.github/workflows/release.yml +96 -0
- fagoon_upgrade-2.0.0/.gitignore +201 -0
- fagoon_upgrade-2.0.0/.importlinter +24 -0
- fagoon_upgrade-2.0.0/Dockerfile +33 -0
- fagoon_upgrade-2.0.0/FAGOON_COMPREHENSIVE_DOCS.md +103 -0
- fagoon_upgrade-2.0.0/GEMINI.md +187 -0
- fagoon_upgrade-2.0.0/PKG-INFO +454 -0
- fagoon_upgrade-2.0.0/PROJECT_OVERVIEW.md +282 -0
- fagoon_upgrade-2.0.0/README.md +370 -0
- fagoon_upgrade-2.0.0/__init__.py +0 -0
- fagoon_upgrade-2.0.0/alembic/README +1 -0
- fagoon_upgrade-2.0.0/alembic/README.md +26 -0
- fagoon_upgrade-2.0.0/alembic/env.py +80 -0
- fagoon_upgrade-2.0.0/alembic/script.py.mako +28 -0
- fagoon_upgrade-2.0.0/alembic/versions/0b463d51fdf2_add_usage_tracking_tables.py +274 -0
- fagoon_upgrade-2.0.0/alembic/versions/0dfa49bde271_add_agentic_memory_and_rag_document_.py +97 -0
- fagoon_upgrade-2.0.0/alembic/versions/0ef15e78f70d_init_uuid_schema.py +77 -0
- fagoon_upgrade-2.0.0/alembic/versions/1b05306dc143_add_vibe_code_tables.py +55 -0
- fagoon_upgrade-2.0.0/alembic/versions/2673b3ca8de9_describe_what_changed.py +26 -0
- fagoon_upgrade-2.0.0/alembic/versions/38133fe48649_add_whatsapp_session_table.py +80 -0
- fagoon_upgrade-2.0.0/alembic/versions/42a6dc963da9_merge_remaining_heads.py +28 -0
- fagoon_upgrade-2.0.0/alembic/versions/47a607006441_add_generated_images_table.py +40 -0
- fagoon_upgrade-2.0.0/alembic/versions/4dd6b27a4d41_add_memory_and_rag_vector_tables.py +61 -0
- fagoon_upgrade-2.0.0/alembic/versions/5362b7633307_add_engine_metadata_and_versioning.py +44 -0
- fagoon_upgrade-2.0.0/alembic/versions/548d7155be22_add_workflow_api_table.py +43 -0
- fagoon_upgrade-2.0.0/alembic/versions/61fe520bc3b1_refactor_the_user_table.py +32 -0
- fagoon_upgrade-2.0.0/alembic/versions/6aa267e9e4b1_initial_schema.py +200 -0
- fagoon_upgrade-2.0.0/alembic/versions/6dd8f9ac7fcd_merge_new_split_heads.py +28 -0
- fagoon_upgrade-2.0.0/alembic/versions/8c632576a23b_merge_split_heads.py +28 -0
- fagoon_upgrade-2.0.0/alembic/versions/a1b2c3d4e5f6_add_connection_tracking_columns.py +50 -0
- fagoon_upgrade-2.0.0/alembic/versions/a96116f90767_create_llm_model_configs.py +45 -0
- fagoon_upgrade-2.0.0/alembic/versions/b2c3d4e5f6a7_add_missing_webhook_columns.py +80 -0
- fagoon_upgrade-2.0.0/alembic/versions/c3d4e5f6a7b8_add_created_by_to_workflowversion.py +28 -0
- fagoon_upgrade-2.0.0/alembic/versions/d4e5f6a7b8c9_add_schedule_and_template_tables.py +171 -0
- fagoon_upgrade-2.0.0/alembic/versions/e18c5e4bf740_add_encrypted_connections.py +45 -0
- fagoon_upgrade-2.0.0/alembic/versions/e338371b80aa_fix_timezone_columns.py +48 -0
- fagoon_upgrade-2.0.0/alembic/versions/e5f6a7b8c9d0_seed_builtin_templates.py +361 -0
- fagoon_upgrade-2.0.0/alembic/versions/fdb4494e113e_add_results_field_to_workflow_execution.py +34 -0
- fagoon_upgrade-2.0.0/alembic.ini +149 -0
- fagoon_upgrade-2.0.0/alembic_helper.ps1 +78 -0
- fagoon_upgrade-2.0.0/capital_adequacy_cet1.png +0 -0
- fagoon_upgrade-2.0.0/clear_instances.py +20 -0
- fagoon_upgrade-2.0.0/data/config.json +3 -0
- fagoon_upgrade-2.0.0/deploy/Dockerfile +36 -0
- fagoon_upgrade-2.0.0/deploy/Dockerfile.save +33 -0
- fagoon_upgrade-2.0.0/deploy/docker-compose.full.yml +69 -0
- fagoon_upgrade-2.0.0/deploy/docker-compose.yml +49 -0
- fagoon_upgrade-2.0.0/deploy/entrypoint.sh +92 -0
- fagoon_upgrade-2.0.0/docker/Dockerfile.sandbox +124 -0
- fagoon_upgrade-2.0.0/docker/build-sandbox.sh +109 -0
- fagoon_upgrade-2.0.0/docker-compose.yml +69 -0
- fagoon_upgrade-2.0.0/ecosystem.config.js +28 -0
- fagoon_upgrade-2.0.0/fagoon_cli/__init__.py +1 -0
- fagoon_upgrade-2.0.0/fagoon_cli/compose/docker-compose.full.yml +68 -0
- fagoon_upgrade-2.0.0/fagoon_cli/compose/docker-compose.yml +45 -0
- fagoon_upgrade-2.0.0/fagoon_cli/main.py +261 -0
- fagoon_upgrade-2.0.0/files/INDEX_AND_NAVIGATION.md +495 -0
- fagoon_upgrade-2.0.0/files/MIGRATION_CHECKLIST.md +634 -0
- fagoon_upgrade-2.0.0/files/QUICK_START_SUMMARY.md +572 -0
- fagoon_upgrade-2.0.0/files/README.md +385 -0
- fagoon_upgrade-2.0.0/files/VIBE_CODE_IMPLEMENTATION_GUIDE.md +931 -0
- fagoon_upgrade-2.0.0/files/VIBE_CODE_MODE_PYTHON_ARCHITECTURE.md +1218 -0
- fagoon_upgrade-2.0.0/files/migrate_from_rust.py +450 -0
- fagoon_upgrade-2.0.0/frontend/.eslintrc.json +6 -0
- fagoon_upgrade-2.0.0/frontend/.github/workflows/deploy-develop.yml +194 -0
- fagoon_upgrade-2.0.0/frontend/.github/workflows/deploy-main.yml +194 -0
- fagoon_upgrade-2.0.0/frontend/.gitignore +37 -0
- fagoon_upgrade-2.0.0/frontend/.npmrc +1 -0
- fagoon_upgrade-2.0.0/frontend/Dockerfile +26 -0
- fagoon_upgrade-2.0.0/frontend/README.md +36 -0
- fagoon_upgrade-2.0.0/frontend/USER_GUIDE.md +174 -0
- fagoon_upgrade-2.0.0/frontend/components.json +20 -0
- fagoon_upgrade-2.0.0/frontend/deploy_domain.sh +53 -0
- fagoon_upgrade-2.0.0/frontend/ecosystem.config.js +14 -0
- fagoon_upgrade-2.0.0/frontend/frontend-node-connections-spec.md +213 -0
- fagoon_upgrade-2.0.0/frontend/let +0 -0
- fagoon_upgrade-2.0.0/frontend/next.config.mjs +33 -0
- fagoon_upgrade-2.0.0/frontend/nginx_fagoon_tech +31 -0
- fagoon_upgrade-2.0.0/frontend/package-lock.json +18339 -0
- fagoon_upgrade-2.0.0/frontend/package.json +128 -0
- fagoon_upgrade-2.0.0/frontend/postcss.config.mjs +8 -0
- fagoon_upgrade-2.0.0/frontend/public/Icon.svg +10 -0
- fagoon_upgrade-2.0.0/frontend/public/Poppins-Regular.ttf +0 -0
- fagoon_upgrade-2.0.0/frontend/public/ResponseLoading.json +1 -0
- fagoon_upgrade-2.0.0/frontend/public/ag1.png +0 -0
- fagoon_upgrade-2.0.0/frontend/public/ag2.png +0 -0
- fagoon_upgrade-2.0.0/frontend/public/ag3.png +0 -0
- fagoon_upgrade-2.0.0/frontend/public/bg.jpg +0 -0
- fagoon_upgrade-2.0.0/frontend/public/bg.webp +0 -0
- fagoon_upgrade-2.0.0/frontend/public/chat-page-logo.svg +9 -0
- fagoon_upgrade-2.0.0/frontend/public/enterprise-content-intelligence.webp +0 -0
- fagoon_upgrade-2.0.0/frontend/public/icons/deepseek.png +0 -0
- fagoon_upgrade-2.0.0/frontend/public/icons/gemini-ai.jpg +0 -0
- fagoon_upgrade-2.0.0/frontend/public/icons/llama3.webp +0 -0
- fagoon_upgrade-2.0.0/frontend/public/icons/openai.webp +0 -0
- fagoon_upgrade-2.0.0/frontend/public/image.png +0 -0
- fagoon_upgrade-2.0.0/frontend/public/mic.mp3 +0 -0
- fagoon_upgrade-2.0.0/frontend/public/neural-analytics-suite.webp +0 -0
- fagoon_upgrade-2.0.0/frontend/public/quantum-support-intelligence.webp +0 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/anthropic.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/deepseek.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/fireworks.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/fireworksai.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/google.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/groq.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/mistral.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/ollama.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/openai.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/togetherai.svg +14 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/vertex.svg +1 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/logos/xai.svg +6 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/templates/code-interpreter-v1.svg +265 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/templates/gradio-developer.svg +23 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/templates/nextjs-developer.svg +9 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/templates/streamlit-developer.svg +5 -0
- fagoon_upgrade-2.0.0/frontend/public/thirdparty/templates/vue-developer.svg +3 -0
- fagoon_upgrade-2.0.0/frontend/public/upgrade-profile-default.jpg +0 -0
- fagoon_upgrade-2.0.0/frontend/public/upgrade.json +1 -0
- fagoon_upgrade-2.0.0/frontend/src/app/(chat1)/c/[historyId]/page.tsx +184 -0
- fagoon_upgrade-2.0.0/frontend/src/app/(chat1)/chat/page.tsx +66 -0
- fagoon_upgrade-2.0.0/frontend/src/app/(chat1)/hooks/useUpgradeChat.tsx +598 -0
- fagoon_upgrade-2.0.0/frontend/src/app/(chat1)/layout.tsx +12 -0
- fagoon_upgrade-2.0.0/frontend/src/app/actions/publish.ts +33 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/[agentId]/chat/[chatId]/agent-chat-input.tsx +51 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/[agentId]/chat/[chatId]/agent-chat-message.tsx +231 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/[agentId]/chat/[chatId]/agent-history.tsx +68 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/[agentId]/chat/[chatId]/page.tsx +323 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/[agentId]/chat/[chatId]/types.ts +17 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/[agentId]/chat/page.tsx +102 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/chat/page.tsx +334 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/Main.tsx +789 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/agent-card.tsx +79 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/agent-details-modal.tsx +310 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/agent-form-components/ai-model-settings.tsx +142 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/agent-form-components/basic-information.tsx +115 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/agent-form-components/knowledge-base.tsx +183 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/agent-form-components/system-prompt.tsx +30 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/agent-form-components/tools.tsx +58 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/create-agent.tsx +255 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/deploy-agent-modal.tsx +337 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/whatsapp-disclaimer.tsx +60 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/whatsapp-method-selector.tsx +58 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/components/whatsapp-qr-panel.tsx +80 -0
- fagoon_upgrade-2.0.0/frontend/src/app/agents/page.tsx +93 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/chat/route.ts +388 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/chat/upload-file/route.ts +44 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/code/route.ts +35 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/coder-chat/route.ts +69 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/execute-code/route.ts +255 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/login/route.ts +32 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/logout/route.ts +23 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/news-api/route.ts +30 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/sandbox/route.ts +69 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/text-to-speech/route.ts +46 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/transcribe/route.ts +47 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/vertex/generate/route.ts +45 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/weather/route.ts +39 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/workflow/execute/route.ts +28 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/workflow/execute-api/route.ts +45 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/workflow/get-file-url/route.ts +30 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/workflow/schedule/route.ts +42 -0
- fagoon_upgrade-2.0.0/frontend/src/app/api/workflow/upload-to-gcp/route.ts +40 -0
- fagoon_upgrade-2.0.0/frontend/src/app/auth/profile/page.tsx +400 -0
- fagoon_upgrade-2.0.0/frontend/src/app/checkout/page.tsx +328 -0
- fagoon_upgrade-2.0.0/frontend/src/app/coder/globals.css +69 -0
- fagoon_upgrade-2.0.0/frontend/src/app/coder/page.tsx +226 -0
- fagoon_upgrade-2.0.0/frontend/src/app/coder/providers.tsx +27 -0
- fagoon_upgrade-2.0.0/frontend/src/app/deploy/page.tsx +360 -0
- fagoon_upgrade-2.0.0/frontend/src/app/explore/page.tsx +630 -0
- fagoon_upgrade-2.0.0/frontend/src/app/favicon.ico +0 -0
- fagoon_upgrade-2.0.0/frontend/src/app/fonts/GeistMonoVF.woff +0 -0
- fagoon_upgrade-2.0.0/frontend/src/app/fonts/GeistVF.woff +0 -0
- fagoon_upgrade-2.0.0/frontend/src/app/forgot/page.tsx +125 -0
- fagoon_upgrade-2.0.0/frontend/src/app/globals.css +539 -0
- fagoon_upgrade-2.0.0/frontend/src/app/head.tsx +7 -0
- fagoon_upgrade-2.0.0/frontend/src/app/knowledge-base/page.tsx +255 -0
- fagoon_upgrade-2.0.0/frontend/src/app/layout.tsx +79 -0
- fagoon_upgrade-2.0.0/frontend/src/app/loading.tsx +11 -0
- fagoon_upgrade-2.0.0/frontend/src/app/login/page.tsx +223 -0
- fagoon_upgrade-2.0.0/frontend/src/app/manage-models/ManageModelsClient.tsx +75 -0
- fagoon_upgrade-2.0.0/frontend/src/app/manage-models/page.tsx +5 -0
- fagoon_upgrade-2.0.0/frontend/src/app/marketplace/page.tsx +360 -0
- fagoon_upgrade-2.0.0/frontend/src/app/new-chat/page.tsx +211 -0
- fagoon_upgrade-2.0.0/frontend/src/app/page.tsx +35 -0
- fagoon_upgrade-2.0.0/frontend/src/app/payment-failure/page.tsx +93 -0
- fagoon_upgrade-2.0.0/frontend/src/app/payment-success/[CHECKOUT_SESSION_ID]/page.tsx +205 -0
- fagoon_upgrade-2.0.0/frontend/src/app/pricing/components/pricing-card.tsx +74 -0
- fagoon_upgrade-2.0.0/frontend/src/app/pricing/page.tsx +90 -0
- fagoon_upgrade-2.0.0/frontend/src/app/privacy-policy/page.tsx +5 -0
- fagoon_upgrade-2.0.0/frontend/src/app/profile/[id]/page.tsx +43 -0
- fagoon_upgrade-2.0.0/frontend/src/app/profile/api-key-dialog.tsx +66 -0
- fagoon_upgrade-2.0.0/frontend/src/app/profile/page.tsx +502 -0
- fagoon_upgrade-2.0.0/frontend/src/app/resetPassword/[resetId]/page.tsx +418 -0
- fagoon_upgrade-2.0.0/frontend/src/app/signup/page.tsx +306 -0
- fagoon_upgrade-2.0.0/frontend/src/app/splash-screen/page.tsx +210 -0
- fagoon_upgrade-2.0.0/frontend/src/app/subscribe/page.tsx +12 -0
- fagoon_upgrade-2.0.0/frontend/src/app/terms-and-conditions/page.tsx +5 -0
- fagoon_upgrade-2.0.0/frontend/src/app/test/page.tsx +32 -0
- fagoon_upgrade-2.0.0/frontend/src/app/verifyEmail/[verifyEmailId]/page.tsx +117 -0
- fagoon_upgrade-2.0.0/frontend/src/app/voice-chat/page.tsx +13 -0
- fagoon_upgrade-2.0.0/frontend/src/app/workflow/app/layout.tsx +12 -0
- fagoon_upgrade-2.0.0/frontend/src/app/workflow/app/page.tsx +587 -0
- fagoon_upgrade-2.0.0/frontend/src/app/workflow/new/page.tsx +449 -0
- fagoon_upgrade-2.0.0/frontend/src/app/workflow/page.tsx +32 -0
- fagoon_upgrade-2.0.0/frontend/src/components/BaseDomain.ts +25 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ChatInterface.tsx +587 -0
- fagoon_upgrade-2.0.0/frontend/src/components/Controls.tsx +90 -0
- fagoon_upgrade-2.0.0/frontend/src/components/Expressions.tsx +70 -0
- fagoon_upgrade-2.0.0/frontend/src/components/FuturisticSubscription.tsx +296 -0
- fagoon_upgrade-2.0.0/frontend/src/components/GradientBackground.tsx +15 -0
- fagoon_upgrade-2.0.0/frontend/src/components/Messages.tsx +72 -0
- fagoon_upgrade-2.0.0/frontend/src/components/MicFFT.tsx +45 -0
- fagoon_upgrade-2.0.0/frontend/src/components/PolicyPages.tsx +273 -0
- fagoon_upgrade-2.0.0/frontend/src/components/Sidebar.tsx +332 -0
- fagoon_upgrade-2.0.0/frontend/src/components/Skeleton.tsx +52 -0
- fagoon_upgrade-2.0.0/frontend/src/components/StartCall.tsx +55 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ThemeToggle.tsx +33 -0
- fagoon_upgrade-2.0.0/frontend/src/components/VoiceChat.tsx +52 -0
- fagoon_upgrade-2.0.0/frontend/src/components/WeatherWidget.tsx +183 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/AudioWaveForm.tsx +19 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/ChatEvaluation.tsx +174 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/CommandPalette.tsx +113 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/Message.tsx +84 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/SoundWave.tsx +44 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/TypingIndicator.tsx +52 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/buttonHume.tsx +56 -0
- fagoon_upgrade-2.0.0/frontend/src/components/archive-chat-voice/chatBubble.tsx +19 -0
- fagoon_upgrade-2.0.0/frontend/src/components/chat/ChatArea.tsx +120 -0
- fagoon_upgrade-2.0.0/frontend/src/components/chat/ChatDropdown.tsx +114 -0
- fagoon_upgrade-2.0.0/frontend/src/components/chat/FilePreview.tsx +50 -0
- fagoon_upgrade-2.0.0/frontend/src/components/chat/WelcomeScreen.tsx +107 -0
- fagoon_upgrade-2.0.0/frontend/src/components/chat/chat-input.tsx +167 -0
- fagoon_upgrade-2.0.0/frontend/src/components/chat/chat-message.tsx +320 -0
- fagoon_upgrade-2.0.0/frontend/src/components/chat/modalSelector.tsx +84 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/CodeOutput.tsx +102 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/TerminalInput.tsx +162 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/auth-form.tsx +72 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/code-theme.css +169 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/code-view.tsx +30 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/deploy-dialog.tsx +127 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/fragment-code.tsx +92 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/fragment-interpreter.tsx +86 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/fragment-preview.tsx +13 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/fragment-web.tsx +65 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/icons.tsx +16 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/logo.tsx +34 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/repo-banner.tsx +45 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/avatar.tsx +50 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/button.tsx +56 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/copy-button.tsx +37 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/dropdown-menu.tsx +205 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/input.tsx +25 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/label.tsx +26 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/select.tsx +164 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/separator.tsx +31 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/textarea.tsx +24 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/theme-toggle.tsx +42 -0
- fagoon_upgrade-2.0.0/frontend/src/components/coder/components/ui/tooltip.tsx +30 -0
- fagoon_upgrade-2.0.0/frontend/src/components/common/DeleteModal.tsx +85 -0
- fagoon_upgrade-2.0.0/frontend/src/components/common/NovaMiniChat.tsx +318 -0
- fagoon_upgrade-2.0.0/frontend/src/components/common/PoweredBy.tsx +17 -0
- fagoon_upgrade-2.0.0/frontend/src/components/dashboard/DashboardFlow.tsx +53 -0
- fagoon_upgrade-2.0.0/frontend/src/components/manage-models/AddModelModal.tsx +426 -0
- fagoon_upgrade-2.0.0/frontend/src/components/manage-models/ModelList.tsx +137 -0
- fagoon_upgrade-2.0.0/frontend/src/components/providers/QueryProvider.tsx +21 -0
- fagoon_upgrade-2.0.0/frontend/src/components/sidebar/AgentDropdown.tsx +206 -0
- fagoon_upgrade-2.0.0/frontend/src/components/sidebar/node-sidebar.tsx +354 -0
- fagoon_upgrade-2.0.0/frontend/src/components/theme-provider.tsx +9 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/alert-dialog.tsx +141 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/alert.tsx +59 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/badge.tsx +36 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/button.tsx +69 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/calendar.tsx +76 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/card.tsx +76 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/collapsible.tsx +11 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/date-time-picker.tsx +147 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/dialog.tsx +121 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/dropdown-menu.tsx +200 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/input.tsx +80 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/label.tsx +26 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/loader.tsx +42 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/popover.tsx +31 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/scroll-area.tsx +48 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/select.tsx +158 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/separator.tsx +31 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/sheet.tsx +139 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/sidebar.tsx +772 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/skeleton.tsx +15 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/slider.tsx +28 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/switch.tsx +61 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/table.tsx +117 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/tabs.tsx +55 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/textarea.tsx +33 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/toggle.tsx +45 -0
- fagoon_upgrade-2.0.0/frontend/src/components/ui/tooltip.tsx +32 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/api-settings-dialog.tsx +323 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/custom-node.tsx +209 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/dashboard/execution-logs.tsx +180 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/dashboard/schedule-dialog.tsx +65 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/dashboard/workflow-dashboard.tsx +233 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/edge-settings-panel.tsx +209 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/execution-panel.tsx +223 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/load-workflow-dialog.tsx +108 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/model-selector.tsx +76 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/save-workflow-dialog.tsx +71 -0
- fagoon_upgrade-2.0.0/frontend/src/components/workflow/settings-panel.tsx +488 -0
- fagoon_upgrade-2.0.0/frontend/src/contexts/SelectedModelContext.tsx +41 -0
- fagoon_upgrade-2.0.0/frontend/src/contexts/TokenContext.tsx +32 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/use-mobile.tsx +19 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/use-toast.ts +194 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/useApi.ts +67 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/useAudioRecording.ts +173 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/useFileUpload.ts +105 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/useSpeakingRecognition.ts +68 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/useUser.ts +21 -0
- fagoon_upgrade-2.0.0/frontend/src/hooks/useWhatsAppSession.ts +133 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/agent/index.ts +61 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/auth/index.ts +37 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/axios.ts +56 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/chat/index.ts +115 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/coder/index.ts +45 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/models/index.ts +33 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/upload/index.ts +46 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/user/index.ts +27 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/api/workflow/index.ts +203 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/cloud-scheduler.ts +86 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/hooks/use-undo-redo.ts +154 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/hooks/useWebSocket.tsx +81 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/auth.ts +125 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/duration.ts +38 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/markdown.ts +38 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/messages.ts +76 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/models.json +241 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/models.ts +92 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/prompt.ts +15 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/ratelimit.ts +28 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/schema.ts +26 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/supabase.ts +8 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/templates.json +53 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/templates.ts +10 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/types.ts +21 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/libs/utils.ts +15 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schema.ts +26 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schemas/agent.ts +33 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schemas/auth.ts +31 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schemas/chat.ts +27 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schemas/index.ts +4 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schemas/model.ts +44 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schemas/user.ts +33 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/schemas/workflow.ts +56 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/services/weather/cache.ts +30 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/services/weather/config.ts +11 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/services/weather/schemas.ts +33 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/services/weather/types.ts +24 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/services/weather/weatherService.ts +87 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/services/workflow-executor.ts +140 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/storage/bucket-key.json +13 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/storage/file.ts +30 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/store/user.ts +194 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/store/workflow.ts +895 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/coder.ts +21 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/execution/execution.ts +45 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/execution/google-execution.ts +321 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/execution/imagegen-execution.ts +146 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/execution/input-execution.ts +100 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/execution/language-execution.ts +402 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/execution/utils-execution.ts +38 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/execution/voicesynthesis.ts +110 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/nodes/google-nodes.ts +313 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/nodes/imagegen-nodes.ts +334 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/nodes/input-nodes.ts +209 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/nodes/language-nodes.ts +364 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/nodes/nodes.ts +131 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/nodes/utils-node.ts +30 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/nodes/voicesynthesis-nodes.ts +242 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/templates.json +74 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/templates.ts +10 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/types/workflow.ts +181 -0
- fagoon_upgrade-2.0.0/frontend/src/lib/utils.ts +6 -0
- fagoon_upgrade-2.0.0/frontend/src/proxy.ts +57 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/gradio-developer/app.py +13 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/gradio-developer/e2b.Dockerfile +8 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/gradio-developer/e2b.toml +18 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/nextjs-developer/_app.tsx +23 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/nextjs-developer/compile_page.sh +22 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/nextjs-developer/e2b.Dockerfile +21 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/nextjs-developer/e2b.toml +18 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/streamlit-developer/app.py +5 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/streamlit-developer/e2b.Dockerfile +8 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/streamlit-developer/e2b.toml +19 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/vue-developer/e2b.Dockerfile +12 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/vue-developer/e2b.toml +16 -0
- fagoon_upgrade-2.0.0/frontend/src/sandbox-templates/vue-developer/nuxt.config.ts +14 -0
- fagoon_upgrade-2.0.0/frontend/src/types/agent.ts +35 -0
- fagoon_upgrade-2.0.0/frontend/src/types/api.ts +28 -0
- fagoon_upgrade-2.0.0/frontend/src/types/chat.ts +138 -0
- fagoon_upgrade-2.0.0/frontend/src/types/markdown.ts +29 -0
- fagoon_upgrade-2.0.0/frontend/src/types/model.ts +0 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/api/api.ts +38 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/api/getUserDatafromCookie.ts +22 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/api/user.ts +67 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/audio/audio.ts +110 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/audio/audioProcessing.ts +35 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/audio/expressionColors.ts +63 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/audio/expressionLabels.ts +57 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/audio/getHumeAccessToken.ts +16 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/data/date.ts +57 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/data/errors.ts +15 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/data/formatters.ts +7 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/data/logger.ts +37 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/data/stream.ts +28 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/files/fileProcessing.ts +179 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/files/fileValidation.ts +120 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/files/imageCompression.ts +80 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/index.ts +6 -0
- fagoon_upgrade-2.0.0/frontend/src/utils/toast.tsx +49 -0
- fagoon_upgrade-2.0.0/frontend/tailwind.config.ts +182 -0
- fagoon_upgrade-2.0.0/frontend/test-advanced-workflow.ts +78 -0
- fagoon_upgrade-2.0.0/frontend/test-store.js +1 -0
- fagoon_upgrade-2.0.0/frontend/tsconfig.json +41 -0
- fagoon_upgrade-2.0.0/generate_report_charts.py +109 -0
- fagoon_upgrade-2.0.0/migrations/README.md +28 -0
- fagoon_upgrade-2.0.0/migrations/sql/20260610_create_llm_model_configs.sql +43 -0
- fagoon_upgrade-2.0.0/patch_frontend.py +17 -0
- fagoon_upgrade-2.0.0/patch_frontend_workflows.py +34 -0
- fagoon_upgrade-2.0.0/payload.json +1 -0
- fagoon_upgrade-2.0.0/profitability_comparison.png +0 -0
- fagoon_upgrade-2.0.0/pyproject.toml +104 -0
- fagoon_upgrade-2.0.0/report.md +96 -0
- fagoon_upgrade-2.0.0/scripts/add_token_column.py +36 -0
- fagoon_upgrade-2.0.0/scripts/auto_setup_user.py +54 -0
- fagoon_upgrade-2.0.0/scripts/environment.sh +21 -0
- fagoon_upgrade-2.0.0/scripts/guard_imports.sh +19 -0
- fagoon_upgrade-2.0.0/scripts/run.sh +47 -0
- fagoon_upgrade-2.0.0/scripts/setup_chris_user.py +50 -0
- fagoon_upgrade-2.0.0/scripts/setup_local_model.ps1 +21 -0
- fagoon_upgrade-2.0.0/scripts/setup_local_model.sh +19 -0
- fagoon_upgrade-2.0.0/scripts/setup_postgresql.ps1 +135 -0
- fagoon_upgrade-2.0.0/scripts/setup_postgresql.sh +119 -0
- fagoon_upgrade-2.0.0/scripts/test_dynamic_discovery.py +37 -0
- fagoon_upgrade-2.0.0/scripts/test_fallback.py +27 -0
- fagoon_upgrade-2.0.0/scripts/test_gemini_api_key.py +90 -0
- fagoon_upgrade-2.0.0/src/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/agents/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/agents/agent_manager.py +192 -0
- fagoon_upgrade-2.0.0/src/api/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/custom_middleware.py +320 -0
- fagoon_upgrade-2.0.0/src/api/logging_config.py +63 -0
- fagoon_upgrade-2.0.0/src/api/middleware/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/api/middleware/rate_limit.py +531 -0
- fagoon_upgrade-2.0.0/src/api/setup_api.py +194 -0
- fagoon_upgrade-2.0.0/src/api/v1/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/agents/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/agents/agent_chat.py +295 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/agents/agents_router.py +460 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/agents/modelcard_router.py +54 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/authentication/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/authentication/auth_router.py +188 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/authentication/preferences_router.py +37 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/authentication/user_router.py +110 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/database/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/database/db_switch.py +81 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/external/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/external/career_gateway_support_bot.py +67 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/external/rfm_support_bot.py +64 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/misc/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/misc/files_router.py +239 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/misc/setup_router.py +153 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/upgrade/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/upgrade/chat.py +368 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/upgrade/support_bot.py +64 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/upgrade/upgrade_agents.py +57 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/vibe_coder/execution_routes.py +80 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/video_gen/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/video_gen/video_gen_routes.py +133 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/webhook_router.py +96 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/whatsapp.py +275 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/auth.py +390 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/connections.py +718 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/deps.py +428 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/discovery.py +348 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/executions.py +1099 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/hooks.py +465 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/image_generation.py +57 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/llm.py +81 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/nodes.py +691 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/schedules.py +718 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/speech_to_text.py +83 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/streams.py +582 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/templates.py +970 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/text_to_speech.py +98 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/text_to_video.py +32 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/usage.py +525 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/variables.py +689 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/web_loader.py +54 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/workflow_api.py +316 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/workflow_templates.py +563 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workflow/workflows.py +652 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/ai.py +37 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/deps.py +86 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/docs.py +168 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/drive.py +222 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/gmail.py +278 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/google_auth.py +178 -0
- fagoon_upgrade-2.0.0/src/api/v1/routers/workspace/llm_models.py +168 -0
- fagoon_upgrade-2.0.0/src/cloud/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/cloud/google_storage.py +180 -0
- fagoon_upgrade-2.0.0/src/constants.py +42 -0
- fagoon_upgrade-2.0.0/src/core/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/core/bootstrap.py +61 -0
- fagoon_upgrade-2.0.0/src/core/celery_app.py +301 -0
- fagoon_upgrade-2.0.0/src/core/config.py +4 -0
- fagoon_upgrade-2.0.0/src/core/database/__init__.py +36 -0
- fagoon_upgrade-2.0.0/src/core/database/postgres.py +39 -0
- fagoon_upgrade-2.0.0/src/core/encryption.py +198 -0
- fagoon_upgrade-2.0.0/src/core/exceptions.py +22 -0
- fagoon_upgrade-2.0.0/src/core/file_handler/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/core/file_handler/pdf.py +79 -0
- fagoon_upgrade-2.0.0/src/core/globals.py +33 -0
- fagoon_upgrade-2.0.0/src/core/handler/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/core/handler/email_handler.py +87 -0
- fagoon_upgrade-2.0.0/src/core/rate_limiter.py +789 -0
- fagoon_upgrade-2.0.0/src/core/redis.py +457 -0
- fagoon_upgrade-2.0.0/src/core/runtime.py +166 -0
- fagoon_upgrade-2.0.0/src/core/sandbox.py +980 -0
- fagoon_upgrade-2.0.0/src/core/security.py +437 -0
- fagoon_upgrade-2.0.0/src/core/settings.py +335 -0
- fagoon_upgrade-2.0.0/src/core/task_processing/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/core/task_processing/celery_app.py +43 -0
- fagoon_upgrade-2.0.0/src/core/task_processing/celery_tasks.py +276 -0
- fagoon_upgrade-2.0.0/src/core/task_processing/celery_worker_setup.py +22 -0
- fagoon_upgrade-2.0.0/src/dao/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/dao/user_dao.py +652 -0
- fagoon_upgrade-2.0.0/src/dao/vibe_coder_dao.py +78 -0
- fagoon_upgrade-2.0.0/src/dao/workflow_dao.py +635 -0
- fagoon_upgrade-2.0.0/src/deep_research/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/deep_research/chat/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/deep_research/chat/chat.py +106 -0
- fagoon_upgrade-2.0.0/src/deep_research/pdf_styles.css +53 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/__init__.py +7 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/basic_report/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/basic_report/basic_report.py +49 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/deep_research/README.md +129 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/deep_research/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/deep_research/example.py +325 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/deep_research/main.py +34 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/detailed_report/README.md +12 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/detailed_report/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/deep_research/report_type/detailed_report/detailed_report.py +148 -0
- fagoon_upgrade-2.0.0/src/deep_research/server/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/deep_research/server/server.py +113 -0
- fagoon_upgrade-2.0.0/src/deep_research/server/server_utils.py +220 -0
- fagoon_upgrade-2.0.0/src/deep_research/server/websocket_manager.py +226 -0
- fagoon_upgrade-2.0.0/src/deep_research/utils.py +92 -0
- fagoon_upgrade-2.0.0/src/diffusion/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/diffusion/base.py +23 -0
- fagoon_upgrade-2.0.0/src/diffusion/fal_ai.py +53 -0
- fagoon_upgrade-2.0.0/src/diffusion/gemini_imagen.py +64 -0
- fagoon_upgrade-2.0.0/src/diffusion/huggingface.py +45 -0
- fagoon_upgrade-2.0.0/src/diffusion/openai.py +50 -0
- fagoon_upgrade-2.0.0/src/embeddings/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/embeddings/base.py +54 -0
- fagoon_upgrade-2.0.0/src/embeddings/openai_embeddings.py +52 -0
- fagoon_upgrade-2.0.0/src/launch_server.py +236 -0
- fagoon_upgrade-2.0.0/src/llms/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/llms/anthropic_llm.py +116 -0
- fagoon_upgrade-2.0.0/src/llms/base.py +21 -0
- fagoon_upgrade-2.0.0/src/llms/gemini_llm.py +29 -0
- fagoon_upgrade-2.0.0/src/llms/groq_llm.py +82 -0
- fagoon_upgrade-2.0.0/src/llms/huggingface_llm.py +94 -0
- fagoon_upgrade-2.0.0/src/llms/ollama_llm.py +89 -0
- fagoon_upgrade-2.0.0/src/llms/openai_llm.py +126 -0
- fagoon_upgrade-2.0.0/src/loaders/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/loaders/pdf_loader.py +158 -0
- fagoon_upgrade-2.0.0/src/loaders/web_page.py +118 -0
- fagoon_upgrade-2.0.0/src/models/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/models/auth_models/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/models/auth_models/access_model.py +17 -0
- fagoon_upgrade-2.0.0/src/models/auth_models/user_model.py +272 -0
- fagoon_upgrade-2.0.0/src/models/base.py +17 -0
- fagoon_upgrade-2.0.0/src/models/diffusion.py +21 -0
- fagoon_upgrade-2.0.0/src/models/enum_config.py +42 -0
- fagoon_upgrade-2.0.0/src/models/error_codes.py +15 -0
- fagoon_upgrade-2.0.0/src/models/google_token.py +32 -0
- fagoon_upgrade-2.0.0/src/models/google_user.py +31 -0
- fagoon_upgrade-2.0.0/src/models/llm.py +35 -0
- fagoon_upgrade-2.0.0/src/models/sql/base.py +4 -0
- fagoon_upgrade-2.0.0/src/models/sql/models.py +225 -0
- fagoon_upgrade-2.0.0/src/models/sql/vibe_coder_models.py +111 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/connection.py +244 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/document.py +289 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/execution.py +434 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/memory.py +388 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/schedule.py +384 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/template.py +250 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/usage.py +188 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/user.py +238 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/version.py +218 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/webhook.py +571 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/workflow.py +338 -0
- fagoon_upgrade-2.0.0/src/models/sql/workflow/workflow_api.py +84 -0
- fagoon_upgrade-2.0.0/src/models/tts.py +19 -0
- fagoon_upgrade-2.0.0/src/models/ttv.py +14 -0
- fagoon_upgrade-2.0.0/src/models/video_generation_models.py +67 -0
- fagoon_upgrade-2.0.0/src/prompts.py +131 -0
- fagoon_upgrade-2.0.0/src/providers/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/providers/anthropic_client.py +17 -0
- fagoon_upgrade-2.0.0/src/providers/elevenlabs_client.py +12 -0
- fagoon_upgrade-2.0.0/src/providers/gemini_client.py +8 -0
- fagoon_upgrade-2.0.0/src/providers/groq_client.py +17 -0
- fagoon_upgrade-2.0.0/src/providers/huggingface_client.py +16 -0
- fagoon_upgrade-2.0.0/src/providers/kokoro_client.py +14 -0
- fagoon_upgrade-2.0.0/src/providers/openai_client.py +19 -0
- fagoon_upgrade-2.0.0/src/schemas/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/schemas/agent_enums.py +80 -0
- fagoon_upgrade-2.0.0/src/schemas/agents.py +133 -0
- fagoon_upgrade-2.0.0/src/schemas/agents_chat.py +75 -0
- fagoon_upgrade-2.0.0/src/schemas/authentication.py +19 -0
- fagoon_upgrade-2.0.0/src/schemas/channel.py +50 -0
- fagoon_upgrade-2.0.0/src/schemas/chat.py +24 -0
- fagoon_upgrade-2.0.0/src/schemas/chat_context.py +29 -0
- fagoon_upgrade-2.0.0/src/schemas/common.py +103 -0
- fagoon_upgrade-2.0.0/src/schemas/diffusion.py +8 -0
- fagoon_upgrade-2.0.0/src/schemas/document.py +62 -0
- fagoon_upgrade-2.0.0/src/schemas/enums.py +44 -0
- fagoon_upgrade-2.0.0/src/schemas/file_references.py +12 -0
- fagoon_upgrade-2.0.0/src/schemas/llm.py +50 -0
- fagoon_upgrade-2.0.0/src/schemas/misc.py +34 -0
- fagoon_upgrade-2.0.0/src/schemas/speech_to_text.py +48 -0
- fagoon_upgrade-2.0.0/src/schemas/support_bot.py +19 -0
- fagoon_upgrade-2.0.0/src/schemas/text_to_speech.py +25 -0
- fagoon_upgrade-2.0.0/src/schemas/upgrade_chat.py +133 -0
- fagoon_upgrade-2.0.0/src/schemas/users.py +47 -0
- fagoon_upgrade-2.0.0/src/schemas/vibe_coder_schemas.py +73 -0
- fagoon_upgrade-2.0.0/src/schemas/web_loader.py +13 -0
- fagoon_upgrade-2.0.0/src/schemas/whatsapp.py +45 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/auth.py +219 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/connection.py +263 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/execution.py +313 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/response.py +477 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/schedule.py +330 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/template.py +211 -0
- fagoon_upgrade-2.0.0/src/schemas/workflow/workflow.py +467 -0
- fagoon_upgrade-2.0.0/src/schemas/workspace/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/schemas/workspace/ai.py +10 -0
- fagoon_upgrade-2.0.0/src/schemas/workspace/auth.py +25 -0
- fagoon_upgrade-2.0.0/src/schemas/workspace/common.py +9 -0
- fagoon_upgrade-2.0.0/src/schemas/workspace/docs.py +54 -0
- fagoon_upgrade-2.0.0/src/schemas/workspace/drive.py +78 -0
- fagoon_upgrade-2.0.0/src/schemas/workspace/gmail.py +58 -0
- fagoon_upgrade-2.0.0/src/services/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/agents/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/agents/chat.py +113 -0
- fagoon_upgrade-2.0.0/src/services/agents/chat_orchestrator.py +396 -0
- fagoon_upgrade-2.0.0/src/services/agents/file_service.py +209 -0
- fagoon_upgrade-2.0.0/src/services/agents/image_generation.py +91 -0
- fagoon_upgrade-2.0.0/src/services/agents/llm_model.py +33 -0
- fagoon_upgrade-2.0.0/src/services/agents/llm_tasks.py +145 -0
- fagoon_upgrade-2.0.0/src/services/api_key_resolver.py +195 -0
- fagoon_upgrade-2.0.0/src/services/auth_service.py +218 -0
- fagoon_upgrade-2.0.0/src/services/cache/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/services/cache/base.py +12 -0
- fagoon_upgrade-2.0.0/src/services/cache/memory_cache.py +27 -0
- fagoon_upgrade-2.0.0/src/services/cache/redis_cache.py +30 -0
- fagoon_upgrade-2.0.0/src/services/channel_adapter/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/channel_adapter/channel_config_service.py +136 -0
- fagoon_upgrade-2.0.0/src/services/channel_adapter/processor.py +129 -0
- fagoon_upgrade-2.0.0/src/services/channel_adapter/webhook_gateway.py +268 -0
- fagoon_upgrade-2.0.0/src/services/chat_service.py +83 -0
- fagoon_upgrade-2.0.0/src/services/chat_stream_orchestrator.py +207 -0
- fagoon_upgrade-2.0.0/src/services/crawl4ai_service.py +76 -0
- fagoon_upgrade-2.0.0/src/services/database/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/services/database/switch_service.py +312 -0
- fagoon_upgrade-2.0.0/src/services/deployment/evolution_api.py +125 -0
- fagoon_upgrade-2.0.0/src/services/document_processor.py +73 -0
- fagoon_upgrade-2.0.0/src/services/email_service.py +71 -0
- fagoon_upgrade-2.0.0/src/services/embeddings.py +49 -0
- fagoon_upgrade-2.0.0/src/services/file_processor.py +74 -0
- fagoon_upgrade-2.0.0/src/services/google_workspace/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/google_workspace/ai_service.py +128 -0
- fagoon_upgrade-2.0.0/src/services/google_workspace/google_auth.py +231 -0
- fagoon_upgrade-2.0.0/src/services/google_workspace/google_docs.py +201 -0
- fagoon_upgrade-2.0.0/src/services/google_workspace/google_drive.py +256 -0
- fagoon_upgrade-2.0.0/src/services/google_workspace/google_gmail.py +229 -0
- fagoon_upgrade-2.0.0/src/services/image_description_service.py +55 -0
- fagoon_upgrade-2.0.0/src/services/imagen.py +120 -0
- fagoon_upgrade-2.0.0/src/services/limiter/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/services/limiter/base.py +13 -0
- fagoon_upgrade-2.0.0/src/services/limiter/memory_limiter.py +32 -0
- fagoon_upgrade-2.0.0/src/services/limiter/redis_limiter.py +37 -0
- fagoon_upgrade-2.0.0/src/services/llm.py +170 -0
- fagoon_upgrade-2.0.0/src/services/llm_enhancer.py +88 -0
- fagoon_upgrade-2.0.0/src/services/map_model_provider.py +40 -0
- fagoon_upgrade-2.0.0/src/services/mermaid_service.py +42 -0
- fagoon_upgrade-2.0.0/src/services/nosql/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/nosql/postgres_services.py +188 -0
- fagoon_upgrade-2.0.0/src/services/prompt_enhancer_service.py +83 -0
- fagoon_upgrade-2.0.0/src/services/pubsub/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/services/pubsub/base.py +31 -0
- fagoon_upgrade-2.0.0/src/services/pubsub/memory_pubsub.py +64 -0
- fagoon_upgrade-2.0.0/src/services/pubsub/redis_pubsub.py +84 -0
- fagoon_upgrade-2.0.0/src/services/query_analyzer.py +183 -0
- fagoon_upgrade-2.0.0/src/services/rag/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/rag/chunking.py +114 -0
- fagoon_upgrade-2.0.0/src/services/rag/document_parser.py +40 -0
- fagoon_upgrade-2.0.0/src/services/rag/ingestion_manager.py +132 -0
- fagoon_upgrade-2.0.0/src/services/response_manager.py +82 -0
- fagoon_upgrade-2.0.0/src/services/search_providers/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/search_providers/base_provider.py +34 -0
- fagoon_upgrade-2.0.0/src/services/search_providers/serpapi_provider.py +33 -0
- fagoon_upgrade-2.0.0/src/services/search_providers/serper_provider.py +28 -0
- fagoon_upgrade-2.0.0/src/services/stt.py +38 -0
- fagoon_upgrade-2.0.0/src/services/support_bot/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/support_bot/support_bot_service.py +81 -0
- fagoon_upgrade-2.0.0/src/services/taskqueue/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/services/taskqueue/base.py +21 -0
- fagoon_upgrade-2.0.0/src/services/taskqueue/celery_queue.py +35 -0
- fagoon_upgrade-2.0.0/src/services/taskqueue/inline_queue.py +50 -0
- fagoon_upgrade-2.0.0/src/services/taskqueue/lite_tasks.py +215 -0
- fagoon_upgrade-2.0.0/src/services/taskqueue/workflow_lite_tasks.py +47 -0
- fagoon_upgrade-2.0.0/src/services/text_to_video.py +0 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/base.py +18 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/deep_research_handler.py +42 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/factory.py +33 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/general_chat_handler.py +83 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/image_generation_handler.py +68 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/mermaid_handler.py +91 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/summarization_handler.py +58 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/video_generation_handler.py +133 -0
- fagoon_upgrade-2.0.0/src/services/tool_handlers/web_search_handler.py +73 -0
- fagoon_upgrade-2.0.0/src/services/tts.py +66 -0
- fagoon_upgrade-2.0.0/src/services/upgrade/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/upgrade/chat.py +164 -0
- fagoon_upgrade-2.0.0/src/services/user_service.py +128 -0
- fagoon_upgrade-2.0.0/src/services/veo_video_generator.py +211 -0
- fagoon_upgrade-2.0.0/src/services/vibe_coder/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/services/vibe_coder/code_generation.py +236 -0
- fagoon_upgrade-2.0.0/src/services/web_loader.py +36 -0
- fagoon_upgrade-2.0.0/src/services/web_search_service.py +261 -0
- fagoon_upgrade-2.0.0/src/services/workflow/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/services/workflow/auth_service.py +516 -0
- fagoon_upgrade-2.0.0/src/services/workflow/cost_tracking.py +731 -0
- fagoon_upgrade-2.0.0/src/services/workflow/discovery_service.py +518 -0
- fagoon_upgrade-2.0.0/src/services/workflow/google_oauth.py +469 -0
- fagoon_upgrade-2.0.0/src/services/workflow/graph_validation.py +647 -0
- fagoon_upgrade-2.0.0/src/services/workflow/storage_service.py +520 -0
- fagoon_upgrade-2.0.0/src/services/workflow/templates.py +860 -0
- fagoon_upgrade-2.0.0/src/services/workflow/webhook_verifier.py +644 -0
- fagoon_upgrade-2.0.0/src/services/workflow/workflow_service.py +699 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/context.py +311 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/executor.py +1127 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/base.py +569 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/logic_filter.py +547 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/logic_loop.py +403 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/logic_parallel.py +430 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/logic_router.py +458 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/logic_wait.py +497 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/start.py +33 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_agent.py +481 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_anthropic.py +501 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_browser_use.py +529 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_code.py +552 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_discord.py +934 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_gemini.py +553 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_gmail.py +686 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_google_sheets.py +809 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_memory.py +606 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_mistral_parse.py +600 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_notion.py +1114 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_openai.py +543 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_perplexity.py +470 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_rag.py +676 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_slack.py +764 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_supabase.py +673 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_twilio.py +988 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_webhook.py +582 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/tool_youtube.py +710 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/nodes/trigger_schedule.py +307 -0
- fagoon_upgrade-2.0.0/src/services/workflow_engine/registry.py +361 -0
- fagoon_upgrade-2.0.0/src/speech_to_text/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/speech_to_text/base.py +22 -0
- fagoon_upgrade-2.0.0/src/speech_to_text/eleven_labs.py +50 -0
- fagoon_upgrade-2.0.0/src/speech_to_text/openai.py +56 -0
- fagoon_upgrade-2.0.0/src/storages/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/storages/file_storage.py +188 -0
- fagoon_upgrade-2.0.0/src/storages/vectordb_storages/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/storages/vectordb_storages/base.py +220 -0
- fagoon_upgrade-2.0.0/src/storages/vectordb_storages/pgvector.py +149 -0
- fagoon_upgrade-2.0.0/src/tasks/__init__.py +1 -0
- fagoon_upgrade-2.0.0/src/tasks/cleanup.py +436 -0
- fagoon_upgrade-2.0.0/src/tasks/scheduler.py +468 -0
- fagoon_upgrade-2.0.0/src/tasks/workflow.py +299 -0
- fagoon_upgrade-2.0.0/src/tasks/workflow_task.py +28 -0
- fagoon_upgrade-2.0.0/src/text_to_speech/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/text_to_speech/base.py +21 -0
- fagoon_upgrade-2.0.0/src/text_to_speech/eleven_labs.py +50 -0
- fagoon_upgrade-2.0.0/src/text_to_speech/kokoro.py +47 -0
- fagoon_upgrade-2.0.0/src/text_to_speech/openai.py +41 -0
- fagoon_upgrade-2.0.0/src/tmp/agents_model_card.yml +40 -0
- fagoon_upgrade-2.0.0/src/tmp/model_card.yml +66 -0
- fagoon_upgrade-2.0.0/src/tools/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/tools/bg_remover/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/tools/bg_remover/actions.py +51 -0
- fagoon_upgrade-2.0.0/src/tools/function_calling_schemas.py +78 -0
- fagoon_upgrade-2.0.0/src/upgrade_authentication/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/upgrade_authentication/dependencies.py +25 -0
- fagoon_upgrade-2.0.0/src/upgrade_authentication/exceptions.py +45 -0
- fagoon_upgrade-2.0.0/src/utils/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/utils/common.py +169 -0
- fagoon_upgrade-2.0.0/src/utils/llm_utils.py +43 -0
- fagoon_upgrade-2.0.0/src/utils/misc.py +217 -0
- fagoon_upgrade-2.0.0/src/utils/upgrade_auth/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/utils/upgrade_auth/app_error.py +10 -0
- fagoon_upgrade-2.0.0/src/utils/upgrade_auth/auth_utils.py +203 -0
- fagoon_upgrade-2.0.0/src/utils/upgrade_auth/catch_async.py +21 -0
- fagoon_upgrade-2.0.0/src/utils/upgrade_auth/email_sender.py +59 -0
- fagoon_upgrade-2.0.0/src/video_gen_crud/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/video_gen_crud/crud.py +31 -0
- fagoon_upgrade-2.0.0/src/video_generation/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/video_generation/base.py +32 -0
- fagoon_upgrade-2.0.0/src/video_generation/websocket_manager.py +120 -0
- fagoon_upgrade-2.0.0/src/workspace_crud/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/workspace_crud/crud/__init__.py +0 -0
- fagoon_upgrade-2.0.0/src/workspace_crud/crud/google_token.py +55 -0
- fagoon_upgrade-2.0.0/src/workspace_crud/crud/user.py +39 -0
- fagoon_upgrade-2.0.0/test_execution_status.py +34 -0
- fagoon_upgrade-2.0.0/test_post_workflow.py +39 -0
- fagoon_upgrade-2.0.0/test_prefs.py +23 -0
- fagoon_upgrade-2.0.0/test_run_route.py +38 -0
- fagoon_upgrade-2.0.0/test_sse.py +21 -0
- fagoon_upgrade-2.0.0/test_sse_endpoint.py +33 -0
- fagoon_upgrade-2.0.0/test_sse_endpoint_v2.py +39 -0
- fagoon_upgrade-2.0.0/test_user_id.py +9 -0
- fagoon_upgrade-2.0.0/test_whatsapp.html +115 -0
- fagoon_upgrade-2.0.0/tests/__init__.py +1 -0
- fagoon_upgrade-2.0.0/tests/conftest.py +12 -0
- fagoon_upgrade-2.0.0/tests/factories/__init__.py +21 -0
- fagoon_upgrade-2.0.0/tests/factories/connection.py +190 -0
- fagoon_upgrade-2.0.0/tests/factories/execution.py +303 -0
- fagoon_upgrade-2.0.0/tests/factories/user.py +115 -0
- fagoon_upgrade-2.0.0/tests/factories/workflow.py +272 -0
- fagoon_upgrade-2.0.0/tests/integration/__init__.py +1 -0
- fagoon_upgrade-2.0.0/tests/mocks/__init__.py +20 -0
- fagoon_upgrade-2.0.0/tests/mocks/redis.py +291 -0
- fagoon_upgrade-2.0.0/tests/mocks/services.py +366 -0
- fagoon_upgrade-2.0.0/tests/test_db_switch.py +135 -0
- fagoon_upgrade-2.0.0/tests/test_dual_mode.py +466 -0
- fagoon_upgrade-2.0.0/tests/test_lite_boot.py +202 -0
- fagoon_upgrade-2.0.0/tests/test_vibe_coder.py +65 -0
- fagoon_upgrade-2.0.0/tests/unit/__init__.py +1 -0
- fagoon_upgrade-2.0.0/tests/unit/test_auth.py +295 -0
- fagoon_upgrade-2.0.0/tests/unit/test_execution.py +389 -0
- fagoon_upgrade-2.0.0/tests/unit/test_workflow.py +322 -0
- fagoon_upgrade-2.0.0/total_assets_comparison.png +0 -0
- fagoon_upgrade-2.0.0/user_graph.json +17 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# ---- Mode ----
|
|
2
|
+
# Contributors typically run full mode. Leave LITE_MODE unset/false here.
|
|
3
|
+
LITE_MODE=false
|
|
4
|
+
DATA_DIR=./data
|
|
5
|
+
WEB_CONCURRENCY=2
|
|
6
|
+
|
|
7
|
+
# ---- Infra (required in full mode) ----
|
|
8
|
+
DATABASE_URL=postgresql+asyncpg://fagoon:fagoon@localhost:5432/fagoon
|
|
9
|
+
REDIS_URL=redis://localhost:6379/0
|
|
10
|
+
CELERY_BROKER_URL=redis://localhost:6379/1
|
|
11
|
+
CELERY_RESULT_BACKEND=redis://localhost:6379/2
|
|
12
|
+
|
|
13
|
+
# ---- Secrets (auto-generated in package mode; set explicitly for dev) ----
|
|
14
|
+
JWT_SECRET=change-me-in-dev
|
|
15
|
+
JWT_ALGORITHM=HS256
|
|
16
|
+
ENCRYPTION_KEY= # leave empty to auto-generate a Fernet key
|
|
17
|
+
|
|
18
|
+
# ---- Feature gating ----
|
|
19
|
+
FEATURES=chat,agents,workflow,vibecoder
|
|
20
|
+
|
|
21
|
+
# ---- Integrations (optional; can also be set via the UI) ----
|
|
22
|
+
OPENAI_API_KEY=
|
|
23
|
+
GEMINI_API_KEY=
|
|
24
|
+
GROQ_API_KEY=
|
|
25
|
+
GOOGLE_CLIENT_ID=
|
|
26
|
+
GOOGLE_CLIENT_SECRET=
|
|
27
|
+
OLLAMA_BASE_URL=
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# FAGOON UPGRADE + WORKFLOW � FULL .env TEMPLATE
|
|
3
|
+
# Generated after workflow migration
|
|
4
|
+
# ============================================
|
|
5
|
+
|
|
6
|
+
FRONTEND_HOST=*
|
|
7
|
+
API_V1_STR=/api/v1
|
|
8
|
+
PROJECT_NAME=Fagoon Agents Workflow
|
|
9
|
+
API_SWAGGER_PATH=docs
|
|
10
|
+
ALLOWED_CORS_ORIGIN=
|
|
11
|
+
OPENAI_API_KEY=
|
|
12
|
+
GROQ_API_KEY=
|
|
13
|
+
HUGGINGFACE_API_KEY=
|
|
14
|
+
ELEVENLABS_API_KEY=
|
|
15
|
+
GOOGLE_API_KEY=
|
|
16
|
+
ANTHROPIC_API_KEY=
|
|
17
|
+
ENV=development
|
|
18
|
+
DATABASE_URL=
|
|
19
|
+
GROQ_MODEL_NAME=llama3-8b-8192
|
|
20
|
+
GOOGLE_CLIENT_ID=
|
|
21
|
+
GOOGLE_CLIENT_SECRET=
|
|
22
|
+
GOOGLE_REDIRECT_URI=
|
|
23
|
+
FRONTEND_REDIRECT_URI=http://localhost:3000
|
|
24
|
+
GOOGLE_AUTH_SCOPES=
|
|
25
|
+
GCS_BUCKET_NAME=
|
|
26
|
+
GEMINI_API_KEY=
|
|
27
|
+
VIDEO_STORAGE_PATH=
|
|
28
|
+
CELERY_BROKER_URL=
|
|
29
|
+
CELERY_RESULT_BACKEND=
|
|
30
|
+
SECRET_KEY=
|
|
31
|
+
LOG_LEVEL=INFO
|
|
32
|
+
ENABLE_VEO_GENERATION=true
|
|
33
|
+
MAX_VEO_GENERATIONS_PER_JOB=15
|
|
34
|
+
MAX_VEO_VIDEO_DURATION_SECONDS=5
|
|
35
|
+
MOCK_VEO_API_IF_DISABLED=true
|
|
36
|
+
JWT_EXPIRES_IN=90d
|
|
37
|
+
JWT_ALGORITHM=HS256
|
|
38
|
+
JWT_COOKIE_EXPIRES_IN_DAYS=90
|
|
39
|
+
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
|
|
40
|
+
JWT_REFRESH_TOKEN_EXPIRE_DAYS=7
|
|
41
|
+
COOKIE_DOMAIN_1=
|
|
42
|
+
COOKIE_DOMAIN_2=
|
|
43
|
+
COOKIE_DOMAIN_3=
|
|
44
|
+
EMAIL_HOST=localhost
|
|
45
|
+
EMAIL_PORT=587
|
|
46
|
+
EMAIL_USERNAME=mock_username
|
|
47
|
+
EMAIL_PASSWORD=mock_password
|
|
48
|
+
EMAIL_FROM=mock_from@example.com
|
|
49
|
+
FAGOON_URL=
|
|
50
|
+
DEFAULT_URL=
|
|
51
|
+
SERPER_API_KEY=
|
|
52
|
+
SERPAPI_API_KEY=
|
|
53
|
+
FAL_KEY=
|
|
54
|
+
FAST_MODEL_PROVIDER=gemini
|
|
55
|
+
FAST_MODEL_ID=gemini-2.5-flash
|
|
56
|
+
SMART_MODEL_PROVIDER=gemini
|
|
57
|
+
SMART_MODEL_ID=gemini-2.5-pro
|
|
58
|
+
REDIS_URL=
|
|
59
|
+
WEBHOOK_VERIFY_TOKEN=
|
|
60
|
+
WHATSAPP_APP_SECRET=
|
|
61
|
+
WHATSAPP_PHONE_NUMBER_ID=
|
|
62
|
+
WHATSAPP_ACCESS_TOKEN=
|
|
63
|
+
FACEBOOK_APP_SECRET=
|
|
64
|
+
FACEBOOK_PAGE_ACCESS_TOKEN=
|
|
65
|
+
TELEGRAM_BOT_TOKEN=
|
|
66
|
+
TELEGRAM_BOT_SECRET_TOKEN=
|
|
67
|
+
EVOLUTION_API_KEY=
|
|
68
|
+
EVOLUTION_API_URL=
|
|
69
|
+
WEBHOOK_URL=
|
|
70
|
+
DB_POOL_SIZE=20
|
|
71
|
+
DB_MAX_OVERFLOW=10
|
|
72
|
+
DB_POOL_TIMEOUT=30
|
|
73
|
+
DB_ECHO=
|
|
74
|
+
ENCRYPTION_KEY=
|
|
75
|
+
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
|
76
|
+
REFRESH_TOKEN_EXPIRE_DAYS=7
|
|
77
|
+
PASSWORD_HASH_ROUNDS=12
|
|
78
|
+
VERSION=2.0.0
|
|
79
|
+
DEBUG=false
|
|
80
|
+
API_V1_PREFIX=/api/v1
|
|
81
|
+
ALLOWED_HOSTS=
|
|
82
|
+
CORS_ORIGINS=
|
|
83
|
+
REDIS_HOST=localhost
|
|
84
|
+
REDIS_PORT=6379
|
|
85
|
+
REDIS_PASSWORD=
|
|
86
|
+
REDIS_SSL=false
|
|
87
|
+
REDIS_DB=0
|
|
88
|
+
REDIS_MAX_CONNECTIONS=10
|
|
89
|
+
GCS_SIGNED_URL_EXPIRY=3600
|
|
90
|
+
MAX_UPLOAD_SIZE_MB=100
|
|
91
|
+
GOOGLE_APPLICATION_CREDENTIALS=
|
|
92
|
+
CELERY_TASK_TIMEOUT=3600
|
|
93
|
+
FEATURE_ENABLE_REGISTRATION=true
|
|
94
|
+
FEATURE_ENABLE_OAUTH=true
|
|
95
|
+
FEATURE_ENABLE_WEBHOOKS=true
|
|
96
|
+
FEATURE_ENABLE_BROWSER_NODE=true
|
|
97
|
+
FEATURE_ENABLE_CODE_NODE=true
|
|
98
|
+
SANDBOX_MODE=docker
|
|
99
|
+
SANDBOX_DOCKER_IMAGE=workflow-sandbox-python:latest
|
|
100
|
+
SANDBOX_TIMEOUT_SECONDS=10
|
|
101
|
+
SANDBOX_MAX_MEMORY_MB=128
|
|
102
|
+
SANDBOX_MAX_CPU_PERCENT=50
|
|
103
|
+
SANDBOX_MAX_OUTPUT_BYTES=1000000
|
|
104
|
+
SANDBOX_NETWORK_ENABLED=false
|
|
105
|
+
RATE_LIMIT_ENABLED=true
|
|
106
|
+
RATE_LIMIT_REQUESTS=100
|
|
107
|
+
RATE_LIMIT_WINDOW_SECONDS=60
|
|
108
|
+
RATE_LIMIT_BACKEND=redis
|
|
109
|
+
RATE_LIMIT_FAIL_OPEN=true
|
|
110
|
+
RATE_LIMIT_TIER_ANONYMOUS=30
|
|
111
|
+
RATE_LIMIT_TIER_FREE=60
|
|
112
|
+
RATE_LIMIT_TIER_PRO=300
|
|
113
|
+
RATE_LIMIT_TIER_ENTERPRISE=1000
|
|
114
|
+
RATE_LIMIT_EXECUTE_PER_MINUTE=30
|
|
115
|
+
RATE_LIMIT_AUTH_PER_MINUTE=10
|
|
116
|
+
RATE_LIMIT_BYPASS_IPS=
|
|
117
|
+
RATE_LIMIT_BYPASS_HEADER=
|
|
118
|
+
RATE_LIMIT_BYPASS_SECRET=
|
|
119
|
+
LOG_FORMAT=json
|
|
120
|
+
LOG_FILE_PATH=
|
|
121
|
+
BROWSERLESS_API_URL=https://production-sfo.browserless.io
|
|
122
|
+
SENTRY_DSN=
|
|
123
|
+
|
|
124
|
+
# ============================================
|
|
125
|
+
# INTERNAL / DUAL-MODE FIELDS (lowercase)
|
|
126
|
+
# ============================================
|
|
127
|
+
LITE_MODE=true
|
|
128
|
+
DATA_DIR=/data
|
|
129
|
+
FEATURES=chat,agents,workflow,vibecoder
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changes to the mode machinery require maintainer review even if CI passes.
|
|
2
|
+
/src/core/runtime.py @fagoon
|
|
3
|
+
/src/core/settings.py @fagoon
|
|
4
|
+
/src/core/bootstrap.py @fagoon
|
|
5
|
+
/src/services/limiter/ @fagoon
|
|
6
|
+
/src/services/taskqueue/ @fagoon
|
|
7
|
+
/src/services/cache/ @fagoon
|
|
8
|
+
/importlinter.ini @fagoon
|
|
9
|
+
/scripts/guard_imports.sh @fagoon
|
|
10
|
+
/.github/workflows/ @fagoon
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## What this changes
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Lite-mode contract checklist
|
|
5
|
+
- [ ] No direct `redis` / `celery` import outside approved backend modules
|
|
6
|
+
- [ ] New background work goes through `app.state.queue`, not Celery directly
|
|
7
|
+
- [ ] New shared state has a lite (in-memory) backend, not Redis-only
|
|
8
|
+
- [ ] No new *required* env var (must have a safe default or config.json path)
|
|
9
|
+
- [ ] `uv run pytest` and `uv run lint-imports --config importlinter.ini` pass locally
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
# Runs on every PR and on main. Publishes NOTHING. These jobs are the required
|
|
4
|
+
# status checks that block a PR which would break lite mode or the architecture.
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
pull_request:
|
|
8
|
+
push:
|
|
9
|
+
branches: [main]
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
tests:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
services:
|
|
15
|
+
postgres:
|
|
16
|
+
image: pgvector/pgvector:pg16
|
|
17
|
+
env:
|
|
18
|
+
POSTGRES_USER: test
|
|
19
|
+
POSTGRES_PASSWORD: test
|
|
20
|
+
POSTGRES_DB: test
|
|
21
|
+
ports: ["5432:5432"]
|
|
22
|
+
options: >-
|
|
23
|
+
--health-cmd "pg_isready -U test"
|
|
24
|
+
--health-interval 5s --health-timeout 5s --health-retries 10
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
- uses: astral-sh/setup-uv@v5
|
|
28
|
+
- run: uv sync --all-extras --dev
|
|
29
|
+
- run: uv run pytest -q
|
|
30
|
+
env:
|
|
31
|
+
DATABASE_URL: postgresql+asyncpg://test:test@localhost:5432/test
|
|
32
|
+
|
|
33
|
+
lite-boot:
|
|
34
|
+
# Deliberately installs WITHOUT the `full` extra. If any non-backend module
|
|
35
|
+
# imports redis/celery, this fails at import time - a dependency-level proof
|
|
36
|
+
# that lite mode is self-contained.
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
services:
|
|
39
|
+
postgres:
|
|
40
|
+
image: pgvector/pgvector:pg16
|
|
41
|
+
env:
|
|
42
|
+
POSTGRES_USER: test
|
|
43
|
+
POSTGRES_PASSWORD: test
|
|
44
|
+
POSTGRES_DB: test
|
|
45
|
+
ports: ["5432:5432"]
|
|
46
|
+
options: >-
|
|
47
|
+
--health-cmd "pg_isready -U test"
|
|
48
|
+
--health-interval 5s --health-timeout 5s --health-retries 10
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@v4
|
|
51
|
+
- uses: astral-sh/setup-uv@v5
|
|
52
|
+
- run: uv sync --dev # no --extra full
|
|
53
|
+
- run: uv run pytest tests/test_lite_boot.py -q
|
|
54
|
+
env:
|
|
55
|
+
DATABASE_URL_DEFAULT: postgresql+asyncpg://test:test@localhost:5432/test
|
|
56
|
+
|
|
57
|
+
architecture:
|
|
58
|
+
runs-on: ubuntu-latest
|
|
59
|
+
steps:
|
|
60
|
+
- uses: actions/checkout@v4
|
|
61
|
+
- uses: astral-sh/setup-uv@v5
|
|
62
|
+
- run: uv sync --all-extras --dev
|
|
63
|
+
- run: uv run lint-imports
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
name: Upgrade CI/CD Pipeline
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- development
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
deploy-to-vm:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout code
|
|
14
|
+
uses: actions/checkout@v3
|
|
15
|
+
|
|
16
|
+
- name: Install UV package manager locally (for the runner)
|
|
17
|
+
run: |
|
|
18
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
19
|
+
|
|
20
|
+
- name: Install Python 3.11 with UV (on runner)
|
|
21
|
+
run: |
|
|
22
|
+
uv python install 3.11
|
|
23
|
+
|
|
24
|
+
- name: Create virtual environment (runner)
|
|
25
|
+
run: uv venv
|
|
26
|
+
|
|
27
|
+
- name: Install dependencies (runner)
|
|
28
|
+
run: uv sync
|
|
29
|
+
|
|
30
|
+
- name: Setup SSH
|
|
31
|
+
run: |
|
|
32
|
+
mkdir -p ~/.ssh
|
|
33
|
+
echo "${{ secrets.VM_SSH_KEY }}" > ~/.ssh/deploy_key
|
|
34
|
+
chmod 600 ~/.ssh/deploy_key
|
|
35
|
+
ssh-keyscan -H "${{ secrets.VM_HOST }}" >> ~/.ssh/known_hosts
|
|
36
|
+
|
|
37
|
+
- name: Test SSH connection
|
|
38
|
+
run: |
|
|
39
|
+
ssh -v -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key ${{ secrets.VM_USER }}@${{ secrets.VM_HOST }} "echo 'SSH connection successful'"
|
|
40
|
+
|
|
41
|
+
- name: Deploy to VM via SSH
|
|
42
|
+
uses: appleboy/ssh-action@v0.1.8
|
|
43
|
+
with:
|
|
44
|
+
host: ${{ secrets.VM_HOST }}
|
|
45
|
+
username: ${{ secrets.VM_USER }}
|
|
46
|
+
key: ${{ secrets.VM_SSH_KEY }}
|
|
47
|
+
script: |
|
|
48
|
+
cd /home/vimuser/development/agents-workflow
|
|
49
|
+
git pull origin development
|
|
50
|
+
|
|
51
|
+
# Load user profile to set PATH and NVM environment
|
|
52
|
+
source ~/.profile
|
|
53
|
+
|
|
54
|
+
# Install uv if missing
|
|
55
|
+
if ! command -v uv > /dev/null 2>&1; then
|
|
56
|
+
echo "uv not found, installing..."
|
|
57
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
58
|
+
export PATH=$PATH:/home/vimuser/.local/bin
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
# Install pm2 if missing
|
|
62
|
+
if ! command -v pm2 > /dev/null 2>&1; then
|
|
63
|
+
echo "pm2 not found, installing..."
|
|
64
|
+
export NVM_DIR="$HOME/.nvm"
|
|
65
|
+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
66
|
+
npm install -g pm2
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
# Run sync and pm2 commands
|
|
70
|
+
uv sync
|
|
71
|
+
pm2 reload dev-agent-workflow || pm2 start scripts/run.sh --name dev-agent-workflow
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
name: release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
packages: write
|
|
11
|
+
actions: read
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
IMAGE: ghcr.io/fagoon-ai/upgrade
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
test:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
services:
|
|
20
|
+
postgres:
|
|
21
|
+
image: pgvector/pgvector:pg16
|
|
22
|
+
env:
|
|
23
|
+
POSTGRES_USER: test
|
|
24
|
+
POSTGRES_PASSWORD: test
|
|
25
|
+
POSTGRES_DB: test
|
|
26
|
+
ports: ["5432:5432"]
|
|
27
|
+
options: >-
|
|
28
|
+
--health-cmd "pg_isready -U test"
|
|
29
|
+
--health-interval 5s --health-timeout 5s --health-retries 10
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v4
|
|
32
|
+
with:
|
|
33
|
+
token: ${{ secrets.RELEASE_TOKEN || secrets.GITHUB_TOKEN }}
|
|
34
|
+
- uses: astral-sh/setup-uv@v5
|
|
35
|
+
- run: uv sync --all-extras --dev
|
|
36
|
+
- run: uv run pytest -q
|
|
37
|
+
env:
|
|
38
|
+
DATABASE_URL: postgresql+asyncpg://test:test@localhost:5432/test
|
|
39
|
+
|
|
40
|
+
image:
|
|
41
|
+
needs: test
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
steps:
|
|
44
|
+
- uses: actions/checkout@v4
|
|
45
|
+
with:
|
|
46
|
+
token: ${{ secrets.RELEASE_TOKEN || secrets.GITHUB_TOKEN }}
|
|
47
|
+
- name: Derive version from tag
|
|
48
|
+
id: ver
|
|
49
|
+
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
|
|
50
|
+
- uses: docker/setup-qemu-action@v3
|
|
51
|
+
- uses: docker/setup-buildx-action@v3
|
|
52
|
+
- name: Log in to GHCR
|
|
53
|
+
uses: docker/login-action@v3
|
|
54
|
+
with:
|
|
55
|
+
registry: ghcr.io
|
|
56
|
+
username: ${{ github.actor }}
|
|
57
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
58
|
+
- name: Build and push (multi-arch)
|
|
59
|
+
uses: docker/build-push-action@v6
|
|
60
|
+
with:
|
|
61
|
+
context: .
|
|
62
|
+
file: deploy/Dockerfile
|
|
63
|
+
platforms: linux/amd64,linux/arm64
|
|
64
|
+
push: true
|
|
65
|
+
tags: |
|
|
66
|
+
${{ env.IMAGE }}:${{ steps.ver.outputs.version }}
|
|
67
|
+
${{ env.IMAGE }}:latest
|
|
68
|
+
cache-from: type=gha
|
|
69
|
+
cache-to: type=gha,mode=max
|
|
70
|
+
|
|
71
|
+
pypi:
|
|
72
|
+
needs: test
|
|
73
|
+
runs-on: ubuntu-latest
|
|
74
|
+
environment: pypi
|
|
75
|
+
permissions:
|
|
76
|
+
id-token: write
|
|
77
|
+
steps:
|
|
78
|
+
- uses: actions/checkout@v4
|
|
79
|
+
with:
|
|
80
|
+
token: ${{ secrets.RELEASE_TOKEN || secrets.GITHUB_TOKEN }}
|
|
81
|
+
- uses: astral-sh/setup-uv@v5
|
|
82
|
+
- run: uv build
|
|
83
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
84
|
+
|
|
85
|
+
github-release:
|
|
86
|
+
needs: [image, pypi]
|
|
87
|
+
runs-on: ubuntu-latest
|
|
88
|
+
permissions:
|
|
89
|
+
contents: write
|
|
90
|
+
steps:
|
|
91
|
+
- uses: actions/checkout@v4
|
|
92
|
+
with:
|
|
93
|
+
token: ${{ secrets.RELEASE_TOKEN || secrets.GITHUB_TOKEN }}
|
|
94
|
+
- uses: softprops/action-gh-release@v2
|
|
95
|
+
with:
|
|
96
|
+
generate_release_notes: true
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# Project Ignored
|
|
2
|
+
logs/
|
|
3
|
+
google_client_config.json
|
|
4
|
+
test.py
|
|
5
|
+
assets/
|
|
6
|
+
|
|
7
|
+
# UV Dependencies
|
|
8
|
+
uv.lock
|
|
9
|
+
|
|
10
|
+
# Byte-compiled / optimized / DLL files
|
|
11
|
+
__pycache__/
|
|
12
|
+
*.py[cod]
|
|
13
|
+
*$py.class
|
|
14
|
+
|
|
15
|
+
# C extensions
|
|
16
|
+
*.so
|
|
17
|
+
|
|
18
|
+
*.lock
|
|
19
|
+
|
|
20
|
+
# Distribution / packaging
|
|
21
|
+
.Python
|
|
22
|
+
build/
|
|
23
|
+
develop-eggs/
|
|
24
|
+
dist/
|
|
25
|
+
downloads/
|
|
26
|
+
eggs/
|
|
27
|
+
.eggs/
|
|
28
|
+
/lib/
|
|
29
|
+
lib64/
|
|
30
|
+
parts/
|
|
31
|
+
sdist/
|
|
32
|
+
var/
|
|
33
|
+
wheels/
|
|
34
|
+
share/python-wheels/
|
|
35
|
+
*.egg-info/
|
|
36
|
+
.installed.cfg
|
|
37
|
+
*.egg
|
|
38
|
+
MANIFEST
|
|
39
|
+
|
|
40
|
+
# PyInstaller
|
|
41
|
+
# Usually these files are written by a python script from a template
|
|
42
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
43
|
+
*.manifest
|
|
44
|
+
*.spec
|
|
45
|
+
|
|
46
|
+
# Installer logs
|
|
47
|
+
pip-log.txt
|
|
48
|
+
pip-delete-this-directory.txt
|
|
49
|
+
|
|
50
|
+
# Unit test / coverage reports
|
|
51
|
+
htmlcov/
|
|
52
|
+
.tox/
|
|
53
|
+
.nox/
|
|
54
|
+
.coverage
|
|
55
|
+
.coverage.*
|
|
56
|
+
.cache
|
|
57
|
+
nosetests.xml
|
|
58
|
+
coverage.xml
|
|
59
|
+
*.cover
|
|
60
|
+
*.py,cover
|
|
61
|
+
.hypothesis/
|
|
62
|
+
.pytest_cache/
|
|
63
|
+
cover/
|
|
64
|
+
|
|
65
|
+
# Translations
|
|
66
|
+
*.mo
|
|
67
|
+
*.pot
|
|
68
|
+
|
|
69
|
+
# Django stuff:
|
|
70
|
+
*.log
|
|
71
|
+
local_settings.py
|
|
72
|
+
db.sqlite3
|
|
73
|
+
db.sqlite3-journal
|
|
74
|
+
|
|
75
|
+
# Flask stuff:
|
|
76
|
+
instance/
|
|
77
|
+
.webassets-cache
|
|
78
|
+
|
|
79
|
+
# Scrapy stuff:
|
|
80
|
+
.scrapy
|
|
81
|
+
|
|
82
|
+
# Sphinx documentation
|
|
83
|
+
docs/_build/
|
|
84
|
+
|
|
85
|
+
# PyBuilder
|
|
86
|
+
.pybuilder/
|
|
87
|
+
target/
|
|
88
|
+
|
|
89
|
+
# Jupyter Notebook
|
|
90
|
+
.ipynb_checkpoints
|
|
91
|
+
|
|
92
|
+
# IPython
|
|
93
|
+
profile_default/
|
|
94
|
+
ipython_config.py
|
|
95
|
+
|
|
96
|
+
# pyenv
|
|
97
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
98
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
99
|
+
# .python-version
|
|
100
|
+
|
|
101
|
+
# pipenv
|
|
102
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
103
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
104
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
105
|
+
# install all needed dependencies.
|
|
106
|
+
#Pipfile.lock
|
|
107
|
+
|
|
108
|
+
# UV
|
|
109
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
110
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
111
|
+
# commonly ignored for libraries.
|
|
112
|
+
#uv.lock
|
|
113
|
+
|
|
114
|
+
# poetry
|
|
115
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
116
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
117
|
+
# commonly ignored for libraries.
|
|
118
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
119
|
+
#poetry.lock
|
|
120
|
+
|
|
121
|
+
# pdm
|
|
122
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
123
|
+
#pdm.lock
|
|
124
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
125
|
+
# in version control.
|
|
126
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
127
|
+
.pdm.toml
|
|
128
|
+
.pdm-python
|
|
129
|
+
.pdm-build/
|
|
130
|
+
|
|
131
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
132
|
+
__pypackages__/
|
|
133
|
+
|
|
134
|
+
# Celery stuff
|
|
135
|
+
celerybeat-schedule
|
|
136
|
+
celerybeat.pid
|
|
137
|
+
|
|
138
|
+
# SageMath parsed files
|
|
139
|
+
*.sage.py
|
|
140
|
+
|
|
141
|
+
# Environments
|
|
142
|
+
.env
|
|
143
|
+
.venv
|
|
144
|
+
env/
|
|
145
|
+
venv/
|
|
146
|
+
ENV/
|
|
147
|
+
env.bak/
|
|
148
|
+
venv.bak/
|
|
149
|
+
|
|
150
|
+
# Spyder project settings
|
|
151
|
+
.spyderproject
|
|
152
|
+
.spyproject
|
|
153
|
+
|
|
154
|
+
# Rope project settings
|
|
155
|
+
.ropeproject
|
|
156
|
+
|
|
157
|
+
# mkdocs documentation
|
|
158
|
+
/site
|
|
159
|
+
|
|
160
|
+
# mypy
|
|
161
|
+
.mypy_cache/
|
|
162
|
+
.dmypy.json
|
|
163
|
+
dmypy.json
|
|
164
|
+
|
|
165
|
+
# Pyre type checker
|
|
166
|
+
.pyre/
|
|
167
|
+
|
|
168
|
+
# pytype static type analyzer
|
|
169
|
+
.pytype/
|
|
170
|
+
|
|
171
|
+
# Cython debug symbols
|
|
172
|
+
cython_debug/
|
|
173
|
+
|
|
174
|
+
# PyCharm
|
|
175
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
176
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
177
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
178
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
179
|
+
.idea/
|
|
180
|
+
|
|
181
|
+
# PyPI configuration file
|
|
182
|
+
.pypirc
|
|
183
|
+
|
|
184
|
+
# Vscode Related
|
|
185
|
+
.vscode
|
|
186
|
+
|
|
187
|
+
# ignore researh outputs
|
|
188
|
+
outputs/
|
|
189
|
+
|
|
190
|
+
#ignore md files
|
|
191
|
+
PostgreSQL_Migration_Plan.md
|
|
192
|
+
Workflow.md
|
|
193
|
+
gcs.json
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
clients-application.json
|
|
197
|
+
QR.html
|
|
198
|
+
|
|
199
|
+
DUAL_MODE_IMPLEMENTATION.md
|
|
200
|
+
DB_SWITCH_IMPLEMENTATION.md
|
|
201
|
+
IMPLEMENTATION_PHASES.md
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[importlinter]
|
|
2
|
+
root_package = src
|
|
3
|
+
include_external_packages = True
|
|
4
|
+
|
|
5
|
+
[importlinter:contract:no-direct-redis]
|
|
6
|
+
name = Only backend modules may import redis
|
|
7
|
+
type = forbidden
|
|
8
|
+
source_modules =
|
|
9
|
+
src.api
|
|
10
|
+
src.services.agents
|
|
11
|
+
src.services.tool_handlers
|
|
12
|
+
src.services.google_workspace
|
|
13
|
+
forbidden_modules =
|
|
14
|
+
redis
|
|
15
|
+
|
|
16
|
+
[importlinter:contract:no-direct-celery]
|
|
17
|
+
name = Only the celery backend may import celery
|
|
18
|
+
type = forbidden
|
|
19
|
+
source_modules =
|
|
20
|
+
src.api
|
|
21
|
+
src.services.agents
|
|
22
|
+
src.services.tool_handlers
|
|
23
|
+
forbidden_modules =
|
|
24
|
+
celery
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Stage 1: Builder
|
|
2
|
+
FROM python:3.11-slim AS builder
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
|
|
5
|
+
RUN apt-get update && apt-get install -y \
|
|
6
|
+
curl \
|
|
7
|
+
gcc \
|
|
8
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
9
|
+
|
|
10
|
+
RUN pip install --no-cache-dir uv
|
|
11
|
+
|
|
12
|
+
COPY . .
|
|
13
|
+
|
|
14
|
+
# Install dependencies into .venv
|
|
15
|
+
RUN uv sync
|
|
16
|
+
|
|
17
|
+
RUN chmod +x scripts/run.sh
|
|
18
|
+
|
|
19
|
+
# Stage 2: Runtime
|
|
20
|
+
FROM python:3.11-slim
|
|
21
|
+
WORKDIR /app
|
|
22
|
+
|
|
23
|
+
RUN apt-get update && apt-get install -y \
|
|
24
|
+
curl \
|
|
25
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
26
|
+
|
|
27
|
+
COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
|
|
28
|
+
COPY --from=builder /usr/local/bin/uv /usr/local/bin/uv
|
|
29
|
+
COPY --from=builder /app /app
|
|
30
|
+
|
|
31
|
+
RUN chmod +x scripts/run.sh
|
|
32
|
+
|
|
33
|
+
ENTRYPOINT ["scripts/run.sh"]
|