Commit Graph

540 Commits

Author SHA1 Message Date
Nicholas Tindle
568f5a449e feat(backend): cache control headers (#10160)
### Why? 🤔
  <!-- Clearly explain the need for these changes: -->
  We need to prevent sensitive data (authentication tokens, API
  keys, user credentials, personal information) from being cached by
   browsers and proxies. Following the principle of "secure by
  default", we're switching from a deny list to an allow list
  approach for cache control.

  ### Changes 🛠️
  <!-- Concisely describe all of the changes made in this pull
  request: -->
  - **Refactored cache control middleware from deny list to allow 
  list approach**
    - By default, ALL endpoints now have `Cache-Control: no-store,
  no-cache, must-revalidate, private` headers
    - Only explicitly allowed paths (static assets, health checks,
  public store pages) can be cached
    - This ensures new endpoints are automatically protected without
   developers having to remember to add them to a list

  - **Updated `SecurityHeadersMiddleware` in 
  `/backend/backend/server/middleware/security.py`**
    - Renamed `SENSITIVE_PATHS` to `CACHEABLE_PATHS`
    - Inverted the logic in `is_cacheable_path()` method
    - Cache control headers are now applied to all paths NOT in the
  allow list

  - **Updated test suite to match new behavior**
    - Tests now verify that most endpoints have cache control
  headers by default
    - Tests verify that only allowed paths (static assets, health
  endpoints, etc.) can be cached

  - **Updated documentation in `CLAUDE.md`**
    - Documented the new allow list approach
    - Added instructions for developers on how to allow caching for
  new endpoints


### 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 modified endpoints work still
  - [x] Test modified endpoints correctly have no cache rules

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2025-06-20 14:19:52 +00:00
Zamil Majdy
3df6dcd26b feat(blocks): Improve SmartDecisionBlock & AIStructuredResponseGeneratorBlock (#10198)
Main issues:
* `AIStructuredResponseGeneratorBlock` is not able to produce a list of
objects.
* `SmartDecisionBlock` is not able to call tools with some optional
inputs.

### Changes 🏗️

* Allow persisting `null` / `None` value as execution output.
* Provide `multiple_tool_calls` option for `SmartDecisionBlock`.
* Provide `list_result` option for `AIStructuredResponseGeneratorBlock`

### 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] Run `SmartDecisionBlock` & `AIStructuredResponseGeneratorBlock`
2025-06-20 14:14:02 +00:00
Abhimanyu Yadav
aab40fe225 feat(backend): add custom openapi generator (#10200)
This PR introduces a custom function for generating unique operation IDs
for OpenAPI specifications to improve auto-generated client code
quality.

## Why This Change?
**Better Auto-Generated Clients**: Default FastAPI operation IDs create
unclear method names in generated clients. Our custom generator produces
clean, readable operation IDs that translate to intuitive method names.

- **Before**: `get_items_api_v1_items_get` → unclear generated methods
- **After**: `get_users_list` → clean, descriptive method names

## Changes
-  **Added**: `custom_generate_unique_id` utility function
  - Generates IDs using pattern: `{method}_{tag}_{summary}`
  - Ensures uniqueness and readability
- 🔧 **Updated**: FastAPI app configuration to use custom generator

## 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] OpenAPI docs reflect new operation ID format
   - [x] Tested various HTTP methods, tags, and summaries
   - [x] Verified app startup functionality 
   - [x] Validated improved client generation output
2025-06-20 13:32:39 +00:00
Zamil Majdy
91ea322887 fix(blocks): Fix broken Apollo Blocks (#10197)
Current Apollo blocks only work with keywords; the huge number of list
filter fields doesn't work because it's passing the wrong GET parameter
(missing `[]`).

### Changes 🏗️

Change the GET request to a POST request for Apollo.

### 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] Run SearchPeopleBlock with title filter
2025-06-20 05:15:46 +00:00
Abhimanyu Yadav
c29b5e3f0f fix(backend): Add graph_id path parameter to fix automatic client generation from OpenAPI spec (#10189)
## Description
Added the `graph_id` parameter to the stop execution endpoint path
(`/graphs/{graph_id}/executions/{graph_exec_id}/stop`) to fix client
generation from Openapi spec error.

## Problem
The client generation was failing due to missing path parameter
definition for `graph_id` in the stop execution endpoint.

<img width="1412" alt="Screenshot 2025-06-19 at 9 20 17 AM"
src="https://github.com/user-attachments/assets/aa1667d3-05be-48c6-975b-84473830ac03"
/>


## Solution
Added `graph_id` as a path parameter while maintaining the existing
functionality.

## Testing
- [x] Verified OpenAPI client generation works without errors
- [x] Confirmed endpoint functionality remains unchanged
- [x] Tested API calls maintain backward compatibility
2025-06-19 05:35:28 +00:00
Zamil Majdy
1e0a3d3c1b feat(backend): Add request retry on block execution and RPC (#10183)
Request on block execution can be throttled, and requests between
services can sometimes break. The scope of this PR is to add an
appropriate retry on those.

### Changes 🏗️

* Block request retry: Retry on throttled status code only (504, 429,
etc).
* RPC request retry: Retry connection issues (ConnectError, Timeout,
etc).
* Truncate logging on executor/utils.

### 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] Manual graph execution
2025-06-17 21:03:46 +00:00
Zamil Majdy
c4797a5f84 fix(backend): Fix scheduler broken late execution message 2025-06-17 10:25:25 -07:00
Zamil Majdy
4923318cfe fix(backend): Fix scheduler ayncio loop issue & update late execution message report 2025-06-17 10:20:17 -07:00
Reinier van der Leer
b477d31641 fix(backend): Unbreak add_store_agent_to_library (#10166)
- Follow-up fix for #9786

A change to a DB statement introduced in #9786 turns out to be breaking.
Apparently `connect` can't just be used for *some* relations: if it is
used, it must be used for *all* relations created by the statement.

### Changes 🏗️

- Fix broken DB statement in `add_store_agent_to_library(..)`

### 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] Add store agent to library

Co-authored-by: Swifty <craigswift13@gmail.com>
2025-06-17 13:11:40 +02:00
Zamil Majdy
97e72cb485 feat(backend): Make execution engine async-first (#10138)
This change introduced async execution for blocks and the execution
engine. Paralellism will be achieved through a single process
asynchronous execution instead of process concurrency.

### Changes 🏗️

* Support async execution for the graph executor
* Removed process creation for node execution
* Update all blocks to support async executions

### 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] Manual graph executions, tested many of the impacted blocks.
2025-06-17 09:38:24 +00:00
Nicholas Tindle
81d3eb7c34 feat(backend, frontend): make changes to use our security modules more effectively (#10123)
<!-- Clearly explain the need for these changes: -->
Doing the CASA Audit and this is something to check
### Changes 🏗️
- limits APIs to use their specific endpoints
- use expected trusted sources for each block and requests call
- Use cryptographically valid string comparisons
- Don't log secrets

<!-- 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] Testing in dev branch once merged

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2025-06-16 15:22:08 +00:00
Toran Bruce Richards
e05c34e76a fix(platform/backend): skip invalid graphs when listing in block menu (#10159)
<!-- Clearly explain the need for these changes: -->
## Background & Summary of Changes
If a user has a single invalid Agent in their Library (i.e one with a
Block which doesn't exist) currently the Blocks menu does not return any
Agent results.

Valid agents should still load even when some stored graphs are
malformed.
Graphs which are malformed should just be skipped rather than breaking
the entire process, this PR implements that fix, unblocking users with a
malformed Agent in their Library (me!).

## Testing
I have tested this PR in the dev deployment (where I have this issue on
my account) and have confirmed that Agents now show up in the list:

| Before this Change | After this Change |
| ------------------ | ----------------- |
| ![Before change
screenshot](https://github.com/user-attachments/assets/9263da25-ff4a-4dfa-bd96-19dfd689ddac)
| ![After change
screenshot](https://github.com/user-attachments/assets/86219055-b97b-456c-a270-80d729c909da)
|


## Changes 🏗️
- Validate each graph’s serialization in get_graphs and skip any that
raise an exception
- Added error logging for invalid graphs

## 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] poetry run format
    - [ ] poetry run test
For configuration changes:
- [x] .env.example is updated or already compatible with my changes
- [x] docker-compose.yml is updated or already compatible with my
changes
- [x] I have included a list of my configuration changes in the PR
description (under Changes)

Fixes [OPEN-2461: Loading a Library Agent with an invalid block causes
all Library Agent Loading to fail in Builder Blocks
Menu](https://linear.app/autogpt/issue/OPEN-2461/loading-a-library-agent-with-an-invalid-block-causes-all-library-agent)
2025-06-16 08:01:10 +00:00
Zamil Majdy
c109b676b8 fix(block): Invalid block input error on falsy non-null value 2025-06-13 00:39:55 -07:00
Dmitry
a259eac9ff feat(blocks): Add AI/ML API support to LLM blocks (#9996)
Hi! Taking over this feature from the previous author in
[#9163](https://github.com/Significant-Gravitas/AutoGPT/pull/9163).
This PR continues the work to integrate AI/ML API support into LLM
blocks, addressing pending review comments and ensuring compatibility
with the current codebase.

I’ve reviewed and fixed the outstanding issues from the previous PR.
Kindly recheck the previous concerns — let me know if anything still
needs improvement.

Previous description:

> Changes 🏗️
> 
> - Added basic functionality to enable users to send requests to our
models.
> - Added instructions for users on how to use the AI/ML API in AutoGPT.
> 
> 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] The API key has been successfully added and saved to the user's
profile.
> - [x] Sending requests to each model provided by us, enabling users to
test them in a project with various max_tokens parameter values and
other configurations.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Ivan <waterstark97@yandex.ru>
Co-authored-by: waterstark <84220220+waterstark@users.noreply.github.com>
Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
Co-authored-by: Krzysztof Czerwinski <kpczerwinski@gmail.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
Co-authored-by: Bently <tomnoon9@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ayush Mittal <130590402+Ayush-Mittal10@users.noreply.github.com>
Co-authored-by: Azraf Nahian <69325302+turboslapper@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Co-authored-by: Swifty <craigswift13@gmail.com>
Co-authored-by: Mario Sacaj <mariosacaj@gmail.com>
Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com>
Co-authored-by: Ritik Dutta <ritikduttagd@gmail.com>
Co-authored-by: Pratim Sadhu <pratimsadhu@icloud.com>
2025-06-11 17:46:44 +00:00
Zamil Majdy
796f896042 fix(backend): execution UI did not receive completed / failed execution update (#10149)
<img width="1410" alt="image"
src="https://github.com/user-attachments/assets/bce407a2-96a1-42e9-9772-b49b8f20886c"
/>


### Changes 🏗️

Add the missing `send execution update` command on completed/update
status change for the node execution.

### 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] Screenshot attached
2025-06-11 07:35:51 +00:00
Bently
1e89bf5c37 feat(blocks): add veo3 to ai video generator (#10144)
### Changes 🏗️

This simply adds "fal-ai/veo3" to the ``FalModel`` in the
``ai_video_generator.py`` file
Oh i also set it so veo3 also always generates videos with audio so
``generate_audio=True`` is set to true if veo3 is selected

### 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 veo3 model via Fal.ai and it should work.
2025-06-10 23:31:50 +00:00
Bently
2e96da36c2 feat(blocks): Drop the price of chatgpt o3 model (#10145)
### Changes 🏗️

Today openAI dropped the prices of the o3 model so this simply drops the
price from 7 to 4

### 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] Run the platform with the new price, check the O3 model in the ai
text generator block and see its cheaper to use
2025-06-10 23:31:01 +00:00
Zamil Majdy
210d457ecd feat(executor): Improve execution ordering to allow depth-first execution (#10142)
Allowing depth-first execution will unlock faster processing latency and
a better sense of progress.

<img width="950" alt="image"
src="https://github.com/user-attachments/assets/e2a0e11a-8bc5-4a65-a10d-b5b6c6383354"
/>


### Changes 🏗️

* Prioritize adding a new execution over processing execution output
* Make sure to enqueue each node once when processing output instead of
draining a single node and move on.

### 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] Run company follower count finder agent.

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2025-06-10 12:41:31 +00:00
Swifty
4a03e5cbaf fix(backend): improve server error handling (#10030)
## Changes
- log helpful hints when metrics fail to record
- clarify API key errors in v1 router
- improve Postmark unsubscribe and webhook logs
- surface actionable feedback across integrations and store APIs
- handle Otto proxy failures with guidance

## 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
2025-06-10 10:09:57 +00:00
Zamil Majdy
7165958feb fix(frontend): Fix builder UI glitch (#10139)
There are a few UI bugs on the builder that this PR addresses.

<img width="554" alt="image"
src="https://github.com/user-attachments/assets/1be70197-de7e-40fe-ab11-405c145e763d"
/>

### Changes 🏗️

Fix these UI issues:
* (screenshot attached above) Key-value input width was unintentionally
maxed out due to a stale CSS rule.
* When multiple executions within the same node are running, we pick the
latest status, making one running and one completed execution displayed
as completed.
* No balance errors were executed, only displayed while at least one
node execution was triggered, while this can be done directly when the
execution request is triggered.
* Run & Stop button glitch: it's still showing as stopped when the graph
is still running, this is due to way the UI code tracks execution in the
node-level, instead of graph level.

### 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] Manual tests on the described behaviours.
2025-06-10 05:46:18 +00:00
Swifty
a3d082a5fa feat(backend): snapshot test responses (#10039)
This pull request introduces a comprehensive backend testing guide and
adds new tests for analytics logging and various API endpoints, focusing
on snapshot testing. It also includes corresponding snapshot files for
these tests. Below are the most significant changes:

### Documentation Updates:
* Added a detailed `TESTING.md` file to the backend, providing a guide
for running tests, snapshot testing, writing API route tests, and best
practices. It includes examples for mocking, fixtures, and CI/CD
integration.

### Analytics Logging Tests:
* Implemented tests for logging raw metrics and analytics in
`analytics_test.py`, covering success scenarios, various input values,
invalid requests, and complex nested data. These tests utilize snapshot
testing for response validation.
* Added snapshot files for analytics logging tests, including responses
for success cases, various metric values, and complex analytics data.
[[1]](diffhunk://#diff-654bc5aa1951008ec5c110a702279ef58709ee455ba049b9fa825fa60f7e3869R1-R3)
[[2]](diffhunk://#diff-e0a434b107abc71aeffb7d7989dbfd8f466b5e53f8dea25a87937ec1b885b122R1-R3)
[[3]](diffhunk://#diff-dd0bc0b72264de1a0c0d3bd0c54ad656061317f425e4de461018ca51a19171a0R1-R3)
[[4]](diffhunk://#diff-63af007073db553d04988544af46930458a768544cabd08412265e0818320d11R1-R30)

### Snapshot Files for API Endpoints:
* Added snapshot files for various API endpoint tests, such as:
- Graph-related operations (`graphs_get_single_response`,
`graphs_get_all_response`, `blocks_get_all_response`).
[[1]](diffhunk://#diff-b25dba271606530cfa428c00073d7e016184a7bb22166148ab1726b3e113dda8R1-R29)
[[2]](diffhunk://#diff-1054e58ec3094715660f55bfba1676d65b6833a81a91a08e90ad57922444d056R1-R31)
[[3]](diffhunk://#diff-cfd403ab6f3efc89188acaf993d85e6f792108d1740c7e7149eb05efb73d918dR1-R14)
- User-related operations (`auth_get_or_create_user_response`,
`auth_update_email_response`).
[[1]](diffhunk://#diff-49e65ab1eb6af4d0163a6c54ed10be621ce7336b2ab5d47d47679bfaefdb7059R1-R5)
[[2]](diffhunk://#diff-ac1216f96878bd4356454c317473654d5d5c7c180125663b80b0b45aa5ab52cbR1-R3)
- Credit-related operations (`credits_get_balance_response`,
`credits_get_auto_top_up_response`, `credits_top_up_request_response`).
[[1]](diffhunk://#diff-189488f8da5be74d80ac3fb7f84f1039a408573184293e9ba2e321d535c57cddR1-R3)
[[2]](diffhunk://#diff-ba3c4a6853793cbed24030cdccedf966d71913451ef8eb4b2c4f426ef18ed87aR1-R4)
[[3]](diffhunk://#diff-43d7daa0c82070a9b6aee88a774add8e87533e630bbccbac5a838b7a7ae56a75R1-R3)
- Graph execution and deletion (`blocks_execute_response`,
`graphs_delete_response`).
[[1]](diffhunk://#diff-a2ade7d646ad85a2801e7ff39799a925a612548a1cdd0ed99b44dd870d1465b5R1-R12)
[[2]](diffhunk://#diff-c0d1cd0a8499ee175ce3007c3a87ba5f3235ce02d38ce837560b36a44fdc4a22R1-R3)##
Summary
- add pytest-snapshot to backend dev requirements
- snapshot server route response JSONs
- mention how to update stored snapshots

## Testing
- `poetry run format`
- `poetry run test` 

### 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] run poetry run test

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2025-06-06 20:36:00 +00:00
Reinier van der Leer
781f138c09 feat(backend): Agent Presets backend improvements (#9786)
- Part of #9307

-  Blocks #9541

### Changes 🏗️

Backend:
- Fix+improve `GET /library/presets` (`list_presets`) endpoint
  - Fix pagination
  - Add `graph_id` filter parameter

- Allow partial preset updates: `PUT /presets/{preset_id}` -> `PATCH
/presets/{preset_id}`

- Allow creating preset from graph execution through `POST /presets`

- Clean up models & DB functions
  - Split `upsert_preset` into `create_preset` + `update_preset`
  - Add `LibraryAgentPresetUpdatable`
- Replace `CreateLibraryAgentPresetRequest` with
`LibraryAgentPresetCreatable`
- Use `LibraryAgentPresetCreatable` as base class for
`LibraryAgentPreset`
  - Remove redundant `set_is_deleted_for_library_agent(..)`
  - Improve log statements
  - Improve DB statements (e.g. by using unique keys where possible)

Frontend:
- Add timestamp parsing logic to library agent preset endpoints
- Brand `LibraryAgentPreset.id` + references

### 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] CI green
- Since these changes don't affect existing front-end functionality, no
additional testing is needed.
2025-06-05 16:11:37 +00:00
Zamil Majdy
2647417e9f feat(executor;frontend): Move output processing step from node executor to graph executor & simplify input beads calculation (#10066)
**Goal**: Allow parallel runs within a single node. Currently, we
prevent this to avoid unexpected ordering of the execution.

### Changes 🏗️

#### Executor changes

We decoupled the node execution output processing, which is responsible
for deciding the next executions from the node executor code.

Currently, `execute_node` does two big things:
* Runs the block’s execute(...) (which yields outputs).
* immediately enqueues the next nodes based on those outputs.

This PR makes:
* execute_node(node_exec) -> stream of (output_name, data). That purely
runs the block and yields each output as soon as it’s available.
* Move _enqueue_next_nodes into the graph executor. So the next
execution is handled serially by the graph executor to avoid concurrency
issues.

#### UI changes

The change on the executor also fixes the behavior of the execution
update to the UI We will report the execution output to the UI as soon
as it is available, not when the node execution is fully completed.
This, however, broke the bread calculation logic that assumes each
execution update will never overlap. So the change in this PR makes the
bead calculation take the overlap / duplicated execution update into
account, and simplify the overall calculation 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:
  <!-- Put your test plan here: -->
  - [x] Execute this agent and observe its concurrency ordering
  
<img width="1424" alt="image"
src="https://github.com/user-attachments/assets/0fe8259f-9091-4ecc-b824-ce8e8819c2d2"
/>
2025-06-05 16:10:50 +00:00
Zamil Majdy
da0482b54e fix(backend): Fix graph fetching of non-owned marketplace agent (#10110)
Currently, the get_graph function, with no graph version specifier will
try to fetch the latest version, and when the graph is not owned and the
latest version is not available for listing, it will return `None`
instead of picking the latest graph version available on the store.

### Changes 🏗️

Instead of using the latest graph.version to fetch the store listing,
don't provide any version filter at all and pick up whatever available
version in the store.

### 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] CI, existing tests
2025-06-05 06:05:31 +00:00
Zamil Majdy
4b70e778d2 feat(backend): Add nested dynamic pin-name support (#10082)
Suppose we have pint with list[list[int]] type, and we want directly
insert the a new value inside the first index of the first list e.g:
list[0][0] = X through a dynamic pin, this will be translated into
list_$_0_$_0, and the system does not currently support this.

### Changes 🏗️

Add support for nested dynamic pins for list, object, and dict.

### 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] lots of unit tests
- [x] Tried inserting the value directly on the `value` nested field on
Google Sheets Write block.
<img width="371" alt="image"
src="https://github.com/user-attachments/assets/0a5e7213-b0e0-4fce-9e89-b39f7a583582"
/>
2025-06-04 16:32:32 +00:00
Reinier van der Leer
eaf6da02d1 fix poetry.lock issue 2025-06-04 18:17:59 +02:00
Bently
d5d613e014 chore(backend): Downgrade poetry to 2.1.1 for dependabot (#10079)
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-06-04 17:37:21 +02:00
Zamil Majdy
0f558876e2 feat(blocks;frontend): Add file multipart upload support for SendWebRequestBlock & Improve key-value input UI rendering (#10058)
Now, SendWebRequestBlock can upload files. To make this work, we also
need to improve the UI rendering on the key-value pair input so that it
can also render media/file upload.

### Changes 🏗️

* Add file multipart upload support for SendWebRequestBlock 
* Improve key-value input UI rendering to allow rendering any types as a
normal input block (it was only string & number).

<img width="381" alt="image"
src="https://github.com/user-attachments/assets/b41d778d-8f9d-4aec-95b6-0b32bef50e89"
/>


### 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 running http request block, othe key-value pair input block
2025-06-03 07:55:12 +00:00
Toran Bruce Richards
3f6585f763 feat(platform/blocks): add AI Image Editor Block powered by flux kontext (#10063)
<!-- Clearly explain the need for these changes: -->

This PR adds a new internal block, **AI Image Editor**, which enables
**text-based image editing** via BlackForest Labs’ Flux Kontext models
on Replicate. This block allows users to input a prompt and optionally a
reference image, and returns a transformed image URL. It supports two
model variants (Pro and Max), with different cost tiers. This
functionality will enhance multimedia capabilities across internal agent
workflows and support richer AI-powered image manipulation.

---

### Changes 🏗️

* Added `FluxKontextBlock` in `backend/blocks/flux_kontext.py`

  * Uses `ReplicateClient` to call Flux Kontext Pro or Max models
* Supports inputs for `prompt`, `input_image`, `aspect_ratio`, `seed`,
and `model`
  * Outputs transformed image URL or error
* Added credit pricing logic for Flux Kontext models to
`block_cost_config.py`:

  * Pro: 10 credits
  * Max: 20 credits
* Added documentation for the new block at
`docs/content/platform/blocks/flux_kontext.md`
* Updated block index at `docs/content/platform/blocks/blocks.md` to
include Flux Kontext

---


![image](https://github.com/user-attachments/assets/0edb2b30-4c37-4184-bcc8-9d733658f620)


### 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] Prompt-only input generates an image
  * [x] Prompt with image applies edit correctly
  * [x] Image respects specified aspect ratio
  * [x] Invalid image URL returns helpful error
  * [x] Using the same seed gives consistent output
* [x] Output chaining works: result URI can be used in downstream blocks
  * [x] Output from Max model shows higher fidelity than Pro

<details>
  <summary>Example test plan</summary>

* [x] Create from scratch and execute an agent using Flux Kontext with
at least 3 blocks
* [x] Import agent with Flux Kontext from file upload, and confirm
execution
* [x] Upload agent (with Flux Kontext block) to marketplace (internal
test)
* [x] Import agent from marketplace and confirm correct execution
* [x] Edit agent with Flux Kontext block from monitor and confirm output

</details>

#### For configuration changes:

* [x] `.env.example` is updated or already compatible with my changes
* [x] `docker-compose.yml` is updated or already compatible with my
changes
* [x] I have included a list of my configuration changes in the PR
description (under **Changes**)

  * No new environment variables or services introduced

<details>
  <summary>Examples of configuration changes</summary>

* N/A

</details>

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2025-06-02 20:46:48 +00:00
Krzysztof Czerwinski
9f2b9d08c9 feat(platform): Add Run 10 agents wallet task (#9937)
### Changes 🏗️

This PR adds `Run 10 agents` step to wallet tasks that can be done by
running any agents 10 times either from Library or Builder (onboarding
agent run also counts).

- Merge `Finish onboarding` and `See results` steps into one in the
wallet
- User is redirected directly to onboarding agent runs in Library after
congrats screen
- Add `RUN_AGENTS` step and `agentRuns` integer to schema and related
migration
- Running agent from Library and Builder increments `agentRuns`
- Open NPS survey popup when 10 agents are run
- Fix resuming onboarding on login when unfinished
- Remove no longer needed `get-results.mp4` tutorial video

### 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] Onboarding can be completed and proper reward is awarded
  - [x] `Run 10 agents` can be completed and reward is awarded
    - [x] When unning different agents and the same agent
    - [x] Running from library and builder counts
  - [x] Onboarding is resumed to last finished step on login
2025-05-28 07:40:52 +00:00
Krzysztof Czerwinski
b91b026164 fix(platform): Restore See runs button on marketplace listing page (#9970)
This makes button on the marketplace listing page show `See runs` if
user has an agent in the library.

### Changes 🏗️

- Remove `/` from the related endpoint
- Use `active_version_id` instead of `store_listing_version_id` to check
for the library agent
- Fix `get_store_agent_details`

### 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:
  - Log in and pick an agent that has never been in user library
  - [x] Button says `Add to library`
  - Add the agent and return to the listing page
  - [x] Button says `See runs`
  - Remove agent from library
  - [x] Button says `Add to library`
  - Add agent again
  - [x] Button says `See runs`

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2025-05-28 07:15:42 +00:00
Reinier van der Leer
b244726b20 fix(backend): Include webhook block executions in GraphExecution queries (#9984)
- Resolves #9752
- Follow-up fix to #9940

### Changes 🏗️

- `GRAPH_EXECUTION_INCLUDE` ->
`graph_execution_include(include_block_ids)`
- Add `get_io_block_ids()` and `get_webhook_block_ids()` to
`backend.data.blocks`

### 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:
- [ ] Payload for webhook-triggered runs is shown on
`/library/agents/[id]`
2025-05-27 17:43:56 +00:00
Swifty
17e973a8cb fix(platform): Optimise Query Indexes (#10038)
# Query Optimization for AgentNodeExecution Tables

## Overview
This PR describes the database index optimizations applied to improve
the performance of slow queries in the AutoGPT platform backend.

## Problem Analysis
The following queries were identified as consuming significant database
resources:

### 1. Complex Filtering Query (19.3% of total time)
```sql
SELECT ... FROM "AgentNodeExecution" 
WHERE "agentNodeId" = $1 
  AND "agentGraphExecutionId" = $2 
  AND "executionStatus" = $3 
  AND "id" NOT IN (
    SELECT "referencedByInputExecId" 
    FROM "AgentNodeExecutionInputOutput" 
    WHERE "name" = $4 AND "referencedByInputExecId" IS NOT NULL
  )
ORDER BY "addedTime" ASC
```

### 2. Multi-table JOIN Query (8.9% of total time)
```sql
SELECT ... FROM "AgentNodeExecution" 
LEFT JOIN "AgentNode" ON ...
LEFT JOIN "AgentBlock" ON ...
WHERE "AgentBlock"."id" IN (...) 
  AND "executionStatus" != $11
  AND "agentGraphExecutionId" IN (...)
ORDER BY "queuedTime" DESC, "addedTime" DESC
```

### 3. Bulk Graph Execution Queries (multiple variations, ~10% combined)
Multiple queries filtering by `agentGraphExecutionId` with various
ordering requirements.

## Optimization Strategy

### 1. Composite Indexes for AgentNodeExecution

Set the following composite indexes to the `AgentNodeExecution` model:

```prisma
@@index([agentGraphExecutionId, agentNodeId, executionStatus])
@@index([addedTime, queuedTime])
```

#### Benefits:
- **Index 1**: Covers the exact WHERE clause of the complex filtering
query, allowing index-only scans
- **Index 2**: Optimizes queries filtering by graph execution and status
- **Index 3**: Supports efficient sorting when filtering by graph
execution
- **Index 4**: Optimizes ORDER BY operations on time fields

### 2. Composite Index for AgentNodeExecutionInputOutput

Added the following composite index:

```prisma
  // Input and Output pin names are unique for each AgentNodeExecution.
  @@unique([referencedByInputExecId, referencedByOutputExecId, name])
  @@index([referencedByOutputExecId])
  // Composite index for `upsert_execution_input`.
  @@index([name, time])
```

#### Benefits:
- Dramatically improves the NOT IN subquery performance in Query 1
- Allows the database to use an index scan instead of a full table scan
- Reduces the subquery execution time from O(n) to O(log n)

## Expected Performance Improvements

1. **Query 1 (19.3% of total time)**: 
   - Expected improvement: 80-90% reduction in execution time
- The composite index on `[agentNodeId, agentGraphExecutionId,
executionStatus]` will allow index-only scans
- The subquery will benefit from the new index on
`AgentNodeExecutionInputOutput`

2. **Query 2 (8.9% of total time)**:
   - Expected improvement: 50-70% reduction in execution time
- The `[agentGraphExecutionId, executionStatus]` index will reduce the
initial filtering cost

3. **Bulk Queries (10% combined)**:
   - Expected improvement: 60-80% reduction in execution time
- Composite indexes including time fields will optimize sorting
operations

## Migration Considerations

1. **Index Creation Time**: Creating these indexes on existing large
tables may take time
2. **Storage Impact**: Each index requires additional storage space
3. **Write Performance**: Slight decrease in INSERT/UPDATE performance
due to index maintenance


## Additional Optimizations

### NotificationEvent Table Index

Added index for notification batch queries:

```prisma
@@index([userNotificationBatchId])
```

This optimizes the query:
```sql
SELECT ... FROM "NotificationEvent" 
WHERE "userNotificationBatchId" IN (...)
```

#### Benefits:
- Eliminates full table scans when filtering by batch ID
- Improves query performance from O(n) to O(log n)
- Particularly beneficial for users with many notification events

## Future Optimizations

Consider these additional optimizations if needed:
1. Partitioning `AgentNodeExecution` table by `createdAt` or
`agentGraphExecutionId`
2. Implementing materialized views for frequently accessed aggregate
data
3. Adding covering indexes for specific query patterns
4. Implementing query result caching at the application level

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2025-05-27 09:20:36 +00:00
Reinier van der Leer
8e2fb2daa4 feat(backend): Speed up graph create/update (#10025)
- Resolves #10024

Caching the repeated DB calls by the graph lifecycle hooks significantly
speeds up graph update/create calls with many authenticated blocks
(~300ms saved per authenticated block)

### Changes 🏗️

- Add and use `IntegrationCredentialsManager.cached_getter(user_id)` in
lifecycle hooks
- Split `refresh_if_needed(..)` method out of
`IntegrationCredentialsManager.get(..)`
- Simplify interface of lifecycle hooks: change `get_credentials`
parameter to `user_id`

### 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] Save a graph with nodes with credentials
2025-05-26 09:59:27 +00:00
Reinier van der Leer
a51af36296 feat(blocks/exa): Fix Exa blocks error reporting (#10020)
Exa blocks currently just return an empty list when they fail.

## Changes
- Add `error` output field where missing on Exa blocks
- Don't yield empty results when a request fails

## Testing
- `ruff check autogpt_platform/backend/backend/blocks/exa/search.py
autogpt_platform/backend/backend/blocks/exa/contents.py
autogpt_platform/backend/backend/blocks/exa/similar.py --fix`
- `black autogpt_platform/backend/backend/blocks/exa/search.py
autogpt_platform/backend/backend/blocks/exa/contents.py
autogpt_platform/backend/backend/blocks/exa/similar.py`
- `isort autogpt_platform/backend/backend/blocks/exa/search.py
autogpt_platform/backend/backend/blocks/exa/contents.py
autogpt_platform/backend/backend/blocks/exa/similar.py`
- `pre-commit run --files
autogpt_platform/backend/backend/blocks/exa/search.py
autogpt_platform/backend/backend/blocks/exa/contents.py
autogpt_platform/backend/backend/blocks/exa/similar.py` *(fails: redis
connection errors)*
2025-05-24 16:17:03 +00:00
Bently
dc981b52a3 feat(Platform): add claude 4 sonnet and opus models to platform (#10018)
This adds the latest claude 4 opus and sonnet to the platform

https://www.anthropic.com/news/claude-4
2025-05-22 19:16:25 +00:00
Toran Bruce Richards
b8ba572629 Fix AddMemoryBlock JSON serialization error (#10013)
This pull request refines the handling of `input_data.content` and
improves error message formatting in the `run` method of `mem0.py`. The
changes enhance robustness and clarity in the code.

### Handling `input_data.content`:

* Updated the `run` method to handle `Content` objects explicitly,
ensuring proper formatting of messages when `input_data.content` is of
type `Content`. Additionally, non-standard types are now converted to
strings for consistent handling.
(`[autogpt_platform/backend/backend/blocks/mem0.pyR127-R130](diffhunk://#diff-d7abf8c3299388129480b6a9be78438fe7e0fbe239da630ebb486ad99c80dd24R127-R130)`)

### Error message formatting:

* Simplified the error message formatting by removing the unnecessary
`object=` keyword in the `str()` conversion of exceptions.
(`[autogpt_platform/backend/backend/blocks/mem0.pyL155-R157](diffhunk://#diff-d7abf8c3299388129480b6a9be78438fe7e0fbe239da630ebb486ad99c80dd24L155-R157)`)

## Summary
- fix AddMemoryBlock so `Content` input uses the underlying string
- improve error handling in Mem0 AddMemoryBlock

## Testing
- `ruff check autogpt_platform/backend/backend/blocks/mem0.py`
- `pre-commit run --files
autogpt_platform/backend/backend/blocks/mem0.py` *(fails: unable to
fetch remote hooks)*
- `poetry run pytest -k AddMemoryBlock -q` *(fails: Error 111 connecting
to localhost:6379)*

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:
 Payload for webhook-triggered runs is shown on /library/agents/[id]
2025-05-22 15:54:18 +00:00
Zamil Majdy
1b81a7c755 fix(blocks): Error messages from SendWebRequestBlock use the requested translated IP instead of the orignal URL (#10009)
### Changes 🏗️

Keep the original URL when an HTTP error occurs in
`SendWebRequestBlock`.

### 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 sending POST request on a web that doesn't support POST
request using `SendWebRequestBlock`.
2025-05-22 15:46:01 +00:00
Zamil Majdy
8f1b3eb8ba fix(backend/executor): Make executor continuously running and retrying message consumption (#9999)
The executor can sometimes become dangling due to the executor stopping
executing messages but the process is not fully killed. This PR avoids
such a scenario by simply keeping retrying it.

### Changes 🏗️

Introduced continuous_retry decorator and use it to executor message
consumption/

### 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] Run executor service and execute some agents.
2025-05-22 12:11:08 +00:00
Reinier van der Leer
73ee6e272a fix(backend): Unbreak UserIntegrations parsing for missing None values (#9994)
Makes all optional fields on `Credentials` models actually optional, and
sets `exclude_none=True` on the corresponding `model_dump`.

This is a hotfix: after running the `aryshare-revid` branch on the dev
deployment, there is some data in the DB that isn't valid for the
`UserIntegrations` model on the `dev` branch (see
[here](https://github.com/Significant-Gravitas/AutoGPT/pull/9946#discussion_r2098428575)).

### 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] This fix worked on the `aryshare-revid` branch:
52b6d9696b
2025-05-20 23:50:19 +00:00
Reinier van der Leer
f466b010e4 fix(backend): Unbreak URL handling for GitHub blocks (#9989)
- Resolves #9987

### Changes 🏗️

- Split `pin_url(..)` out of `validate_url(..)` and call
`extra_url_validator` in between

### 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] GitHub Read Pull Request Block works with "Include PR Changes"
enabled
2025-05-20 22:54:39 +00:00
Zamil Majdy
701d283f69 fix(backend): Disable health check for scheduler service from the api server 2025-05-20 18:04:10 +01:00
Zamil Majdy
47c1a64cc2 fix(backend): Remove cleaner on graph executor exit 2025-05-20 17:45:19 +01:00
Reinier van der Leer
ac532ca4b9 fix(backend): Graph execution update on terminate (#9952)
Resolves #9947

### Changes 🏗️

Backend:
- Send a graph execution update after terminating a run
- Don't wipe the graph execution stats when not passed in to `update_graph_execution_stats`

Frontend:
- Don't hide the output of stopped runs

### 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]`
  - Run an agent that takes a while (long enough to click stop and see the effect)
  - Hit stop after it has executed a few nodes
  - [x] -> run status should change to "Stopped"
  - [x] -> run stats (steps, duration, cost) should stay the same or increase only one last time
  - [x] -> output so far should be visible
  - [x] -> shown information should stay the same after refreshing the page

---

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
2025-05-19 23:15:39 +02:00
Zamil Majdy
aa2c2c1ad2 fix(backend): Force process exit on execution manager cleanup 2025-05-19 16:47:56 +01:00
Abhimanyu Yadav
0e53c540d4 fix(blocks): Disable Twitter and Todoist blocks if their OAuth is not configured (#9954)
I am disabling all the Twitter and Todoist blocks whose OAuth is not
configured.

> I have already checked it locally. When OAuth is not set, the blocks
do not appear in the block menu
2025-05-16 12:12:48 +00:00
dependabot[bot]
e48aec921e chore(backend/deps-dev): Bump 3 dev dependencies to latest minor versions (#9852)
Bumps [poethepoet](https://github.com/nat-n/poethepoet),
[pyright](https://github.com/RobertCraigie/pyright-python) and
[ruff](https://github.com/astral-sh/ruff) to their latest versions.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-05-16 11:30:42 +00:00
dependabot[bot]
870f8265b3 chore(backend/deps): Bump 18 dependencies to latest minor versions (#9930)
Bumps the production-dependencies group with 18 updates in the
/autogpt_platform/backend directory:

| Package | From | To |
| --- | --- | --- |
| [anthropic](https://github.com/anthropics/anthropic-sdk-python) |
`0.49.0` | `0.51.0` |
| [click](https://github.com/pallets/click) | `8.1.8` | `8.2.0` |
| [e2b-code-interpreter](https://github.com/e2b-dev/code-interpreter) |
`1.1.1` | `1.5.0` |
|
[google-api-python-client](https://github.com/googleapis/google-api-python-client)
| `2.166.0` | `2.169.0` |
|
[google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib)
| `1.2.1` | `1.2.2` |
| [groq](https://github.com/groq/groq-python) | `0.20.0` | `0.24.0` |
|
[launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk)
| `9.10.0` | `9.11.0` |
| [mem0ai](https://github.com/mem0ai/mem0) | `0.1.80` | `0.1.98` |
| [ollama](https://github.com/ollama/ollama-python) | `0.4.7` | `0.4.8`
|
| [openai](https://github.com/openai/openai-python) | `1.70.0` |
`1.78.1` |
| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.1.3`
|
| [pydantic](https://github.com/pydantic/pydantic) | `2.11.1` | `2.11.4`
|
| [pydantic-settings](https://github.com/pydantic/pydantic-settings) |
`2.8.1` | `2.9.1` |
| [replicate](https://github.com/replicate/replicate-python) | `1.0.4` |
`1.0.6` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.25.1` |
`2.28.0` |
| [supabase](https://github.com/supabase/supabase-py) | `2.15.0` |
`2.15.1` |
| [tenacity](https://github.com/jd/tenacity) | `9.0.0` | `9.1.2` |
| [uvicorn](https://github.com/encode/uvicorn) | `0.34.0` | `0.34.2` |


Updates `anthropic` from 0.49.0 to 0.51.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-python/releases">anthropic's
releases</a>.</em></p>
<blockquote>
<h2>v0.51.0</h2>
<h2>0.51.0 (2025-05-07)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.50.0...v0.51.0">v0.50.0...v0.51.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds web search capabilities to the Claude API
(<a
href="bec0cf93c2">bec0cf9</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>pydantic v1:</strong> more robust ModelField.annotation
check (<a
href="c50f406767">c50f406</a>)</li>
<li><strong>sockets:</strong> handle non-portable socket flags (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/935">#935</a>)
(<a
href="205c8dda37">205c8dd</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>broadly detect json family of content-type headers (<a
href="66bbb3a668">66bbb3a</a>)</li>
<li><strong>ci:</strong> only use depot for staging repos (<a
href="c867a11af3">c867a11</a>)</li>
<li><strong>ci:</strong> run on more branches and use depot runners (<a
href="95f5f17be0">95f5f17</a>)</li>
<li><strong>internal:</strong> add back missing custom modifications for
Web Search (<a
href="f43ba69d53">f43ba69</a>)</li>
<li><strong>internal:</strong> minor formatting changes (<a
href="8afef086af">8afef08</a>)</li>
<li>use lazy imports for resources (<a
href="704be817f4">704be81</a>)</li>
</ul>
<h2>v0.50.0</h2>
<h2>0.50.0 (2025-04-22)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.49.0...v0.50.0">v0.49.0...v0.50.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> extract ContentBlockDelta events into their
own schemas (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/920">#920</a>)
(<a
href="ae773d673a">ae773d6</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="46ac1f8d1c">46ac1f8</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="48d9739ad7">48d9739</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="66e8cc3fb2">66e8cc3</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="a74746e0df">a74746e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>ci:</strong> ensure pip is always available (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/907">#907</a>)
(<a
href="36326871c1">3632687</a>)</li>
<li><strong>ci:</strong> remove publishing patch (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/908">#908</a>)
(<a
href="cae032381b">cae0323</a>)</li>
<li><strong>client:</strong> deduplicate stop reason type (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/913">#913</a>)
(<a
href="3ab0194550">3ab0194</a>)</li>
<li><strong>client:</strong> send all configured auth headers (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/929">#929</a>)
(<a
href="9d2581e79f">9d2581e</a>)</li>
<li><strong>perf:</strong> optimize some hot paths (<a
href="cff76cb00b">cff76cb</a>)</li>
<li><strong>perf:</strong> skip traversing types for NotGiven values (<a
href="dadac7fa72">dadac7f</a>)</li>
<li><strong>project:</strong> bump httpx minimum version to 0.25.0 (<a
href="b554138c2f">b554138</a>),
closes <a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/902">#902</a></li>
<li><strong>types:</strong> handle more discriminated union shapes (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/906">#906</a>)
(<a
href="2fc179a4d2">2fc179a</a>)</li>
<li><strong>vertex:</strong> explicitly include requests extra (<a
href="2b1221b76b">2b1221b</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md">anthropic's
changelog</a>.</em></p>
<blockquote>
<h2>0.51.0 (2025-05-07)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.50.0...v0.51.0">v0.50.0...v0.51.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds web search capabilities to the Claude API
(<a
href="bec0cf93c2">bec0cf9</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>pydantic v1:</strong> more robust ModelField.annotation
check (<a
href="c50f406767">c50f406</a>)</li>
<li><strong>sockets:</strong> handle non-portable socket flags (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/935">#935</a>)
(<a
href="205c8dda37">205c8dd</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>broadly detect json family of content-type headers (<a
href="66bbb3a668">66bbb3a</a>)</li>
<li><strong>ci:</strong> only use depot for staging repos (<a
href="c867a11af3">c867a11</a>)</li>
<li><strong>ci:</strong> run on more branches and use depot runners (<a
href="95f5f17be0">95f5f17</a>)</li>
<li><strong>internal:</strong> add back missing custom modifications for
Web Search (<a
href="f43ba69d53">f43ba69</a>)</li>
<li><strong>internal:</strong> minor formatting changes (<a
href="8afef086af">8afef08</a>)</li>
<li>use lazy imports for resources (<a
href="704be817f4">704be81</a>)</li>
</ul>
<h2>0.50.0 (2025-04-22)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.49.0...v0.50.0">v0.49.0...v0.50.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> extract ContentBlockDelta events into their
own schemas (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/920">#920</a>)
(<a
href="ae773d673a">ae773d6</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="46ac1f8d1c">46ac1f8</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="48d9739ad7">48d9739</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="66e8cc3fb2">66e8cc3</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="a74746e0df">a74746e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>ci:</strong> ensure pip is always available (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/907">#907</a>)
(<a
href="36326871c1">3632687</a>)</li>
<li><strong>ci:</strong> remove publishing patch (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/908">#908</a>)
(<a
href="cae032381b">cae0323</a>)</li>
<li><strong>client:</strong> deduplicate stop reason type (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/913">#913</a>)
(<a
href="3ab0194550">3ab0194</a>)</li>
<li><strong>client:</strong> send all configured auth headers (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/929">#929</a>)
(<a
href="9d2581e79f">9d2581e</a>)</li>
<li><strong>perf:</strong> optimize some hot paths (<a
href="cff76cb00b">cff76cb</a>)</li>
<li><strong>perf:</strong> skip traversing types for NotGiven values (<a
href="dadac7fa72">dadac7f</a>)</li>
<li><strong>project:</strong> bump httpx minimum version to 0.25.0 (<a
href="b554138c2f">b554138</a>),
closes <a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/902">#902</a></li>
<li><strong>types:</strong> handle more discriminated union shapes (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/906">#906</a>)
(<a
href="2fc179a4d2">2fc179a</a>)</li>
<li><strong>vertex:</strong> explicitly include requests extra (<a
href="2b1221b76b">2b1221b</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e42451ab3f"><code>e42451a</code></a>
release: 0.51.0</li>
<li><a
href="4c7f97f3ea"><code>4c7f97f</code></a>
chore(internal): add back missing custom modifications for Web
Search</li>
<li><a
href="2da00f26c5"><code>2da00f2</code></a>
feat(api): adds web search capabilities to the Claude API</li>
<li><a
href="51fd796456"><code>51fd796</code></a>
fix(sockets): handle non-portable socket flags (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-python/issues/935">#935</a>)</li>
<li><a
href="ac6cfee090"><code>ac6cfee</code></a>
chore: use lazy imports for resources</li>
<li><a
href="215f5bbe56"><code>215f5bb</code></a>
chore: broadly detect json family of content-type headers</li>
<li><a
href="bcaa8a582b"><code>bcaa8a5</code></a>
chore(ci): only use depot for staging repos</li>
<li><a
href="a41e9c346a"><code>a41e9c3</code></a>
chore(ci): run on more branches and use depot runners</li>
<li><a
href="bfebcd91c6"><code>bfebcd9</code></a>
chore(internal): minor formatting changes</li>
<li><a
href="e3548ac1c5"><code>e3548ac</code></a>
fix(pydantic v1): more robust ModelField.annotation check</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-python/compare/v0.49.0...v0.51.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `click` from 8.1.8 to 8.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/click/releases">click's
releases</a>.</em></p>
<blockquote>
<h2>8.2.0</h2>
<p>This is the Click 8.2.0 feature release. A feature release may
include new features, remove previously deprecated code, add new
deprecation, or introduce potentially breaking changes.</p>
<p>We encourage everyone to upgrade. You can read more about our <a
href="https://palletsprojects.com/versions">Version Support Policy</a>
on our website.</p>
<p>PyPI: <a
href="https://pypi.org/project/click/8.2.0/">https://pypi.org/project/click/8.2.0/</a>
Changes: <a
href="https://click.palletsprojects.com/en/stable/changes/">https://click.palletsprojects.com/en/stable/changes/</a>
Milestone <a
href="https://github.com/pallets/click/milestone/15">https://github.com/pallets/click/milestone/15</a></p>
<ul>
<li>Drop support for Python 3.7, 3.8,and 3.9. <a
href="https://redirect.github.com/pallets/click/issues/2588">#2588</a>,
<a
href="https://redirect.github.com/pallets/click/issues/2893">#2893</a></li>
<li>Use modern packaging metadata with <code>pyproject.toml</code>
instead of <code>setup.cfg</code>. <a
href="https://redirect.github.com/pallets/click/issues/2438">#2438</a></li>
<li>Use <code>flit_core</code> instead of <code>setuptools</code> as
build backend. <a
href="https://redirect.github.com/pallets/click/issues/2543">#2543</a></li>
<li>Deprecate the <code>__version__</code> attribute. Use feature
detection, or
<code>importlib.metadata.version(&quot;click&quot;)</code>, instead. <a
href="https://redirect.github.com/pallets/click/issues/2598">#2598</a></li>
<li><code>BaseCommand</code> is deprecated. <code>Command</code> is the
base class for all commands. <a
href="https://redirect.github.com/pallets/click/issues/2589">#2589</a></li>
<li><code>MultiCommand</code> is deprecated. <code>Group</code> is the
base class for all group commands. <a
href="https://redirect.github.com/pallets/click/issues/2590">#2590</a></li>
<li>The current parser and related classes and methods, are deprecated.
<a
href="https://redirect.github.com/pallets/click/issues/2205">#2205</a>
<ul>
<li><code>OptionParser</code> and the <code>parser</code> module, which
is a modified copy of <code>optparse</code> in the standard
library.</li>
<li><code>Context.protected_args</code> is unneeded.
<code>Context.args</code> contains any remaining arguments while
parsing.</li>
<li><code>Parameter.add_to_parser</code> (on both <code>Argument</code>
and <code>Option</code>) is unneeded. Parsing works directly without
building a separate parser.</li>
<li><code>split_arg_string</code> is moved from <code>parser</code> to
<code>shell_completion</code>.</li>
</ul>
</li>
<li>Enable deferred evaluation of annotations with <code>from __future__
import annotations</code>. <a
href="https://redirect.github.com/pallets/click/issues/2270">#2270</a></li>
<li>When generating a command's name from a decorated function's name,
the suffixes <code>_command</code>, <code>_cmd</code>,
<code>_group</code>, and <code>_grp</code> are removed. <a
href="https://redirect.github.com/pallets/click/issues/2322">#2322</a></li>
<li>Show the <code>types.ParamType.name</code> for
<code>types.Choice</code> options within <code>--help</code> message if
<code>show_choices=False</code> is specified. <a
href="https://redirect.github.com/pallets/click/issues/2356">#2356</a></li>
<li>Do not display default values in prompts when
<code>Option.show_default</code> is <code>False</code>. <a
href="https://redirect.github.com/pallets/click/issues/2509">#2509</a></li>
<li>Add <code>get_help_extra</code> method on <code>Option</code> to
fetch the generated extra items used in <code>get_help_record</code> to
render help text. <a
href="https://redirect.github.com/pallets/click/issues/2516">#2516</a>
<a
href="https://redirect.github.com/pallets/click/issues/2517">#2517</a></li>
<li>Keep stdout and stderr streams independent in
<code>CliRunner</code>. Always collect stderr output and never raise an
exception. Add a new output stream to simulate what the user sees in its
terminal. Removes the <code>mix_stderr</code> parameter in
<code>CliRunner</code>. <a
href="https://redirect.github.com/pallets/click/issues/2522">#2522</a>
<a
href="https://redirect.github.com/pallets/click/issues/2523">#2523</a></li>
<li><code>Option.show_envvar</code> now also shows environment variable
in error messages. <a
href="https://redirect.github.com/pallets/click/issues/2695">#2695</a>
<a
href="https://redirect.github.com/pallets/click/issues/2696">#2696</a></li>
<li><code>Context.close</code> will be called on exit. This results in
all <code>Context.call_on_close</code> callbacks and context managers
added via <code>Context.with_resource</code> to be closed on exit as
well. <a
href="https://redirect.github.com/pallets/click/issues/2680">#2680</a></li>
<li>Add <code>ProgressBar(hidden: bool)</code> to allow hiding the
progressbar. <a
href="https://redirect.github.com/pallets/click/issues/2609">#2609</a></li>
<li>A <code>UserWarning</code> will be shown when multiple parameters
attempt to use the same name. <a
href="https://redirect.github.com/pallets/click/issues/2396">#2396</a></li>
<li>When using <code>Option.envvar</code> with
<code>Option.flag_value</code>, the <code>flag_value</code> will always
be used instead of the value of the environment variable. <a
href="https://redirect.github.com/pallets/click/issues/2746">#2746</a>
<a
href="https://redirect.github.com/pallets/click/issues/2788">#2788</a></li>
<li>Add <code>Choice.get_invalid_choice_message</code> method for
customizing the invalid choice message. <a
href="https://redirect.github.com/pallets/click/issues/2621">#2621</a>
<a
href="https://redirect.github.com/pallets/click/issues/2622">#2622</a></li>
<li>If help is shown because <code>no_args_is_help</code> is enabled
(defaults to <code>True</code> for groups, <code>False</code> for
commands), the exit code is 2 instead of 0. <a
href="https://redirect.github.com/pallets/click/issues/1489">#1489</a>
<a
href="https://redirect.github.com/pallets/click/issues/1489">#1489</a></li>
<li>Contexts created during shell completion are closed properly, fixing
a <code>ResourceWarning</code> when using <code>click.File</code>. <a
href="https://redirect.github.com/pallets/click/issues/2644">#2644</a>
<a
href="https://redirect.github.com/pallets/click/issues/2800">#2800</a>
<a
href="https://redirect.github.com/pallets/click/issues/2767">#2767</a></li>
<li><code>click.edit(filename)</code> now supports passing an iterable
of filenames in case the editor supports editing multiple files at once.
Its return type is now also typed: <code>AnyStr</code> if
<code>text</code> is passed, otherwise <code>None</code>. <a
href="https://redirect.github.com/pallets/click/issues/2067">#2067</a>
<a
href="https://redirect.github.com/pallets/click/issues/2068">#2068</a></li>
<li>Specialized typing of <code>progressbar(length=...)</code> as
<code>ProgressBar[int]</code>. <a
href="https://redirect.github.com/pallets/click/issues/2630">#2630</a></li>
<li>Improve <code>echo_via_pager</code> behaviour in face of errors. <a
href="https://redirect.github.com/pallets/click/issues/2674">#2674</a>
<ul>
<li>Terminate the pager in case a generator passed to
<code>echo_via_pager</code> raises an exception.</li>
<li>Ensure to always close the pipe to the pager process and wait for it
to terminate.</li>
<li><code>echo_via_pager</code> will not ignore
<code>KeyboardInterrupt</code> anymore. This allows the user to search
for future output of the generator when using less and then aborting the
program using ctrl-c.</li>
</ul>
</li>
<li><code>deprecated: bool | str</code> can now be used on options and
arguments. This previously was only available for <code>Command</code>.
The message can now also be customised by using a <code>str</code>
instead of a <code>bool</code>. <a
href="https://redirect.github.com/pallets/click/issues/2263">#2263</a>
<a
href="https://redirect.github.com/pallets/click/issues/2271">#2271</a>
<ul>
<li><code>Command.deprecated</code> formatting in <code>--help</code>
changed from <code>(Deprecated) help</code> to <code>help
(DEPRECATED)</code>.</li>
<li>Parameters cannot be required nor prompted or an error is
raised.</li>
<li>A warning will be printed when something deprecated is used.</li>
</ul>
</li>
<li>Add a <code>catch_exceptions</code> parameter to
<code>CliRunner</code>. If <code>catch_exceptions</code> is not passed
to <code>CliRunner.invoke</code>, the value from <code>CliRunner</code>
is used. <a
href="https://redirect.github.com/pallets/click/issues/2817">#2817</a>
<a
href="https://redirect.github.com/pallets/click/issues/2818">#2818</a></li>
<li><code>Option.flag_value</code> will no longer have a default value
set based on <code>Option.default</code> if <code>Option.is_flag</code>
is <code>False</code>. This results in <code>Option.default</code> not
needing to implement <code>__bool__</code>. <a
href="https://redirect.github.com/pallets/click/issues/2829">#2829</a></li>
<li>Incorrect <code>click.edit</code> typing has been corrected. <a
href="https://redirect.github.com/pallets/click/issues/2804">#2804</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/click/blob/main/CHANGES.rst">click's
changelog</a>.</em></p>
<blockquote>
<h2>Version 8.2.0</h2>
<p>Released 2025-05-10</p>
<ul>
<li>
<p>Drop support for Python 3.7, 3.8, and 3.9. :pr:<code>2588</code>
:pr:<code>2893</code></p>
</li>
<li>
<p>Use modern packaging metadata with <code>pyproject.toml</code>
instead of <code>setup.cfg</code>.
:pr:<code>2438</code></p>
</li>
<li>
<p>Use <code>flit_core</code> instead of <code>setuptools</code> as
build backend. :pr:<code>2543</code></p>
</li>
<li>
<p>Deprecate the <code>__version__</code> attribute. Use feature
detection, or
<code>importlib.metadata.version(&quot;click&quot;)</code>, instead.
:issue:<code>2598</code></p>
</li>
<li>
<p><code>BaseCommand</code> is deprecated. <code>Command</code> is the
base class for all
commands. :issue:<code>2589</code></p>
</li>
<li>
<p><code>MultiCommand</code> is deprecated. <code>Group</code> is the
base class for all group
commands. :issue:<code>2590</code></p>
</li>
<li>
<p>The current parser and related classes and methods, are deprecated.
:issue:<code>2205</code></p>
<ul>
<li><code>OptionParser</code> and the <code>parser</code> module, which
is a modified copy of
<code>optparse</code> in the standard library.</li>
<li><code>Context.protected_args</code> is unneeded.
<code>Context.args</code> contains any
remaining arguments while parsing.</li>
<li><code>Parameter.add_to_parser</code> (on both <code>Argument</code>
and <code>Option</code>) is
unneeded. Parsing works directly without building a separate
parser.</li>
<li><code>split_arg_string</code> is moved from <code>parser</code> to
<code>shell_completion</code>.</li>
</ul>
</li>
<li>
<p>Enable deferred evaluation of annotations with
<code>from __future__ import annotations</code>.
:pr:<code>2270</code></p>
</li>
<li>
<p>When generating a command's name from a decorated function's name,
the
suffixes <code>_command</code>, <code>_cmd</code>, <code>_group</code>,
and <code>_grp</code> are removed.
:issue:<code>2322</code></p>
</li>
<li>
<p>Show the <code>types.ParamType.name</code> for
<code>types.Choice</code> options within
<code>--help</code> message if <code>show_choices=False</code> is
specified.
:issue:<code>2356</code></p>
</li>
<li>
<p>Do not display default values in prompts when
<code>Option.show_default</code> is
<code>False</code>. :pr:<code>2509</code></p>
</li>
<li>
<p>Add <code>get_help_extra</code> method on <code>Option</code> to
fetch the generated extra
items used in <code>get_help_record</code> to render help text.
:issue:<code>2516</code>
:pr:<code>2517</code></p>
</li>
<li>
<p>Keep stdout and stderr streams independent in <code>CliRunner</code>.
Always
collect stderr output and never raise an exception. Add a new
output stream to simulate what the user sees in its terminal. Removes
the <code>mix_stderr</code> parameter in <code>CliRunner</code>.
:issue:<code>2522</code> :pr:<code>2523</code></p>
</li>
<li>
<p><code>Option.show_envvar</code> now also shows environment variable
in error messages.
:issue:<code>2695</code> :pr:<code>2696</code></p>
</li>
<li>
<p><code>Context.close</code> will be called on exit. This results in
all
<code>Context.call_on_close</code> callbacks and context managers added
via
<code>Context.with_resource</code> to be closed on exit as well.
:pr:<code>2680</code></p>
</li>
<li>
<p>Add <code>ProgressBar(hidden: bool)</code> to allow hiding the
progressbar. :issue:<code>2609</code></p>
</li>
<li>
<p>A <code>UserWarning</code> will be shown when multiple parameters
attempt to use the</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="219206a186"><code>219206a</code></a>
release version 8.2.0</li>
<li><a
href="498f882604"><code>498f882</code></a>
drop end of life python versions (<a
href="https://redirect.github.com/pallets/click/issues/2893">#2893</a>)</li>
<li><a
href="ba770cbc96"><code>ba770cb</code></a>
drop end of life python versions</li>
<li><a
href="f14b75063f"><code>f14b750</code></a>
update dev dependencies</li>
<li><a
href="9982faee85"><code>9982fae</code></a>
Update CHANGES.rst</li>
<li><a
href="7318f5f11b"><code>7318f5f</code></a>
Update CHANGES.rst</li>
<li><a
href="b7c0ab471c"><code>b7c0ab4</code></a>
Merge <code>stable</code> into <code>main</code>; Release 8.2.0 (<a
href="https://redirect.github.com/pallets/click/issues/2873">#2873</a>)</li>
<li><a
href="c9b96fe08d"><code>c9b96fe</code></a>
Merge branch 'main' into main</li>
<li><a
href="ab21233fc8"><code>ab21233</code></a>
Rewrite second half of options docs (<a
href="https://redirect.github.com/pallets/click/issues/2848">#2848</a>)</li>
<li><a
href="8c89a14362"><code>8c89a14</code></a>
Merge branch 'main' into options_docs_2</li>
<li>Additional commits viewable in <a
href="https://github.com/pallets/click/compare/8.1.8...8.2.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `e2b-code-interpreter` from 1.1.1 to 1.5.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c590c09188"><code>c590c09</code></a>
Bump e2b core to 1.4.0 (<a
href="https://redirect.github.com/e2b-dev/code-interpreter/issues/101">#101</a>)</li>
<li><a
href="0ba58b4a97"><code>0ba58b4</code></a>
vitest: continue after failing test (<a
href="https://redirect.github.com/e2b-dev/code-interpreter/issues/100">#100</a>)</li>
<li><a
href="e80eb185dd"><code>e80eb18</code></a>
added ts-kernel tests (<a
href="https://redirect.github.com/e2b-dev/code-interpreter/issues/99">#99</a>)</li>
<li><a
href="8251c2fb3c"><code>8251c2f</code></a>
[skip ci] Release new versions</li>
<li><a
href="95163ce294"><code>95163ce</code></a>
Added TypeScript support to the code interpreter (<a
href="https://redirect.github.com/e2b-dev/code-interpreter/issues/91">#91</a>)</li>
<li><a
href="120d097e24"><code>120d097</code></a>
[skip ci] Release new versions</li>
<li><a
href="9f9a423e45"><code>9f9a423</code></a>
Updated template with SWC compiler for TypeScript (<a
href="https://redirect.github.com/e2b-dev/code-interpreter/issues/97">#97</a>)</li>
<li><a
href="3be5d224f8"><code>3be5d22</code></a>
[skip ci] Release new versions</li>
<li><a
href="2ee6ffb9aa"><code>2ee6ffb</code></a>
Update JS SDK target to es2017 (<a
href="https://redirect.github.com/e2b-dev/code-interpreter/issues/96">#96</a>)</li>
<li><a
href="2bfcfbb615"><code>2bfcfbb</code></a>
Security patches (<a
href="https://redirect.github.com/e2b-dev/code-interpreter/issues/95">#95</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/e2b-dev/code-interpreter/compare/@e2b/code-interpreter@1.1.1...@e2b/code-interpreter@1.5.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-api-python-client` from 2.166.0 to 2.169.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-python-client/releases">google-api-python-client's
releases</a>.</em></p>
<blockquote>
<h2>v2.169.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-python-client/compare/v2.168.0...v2.169.0">2.169.0</a>
(2025-04-29)</h2>
<h3>Features</h3>
<ul>
<li><strong>aiplatform:</strong> Update the api <a
href="6ccd7f5371</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>artifactregistry:</strong> Update the api <a
href="ac6477013f</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>blockchainnodeengine:</strong> Update the api <a
href="4b1c7d2466</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>cloudchannel:</strong> Update the api <a
href="5e15d858dd</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>cloudresourcemanager:</strong> Update the api <a
href="94d98b6e6a</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>connectors:</strong> Update the api <a
href="a456e2ceaf</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>dataflow:</strong> Update the api <a
href="ea28e0289e</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>dataform:</strong> Update the api <a
href="35990c2ffd</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>datamigration:</strong> Update the api <a
href="d9218bd460</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>dataplex:</strong> Update the api <a
href="6df52e86e8</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>dialogflow:</strong> Update the api <a
href="bb0b59eedc</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>discoveryengine:</strong> Update the api <a
href="5af62dfdcf</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>displayvideo:</strong> Update the api <a
href="67effcf14b</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>documentai:</strong> Update the api <a
href="fadb34b1a6</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>drive:</strong> Update the api <a
href="7d2063f757</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>file:</strong> Update the api <a
href="a820c78341</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>firebaseml:</strong> Update the api <a
href="e45e9b0fc2</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>gkehub:</strong> Update the api <a
href="3c38499a90</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>iamcredentials:</strong> Update the api <a
href="c59ac8442a</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>integrations:</strong> Update the api <a
href="fa57493279</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>merchantapi:</strong> Update the api <a
href="8e00992fb2</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>networkconnectivity:</strong> Update the api <a
href="b3c8df3478</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>networkmanagement:</strong> Update the api <a
href="62a2c6a476</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>networksecurity:</strong> Update the api <a
href="39706e9fd8</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>oracledatabase:</strong> Update the api <a
href="6678c3beeb</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>orgpolicy:</strong> Update the api <a
href="d1244740ed</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>sheets:</strong> Update the api <a
href="8b09804195</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>sqladmin:</strong> Update the api <a
href="900e43c86d</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>tpu:</strong> Update the api <a
href="183d48eb24</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>translate:</strong> Update the api <a
href="c230f82427</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>vpcaccess:</strong> Update the api <a
href="cae086c59a</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>youtube:</strong> Update the api <a
href="d0b32ba5ba</a>
(<a
href="14bd22993e">14bd229</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>admin:</strong> Update the api <a
href="82e6e7d206</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>cloudbuild:</strong> Update the api <a
href="009d14e0bd</a>
(<a
href="14bd22993e">14bd229</a>)</li>
<li><strong>storage:</strong> Update the api <a
href="e70b2a8745</a>
(<a
href="14bd22993e">14bd229</a>)</li>
</ul>
<h2>v2.168.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-python-client/compare/v2.167.0...v2.168.0">2.168.0</a>
(2025-04-22)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bece3b3b3a"><code>bece3b3</code></a>
chore(main): release 2.169.0 (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2600">#2600</a>)</li>
<li><a
href="14bd22993e"><code>14bd229</code></a>
chore: Update discovery artifacts (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2599">#2599</a>)</li>
<li><a
href="ac22e7ce69"><code>ac22e7c</code></a>
chore(main): release 2.168.0 (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2595">#2595</a>)</li>
<li><a
href="27e0dff489"><code>27e0dff</code></a>
chore: Update discovery artifacts (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2597">#2597</a>)</li>
<li><a
href="e2aaf41f7e"><code>e2aaf41</code></a>
chore: Update discovery artifacts (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2596">#2596</a>)</li>
<li><a
href="607bd3d516"><code>607bd3d</code></a>
fix: remove setup.cfg configuration for creating universal wheels (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2580">#2580</a>)</li>
<li><a
href="236c82dc14"><code>236c82d</code></a>
chore(main): release 2.167.0 (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2591">#2591</a>)</li>
<li><a
href="139f58fb30"><code>139f58f</code></a>
fix: explicitly declare support for Python 3.13 (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2593">#2593</a>)</li>
<li><a
href="f84e041b4b"><code>f84e041</code></a>
chore: Update discovery artifacts (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2594">#2594</a>)</li>
<li><a
href="a9db82a60a"><code>a9db82a</code></a>
chore: Update discovery artifacts (<a
href="https://redirect.github.com/googleapis/google-api-python-client/issues/2590">#2590</a>)</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-api-python-client/compare/v2.166.0...v2.169.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-auth-oauthlib` from 1.2.1 to 1.2.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/releases">google-auth-oauthlib's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.2</h2>
<h2><a
href="https://github.com/googleapis/google-auth-library-python-oauthlib/compare/v1.2.1...v1.2.2">1.2.2</a>
(2025-04-01)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Do not include docs/conf.py &amp; scripts in wheel (<a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/328">#328</a>)
(<a
href="78940dfce4">78940df</a>)</li>
<li>Let OS select an available port when running TestInstalledAppFlow
(<a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/407">#407</a>)
(<a
href="6060d65626">6060d65</a>),
closes <a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/381">#381</a></li>
<li>Remove setup.cfg configuration for creating universal wheels (<a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/405">#405</a>)
(<a
href="0b962ed5aa">0b962ed</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-auth-library-python-oauthlib/blob/main/CHANGELOG.md">google-auth-oauthlib's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-auth-library-python-oauthlib/compare/v1.2.1...v1.2.2">1.2.2</a>
(2025-04-01)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Do not include docs/conf.py &amp; scripts in wheel (<a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/328">#328</a>)
(<a
href="78940dfce4">78940df</a>)</li>
<li>Let OS select an available port when running TestInstalledAppFlow
(<a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/407">#407</a>)
(<a
href="6060d65626">6060d65</a>),
closes <a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/381">#381</a></li>
<li>Remove setup.cfg configuration for creating universal wheels (<a
href="https://redirect.github.com/googleapis/google-auth-library-python-oauthlib/issues/405">#405</a>)
(<a
href="0b962ed5aa">0b962ed</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cc29cc3c37"><code>cc29cc3</code></a>
chore(main): release 1.2.2 (<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/368">#368</a>)</li>
<li><a
href="6060d65626"><code>6060d65</code></a>
fix: Let OS select an available port when running TestInstalledAppFlow
(<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/407">#407</a>)</li>
<li><a
href="0b962ed5aa"><code>0b962ed</code></a>
fix: remove setup.cfg configuration for creating universal wheels (<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/405">#405</a>)</li>
<li><a
href="dedc58a521"><code>dedc58a</code></a>
chore: remove unused files (<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/402">#402</a>)</li>
<li><a
href="63442e94fd"><code>63442e9</code></a>
chore(python): conditionally load credentials in .kokoro/build.sh (<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/398">#398</a>)</li>
<li><a
href="9a1dfab8e9"><code>9a1dfab</code></a>
chore: check if port is in use before returning the port to start a new
serve...</li>
<li><a
href="9c3861009e"><code>9c38610</code></a>
chore: Reduce prioirty of flaky tests (<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/390">#390</a>)</li>
<li><a
href="780f6a6cae"><code>780f6a6</code></a>
chore(python): Update the python version in docs presubmit to use 3.10
(<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/387">#387</a>)</li>
<li><a
href="2a561a6975"><code>2a561a6</code></a>
chore(deps): update all dependencies (<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/382">#382</a>)</li>
<li><a
href="c220b451d1"><code>c220b45</code></a>
chore(python): update dependencies in .kokoro/docker/docs (<a
href="https://redirect.github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/issues/380">#380</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib/compare/v1.2.1...v1.2.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `groq` from 0.20.0 to 0.24.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/groq/groq-python/releases">groq's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.0</h2>
<h2>0.24.0 (2025-05-02)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.23.1...v0.24.0">v0.23.1...v0.24.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> api update (<a
href="e65ff4d299">e65ff4d</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add include/exclude_domains to all chat completions overloads (<a
href="7616f4b2e9">7616f4b</a>)</li>
</ul>
<h2>v0.23.1</h2>
<h2>0.23.1 (2025-04-24)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.23.0...v0.23.1">v0.23.0...v0.23.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li>add executed_tools to streaming choicedelta (<a
href="fb26fbcd0b">fb26fbc</a>)</li>
<li><strong>pydantic v1:</strong> more robust ModelField.annotation
check (<a
href="40aaee2cd7">40aaee2</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>broadly detect json family of content-type headers (<a
href="2411533949">2411533</a>)</li>
<li><strong>ci:</strong> add timeout thresholds for CI jobs (<a
href="aae461436e">aae4614</a>)</li>
<li><strong>ci:</strong> only use depot for staging repos (<a
href="b6d1b47c1c">b6d1b47</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="1da64f5c78">1da64f5</a>)</li>
<li><strong>internal:</strong> fix list file params (<a
href="a9b18debf8">a9b18de</a>)</li>
<li><strong>internal:</strong> import reformatting (<a
href="5068736832">5068736</a>)</li>
<li><strong>internal:</strong> minor formatting changes (<a
href="bc26d603a5">bc26d60</a>)</li>
<li><strong>internal:</strong> refactor retries to not use recursion (<a
href="488b9fe0a8">488b9fe</a>)</li>
</ul>
<h2>v0.23.0</h2>
<h2>0.23.0 (2025-04-22)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.22.0...v0.23.0">v0.22.0...v0.23.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> api update (<a
href="f5cbd0148e">f5cbd01</a>)</li>
<li><strong>api:</strong> api update (<a
href="e7c5514b3e">e7c5514</a>)</li>
<li><strong>api:</strong> api update (<a
href="9d5b7c8ba4">9d5b7c8</a>)</li>
<li><strong>api:</strong> api update (<a
href="73357e15c4">73357e1</a>)</li>
<li><strong>api:</strong> api update (<a
href="b1d6697301">b1d6697</a>)</li>
<li><strong>api:</strong> api update (<a
href="98ef30efd2">98ef30e</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/groq/groq-python/blob/main/CHANGELOG.md">groq's
changelog</a>.</em></p>
<blockquote>
<h2>0.24.0 (2025-05-02)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.23.1...v0.24.0">v0.23.1...v0.24.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> api update (<a
href="e65ff4d299">e65ff4d</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add include/exclude_domains to all chat completions overloads (<a
href="7616f4b2e9">7616f4b</a>)</li>
</ul>
<h2>0.23.1 (2025-04-24)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.23.0...v0.23.1">v0.23.0...v0.23.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li>add executed_tools to streaming choicedelta (<a
href="fb26fbcd0b">fb26fbc</a>)</li>
<li><strong>pydantic v1:</strong> more robust ModelField.annotation
check (<a
href="40aaee2cd7">40aaee2</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>broadly detect json family of content-type headers (<a
href="2411533949">2411533</a>)</li>
<li><strong>ci:</strong> add timeout thresholds for CI jobs (<a
href="aae461436e">aae4614</a>)</li>
<li><strong>ci:</strong> only use depot for staging repos (<a
href="b6d1b47c1c">b6d1b47</a>)</li>
<li><strong>internal:</strong> codegen related update (<a
href="1da64f5c78">1da64f5</a>)</li>
<li><strong>internal:</strong> fix list file params (<a
href="a9b18debf8">a9b18de</a>)</li>
<li><strong>internal:</strong> import reformatting (<a
href="5068736832">5068736</a>)</li>
<li><strong>internal:</strong> minor formatting changes (<a
href="bc26d603a5">bc26d60</a>)</li>
<li><strong>internal:</strong> refactor retries to not use recursion (<a
href="488b9fe0a8">488b9fe</a>)</li>
</ul>
<h2>0.23.0 (2025-04-22)</h2>
<p>Full Changelog: <a
href="https://github.com/groq/groq-python/compare/v0.22.0...v0.23.0">v0.22.0...v0.23.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> api update (<a
href="f5cbd0148e">f5cbd01</a>)</li>
<li><strong>api:</strong> api update (<a
href="e7c5514b3e">e7c5514</a>)</li>
<li><strong>api:</strong> api update (<a
href="9d5b7c8ba4">9d5b7c8</a>)</li>
<li><strong>api:</strong> api update (<a
href="73357e15c4">73357e1</a>)</li>
<li><strong>api:</strong> api update (<a
href="b1d6697301">b1d6697</a>)</li>
<li><strong>api:</strong> api update (<a
href="98ef30efd2">98ef30e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e1280b2c3e"><code>e1280b2</code></a>
release: 0.24.0 (<a
href="https://redirect.github.com/groq/groq-python/issues/240">#240</a>)</li>
<li><a
href="ab7fe20db7"><code>ab7fe20</code></a>
release: 0.23.1 (<a
href="https://redirect.github.com/groq/groq-python/issues/239">#239</a>)</li>
<li><a href="https://github.com/groq/groq-python/commit/f3d1ea0...

_Description has been truncated_

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-05-16 10:26:39 +00:00
dependabot[bot]
ba91c9f736 chore(libs/deps): Update 4 dependencies (#9908)
Bumps the production-dependencies group with 4 updates in the
/autogpt_platform/autogpt_libs directory:
[google-cloud-logging](https://github.com/googleapis/python-logging),
[pydantic](https://github.com/pydantic/pydantic),
[pydantic-settings](https://github.com/pydantic/pydantic-settings) and
[supabase](https://github.com/supabase/supabase-py).

Updates `google-cloud-logging` from 3.11.4 to 3.12.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/python-logging/releases">google-cloud-logging's
releases</a>.</em></p>
<blockquote>
<h2>v3.12.1</h2>
<h2><a
href="https://github.com/googleapis/python-logging/compare/v3.12.0...v3.12.1">3.12.1</a>
(2025-04-21)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Make logging handler close conditional to having the transport
opened (<a
href="https://redirect.github.com/googleapis/python-logging/issues/990">#990</a>)
(<a
href="66c6b91725">66c6b91</a>)</li>
</ul>
<h2>v3.12.0</h2>
<h2><a
href="https://github.com/googleapis/python-logging/compare/v3.11.4...v3.12.0">3.12.0</a>
(2025-04-10)</h2>
<h3>Features</h3>
<ul>
<li>Add REST Interceptors which support reading metadata (<a
href="681bcc5c1f">681bcc5</a>)</li>
<li>Add support for opt-in debug logging (<a
href="681bcc5c1f">681bcc5</a>)</li>
<li>Added flushes/close functionality to logging handlers (<a
href="https://redirect.github.com/googleapis/python-logging/issues/917">#917</a>)
(<a
href="d179304b34">d179304</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Allow protobuf 6.x (<a
href="https://redirect.github.com/googleapis/python-logging/issues/977">#977</a>)
(<a
href="6757890013">6757890</a>)</li>
<li><strong>deps:</strong> Require google-cloud-audit-log &gt;= 0.3.1
(<a
href="https://redirect.github.com/googleapis/python-logging/issues/979">#979</a>)
(<a
href="1cc00ecf64">1cc00ec</a>)</li>
<li>Fix typing issue with gRPC metadata when key ends in -bin (<a
href="681bcc5c1f">681bcc5</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Added documentation on log_level and excluded_loggers params in
setup_logging (<a
href="https://redirect.github.com/googleapis/python-logging/issues/971">#971</a>)
(<a
href="70d9d25bf8">70d9d25</a>)</li>
<li>Update README to break infinite redirect loop (<a
href="https://redirect.github.com/googleapis/python-logging/issues/972">#972</a>)
(<a
href="52cd907bb3">52cd907</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md">google-cloud-logging's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/python-logging/compare/v3.12.0...v3.12.1">3.12.1</a>
(2025-04-21)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Make logging handler close conditional to having the transport
opened (<a
href="https://redirect.github.com/googleapis/python-logging/issues/990">#990</a>)
(<a
href="66c6b91725">66c6b91</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/python-logging/compare/v3.11.4...v3.12.0">3.12.0</a>
(2025-04-10)</h2>
<h3>Features</h3>
<ul>
<li>Add REST Interceptors which support reading metadata (<a
href="681bcc5c1f">681bcc5</a>)</li>
<li>Add support for opt-in debug logging (<a
href="681bcc5c1f">681bcc5</a>)</li>
<li>Added flushes/close functionality to logging handlers (<a
href="https://redirect.github.com/googleapis/python-logging/issues/917">#917</a>)
(<a
href="d179304b34">d179304</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Allow protobuf 6.x (<a
href="https://redirect.github.com/googleapis/python-logging/issues/977">#977</a>)
(<a
href="6757890013">6757890</a>)</li>
<li><strong>deps:</strong> Require google-cloud-audit-log &gt;= 0.3.1
(<a
href="https://redirect.github.com/googleapis/python-logging/issues/979">#979</a>)
(<a
href="1cc00ecf64">1cc00ec</a>)</li>
<li>Fix typing issue with gRPC metadata when key ends in -bin (<a
href="681bcc5c1f">681bcc5</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Added documentation on log_level and excluded_loggers params in
setup_logging (<a
href="https://redirect.github.com/googleapis/python-logging/issues/971">#971</a>)
(<a
href="70d9d25bf8">70d9d25</a>)</li>
<li>Update README to break infinite redirect loop (<a
href="https://redirect.github.com/googleapis/python-logging/issues/972">#972</a>)
(<a
href="52cd907bb3">52cd907</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f4fb25ab6f"><code>f4fb25a</code></a>
chore(main): release 3.12.1 (<a
href="https://redirect.github.com/googleapis/python-logging/issues/992">#992</a>)</li>
<li><a
href="66c6b91725"><code>66c6b91</code></a>
fix: make logging handler close conditional to having the transport
opened (#...</li>
<li><a
href="5f89b5f77d"><code>5f89b5f</code></a>
chore(main): release 3.12.0 (<a
href="https://redirect.github.com/googleapis/python-logging/issues/973">#973</a>)</li>
<li><a
href="5db27c2ac0"><code>5db27c2</code></a>
chore(python): remove .flake8 configuration file in templates (<a
href="https://redirect.github.com/googleapis/python-logging/issues/983">#983</a>)</li>
<li><a
href="d179304b34"><code>d179304</code></a>
feat: Added flushes/close functionality to logging handlers (<a
href="https://redirect.github.com/googleapis/python-logging/issues/917">#917</a>)</li>
<li><a
href="1cc00ecf64"><code>1cc00ec</code></a>
fix(deps): require google-cloud-audit-log &gt;= 0.3.1 (<a
href="https://redirect.github.com/googleapis/python-logging/issues/979">#979</a>)</li>
<li><a
href="42387bf63f"><code>42387bf</code></a>
chore: Update gapic-generator-python to 1.23.6 (<a
href="https://redirect.github.com/googleapis/python-logging/issues/982">#982</a>)</li>
<li><a
href="52cd907bb3"><code>52cd907</code></a>
docs: update README to break infinite redirect loop (<a
href="https://redirect.github.com/googleapis/python-logging/issues/972">#972</a>)</li>
<li><a
href="6757890013"><code>6757890</code></a>
fix: Allow protobuf 6.x (<a
href="https://redirect.github.com/googleapis/python-logging/issues/977">#977</a>)</li>
<li><a
href="40b1a528df"><code>40b1a52</code></a>
chore: remove unused files (<a
href="https://redirect.github.com/googleapis/python-logging/issues/976">#976</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/python-logging/compare/v3.11.4...v3.12.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `pydantic` from 2.11.1 to 2.11.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic/releases">pydantic's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.4 2025-04-29</h2>
<h3>What's Changed</h3>
<h4>Packaging</h4>
<ul>
<li>Bump <code>mkdocs-llmstxt</code> to v0.2.0 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11725">#11725</a></li>
</ul>
<h4>Changes</h4>
<ul>
<li>Allow config and bases to be specified together in
<code>create_model()</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11714">#11714</a>.
This change was backported as it was previously possible (although not
meant to be supported)
to provide <code>model_config</code> as a field, which would make it
possible to provide both configuration
and bases.</li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Remove generics cache workaround by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11755">#11755</a></li>
<li>Remove coercion of decimal constraints by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11772">#11772</a></li>
<li>Fix crash when expanding root type in the mypy plugin by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11735">#11735</a></li>
<li>Fix issue with recursive generic models by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11775">#11775</a></li>
<li>Traverse <code>function-before</code> schemas during schema
gathering by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11801">#11801</a></li>
</ul>
<h2>v2.11.3 2025-04-08</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Packaging</h3>
<ul>
<li>Update V1 copy to v1.10.21 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11706">pydantic/pydantic#11706</a></li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Preserve field description when rebuilding model fields by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11698">pydantic/pydantic#11698</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.11.2...v2.11.3">https://github.com/pydantic/pydantic/compare/v2.11.2...v2.11.3</a></p>
<h2>v2.11.2 2025-04-03</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Fixes</h3>
<ul>
<li>Bump <code>pydantic-core</code> to v2.33.1 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11678">pydantic/pydantic#11678</a></li>
<li>Make sure <code>__pydantic_private__</code> exists before setting
private attributes by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11666">pydantic/pydantic#11666</a></li>
<li>Do not override <code>FieldInfo._complete</code> when using field
from parent class by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11668">pydantic/pydantic#11668</a></li>
<li>Provide the available definitions when applying discriminated unions
by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11670">pydantic/pydantic#11670</a></li>
<li>Do not expand root type in the mypy plugin for variables by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11676">pydantic/pydantic#11676</a></li>
<li>Mention the attribute name in model fields deprecation message by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11674">pydantic/pydantic#11674</a></li>
<li>Properly validate parameterized mappings by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11658">pydantic/pydantic#11658</a></li>
<li>Prepare release v2.11.2 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11684">pydantic/pydantic#11684</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.11.1...v2.11.2">https://github.com/pydantic/pydantic/compare/v2.11.1...v2.11.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic/blob/main/HISTORY.md">pydantic's
changelog</a>.</em></p>
<blockquote>
<h2>v2.11.4 (2025-04-29)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.11.4">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Packaging</h4>
<ul>
<li>Bump <code>mkdocs-llmstxt</code> to v0.2.0 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11725">#11725</a></li>
</ul>
<h4>Changes</h4>
<ul>
<li>Allow config and bases to be specified together in
<code>create_model()</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11714">#11714</a>.
This change was backported as it was previously possible (although not
meant to be supported)
to provide <code>model_config</code> as a field, which would make it
possible to provide both configuration
and bases.</li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Remove generics cache workaround by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11755">#11755</a></li>
<li>Remove coercion of decimal constraints by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11772">#11772</a></li>
<li>Fix crash when expanding root type in the mypy plugin by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11735">#11735</a></li>
<li>Fix issue with recursive generic models by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11775">#11775</a></li>
<li>Traverse <code>function-before</code> schemas during schema
gathering by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11801">#11801</a></li>
</ul>
<h2>v2.11.3 (2025-04-08)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.11.3">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Packaging</h4>
<ul>
<li>Update V1 copy to v1.10.21 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11706">#11706</a></li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Preserve field description when rebuilding model fields by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11698">#11698</a></li>
</ul>
<h2>v2.11.2 (2025-04-03)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.11.2">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Bump <code>pydantic-core</code> to v2.33.1 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11678">#11678</a></li>
<li>Make sure <code>__pydantic_private__</code> exists before setting
private attributes by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11666">#11666</a></li>
<li>Do not override <code>FieldInfo._complete</code> when using field
from parent class by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/11668">#11668</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d444cd1cf6"><code>d444cd1</code></a>
Prepare release v2.11.4</li>
<li><a
href="828fc48d55"><code>828fc48</code></a>
Add documentation note about common pitfall with the annotated
pattern</li>
<li><a
href="42bf1fd784"><code>42bf1fd</code></a>
Bump <code>pydantic-core</code> to v2.33.2 (<a
href="https://redirect.github.com/pydantic/pydantic/issues/11804">#11804</a>)</li>
<li><a
href="7b3f513215"><code>7b3f513</code></a>
Allow config and bases to be specified together in
<code>create_model()</code></li>
<li><a
href="fc521388f2"><code>fc52138</code></a>
Traverse <code>function-before</code> schemas during schema
gathering</li>
<li><a
href="25af78934a"><code>25af789</code></a>
Fix issue with recursive generic models</li>
<li><a
href="91ef6bb39e"><code>91ef6bb</code></a>
Update monthly download count in documentation</li>
<li><a
href="a830775328"><code>a830775</code></a>
Bump <code>mkdocs-llmstxt</code> to v0.2.0</li>
<li><a
href="f5d1c87128"><code>f5d1c87</code></a>
Fix crash when expanding root type in the mypy plugin</li>
<li><a
href="c80bb355d7"><code>c80bb35</code></a>
Remove coercion of decimal constraints</li>
<li>Additional commits viewable in <a
href="https://github.com/pydantic/pydantic/compare/v2.11.1...v2.11.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `pydantic-settings` from 2.8.1 to 2.9.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic-settings/releases">pydantic-settings's
releases</a>.</em></p>
<blockquote>
<h2>v2.9.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Drop support for Python 3.8 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/560">pydantic/pydantic-settings#560</a></li>
<li>Switch to <code>typing-inspection</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/556">pydantic/pydantic-settings#556</a></li>
<li>Introduce <code>uv</code> for Project Management by <a
href="https://github.com/KanchiShimono"><code>@​KanchiShimono</code></a>
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/547">pydantic/pydantic-settings#547</a></li>
<li>Refactor sources.py into a subpackage (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/546">#546</a>)
by <a href="https://github.com/ezwiefel"><code>@​ezwiefel</code></a> in
<a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/548">pydantic/pydantic-settings#548</a></li>
<li>chore: cleanup by <a
href="https://github.com/CodeWithEmad"><code>@​CodeWithEmad</code></a>
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/563">pydantic/pydantic-settings#563</a></li>
<li>Fix typo in documentation by <a
href="https://github.com/CodeWithEmad"><code>@​CodeWithEmad</code></a>
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/564">pydantic/pydantic-settings#564</a></li>
<li>Add support for AWS Secrets Manager by <a
href="https://github.com/mavwolverine"><code>@​mavwolverine</code></a>
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/532">pydantic/pydantic-settings#532</a></li>
<li>Fix minor typo: conotations =&gt; connotations by <a
href="https://github.com/svenevs"><code>@​svenevs</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/577">pydantic/pydantic-settings#577</a></li>
<li>Azure Key Vault: Don't load disabled secret by <a
href="https://github.com/AndreuCodina"><code>@​AndreuCodina</code></a>
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/578">pydantic/pydantic-settings#578</a></li>
<li>Add support for GCP Secret Manager by <a
href="https://github.com/ezwiefel"><code>@​ezwiefel</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/567">pydantic/pydantic-settings#567</a></li>
<li>CLI JSON Optional Default by <a
href="https://github.com/kschwab"><code>@​kschwab</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/581">pydantic/pydantic-settings#581</a></li>
<li>Fix for env nested enum. by <a
href="https://github.com/kschwab"><code>@​kschwab</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/589">pydantic/pydantic-settings#589</a></li>
<li>CLI submodel suppress. by <a
href="https://github.com/kschwab"><code>@​kschwab</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/587">pydantic/pydantic-settings#587</a></li>
<li>Cli retrieve unknown args by <a
href="https://github.com/kschwab"><code>@​kschwab</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/588">pydantic/pydantic-settings#588</a></li>
<li>Update pydantic by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/593">pydantic/pydantic-settings#593</a></li>
<li>Fix check in CI by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/595">pydantic/pydantic-settings#595</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ezwiefel"><code>@​ezwiefel</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/548">pydantic/pydantic-settings#548</a></li>
<li><a
href="https://github.com/CodeWithEmad"><code>@​CodeWithEmad</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/563">pydantic/pydantic-settings#563</a></li>
<li><a
href="https://github.com/mavwolverine"><code>@​mavwolverine</code></a>
made their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/532">pydantic/pydantic-settings#532</a></li>
<li><a href="https://github.com/svenevs"><code>@​svenevs</code></a> made
their first contribution in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/577">pydantic/pydantic-settings#577</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.8.1...v2.9.0">https://github.com/pydantic/pydantic-settings/compare/v2.8.1...v2.9.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1874740923"><code>1874740</code></a>
Prepare release 2.9.1 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/600">#600</a>)</li>
<li><a
href="88e77bc8aa"><code>88e77bc</code></a>
Fix typo in gcp secret manager error message (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/598">#598</a>)</li>
<li><a
href="e973d9afc8"><code>e973d9a</code></a>
fix: Expose ConfigFileSourceMixing on top level
sources/<strong>init</strong>.py (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/597">#597</a>)</li>
<li><a
href="8c0f5f18b0"><code>8c0f5f1</code></a>
Fix check in CI (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/595">#595</a>)</li>
<li><a
href="0ac2312042"><code>0ac2312</code></a>
Prepare release 2.9.0 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/594">#594</a>)</li>
<li><a
href="f3e5ac382c"><code>f3e5ac3</code></a>
Update pydantic (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/593">#593</a>)</li>
<li><a
href="20640b0efe"><code>20640b0</code></a>
Cli retrieve unknown args (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/588">#588</a>)</li>
<li><a
href="ed7fd42bfb"><code>ed7fd42</code></a>
CLI submodel suppress. (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/587">#587</a>)</li>
<li><a
href="e9fb3164eb"><code>e9fb316</code></a>
Fix for env nested enum. (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/589">#589</a>)</li>
<li><a
href="0e9b329c74"><code>0e9b329</code></a>
CLI JSON Optional Default (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/581">#581</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.8.1...v2.9.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `supabase` from 2.15.0 to 2.15.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/supabase/supabase-py/releases">supabase's
releases</a>.</em></p>
<blockquote>
<h2>v2.15.1</h2>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.0...v2.15.1">2.15.1</a>
(2025-04-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>postgrest:</strong> add missing count, head, and get params
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/1098">#1098</a>)
(<a
href="e9c219ebda">e9c219e</a>)</li>
<li><strong>realtime:</strong> bump realtime from 2.4.2 to 2.4.3 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1112">#1112</a>)
(<a
href="1d429c6555">1d429c6</a>)</li>
<li>remove return type from postgrest methods (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1110">#1110</a>)
(<a
href="6664f42157">6664f42</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md">supabase's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/supabase/supabase-py/compare/v2.15.0...v2.15.1">2.15.1</a>
(2025-04-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>postgrest:</strong> add missing count, head, and get params
(<a
href="https://redirect.github.com/supabase/supabase-py/issues/1098">#1098</a>)
(<a
href="e9c219ebda">e9c219e</a>)</li>
<li><strong>realtime:</strong> bump realtime from 2.4.2 to 2.4.3 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1112">#1112</a>)
(<a
href="1d429c6555">1d429c6</a>)</li>
<li>remove return type from postgrest methods (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1110">#1110</a>)
(<a
href="6664f42157">6664f42</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9fdf32f36c"><code>9fdf32f</code></a>
chore(main): release 2.15.1 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1099">#1099</a>)</li>
<li><a
href="1d429c6555"><code>1d429c6</code></a>
fix(realtime): bump realtime from 2.4.2 to 2.4.3 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1112">#1112</a>)</li>
<li><a
href="b12940429d"><code>b129404</code></a>
chore(deps-dev): bump commitizen from 4.4.1 to 4.6.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1104">#1104</a>)</li>
<li><a
href="ad8f99e4a0"><code>ad8f99e</code></a>
chore(deps-dev): bump pytest-cov from 6.0.0 to 6.1.1 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1100">#1100</a>)</li>
<li><a
href="6664f42157"><code>6664f42</code></a>
fix: remove return type from postgrest methods (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1110">#1110</a>)</li>
<li><a
href="c0ca1758ba"><code>c0ca175</code></a>
ci: explicit permissions and remove _target (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1102">#1102</a>)</li>
<li><a
href="e9c219ebda"><code>e9c219e</code></a>
fix(postgrest): add missing count, head, and get params (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1098">#1098</a>)</li>
<li><a
href="d5aa9ce4c7"><code>d5aa9ce</code></a>
chore(deps-dev): bump python-dotenv from 1.0.1 to 1.1.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1085">#1085</a>)</li>
<li><a
href="8ff9ba8e23"><code>8ff9ba8</code></a>
chore(deps-dev): bump pytest-asyncio from 0.25.3 to 0.26.0 (<a
href="https://redirect.github.com/supabase/supabase-py/issues/1084">#1084</a>)</li>
<li>See full diff in <a
href="https://github.com/supabase/supabase-py/compare/v2.15.0...v2.15.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-05-16 09:44:23 +00:00
Nicholas Tindle
9bef383df2 fix(backend): Make URL pinning work with extra_url_validator (#9940)
Github Blocks use an URL transformer passed to `Requests` to convert web
URLs to the API URLs. This doesn't always work with the anti-SSRF URL
pinning mechanism that was implemented in #8531.

### Changes 🏗️
In `Requests.request(..)`:
- Apply `validate_url` *after* `extra_url_validator`, to prevent
mismatch between `pinned_url` and `original_hostname`
- Simplify logic & add clarifying comments

### 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] Tested the github blocks that had the issue

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2025-05-15 13:12:39 +00:00