-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-entrypoint.sh
More file actions
51 lines (47 loc) · 1.3 KB
/
docker-entrypoint.sh
File metadata and controls
51 lines (47 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh
set -e
case "${ROAR_MODE}" in
hub)
echo "Starting ROAR Hub on ${ROAR_HOST}:${ROAR_PORT}"
exec python -c "
from roar_sdk.hub import ROARHub
import os
hub = ROARHub(host=os.environ.get('ROAR_HOST', '0.0.0.0'), port=int(os.environ.get('ROAR_PORT', '8090')))
hub.serve()
"
;;
agent)
echo "Starting ROAR Agent Server on ${ROAR_HOST}:${ROAR_PORT}"
exec python -c "
from roar_sdk import AgentIdentity, MessageIntent, ROARMessage, ROARServer
import os
identity = AgentIdentity(
display_name=os.environ.get('ROAR_AGENT_NAME', 'roar-agent'),
capabilities=os.environ.get('ROAR_AGENT_CAPS', 'general').split(','),
)
server = ROARServer(
identity=identity,
host=os.environ.get('ROAR_HOST', '0.0.0.0'),
port=int(os.environ.get('ROAR_PORT', '8089')),
signing_secret=os.environ.get('ROAR_SECRET', ''),
)
@server.on(MessageIntent.DELEGATE)
async def handle(msg: ROARMessage) -> ROARMessage:
return ROARMessage(
**{'from': identity, 'to': msg.from_identity},
intent=MessageIntent.RESPOND,
payload={'echo': msg.payload, 'agent': identity.display_name},
context={'in_reply_to': msg.id},
)
server.serve()
"
;;
cli)
exec roar "$@"
;;
*)
echo "Unknown ROAR_MODE: ${ROAR_MODE}"
echo "Use: hub, agent, or cli"
exit 1
;;
esac