[Bug]: Unable to run using Ollama (Llama3 Pulled) on Ubuntu 22.04

Is there an existing issue for the same bug?

[X] I have checked the troubleshooting document at https://opendevin.github.io/OpenDevin/modules/usage/troubleshooting
[X] I have checked the existing issues.

Describe the bug
I am unable to run OpenDevin from Ollama
I am getting an unknown python error (I am using venv and running the app in tmux and I also made sure to have the Llama3 7b model pulled down
Current OpenDevin version
0.7.1

Installation and Configuration
I ran the commands: WORKSPACE_BASE=$(pwd)/workspace
docker run -it \
    --pull=always \
    -e SANDBOX_USER_ID=$(id -u) \
    -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
    -v $WORKSPACE_BASE:/opt/workspace_base \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name opendevin-app-$(date +%Y%m%d%H%M%S) \
    ghcr.io/opendevin/opendevin

I also made sure to select from the webui ollama/llama3 and I tried both without any api key or with the "ollama" API key. I do have Ollama running with ollama serve in another tmux window

The code is running on a VPS hosted at OVHcloud with docker installed manually form the docker site's guide

I made sure to test the Ollama API using a script and it appears to be working

Model and Agent
No response
Operating System
No response
Reproduction Steps
No response
Logs, Errors, Screenshots, and Additional Context
ubuntu@b3-16-gra11:~$ docker run     -it     --pull=always     --add-host host.docker.internal:host-gateway     -e SANDBOX_USER_ID=$(id -u)     -e LLM_API_KEY="ollama"     -e LLM_BASE_URL="http://host.docker.internal:11434"     -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE     -v $WORKSPACE_BASE:/opt/workspace_base     -v /var/run/docker.sock:/var/run/docker.sock     -p 3000:3000     ghcr.io/opendevin/opendevin:mainpt/workspace_base     -v /var/run/docker.sock:/var/run/docker.sock
000     ghcr
-p 3000:3000     ghcr.io/ope
INFO:     connection closed                                                                       INFO:     <IP_ADDRESS>:51687 - "GET / HTTP/1.1" 304 Not Modified                                  INFO:     <IP_ADDRESS>:51687 - "GET /api/options/models HTTP/1.1" 200 OK                          INFO:     ('<IP_ADDRESS>', 51679) - "WebSocket /ws" [accepted]                                    INFO:     connection open
17:28:03 - opendevin:INFO: agent.py:64 - Using server runtime
17:28:03 - opendevin:INFO: ssh_box.py:210 - SSHBox is running as opendevin user with USER_ID=1000 in the sandbox                                                                                17:28:03 - opendevin:INFO: ssh_box.py:255 - Detected initial session.                             17:28:03 - opendevin:INFO: ssh_box.py:257 - Creating new Docker container                         17:28:03 - opendevin:WARNING: ssh_box.py:671 - Using port forwarding till the enable host network mode of Docker is out of experimental mode.Check the 897th issue on https://github.com/OpenDevin/OpenDevin/issues/ for more information.
17:28:03 - opendevin:INFO: ssh_box.py:644 - Mounting workspace directory: /home/ubuntu/workspace  17:28:03 - opendevin:INFO: ssh_box.py:679 - Mounting volumes: {'/home/ubuntu/workspace': {'bind': '/workspace', 'mode': 'rw'}, '/tmp/cache': {'bind': '/home/opendevin/.cache', 'mode': 'rw'}}      17:28:03 - opendevin:INFO: ssh_box.py:644 - Mounting workspace directory: /home/ubuntu/workspace  17:28:03 - opendevin:INFO: ssh_box.py:690 - Container started
17:28:04 - opendevin:INFO: ssh_box.py:706 - waiting for container to start: 1, container status: running                                                                                17:28:04 - opendevin:INFO: ssh_box.py:421 - Connecting to SSH session...                          17:28:04 - opendevin:INFO: ssh_box.py:423 - You can debug the SSH connection by running: ssh -v -p 56117<EMAIL_ADDRESS>using the password 'f055d5d7-172c-40fe-89f5-bbfd532ac18d' 17:28:06 - opendevin:INFO: ssh_box.py:427 - Connected to SSH session                              17:28:06 - opendevin:INFO: agent.py:95 - Creating agent CodeActAgent using LLM ollama/llama3      17:28:06 - opendevin:INFO: llm.py:123 - Initializing LLM with model: ollama/llama3
17:28:06 - opendevin:INFO: mixin.py:43 - Initializing plugins in the sandbox                      17:28:06 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully17:28:06 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/agent_skills] to [/opendevin/plugins/agent_skills] inside sandbox.
17:28:06 - opendevin:INFO: mixin.py:68 - Initializing plugin [agent_skills] by executing [/opendevin/plugins/agent_skills/setup.sh] in the sandbox.                                                 17:28:11 - opendevin:INFO: mixin.py:86 - Plugin agent_skills initialized successfully             17:28:11 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully17:28:11 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/jupyter] to [/opendevin/plugins/jupyter] inside sandbox.                                                 17:28:11 - opendevin:INFO: mixin.py:68 - Initializing plugin [jupyter] by executing [/opendevin/plINFO:     connection open                                                                         17:28:03 - opendevin:INFO: agent.py:64 - Using server runtime                                     17:28:03 - opendevin:INFO: ssh_box.py:210 - SSHBox is running as opendevin user with USER_ID=1000 in the sandbox                                                                                17:28:03 - opendevin:INFO: ssh_box.py:255 - Detected initial session.                             17:28:03 - opendevin:INFO: ssh_box.py:257 - Creating new Docker container                         17:28:03 - opendevin:WARNING: ssh_box.py:671 - Using port forwarding till the enable host network mode of Docker is out of experimental mode.Check the 897th issue on https://github.com/OpenDevin/OpenDevin/issues/ for more information.                                                            17:28:03 - opendevin:INFO: ssh_box.py:644 - Mounting workspace directory: /home/ubuntu/workspace  17:28:03 - opendevin:INFO: ssh_box.py:679 - Mounting volumes: {'/home/ubuntu/workspace': {'bind': '/workspace', 'mode': 'rw'}, '/tmp/cache': {'bind': '/home/opendevin/.cache', 'mode': 'rw'}}      17:28:03 - opendevin:INFO: ssh_box.py:644 - Mounting workspace directory: /home/ubuntu/workspace  17:28:03 - opendevin:INFO: ssh_box.py:690 - Container started
17:28:04 - opendevin:INFO: ssh_box.py:706 - waiting for container to start: 1, container status: running                                                                                17:28:04 - opendevin:INFO: ssh_box.py:421 - Connecting to SSH session...                          17:28:04 - opendevin:INFO: ssh_box.py:423 - You can debug the SSH connection by running: ssh -v -p 56117<EMAIL_ADDRESS>using the password 'f055d5d7-172c-40fe-89f5-bbfd532ac18d' 17:28:06 - opendevin:INFO: ssh_box.py:427 - Connected to SSH session                              17:28:06 - opendevin:INFO: agent.py:95 - Creating agent CodeActAgent using LLM ollama/llama3      17:28:06 - opendevin:INFO: llm.py:123 - Initializing LLM with model: ollama/llama3                17:28:06 - opendevin:INFO: mixin.py:43 - Initializing plugins in the sandbox                      17:28:06 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully17:28:06 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/agent_skills] to [/opendevin/plugins/agent_skills] inside sandbox.                                       17:28:06 - opendevin:INFO: mixin.py:68 - Initializing plugin [agent_skills] by executing [/opendevin/plugins/agent_skills/setup.sh] in the sandbox.                                                 17:28:11 - opendevin:INFO: mixin.py:86 - Plugin agent_skills initialized successfully             17:28:11 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully17:28:11 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/jupyter] to [/opendevin/plugins/jupyter] inside sandbox.
17:28:11 - opendevin:INFO: mixin.py:68 - Initializing plugin [jupyter] by executing [/opendevin/plugins/jupyter/setup.sh] in the sandbox.                                                           17:28:13 - opendevin:INFO: mixin.py:86 - Plugin jupyter initialized successfully                  17:28:14 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfullyin the sandbox                                                                                17:28:03 - opendevin:INFO: ssh_box.py:255 - Detected initial session.                             17:28:03 - opendevin:INFO: ssh_box.py:257 - Creating new Docker container
17:28:03 - opendevin:WARNING: ssh_box.py:671 - Using port forwarding till the enable host network mode of Docker is out of experimental mode.Check the 897th issue on https://github.com/OpenDevin/OpenDevin/issues/ for more information.                                                            17:28:03 - opendevin:INFO: ssh_box.py:644 - Mounting workspace directory: /home/ubuntu/workspace  17:28:03 - opendevin:INFO: ssh_box.py:679 - Mounting volumes: {'/home/ubuntu/workspace': {'bind': '/workspace', 'mode': 'rw'}, '/tmp/cache': {'bind': '/home/opendevin/.cache', 'mode': 'rw'}}      17:28:03 - opendevin:INFO: ssh_box.py:644 - Mounting workspace directory: /home/ubuntu/workspace  17:28:03 - opendevin:INFO: ssh_box.py:690 - Container started                                     17:28:04 - opendevin:INFO: ssh_box.py:706 - waiting for container to start: 1, container status: running                                                                                17:28:04 - opendevin:INFO: ssh_box.py:421 - Connecting to SSH session...                          17:28:04 - opendevin:INFO: ssh_box.py:423 - You can debug the SSH connection by running: ssh -v -p 56117<EMAIL_ADDRESS>using the password 'f055d5d7-172c-40fe-89f5-bbfd532ac18d' 17:28:06 - opendevin:INFO: ssh_box.py:427 - Connected to SSH session                              17:28:06 - opendevin:INFO: agent.py:95 - Creating agent CodeActAgent using LLM ollama/llama3      17:28:06 - opendevin:INFO: llm.py:123 - Initializing LLM with model: ollama/llama3                17:28:06 - opendevin:INFO: mixin.py:43 - Initializing plugins in the sandbox                      17:28:06 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully17:28:06 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/agent_skills] to [/opendevin/plugins/agent_skills] inside sandbox.                                       17:28:06 - opendevin:INFO: mixin.py:68 - Initializing plugin [agent_skills] by executing [/opendevin/plugins/agent_skills/setup.sh] in the sandbox.                                                 17:28:11 - opendevin:INFO: mixin.py:86 - Plugin agent_skills initialized successfully             17:28:11 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully17:28:11 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/jupyter] to [/opendevin/plugins/jupyter] inside sandbox.
17:28:11 - opendevin:INFO: mixin.py:68 - Initializing plugin [jupyter] by executing [/opendevin/plugins/jupyter/setup.sh] in the sandbox.
17:28:13 - opendevin:INFO: mixin.py:86 - Plugin jupyter initialized successfully
17:28:14 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully17:28:14 - opendevin:INFO: browser_env.py:68 - Starting browser env...
17:28:14 - opendevin:ERROR: state.py:73 - Failed to restore state from session: sessions/bf5b828a-  File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2451, in completion
generator = ollama.get_ollama_response(                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                         File "/app/.venv/lib/python3.12/site-packages/litellm/llms/ollama.py", line 254, in get_ollama_response                                                                                response = requests.post(
^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 115, in post                   return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 59, in request                 return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                           File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 703, in send              r = adapter.send(request, **kwargs)                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/adapters.py", line 700, in send              raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fcdffac67e0>: Failed to establish a new connection: [Errno 111] Connection refused'))                                                                                During handling of the above exception, another exception occurred:
Traceback (most recent call last):                                                                  File "/app/opendevin/controller/agent_controller.py", line 135, in _start_step_loop
await self._step()                                                                              File "/app/opendevin/controller/agent_controller.py", line 341, in _step
action = self.agent.step(self.state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                            File "/app/agenthub/codeact_agent/codeact_agent.py", line 207, in step                              response = self.llm.completion(                                                                              ^^^^^^^^^^^^^^^^^^^^                                                                 File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 336, in wrapped_f         return copy(f, *args, **kw)                                                                              ^^^^^^^^^^^^^^^^^^^^                                                                     File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 475, in call          do = self.iter(retry_state=retry_state)                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                         File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 376, in iter              result = action(retry_state)                                                                               ^^^^^^^^^^^^^^^^^^^                                                                    File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 418, in exc_check         raise retry_exc.reraise()                                                                               ^^^^^^^^^^^^^^^^^^^                                                                       File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 185, in reraise           raise self.last_attempt.result()                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result                   return self.__get_result()                                                                               ^^^^^^^^^^^^^^^^^^^                                                                      File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result             raise self._exception                                                                           File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 478, in call          result = fn(*args, **kwargs)                                                                               ^^^^^^^^^^^^^^^^^^^                                                                    File "/app/opendevin/llm/llm.py", line 215, in wrapper                                              resp = completion_unwrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                    File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 1001, in wrapper              raise e                                                                                File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 881, in wrapper               result = original_function(*args, *kwargs)                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                     File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2674, in completion            raise exception_type(                                                                                ^^^^^^^^^^^^^^^                                                                           File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 7656, in exception_type       raise e                                                                                File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 7314, in exception_type       raise ServiceUnavailableError(                                                                litellm.exceptions.ServiceUnavailableError: litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fcdffac67e0>: Failed to establish a new connection: [Errno 111] Connection refused'))                            17:28:24 - OBSERVATION                                                                            ErrorObservation(content='There was an unexpected error while running the agent', observation='error')                                                                                INFO:     <IP_ADDRESS>:51688 - "GET /api/list-files?path=%2F HTTP/1.1" 200 OK                     ^C                                                                                Session terminated, killing shell...INFO:     Shutting down                                       17:28:28 - opendevin:INFO: browser_env.py:102 - SHUTDOWN recv, shutting down browser env...       17:28:28 - opendevin:INFO: session.py:58 - WebSocket disconnected, sid: bf5b828a-cfd1-4432-86d0-76a691da5c2f                                                                                INFO:     connection closed                                                                       INFO:     Waiting for application shutdown.                                                       INFO:     Application shutdown complete.                                                          INFO:     Finished server process [36]                                                             ...killed.                                                                                ubuntu@b3-16-gra11:~$
[1] 0:bash                                                          "b3-16-gra11" 17:28 07-Jul-24

I also got a pip-related issue when trying to run the Gemini API from Google Cloud

Yes, as I said in the first message the ollama serve command is running on a dedicated tmux window

Did you set OLLAMA_HOST=<IP_ADDRESS>?
https://docs.all-hands.dev/modules/usage/llms/localLLMs
https://github.com/ollama/ollama/issues/703

Hi!,
I tried following again the guide and i got the same issue with the webui showing the "erorr occoured" error
If you need, ill leave the full console log starting from when i ran the command, hope it helps
Log:
(venv) (base) ubuntu@b3-16-gra11:~$ WORKSPACE_BASE=$(pwd)/workspace
t
--pull=always
-e (venv) (base) ubuntu@b3-16-gra11:~$ docker run -it \

--pull=always \
-e SANDBOX_USER_ID=$(id -u) \
-e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
-v $WORKSPACE_BASE:/opt/workspace_base \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 3000:3000 \

--add-host host.docker.internal:host-gateway
-e LLM_API_KEY="ollama"
-e LLM_BASE_URL="http://host.docker.internal:11434"
-e LLM_OLLAMA_BASE_URL="http://host.docker.internal:11434"
--add-host host.docker.internal:host-gateway
--name opendevin-app-$(date +%Y%m%d%H%M%S)
ghcr.io/opendevin/opendevin
latest: Pulling from opendevin/opendevin
Digest: sha256:acc41de02d5da914d18b3ab62402bb3ef4cf49ec2d2f4cfdb5e4eda7c965e9a8
Status: Image is up to date for ghcr.io/opendevin/opendevin:latest
Starting OpenDevin...
Setting up enduser with id 1000
Docker socket group id: 999
systemd-journal:x:999:
Group with id 999 already exists
Running as enduser
/app/.venv/lib/python3.12/site-packages/llama_cloud/types/metadata_filter.py:20: SyntaxWarning: invalid escape sequence '*'
"""
INFO:     Started server process [36]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:3000 (Press CTRL+C to quit)
INFO:     <IP_ADDRESS>:55529 - "GET /_app/version.json HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:55529 - "GET /_app/version.json HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:55529 - "GET /static/favicon.png HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:55537 - "GET / HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:55537 - "GET /assets/index-D7Efrf-x.js HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:55538 - "GET /assets/index-BAtRrv_U.css HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:55542 - "GET /locales/en-US/translation.json HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:55541 - "GET /locales/en/translation.json HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:55542 - "GET /favicon-32x32.png HTTP/1.1" 200 OK
21:22:58 - opendevin:ERROR: listen.py:326 - Error getting OLLAMA models: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/tags (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2f1e780>: Failed to establish a new connection: [Errno 111] Connection refused'))
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 196, in _new_conn
sock = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 495, in _make_request
conn.request(
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 398, in request
self.endheaders()
File "/usr/local/lib/python3.12/http/client.py", line 1331, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.12/http/client.py", line 1091, in _send_output
self.send(msg)
File "/usr/local/lib/python3.12/http/client.py", line 1035, in send
self.connect()
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 236, in connect
self.sock = self._new_conn()
^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 211, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f32d2f1e780>: Failed to establish a new connection: [Errno 111] Connection refused
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/tags (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2f1e780>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/opendevin/server/listen.py", line 322, in get_litellm_models
ollama_models_list = requests.get(ollama_url, timeout=3).json()['models']
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/tags (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2f1e780>: Failed to establish a new connection: [Errno 111] Connection refused'))
INFO:     <IP_ADDRESS>:55542 - "GET /api/options/models HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:55542 - "GET /api/options/agents HTTP/1.1" 200 OK
INFO:     ('<IP_ADDRESS>', 55544) - "WebSocket /ws" [accepted]
INFO:     connection open
21:23:12 - opendevin:INFO: agent.py:64 - Using server runtime
21:23:12 - opendevin:INFO: ssh_box.py:215 - SSHBox is running as opendevin user with USER_ID=1000 in the sandbox
21:23:12 - opendevin:INFO: ssh_box.py:260 - Detected initial session.
21:23:12 - opendevin:INFO: ssh_box.py:262 - Creating new Docker container
21:23:12 - opendevin:WARNING: ssh_box.py:722 - Using port forwarding till the enable host network mode of Docker is out of experimental mode.Check the 897th issue on https://github.com/OpenDevin/OpenDevin/issues/ for more information.
21:23:12 - opendevin:INFO: ssh_box.py:695 - Mounting workspace directory: /home/ubuntu/workspace
21:23:12 - opendevin:INFO: ssh_box.py:730 - Mounting volumes: {'/home/ubuntu/workspace': {'bind': '/workspace', 'mode': 'rw'}, '/tmp/cache': {'bind': '/home/opendevin/.cache', 'mode': 'rw'}}
21:23:12 - opendevin:INFO: ssh_box.py:695 - Mounting workspace directory: /home/ubuntu/workspace
21:23:12 - opendevin:INFO: ssh_box.py:741 - Container started
21:23:13 - opendevin:INFO: ssh_box.py:757 - waiting for container to start: 1, container status: running
21:23:13 - opendevin:INFO: ssh_box.py:426 - Connecting to SSH session...
21:23:13 - opendevin:INFO: ssh_box.py:428 - You can debug the SSH connection by running: ssh -v -p 58075<EMAIL_ADDRESS>using the password 'ef4dc473-5972-440f-a538-2b6e1f8cbb6e'
21:23:14 - opendevin:INFO: ssh_box.py:432 - Connected to SSH session
21:23:15 - opendevin:INFO: agent.py:95 - Creating agent CodeActAgent using LLM ollama/llama3
21:23:15 - opendevin:INFO: llm.py:123 - Initializing LLM with model: ollama/llama3
21:23:15 - opendevin:INFO: mixin.py:43 - Initializing plugins in the sandbox
21:23:15 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully
21:23:15 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/agent_skills] to [/opendevin/plugins/agent_skills] inside sandbox.
21:23:15 - opendevin:INFO: mixin.py:68 - Initializing plugin [agent_skills] by executing [/opendevin/plugins/agent_skills/setup.sh] in the sandbox.
21:23:19 - opendevin:INFO: mixin.py:86 - Plugin agent_skills initialized successfully
21:23:19 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully
21:23:19 - opendevin:INFO: mixin.py:60 - Copied files from [/app/opendevin/runtime/plugins/jupyter] to [/opendevin/plugins/jupyter] inside sandbox.
21:23:19 - opendevin:INFO: mixin.py:68 - Initializing plugin [jupyter] by executing [/opendevin/plugins/jupyter/setup.sh] in the sandbox.
21:23:22 - opendevin:INFO: mixin.py:86 - Plugin jupyter initialized successfully
21:23:22 - opendevin:INFO: mixin.py:30 - Sourced /opendevin/bash.bashrc and ~/.bashrc successfully
21:23:22 - opendevin:INFO: browser_env.py:68 - Starting browser env...
21:23:22 - opendevin:ERROR: state.py:75 - Failed to restore state from session: sessions/d0e2b95b-a8e4-4aad-90cb-55a310ac2c0c/agent_state.pkl
Error restoring state sessions/d0e2b95b-a8e4-4aad-90cb-55a310ac2c0c/agent_state.pkl
21:23:22 - opendevin:INFO: agent_controller.py:133 - [Agent Controller d0e2b95b-a8e4-4aad-90cb-55a310ac2c0c] Starting step loop...
INFO:     <IP_ADDRESS>:55543 - "GET /api/list-files?path=%2F HTTP/1.1" 200 OK
21:23:25 - OBSERVATION
MessageAction (source=EventSource.USER)
CONTENT: Hi There!
INFO:     <IP_ADDRESS>:55543 - "GET /api/list-files?path=%2F HTTP/1.1" 200 OK
==============
CodeActAgent LEVEL 0 STEP 0
Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm.set_verbose=True'.
Provider List: https://docs.litellm.ai/docs/providers
21:23:25 - opendevin:ERROR: llm.py:177 - litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f330fca7980>: Failed to establish a new connection: [Errno 111] Connection refused')). Attempt #1 | You can customize these settings in the configuration.
Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm.set_verbose=True'.
Provider List: https://docs.litellm.ai/docs/providers
21:23:28 - opendevin:ERROR: llm.py:177 - litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da0b60>: Failed to establish a new connection: [Errno 111] Connection refused')). Attempt #2 | You can customize these settings in the configuration.
21:23:28 - opendevin:INFO: browser_env.py:95 - Browser env started.
Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm.set_verbose=True'.
Provider List: https://docs.litellm.ai/docs/providers
21:23:29 - opendevin:ERROR: llm.py:177 - litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2d8dcd0>: Failed to establish a new connection: [Errno 111] Connection refused')). Attempt #3 | You can customize these settings in the configuration.
Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm.set_verbose=True'.
Provider List: https://docs.litellm.ai/docs/providers
21:23:30 - opendevin:ERROR: llm.py:177 - litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da0f20>: Failed to establish a new connection: [Errno 111] Connection refused')). Attempt #4 | You can customize these settings in the configuration.
Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm.set_verbose=True'.
Provider List: https://docs.litellm.ai/docs/providers
21:23:31 - opendevin:ERROR: llm.py:177 - litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused')). Attempt #5 | You can customize these settings in the configuration.
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 196, in _new_conn
sock = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 495, in _make_request
conn.request(
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 398, in request
self.endheaders()
File "/usr/local/lib/python3.12/http/client.py", line 1331, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.12/http/client.py", line 1091, in _send_output
self.send(msg)
File "/usr/local/lib/python3.12/http/client.py", line 1035, in send
self.connect()
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 236, in connect
self.sock = self._new_conn()
^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 211, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2382, in completion
generator = ollama.get_ollama_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/llms/ollama.py", line 254, in get_ollama_response
response = requests.post(
^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/opendevin/controller/agent_controller.py", line 136, in _start_step_loop
await self._step()
File "/app/opendevin/controller/agent_controller.py", line 342, in _step
action = self.agent.step(self.state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/agenthub/codeact_agent/codeact_agent.py", line 207, in step
response = self.llm.completion(
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 336, in wrapped_f
return copy(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 475, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 376, in iter
result = action(retry_state)
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 418, in exc_check
raise retry_exc.reraise()
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 185, in reraise
raise self.last_attempt.result()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 478, in call
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/app/opendevin/llm/llm.py", line 215, in wrapper
resp = completion_unwrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 1001, in wrapper
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 881, in wrapper
result = original_function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2605, in completion
raise exception_type(
^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 7650, in exception_type
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 7308, in exception_type
raise ServiceUnavailableError(
litellm.exceptions.ServiceUnavailableError: litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused'))
21:23:31 - opendevin:ERROR: agent_controller.py:142 - Error while running the agent: litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused'))
21:23:31 - opendevin:ERROR: agent_controller.py:143 - Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 196, in _new_conn
sock = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 495, in _make_request
conn.request(
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 398, in request
self.endheaders()
File "/usr/local/lib/python3.12/http/client.py", line 1331, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.12/http/client.py", line 1091, in _send_output
self.send(msg)
File "/usr/local/lib/python3.12/http/client.py", line 1035, in send
self.connect()
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 236, in connect
self.sock = self._new_conn()
^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connection.py", line 211, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2382, in completion
generator = ollama.get_ollama_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/llms/ollama.py", line 254, in get_ollama_response
response = requests.post(
^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/opendevin/controller/agent_controller.py", line 136, in _start_step_loop
await self._step()
File "/app/opendevin/controller/agent_controller.py", line 342, in _step
action = self.agent.step(self.state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/agenthub/codeact_agent/codeact_agent.py", line 207, in step
response = self.llm.completion(
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 336, in wrapped_f
return copy(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 475, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 376, in iter
result = action(retry_state)
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 418, in exc_check
raise retry_exc.reraise()
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 185, in reraise
raise self.last_attempt.result()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 478, in call
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/app/opendevin/llm/llm.py", line 215, in wrapper
resp = completion_unwrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 1001, in wrapper
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 881, in wrapper
result = original_function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2605, in completion
raise exception_type(
^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 7650, in exception_type
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 7308, in exception_type
raise ServiceUnavailableError(
litellm.exceptions.ServiceUnavailableError: litellm.ServiceUnavailableError: OllamaException: HTTPConnectionPool(host='host.docker.internal', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f32d2da1f40>: Failed to establish a new connection: [Errno 111] Connection refused'))
21:23:31 - OBSERVATION
ErrorObservation(content='There was an unexpected error while running the agent', observation='error')
INFO:     <IP_ADDRESS>:55545 - "GET /api/list-files?path=%2F HTTP/1.1" 200 OK
Let me know
Thanks a lot

Could you run this to check whether the API is working properly?
from litellm import completion
from datetime import datetime
import os

if os.path.exists('config.toml'):
    from toml import load
    config = load('config.toml')
else:
    config = {
        'LLM_MODEL': 'ollama/llama3',
        'LLM_API_KEY': None,
        'LLM_BASE_URL': None
    }

messages = [{ "content": "If there are 10 books in a room and I read 2, how many books are still in the room?","role": "user"}]
dt = datetime.now()
response = completion(model=config['LLM_MODEL'],
                        api_key=config['LLM_API_KEY'],
                        base_url=config['LLM_BASE_URL'],
                      messages=messages)

content = response.choices[0].message.content
print(content)

if '8' in content:
    print('--> Correct answer! 🎉')
    print('There are still 10 books in the room; reading them does not reduce the count. Consider exploring more accurate models for better results.')

dt2 = datetime.now()
print('Used model:',config['LLM_MODEL'])
print(f"Time taken: {(dt2-dt).total_seconds():.1f}s")

Hi, I was able to fix the issue by building from source and adding a weird value to the config file
Happy it is solved
I'll close here for now
Thanks a lot for the help

weird value to the config file

Could you share that for future users?

Yes, i simply installed all the dependencies (as listed on https://github.com/OpenDevin/OpenDevin/blob/main/Development.md)
Then i normally git cloned the repo and ran the make build command and then added the config parameters of ollama without API and without the use of docker it did work
Hope this helps!


Implement Client Prototype

In general, the proto files should probably come from something that links to a centralized copy (I know git submodules have tradeoffs, open to suggestions), but the problem here is we have no idea what version stargate's supported here without doing a diff between the proto files.

In general, the proto files should probably come from something that links to a centralized copy (I know git submodules have tradeoffs, open to suggestions), but the problem here is we have no idea what version stargate's supported here without doing a diff between the proto files.

Even if we pull the proto files from somewhere else we still need to run the make. Is there any way we can add a version to the files?


ACCEPTANCE: EFxcetionsIdentityContext

@cjdutoit

@ZafarUrakov you need to see what happened to you git verification? @cjdutoit

@glhays Okay, thank you.


mdbook serve creates a specs/src/https:/ directory

Summary of Bug
When I run mdbook serve for the specs, a new directory gets created with README.md pages for all the Celestia-specific modules
$ tree specs/src/https:/github.com/celestiaorg/celestia-app/blob/main/x
.
├── blob
│   └── README.md
├── blobstream
│   └── README.md
├── mint
│   └── README.md
├── paramfilter
│   └── README.md
├── tokenfilter
│   └── README.md
└── upgrade
    └── README.md

All the READMEs just contain a header. I don't think these are necessary so ideally mdbook serve doesn't create them.
Version
main
Steps to Reproduce
cd specs
mdbook serve

Observe that a new directory was created

@rootulp hey can you help me to solve this issue.

Sure! To repro the issue,

Navigate to the specs directory in this repo
Run mdbook serve
Confirm that some new directories were created via git status

To resolve the issue, I think we want to investigate why mdbook creates blank READMEs for the Celestia-specific modules. Does that make sense?

Sure! To repro the issue,

Navigate to the specs directory in this repo
Run mdbook serve
Confirm that some new directories were created via git status

To resolve the issue, I think we want to investigate why mdbook creates blank READMEs for the Celestia-specific modules. Does that make sense?

Okay will do that

hey @rootulp I can't find mdbook command how to install that?

Turns out we don't need these in the summary page. https://github.com/celestiaorg/celestia-app/blob/e05d105e537f1c34bf5a48586f0d0ac32b51df1b/specs/src/SUMMARY.md?plain=1#L21-L26
mdbook is trying to create pages for them.


failed

The World Beyond requires Scene data. Please disable Link, then run Room Setup in Settings. Then enable Link and try again.

Room Setup must be accomplished separately, prior to attaching your Quest via Link cable. After setting up the room, then connecting Link, will the room data be available in Editor. Please see the Scene Capture section here: https://developer.oculus.com/documentation/unity/unity-scene-overview/
"NOTE: You cannot perform Scene Capture over Meta Quest Link. You must perform Room Setup on-device prior to loading the Scene Model over Link."


Revert "Remove duplicate code in Element.rebuild() and BuildOwner.buildScope()"

Reverts flutter/flutter#71940

Merging /tbr @Hixie

The reason for the revert is that the PR has been implicated as causing more stack allocations, which can cause stack overflow in deeply nested widget trees.  Reverting while we investigate.


:bug: Failed to sync sa work-controller-sa in cluster manger hosted mode

Summary
Fix issue for cluster manger in hosted mode:
apiVersion: operator.open-cluster-management.io/v1
kind: ClusterManager
metadata:
  name: cluster-manager
spec:
  addOnManagerImagePullSpec: quay.io/open-cluster-management/addon-manager:latest
  deployOption:
    hosted:
      registrationWebhookConfiguration:
        address: management-control-plane
        port: 30443
      workWebhookConfiguration:
        address: management-control-plane
        port: 31443
    mode: Hosted
  placementImagePullSpec: quay.io/open-cluster-management/placement:latest
  registrationImagePullSpec: quay.io/open-cluster-management/registration:latest
  workImagePullSpec: quay.io/open-cluster-management/work:latest
status:
  conditions:
  - lastTransitionTime: "2023-07-14T07:51:04Z"
    message: 'Failed to sync service account: serviceaccounts "work-controller-sa"
      not found'
    reason: ServiceAccountSyncFailed
    status: "False"
    type: Applied

cluster-manager logs:
E0714 07:51:54.910585       1 base_controller.go:270] "ClusterManagerController" controller failed to sync "cluster-manager", err: serviceaccounts "work-controller-sa" not found
E0714 07:52:37.108738       1 base_controller.go:270] "ClusterManagerController" controller failed to sync "cluster-manager", err: serviceaccounts "work-controller-sa" not found
E0714 07:54:00.264383       1 base_controller.go:270] "ClusterManagerController" controller failed to sync "cluster-manager", err: serviceaccounts "work-controller-sa" not found

Related issue(s)
Fixes #

also I think we need to enhance the integration test for this bug?

cc @xuezhaojun @zhiweiyin318

/approve
/lgtm


Error mesages

Ensure details error messaged are returned when issues happen with Notify calls
To start --- if we pass a template that doesn't exist for a service and Notify fails to send.

In regards to fails to send statement i was thinking that maybe you're refering  to the status of a notification which may required using callbacks?  Otherwise i've assumed that only technical issues like unhandled exceptions.Also errors like HTTPError returned from calling send_email_notification  and send_sms_notification.


As a busy patient registration clerk, I can use the product during busy hours using shortcuts

...so that update the details of my patient/register my patients without errors and reduce the reliance on manual data entry.

This has been partially implemented, and its related issue can be found at #106.

#111 resolves the rest.


triple last frame

4 frames leads to 10 frames. should be 8.
frame 8,9,10 are the same.

All of nihui's frame interpolation implementations do this in order to match the original video's duration.

thanks n00mkrad that explained it.


Travis CI pack

Fixes on top of #218

I fixed all the bugs and addressed all the issues. I will merge this into master, but we still need (better) documentation on how to obtain the access token.

Let me see, the way of obtaining token, I'lll update today here

@Aamir-raza-1 Alright, please open a new PR for those changes.

@Kami We need to make changes to README. We first need to generate a Github token. Once that is generated we will send a POST request to /auth/github API and it will return us a token of Travis CI API. That token would be used for future corresponding requests. So we need github token just for getting the Travis CI token.
I already have mentioned the way to generate github API token in README with images, We just need to add the code to get Travis CI token (a POST call)
What do you suggest?

@Aamir-raza-1 Yeah, in this case the user would only need to specify a Github token in the config file and we would dynamically retrieve Travis CI access token using it.
One thing I'm not sure is (need to check the docs), if the /auth/github flow is possible without user-interaction (e.g. requiring user to open a browser, etc.). If it's not possible, then we can't do this automatically and we will need to write the instructions on how to do that and put it in the readme.
If it's possible in this case, we can just go with that approach then - simply retrieve a new Travis CI access token on every action invocation - it's not ideally (ideally, we would re-use / cache the token), but it works fine for now.

@Kami , Let me see, I guess the flow looks like this to me.
we need to use git API to first grant access to the travis CI to user account, after access is granted we will retrieve client id and client secret for getting git api key and then use that api key to get travis api key. What do you suggest.

Looks like Github auth token should work:

If you have a GitHub token, you can use the GitHub authentication endpoint to exchange it for an access token. The Travis API server will not store the token or use it for anything else then verifying the user account.

Note that therefore the API cannot be used to create new user accounts. The user will have to log in at least once via the web interface before interfacing with the API by other means.

Hmm, Let me look what can we do with this.

@Kami, How can I get the latest code that you have made changes to. When i clone it clones it from my fork and I have the same old code. I need the one that has been changed so that I can start making changes to. Thanks

@Aamir-raza-1 Go to master, pull down the latest changes and include your changes in a new branch based of master:
git checkout master
git pull origin master
git checkout -b my_new_branch_with_auth_changes
....

@Kami, Thats what I have already tried. Still the code changes that you have made are not visible and the actions travisci action also not cloned.
when i pull it says your branch is upto date with master.
Let me see it. Thanks

@Aamir-raza-1 you are probably pulling from your fork repo and not upstream repo. Do:
git remote add upstream https://github.com/StackStorm/st2contrib.git
git pull upstream master
...

@Aamir-raza-1 Figured it out?

Will work on it in sometime, I will sync my fork and add remote. Thanks

I have synced my fork got the latest code, I am now going to write a function to retrieve travis API token, we need to have GIT api token in config file.

@Aamir-raza-1 Yeah that's fine. Previously I removed it since it wasn't used in the code.

@Kami, Hey sorry for the delay, I was off for EID holidays. I have created a PR. Please see https://github.com/StackStorm/st2contrib/pull/252
steps are that you need to supply a username and password for your git.
I wrote a action that will use that username and password and retrieve a token from git. then that token would be used fo get token from travis. so the process is autmated a bit now.


pull request for e2e test at 01/19/2017 20:45:15

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


PREFER_NINJA misspelling fix

/azp run

/azp run

@grdowns, this PR is ready to merge now.

All features test pass on x64-linux, this port doesn't support Windows.
@grdowns, this PR is ready to merge now.


Add lengths to VARCHAR to ensure mysql works

Proposed changes:

add lengths so it works on dialects that need it

Status (please check what you already did):

[x] made PR ready for code review
[x] updated the changelog
[x] reformat files using black (please check Readme for instructions)
[ ] added some tests for the functionality
[ ] updated the documentation

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Ties Schwertasek seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for submitting this PR, we'll give it a review as soon as possible


Glitchy SSID entry for first-time setup on Safari

The cursor position jumps while entering a value into the "Wifi Name" field on the web interface when doing first-time setup on Safari. I could not reproduce on Chrome. Also Safari tries to autocomplete a name from my contacts which might be related.

@lts-po was this related to react 18?

the contact autocomplete is fixed in current version - tested with Safari, glitch is resolved.
@rgov


Warn if prop is required and has default value

Fixes #281
Thanks @colinsmetz! This change caught 3 misuses of a prop with a default value and the required opt set at true.

❤


input type="file" hidden

Hi! Thank you for the awesome project!
In my project I’m using hidden file inputs that are triggered when a button is clicked. File input element looks like this: <input class="uppy-Dashboard-input" hidden="true" aria-hidden="true" tabindex="-1" type="file" name="files[]" multiple="true" onchange={this.props.handleInputChange} ref={(input) => { this.input = input }} />, and it was included to the list of focusable nodes by micromodal. I fixed it by changing the input selector to omit hidden:
'input:not([disabled]):not([type="hidden"]):not([hidden])'

I’d like to send a PR, but thought I’d ask first, and also maybe there’s something else that needs to be changed. Add aria-hidden too? My input does have a tabindex="-1" and aria-hidden="true", but still gets treated as focusable, because it’s an input and not type="hidden".

Hi @arturi - Thanks for reporting this. Here are my thoughts on this:-

aria-hidden="true" prevents screen readers from reading the element.
tabindex="-1" prevents the node from being focusable
hidden="true" is an html5 attribute which should visually hide your element.

Which browser and version are you using? Normally any element with hidden or type=hidden should be hidden by the browser. Micromodal cannot focus on hidden elements.
Now that you mention it, I am not sure if there is any need of :not([type="hidden"]):not([hidden]) in the focusable list since hiding the elements should be onus of the browser.
Additionally, a simple [hidden] { display: none;} should do the trick if the browser does not support this natively.
@arturi @kalpeshsingh thoughts?

Okay, I did some tests and it turns out the bug occurs when this input I mention is the last “focusable element that should not be focusable“ in the modal.
Demo: https://codepen.io/anon/pen/jYyvMe, try tabbing a few times, notice how focus breaks out of the modal.
If you look in the console, the NodeList that gets logged there includes all the inputs that have hidden and tabindex="-1" in them, and that screws up the math, I think.

Yup, seems like aria-hidden="true" needs to explicitly excluded from being selected.
'input:not(hidden):not(disabled):not([aria-hidden])'

Problem is this would need to be set for all selectable elements. Seems like globally omiting aria-hidden="true" does not work.

Shall I send a PR with :not([aria-hidden] in every selectable element? Or shall we think on some other solutions? Could also loop through nodes after querySelectorAll to remove those with hidden attributes, but that might be slower / more verbose code.

In my opinion, adding :not([aria-hidden] in every selectable element should be last option. I will check on this if we can get something clean to fix this problem.


Use term "compound keyword" instead of "user keyword"

Robot can have two kinds of keywords. Lowest level ones are implemented in libraries using Python and higher level ones can be created using Robot's own syntax. We currently call these keywords "library keywords" and "user keywords", respectively. The former name is fine, it makes it clear that these keywords are implemented in libraries, but the latter name is a bit odd. Users creating tests may not have created "user keywords" they are using or they may have also created "library keywords".
I believe that term "compound keyword" would be better than "user keyword". It doesn't concentrate on who has created the keyword, but instead makes it clear that the keyword is a combination of different parts. If others have even better ideas, please propose them in comments!
The main reason I believe we should change the term now is that as part of adding start/end_keyword methods to the listener API v3 (#3296), we are going to expose also model objects representing user/compound keywords. We probably need to add separate methods for them and I wouldn't like to add start/end_user_keyword if the term would be changed in the future. Adding start/end_library_keyword and start/end_compound_keyword sounds much better to me. In addition to the method name, the term will affect the names of the model objects.
This issues consists of the following tasks:

[ ] Agreeing on the term to use.
[ ] Updating the User Guide
[ ] Making sure existing public APIs use the new term in code and in documentation.

New public APIs obviously need to use the new term as well, but that is covered by their respective issues. Internal code can be updated when otherwise modified.

I do agree that User keyword is maybe not the best name. Often, when introducing people to writing libraries, either in Python syntax or Robot language, I refer to Python keywords and Resource keywords. When working with testers that do not write libraries themselves, I refer to Resource keywords and Library keywords, because these are the terms one needs to use when importing the library. Which leaves the case where testers write some local keywords in the test suite file, which I then call Tester keywords. Well, that's just what I do now, but I'll be sure to use the official names ones they are improved ;-)
I don't immediately see how Compound keywords is a better name. Library keywords can be implemented as compound keywords just the same; run_keyword() calls from Python also does the trick. Especially in companies where there is sufficient Python knowledge, it is often easier to stick to just one style and skip the resource files.
Looking at it from the opposite direction, I am wondering what the motivation is to split up the listener based on the way the keyword was written? In which situations does this benefit a user that is writing the listener? Couldn't the information just be an argument or property of an argument in the listener function? Maybe expose what the source (file) of the keyword is? That would open up a wider range of choices for the implementer of the listener, but keeps the interface more narrow.

Resource keyword is a good name otherwise, but it doesn't really work when referring to keywords created in suite files directly. In documentation we could use a different name for them, but in code they are represented by same class. In that usage ResourceKeyword would be misleading.
It's true that library keywords can call other keywords but that's pretty rare. I wouldn't consider that a big problem.
The reason to separate library keywords and user/compound/resource keywords in listener is that the latter can be modified. You can add new keywords or control structures, modify or remove existing, and so on. The idea is that these listener methods are called only after we have resolved what a keyword call like Keyword    arg actually refers to and have the appropriate keyword available. This can be still discussed, but the discussion belongs to #3296.

Thank you, that is clear. I now understand the technical reason for splitting it up.
Given that the reason for splitting up is mainly technical, I am still doubtful whether the difference should be presented as prominently as suggested. It starts to feel like a composite pattern from which I would then borrow the terms leaf and composite keyword, but only for people who need to get into these details. E.g. by adding a flag to the start/end_keyword call attributes, indicating that it is either a leaf or a composite keyword. If your current listener doesn't need the new details you can easily switch to the new version. (If there are no other dependencies I overlooked)
Getting back to this specific issue. Maybe there is no need to make a change in terminology after all. Ignoring the technical details, Library keywords are written by Python programmers and User keywords are written by Robot Framework users. It is not that bad after trying to come up with better alternatives.

I agree with @JFoederer that I really don't see "compound keyword" as any better description for what we call "user keyword". Actually I think it might be a little less clear.

The problem I have with "user keywords" is that users can create libraries. In general I'd like to lower the barrier between just using the framework and extending it with libraries and I believe terminology matters. I'd thus like to have some other term but it doesn't need to be "compound". Does anyone have proposals?
If there's no proposal that's considered clearly better than "user keyword", sticking with the old term is fine as well. There's plenty of work associated with the terminology change and not doing anything would avoid that.

The main reason I believe we should change the term now is that as part of adding start/end_keyword methods to the listener API v3 (https://github.com/robotframework/robotframework/issues/3296), we are going to expose also model objects representing user/compound keywords. We probably need to add separate methods for them and I wouldn't like to add start/end_user_keyword if the term would be changed in the future. Adding start/end_library_keyword and start/end_compound_keyword sounds much better to me. In addition to the method name, the term will affect the names of the model objects.

I understand the desire to settle this now for reasons of clarity and stability with listener methods names. What I am wondering is why would there need to be separate methods for user/compound keywords? From one perspective I see how distinguishing the two makes sense. But then done at an execution model would not a single method for start/end be sufficient?

The best way to have a good idea, is to have lots of ideas... so let's throw a few in:

User keywords vs Library keywords
Compound keywords vs Direct keywords
Composite keywords vs Leaf keywords
Robot keywords vs Coded keywords
Low-code keywords vs Python keywords
Local keywords vs External keywords
Custom keywords vs Library keywords

If there is no clear winner, maybe what we have is as good as any

Because our active native English speaking users prefer the User Keyword term, it's clear there would be no benefits with the terminology change. The change would, however, require a lot of work. Let's forget about that and go forward with User Keywords!

I would like to reopen.
I think compound keywords are just more descriptive.
I missed the discussion… 😞

The ISO 29119-5 does name them composite keywords and simple keywords
I do not like the simple and in German I do prefer atomic keywords as a phrase for those that are not made of others.

I thing the language model has a pretty good point here.
quote:
In the context of keyword-driven testing, it's important to choose terms that are clear, intuitive, and reflective of the functionality of the keywords. For the two types of keywords you've described, here are suitable terms:

Composite Keywords: For keywords that are made of other keywords, the term "Composite Keywords" is fitting. The word "composite" implies a combination or assembly of parts, which aligns well with the idea of these keywords being constructed from other existing keywords. It's a term that's easily understood and reflects their layered nature.

Primitive Keywords: For keywords that are implemented directly by code, the term "Primitive Keywords" could be used. "Primitive" in programming often refers to basic, low-level constructs that are not decomposed further. This term suggests these keywords are the fundamental building blocks in keyword-driven testing, directly tied to code, and not built from other keywords.

The choice of these terms helps in clearly differentiating between the two types of keywords based on their composition and level of abstraction. "Composite" and "Primitive" are terms widely used in various fields, including programming and mathematics, making them recognizable and understandable to people with different backgrounds, especially those familiar with technical concepts.

Choosing between "Composite" and "Compound," and between "Primitive" and "Atomic" involves subtle nuances in meaning and connotation:
Composite vs. Compound:

Composite: This term suggests a structure made from multiple distinct elements, each retaining its identity within the larger assembly. In software, it often implies a modular and hierarchical arrangement, which aligns well with keywords constructed from other keywords.
Compound: While similar, "compound" often implies a more complex integration, where the individual components may lose their distinct identities in the process of forming the compound. In chemistry, for instance, compound elements form a new substance altogether.

"Composite" is preferred because it better conveys the idea of maintaining the identity of individual keywords within a larger, assembled keyword.

I still feel both compound and composite are simply wrong. Just yesterday I refactored a library keyword that was lacking in the analysability department. One of the steps in the process was replacing some direct method calls to other keywords with run_keyword. The benefit I see in this is:

Programming can stay in Python. I minimize the use of IF from .robot or .resource files and I have yet to use my first TRY/EXCEPT there.
It improves the logs. Instead of having long chunks of text, that lost their context, I get the nice expandable keywords to guide my users through what is happening.

So, in my opinion, Library keywords are created and maintained by programmers, User keywords by domain specialists. Whether or not something becomes a composite keyword depends on how you want to communicate to your users through the logs. Also, like in my example, keywords often are already composite, but it just doesn't shown due to the way the other keywords are called.

Also the term primitive does not cover it, in my opinion. A typical architecture is to have technical libraries that build an abstraction on top of the System Under Test, to make it controllable from a programmatic setting. This layer should be independent from the chosen automation framework.
Robot keyword libraries are there to bridge the gap from the Domain Specific Language (keywords) to the technical domain. They use the technical libraries for this and, as such, they are by no means primitive in this context.

@JFoederer I understand your opinion, but i do not fully agree.

Library keywords do not need to be any technical. It is just the "lower" end of the Keyword Levels. Below a library keyword it is not keywords anymore. Even that you call BuiltIn().run_keyword does not make it a keyword. It is still Python code. And keywords composed of other keywords are composite.
But still Library Keywords may be Domain Specific.

I typically make a difference between the term Level and Layer. Levels are just defining if it is an atomic library keyword of if it is a keyword used in the tests. That can actually mean that there is just one level. But levels like High Level or Low Level do not say anything about if it is technical or business logic.
The Layers on the other hand do have a relation to its abstraction. A Business Layer keyword can be on Library Level or a keyword belonging to the Adaptation Layer (Click, or Get Attribute) can be used as High Level keyword in a test, if you are testing technical things.
So the separation of Composite vs Library/Primitive/Atomic keywords is just a technical definition.
It has nothing to do with the layers they are belonging to.
However i can understand the naming of User Keyword because it can be created by users. But that, as Pekka already said, does also apply for Library Keywords and therefore it is imho the wrong term.
And even though i am not a huge fan of the ISO 29119-5 it is still a Standard that already gives a definition of the term Composite Keyword.
And i must say, that it exactly tells what it is. A keyword composed of other keywords.
But i would prefer to have this discussion in Slack!
Lets please involve others.

There was long discussion on Slack about this but no clear consensus on what to do. The status quo is keep using the user keyword team and I believe we cannot do anything else before RF 7.0.
The only thing RF 7.0 changes related to this are the new start/end_user_keyword methods in the listener v3 API. If we later agree on the terminology change, renaming those methods in backwards compatible manner isn't too complicated.

It seems we cannot agree on what term to use and it also seems that trying to change the term would nevertheless have pretty small benefits. Let's close this again and reopen later if needed.


Inquiry about the Connection of Ligand to Residue via Double Bond

Hello, @matteoferla！
Rdkit_to_params is a fantastic tool that has greatly helped me solve numerous issues, and I want to express my gratitude!
However, I've encountered a problem. My ligand is the ZFJ, derived from the protein with pdbid=7mfx, which is connected to the LYS on the protein through a C=N double bond formed by a Schiff base reaction. Is there a way to take this into consideration when generating the constraint file?
Your assistance on this matter would be greatly appreciated!

that has greatly helped me solve numerous issue

I am happy to hear that

when generating the constraint file
I should say that the Constraint class is odd as it spits out constraint files to be useful for Rosetta users, whereas in PyRosetta I'd not bother and add constraints directly to the pose (example).
So I actually never use it as I operate solely with PyRosetta space.
Plus, on a quick gander I don't think passing a double bond would work.

There is an extra level of detail that may or may not cause problem: the atom types as C23 (the connection on the ligand side) has a sp2 not sp3 hybridisation state —which would slightly affect bond lengths etc. So I would probably generate the topology for CCN(CC)c1ccc-2c(c1)C(c3c2ccc(c3)/C=C/C=N)(C)C:

with names from the PDB (so with Lys NZ via PyMOL surgery).
But that is a minor detail.
So definiting the names based on https://www.ebi.ac.uk/pdbe/static/files/pdbechem_v2/ZFJ_ideal.pdb
and getting the angles:
from rdkit import Chem
from rdkit.Chem import AllChem

imine: Chem.Mol = Chem.MolFromSmiles('C/C=NC')
imine

AllChem.EmbedMolecule(imine)
antecedent_idx = 0
antecedent_name = 'C22'
connecting_idx = 1
connecting_name = 'C23'
nitrogen_idx = 2
nitrogen_name = 'NZ'
descendant_idx = 3
descendant_name = 'CE'
conf: Chem.Conformer = imine.GetConformer()

antecedent_angle: float = Chem.rdMolTransforms.GetAngleRad(conf, antecedent_idx, connecting_idx,nitrogen_idx)
descendant_angle: float = Chem.rdMolTransforms.GetAngleRad(conf, connecting_idx,nitrogen_idx, descendant_idx)
dihedral_angle: float = Chem.rdMolTransforms.GetDihedralRad(conf, antecedent_idx, connecting_idx,nitrogen_idx, descendant_idx)

print(f'Angle {antecedent_name} \U0001F47EB {connecting_name} \U0001F47EB {nitrogen_name} \U0001F47EA HARMONIC {antecedent_angle:.2f} \U0001F47E')
print(f'Angle {connecting_name} \U0001F47EB {nitrogen_name} \U0001F47EA {descendant_name} \U0001F47EA HARMONIC {descendant_angle:.2f} \U0001F47E')
print(f'Dihedral {antecedent_name} \U0001F47EB {connecting_name} \U0001F47EB {nitrogen_name} {nitrogen_name} \U0001F47EA {descendant_name} \U0001F47EA CIRCULARHARMONIC {dihedral_angle:.2f} \U0001F47E')```
Gives

    Angle C22 👾B C23 👾B NZ 👾A HARMONIC 2.15 👾
    Angle C23 👾B NZ 👾A CE 👾A HARMONIC 2.12 👾
    Dihedral C22 👾B C23 👾B NZ NZ 👾A CE 👾A CIRCULARHARMONIC 3.14 👾

3.14 is pi. so can be zero radians.
The last placeholder is the sigma. 5° is like short of 0.1, so something like that —an arbitrary number on the 0.1–0.5 range.

I understand that constraint files can only be constructed with single bonds

Bond order is not really a thing in MM: atoms are described by atom types which include element, hybridisation state and other properties. They are in the topology definition solely for output purposes.
But yes, the bond order is not definable in the connections. However, the important thing is that it is planar (sp2) as you can append the CONECT to the file to fix the

build the entire LYS with ZFJ as a non-standard residue

The number of rotatable bonds will be rather high. Having it as a patch on norleucine (NLE) may be better if the double bond is essential.

Thank you very much for your advice and guidance. I will implement these methods in the hope of achieving a correct system. However, due to time constraints, this is likely to be completed by next week.
Once again, I sincerely appreciate your assistance and wish you all the best!

Thanks a lot for your valuable advice. I have successfully completed this simulation! I will now close this issue. Have a pleasant weekend!


Fixed telnet LS commond throw class cast exception

Fixed for telnet for ls commond

modify dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/util/ServiceCheckUtils.java
add unit test at dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/util/ServiceCheckUtilsTest.java

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[x] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[x] Add some description to dubbo-website project if you are requesting to add a feature.
[x] GitHub Actions works fine on your own branch.
[x] If this contribution is large, please follow the Software Donation Guide.

Hello, I want to confirm that this problem appeared in master branch, right? 3.0 branch has fixed this problem (ServiceDiscoveryRegistry extends FailbackRegistry extends AbstractRegistry), However, it is also an optimization to make a type judgment before the forced cast.

Hi BurningCN
you are right. For 3.0 version, it's extend from AbstractRegistry.
because something , we are project must use 2.7.13. so we need do this.

Do i should close this pr?

Please submit a similar one against the master branch


Make it call you

@filip-michalsky any chance to know how you implemented your demonstration when your SalesGPT is calling ?

@Gamma-Software The calling functionality will be available via an API - stay tuned!

@Gamma-Software The calling functionality will be available via an API - stay tuned!

Hi @filip-michalsky , kindly follow up on the calling functionality. Thanks!


Implement faster ThreadContextMap

This implements a version of ThreadContextMap that is faster than `DefaultThreadContextMap, and is suitable for applications with nested classloaders, such as web applications running in containers.  Key characteristics of this version are:

Faster copy-and-modify operations
Lower memory allocation
State is contained in a single object using a JVM-defined class (Object[]).  This solves the classloader reference problem.
Performance is better than DefaultThreadContextMap except for get() operations, where performance becomes linear.

See PR #2321 for additional context and related conversations.

@jvz not sure what your schedule is, but I'll be unavailable next week and unable to respond to comments.  I've lined up a coworker to watch the conversation and help where possible.

Our application ran into a JDK performance issue which makes constructors slow whenever the object has a final member variable.  We're removing finals from hotspots, and the code in this PR contains several instances of this problem.  Any objection if we remove the keyword final from those member variables?  Not sure if it'll violate enforced styling.

@jengebr, very sharp of you! Thanks for chasing this! Keeping finals out due to the reason you stated is perfectly fine, but please document it (preferably, with a pointer to the relevant OpenJDK issue) wherever this modification is needed.
OTOH, given the impact surface of this problem and its severity, I expect it to be promptly addressed by OpenJDK. Maybe we should put a reminder to remove this in a year or so. WDYT?

@jengebr, very sharp of you! Thanks for chasing this! Keeping finals out due to the reason you stated is perfectly fine, but please document it (preferably, with a pointer to the relevant OpenJDK issue) wherever this modification is needed.
OTOH, given the impact surface of this problem and its severity, I expect it to be promptly addressed by OpenJDK. Maybe we should put a reminder to remove this in a year or so. WDYT?

@vy I think the reminder is a very good idea.  How do you suggest we do that?  Is there a github mechanism, or just a comment in the code?

I've pushed the updated code, working through unrelated build failures.  May revise further if something actually is related.

Local build completed successfully with no further revisions.  I'll be "back" in about 1.5 weeks, will address comments quickly after that.

@jengebr,
Thank your for your contribution. I'll enable it by default in the 2.24 branch.

Thank you for your encouragement!  I hope this helps other as much as it'll help us.

@jengebr, would you mind reminding me why did we settle on an copy-on-write map instead of a mutable one (and cloning it if getImmutableMapOrNull(), getMap(), etc. is requested), please?

Hi @vy - copy-on-write was the previous state, where it would fully copy the existing HashMap into a new one, then pass that around.  To answer the immediate question, I implemented copy-on-write because that was the current behavior.
As for why it was first introduced, I speculate it's because the Map object itself can be exposed to the caller, and therefore is conceivably at risk of concurrent updates.
The cost of copying a HashMap is quite high (slow iteration across the original, object allocations to create the new) and the perf advantage of the new one comes from drastically reducing it.  If we dropped the copy-and-modify requirement, we'd see better performance than either HashMap or this.

cloning it if getImmutableMapOrNull(), getMap(), etc. is requested
Currently, direct updates to getMap() are visible to the ThreadContext(), and updates to ThreadContext() are visible to the get*Map() methods.  This would be a breaking change, although possibly an acceptable cost.

@jengebr, thanks so much for the quick and elaborate response! :heart_eyes:

Currently, direct updates to getMap() are visible to the ThreadContext(), and updates to ThreadContext() are visible to the get*Map() methods.

I guess, while we can still retain these behaviours using a mutable map, I am more inclined to treat these as misuses instead of features.
Right now I am firefighting with #2946 (the issue that we couldn't completely resolve in 2.23.1) in #3050 – your review is more than welcome! :star_struck: There I will try to just fix the reported bug. I intend to submit another PR rewriting DefaultThreadContextMap using a mutable array.

Thanks for working on this!  I added one suggestion on the PR (streams add overhead), but I like how much easier it is to read that code.
I look forward to the Mutable array!  Please let me know once it's ready and I can support with some performance analysis.

Currently, direct updates to getMap() are visible to the ThreadContext(), and updates to ThreadContext() are visible to the get*Map() methods.

I guess, while we can still retain these behaviours using a mutable map, I am more inclined to treat these as misuses rather than features.

By looking closely at ThreadContext.getImmutableContext() I also believe that the returned object could be mutable and if a user tries to modify it, he breaches the method's contract.
Note that ThreadContext.getImmutableContext() is a "feature" of the Log4j API only. SLF4J users can only get a copy using MDC.getCopyOfContextMap(), so we don't risk misuse from their part.


[Bug] Display List not working correctly

Describe the bug
The list views after clicking on "display List" do not contain one entry per line, but appear to be one line with automatic word wrap.
Expected behavior
The resulting lists should contain one line per person
Screenshots

Fixed!


Add priviliges extension

Description
Added an extension for SAP Priviliges app. Allows to grant and revoke permissions on the fly. I am not contributing via your recommended way, no way I am going to give you access to all my private repo's (what a weird requirement?!)
Screencast
There is no visual element other than the notification.
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

hey @ph00lt0, since this PR has been hanging around for a while, I hope you don't mind that I implemented @pernielsentikaer's feedback, as well as did a bit of refactoring. If you're fine with the changes, I'd say we should be able to finally get this extension published 😺


Error while giving permission

Description
I tried to add a permission to an user, it gave me a lot of errors (but it worked), and 10mn after, I tried again and I didn't get any error.
So sometimes it throw errors without reason, I didn't restart the server or change anything.
Reproduction steps
Give a permission to a player
Expected behaviour
Shouldn't throw an error
Environment details

Error in console :
https://pastebin.com/CMvz6VaJ

Update your server software and LuckPerms to the latest versions


Executable path not working correctly

I'm trying to use executable path to setup chrome with chrome.exe path and puppeteer with fingerprints still open the browser with chromium and not with given executable path

Yes, that is correct


get an error when reproduce the program

Hello, your article is very good. I want to learn your model, but I get an error when I reproduce the program:
File "D:\Anaconda3-install\install\envs\lw2\lib\multiprocessing\process.py", line 122, in start
self._sentinel = self._popen.sentinel
AttributeError: 'function' object has no attribute 'sentinel'

Hi Xin,
It seems to be a problem from environment setting. You may wish to re-install the given environment and see how it goes.
Cheers.


[iOS] Cannot control render order of markers

I am using Images inside of Markers, and I want the larger images to be displayed over smaller ones. So I initially sort my list of markers before rendering so that they are sorted by ascending order(I have printed to make sure they are ordered, and reversing the order does not work either).
This doesn't work, on initial render the markers furthest down are prioritized, however when I drag the map just slightly, they reorder correctly.
I tried adding zIndex in style, but this didn't help either.
Has anyone else tried to do the same? Seems like some default marker behavior controlling the initial render.

So potential if we could have didAddAnnotationViews added to AirMap which utilises MKMapView interface. We could do something close to sorting using old methods like these:
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
   for (MKAnnotationView * annView in views) {
      TopBottomAnnotation * ann = (TopBottomAnnotation *) [annView annotation];
      if ([ann top]) {
         [[annView superview] bringSubviewToFront:annView];
      } else {
         [[annView superview] sendSubviewToBack:annView];
      }
   }

}

What do you guys think? @lelandrichardson @spikebrehm @felipecsl @thelordoftheboards

@eugenehp that looks good! Can you create a PR?

@eugenehp @spikebrehm any news on this ?

@magrinj check out 0.11 zIndex. Works well.

Sounds like this can be closed?

@thelordoftheboards @felipecsl I think this bug can be link at this one #751 no ?


Replace Semantic UI with Fomantic UI

Ref: https://github.com/biothings/biothings_studio/issues/88

@newgene
After replace Semantic UI 2.4 with Fomantic 2.8.8, I noticed some style problems. They were fixed.
If you find other problems, please let me know, thank :)


Can't connect to Mongo servers - "Couldn't start client Mongo Language Server"

Repro steps:

Mac OS version 10.14.6, from a new terminal window:
1.cd ~
2.mkdir vscode-test
3.cd vscode-test/
4.code .
5.[CMD-SHIFT-A], or click on the "Azure" icon in the Extensions bar to open the vscode Azure CosmosDB Extension
6.Observe "Output" message: [Error - 11:46:02 PM] Starting client failed
7 Observe "Notifications" popup: Couldn't start client Mongo Language Server...Source: Azure Cosmos DB (Extension)
8.In COSMOSDB panel, Click "Attached Database Accounts" to expand the list of connected Mongo servers (demonstrate that connections seem to be working)
9.Click a mongo connection to expand to a list of schemas
10.On a collection, 2-finger click (on a Mac) and select "Connect"
11.Observe Language client is not ready yet...Source: Azure Cosmos DB (Extension)
Action: cosmosDB.connectMongoDB
Error type: Error
Error Message: Language client is not ready yet
Version: 0.12.1
OS: darwin
Product: Visual Studio Code
Product Version: 1.43.0
Language: en

Call Stack
LanguageClient.sendRequest vscode-languageclient/client.js:1615:19
MongoDBLanguageClient.<anonymous> extension.bundle.js:614:1081341
extension.bundle.js:614:1080477
n extension.bundle.js:614:1080222
MongoDBLanguageClient.connect extension.bundle.js:614:1081289
Object.<anonymous> extension.bundle.js:614:1078327
a extension.bundle.js:614:1074782

Dupe of https://github.com/microsoft/vscode-cosmosdb/issues/1334