Commit Graph

5212 Commits

Author SHA1 Message Date
Reinier van der Leer
632686cfa5 fix(agent): Replace PromptToolkit with click.prompt
- Replace `session.prompt_async(..)` with `click.prompt(..)` in `clean_input` (autogpt/app/utils.py)
- Convert `clean_input` back to a synchronous function (and amend its usages accordingly)
- Remove `prompt-toolkit` dependency

This mitigates issues crashes in some shell environments on Windows.
2024-03-20 17:51:10 +01:00
Reinier van der Leer
1262b72f5c feat(agent): Allow boolean values for available param on @command 2024-03-20 17:24:11 +01:00
Reinier van der Leer
e985f7c105 test(agent): Add skip statements to test_execute_code.py for when Docker is not available 2024-03-20 17:23:14 +01:00
Reinier van der Leer
596487b9ad fix(agent): Windows-proof file_operations
Make file_operations and test_file_operations behave more consistently between Unix and Windows
2024-03-20 17:13:47 +01:00
Reinier van der Leer
a7c0440e9b fix(agent): Fix and windows-proof scan_plugins
- Improve error output for failure to load plugin
- Fix logic to determine qualified module name
- Use `importlib` rather than `__import__` magic function

This unbreaks `scan_plugins` on Windows.
2024-03-20 17:10:03 +01:00
Reinier van der Leer
03ffb50dcf ci(docs): Fix Netlify build ignore check 2024-03-20 11:49:41 +01:00
Krzysztof Czerwinski
e201f57861 feat(autogpt/cli): Display info if code execution is enabled (#6997)
Display if code execution is enabled or not on CLI startup, depending if Docker is available.
2024-03-18 20:09:56 +01:00
Krzysztof Czerwinski
fea62a77bc feat(autogpt/cli): Check if port is available before running server (#6996) 2024-03-16 12:10:43 +01:00
Sukka
dfad535dea fix(docs): Replace polyfill.io by Cloudflare mirror (#6952) 2024-03-15 13:01:30 +01:00
Nicholas Tindle
fa14865163 docs: Redirect AutoGPT users from Forge tutorial with warning (#7014)
Update forge/get-started.md
2024-03-15 11:38:52 +01:00
Krzysztof Czerwinski
ef35028ecb fix(autogpt/cli): Loop until non-empty task is provided by the user (#6995) 2024-03-14 18:06:58 +01:00
Reinier van der Leer
fb97e15e4b lint(agent): Remove unused import in autogpt/agents/base.py 2024-03-13 20:56:45 +01:00
Reinier van der Leer
da4f013a5d fix(agent): Fix & improve agent self-termination and resumption mechanism
- Add `AgentFinished` exception (subclass of `AgentTerminated`)
- Raise `AgentFinished` instead of `AgentTerminated` in `finish` method
- Remove resumption patch from PR #6990 in `BaseAgent`
- Clean up implementation of `finish` in `AgentProtocolServer`
- Add resumption mechanism in `run_auto_gpt` (main.py)
2024-03-13 20:42:12 +01:00
Krzysztof Czerwinski
fd2c26188f fix(agent): Handle action_history-related exceptions gracefully (#6990)
Fix resume-related exceptions

- CLI: prevent resumed agent to register action on already existing one
- Server: prevent trying to json() command without result
2024-03-12 23:05:30 +01:00
Krzysztof Czerwinski
89cf0154f4 feat(autogpt/forge): Send exception details in agent protocol endpoints (#7005)
Send exception details in agent protocol endpoints

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-03-12 17:39:03 +01:00
Krzysztof Czerwinski
cb1297ec74 fix(autogpt): Fix GCS and S3 root path issue (#7010)
Fix root path issue
2024-03-12 17:34:12 +01:00
Krzysztof Czerwinski
37904a0f80 feat(agent): Fully abstracted file storage access with FileStorage (#6931)
* Rename `FileWorkspace` to `FileStorage`
   - `autogpt.file_workspace` -> `autogpt.file_storage`
   - `LocalFileWorkspace` -> `LocalFileStorage`
   - `S3FileWorkspace` -> `S3FileStorage`
   - `GCSFileWorkspace` -> `GCSFileStorage`

* Rename `WORKSPACE_BACKEND` to `FILE_STORAGE_BACKEND`
* Rename `WORKSPACE_STORAGE_BUCKET` to `STORAGE_BUCKET`

* Rewrite `AgentManager` to use `FileStorage` rather than direct local file access
* Rename `AgentManager.retrieve_state(..)` method to `load_agent_state`
* Add docstrings to `AgentManager`

* Create `AgentFileManagerMixin` to replace `AgentFileManager`, `FileWorkspaceMixin`, `BaseAgent.attach_fs(..)`
* Replace `BaseAgentSettings.save_to_json_file(..)` method by `AgentFileManagerMixin.save_state()`
* Replace `BaseAgent.set_id(..)` method by `AgentFileManagerMixin.change_agent_id(..)`
* Remove `BaseAgentSettings.load_from_json_file(..)`
* Remove `AgentSettings.agent_data_dir`

* Update `AgentProtocolServer` to work with the new `FileStorage` system and `AgentFileManagerMixin`

* Make `agent_id` and `file_storage` parameters for creating an Agent:
   - `create_agent`, `configure_agent_with_state`, `_configure_agent`, `create_agent_state` in `autogpt.agent_factory.configurators`
   - `generate_agent_for_task` in `autogpt.agent_factory.generators`
   - `Agent.__init__(..)`
   - `BaseAgent.__init__(..)`
   - Initialize and pass in `file_storage` in `autogpt.app.main.run_auto_gpt(..)` and `autogpt.app.main.run_auto_gpt_server(..)`

* Add `clone_with_subroot` to `FileStorage`
* Add `exists`, `make_dir`, `delete_dir`, `rename`, `list_files`, `list_folders` methods to `FileStorage`

* Update `autogpt.commands.file_operations` to use `FileStorage` and `AgentFileManagerMixin` features

* Update tests for `FileStorage` implementations and usages
* Rename `workspace` fixture to `storage`
   * Update conftest.py
2024-03-11 22:26:14 +01:00
Joyce
6c18627b0f Create Security Policy (#6900)
* Create SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

* Update SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

* Update SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

* Update SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

---------

Signed-off-by: Joyce <joycebrum@google.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-03-09 13:20:06 -06:00
Reinier van der Leer
d5aa8d373b Update QUICKSTART.md
* Clarify instructions for entering the Arena
* Clarify that entering the Arena is optional
* Remove indent from top level content
2024-03-05 11:16:44 +01:00
Toran Bruce Richards
7bf31dad35 Update README.md
Adds dark-theme support to star-history graph.
2024-03-03 15:25:36 +00:00
Reinier van der Leer
29d390d54d ci: Disable annoying auto-message discouraging big PRs 2024-03-01 12:28:00 +01:00
Reinier van der Leer
b69f0b2cd0 fix(ci/arena): Fix requesting manual review
Three times the charm, right?
2024-03-01 12:22:05 +01:00
Reinier van der Leer
0308fb45be fix(ci/arena): Fix requesting manual review 2024-03-01 11:44:27 +01:00
Reinier van der Leer
0325370fed fix(ci/arena): Fix requesting manual review 2024-03-01 11:41:49 +01:00
Reinier van der Leer
1e4bd0388f fix(ci/arena): Skip checking file against itself for duplicates 2024-03-01 11:34:47 +01:00
Reinier van der Leer
d1b06f0be3 fix(ci/arena): Improve output format 2024-03-01 11:27:26 +01:00
Reinier van der Leer
3e40b35ef1 fix(ci/arena): Reverse check for pr.mergeable 2024-03-01 11:23:14 +01:00
Reinier van der Leer
70873906b7 fix(ci/arena): Make check for pr.mergeable more specific 2024-03-01 11:20:54 +01:00
Reinier van der Leer
f93a8a93b4 fix(ci/arena): Fix error accessing context & improve log output readability 2024-03-01 11:19:31 +01:00
Reinier van der Leer
4121d3712d fix(ci/arena): Fix syntax & formatting errors 2024-03-01 11:07:54 +01:00
Reinier van der Leer
4546dfdf17 feat(ci/arena): Add logging and debug output to workflow script 2024-03-01 11:02:41 +01:00
Reinier van der Leer
4011294da0 ci(arena): Fix arena-intake workflow
Sorry folks, it's been a while since I wrote javascript :')
2024-03-01 10:41:34 +01:00
Reinier van der Leer
48f6f83f05 ci(arena): Fix arena-intake workflow 2024-03-01 10:35:28 +01:00
Reinier van der Leer
51f5808430 ci: Add 'Arena intake' workflow to automatically check 'entering the arena' PRs 2024-03-01 00:27:10 +01:00
Reinier van der Leer
695049bfa3 ci: Auto-label PRs based on the scope of their diff 2024-02-29 19:38:04 +01:00
Reinier van der Leer
40f98f0f38 chore: Change agbenchmark to directory dependency in autogpt and forge (#6946)
Poetry recently released v1.8.x containing a fix for the issue we were having earlier:
https://github.com/python-poetry/poetry/issues/8548

This means unavailable optional directory dependencies no longer break the docker build.
2024-02-29 19:17:16 +01:00
Reinier van der Leer
c26c79c34c fix(benchmark/reports): Resolve error in format.py on attempt.cost is None 2024-02-29 19:01:47 +01:00
Krzysztof Czerwinski
2c96f6125f feat(agent): Catch & disallow duplicate commands in LLM response parser (#6937)
Raise in `parse_and_process_response` if the proposed operation is the same as the last executed one.
2024-02-29 18:51:13 +01:00
Reinier van der Leer
5047fd9fce lint(agent): Fix linting error in api_manager.py 2024-02-29 18:42:16 +01:00
edwardsp
50e5ea4e54 fix(agent/llm): Fix support for AzureOpenAI (#6927)
* Fix unmasking of `azure_endpoint` in `OpenAICredentials.get_api_access_kwargs()`
* Amend `ApiManager.get_models` to use `AzureOpenAI` client when `api_type` is set to `azure`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-02-29 18:35:06 +01:00
Reinier van der Leer
ce45c9b267 fix(agent/security): Make CORS more restrictive and configurable
* By default, allow requests originating from http://localhost:{AP_SERVER_PORT} instead of all origins
* Allow configuring allowed CORS origins through `AP_SERVER_CORS_ALLOWED_ORIGINS`
2024-02-28 21:14:49 +01:00
Krzysztof Czerwinski
1881f4f7cd feat(agent): Gracefully handle failure to load non-existing agent (#6938) 2024-02-28 19:18:57 +01:00
Krzysztof Czerwinski
30762c211e fix(agent/execute_code): Disable code execution commands when Docker is unavailable (#6888) 2024-02-28 19:16:02 +01:00
Elias Hohl
5090f55eba fix(agent/security): Mitigate shell injection vulnerabilities (#6903)
* Mitigate shell injection in `MacOSTTS._speech` implementation

* Mitigate shell command control bypassing in `execute_shell` and `execute_shell_popen` commands
   - Improve implementation and docstring of `validate_command` function

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-02-27 13:31:23 +01:00
Reinier van der Leer
1f1e8c9f7d Update CODEOWNERS 2024-02-22 17:26:46 +01:00
Reinier van der Leer
e44ca4185a fix(frontend): Unbreak ChatInputField
Fix specification of `onSubmitted` hook in the `TextField`.
2024-02-21 02:09:23 +01:00
Reinier van der Leer
8fd2e48c1b fix(ci/frontend): Add trigger on push including workflow file 2024-02-21 02:04:13 +01:00
Reinier van der Leer
69ccb185e8 fix(ci/frontend): Add and fix trigger on workflow file 2024-02-21 02:02:41 +01:00
Reinier van der Leer
a88e833831 ci: Revise Frontend CI
- Rename build-frontend.yml to frontend-ci.yml
- Add a `pull_request` trigger
- Disable committing and pushing to a `frontend_build_{hash}` branch
- (Re)enable auto-creating a pull request for the new frontend build
2024-02-21 02:00:33 +01:00
Reinier van der Leer
64f48df62d chore(agent/llm): Update model alias gpt-3.5-turbo -> gpt-3.5-turbo-0125 2024-02-20 17:13:51 +01:00