* Add Advanced Chatbot with History using Discord
* Update Discord Chatbot with History_v145.json
update is_active to false and is_template to true
---------
Co-authored-by: Bently <tomnoon9@gmail.com>
The execution graph is supposed to be typed, but there are cases where generic types like Any were used, and there are cases, where incompatible data passed into the wrong type.
If such a thing happens on runtime, we should do the best-effort conversion instead of breaking the run. E.g.: try to json-stringify the object to str input, or try to parse number in the string to int input, etc.
* Make `userId` required on DB entities `AgentGraph`, `AgentGraphExecution`, and `AgentGraphExecutionSchedule`
* Add SQLite and Postgres migrations to make `userId` required and set `userId` to `3e53486c-cf57-477e-ba2a-cb02dc828e1a` on existing entries without `userId`
* Amend `create_graph` endpoint and `.data.graph`, `.data.execution` methods to handle required `user_id`
* Add `.data.user.DEFAULT_USER_ID` constant to replace hardcoded literals
* refactor(builder): Migrate `FlowEditor` to use ReactFlow's state management system
We have been keeping two copies of node and edge data: one inside ReactFlow and one outside.
It works, but it's accidental and implicit and there is no reason to be using shadow copies rather than a single data source.
- Replace `useNodesState` and `useEdgesState` with `useReactFlow` hook
- Use `addNodes`, `addEdges`, and `deleteElements` where appropriate instead of `setNodes`/`setEdges` to allow use of event hooks
- Consolidate all edge -> node state sync logic into `onEdgesChange` event handler
This replaces `updateNodesOnEdgeChange`, part of `onConnect`, and `onEdgesDelete`.
- Move node deletion logic from `CustomNode` to `FlowEditor:onNodesChange`
* fix(builder): Refactor and fix copy-paste mechanism
- Rename variables for readability
- Use an ID map to correctly set the source and target IDs for the pasted edges
- Move `monitor/page.tsx` to `page.tsx`
- Remove redirect from `/` to `/build`
- Set temporary redirect from `/monitor` to `/` to prevent breaking UX (may be removed after a grace period, e.g. 2024-09-01)
* adding auth to store
* Add ability to submit agents and review them before being added to the market
* Added auth decorator
* Added auth to market api client
* fix(builder): Fix drag-select behavior on `NodeKeyValueInput`
* fix(github): Added in fallback variables for postgres testing (#7715)
Co-authored-by: Leslie Cruz <lelcruz@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
* feat(builder): basic tally feedback form (#7725)
* removed database changes
* moved auth to libs project
* fixed formatting
* cleaned up auth
* Added tests and database migration
* delete decorator
* feat(builder): Add new icons and integrate with ControlPanel
Introduce SVG icons and replace ControlPanel dependencies with new icons. The ControlPanel component now uses the new icon components for improved consistency.
* feat(builder): add additional icon and update icons in NavBar
Introduced the new icon with relevant documentation and examples. Replaced existing icon imports with the newly defined icons in the NavBar component for consistency.
* feat(builder): Add icon for megaphone and replace usage
Introduced the IconMegaphone for reuse across the application. Updated TallyPopup to utilize IconMegaphone instead of the previous Megaphone icon from lucide-react.
* fix(builder): Running prettier to format changed files.
Adjusted various files for consistent code formatting. Ensured proper spacing and alignment of imports, JSX tags, and object properties to enhance readability and maintain coding standards. No functional changes made.
- Amend `AutoGPTServerAPI.sendWebSocketMessage(..)` to automatically (re)connect the websocket if disconnected
- Amend `AutoGPTServerAPI.connectWebSocket()` to prevent race conditions
* adding auth to store
* Added auth decorator
* Added auth to market api client
* removed database changes
* moved auth to libs project
* fixed formatting
* Switched to using fastapi dependencies
* Return a user object
* removed logging of the token
* Added tests
### 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>