diff --git a/.env b/.env deleted file mode 100644 index 9f8872b0a8a8658bf74ab6ea64a77b954396ed50..0000000000000000000000000000000000000000 --- a/.env +++ /dev/null @@ -1,7 +0,0 @@ -AI_PROVIDER=vertex_ai -ALLOW_ORIGINS=* -GMAIL_POLL_SECONDS=30 -VERTEX_PROJECT_ID=flow-pilot-493104 -VERTEX_LOCATION=us-central1 -VERTEX_MODEL=gemini-2.5-pro -GOOGLE_APPLICATION_CREDENTIALS= diff --git a/.env.example b/.env.example deleted file mode 100644 index b918a907a67a2d3889ce2a8ac9fb2f700ac14a7f..0000000000000000000000000000000000000000 --- a/.env.example +++ /dev/null @@ -1,7 +0,0 @@ -AI_PROVIDER=vertex_ai -ALLOW_ORIGINS=* -GMAIL_POLL_SECONDS=30 -VERTEX_PROJECT_ID=your-gcp-project-id -VERTEX_LOCATION=us-central1 -VERTEX_MODEL=gemini-2.5-pro -GOOGLE_APPLICATION_CREDENTIALS= diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b216e2f65ee1f20f06f3818710b97e01b4a6370a..3e11ff55620236a2a8fae18978d6a59f726c7cf9 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -58,4 +58,4 @@ jobs: image: ${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPOSITORY }}/${{ env.IMAGE }}:${{ github.sha }} flags: >- --allow-unauthenticated - --set-env-vars=AI_PROVIDER=vertex_ai,VERTEX_PROJECT_ID=${{ env.PROJECT_ID }},VERTEX_LOCATION=${{ env.REGION }},VERTEX_MODEL=gemini-2.5-pro + --set-env-vars=AI_PROVIDER=vertex_ai,VERTEX_PROJECT_ID=${{ env.PROJECT_ID }},VERTEX_LOCATION=${{ env.REGION }},VERTEX_MODEL=gemini-2.5-flash diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..d447b76f6e1dcd4bb24b2ff2b23179c6e7524116 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.env +.env.local +.venv/ +venv/ +__pycache__/ +.pytest_cache/ +.mypy_cache/ +.ruff_cache/ +*.pyc +*.pyo +*.pyd + +dist/ +build/ +*.egg-info/ + +.DS_Store +.idea/ +.vscode/ + +flowpilot-vertex-key.json +*.pem +*.key diff --git a/README.md b/README.md index 45ca186af53d362fa515597cf2e2ed9c9853ffb0..e13ace77460dae04d671e17f944d9e8f1c59188b 100644 --- a/README.md +++ b/README.md @@ -74,5 +74,6 @@ The workflow builds the Docker image, pushes it to Artifact Registry, and deploy - Fill in your real Vertex values in `.env`, especially `VERTEX_PROJECT_ID` and `VERTEX_LOCATION`. - If you authenticate with `gcloud auth application-default login`, leave `GOOGLE_APPLICATION_CREDENTIALS` blank. - Only set `GOOGLE_APPLICATION_CREDENTIALS` when you have a real service account JSON path available. +- The default model is `gemini-2.5-flash` for better latency and cost during iteration. - The backend now attempts live Vertex AI calls through the `google-genai` SDK when credentials are configured. - If the SDK is missing or `VERTEX_PROJECT_ID` is still a placeholder, FlowPilot falls back to local deterministic mock logic so tests and scaffolding still work. diff --git a/backend/__pycache__/__init__.cpython-311.pyc b/backend/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 65a6e15b8b22a28c86dfa75a1065c94b459a6724..0000000000000000000000000000000000000000 Binary files a/backend/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/__pycache__/__init__.cpython-312.pyc b/backend/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 15ceb7725c67e2324c19e113ae4bfe4642d99add..0000000000000000000000000000000000000000 Binary files a/backend/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/__pycache__/config.cpython-311.pyc b/backend/__pycache__/config.cpython-311.pyc deleted file mode 100644 index c9575d4158e11b2c359320bf0a52a00c0f9002ca..0000000000000000000000000000000000000000 Binary files a/backend/__pycache__/config.cpython-311.pyc and /dev/null differ diff --git a/backend/__pycache__/config.cpython-312.pyc b/backend/__pycache__/config.cpython-312.pyc deleted file mode 100644 index 09d04d4245b7fa2a53468c72b4a9ea4c4497f83c..0000000000000000000000000000000000000000 Binary files a/backend/__pycache__/config.cpython-312.pyc and /dev/null differ diff --git a/backend/__pycache__/main.cpython-311.pyc b/backend/__pycache__/main.cpython-311.pyc deleted file mode 100644 index 59c51e556fe05d134805258503fb71db617d6b14..0000000000000000000000000000000000000000 Binary files a/backend/__pycache__/main.cpython-311.pyc and /dev/null differ diff --git a/backend/__pycache__/main.cpython-312.pyc b/backend/__pycache__/main.cpython-312.pyc deleted file mode 100644 index 9290c1817efafe4462a4115419f341d75c472bde..0000000000000000000000000000000000000000 Binary files a/backend/__pycache__/main.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/__init__.cpython-311.pyc b/backend/ai/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index bdda73e477960dbe0da01a5b3864913cd2d8caae..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/__init__.cpython-312.pyc b/backend/ai/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d6d8eafdbe20a0504dc310d86629ea6def5ede8e..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/analyzer.cpython-311.pyc b/backend/ai/__pycache__/analyzer.cpython-311.pyc deleted file mode 100644 index 9f452bb9ee29994a3414b47d5800b68a19dc64aa..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/analyzer.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/analyzer.cpython-312.pyc b/backend/ai/__pycache__/analyzer.cpython-312.pyc deleted file mode 100644 index 9e86c496c33a7f6c5ffa35d93ad64aaf340ba711..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/analyzer.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/classifier.cpython-311.pyc b/backend/ai/__pycache__/classifier.cpython-311.pyc deleted file mode 100644 index 86e0da0da001a0d7150092ca29edee7411626bec..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/classifier.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/classifier.cpython-312.pyc b/backend/ai/__pycache__/classifier.cpython-312.pyc deleted file mode 100644 index 72f19fa18cd03b9e2f00dbf0fbcf4b87e2e468a6..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/classifier.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/client.cpython-311.pyc b/backend/ai/__pycache__/client.cpython-311.pyc deleted file mode 100644 index 83bfe15783f66bd37f29c718279f97882a8e256f..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/client.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/client.cpython-312.pyc b/backend/ai/__pycache__/client.cpython-312.pyc deleted file mode 100644 index 715410034871faf005235506b4658e792057deb4..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/client.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/composer.cpython-311.pyc b/backend/ai/__pycache__/composer.cpython-311.pyc deleted file mode 100644 index 3d1ac439e096dd00781e8af715ec523ead301e8f..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/composer.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/composer.cpython-312.pyc b/backend/ai/__pycache__/composer.cpython-312.pyc deleted file mode 100644 index 59ad2c204d58e237732c361b69c8523685b1529f..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/composer.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/extractor.cpython-311.pyc b/backend/ai/__pycache__/extractor.cpython-311.pyc deleted file mode 100644 index 51b809c4b3d9afc82e64cf4c0efd39b1d9b7577e..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/extractor.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/extractor.cpython-312.pyc b/backend/ai/__pycache__/extractor.cpython-312.pyc deleted file mode 100644 index 9eda21ac1c514aeb3e7049425c886aaa9072fff5..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/extractor.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/prompts.cpython-311.pyc b/backend/ai/__pycache__/prompts.cpython-311.pyc deleted file mode 100644 index 2e62d68e087be25aa05b1a5ae7fabd08032c5e15..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/prompts.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/prompts.cpython-312.pyc b/backend/ai/__pycache__/prompts.cpython-312.pyc deleted file mode 100644 index 6916915534414ae8afe7f12493ac431570a91345..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/prompts.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/workflow_builder.cpython-311.pyc b/backend/ai/__pycache__/workflow_builder.cpython-311.pyc deleted file mode 100644 index c864742fc03e94a8a77000fadd44db976adf6696..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/workflow_builder.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/workflow_builder.cpython-312.pyc b/backend/ai/__pycache__/workflow_builder.cpython-312.pyc deleted file mode 100644 index 8b38634d30a33c1b496849f77331c307480d5480..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/workflow_builder.cpython-312.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/workflow_suggester.cpython-311.pyc b/backend/ai/__pycache__/workflow_suggester.cpython-311.pyc deleted file mode 100644 index 9ef65b20ea48e75aacb05070a3011ff505a74949..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/workflow_suggester.cpython-311.pyc and /dev/null differ diff --git a/backend/ai/__pycache__/workflow_suggester.cpython-312.pyc b/backend/ai/__pycache__/workflow_suggester.cpython-312.pyc deleted file mode 100644 index 3f133c7c1fe1e2abec2e2f910f1d4bc721550785..0000000000000000000000000000000000000000 Binary files a/backend/ai/__pycache__/workflow_suggester.cpython-312.pyc and /dev/null differ diff --git a/backend/api/__pycache__/__init__.cpython-311.pyc b/backend/api/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 45b6e4e346cd6abe799669859b882015154f7968..0000000000000000000000000000000000000000 Binary files a/backend/api/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/api/__pycache__/__init__.cpython-312.pyc b/backend/api/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0d5f5d6b4f6ee4982265156f242558f637485e88..0000000000000000000000000000000000000000 Binary files a/backend/api/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/api/__pycache__/middleware.cpython-312.pyc b/backend/api/__pycache__/middleware.cpython-312.pyc deleted file mode 100644 index f69e07a5a6a714bfa16f8be00e4b533436790081..0000000000000000000000000000000000000000 Binary files a/backend/api/__pycache__/middleware.cpython-312.pyc and /dev/null differ diff --git a/backend/api/__pycache__/routes.cpython-311.pyc b/backend/api/__pycache__/routes.cpython-311.pyc deleted file mode 100644 index d9049b45cdd0d363bfcefc8971ba10acb1e94789..0000000000000000000000000000000000000000 Binary files a/backend/api/__pycache__/routes.cpython-311.pyc and /dev/null differ diff --git a/backend/api/__pycache__/routes.cpython-312.pyc b/backend/api/__pycache__/routes.cpython-312.pyc deleted file mode 100644 index dc1c0be902c5091340eca210e52ded55ce737e28..0000000000000000000000000000000000000000 Binary files a/backend/api/__pycache__/routes.cpython-312.pyc and /dev/null differ diff --git a/backend/api/routes.py b/backend/api/routes.py index 204cdd6777327d0afb6ff6793793a11758253479..66ca6a210f38027faa370f464b347cc4bf65f132 100644 --- a/backend/api/routes.py +++ b/backend/api/routes.py @@ -1,3 +1,5 @@ +import logging + from fastapi import APIRouter, HTTPException from backend.ai.analyzer import analyze_business_description, analyze_custom_task @@ -24,11 +26,16 @@ from backend.storage.database import db router = APIRouter() executor = WorkflowExecutor() +logger = logging.getLogger(__name__) @router.post("/analyze") def analyze(request: AnalyzeRequest) -> dict: - analysis = analyze_business_description(request.description) + try: + analysis = analyze_business_description(request.description) + except Exception as exc: + logger.exception("Analyze request failed") + raise HTTPException(status_code=500, detail=f"Analyze failed: {exc}") from exc owner = db.ensure_owner(request.owner_id, request.owner_email) owner["business_description"] = request.description owner["business_analysis"] = analysis @@ -39,30 +46,42 @@ def analyze(request: AnalyzeRequest) -> dict: @router.post("/custom-task") def custom_task(request: CustomTaskRequest) -> dict: owner = db.get_owner(request.owner_id) - return analyze_custom_task( - business_description=owner.get("business_description", ""), - existing_workflows=db.list_workflows(request.owner_id), - custom_task=request.custom_task, - ) + try: + return analyze_custom_task( + business_description=owner.get("business_description", ""), + existing_workflows=db.list_workflows(request.owner_id), + custom_task=request.custom_task, + ) + except Exception as exc: + logger.exception("Custom task analysis failed") + raise HTTPException(status_code=500, detail=f"Custom task analysis failed: {exc}") from exc @router.post("/suggest-workflows") def suggest_workflows(request: WorkflowSuggestionRequest) -> dict: owner = db.get_owner(request.owner_id) - return suggest_workflow_options( - task_name=request.task_name, - task_description=request.task_description, - category=request.category, - spreadsheet_info=owner.get("spreadsheet_config", {"connected": False}), - uploaded_files=db.list_data_files(request.owner_id), - ) + try: + return suggest_workflow_options( + task_name=request.task_name, + task_description=request.task_description, + category=request.category, + spreadsheet_info=owner.get("spreadsheet_config", {"connected": False}), + uploaded_files=db.list_data_files(request.owner_id), + ) + except Exception as exc: + logger.exception("Workflow suggestion failed") + raise HTTPException(status_code=500, detail=f"Workflow suggestion failed: {exc}") from exc @router.post("/build-workflow", response_model=BuildWorkflowResponse) def build_workflow(request: BuildWorkflowRequest) -> BuildWorkflowResponse: owner = db.get_owner(request.owner_id) - workflow_json = build_workflow_definition(request=request, owner=owner) - compiled = compile_workflow(workflow_json) + try: + workflow_json = build_workflow_definition(request=request, owner=owner) + compiled = compile_workflow(workflow_json) + except Exception as exc: + logger.exception("Workflow build failed") + raise HTTPException(status_code=500, detail=f"Workflow build failed: {exc}") from exc return BuildWorkflowResponse(workflow=compiled) @@ -125,3 +144,15 @@ def simulate_run(owner_id: str, workflow_id: str, trigger: dict) -> dict: result = executor.execute(workflow, trigger, db=db, owner_id=owner_id) db.save_execution_log(owner_id, workflow_id, trigger, result["steps"], result["outcome"], result.get("error")) return result + + +@router.get("/debug/vertex") +def debug_vertex() -> dict: + from backend.ai.client import vertex_client + + try: + text = vertex_client.generate_text("Reply with exactly: Vertex debug ok") + return {"status": "ok", "response": text} + except Exception as exc: + logger.exception("Vertex debug call failed") + raise HTTPException(status_code=500, detail=f"Vertex debug failed: {exc}") from exc diff --git a/backend/config.py b/backend/config.py index 37df8655552b8adda3172aa367c404226ffc3b86..c6f2fe3293a45d1c96c1c77a4f66e277300a2439 100644 --- a/backend/config.py +++ b/backend/config.py @@ -16,7 +16,7 @@ class Settings(BaseModel): gmail_poll_seconds: int = int(os.getenv("GMAIL_POLL_SECONDS", "30")) vertex_project_id: str = os.getenv("VERTEX_PROJECT_ID", "your-gcp-project-id") vertex_location: str = os.getenv("VERTEX_LOCATION", "us-central1") - vertex_model: str = os.getenv("VERTEX_MODEL", "gemini-2.5-pro") + vertex_model: str = os.getenv("VERTEX_MODEL", "gemini-2.5-flash") google_application_credentials: str = os.getenv( "GOOGLE_APPLICATION_CREDENTIALS", "", diff --git a/backend/engine/__pycache__/__init__.cpython-311.pyc b/backend/engine/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 4cb89bf2b932eb22181f108146ec26ba717b0c4c..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/__init__.cpython-312.pyc b/backend/engine/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8df7083eb385462a3cd9e1a81e368377da33193f..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/compiler.cpython-311.pyc b/backend/engine/__pycache__/compiler.cpython-311.pyc deleted file mode 100644 index 84e477f44d596cb044947c5de5929832bf687998..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/compiler.cpython-311.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/compiler.cpython-312.pyc b/backend/engine/__pycache__/compiler.cpython-312.pyc deleted file mode 100644 index 7cab6a04b36a7ee984400a1543f138413761d8e4..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/compiler.cpython-312.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/executor.cpython-311.pyc b/backend/engine/__pycache__/executor.cpython-311.pyc deleted file mode 100644 index 1fc9f81f8f7a2c1082034a138de6a497d7d334ca..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/executor.cpython-311.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/executor.cpython-312.pyc b/backend/engine/__pycache__/executor.cpython-312.pyc deleted file mode 100644 index 3b753ad263d5635722ea7acbc3bab3338542c1c3..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/executor.cpython-312.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/primitives.cpython-311.pyc b/backend/engine/__pycache__/primitives.cpython-311.pyc deleted file mode 100644 index 3b35f3d8932f2e8415b3d2b49706253704bf9b63..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/primitives.cpython-311.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/primitives.cpython-312.pyc b/backend/engine/__pycache__/primitives.cpython-312.pyc deleted file mode 100644 index 27144204e0af9aa3816e054582dc1fc97d9e00cc..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/primitives.cpython-312.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/scheduler.cpython-312.pyc b/backend/engine/__pycache__/scheduler.cpython-312.pyc deleted file mode 100644 index 6d4ad734380ab08fe86c59120f1ce244711b181c..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/scheduler.cpython-312.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/state.cpython-312.pyc b/backend/engine/__pycache__/state.cpython-312.pyc deleted file mode 100644 index 249964fd45e7f07e4d4fb7ec4f4711687f26e870..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/state.cpython-312.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/validator.cpython-311.pyc b/backend/engine/__pycache__/validator.cpython-311.pyc deleted file mode 100644 index 4012682d57390dbf2349dd8208e7ea9355fc0fcd..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/validator.cpython-311.pyc and /dev/null differ diff --git a/backend/engine/__pycache__/validator.cpython-312.pyc b/backend/engine/__pycache__/validator.cpython-312.pyc deleted file mode 100644 index 3fc8b794f62e0993d896ce2a95d05e7d4f1e42a1..0000000000000000000000000000000000000000 Binary files a/backend/engine/__pycache__/validator.cpython-312.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/__init__.cpython-311.pyc b/backend/integrations/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index cfbe5a50e0992d1d4beb46f43e7d47323a0ccc67..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/__init__.cpython-312.pyc b/backend/integrations/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index aa80354dced58b3241e0d482b123ca4fe3c7b379..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/file_parser.cpython-311.pyc b/backend/integrations/__pycache__/file_parser.cpython-311.pyc deleted file mode 100644 index f1da0a61c5b725ff31c640fe6f3fee411e4a4f2d..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/file_parser.cpython-311.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/file_parser.cpython-312.pyc b/backend/integrations/__pycache__/file_parser.cpython-312.pyc deleted file mode 100644 index e6d5c1fcad841498287c21268854c3f7c44f4820..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/file_parser.cpython-312.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/gmail_auth.cpython-312.pyc b/backend/integrations/__pycache__/gmail_auth.cpython-312.pyc deleted file mode 100644 index a61ff99a50ed25952f0a16ebbc146bd49292888a..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/gmail_auth.cpython-312.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/gmail_client.cpython-312.pyc b/backend/integrations/__pycache__/gmail_client.cpython-312.pyc deleted file mode 100644 index 6f7d26d7d7e42c1df3fbdd590a9f67fe8b22fc9b..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/gmail_client.cpython-312.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/sheets_auth.cpython-312.pyc b/backend/integrations/__pycache__/sheets_auth.cpython-312.pyc deleted file mode 100644 index a24047120d332006c0f63d4345d65628652bd23a..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/sheets_auth.cpython-312.pyc and /dev/null differ diff --git a/backend/integrations/__pycache__/sheets_client.cpython-312.pyc b/backend/integrations/__pycache__/sheets_client.cpython-312.pyc deleted file mode 100644 index b5be528b397edb32f7c867db8a9d538b2788e549..0000000000000000000000000000000000000000 Binary files a/backend/integrations/__pycache__/sheets_client.cpython-312.pyc and /dev/null differ diff --git a/backend/models/__pycache__/__init__.cpython-311.pyc b/backend/models/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 2a382a7470ae35b4165396037617bfe05169f005..0000000000000000000000000000000000000000 Binary files a/backend/models/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/models/__pycache__/__init__.cpython-312.pyc b/backend/models/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fa237fc1d984a8ef164a1b21dbd5862f15b54a92..0000000000000000000000000000000000000000 Binary files a/backend/models/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/models/__pycache__/db_models.cpython-312.pyc b/backend/models/__pycache__/db_models.cpython-312.pyc deleted file mode 100644 index 0cac28e39bd33337f15c50a9548cbf09e4de4450..0000000000000000000000000000000000000000 Binary files a/backend/models/__pycache__/db_models.cpython-312.pyc and /dev/null differ diff --git a/backend/models/__pycache__/schemas.cpython-311.pyc b/backend/models/__pycache__/schemas.cpython-311.pyc deleted file mode 100644 index d861ab41fc228f2096a57c0156715463ef5a9244..0000000000000000000000000000000000000000 Binary files a/backend/models/__pycache__/schemas.cpython-311.pyc and /dev/null differ diff --git a/backend/models/__pycache__/schemas.cpython-312.pyc b/backend/models/__pycache__/schemas.cpython-312.pyc deleted file mode 100644 index 10bf2c822bb7a122fa41405bf5cb5a0476b079e5..0000000000000000000000000000000000000000 Binary files a/backend/models/__pycache__/schemas.cpython-312.pyc and /dev/null differ diff --git a/backend/models/__pycache__/workflow_schema.cpython-311.pyc b/backend/models/__pycache__/workflow_schema.cpython-311.pyc deleted file mode 100644 index c921b8b2aaf7effc6fe467875f526383b7531111..0000000000000000000000000000000000000000 Binary files a/backend/models/__pycache__/workflow_schema.cpython-311.pyc and /dev/null differ diff --git a/backend/models/__pycache__/workflow_schema.cpython-312.pyc b/backend/models/__pycache__/workflow_schema.cpython-312.pyc deleted file mode 100644 index e55232158dafca7ded81180fc01c293e6f18e7f3..0000000000000000000000000000000000000000 Binary files a/backend/models/__pycache__/workflow_schema.cpython-312.pyc and /dev/null differ diff --git a/backend/storage/__pycache__/__init__.cpython-311.pyc b/backend/storage/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index b27a05e721ae4855d7ac4c84cf63aafbb83511fe..0000000000000000000000000000000000000000 Binary files a/backend/storage/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/storage/__pycache__/__init__.cpython-312.pyc b/backend/storage/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8e6683a3cb382c8b3a5229e7f09e62dacbbd7957..0000000000000000000000000000000000000000 Binary files a/backend/storage/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/storage/__pycache__/database.cpython-311.pyc b/backend/storage/__pycache__/database.cpython-311.pyc deleted file mode 100644 index d0ce104fbb53585ab9d51f79185fe7b8985dc1cb..0000000000000000000000000000000000000000 Binary files a/backend/storage/__pycache__/database.cpython-311.pyc and /dev/null differ diff --git a/backend/storage/__pycache__/database.cpython-312.pyc b/backend/storage/__pycache__/database.cpython-312.pyc deleted file mode 100644 index 823ff787b938ba9b9fb188b831b9be0881e9c370..0000000000000000000000000000000000000000 Binary files a/backend/storage/__pycache__/database.cpython-312.pyc and /dev/null differ diff --git a/backend/storage/__pycache__/migrations.cpython-311.pyc b/backend/storage/__pycache__/migrations.cpython-311.pyc deleted file mode 100644 index dcb59298a132216db48e23bf3cc7e05464304261..0000000000000000000000000000000000000000 Binary files a/backend/storage/__pycache__/migrations.cpython-311.pyc and /dev/null differ diff --git a/backend/storage/__pycache__/migrations.cpython-312.pyc b/backend/storage/__pycache__/migrations.cpython-312.pyc deleted file mode 100644 index bd58252bcc612f033c1a4b8a142f1825f2e26a59..0000000000000000000000000000000000000000 Binary files a/backend/storage/__pycache__/migrations.cpython-312.pyc and /dev/null differ diff --git a/backend/watcher/__pycache__/__init__.cpython-311.pyc b/backend/watcher/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index bd24cfa2fbb0a9d22e79b157c256cc87efc36af4..0000000000000000000000000000000000000000 Binary files a/backend/watcher/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/watcher/__pycache__/__init__.cpython-312.pyc b/backend/watcher/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2e5395a44d96efcc508572ff85582d4dc7cc2ddc..0000000000000000000000000000000000000000 Binary files a/backend/watcher/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/backend/watcher/__pycache__/gmail_watcher.cpython-311.pyc b/backend/watcher/__pycache__/gmail_watcher.cpython-311.pyc deleted file mode 100644 index 528d2971762af20324cef4673c296887893769ed..0000000000000000000000000000000000000000 Binary files a/backend/watcher/__pycache__/gmail_watcher.cpython-311.pyc and /dev/null differ diff --git a/backend/watcher/__pycache__/gmail_watcher.cpython-312.pyc b/backend/watcher/__pycache__/gmail_watcher.cpython-312.pyc deleted file mode 100644 index 9b1dd0902981e1b7c5979570579955ec8f8f7ce8..0000000000000000000000000000000000000000 Binary files a/backend/watcher/__pycache__/gmail_watcher.cpython-312.pyc and /dev/null differ diff --git a/backend/watcher/__pycache__/trigger_manager.cpython-311.pyc b/backend/watcher/__pycache__/trigger_manager.cpython-311.pyc deleted file mode 100644 index fb84df36da1402293fe23738c13e215f59bc50bc..0000000000000000000000000000000000000000 Binary files a/backend/watcher/__pycache__/trigger_manager.cpython-311.pyc and /dev/null differ diff --git a/backend/watcher/__pycache__/trigger_manager.cpython-312.pyc b/backend/watcher/__pycache__/trigger_manager.cpython-312.pyc deleted file mode 100644 index 51ab330efa0b1a9f84215242c393300544e48aaa..0000000000000000000000000000000000000000 Binary files a/backend/watcher/__pycache__/trigger_manager.cpython-312.pyc and /dev/null differ diff --git a/flowpilot-vertex-key.json b/flowpilot-vertex-key.json deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc deleted file mode 100644 index 5a2b0244b122be9dd1096afbd76d58f4f21dbd1a..0000000000000000000000000000000000000000 Binary files a/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc and /dev/null differ diff --git a/tests/__pycache__/conftest.cpython-312.pyc b/tests/__pycache__/conftest.cpython-312.pyc deleted file mode 100644 index 69439e9e454c0bf1ccf29294202cbea9ac1f1f92..0000000000000000000000000000000000000000 Binary files a/tests/__pycache__/conftest.cpython-312.pyc and /dev/null differ diff --git a/tests/__pycache__/test_flowpilot_api.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/test_flowpilot_api.cpython-312-pytest-8.4.2.pyc deleted file mode 100644 index 774dd750ba6819156de4ddc33337ebb732507fc5..0000000000000000000000000000000000000000 Binary files a/tests/__pycache__/test_flowpilot_api.cpython-312-pytest-8.4.2.pyc and /dev/null differ diff --git a/tests/__pycache__/test_flowpilot_api.cpython-312.pyc b/tests/__pycache__/test_flowpilot_api.cpython-312.pyc deleted file mode 100644 index 3ebafbbb21e3c11578f0908ad401a19270de306f..0000000000000000000000000000000000000000 Binary files a/tests/__pycache__/test_flowpilot_api.cpython-312.pyc and /dev/null differ