Commit Graph

243 Commits (dev)

Author SHA1 Message Date
Aarushi c03e2fb949
tweak(platform): Remove importing templates from local dir (#8276)
* always filter on user id

* add user id to doc string

* fix linting

* fix imports function

* remove import templates from local directory
2024-10-09 23:13:46 +00:00
Nicholas Tindle e654aa1e7a
feat(backend): add the capibility to disable llm models in the cloud env (#8285)
* feat(backend): logic to disable enums based on python logic

* feat(backend): add behave as setting and clarify its purpose and APP_ENV

APP_ENV is used for not cloud vs local but the application environment such as local/dev/prod so we need BehaveAs as well

* fix(backend): various uses of AppEnvironment without the Enum or incorrectly

AppEnv in the logging library will never be cloud due to the restrictions applied when loading settings in by pydantic settings. This commit fixes this error, however the code path for logging may now be incorrect

* feat(backend): use a metaclass to disable ollama in the cloud environment

* fix: formatting

* fix(backend): typing improvements

* fix(backend): more linting 😭
2024-10-09 10:12:48 +01:00
Aarushi e37744b9f2
fix(platform): Update deletion of secret values to not do it in place (#8284)
update deletion of secret values to not do it in place
2024-10-08 22:43:36 +01:00
Aarushi bc1df92c29
fix(platform): Fix marketplace leaking secrets (#8281)
* add hide secrets param

* Update autogpt_platform/backend/backend/data/graph.py

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update autogpt_platform/frontend/src/lib/autogpt-server-api/baseClient.ts

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* rename hide secrets

* use builtin dict

* delete key

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-10-08 20:20:18 +01:00
Nicholas Tindle 04473cad1e
feat(docs): OAuth docs updates based on google block changes (#8243)
* feat(frontend,backend): testing

* feat: testing

* feat(backend): it works for reading email

* feat(backend): more docs on google

* fix(frontend,backend): formatting

* feat(backend): more logigin (i know this should be debug)

* feat(backend): make real the default scopes

* feat(backend): tests and linting

* fix: code review prep

* feat: sheets block

* feat: liniting

* Update route.ts

* Update autogpt_platform/backend/backend/integrations/oauth/google.py

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update autogpt_platform/backend/backend/server/routers/integrations.py

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* fix: revert opener change

* feat(frontend): add back opener

required to work on mac edge

* feat(frontend): drop typing list import from gmail

* fix: code review comments

* feat: code review changes

* feat: code review changes

* fix(backend): move from asserts to checks so they don't get optimized away in the future

* fix(backend): code review changes

* fix(backend): remove google specific check

* fix: add typing

* fix: only enable google blocks when oauth is configured for google

* fix: errors are real and valid outputs always when output

* fix(backend): add provider detail for debuging scope declines

* Update autogpt_platform/frontend/src/components/integrations/credentials-input.tsx

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* fix(frontend): enhance with comment, typeof error isn't known so this is best way to ensure the stringifyication will work

* feat: code review change requests

* fix: linting

* fix: reduce error catching

* fix: doc messages in code

* fix: check the correct scopes object 😄

* fix: remove double (and not needed) try catch

* fix: lint

* fix: scopes

* feat: handle the default scopes better

* feat: better email objectification

* feat: process attachements

turns out an email doesn't need a body

* fix: lint

* Update google.py

* Update autogpt_platform/backend/backend/data/block.py

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* fix: quit trying and except failure

* Update autogpt_platform/backend/backend/server/routers/integrations.py

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* feat: don't allow expired states

* fix: clarify function name and purpose

* feat: code links updates

* feat: additional docs on adding a block

* fix: type hint missing which means the block won't work

* fix: linting

* fix: docs formatting

* Update issues.py

* fix: improve the naming

* fix: formatting

* Update new_blocks.md

* Update new_blocks.md

* feat: better docs on what the args mean

* feat: more details on yield

* Update new_blocks.md

* fix: remove ignore from docs build

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-10-08 11:11:14 -05:00
Zamil Majdy 2a74381ae8
feat(platform): Add delete agent functionality (#8273) 2024-10-08 16:03:26 +00:00
Aarushi 2aed470d26
tweak(platform): Disable docs endpoint when not local (#8265)
* disable docs endpoint

* add to .env.example

* use enum for app env

* lint
2024-10-08 10:31:08 +01:00
Aarushi 61f1d0cdb5
fix(platform): Always filter on user id (#8275)
* always filter on user id

* add user id to doc string

* fix linting

* fix imports function
2024-10-07 15:47:49 +02:00
Aarushi d742019349
feat(platform,db): Add on deletes (#8272)
add on deletes
2024-10-07 14:44:37 +04:00
Swifty fd9968683c
tweak(platform): Limit templates to users (#8271)
limit templates to users

Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
2024-10-07 11:08:51 +01:00
Zamil Majdy daa054c79c
feat(backend): Make Redis connection Sync + Use Redis as Distributed Lock (#8197) 2024-10-07 15:39:32 +07:00
ymrohit a6f763db24
Updated ReplicateFluxAdvancedModel block with the latest Flux 1.1 Pro model (#8266)
Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-10-07 05:01:38 +00:00
Toran Bruce Richards 07ae912cfe
feat(blocks): Add text to speech block and Unreal Speech API key (#8264) 2024-10-04 14:35:56 +01:00
SuperComboGamer 7501089bbf
feat: Add Ideogram image generation block with customizable options (#8237)
* add ideogram ai image gen

* fixed revid secret api key being removed

* fixed auto checks errors

* Add AI Upscale option to IdeogramModelBlock

- Introduced an 'Upscale Image' option in the input schema to allow users to upscale generated images.
- Created the 'UpscaleOption' enum with options 'AI Upscale' and 'No Upscale'.
- Implemented the 'upscale_image' method to download the generated image into RAM and send it to the Ideogram AI upscale API without saving it to disk.
- Updated the 'run' method to handle the upscaling process based on the user's input.
- Ensured that the image processing is done entirely in memory (RAM) without writing to disk.
- Updated test inputs and mocks to reflect the new 'Upscale Image' option.

---------

Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
2024-10-04 10:25:51 +00:00
Zamil Majdy 1e3b1dad06
feat(platform): Add Graph Execution error data & status (#8250) 2024-10-04 09:15:54 +00:00
Nicholas Tindle 6dbc0f7270
feat(frontend,backend): fix google auth and add gmail, sheets (#8236)
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-10-03 16:36:30 +00:00
Zamil Majdy 95e184c85f
fix(platform): Add block data db auto-update (#8249) 2024-10-03 10:10:45 +01:00
Zamil Majdy 78fe578177
feat(platform): Add implicit typing conversion of nested data-structure (#8231) 2024-10-02 20:57:13 +00:00
Toran Bruce Richards 723055ce1d
feat(blocks): Add text decoder block (#8248)
* Refactor search.py: Add option for raw content scraping in ExtractWebsiteContentBlock

* Add TextDecoderBlock for decoding escape sequences in text
2024-10-02 17:26:32 +01:00
vishesh10 24cc5131d7
refactor(backend): Replace deprecated event hooks with lifecycle handler (#8092)
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-10-02 16:33:05 +02:00
Reinier van der Leer 8803740d47
refactor(blocks): Reassign non-random IDs (#8229)
- refactor(blocks): Assign new IDs to 13 blocks
   - Create DB migration to update block IDs in existing DB entities

- feat(frontend): Add `updateBlockIDs` "middleware" to `AgentImportForm` loader in front end
2024-10-01 15:08:42 +01:00
Toran Bruce Richards 1de99ca4df
tweak(blocks): Add option for simple raw content scraping to ExtractWebsiteContentBlock (#8228)
Refactor search.py: Add option for raw content scraping in ExtractWebsiteContentBlock
2024-10-01 01:48:07 +07:00
Toran Bruce Richards a8e5a0d98e
tweak(Blocks): Simplify iteration block to output list items (#8219)
Refactor iteration block to support iterating over dictionaries and to return individual list items.
2024-09-30 13:25:03 +00:00
Toran Bruce Richards 210c140a0f
feat(blocks): Add AI List Generator block (#8221)
Add AIListGeneratorBlock class
2024-09-30 08:05:26 -05:00
Toran Bruce Richards 0cf3b9f48b
feat(blocks): Add shortform video block (#8217)
* feat(blocks): Add AIShortformVideoCreatorBlock

- Added a new block called AIShortformVideoCreatorBlock to create shortform videos using revid.ai.
- The block takes input parameters such as script,  background music, and voice ID.
- It uses the revid.ai API to create the video and waits for completion using a webhook proxy service.
- Once the video is ready, it returns the URL of the created video.
- This block takes anywhere from 5 seconds to several minutes to complete depending on the length of the video.

Add revid.ai API key to Secrets

- Added a new field in the Secrets class to store the revid.ai API key.

* refactor(blocks): Remove unused webhook code in AIShortformVideoCreatorBlock

* Add background music track options.

* Add preset voice options

* Add generation preset and visual style configuration options.

* Remove "morpher" video type due to long generation times and low quality.

Plus extend timeout cut-off.

* Add audio track configuration options.

* refactor AudioTrack selection into single class

* format

* Add test mocks

* run format
2024-09-30 12:31:47 +01:00
Toran Bruce Richards 9dc7bb8497
Remove fluxdev from AI Generation block due to licence restrictions. (#8222) 2024-09-30 10:54:40 +01:00
ymrohit 22fb9bc635
Added Replicate Flux Blocks for image generation (#8216)
* Added Replicate Flux Blocks

* updated poetry lock file for replicate

* Refactor ReplicateFluxAdvancedModelBlock to use an enum for replicate_model_name rather than free strings.

* Refactor ReplicateFluxAdvancedModelBlock to use an enum for output_format instead of free strings

* Refactor ReplicateFluxAdvancedModelBlock to stop requiring people to type a random seed

* Refactor ReplicateFluxAdvancedModelBlock to stop requiring people to type a random seed

* run format

* poetry run format

* Delete ReplicateFluxBasicModelBlock

* Mark model name as not advanced

* tweak input order

* Fix test

---------

Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
2024-09-29 22:24:42 +01:00
Bently d7e59966ef
Feat(Builder): Add Google Maps Search Block (#8162)
* Feat(Builder): Add Google Maps Search Block

* format

* Updates to google maps search block

* fixes

* format + updates again

* fix for pytest

* format again

* updates based on new comments

* fix for format?

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-09-27 21:29:59 +01:00
Toran Bruce Richards 41e3c4f6bd
Feat(Builder): Enhance AITextSummarizerBlock with configurable summary style and focus (#8165)
* feat(platform): Enhance AITextSummarizerBlock with configurable summary style and focus

The AITextSummarizerBlock in the autogpt_platform/backend/backend/blocks/llm.py file has been enhanced to include the following changes:
- Added a new enum class, SummaryStyle, with options for concise, detailed, bullet points, and numbered list styles.
- Added a new input parameter, focus, to specify the topic of the summary.
- Modified the _summarize_chunk method to include the style and focus in the prompt.
- Modified the _combine_summaries method to include the style and focus in the prompt.

These changes allow users to customize the style and focus of the generated summaries, providing more flexibility and control.

* run formatting and linting
2024-09-26 15:20:05 +01:00
Zamil Majdy b4097f3a51
fix(platform): UI fixes; Fix block note UI displayed as normal block;Json-prettify execution output (#8169)
* fix(platform): UI fixes; Fix block note UI displayed as normal block; Json-prettify execution output

* fix(platform): UI fixes; Fix block note UI displayed as normal block; Json-prettify execution output

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-09-26 09:40:06 +02:00
Zamil Majdy 53a0ee2523
fix(platform): UI fixes; Fix default value on input fields & fix enum custom fields (#8182)
* fix(platform): Fix default value on input fields & fix enum custom fields

* fix(platform): Fix default value on input fields & fix enum custom fields
2024-09-26 09:38:58 +02:00
Swifty 1d2e7b89ea
tweak(platform): Update block descriptions and tweak block card ui (#8147)
* Update block descriptions and tweak block card ui

* updated string

* updated block descriptions

* updated output description

* fmt
2024-09-26 09:27:06 +02:00
Zamil Majdy ef9308bed4
fix(platform): Add missing mandatory environment variable (#8183) 2024-09-25 23:02:24 -05:00
Reinier van der Leer 5e2874c315
feat(platform): OAuth support + API key management + GitHub blocks (#8044)
## Config
- For Supabase, the back end needs `SUPABASE_URL`, `SUPABASE_SERVICE_ROLE_KEY`, and `SUPABASE_JWT_SECRET`
- For the GitHub integration to work, the back end needs `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET`
- For integrations OAuth flows to work in local development, the back end needs `FRONTEND_BASE_URL` to generate login URLs with accurate redirect URLs

## REST API
- Tweak output of OAuth `/login` endpoint: add `state_token` separately in response
- Add `POST /integrations/{provider}/credentials` (for API keys)
- Add `DELETE /integrations/{provider}/credentials/{cred_id}`

## Back end
- Add Supabase support to `AppService`
- Add `FRONTEND_BASE_URL` config option, mainly for local development use

### `autogpt_libs.supabase_integration_credentials_store`
- Add `CredentialsType` alias
- Add `.bearer()` helper methods to `APIKeyCredentials` and `OAuth2Credentials`

### Blocks
- Add `CredentialsField(..) -> CredentialsMetaInput`

## Front end
### UI components
- `CredentialsInput` for use on `CustomNode`: allows user to add/select credentials for a service.
  - `APIKeyCredentialsModal`: a dialog for creating API keys
  - `OAuth2FlowWaitingModal`: a dialog to indicate that the application is waiting for the user to log in to the 3rd party service in the provided pop-up window
- `NodeCredentialsInput`: wrapper for `CredentialsInput` with the "usual" interface of node input components
- New icons: `IconKey`, `IconKeyPlus`, `IconUser`, `IconUserPlus`

### Data model
- `CredentialsProvider`: introduces the app-level `CredentialsProvidersContext`, which acts as an application-wide store and cache for credentials metadata.
- `useCredentials` for use on `CustomNode`: uses `CredentialsProvidersContext` and provides node-specific credential data and provider-specific data/functions
- `/auth/integrations/oauth_callback` route to close the loop to the `CredentialsInput` after a user completes sign-in to the external service
- Add `BlockIOCredentialsSubSchema`

### API client
- Add `isAuthenticated` method
- Add methods for integration OAuth flow: `oAuthLogin`, `oAuthCallback`
- Add CRD methods for credentials: `createAPIKeyCredentials`, `listCredentials`, `getCredentials`, `deleteCredentials`
- Add mirrored types `CredentialsMetaResponse`, `CredentialsMetaInput`, `OAuth2Credentials`, `APIKeyCredentials`
- Add GitHub blocks + "DEVELOPER_TOOLS" category
- Add `**kwargs` to `Block.run(..)` signature to support additional kwargs
- Add support for loading blocks from nested modules (e.g. `blocks/github/issues.py`)

#### Executor
- Add strict support for `credentials` fields on blocks
- Fetch credentials for graph execution and pass them down through to the node execution
2024-09-26 00:36:29 +02:00
Swifty bd39d5da0b
fix(platform): Update Backend .env.example BACKEND_CORS_ALLOW_ORIGINS to be a list (#8163)
updated to list
2024-09-25 13:53:11 +02:00
Swifty 9f79e70b0f
fix(platform): Fix REST API CORS issue + UI build for Firefox (#8140) 2024-09-25 11:06:47 +00:00
Zamil Majdy b78c43111f
feat(platform): Make REST & WS server host configurable (#8143) 2024-09-24 23:15:45 +00:00
Zamil Majdy 81d1be73cd
feat(platform): Add OpenAI reasoning models (#8152) 2024-09-24 18:11:15 -05:00
Aarushi 88e278b736
tweak(rnd): Move to the PG within Supabase (#8085)
* move to supabase pg instance

* remove postgres and bind supabase port

* Updated setup
- Switched db name to postgres to work with prisma studio
- Added platform schema
- Added Market-migartions
- bound prisma studio port

* remove studio port

* updated .env

* updated readmes

---------

Co-authored-by: SwiftyOS <craigswift13@gmail.com>
2024-09-23 14:04:26 +01:00
Swifty c07cf8a7b8
fix(platform): Added updated graph meta to include runs (#8088) 2024-09-23 11:31:48 +02:00
Zamil Majdy 52ee846744
fix(platform): Fix logging incomplete information & LLM missing error (#8128) 2024-09-21 15:18:36 +00:00
Zamil Majdy 62a3e1c127
fix(rnd): Fix broken list input pin execution ordering & unlinked dynamic pins on save (#8108) 2024-09-21 22:11:35 +07:00
Swifty ef7cfbb860
refactor: AutoGPT Platform Stealth Launch Repo Re-Org (#8113)
Restructuring the Repo to make it clear the difference between classic autogpt and the autogpt platform:
* Move the "classic" projects `autogpt`, `forge`, `frontend`, and `benchmark` into a `classic` folder
  * Also rename `autogpt` to `original_autogpt` for absolute clarity
* Rename `rnd/` to `autogpt_platform/`
  * `rnd/autogpt_builder` -> `autogpt_platform/frontend`
  * `rnd/autogpt_server` -> `autogpt_platform/backend`
* Adjust any paths accordingly
2024-09-20 16:50:43 +02:00