### Background
CurrentDateAndTimeBlock would fail if the test is not complete within 1-second wall-time.
In the case a test started at the second 01:59:59, it becomes flaky.
We can change the test to only assert the type. But this is also a good chance to add more assertion options for Block: a custom function.
### Changes 🏗️
Change assertion for the time block using an additional margin of error.
* Added listing, sorting, filtering and ordering of agents
* feat(market): general upkeep for vscode and small docs
* feat(market): most of search
* fix(market): hinting on the sort was weird + linting
* feat(market): migrations and schema updates
* lint(market): autolint
* feat(market): better search
* feat(market): file download
* feat(market): analytics of downloads
* Added tracking of views
* changed all imports to be fully qualified
* Upgrade sentry sdk
* Added an admin endpoint to submit new agents
* fixes
* Added endpoint that just tracks download
* Starting adding the marketplace page
* Marketplace client
* Create template of the marketplace page
* Updated client
* fix(market): debug port
* feat(market): agents by downloads
* fix(market, builder): hook up frontend and backend
* feat(builder, market): build a "better" market page that loads data
* feat(builder): updated search (working) and page (kinda working)
* feat(builder): add a feature agents ui (not backed yet)
* feat(builder): improve detail page content
* Added run script
* Added pre populate database command
* Add AnalyticsTracker on create agent
* Add download counts for top agents
* Add hb page prometheus metrics
* Added featured agents funcitonality
* renamed endpoint to health
* Adding download flow
* normalised api routes
* update readme
* feat(market) : default featured
* formatting
* revert changes to autogpt and forge
* Updated Readme
* Eerror when creating an agent from a template installed from (#7697)
fix creating graph from template
* Add dockerfile
* z level fix
* Updated env vars
* updated populate url
* formatting
* fixed linting error
* Set defaults
* Allow only next.js dev server
* fixed url
* removed graph reassignment as due to change in master
---------
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
### Background
This change brings the capability to decompose a graph into sub-graphs. The objective of this feature is to allow a user to build a visually modular, and easier-to-understand graph. Also, allowing you to import a graph into your existing graph, without decluttering your existing graph.
This feature will require more implementation on the UI side, to allow the grouping of subgraph to be represented as a node in the builder.
### Changes 🏗️
Introduced a subgraph functionality with the following property:
* Sub-graph is simply a set of nodes that are grouped together, making it representable as a node.
* Sub-graph input & output pins/schema are the `InputBlock` / `OutputBlock` nodes present in the subgraph.
* The previous point implies that connecting two nodes from different sub-graphs, other than input/output nodes, is not allowed.
* Graph can be nested, but defined flatly, e.g.: graph is now only represented by three components: nodes, links, and subgraphs (a set of list of nodes). A nested subgraph is simply connecting a node inside a subgraph into another `InputBlock` node of another subgraph.
* fix(builder): Adding prettier configuration files and to package.
* fix(builder): Running script "format" added to the package.json
* feat(builder): Adding a job to the yaml file. This job will run "format" which leverages prettier.
* feat(builder): Running script "format" and merging master
* feat(builder): Setting configuration to prettier defaults in .prettierrc.json, and adding a requested newline in the .prettierignore
* feat(builder): Updating the CI to not add a job for prettier but instead add a check to verify prettier was run before commiting.
* feat(builder): Confirming CI update fails when user does not run prettier first. Updating with file changes after prettier
* feat(builder): Running prettier write to fix warnings
* fix(builder): Removing .prett
per PR change request
* fix(builder): Running prettier formatter
* fix(builder): Running prettier formatter check found additional files
* fix(builder): Running prettier format
* fix(builder): Removing running "format" command from PR due to a change request.
* fix(builder): Removing running "format" command from PR due to a change request.
---------
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
* feat(Block): Add AdvancedLlmCallBlock
Adds a block for handling advanced LLM calls, enabling messages to be handled within the AutoGPT builder.
* fix linting
* Super early version of the discord bots blocks
* updated to add secrets for token + other fixes
* lint & format
* rename DiscordBot to DiscordReader
* add discord-py
* fix poetry lock
* rm duplicated file
* updated name to add Block to end
* update .env.template to add DISCORD_BOT_TOKEN
* updates to add description Field
* swap channel name and message content + add field description
---------
Co-authored-by: Bently <bently@bentlybro.com>
- Merge `Flow.tsx:CustomNodeData` type definition into `CustomNode.tsx:CustomNodeData`
- Move `lib/types:BlockSchema` type definition into `lib/autogpt-server-api/types` in place of `ObjectSchema`
- Expand and rename `BlockSchema` -> `BlockIOSchema` + `BlockIORootSchema`
- Fix all `BlockIOSchema` related type narrowing checks
- Add warning messages to fallback cases in `NodeInputField` logic
Co-authored-by: Swifty <craigswift13@gmail.com>
* feat(Builder): Implement undo/redo functionality
* updates to work with latest UI
* add CTRL + Z & CTRL + Y support
* fixed undo/redo for inputs in nodes
* fix for deleting node
* fixes to make the undo/redo work better
* small fix
* Updates based on feedback
* add margin right to space out buttons
* added CTRL + SHIFT + Z for redo
This PR adds Supabase Auth (cloud) integration, login and profile UI, configures password login and three OAuth providers: Google, GitHub and Discord.
For `Account` button to show up and ability to login two env vars need to be set in `.env.local`: `NEXT_PUBLIC_SUPABASE_URL` and `NEXT_PUBLIC_SUPABASE_ANON_KEY`. OAuth providers are by the Supabase and don't require env vars.
Email confirmation (for email/password signup) is disabled because there's limit of 3 emails per hour without custom SMTP server configuration. [Link](https://supabase.com/dashboard/project/adfjtextkuilwuhzdjpf/auth/templates) to configure custom SMTP server and email template.
### Added dependencies:
- "@supabase/ssr": "^0.4.0"
- "@supabase/supabase-js": "^2.45.0"
- "react-icons": "^5.2.1"
### Added pages/routes:
- `app/auth/auth-code-error/page.tsx`: displayed when login using OAuth provider fails
- `app/auth/callback/route.ts`: route accessed when logging in using OAuth provider; it passes session code to Supabase
- `app/auth/confirm/route.ts`: accessed when confirming email, users will be directed here from email they get after signing in.
- `app/error/page.tsx`: Generic error page without explanation (any errors should be visible in the console)
- `app/login/page.tsx` and `app/login/actions.ts`: Login page and related login/signup server actions
- `app/profile/page.tsx`: Profile page, displays email address of the user and button to logout
### Changes
- Update `layout.tsx`: add `Log In` button and make icons consistent. The log in button shows up if user is logged out, avatar is shown when logged in, and if supabase is unavailable nothing shows up.
- Login form is verified using `zod` on the frontend (recommended by shadcn) and in case login fails feedback is displayed. On successful login users are redirected to `/profile`
- Add `PasswordInput` component, [source](https://gist.github.com/mjbalcueva/b21f39a8787e558d4c536bf68e267398)
- Add `SupabaseProvider` with context for Supabase accessed via hook `useSupabase(): { supabase: SupabaseClient | null, isLoading: boolean }`
- Add `useUser` hook to get `{ user, session, isLoading, error }` on the client
- Add `getServerUser`: async function to get `{ user: User | null, error: string | null }` on the server side
- Add `src/middleware.ts` and `client.ts`, `server.ts`, `middleware.ts` in `src/lib/supabase` which are utility functions and middleware to refresh auth token
### Background
We need an explicit block for providing input & output for the graph.
This will later allow us to build a subgraph with pre-declared input & output schema.
This will also allow us to set input for the node in the middle of the graph, and enable a graph to have output values.
### Changes 🏗️
* Add InputBlock & OutputBlock
* Add graph structure validation on the graph execution step that asserts the following property:
- All mandatory input pin, has to be connected or have a default value, except the `InputBlock` node.
- All links have to connect valid nodes, and the sink & source name using the valid block field.
* Feat(Builder): Clear Status and Output upon graph edit
* close output dropdown on graph edit
* make deleting edge clear block outputs
* make it so deleting nodes clears block output
### Background
Migration not being synced has caused issues and CI is not catching this yet.
### Changes 🏗️
* Added schema check in both sqlite & postgres prisma.schema on linting step.
* Introduced `poetry run schema` for syncing prisma.schema + generating migration in both files.
* Set up helm and tf for backend
* update helm charts and settings
* remove example files
* use latest tag
* delay and timeouts for probes
* env based pyro host
* default backend
* linting
* add helm linting in CI
* read from settings
* fix formatting
* update to use config
* Set up helm and tf for backend
* update helm charts and settings
* remove example files
* use latest tag
* delay and timeouts for probes
* env based pyro host
* default backend
* linting
* read from settings
* fix formatting
* update to use config
* fix(builder): Implementing a basic shadCn theme until color palette is decided upon
* feat(builder): Separating NavBar into its own component and providing a standard UI/UX Approach
* feat(builder): Removing old implementation of logo, removing excessive css implementation, updating styles to better support standard desktop views.
* feature(builder): Addition of UI component Sheet from ShadCn for update
### Background
Pyro for API Server is not using Prisma, but still holding a Prisma connection.
The fast-API thread is also holding a Prisma connection, making Prisma connected in two different loop within a single process.
### Changes 🏗️
Disable a Prisma connection on Pyro thread for Server API process.
Fix test flakiness issue due to concurrency issue.