- Resolves#8748
The webhooks system as is works really well for full blown enterprise
webhooks managed via a UI. It does not work for more "chill guy" webhook
tools that just send notifications sometimes.
## Changes 🏗️
- feat(blocks): Add Compass transcription trigger block
- feat(backend): Amend webhooks system to support manual-set-up webhooks
- Make event filter input optional on webhook-triggered nodes
- Make credentials optional on webhook-triggered nodes
- Add code path to re-use existing manual webhook on graph update
- Add `ManualWebhookManagerBase`
- feat(frontend): Add UI to pass webhook URL to user on manual-set-up
webhook blocks
![image](https://github.com/user-attachments/assets/1c35f161-7fe4-4916-8506-5ca9a838f398)
- fix(backend): Strip webhook info from node objects for graph export
- refactor(backend): Rename `backend.integrations.webhooks.base` to
`._base`
---------
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
Currently there are random issues (logout, auth desync) and
inconveniences with how Supabase and backend API works.
Resolves:
- https://github.com/Significant-Gravitas/AutoGPT/issues/9006
- https://github.com/Significant-Gravitas/AutoGPT/issues/8912
### Changes 🏗️
This PR streamlines how the Supabase and backend API is used to fix
current errors with auth, remove unnecessary code and make it easier to
use Supabase and backend API.
- Add `getServerSupabase` for server side that returns `SupabaseClient`.
- Add `Spinner` component that is used for loading animation.
- Remove redundant `useUser`, user is fetched in `useSupabase` already.
- Replace most Supabase `create*Client` to `getSupabaseServer` and
`useSupabase`.
- Remove redundant `AutoGPTServerAPI` class and rename
`BaseAutoGPTServerAPI` to `BackendAPI` and use it instead.
- Remove `SupabaseProvider` context; supabase caches internally what's
possible already.
- Move `useSupabase` hook to its own file and update it.
### Helpful table
| Next.js usage | Server | Client |
|---|---|---|
| API | `new BackendAPI();` | `new BackendAPI();`* or `useBackendAPI()`
|
| Supabase | `getServerSupabase();` | `useSupabase();` |
| user, user.role | `getServerUser();`** | `useSupabase();` |
\* `BackendAPI` automatically chooses correct Supabase client, so while
it's recommended to use `useBackendAPI()`, it's ok to use `new
BackendAPI();` in client components and even memoize it: `useMemo(() =>
new BackendAPI(), [])`.
** The reason user isn't returned in `getServerSupabase` is because it
forces async fetch but creating supabase doesn't, so it'd force
`getServerSupabase` to be async or return `{ supabase: SupabaseClient,
user: Promise<User> | null }`. For the same reason `useSupabase`
provides access to `supabase` immediately but `user` *may* be loading,
so there's `isUserLoading` provided as well.
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
---------
Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Currently, users have no way to reset their password.
### Changes 🏗️
Add `reset_password` page that displays either form to send reset
password email or lets logged in user change their password. Login page
now shows clickable "Forgot your password?" link. After updating
password user is logged out and redirected to login page.
Note: Link provided in the email just logs user in and redirects to
reset password form but password update isn't enforced.
<img width="279" alt="Screenshot 2024-12-14 at 1 28 39 PM"
src="https://github.com/user-attachments/assets/c7ada10c-74e5-4be3-8033-0912eb5b38f2"
/>
### 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] Email is sent
- [x] Link in the email logs user in and redirects to reset password
form
- [x] Reset password form works
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
The tutorial was a bit harder than we expected to completely automate.
Along the way though, we made these functions so lets keep em in for
future use
<!-- Clearly explain the need for these changes: -->
### Changes 🏗️
- Adds a few more functions for the build automation pages
<!-- 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
- [ ] I have tested my changes according to the test plan: Writing tests
Bumps the development-dependencies group in
/autogpt_platform/autogpt_libs with 1 update:
[ruff](https://github.com/astral-sh/ruff).
Updates `ruff` from 0.8.2 to 0.8.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.8.3</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>Fix fstring formatting removing overlong implicit concatenated
string in expression part (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14811">#14811</a>)</li>
<li>[<code>airflow</code>] Add fix to remove deprecated keyword
arguments (<code>AIR302</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14887">#14887</a>)</li>
<li>[<code>airflow</code>]: Extend rule to include deprecated names for
Airflow 3.0 (<code>AIR302</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14765">#14765</a>
and <a
href="https://redirect.github.com/astral-sh/ruff/pull/14804">#14804</a>)</li>
<li>[<code>flake8-bugbear</code>] Improve error messages for
<code>except*</code> (<code>B025</code>, <code>B029</code>,
<code>B030</code>, <code>B904</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14815">#14815</a>)</li>
<li>[<code>flake8-bugbear</code>] <code>itertools.batched()</code>
without explicit <code>strict</code> (<code>B911</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14408">#14408</a>)</li>
<li>[<code>flake8-use-pathlib</code>] Dotless suffix passed to
<code>Path.with_suffix()</code> (<code>PTH210</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14779">#14779</a>)</li>
<li>[<code>pylint</code>] Include parentheses and multiple comparators
in check for <code>boolean-chained-comparison</code>
(<code>PLR1716</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14781">#14781</a>)</li>
<li>[<code>ruff</code>] Do not simplify <code>round()</code> calls
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14832">#14832</a>)</li>
<li>[<code>ruff</code>] Don't emit <code>used-dummy-variable</code> on
function parameters (<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14818">#14818</a>)</li>
<li>[<code>ruff</code>] Implement <code>if-key-in-dict-del</code>
(<code>RUF051</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14553">#14553</a>)</li>
<li>[<code>ruff</code>] Mark autofix for <code>RUF052</code> as always
unsafe (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14824">#14824</a>)</li>
<li>[<code>ruff</code>] Teach autofix for
<code>used-dummy-variable</code> about TypeVars etc.
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14819">#14819</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-bugbear</code>] Offer unsafe autofix for
<code>no-explicit-stacklevel</code> (<code>B028</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14829">#14829</a>)</li>
<li>[<code>flake8-pyi</code>] Skip all type definitions in
<code>string-or-bytes-too-long</code> (<code>PYI053</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14797">#14797</a>)</li>
<li>[<code>pyupgrade</code>] Do not report when a UTF-8 comment is
followed by a non-UTF-8 one (<code>UP009</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14728">#14728</a>)</li>
<li>[<code>pyupgrade</code>] Mark fixes for
<code>convert-typed-dict-functional-to-class</code> and
<code>convert-named-tuple-functional-to-class</code> as unsafe if they
will remove comments (<code>UP013</code>, <code>UP014</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14842">#14842</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Raise syntax error for mixing <code>except</code> and
<code>except*</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14895">#14895</a>)</li>
<li>[<code>flake8-bugbear</code>] Fix <code>B028</code> to allow
<code>stacklevel</code> to be explicitly assigned as a positional
argument (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14868">#14868</a>)</li>
<li>[<code>flake8-bugbear</code>] Skip <code>B028</code> if
<code>warnings.warn</code> is called with <code>*args</code> or
<code>**kwargs</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14870">#14870</a>)</li>
<li>[<code>flake8-comprehensions</code>] Skip iterables with named
expressions in <code>unnecessary-map</code> (<code>C417</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14827">#14827</a>)</li>
<li>[<code>flake8-pyi</code>] Also remove <code>self</code> and
<code>cls</code>'s annotation (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14801">#14801</a>)</li>
<li>[<code>flake8-pytest-style</code>] Fix
<code>pytest-parametrize-names-wrong-type</code> (<code>PT006</code>) to
edit both <code>argnames</code> and <code>argvalues</code> if both of
them are single-element tuples/lists (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14699">#14699</a>)</li>
<li>[<code>perflint</code>] Improve autofix for <code>PERF401</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14369">#14369</a>)</li>
<li>[<code>pylint</code>] Fix <code>PLW1508</code> false positive for
default string created via a mult operation (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14841">#14841</a>)</li>
</ul>
<h2>Contributors</h2>
<ul>
<li><a
href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li>
<li><a
href="https://github.com/BurntSushi"><code>@BurntSushi</code></a></li>
<li><a
href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a></li>
<li><a
href="https://github.com/Glyphack"><code>@Glyphack</code></a></li>
<li><a
href="https://github.com/InSyncWithFoo"><code>@InSyncWithFoo</code></a></li>
<li><a href="https://github.com/Lee-W"><code>@Lee-W</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li>
<li><a
href="https://github.com/UnknownPlatypus"><code>@UnknownPlatypus</code></a></li>
<li><a href="https://github.com/carljm"><code>@carljm</code></a></li>
<li><a href="https://github.com/cclauss"><code>@cclauss</code></a></li>
<li><a
href="https://github.com/dcreager"><code>@dcreager</code></a></li>
<li><a
href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li>
<li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.8.3</h2>
<h3>Preview features</h3>
<ul>
<li>Fix fstring formatting removing overlong implicit concatenated
string in expression part (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14811">#14811</a>)</li>
<li>[<code>airflow</code>] Add fix to remove deprecated keyword
arguments (<code>AIR302</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14887">#14887</a>)</li>
<li>[<code>airflow</code>]: Extend rule to include deprecated names for
Airflow 3.0 (<code>AIR302</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14765">#14765</a>
and <a
href="https://redirect.github.com/astral-sh/ruff/pull/14804">#14804</a>)</li>
<li>[<code>flake8-bugbear</code>] Improve error messages for
<code>except*</code> (<code>B025</code>, <code>B029</code>,
<code>B030</code>, <code>B904</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14815">#14815</a>)</li>
<li>[<code>flake8-bugbear</code>] <code>itertools.batched()</code>
without explicit <code>strict</code> (<code>B911</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14408">#14408</a>)</li>
<li>[<code>flake8-use-pathlib</code>] Dotless suffix passed to
<code>Path.with_suffix()</code> (<code>PTH210</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14779">#14779</a>)</li>
<li>[<code>pylint</code>] Include parentheses and multiple comparators
in check for <code>boolean-chained-comparison</code>
(<code>PLR1716</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14781">#14781</a>)</li>
<li>[<code>ruff</code>] Do not simplify <code>round()</code> calls
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14832">#14832</a>)</li>
<li>[<code>ruff</code>] Don't emit <code>used-dummy-variable</code> on
function parameters (<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14818">#14818</a>)</li>
<li>[<code>ruff</code>] Implement <code>if-key-in-dict-del</code>
(<code>RUF051</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14553">#14553</a>)</li>
<li>[<code>ruff</code>] Mark autofix for <code>RUF052</code> as always
unsafe (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14824">#14824</a>)</li>
<li>[<code>ruff</code>] Teach autofix for
<code>used-dummy-variable</code> about TypeVars etc.
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14819">#14819</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-bugbear</code>] Offer unsafe autofix for
<code>no-explicit-stacklevel</code> (<code>B028</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14829">#14829</a>)</li>
<li>[<code>flake8-pyi</code>] Skip all type definitions in
<code>string-or-bytes-too-long</code> (<code>PYI053</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14797">#14797</a>)</li>
<li>[<code>pyupgrade</code>] Do not report when a UTF-8 comment is
followed by a non-UTF-8 one (<code>UP009</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14728">#14728</a>)</li>
<li>[<code>pyupgrade</code>] Mark fixes for
<code>convert-typed-dict-functional-to-class</code> and
<code>convert-named-tuple-functional-to-class</code> as unsafe if they
will remove comments (<code>UP013</code>, <code>UP014</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14842">#14842</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Raise syntax error for mixing <code>except</code> and
<code>except*</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14895">#14895</a>)</li>
<li>[<code>flake8-bugbear</code>] Fix <code>B028</code> to allow
<code>stacklevel</code> to be explicitly assigned as a positional
argument (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14868">#14868</a>)</li>
<li>[<code>flake8-bugbear</code>] Skip <code>B028</code> if
<code>warnings.warn</code> is called with <code>*args</code> or
<code>**kwargs</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14870">#14870</a>)</li>
<li>[<code>flake8-comprehensions</code>] Skip iterables with named
expressions in <code>unnecessary-map</code> (<code>C417</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14827">#14827</a>)</li>
<li>[<code>flake8-pyi</code>] Also remove <code>self</code> and
<code>cls</code>'s annotation (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14801">#14801</a>)</li>
<li>[<code>flake8-pytest-style</code>] Fix
<code>pytest-parametrize-names-wrong-type</code> (<code>PT006</code>) to
edit both <code>argnames</code> and <code>argvalues</code> if both of
them are single-element tuples/lists (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14699">#14699</a>)</li>
<li>[<code>perflint</code>] Improve autofix for <code>PERF401</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14369">#14369</a>)</li>
<li>[<code>pylint</code>] Fix <code>PLW1508</code> false positive for
default string created via a mult operation (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14841">#14841</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="53f2d72e02"><code>53f2d72</code></a>
Revert certain double quotes from workflow shell script (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14939">#14939</a>)</li>
<li><a
href="3629cbf35a"><code>3629cbf</code></a>
Use double quotes consistently for shell scripts (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14938">#14938</a>)</li>
<li><a
href="37f433814c"><code>37f4338</code></a>
Bump version to 0.8.3 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14937">#14937</a>)</li>
<li><a
href="45b565cbb5"><code>45b565c</code></a>
[red-knot] <code>Any</code> cannot be parameterized (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14933">#14933</a>)</li>
<li><a
href="82faa9bb62"><code>82faa9b</code></a>
Add tests demonstrating f-strings with debug expressions in replacements
that...</li>
<li><a
href="2eac00c60f"><code>2eac00c</code></a>
[<code>perflint</code>] fix invalid hoist in <code>perf401</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14369">#14369</a>)</li>
<li><a
href="033ecf5a4b"><code>033ecf5</code></a>
Also have zizmor check for low-severity security issues (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14893">#14893</a>)</li>
<li><a
href="5509a3d7ae"><code>5509a3d</code></a>
Add LSP settings example for Zed editor (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14894">#14894</a>)</li>
<li><a
href="e4885a2fb2"><code>e4885a2</code></a>
[red-knot] Understand <code>typing.Tuple</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14927">#14927</a>)</li>
<li><a
href="a7e5e42b88"><code>a7e5e42</code></a>
[red-knot] Make <code>attributes.md</code> test future-proof (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14923">#14923</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.8.2...0.8.3">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.8.2&new-version=0.8.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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>
Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.3
to 44.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
changelog</a>.</em></p>
<blockquote>
<p>44.0.0 - 2024-11-27</p>
<pre><code>
* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL < 3.9.
* Deprecated Python 3.7 support. Python 3.7 is no longer supported by
the
Python core team. Support for Python 3.7 will be removed in a future
``cryptography`` release.
* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
3.4.0.
* macOS wheels are now built against the macOS 10.13 SDK. Users on older
versions of macOS should upgrade, or they will need to build
``cryptography`` themselves.
* Enforce the :rfc:`5280` requirement that extended key usage extensions
must
not be empty.
* Added support for timestamp extraction to the
:class:`~cryptography.fernet.MultiFernet` class.
* Relax the Authority Key Identifier requirements on root CA
certificates
during X.509 verification to allow fields permitted by :rfc:`5280` but
forbidden by the CA/Browser BRs.
* Added support for
:class:`~cryptography.hazmat.primitives.kdf.argon2.Argon2id`
when using OpenSSL 3.2.0+.
* Added support for the :class:`~cryptography.x509.Admissions`
certificate extension.
* Added basic support for PKCS7 decryption (including S/MIME 3.2) via
:func:`~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_der`,
:func:`~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_pem`,
and
:func:`~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_smime`.
<p>.. _v43-0-3:<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f299a48153"><code>f299a48</code></a>
remove deprecated call (<a
href="https://redirect.github.com/pyca/cryptography/issues/12052">#12052</a>)</li>
<li><a
href="439eb0594a"><code>439eb05</code></a>
Bump version for 44.0.0 (<a
href="https://redirect.github.com/pyca/cryptography/issues/12051">#12051</a>)</li>
<li><a
href="2c5ad4d8dc"><code>2c5ad4d</code></a>
chore(deps): bump maturin from 1.7.4 to 1.7.5 in /.github/requirements
(<a
href="https://redirect.github.com/pyca/cryptography/issues/12050">#12050</a>)</li>
<li><a
href="d23968addd"><code>d23968a</code></a>
chore(deps): bump libc from 0.2.165 to 0.2.166 (<a
href="https://redirect.github.com/pyca/cryptography/issues/12049">#12049</a>)</li>
<li><a
href="133c0e02ed"><code>133c0e0</code></a>
Bump x509-limbo and/or wycheproof in CI (<a
href="https://redirect.github.com/pyca/cryptography/issues/12047">#12047</a>)</li>
<li><a
href="f2259d7aa0"><code>f2259d7</code></a>
Bump BoringSSL and/or OpenSSL in CI (<a
href="https://redirect.github.com/pyca/cryptography/issues/12046">#12046</a>)</li>
<li><a
href="e201c870b8"><code>e201c87</code></a>
fixed metadata in changelog (<a
href="https://redirect.github.com/pyca/cryptography/issues/12044">#12044</a>)</li>
<li><a
href="c6104cc366"><code>c6104cc</code></a>
Prohibit Python 3.9.0, 3.9.1 -- they have a bug that causes errors (<a
href="https://redirect.github.com/pyca/cryptography/issues/12045">#12045</a>)</li>
<li><a
href="d6cac753c2"><code>d6cac75</code></a>
Add support for decrypting S/MIME messages (<a
href="https://redirect.github.com/pyca/cryptography/issues/11555">#11555</a>)</li>
<li><a
href="b8e5bfd4d7"><code>b8e5bfd</code></a>
chore(deps): bump libc from 0.2.164 to 0.2.165 (<a
href="https://redirect.github.com/pyca/cryptography/issues/12042">#12042</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pyca/cryptography/compare/43.0.3...44.0.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=pip&previous-version=43.0.3&new-version=44.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Resolve#8976
> Once you have checked whether this is working or not, then I will
remove the optional field block.
### Changes
- Updated `NodeGenericInputField` to handle additional input types:
- Added support for `array` and `object` optional types.
- Enhanced schema definitions for `string` optional type to include
enumerations
### Testing 🔍
- Verified that the new input types function correctly within the
frontend component.
<img width="517" alt="Screenshot 2024-12-13 at 7 08 22 PM"
src="https://github.com/user-attachments/assets/1e4b7c58-2ddc-4082-8a9e-2e11b91495e2"
/>
---------
Co-authored-by: Swifty <craigswift13@gmail.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
- Resolves part of #8731
### Changes
- Added `depends_on` parameter to SchemaField in `model.py` to specify
field dependencies.
- Updated `useAgentGraph` hook to validate input fields based on their
dependencies, ensuring required fields are set when dependent fields are
filled.
- Modified `BlockIOSubSchemaMeta` to include `depends_on` as an optional
property.
https://github.com/user-attachments/assets/64fd47b3-34dc-48fa-ad90-1c9c5cd4c4a3
---------
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
- resolves part of #8731
### Changes
- Introduced `mutually_exclusive` parameter in `SchemaField` to manage
input exclusivity.
- Implemented logic in `NodeGenericInputField` to disable inputs based
on mutual exclusivity.
- Updated related components to support the new `disabled` state for
inputs.
- Enhanced `BlockIOSubSchemaMeta` to include `mutually_exclusive`
property.
> Currently, I’m disabling the input from the same group (I haven’t
added any frontend validation to prevent users from bypassing it).
https://github.com/user-attachments/assets/71fb9fe4-943b-4724-8acb-6aed2232ed6b
---------
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
<!-- Clearly explain the need for these changes: -->
Monitor page is broken for me
### Changes 🏗️
<!-- Concisely describe all of the changes made in this pull request:
-->
- Updates monitor page to what was in dev before store pr went in
- Updates graph getting endpoint to handle invalid graphs a bit more
graceful
### 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 to make sure I can start and view my monitor page
# 🌎 Overview
AutoGPT Store Version 2 expands on the Pre-Store by enhancing agent
discovery, providing richer content presentation, and introducing new
user engagement features. The focus is on creating a visually appealing
and interactive marketplace that allows users to explore and evaluate
agents through images, videos, and detailed descriptions.
### Vision
To create a visually compelling and interactive open-source marketplace
for autonomous AI agents, where users can easily discover, evaluate, and
interact with agents through media-rich listings, ratings, and version
history.
### Objectives
📊 Incorporate visuals (icons, images, videos) into agent listings.
⭐ Introduce a rating system and agent run count.
🔄 Provide version history and update logs from creators.
🔍 Improve user experience with advanced search and filtering features.
### Changes 🏗️
<!-- Concisely describe all of the changes made in this pull request:
-->
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
---------
Co-authored-by: Bently <tomnoon9@gmail.com>
Co-authored-by: Aarushi <aarushik93@gmail.com>
### Background
Currently, AutoGPT only supports ollama servers running locally. Often,
this is not the case as the ollama server could be running on a more
suited instance, such as a Jetson board. This PR adds "ollama host" to
the input of all LLM blocks, allowing users to select the ollama host
for the LLM blocks.
### Changes 🏗️
- Changes contained within blocks/llm.py:
- Adding ollama host input to all LLM blocks
- Fixed incorrect parsing of prompt when passing to ollama in the
StructuredResponse block
- Used ollama.Client instances to accomplish this.
### Testing 🔍
Tested all LLM blocks with Ollama remote hosts as well as with the
default localhost value.
### Related issues
https://github.com/Significant-Gravitas/AutoGPT/issues/8225
---------
Co-authored-by: Fried-Squid <Fried-Squid>
Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Though this is technically possible with the AddToDictionary and
AddToList Blocks, that approach alone feels like a hidden work-around
rather than an intuitive feature, and I'm happy with the duplication in
the name of better experience for our users here.
Changes 🏗️
Added CreateDictionaryBlock class that creates a dictionary from the
provided key-value pairs.
Added CreateListBlock class that creates a list from the provided
values.
![dictionary](https://github.com/user-attachments/assets/51250715-686b-4428-aa98-eac85d3860fa)
---------
Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Bumps the development-dependencies group in /autogpt_platform/market
with 2 updates: [ruff](https://github.com/astral-sh/ruff) and
[pyright](https://github.com/RobertCraigie/pyright-python).
Updates `ruff` from 0.8.1 to 0.8.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.8.2</h2>
<h2>Release Notes</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>airflow</code>] Avoid deprecated values (<code>AIR302</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14582">#14582</a>)</li>
<li>[<code>airflow</code>] Extend removed names for <code>AIR302</code>
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14734">#14734</a>)</li>
<li>[<code>ruff</code>] Extend
<code>unnecessary-regular-expression</code> to non-literal strings
(<code>RUF055</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14679">#14679</a>)</li>
<li>[<code>ruff</code>] Implement <code>used-dummy-variable</code>
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14611">#14611</a>)</li>
<li>[<code>ruff</code>] Implement <code>unnecessary-cast-to-int</code>
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14697">#14697</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>airflow</code>] Check <code>AIR001</code> from builtin or
providers <code>operators</code> module (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14631">#14631</a>)</li>
<li>[<code>flake8-pytest-style</code>] Remove <code>@</code> in
<code>pytest.mark.parametrize</code> rule messages (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14770">#14770</a>)</li>
<li>[<code>pandas-vet</code>] Skip rules if the <code>panda</code>
module hasn't been seen (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14671">#14671</a>)</li>
<li>[<code>pylint</code>] Fix false negatives for <code>ascii</code> and
<code>sorted</code> in <code>len-as-condition</code>
(<code>PLC1802</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14692">#14692</a>)</li>
<li>[<code>refurb</code>] Guard <code>hashlib</code> imports and mark
<code>hashlib-digest-hex</code> fix as safe (<code>FURB181</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14694">#14694</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>[<code>flake8-import-conventions</code>] Improve syntax check for
aliases supplied in configuration for
<code>unconventional-import-alias</code> (<code>ICN001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14745">#14745</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Revert: [pyflakes] Avoid false positives in
<code>@no_type_check</code> contexts (<code>F821</code>,
<code>F722</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14615">#14615</a>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14726">#14726</a>)</li>
<li>[<code>pep8-naming</code>] Avoid false positive for <code>class
Bar(type(foo))</code> (<code>N804</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14683">#14683</a>)</li>
<li>[<code>pycodestyle</code>] Handle f-strings properly for
<code>invalid-escape-sequence</code> (<code>W605</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14748">#14748</a>)</li>
<li>[<code>pylint</code>] Ignore <code>@overload</code> in
<code>PLR0904</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14730">#14730</a>)</li>
<li>[<code>refurb</code>] Handle non-finite decimals in
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14596">#14596</a>)</li>
<li>[<code>ruff</code>] Avoid emitting <code>assignment-in-assert</code>
when all references to the assigned variable are themselves inside
<code>assert</code>s (<code>RUF018</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14661">#14661</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Improve docs for <code>flake8-use-pathlib</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14741">#14741</a>)</li>
<li>Improve error messages and docs for
<code>flake8-comprehensions</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14729">#14729</a>)</li>
<li>[<code>flake8-type-checking</code>] Expands <code>TC006</code> docs
to better explain itself (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14749">#14749</a>)</li>
</ul>
<h2>Contributors</h2>
<ul>
<li><a
href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li>
<li><a
href="https://github.com/Daverball"><code>@Daverball</code></a></li>
<li><a
href="https://github.com/InSyncWithFoo"><code>@InSyncWithFoo</code></a></li>
<li><a href="https://github.com/Lee-W"><code>@Lee-W</code></a></li>
<li><a
href="https://github.com/Lokejoke"><code>@Lokejoke</code></a></li>
<li><a
href="https://github.com/Matt-Ord"><code>@Matt-Ord</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li>
<li><a
href="https://github.com/Well2333"><code>@Well2333</code></a></li>
<li><a
href="https://github.com/connorskees"><code>@connorskees</code></a></li>
<li><a
href="https://github.com/dcreager"><code>@dcreager</code></a></li>
<li><a
href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.8.2</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>airflow</code>] Avoid deprecated values (<code>AIR302</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14582">#14582</a>)</li>
<li>[<code>airflow</code>] Extend removed names for <code>AIR302</code>
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14734">#14734</a>)</li>
<li>[<code>ruff</code>] Extend
<code>unnecessary-regular-expression</code> to non-literal strings
(<code>RUF055</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14679">#14679</a>)</li>
<li>[<code>ruff</code>] Implement <code>used-dummy-variable</code>
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14611">#14611</a>)</li>
<li>[<code>ruff</code>] Implement <code>unnecessary-cast-to-int</code>
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14697">#14697</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>airflow</code>] Check <code>AIR001</code> from builtin or
providers <code>operators</code> module (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14631">#14631</a>)</li>
<li>[<code>flake8-pytest-style</code>] Remove <code>@</code> in
<code>pytest.mark.parametrize</code> rule messages (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14770">#14770</a>)</li>
<li>[<code>pandas-vet</code>] Skip rules if the <code>panda</code>
module hasn't been seen (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14671">#14671</a>)</li>
<li>[<code>pylint</code>] Fix false negatives for <code>ascii</code> and
<code>sorted</code> in <code>len-as-condition</code>
(<code>PLC1802</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14692">#14692</a>)</li>
<li>[<code>refurb</code>] Guard <code>hashlib</code> imports and mark
<code>hashlib-digest-hex</code> fix as safe (<code>FURB181</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14694">#14694</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>[<code>flake8-import-conventions</code>] Improve syntax check for
aliases supplied in configuration for
<code>unconventional-import-alias</code> (<code>ICN001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14745">#14745</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Revert: [pyflakes] Avoid false positives in
<code>@no_type_check</code> contexts (<code>F821</code>,
<code>F722</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14615">#14615</a>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/14726">#14726</a>)</li>
<li>[<code>pep8-naming</code>] Avoid false positive for <code>class
Bar(type(foo))</code> (<code>N804</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14683">#14683</a>)</li>
<li>[<code>pycodestyle</code>] Handle f-strings properly for
<code>invalid-escape-sequence</code> (<code>W605</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14748">#14748</a>)</li>
<li>[<code>pylint</code>] Ignore <code>@overload</code> in
<code>PLR0904</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14730">#14730</a>)</li>
<li>[<code>refurb</code>] Handle non-finite decimals in
<code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14596">#14596</a>)</li>
<li>[<code>ruff</code>] Avoid emitting <code>assignment-in-assert</code>
when all references to the assigned variable are themselves inside
<code>assert</code>s (<code>RUF018</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14661">#14661</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Improve docs for <code>flake8-use-pathlib</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14741">#14741</a>)</li>
<li>Improve error messages and docs for
<code>flake8-comprehensions</code> rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14729">#14729</a>)</li>
<li>[<code>flake8-type-checking</code>] Expands <code>TC006</code> docs
to better explain itself (<a
href="https://redirect.github.com/astral-sh/ruff/pull/14749">#14749</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b0e26e6fc8"><code>b0e26e6</code></a>
Bump version to 0.8.2 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14789">#14789</a>)</li>
<li><a
href="e9941cd714"><code>e9941cd</code></a>
[red-knot] Move standalone expr inference to <code>for</code> non-name
target (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14788">#14788</a>)</li>
<li><a
href="43bf1a8907"><code>43bf1a8</code></a>
Add tests for "keyword as identifier" syntax errors (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14754">#14754</a>)</li>
<li><a
href="fda8b1f884"><code>fda8b1f</code></a>
[<code>ruff</code>] Unnecessary cast to <code>int</code>
(<code>RUF046</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14697">#14697</a>)</li>
<li><a
href="2d3f557875"><code>2d3f557</code></a>
[red-knot] Fallback for <code>typing._NoDefaultType</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14783">#14783</a>)</li>
<li><a
href="bd27bfab5d"><code>bd27bfa</code></a>
[red-knot] Unify <code>setup_db()</code> functions, add
<code>TestDb</code> builder (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14777">#14777</a>)</li>
<li><a
href="155d34bbb9"><code>155d34b</code></a>
[red-knot] Infer precise types for <code>len()</code> calls (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14599">#14599</a>)</li>
<li><a
href="04c887c8fc"><code>04c887c</code></a>
Fix references for <code>async-busy-wait</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14775">#14775</a>)</li>
<li><a
href="af43bd4b0f"><code>af43bd4</code></a>
[red-knot] Gradual forms do not participate in equivalence/subtyping (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14758">#14758</a>)</li>
<li><a
href="614917769e"><code>6149177</code></a>
Remove <code>@</code> in <code>pytest.mark.parametrize</code> rule
messages (<a
href="https://redirect.github.com/astral-sh/ruff/issues/14770">#14770</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.8.1...0.8.2">compare
view</a></li>
</ul>
</details>
<br />
Updates `pyright` from 1.1.389 to 1.1.390
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ee025bc694"><code>ee025bc</code></a>
Pyright NPM Package update to 1.1.390 (<a
href="https://redirect.github.com/RobertCraigie/pyright-python/issues/325">#325</a>)</li>
<li>See full diff in <a
href="https://github.com/RobertCraigie/pyright-python/compare/v1.1.389...v1.1.390">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: Nicholas Tindle <nicholas.tindle@agpt.co>
- Resolves#8948
### Changes 🏗️
- Parallelize frontend test job into a per-browser matrix
- Speed up "Free Disk Space" step by disabling removal of large system
packages
- Resolves#8853
Disallow combining webhook block with another webhook or input block,
because we can't run those. Our current approach to validating the input
for a graph's starting nodes prohibits such cases.
Demo:
https://github.com/user-attachments/assets/ac098765-bb5f-4218-8cd4-ad992b1b8cda
### 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 a webhook-triggered block -> can't add another, also can't add
an input block
- [x] Add an input block -> can't add a webhook-triggered block
---------
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
- Resolves#8931
- Follow-up to #8358
### Changes 🏗️
- Avoid double specifying provider and cred types on `credentials`
inputs
- Move `credentials` sub-schema validation from `CredentialsField` to
`CredentialsMetaInput.validate_credentials_field_schema(..)`, which is
called in `BlockSchema.__pydantic_init_subclass__`
- Use `ProviderName` enum globally
First step for the PAYG System.
### Changes 🏗️
- Add `stripeCustomerId` to `User` model
- Rename model `UserBlockCredit` to `CreditTransaction`
- Rename model `UserBlockCreditType` to `CreditTransactionType`
- Update related code
- Add a migration
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
This is a follow-up of
https://github.com/Significant-Gravitas/AutoGPT/pull/8752
There are several APIs and functions related to graph execution that are
unused now.
There is also confusion about the name of `GraphExecution` that exists
in graph.py & execution.py.
### Changes 🏗️
* Renamed `GraphExecution` in `execution.py` to `GraphExecutionEntry`,
this is only used as a queue entry for execution.
* Removed unused `get_graph_execution` & `list_executions` in
`execution.py`.
* Removed `with_run` option on `get_graph` function in `graph.py`.
* Removed `GraphMetaWithRuns`
* Removed exposed functions only for testing.
* Removed `executions` fields in Graph model.
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
---------
Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
Recently pins were made slightly bigger and misaligned needlessly. The
problem in the linked issue was to fix connection area, not make them
bigger.
- https://github.com/Significant-Gravitas/AutoGPT/issues/8913
### Changes 🏗️
- Revert pins size to smaller
- Fix hover area and highlight for input pins
### 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] Connect, reconnect, remove connection
- [x] Tutorial works
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
The graph version is bumped on each save. While the agent version is
changed, the past execution history is gone because the monitor page
only shows the latest version's execution history.
### Changes 🏗️
- Add `get_executions` on the backend that returns all executions of all
graphs for a user
- Display all executions (for all versions) for graphs in Monitor
- Rename ts mirror type `ExecutionMeta` to `GraphExecution` for
consistency with the backend
- Remove redundant `FlowRun` type on the frontend and use
`GraphExecution` instead
- Round execution duration text in Monitor to one decimal place
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
---------
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
ExtractTextInformationBlock is only supporting extracting one match.
### Changes 🏗️
Adding find_all option to ExtractTextInformationBlock.
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
Some table foreign key sources are not properly indexed, causing the
potential full table scan on the code queries.
### Changes 🏗️
Added DB indexes on several tables.
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
This addresses
https://github.com/Significant-Gravitas/AutoGPT/issues/8741
We have quite a few blocks with (object) outputs. The only way to really
use these is to use a "Find In Dictionary" block to pick out that
property.
If the structure of the output object is known, we should expose the
properties of the object directly as sub-outputs. This will make a huge
difference in UX and make using these blocks much much easier.
### Changes 🏗️
Recursively flatten object fields into output node handles
<img width="637" alt="image"
src="https://github.com/user-attachments/assets/dac1f691-9866-4bb7-96b7-20fa6ddbb616">
<img width="773" alt="image"
src="https://github.com/user-attachments/assets/f8e7f97c-b245-40bd-b84f-2c044f5f9e23">
### Checklist 📋
#### For code changes:
- [ ] I have clearly listed my changes in the PR description
- [ ] I have made a test plan
- [ ] I have tested my changes according to the test plan:
<!-- Put your test plan here: -->
- [ ] ...
<details>
<summary>Example test plan</summary>
- [ ] Create from scratch and execute an agent with at least 3 blocks
- [ ] Import an agent from file upload, and confirm it executes
correctly
- [ ] Upload agent to marketplace
- [ ] Import an agent from marketplace and confirm it executes correctly
- [ ] Edit an agent from monitor, and confirm it executes correctly
</details>
#### For configuration changes:
- [ ] `.env.example` is updated or already compatible with my changes
- [ ] `docker-compose.yml` is updated or already compatible with my
changes
- [ ] I have included a list of my configuration changes in the PR
description (under **Changes**)
<details>
<summary>Examples of configuration changes</summary>
- Changing ports
- Adding new services that need to communicate with each other
- Secrets or environment variable changes
- New or infrastructure changes such as databases
</details>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
<!-- Clearly explain the need for these changes: -->
### Background
The Github PR blocks are not able to function properly because the
correct endpoint is not getting called.
- Resolves#8667
### Changes 🏗️
* Added logic to derive correct endpoint from the given PR url.
* This logic is implemented in multiple blocks viz.
`GithubReadPullRequestBlock`, `GithubAssignPRReviewerBlock`,
`GithubUnassignPRReviewerBlock`, `GithubListPRReviewersBlock`.
### Test
* Github List PR Reviewers
<img width="511" alt="Screenshot 2024-12-03 at 11 03 59 PM"
src="https://github.com/user-attachments/assets/9c69edcf-c2f4-42d2-954d-0fc4d903ae22">
* Github Read Pull Request (Include Pr Changes checked)
<img width="417" alt="Screenshot 2024-12-06 at 12 01 41 PM"
src="https://github.com/user-attachments/assets/986fada7-7fbb-41b6-a42a-47d1e11fa562">
---------
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>