forked from Significant-Gravitas/AutoGPT
-
Notifications
You must be signed in to change notification settings - Fork 0
[Snyk] Security upgrade next from 13.5.11 to 15.5.10 #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
tpsaint
wants to merge
211
commits into
dev
Choose a base branch
from
snyk-fix-0c15301768066757f25acb0919698695
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
211 commits
Select commit
Hold shift + click to select a range
cf2ca63
fix(backend): use admin route for store downloads (#10406)
ntindle 6dba6ec
feat(backend): Add database index for improved query performance (#10…
Swiftyos f81d7e6
feat(backend): Add Missing FK indexes and remove unused & redundant i…
majdyz bf73b42
fix(platform): Fix service health check mechanism on app service (#10…
majdyz e28eec6
feat(backend): Add ReverseListOrderBlock for reversing list element o…
Swiftyos 0c9b733
feat(backend): Register agent subgraphs as library entries during age…
majdyz 61d0892
fix(frontend): init LD on the client (#10414)
0ubbe 3b963e5
feat(platform): Move NotificationManager service from rest-api pod to…
majdyz 6d25e8f
feat(platform): Move NotificationManager service from rest-api pod to…
majdyz f4a179e
feat(backend): Add thread safety to NodeExecutionProgress output hand…
majdyz ae6ef8c
refactor(frontend): improve LaunchDarkly provider initialization (#10…
ntindle f8b9e80
feat(backend): enable the google blocks + fix .env (#10430)
ntindle a58613a
fix(backend): Fix Agent Input with empty string default value not bei…
majdyz 41363b1
feat(frontend): agent activity dropdown (#10416)
0ubbe c3fe31e
feat: Introduce DatabaseManager startup process file (poetry run db)
majdyz 708e84f
chore(frontend/deps-dev): Bump the development-dependencies group in …
dependabot[bot] 51a39ef
feat(platform): Move DatabaseManager away from RestAPI as a standalon…
majdyz ccad664
feat: Add alert for notifying stuck running agent for more than a day…
majdyz e7f8602
fix(frontend): handle websocket connection on logout (#10440)
0ubbe b0e8131
fix(platform): Fix database manager process missing on self-hosted do…
majdyz 683826c
Further clarify language
Torantulino 921fb20
Update README.md
Torantulino f786142
fix: transfer NodeTextBoxInput to use local state to fix cursor jump …
vickywane e3590e1
chore(frontend): ci caching + e2e test data script (#10446)
0ubbe 38ea49c
Merge branch 'master' of github.com:Significant-Gravitas/AutoGPT into…
majdyz 070e1c0
fix: Remove DatabaseManager heath-check from RestAPI service
majdyz 4d6ec00
chore(backend/deps): Update 8 packages (#10448)
dependabot[bot] c955e9a
feat(blocks): Add Airtable Integration (#10338)
Swiftyos 39fe22f
feat(block): Add Ayrshare integration for social media posting (#9946)
Swiftyos 29d4b4f
fix(frontend): socket logout handling (#10445)
0ubbe 03cf392
chore(backend/deps, libs/deps): Bump redis from 5.2.x to 6.2.0 (#10177)
dependabot[bot] f44920c
Update README.md
Torantulino 079d7c2
Update README.md
Torantulino d991b4f
Update README.md
Torantulino 8321677
chore(frontend/deps): Update 12 dependencies (#10451)
dependabot[bot] 3c62ca2
Improve clarity
Torantulino 7ea4077
fix(frontend/builder): Prevent bad graph reloads (#10459)
Pwuts 9171c6d
fix(frontend/builder): Prevent bad graph reloads (#10459)
Pwuts f7c1906
feat(frontend, backend): Publish Agent Dialog Agent List Pagination (…
ntindle b71d0ec
feat(backend): Ensure json column value serializable & remove excessi…
majdyz 4d05a27
feat(backend): Avoid executor over-consuming messages when it's fully…
majdyz 95650ee
feat(backend): improve gmail blocks (#10475)
ntindle 04f8cd6
feat(blocks): Add WordPress integration with OAuth and create post bl…
Swiftyos 55af487
fix(backend): Revert RabbitMQ consumer heartbeat mechanism (#10477)
majdyz a60abe5
feat(frontend): agent activity improvements (#10462)
0ubbe 83f96b7
fix(backend): Ensure we only present working auth options on blocks (…
Swiftyos b9c7642
feat(backend): Introduce http client refresh on repeated error (#10481)
majdyz a37fac3
fix(backend): Fix LLM blocks call tracking (#10483)
majdyz 7373b47
fix(frontend): agent activity sometimes broken links (#10480)
0ubbe b087618
feat(backend): add getting user profile, drafts, update send email to…
ntindle 02f5e92
feat(blocks): Add Airtable Integration with Base Management (#10485)
Swiftyos bb71492
feat(blocks): Add Wolfram Alpha LLM API Block (#10486)
Swiftyos 48f7561
fix(backend): Fix Google OAuth token revocation (#10491)
Pwuts 9ca75d9
Revert "fix(backend): Fix Google OAuth token revocation" (#10493)
Pwuts e3fa8f6
fix(frontend): agent activity links (2) (#10488)
0ubbe 903a3b8
Merge branch 'master' into dev
Pwuts 68974dc
feat(backend): Enable Ayrshare YouTube support (#10505)
Swiftyos b429505
feat(backend): Enable Ayrshare Instagram support (#10504)
Swiftyos df399e5
feat(blocks): Add Firecrawl Integration for Web Scraping and Data Ext…
Swiftyos 9b94a7d
chore(backend): Remove deprecated LLM models (#10508)
Bentlybro b56da45
chore(backend): Remove grok-beta llm (#10510)
Bentlybro f542995
fix(frontend): publish agent modal refactor + improvements (#10479)
0ubbe 054c20a
feat(backend): Add new LLM models (#10512)
Bentlybro 9ce857e
fix(backend): we're making loops (#10514)
ntindle 2167625
fix(frontend): publish agent improvements (#10515)
0ubbe 686d811
feat(backend): Agent Executor reliability; make RPC to DB manager dur…
majdyz d323dc2
feat(backend): optimize processing of queues in notif service (#10513)
ntindle e371ef8
feat(frontend): Add main marketplace page tests and page object struc…
Abhi1992002 878f61a
fix(test): Enhance E2E test data script to include featured creators …
Abhi1992002 e632549
feat(backend): Add AI-generated activity status for agent executions …
majdyz 8331dab
feat(backend): Make agent graph execution retriable and its failure v…
majdyz 7705cf2
refactor(frontend): Update data fetching strategy in marketplace main…
Abhi1992002 326c4a9
feat(frontend): Add marketplace creator page tests (#10429)
Abhi1992002 4283798
feat: Avoid Rest & DatabaseManager service serving traffic when the d…
majdyz 69d873d
fix(backend): improve executor reliability and error handling (#10526)
majdyz 1c3fa80
feat(backend): add timeout guard for locked_transaction used for cred…
majdyz 0978f40
feat(frontend): Add reusable infinite scroll component for consistent…
Abhi1992002 5dbc3a7
feat(frontend): Add marketplace agent page tests (#10434)
Abhi1992002 e043e49
fix(frontend) : Update server-side mutator to bypass proxy (#10523)
Abhi1992002 2182c7b
refactor(backend): remove Ayrshare from execution & credentials manag…
Swiftyos e5d3eba
feat(backend): Make Graph & Node Execution Stats Update Durable (#10529)
majdyz b85e820
refactor(platform): remove unused functions and imports (#10535)
majdyz 6f8d0bf
fix(backend/executor): Fix node execution status and output persisten…
majdyz 1e6bd8d
fix(backend/executor): Avoid stopping agent node evaluation when stop…
majdyz 05d4d21
feat(frontend): Show CAPTCHA only in cloud environments (#10543)
Bentlybro 5a5f7f0
fix(backend): Fix Airtable API boolean type casting for string values…
Swiftyos cc6697e
fix(backend): clean up parsing a bit for gmail read (#10555)
ntindle f9b255f
feat(backend/executor): Avoid executor premature termination on infli…
majdyz b935638
Merge branch 'master' of github.com:Significant-Gravitas/AutoGPT into…
majdyz fa2d968
fix(builder): Defer graph validation to backend (#10556)
Pwuts 3fe88b6
refactor(backend): Refactor log client and resource cleanup (#10558)
majdyz 9848266
test(frontend): e2e tests for library page (#10355)
Abhi1992002 4a63fbc
feat(blocks): Add OpenAI's new opensource models (#10559)
Bentlybro c936055
fix(backend): Persist any non interruption error on node execution as…
majdyz 59cc326
Merge branch 'master' of github.com:Significant-Gravitas/AutoGPT into…
majdyz e2af2f4
fix(backend): migrate notification service to fully async to resolve …
majdyz a21711a
feat(backend): migrate AgentExecutor from ProcessPoolExecutor to Thre…
majdyz f172b31
feat(docker): add frontend service to docker-compose with env config …
majdyz 7922e4a
fix(backend): fix lack of event loop on notification manager
majdyz 377b5ef
fix id not preserved through airtable oauth refresh (#10573)
Swiftyos 2d10ac9
feat(blocks): Add GPT-5 models to the platform (#10574)
Bentlybro 7b3ee66
feat(blocks): Add Anthropics new Claude Opus 4.1 model (#10575)
Bentlybro c972f34
Revert "feat(docker): add frontend service to docker-compose with env…
ntindle 178c91d
ref(backend): time/date blocks to support ISO 8601 and custom formats…
ntindle 40601f1
fix(backend): Fix executor running RabbitMQ operations on closed/clos…
majdyz 3c52b75
fix(frontend): marketplace top agents section (#10571)
Abhi1992002 378d256
fix(backend): add graph validation before scheduling recurring jobs (…
majdyz 3131e2e
fix(backend): resolve unclosed HTTP client session errors (#10566)
majdyz e60deba
refactor(backend): separate notification service from scheduler (#10579)
majdyz ac9265c
Merge branch 'master' of github.com:Significant-Gravitas/AutoGPT into…
majdyz 4f208d2
test(frontend): add e2e tests for agent dashboard page (#10572)
Abhi1992002 fbe4329
fix(backend/scheduler): Add more robust health check mechanism for sc…
majdyz e8f897e
feat(backend): standardize service health checks with UnhealthyServic…
majdyz 5338ab5
feat(backend): standardize service health checks with UnhealthyServic…
majdyz de7b6b5
fix(backend): Add timeout on stopping message consumer on manager
majdyz a28b2cf
fix(backend/scheduler): Reconfigure scheduling setting & Add more log…
majdyz 098c12a
feat(backend): Enable Ayrshare TikTok support (#10537)
Swiftyos da16397
feat(blocks): update exa websets implementation (#10521)
Swiftyos c1c5571
feat(blocks): Add 5 additional GitHub Integration blocks (#10561)
Swiftyos b68e490
fix(backend): correct LLM configurations (#10585)
Bentlybro 0116866
feat(backend): add more discord blocks support (#10586)
ntindle d4b5508
fix(backend): resolve scheduler deadlock and improve health checks (#…
majdyz 28d85ad
feat(backend/AM): Integrate AutoMod content moderation (#10539)
Bentlybro f4a7323
fix(frontend): remove state limits from agent activity dropdown
0ubbe e13e0d4
test(frontend): add e2e test for profile form page (#10596)
Abhi1992002 89eb5d1
feat(feature-flag): add LaunchDarkly user context and metadata suppor…
majdyz c168277
feat(platform): add py-spy profiling support
majdyz 6c34790
Revert "feat(platform): add py-spy profiling support"
majdyz abba10b
feat(block): Remove paralel tool-call system prompting (#10627)
majdyz b9c3920
fix(backend): Support dynamic values_#_* fields in CreateDictionaryBl…
ntindle a2059c6
refactor(backend): consolidate LaunchDarkly feature flag management (…
majdyz 793de77
ref(backend): update Gmail blocks to unify architecture and improve e…
ntindle 41f5007
fix(marketplace): loading state (#10629)
0ubbe 34dd218
fix(backend): resolve CloudLoggingHandler deadlock causing scheduler …
majdyz 2d436ca
fix(backend/AM): Fix AutoMod api key issue (#10635)
Bentlybro a135f09
feat(frontend): update settings form (#10628)
0ubbe 0dd30e2
docs(blocks): Add AI/ML API integration guide and update LLM headers …
D1m7asis af7d566
fix(logging): remove uvicorn log config to prevent startup deadlock (…
majdyz 4bfeddc
feat(platform/docker): add frontend service to docker-compose with en…
majdyz b53c373
feat(docker): streamline Supabase to minimal essential services (#10639)
majdyz 21faf1b
fix(backend): update and fix weekly summary email (#10343)
ntindle df20b70
feat(blocks): Enrichlayer integration (#9924)
ntindle 6bb6a08
feat(backend): add support for v0 by Vercel models and credentials (#…
ntindle 03e3e2e
fix(frontend): remove console.log (#10649)
0ubbe af58b31
chore(frontend/deps-dev): Bump the development-dependencies group acr…
dependabot[bot] 2403931
chore(frontend/deps): bump the production-dependencies group across 1…
dependabot[bot] 9158d4b
docs(frontend): update README with Docker instructions (#10648)
0ubbe 6fce3a0
fix(platform): fix admin dashboard credit tool search, pagination, an…
ntindle bf92e7d
hotfix(backend/executor): Fix RabbitMQ channel retry logic in executo…
majdyz 32513b2
Merge branch 'master' of github.com:Significant-Gravitas/AutoGPT into…
majdyz 5d364e1
chore(frontend): Regenerate API client for orval v7.11.2 (#10663)
kcze 7293859
hotfix: reduce scheduler max_workers to match database pool size (#10…
majdyz 542f951
Merge branch 'master' of https://github.com/Significant-Gravitas/Auto…
majdyz 908dcd7
doc(readme): add links to translated README versions (#10659)
dowithless ba65fee
hotfix(backend/executor): Fix propagation of passed-in credentials to…
Pwuts 5da5c2e
Merge branch 'master' into dev
Pwuts 92515b3
feat(platform): add ability to reject approved agents in admin dashboard
ntindle a8feb3c
feat(platform/builder): implement launchdarkly feature flag for block…
Abhi1992002 312cb02
fix(backend/credit): prevent double-application of transactions due t…
majdyz 35bd7f7
fix(frontend/builder): Prevent unnecessary saves before run (#10670)
Pwuts 105d5dc
Merge branch 'master' of https://github.com/Significant-Gravitas/Auto…
ntindle 62032e6
style(frontend): format code and improve dialog titles in approve-rej…
ntindle 75a159d
Revert "style(frontend): format code and improve dialog titles in app…
ntindle 260dd52
Revert "Merge branch 'master' of https://github.com/Significant-Gravi…
ntindle 483c399
Revert "feat(platform): add ability to reject approved agents in admi…
ntindle 650be0d
fix(integration): FirecrawlExtractBlock returns 400 Invalid JSON sche…
Swiftyos e2c33e3
fix(frontend): agent activity cap (#10675)
0ubbe fa14bf4
feat(frontend): add Line Tabs component (#10674)
0ubbe 4abe373
fix(frontend): flaky e2e tests (#10689)
0ubbe ebfbf31
ci(frontend): query generation on dev and ci check (#10417)
0ubbe 38610d1
feat(frontend): add reusable component for new block menu (#10687)
Abhi1992002 c6247f2
feat(frontend): new library agent view setup (#10652)
0ubbe 1105e6c
tests(frontend): e2e tests for api key page (#10683)
Abhi1992002 0c09b0c
chore(api): remove launch darkly feature flags from api key endpoints…
Abhi1992002 2610c45
feat(platform/dashboard): Enable editing for agent submissions (#10545)
Abhi1992002 c2af8c1
Reapply "Merge branch 'master' of https://github.com/Significant-Grav…
Swiftyos c4483fa
Merge branch 'dev'
Swiftyos ccc4d0d
fix(frontend): clear agent name and description on agent file removal…
Abhi1992002 4589b15
chore(libs/deps-dev): Bump ruff from 0.12.3 to 0.12.4 in /autogpt_pla…
dependabot[bot] f4538d6
build(backend): Change base image to `debian:13-slim` w/ Python 3.13 …
Pwuts 68cd1cb
feat(platform): Enhance GitHub Copilot agent setup with CI-aligned en…
Copilot 7c908c1
feat(blocks): Add DataForSEO keyword research blocks (#10711)
Swiftyos fa5ff9c
feat(docs): Update Ollama setup docs with new methods (#10693)
Bentlybro 2848e62
feat(backend): Add BaaS integration blocks (#10350)
Swiftyos aa256f2
feat(platform/library): Infinite scroll in Agent Runs list (#10709)
Pwuts bd97727
feat(platform): add ability to reject approved agents in admin dashbo…
ntindle 5502256
feat(backend): DiscordGetCurrentUserBlock to fetch authenticated user…
ntindle a54bed6
fix(frontend): filter credentials to ones that are supported (#10725)
ntindle 61f17e5
feat(scheduler): Remove Schedule "Every Minute" Option (#10706)
Bentlybro 476bfc6
feat(backend): add store meta blocks (#10633)
ntindle 8a9c165
feat(frontend): new run modal components (#10729)
0ubbe a9530b7
fix(frontend): Remove old experience alert (#10730)
Swiftyos e0520f5
fix(frontend): Validate and sanitize cron expressions for scheduler A…
ntindle 5b12e02
feat(AutoMod): add ``moderation id`` to moderation message (#10728)
Bentlybro 76090f0
feat(backend,frontend): Send applicant email on review response (#10718)
ntindle 2bb8e91
feat(backend): Add user timezone support to backend (#10707)
ntindle 890bb3b
feat(backend): implement low balance and insufficient funds notificat…
ntindle 1aa7e10
feat(AM): fix moderation id message (#10733)
Bentlybro 469b1fc
fix(blocks): handle invalid or empty response from MusicGen model (#1…
mitanshhh bc43d05
feat(backend): Ensure database manager clients only include methods n…
Copilot da585a3
fix(frontend): Propagate API auth errors to original requestor (#10716)
Pwuts 8a68e03
feat(backend): Blocks Menu redesign backend (#10128)
kcze c0172c9
fix(backend/executor): prevent infinite requeueing of malformed messa…
majdyz fecbd30
fix(frontend/library): Fix new runs not appearing in list (#10750)
Pwuts c682148
fix(frontend): add min-width to agent run draft view component (#10731)
Abhi1992002 533d2d0
refactor(frontend): Revamp creator page data fetching and structure (…
Abhi1992002 44d7393
feat(platform/blocks): Added stagehand integration (#10751)
Swiftyos 3718b94
feat(blocks): Add Ideogram V3 model (#10752)
Bentlybro b713093
Merge master into dev to tidy up merge history (#10753)
Swiftyos 82618ae
Merge remote-tracking branch 'origin/dev'
Swiftyos 9be5db5
fix: classic/benchmark/frontend/package.json to reduce vulnerabilities
snyk-bot File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,11 +9,13 @@ | |
|
|
||
| # Platform - Backend | ||
| !autogpt_platform/backend/backend/ | ||
| !autogpt_platform/backend/test/e2e_test_data.py | ||
| !autogpt_platform/backend/migrations/ | ||
| !autogpt_platform/backend/schema.prisma | ||
| !autogpt_platform/backend/pyproject.toml | ||
| !autogpt_platform/backend/poetry.lock | ||
| !autogpt_platform/backend/README.md | ||
| !autogpt_platform/backend/.env | ||
|
|
||
| # Platform - Market | ||
| !autogpt_platform/market/market/ | ||
|
|
@@ -26,13 +28,15 @@ | |
| # Platform - Frontend | ||
| !autogpt_platform/frontend/src/ | ||
| !autogpt_platform/frontend/public/ | ||
| !autogpt_platform/frontend/scripts/ | ||
| !autogpt_platform/frontend/package.json | ||
| !autogpt_platform/frontend/pnpm-lock.yaml | ||
| !autogpt_platform/frontend/tsconfig.json | ||
| !autogpt_platform/frontend/README.md | ||
| ## config | ||
| !autogpt_platform/frontend/*.config.* | ||
| !autogpt_platform/frontend/.env.* | ||
| !autogpt_platform/frontend/.env | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
|
|
||
| # Classic - AutoGPT | ||
| !classic/original_autogpt/autogpt/ | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,244 @@ | ||
| # GitHub Copilot Instructions for AutoGPT | ||
|
|
||
| This file provides comprehensive onboarding information for GitHub Copilot coding agent to work efficiently with the AutoGPT repository. | ||
|
|
||
| ## Repository Overview | ||
|
|
||
| **AutoGPT** is a powerful platform for creating, deploying, and managing continuous AI agents that automate complex workflows. This is a large monorepo (~150MB) containing multiple components: | ||
|
|
||
| - **AutoGPT Platform** (`autogpt_platform/`) - Main focus: Modern AI agent platform (Polyform Shield License) | ||
| - **Classic AutoGPT** (`classic/`) - Legacy agent system (MIT License) | ||
| - **Documentation** (`docs/`) - MkDocs-based documentation site | ||
| - **Infrastructure** - Docker configurations, CI/CD, and development tools | ||
|
|
||
| **Primary Languages & Frameworks:** | ||
| - **Backend**: Python 3.10-3.13, FastAPI, Prisma ORM, PostgreSQL, RabbitMQ | ||
| - **Frontend**: TypeScript, Next.js 15, React, Tailwind CSS, Radix UI | ||
| - **Development**: Docker, Poetry, pnpm, Playwright, Storybook | ||
|
|
||
| ## Build and Validation Instructions | ||
|
|
||
| ### Essential Setup Commands | ||
|
|
||
| **Always run these commands in the correct directory and in this order:** | ||
|
|
||
| 1. **Initial Setup** (required once): | ||
| ```bash | ||
| # Clone and enter repository | ||
| git clone <repo> && cd AutoGPT | ||
|
|
||
| # Start all services (database, redis, rabbitmq, clamav) | ||
| cd autogpt_platform && docker compose --profile local up deps --build --detach | ||
| ``` | ||
|
|
||
| 2. **Backend Setup** (always run before backend development): | ||
| ```bash | ||
| cd autogpt_platform/backend | ||
| poetry install # Install dependencies | ||
| poetry run prisma migrate dev # Run database migrations | ||
| poetry run prisma generate # Generate Prisma client | ||
| ``` | ||
|
|
||
| 3. **Frontend Setup** (always run before frontend development): | ||
| ```bash | ||
| cd autogpt_platform/frontend | ||
| pnpm install # Install dependencies | ||
| ``` | ||
|
|
||
| ### Runtime Requirements | ||
|
|
||
| **Critical:** Always ensure Docker services are running before starting development: | ||
| ```bash | ||
| cd autogpt_platform && docker compose --profile local up deps --build --detach | ||
| ``` | ||
|
|
||
| **Python Version:** Use Python 3.11 (required; managed by Poetry via pyproject.toml) | ||
| **Node.js Version:** Use Node.js 21+ with pnpm package manager | ||
|
|
||
| ### Development Commands | ||
|
|
||
| **Backend Development:** | ||
| ```bash | ||
| cd autogpt_platform/backend | ||
| poetry run serve # Start development server (port 8000) | ||
| poetry run test # Run all tests (requires ~5 minutes) | ||
| poetry run pytest path/to/test.py # Run specific test | ||
| poetry run format # Format code (Black + isort) - always run first | ||
| poetry run lint # Lint code (ruff) - run after format | ||
| ``` | ||
|
|
||
| **Frontend Development:** | ||
| ```bash | ||
| cd autogpt_platform/frontend | ||
| pnpm dev # Start development server (port 3000) - use for active development | ||
| pnpm build # Build for production (only needed for E2E tests or deployment) | ||
| pnpm test # Run Playwright E2E tests (requires build first) | ||
| pnpm test-ui # Run tests with UI | ||
| pnpm format # Format and lint code | ||
| pnpm storybook # Start component development server | ||
| ``` | ||
|
|
||
| ### Testing Strategy | ||
|
|
||
| **Backend Tests:** | ||
| - **Block Tests**: `poetry run pytest backend/blocks/test/test_block.py -xvs` (validates all blocks) | ||
| - **Specific Block**: `poetry run pytest 'backend/blocks/test/test_block.py::test_available_blocks[BlockName]' -xvs` | ||
| - **Snapshot Tests**: Use `--snapshot-update` when output changes, always review with `git diff` | ||
|
|
||
| **Frontend Tests:** | ||
| - **E2E Tests**: Always run `pnpm dev` before `pnpm test` (Playwright requires running instance) | ||
| - **Component Tests**: Use Storybook for isolated component development | ||
|
|
||
| ### Critical Validation Steps | ||
|
|
||
| **Before committing changes:** | ||
| 1. Run `poetry run format` (backend) and `pnpm format` (frontend) | ||
| 2. Ensure all tests pass in modified areas | ||
| 3. Verify Docker services are still running | ||
| 4. Check that database migrations apply cleanly | ||
|
|
||
| **Common Issues & Workarounds:** | ||
| - **Prisma issues**: Run `poetry run prisma generate` after schema changes | ||
| - **Permission errors**: Ensure Docker has proper permissions | ||
| - **Port conflicts**: Check the `docker-compose.yml` file for the current list of exposed ports. You can list all mapped ports with: | ||
| - **Test timeouts**: Backend tests can take 5+ minutes, use `-x` flag to stop on first failure | ||
|
|
||
| ## Project Layout & Architecture | ||
|
|
||
| ### Core Architecture | ||
|
|
||
| **AutoGPT Platform** (`autogpt_platform/`): | ||
| - `backend/` - FastAPI server with async support | ||
| - `backend/backend/` - Core API logic | ||
| - `backend/blocks/` - Agent execution blocks | ||
| - `backend/data/` - Database models and schemas | ||
| - `schema.prisma` - Database schema definition | ||
| - `frontend/` - Next.js application | ||
| - `src/app/` - App Router pages and layouts | ||
| - `src/components/` - Reusable React components | ||
| - `src/lib/` - Utilities and configurations | ||
| - `autogpt_libs/` - Shared Python utilities | ||
| - `docker-compose.yml` - Development stack orchestration | ||
|
|
||
| **Key Configuration Files:** | ||
| - `pyproject.toml` - Python dependencies and tooling | ||
| - `package.json` - Node.js dependencies and scripts | ||
| - `schema.prisma` - Database schema and migrations | ||
| - `next.config.mjs` - Next.js configuration | ||
| - `tailwind.config.ts` - Styling configuration | ||
|
|
||
| ### Security & Middleware | ||
|
|
||
| **Cache Protection**: Backend includes middleware preventing sensitive data caching in browsers/proxies | ||
| **Authentication**: JWT-based with Supabase integration | ||
| **User ID Validation**: All data access requires user ID checks - verify this for any `data/*.py` changes | ||
|
|
||
| ### Development Workflow | ||
|
|
||
| **GitHub Actions**: Multiple CI/CD workflows in `.github/workflows/` | ||
| - `platform-backend-ci.yml` - Backend testing and validation | ||
| - `platform-frontend-ci.yml` - Frontend testing and validation | ||
| - `platform-fullstack-ci.yml` - End-to-end integration tests | ||
|
|
||
| **Pre-commit Hooks**: Run linting and formatting checks | ||
| **Conventional Commits**: Use format `type(scope): description` (e.g., `feat(backend): add API`) | ||
|
|
||
| ### Key Source Files | ||
|
|
||
| **Backend Entry Points:** | ||
| - `backend/backend/server/server.py` - FastAPI application setup | ||
| - `backend/backend/data/` - Database models and user management | ||
| - `backend/blocks/` - Agent execution blocks and logic | ||
|
|
||
| **Frontend Entry Points:** | ||
| - `frontend/src/app/layout.tsx` - Root application layout | ||
| - `frontend/src/app/page.tsx` - Home page | ||
| - `frontend/src/lib/supabase/` - Authentication and database client | ||
|
|
||
| **Protected Routes**: Update `frontend/lib/supabase/middleware.ts` when adding protected routes | ||
|
|
||
| ### Agent Block System | ||
|
|
||
| Agents are built using a visual block-based system where each block performs a single action. Blocks are defined in `backend/blocks/` and must include: | ||
| - Block definition with input/output schemas | ||
| - Execution logic with proper error handling | ||
| - Tests validating functionality | ||
|
|
||
| ### Database & ORM | ||
|
|
||
| **Prisma ORM** with PostgreSQL backend including pgvector for embeddings: | ||
| - Schema in `schema.prisma` | ||
| - Migrations in `backend/migrations/` | ||
| - Always run `prisma migrate dev` and `prisma generate` after schema changes | ||
|
|
||
| ## Environment Configuration | ||
|
|
||
| ### Configuration Files Priority Order | ||
| 1. **Backend**: `/backend/.env.default` → `/backend/.env` (user overrides) | ||
| 2. **Frontend**: `/frontend/.env.default` → `/frontend/.env` (user overrides) | ||
| 3. **Platform**: `/.env.default` (Supabase/shared) → `/.env` (user overrides) | ||
| 4. Docker Compose `environment:` sections override file-based config | ||
| 5. Shell environment variables have highest precedence | ||
|
|
||
| ### Docker Environment Setup | ||
| - All services use hardcoded defaults (no `${VARIABLE}` substitutions) | ||
| - The `env_file` directive loads variables INTO containers at runtime | ||
| - Backend/Frontend services use YAML anchors for consistent configuration | ||
| - Copy `.env.default` files to `.env` for local development customization | ||
|
|
||
| ## Advanced Development Patterns | ||
|
|
||
| ### Adding New Blocks | ||
| 1. Create file in `/backend/backend/blocks/` | ||
| 2. Inherit from `Block` base class with input/output schemas | ||
| 3. Implement `run` method with proper error handling | ||
| 4. Generate block UUID using `uuid.uuid4()` | ||
| 5. Register in block registry | ||
| 6. Write tests alongside block implementation | ||
| 7. Consider how inputs/outputs connect with other blocks in graph editor | ||
|
|
||
| ### API Development | ||
| 1. Update routes in `/backend/backend/server/routers/` | ||
| 2. Add/update Pydantic models in same directory | ||
| 3. Write tests alongside route files | ||
| 4. For `data/*.py` changes, validate user ID checks | ||
| 5. Run `poetry run test` to verify changes | ||
|
|
||
| ### Frontend Development | ||
| 1. Components in `/frontend/src/components/` | ||
| 2. Use existing UI components from `/frontend/src/components/ui/` | ||
| 3. Add Storybook stories for component development | ||
| 4. Test user-facing features with Playwright E2E tests | ||
| 5. Update protected routes in middleware when needed | ||
|
|
||
| ### Security Guidelines | ||
| **Cache Protection Middleware** (`/backend/backend/server/middleware/security.py`): | ||
| - Default: Disables caching for ALL endpoints with `Cache-Control: no-store, no-cache, must-revalidate, private` | ||
| - Uses allow list approach for cacheable paths (static assets, health checks, public pages) | ||
| - Prevents sensitive data caching in browsers/proxies | ||
| - Add new cacheable endpoints to `CACHEABLE_PATHS` | ||
|
|
||
| ### CI/CD Alignment | ||
| The repository has comprehensive CI workflows that test: | ||
| - **Backend**: Python 3.11-3.13, services (Redis/RabbitMQ/ClamAV), Prisma migrations, Poetry lock validation | ||
| - **Frontend**: Node.js 21, pnpm, Playwright with Docker Compose stack, API schema validation | ||
| - **Integration**: Full-stack type checking and E2E testing | ||
|
|
||
| Match these patterns when developing locally - the copilot setup environment mirrors these CI configurations. | ||
|
|
||
| ## Collaboration with Other AI Assistants | ||
|
|
||
| This repository is actively developed with assistance from Claude (via CLAUDE.md files). When working on this codebase: | ||
| - Check for existing CLAUDE.md files that provide additional context | ||
| - Follow established patterns and conventions already in the codebase | ||
| - Maintain consistency with existing code style and architecture | ||
| - Consider that changes may be reviewed and extended by both human developers and AI assistants | ||
|
|
||
| ## Trust These Instructions | ||
|
|
||
| These instructions are comprehensive and tested. Only perform additional searches if: | ||
| 1. Information here is incomplete for your specific task | ||
| 2. You encounter errors not covered by the workarounds | ||
| 3. You need to understand implementation details not covered above | ||
|
|
||
| For detailed platform development patterns, refer to `autogpt_platform/CLAUDE.md` and `AGENTS.md` in the repository root. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Including the
.envfile in the Docker build context by negating the ignore rule (!) can be a security risk. If this file contains secrets, they will be exposed to the build environment and could potentially be leaked into the Docker image layers. It's safer to use Docker build arguments or secrets management tools to pass secrets during the build process.