mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-09 14:25:25 -05:00
142fa2af16642bd0ee4336c2059506c63a1bffdb
6555 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
142fa2af16 |
chore(backend/deps): bump the production-dependencies group across 1 directory with 20 updates (#9728)
Bumps the production-dependencies group with 20 updates in the /autogpt_platform/backend directory: | Package | From | To | | --- | --- | --- | | [aio-pika](https://github.com/mosquito/aio-pika) | `9.5.4` | `9.5.5` | | [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.45.2` | `0.49.0` | | [discord-py](https://github.com/Rapptz/discord.py) | `2.4.0` | `2.5.2` | | [e2b-code-interpreter](https://github.com/e2b-dev/code-interpreter) | `1.0.5` | `1.1.1` | | [fastapi](https://github.com/fastapi/fastapi) | `0.115.8` | `0.115.12` | | [flake8](https://github.com/pycqa/flake8) | `7.1.1` | `7.2.0` | | [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.160.0` | `2.166.0` | | [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.0.0` | `3.1.0` | | [groq](https://github.com/groq/groq-python) | `0.18.0` | `0.20.0` | | [jinja2](https://github.com/pallets/jinja) | `3.1.5` | `3.1.6` | | [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.9.0` | `9.10.0` | | [mem0ai](https://github.com/mem0ai/mem0) | `0.1.48` | `0.1.80` | | [openai](https://github.com/openai/openai-python) | `1.61.1` | `1.69.0` | | [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.11.1` | | [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.7.1` | `2.8.1` | | [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.3.5` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.1.0` | | [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.20.0` | `2.24.1` | | [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.37` | `2.0.40` | | [supabase](https://github.com/supabase/supabase-py) | `2.13.0` | `2.15.0` | Updates `aio-pika` from 9.5.4 to 9.5.5 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mosquito/aio-pika/blob/master/CHANGELOG.md">aio-pika's changelog</a>.</em></p> <blockquote> <h2>9.5.5</h2> <ul> <li>Replace WeakSet with set for robust channels tracking <a href="https://redirect.github.com/mosquito/aio-pika/issues/666">#666</a> by shushpanov</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
1b3c465f0d |
chore(backend/deps): bump psutil from 6.1.1 to 7.0.0 in /autogpt_platform/backend (#9686)
Bumps [psutil](https://github.com/giampaolo/psutil) from 6.1.1 to 7.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/giampaolo/psutil/blob/master/HISTORY.rst">psutil's changelog</a>.</em></p> <blockquote> <h1>7.0.0</h1> <p>2025-02-13</p> <p><strong>Enhancements</strong></p> <ul> <li>669_, [Windows]: <code>net_if_addrs()</code>_ also returns the <code>broadcast</code> address instead of <code>None</code>.</li> <li>2480_: Python 2.7 is no longer supported. Latest version supporting Python 2.7 is psutil 6.1.X. Install it with: <code>pip2 install psutil==6.1.*</code>.</li> <li>2490_: removed long deprecated <code>Process.memory_info_ex()</code> method. It was deprecated in psutil 4.0.0, released 8 years ago. Substitute is <code>Process.memory_full_info()</code>.</li> </ul> <p><strong>Bug fixes</strong></p> <ul> <li>2496_, [Linux]: Avoid segfault (a cPython bug) on <code>Process.memory_maps()</code> for processes that use hundreds of GBs of memory.</li> <li>2502_, [macOS]: <code>virtual_memory()</code>_ now relies on <code>host_statistics64</code> instead of <code>host_statistics</code>. This is the same approach used by <code>vm_stat</code> CLI tool, and should grant more accurate results.</li> </ul> <p><strong>Compatibility notes</strong></p> <ul> <li>2480_: Python 2.7 is no longer supported.</li> <li>2490_: removed long deprecated <code>Process.memory_info_ex()</code> method.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f23b7543b3 |
feat: different signup error message (#9704)
<!-- Clearly explain the need for these changes: --> We keep showing local users error messages that are just not relevant ### Changes 🏗️ Swaps the error messaging logic to be dependent on the behavior of the specific platform they are on <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Test with auth container down (simulates incorrect setup) and validate that error message is shown - [x] Try normal path |
||
|
|
77b18b00c7 |
feat(frontend): Implement UI for Agent Input subtypes (#9700)
- Follow-up to #9657 <img width="280" alt="image" src="https://github.com/user-attachments/assets/2f3cd683-db63-485f-8914-5654c34f1a4c" /> <img width="520" alt="image" src="https://github.com/user-attachments/assets/de7e7cb9-61d4-4071-aea8-393ff5200c54" /> ### Changes 🏗️ * Implement the input UI for Agent Input subtypes. * Refactor node-input-component, extra out data type decision logic, share it with runner/library input. * Add `format` field for short-text, long-text, and mediafile type. * Unify UI data type enum. Out of scope: - Styling for these inputs. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Use all the available agent input subtypes in an agent and run it --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
dbb85baf4c |
fix(frontend): Fix date picker ux (#9715)
- fix #9315 What have I changed? - Allowed the user to select the month and year using a dropdown. - Removed the "Prev" and "Next" buttons for month navigation. - Fixed the "Today" date design. <img width="847" alt="Screenshot 2025-03-28 at 6 28 20 PM" src="https://github.com/user-attachments/assets/740bddfd-e0a2-4799-8325-d52dec31a512" /> --------- Co-authored-by: Bently <tomnoon9@gmail.com> |
||
|
|
7440f71527 |
fix(frontend): Sort agents by last edited date in publish dialog (#9724)
- fix #9189 Currently, the list of agents on the "Publish Agent" dialog is random. I have sorted them so that the latest edited ones appear first, similar to the library page. Co-authored-by: Bently <tomnoon9@gmail.com> |
||
|
|
c6089bb6a6 |
fix(frontend): Remove animation from search bar on library agent page (#9707)
- fix #9523 Removing the animation from the input search bar and adding the same behavior as the Google search bar.  --------- Co-authored-by: Bently <tomnoon9@gmail.com> |
||
|
|
c71d06a082 |
fix(frontend): Add extra padding bottom on library agent page (#9706)
- fix #9705 Adding extra padding so the banner doesn’t cut below the cards.  --------- Co-authored-by: Bently <tomnoon9@gmail.com> |
||
|
|
babcb41f43 |
refactor(libs): Remove print statements (#9718)
Remove the debug print statements in the logging module. Every time an app process is started, it prints: ``` Console logging enabled ``` or similar, depending on the logging config. |
||
|
|
abcacacc06 | fix(ci): Update lockfiles | ||
|
|
1f2af18388 |
feat(platform/library): Real-time execution updates (#9695)
- Resolves #8782 ### Changes 🏗️ - feat(frontend/library): Use WS subscription to get real-time execution updates - feat(backend/ws_api): Send `GraphExecutionUpdate` on all new agent I/O - Include agent I/O in `GraphExecutionUpdate` (by subclassing `GraphExecution`) - Add `IO_BLOCK_IDs` to `.blocks.io` - feat(backend/ws_api): Add `subscribe_graph_executions` method to WebSocket API - feat(backend): Withhold `GraphExecution.node_executions` from requests by non-graph-owners - Split `GraphExecutionWithNodes` off of `GraphExecution` - Use `GraphExecution` as much as possible, as it's a much cheaper query than `GraphExecutionWithNodes` - refactor(frontend): Make `GraphExecution.node_executions` optional - fix(frontend): Parse dates in responses of `/executions` and `/graphs/{graph_id}/executions` - refactor(frontend/library): Move sorting logic for agent runs list from `AgentRunsPage` to `AgentRunsSelectorList` - refactor(backend/ws_api): Clean up message handler implementations - refactor(backend/tests): Use `.data.execution.get_graph_execution(..)` directly instead of `AgentServer.test_get_graph_run_results(..)` Out-of-scope changes: - refactor(backend): Remove unnecessary query include from `.data.graph.get_graph_metadata(..)` Demo: https://github.com/user-attachments/assets/8ea6225d-7334-49cb-a522-83f153d840da ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Go to `/library/agents/[id]` for an agent with inputs and outputs - Draft and run a new run - [x] -> should appear in the list of runs at the top - [x] -> should be selected as soon as the request finishes - [x] -> new I/O should appear as it is generated - [x] -> status should be updated in real-time (both in list and in adjacent details view) - Click "Run again" - [x] -> should appear in the list of runs at the top - [x] -> should be selected as soon as the request finishes - [x] -> new I/O should appear as it is generated - [x] -> status should be updated in real-time (both in list and in adjacent details view) - Click "Open in builder" under "Agent actions"; run the agent from the builder - [x] -> should work the same as before - [x] -> node I/O should appear in real-time - [x] -> node execution statuses should update in real-time |
||
|
|
8974a0f9e5 |
fix(platform): Fixs to allow formatting and tests to work from sub command (#9703)
This pull request includes several changes to improve the backend functionality and configuration of the `autogpt_platform`. The most important changes involve adding a RabbitMQ service for testing, enhancing logging configuration, updating the linter script to handle errors gracefully, and modifying test configurations. Backend configuration improvements: * [`autogpt_platform/backend/docker-compose.test.yaml`](diffhunk://#diff-f6a211ff1c6d96d19adb5641ee287258a6af8d72a99e33dafb4a334094205a43R29-R43): Added RabbitMQ service configuration for testing, including health checks and environment variables. * [`autogpt_platform/backend/.env.example`](diffhunk://#diff-62020caf1b9a15e0e3b9b3b1b69d5f6464bf7643f62354cbbaabf755d57b6064R191-R192): Added a section delimiter for optional API keys for use in finding the optional keys end when auto generating integrations. Error handling and logging enhancements: * [`autogpt_platform/backend/linter.py`](diffhunk://#diff-0787e3ef718ac9963df64d9ab1d8e7a3b35dc4ab0cb874c65da6c2901e1e4991R3): Updated the `run` function to handle `subprocess.CalledProcessError` exceptions and print error output to `stderr` and prevent raising a stack trace when it should not. [[1]](diffhunk://#diff-0787e3ef718ac9963df64d9ab1d8e7a3b35dc4ab0cb874c65da6c2901e1e4991R3) [[2]](diffhunk://#diff-0787e3ef718ac9963df64d9ab1d8e7a3b35dc4ab0cb874c65da6c2901e1e4991L13-R23) Testing configuration updates: * [`autogpt_platform/backend/pyproject.toml`](diffhunk://#diff-26ebebd91da791c6484f07d9d91484a66f52836708f5294b24365603438b880cR111): Added `asyncio_default_fixture_loop_scope` to pytest configuration for better control over asyncio fixtures. * [`autogpt_platform/backend/run_tests.py`](diffhunk://#diff-f09930577243a4ef5213bf6191a3c500a4b8d3dcfee2d4b452cf7ce66b3c494fL55): Removed the `postgres-test` service from the test setup script as we need all of docker services up for the tests to run. |
||
|
|
071ae3cb1f |
feat(backend): Make agent store data to be publicly accessible by non authenticated user (#9710)
This PR publicly exposes all the agents listed in the store to the internet. ### Changes 🏗️ Remove the auth requirement for an agent to download the agent. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Accessing `http://localhost:8006/api/store/download/agents/{agentId}` without authorization key. |
||
|
|
c6703dd891 |
fix(backend): Skip updating status of already terminated graph (#9696)
When we are cancelling a running graph execution, it's possible that the graph is already terminated. We need to allow this process to proceed and update the rest of its node execution to terminate. ### Changes 🏗️ Instead of erroring out the graph execution status update, we proceed on updating the node execution status. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Stop an already terminated graphautogpt-platform-beta-v0.6.1 |
||
|
|
6e0af09c3d | Merge branch 'master' into dev | ||
|
|
9077323b89 | fix(backend): Filter Redis messages by user ID (#9697) | ||
|
|
33299070d3 |
feat(frontend/library): Add toast on agent execution request failure (#9689)
Currently, when an agent execution fails to be executed, the front-end does not display any feedback to the user. The scope of this change is providing that. ### Changes 🏗️ * Extracted `useToastOnFail` from `credits` page into a unified helper method. * Uses `useToastOnFail` on agent execution requests on library pages. <img width="1000" alt="image" src="https://github.com/user-attachments/assets/2daa0597-eb93-457d-8887-0f00c4db89ac" /> <img width="1000" alt="image" src="https://github.com/user-attachments/assets/1a541c98-fb95-424f-8ffe-972332b3ce01" /> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run agent with invalid input <details> <summary>Example test plan</summary> - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly </details> #### For configuration changes: - [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**) <details> <summary>Examples of configuration changes</summary> - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases </details> --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
87f87500cb |
refactor(backend): Improve error message on unmatched webhook ingress (#9694)
- Resolves #9693 ### Changes 🏗️ - Catch the DB error and log a descriptive error message - Add `NotFoundError` to `backend.util.exceptions` ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [ ] ~~I have tested my changes according to the test plan:~~ - Low-stakes change, high effort to test: we'll see if it works from the production logs |
||
|
|
1162ec1474 |
refactor(backend): Reorganize & clean up execution update system (#9663)
- Prep work for #8782 - Prep work for #8779 ### Changes 🏗️ - refactor(platform): Differentiate graph/node execution events - fix(platform): Subscribe to execution updates by `graph_exec_id` instead of `graph_id`+`graph_version` - refactor(backend): Move all execution related models and functions from `.data.graph` to `.data.execution` - refactor(backend): Reorganize & refactor `.data.execution` - fix(libs): Remove `load_dotenv` in `.auth.config` to fix test config issues - dx: Bump version of `black` in pre-commit config to v24.10.0 to match poetry.lock - Other minor refactoring in both frontend and backend ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Run an agent in the builder - [x] -> works normally, node I/O is updated in real time - Run an agent in the library - [x] -> works normally --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
37f212e950 | Stop migrating models | ||
|
|
58bb4f92b7 |
feat(platform): Onboarding updates (#9636)
This is a follow up to https://github.com/Significant-Gravitas/AutoGPT/pull/9511 fixing some issues and updating onboarding. ### Changes 🏗️ - Update `UserOnboarding` data - Update schema and add migration - Change `step` in `UserOnboarding` to `completedSteps` array with `OnboardingStep` enum - Remove `isCompleted`: this is now inferred from `completedSteps` values - Don't onboard if <2 marketplace agents; that prevents self-host onboarding - Add endpoints: - `is_onboarding_enabled`: to check if users should be onboarded (not if they finished onboarding); now check if there are at least 2 marketplace agents - `get_store_agent`: returns `StoreAgentDetails` for given `store_listing_version_id` - `get_graph_meta_by_store_listing_version_id`: returns `GraphMeta` - Add agent to Library just before running it and not when chosen and remove code that was responsible for removing agent that wasn't run - Move onboarding to `OnboardingProvider` (it'll be needed globally for Phase 2) - Multiple fixes, renames for clarity ### Checklist 📋 - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Don't onboard if less than 2 marketplace agents - [x] Avoid non-input and credentials agents - [x] Onboarding works and can be finished - [x] Onboarding resumes - [x] Onboarding agent runs correctly --------- Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co> |
||
|
|
b7ca8d9c30 |
feat(backend): Migrate old models in existing agents (#9452)
Some existing nodes use models that no longer exist as values on `LlmModel` enum. ### Changes 🏗️ - Update models for all blocks with `LlmModel` fields that do not exist in `LlmModel` enum to `gpt-4o`, directly in `AgentNode->constantInput` db column, on server startup ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Updates wrong models to `gpt-4o` for all affected `AgentNode`s - [x] Doesn't update correct models - [x] Doesn't insert model when unnecessary - [x] Doesn't break other values in jsonb |
||
|
|
66ebe4376e |
fix(backend): Increase block request security; Prevent DNS rebinding & open redirect attack (#9688)
The current block web requests utility has a logic to avoid the system
firing into blocklisted IPs.
However, the current logic is still prone to a few security issues:
* DNS rebinding attack: due to the lack of guarantee on the used IP not
being changed during the IP checking and firing step.
* Open redirect: due to the request sensitive request headers are still
being propagated throughout the web redirect.
### Changes 🏗️
* Uses IP pinning to request the web.
* Strip `Authorization`, `Proxy-Authorization`, `Cookie` upon web
redirects.
### Checklist 📋
#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
- [x] Test the web request block, add more tests with different
validation scenarios.
(cherry picked from commit
|
||
|
|
f0df4c9174 |
fix(backend): Increase block request security; Prevent DNS rebinding & open redirect attack (#9688)
The current block web requests utility has a logic to avoid the system firing into blocklisted IPs. However, the current logic is still prone to a few security issues: * DNS rebinding attack: due to the lack of guarantee on the used IP not being changed during the IP checking and firing step. * Open redirect: due to the request sensitive request headers are still being propagated throughout the web redirect. ### Changes 🏗️ * Uses IP pinning to request the web. * Strip `Authorization`, `Proxy-Authorization`, `Cookie` upon web redirects. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Test the web request block, add more tests with different validation scenarios. |
||
|
|
2e9ca70ce2 | Update CONTRIBUTING.md | ||
|
|
4ca1a453c9 |
refactor(backend): Defer loading of .blocks and .integrations.webhooks on module init (#9664)
Currently, an import statement like `from backend.blocks.basic import AgentInputBlock` will initialize `backend.blocks` and thereby load all other blocks. This has quite high potential to cause circular import issues, and it's bad for performance in cases where we don't want to load all blocks (yet). The same goes for `backend.integrations.webhooks`. ### Changes 🏗️ - Change `__init__.py` of `backend.blocks` and `backend.integrations.webhooks` to cached loader functions rather than init-time code - Change type of `BlockWebhookConfig.provider` to `ProviderName` <!-- test edit to check that this doesn't break anything --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Set up and use an agent with a webhook-triggered block --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
6f48515863 |
fix(blocks): Disable and provide toggle for Agent Input Block subtypes (#9677)
Agent Input Block subtypes do not have a proper input UI yet on the library & run input page. ### Changes 🏗️ Provide a toggle to enable these blocks and set it to False by default. ### Checklist 📋 #### For code changes: - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [ ] ... <details> <summary>Example test plan</summary> - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly </details> #### For configuration changes: - [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**) <details> <summary>Examples of configuration changes</summary> - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases </details> |
||
|
|
7ba566e768 |
feat(frontend/backend): admin agent review table (#9634)
<!-- Clearly explain the need for these changes: --> We need an admin agent approval UI for handling the submissions to the marketplace ### Changes 🏗️ - Adds routes to the admin routes list - Fixes the db query for submitting new versions of existing agents - Add models for responses that include version details - add the admin pages for agent - Adds the Admin Agent Data Table - Add all the new endpoints to the client.ts Models changes - convert the Submission status to an enum - remove is_approved from models which was left incorrectly - Add StoreListingWithVersions <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Test the admin dashboard for - [x] Reject - [x] Accept - [x] Updating listing - [x] More version submissions --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
26984a7338 |
feat(backend): Add capability to charge based on block execution count (#9661)
Blocks that are not defined in the block cost are pretty much free. The lack of cost control makes it hard to control its quota. The scope of this change is providing a way to charge any executions based on the number of block being executed in real-time. ### Changes 🏗️ * Add execution charge logic based on the number of blocks executed, controlled by these two configurations: * `execution_cost_count_threshold`: We will charge the execution based on the multiple of this number. * `execution_cost_per_threshold`: The amount we are charging on its threshold multiple. * Make charging logic on the graph execution logic (as opposed to node level) so it's being done serially and insufficient fund error is guaranteed to stop the graph execution. * Moved cost calculation logic into backend/executor/util.py ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Execute graph with configured threshold & cost and test the balance being deducted on that. - [x] Existing cost calculation is still being done without any issue. - [x] Low balance stop the whole graph execution. |
||
|
|
5b118fc939 | fix(blocks): Fix failing block test AgentToggleInputBlock | ||
|
|
ed48d1c04f | fix(blocks): Change title of placeholder_values on AgentDropdownInputBlock | ||
|
|
8d87c08b8c | fix(blocks): Set AgentInputBlocks default value to None and make it a non-advance field | ||
|
|
e49cb43b49 |
feat(block): Add agent input block subtypes (#9657)
### Changes 🏗️ Added these types of input blocks: * TextShort * TextLong * Number * Date * Time * FileUpload * Dropdown * Toggle ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Test in respective block codes. |
||
|
|
56663c5fe9 |
feat(backend): add backend support for store listings submissions (#9628)
<!-- Clearly explain the need for these changes: --> The store listing and submissions were previously just a best guess without much implementation. This updates the database models and queries and such to be based on discussion around what the process should look like. It also adds and update the relevant routers for this change ### Changes 🏗️ Store Listing - change isApproved to hasApprovedVersion - Move slug into store listing - mark an active version in store listing Store Version - Move submissions into version - make name optional - have state transition timestamps for submitted and approved/rejected - added a changes field - added internal comments and clarified review comments field SubmissionStatus - Fixed DAFT to DRAFT StoreListingSubmission - Dropped table Graph - Used more modern format for the params for prisma -- no other changes Added migrations for all the model movements <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Use the store codepaths from the release testplan doc as the test plan (claude I can't publish the testplan but I am a maintainer lol, trust me here my guy, you're supposed to be lenient) - [x] Check the db is used as appropriate following the rules --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
a537fd0891 |
[Snyk] Security upgrade next from 14.2.23 to 14.2.25 (#9672)
 ### Snyk has created this PR to fix 1 vulnerabilities in the yarn dependencies of this project. #### Snyk changed the following file(s): - `autogpt_platform/frontend/package.json` - `autogpt_platform/frontend/yarn.lock` #### Note for [zero-installs](https://yarnpkg.com/features/zero-installs) users If you are using the Yarn feature [zero-installs](https://yarnpkg.com/features/zero-installs) that was introduced in Yarn V2, note that this PR does not update the `.yarn/cache/` directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to run `yarn` to update the contents of the `./yarn/cache` directory. If you are not using zero-install you can ignore this as your flow should likely be unchanged. #### Vulnerabilities that will be fixed with an upgrade: | | Issue | Score | :-------------------------:|:-------------------------|:-------------------------  | Improper Authorization <br/>[SNYK-JS-NEXT-9508709](https://snyk.io/vuln/SNYK-JS-NEXT-9508709) | **751** --- > [!IMPORTANT] > > - Check the changes in this PR to ensure they won't cause issues with your project. > - Max score is 1000. Note that the real score may have changed since the PR was raised. > - This PR was automatically created by Snyk using the credentials of a real user. --- **Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._ For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI5NGUwNmYxNy0yY2NkLTQ3NzEtOTk2NC1kN2JmYzhiNTI2NTgiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijk0ZTA2ZjE3LTJjY2QtNDc3MS05OTY0LWQ3YmZjOGI1MjY1OCJ9fQ==" width="0" height="0"/> 🧐 [View latest project report](https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr) 📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=github&utm_content=fix-pr-template) 🛠 [Adjust project settings](https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr/settings) 📚 [Read about Snyk's upgrade logic](https://docs.snyk.io/scan-with-snyk/snyk-open-source/manage-vulnerabilities/upgrade-package-versions-to-fix-vulnerabilities?utm_source=github&utm_content=fix-pr-template) --- **Learn how to fix vulnerabilities with free interactive lessons:** 🦉 [Improper Authorization](https://learn.snyk.io/lesson/broken-function-level-authorization/?loc=fix-pr) [//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"next","from":"14.2.23","to":"14.2.25"}],"env":"prod","issuesToFix":["SNYK-JS-NEXT-9508709"],"prId":"94e06f17-2ccd-4771-9964-d7bfc8b52658","prPublicId":"94e06f17-2ccd-4771-9964-d7bfc8b52658","packageManager":"yarn","priorityScoreList":[751],"projectPublicId":"3d924968-0cf3-4767-9609-501fa4962856","projectUrl":"https://app.snyk.io/org/significant-gravitas/project/3d924968-0cf3-4767-9609-501fa4962856?utm_source=github&utm_medium=referral&page=fix-pr","prType":"fix","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":["updated-fix-title","priorityScore"],"type":"auto","upgrade":["SNYK-JS-NEXT-9508709"],"vulns":["SNYK-JS-NEXT-9508709"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}' Co-authored-by: snyk-bot <snyk-bot@snyk.io> |
||
|
|
d694ccd50f |
fix(frontend): Fill defaults from schema to hardcodedValues at node creation (#9632)
Defaults need to be handled as special cases every time there's no `hardcodedValues` in node data. This causes multiple issues such as `useCredentials` not taking into account default model and requiring user to manually switch model back and forth. ### Changes 🏗️ - Set default values from `inputSchema` to `hardcodedValues` when new node is placed. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Newly placed node has defaults set as `hardcodedValues` - [x] AI Blocks: Model is recognised, node shows price and credentials work correctly without the need to switch --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co> |
||
|
|
f01b31873f |
feat(backend): Avoid loading all node executions on large continuos agent (#9667)
A graph that processes tens of thousands of nodes will cripple the system since the API tries to load all of them and dump them into the browser. The scope of this change is to avoid such an issue by only returning the last 1000 node executions. ### Changes 🏗️ * Return only 1000 node executions from `AgentNodeExecutions` reference. * Unify the include clause for fetching `AgentNodeExecutions` in one place and its format. * Fix & optimize `cancel_execution` logic to always set both the graph & node execution status in batch. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Execute a graph in a loop that executes 10000 nodes, it should only display the last 1000 nodes when refreshed. Cancelling the graph should also not cripple the server. |
||
|
|
5411e18bd0 |
feat(backend): Mark starting nodes as QUEUED instead of INCOMPLETE during the initial execution (#9665)
Having the starting nodes of the execution marked as incomplete misled the users. ### Changes 🏗️ Mark the starting nodes during the executions as QUEUED instead of INCOMPLETE. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Executed the graph, the incomplete initial starting node is no more. |
||
|
|
b85f6196aa |
fix(frontend): Fix unreliable websocket connection for node execution update (#9666)
The current execution update is unreliable, once you lose WebSocket connection, you will receive no updates. ### Changes 🏗️ Fix web socket re-connection logic. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run the app and execute an agent, then restart the API server, and re-execute the app without refreshing the page. |
||
|
|
a1ac7b18f9 |
feat(backend): Avoid connecting the same host and falling-back to defined api_host (#9668)
### Changes 🏗️ Avoid connecting the same host and falling-back to defined api_host. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [ ] I have tested my changes according to the test plan: - [ ] Define a custom DBMANAGER_HOST, RestService should access the `db_manager` service using localhost. |
||
|
|
42232f55e8 |
feat(platform): Use a single DB manager across the system (#9662)
DB Manager uses DB connections, and multiple instances of it hog the very limited Database connection quota. We need this service to be a unified place to control the limited db connection. ### Changes 🏗️ Connect all the database manager usage in a single place, currently running on the rest service. ### Checklist 📋 #### For code changes: - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [ ] ... <details> <summary>Example test plan</summary> - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly </details> #### For configuration changes: - [ ] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**) <details> <summary>Examples of configuration changes</summary> - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases </details> |
||
|
|
9a661b5101 |
fix(backend/ws): Add user_id to websocket event subscription key (#9660)
- Add `user_id` to WS subscription key - Add error catching to WS message handler |
||
|
|
90b147ff51 | Merge branch 'dev' of github.com:Significant-Gravitas/AutoGPT into dev autogpt-platform-beta-v0.6.0 | ||
|
|
6e4fbb0cb5 |
fix(frontend/library): Truncate agent card title and description (#9658)
- Resolves #9631 ### Changes 🏗️ - Truncate library agent card title (2 lines) and description (3 lines) - Make "See runs" and "Open in builder" stick to bottom of card regardless of other content - Reduce number of grid columns (4 -> 3) in `lg` layout on `/library` to give items more horizontal space  ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Visually test the changes made on different screen sizes |
||
|
|
df6203343d |
fix(frontend/library): Improve agent I/O rendering (#9656)
- Related to #8784 ### Changes 🏗️ - feat(frontend/library): Improve agent output styling & fix content overflow issue - fix(frontend/library): Fix overlap between content and inset button of expandable input fields (#9650) - fix(backend): Unbreak loading graph executions with missing inputs  ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Run an agent with at least one input *not* filled out; view this run in the Library - [x] -> page should load normally - [x] -> agent inputs should load and show normally - Run an agent that generates long output; view this run in the Library - [x] -> output should not overflow its container or stretch the page layout - [x] -> visually check that the output section looks slick |
||
|
|
93238dc78c |
fix(blocks): SendWebRequestBlock to properly handle HTTP error responses (#9655)
### Issue The SendWebRequestBlock currently fails to properly route HTTP error responses (4xx, 5xx) to their designated output pins (`client_error` and `server_error`). Instead, these errors are being sent to the default "Error" pin, breaking expected workflows that depend on proper error handling. ### Root Cause The underlying issue is that our custom `requests` module from `backend.util.request` appears to automatically raise exceptions for error status codes (similar to how `raise_for_status()` works in the standard requests library). When these exceptions are thrown, the block's conditional logic for handling different status codes is bypassed entirely. ### Changes This PR adds proper exception handling to catch HTTP errors raised by the requests module and routes them to the appropriate output pins: - Added a try-except block to capture `requests.exceptions.HTTPError` - Extract status code and response data from the caught exception - Yield to the proper pin based on the status code (4xx → client_error, 5xx → server_error) - Maintain consistent behavior with the original design intent ### Additional Context This change maintains backward compatibility while ensuring the block behaves according to its documented functionality. Users can now properly handle 4xx and 5xx errors in their workflows as originally intended. <!-- Clearly explain the need for these changes: --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Test the block with new changes and old and ensure expected behavior --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> |
||
|
|
b6260b5ce9 |
fix(backend): drastically increase batching time for the agent run (#9654)
<!-- Clearly explain the need for these changes: --> We accidently send several emails within 10 mins and we're gonna get blocked for spam if we keep it up ### Changes 🏗️ - moves 1 min to 60 min timer <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Test via batching a series of notiications over an hour |
||
|
|
9c31c79898 |
feat(frontend/library): Make agent input fields expandable (#9650)
- Resolves #9622 ### Changes 🏗️ - Add pop-out button + modal to input fields in Agent Run Draft view on `/library/agents/[id]` - Fix `icon`-variant button styling   ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - Go to an agent's page -> click "+ New run" - [x] -> pop-out button should show on all input fields - Enter a value in one of the inputs; click the pop-out button on that input - [x] -> input modal with large text field should open - [x] -> the value you just entered should be present in the modal's text field - Edit the value & click "Save" - [x] -> the modal should close - [x] -> the value in the corresponding input field should be updated |
||
|
|
f8a6c9e67f | fix(block): Revert custom get_missing_links method on AddToListBlock | ||
|
|
ff9a5cc638 |
fix(block): Avoid infinite loop execution on AddToListBlock self-loop (#9629)
### Changes 🏗️ <img width="757" alt="image" src="https://github.com/user-attachments/assets/909aab58-24c7-42ec-9580-ac3e9f32057e" /> Since a self-loop is now allowed for AddToListBlock, providing an entry pin using a static output will cause infinite execution. This PR change avoid such scenario to be allowed. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Described above |