-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·71 lines (63 loc) · 2.74 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·71 lines (63 loc) · 2.74 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env bash
# Install Hermimo Link v1.0.5 on Linux / WSL.
set -euo pipefail
SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
AGENT="${1:-${HERMIMO_AGENT:-}}"
SHARED_DIR="${2:-${HERMIMO_LINK_DIR:-${HANDSHAKE_DIR:-$HOME/.hermimo-link}}}"
SKILL_DIR="${3:-}"
POLL_INTERVAL="${HERMIMO_POLL_INTERVAL:-0.2}"
if [[ "$AGENT" != "hermes" && "$AGENT" != "mimo" ]]; then
printf 'Usage: %s hermes|mimo [shared-dir] [agent-skills-dir]\n' "$0" >&2
exit 2
fi
mkdir -p "$SHARED_DIR"/{inbox/{hermes,mimo},processing/{hermes,mimo},results,events,archive/{hermes,mimo},dead-letter/{hermes,mimo},state,logs,scripts,references,instructions}
cp "$SOURCE_DIR"/scripts/*.py "$SHARED_DIR/scripts/"
cp "$SOURCE_DIR"/references/*.md "$SHARED_DIR/references/"
cp "$SOURCE_DIR"/instructions/*.md "$SHARED_DIR/instructions/"
cp "$SOURCE_DIR/SKILL.md" "$SHARED_DIR/"
[[ ! -f "$SOURCE_DIR/README.md" ]] || cp "$SOURCE_DIR/README.md" "$SHARED_DIR/"
[[ ! -f "$SOURCE_DIR/LICENSE" ]] || cp "$SOURCE_DIR/LICENSE" "$SHARED_DIR/"
if [[ -n "$SKILL_DIR" ]]; then
SKILL_TARGET="$SKILL_DIR/hermimo-link"
mkdir -p "$SKILL_TARGET"/{scripts,references,agents}
cp "$SOURCE_DIR/SKILL.md" "$SKILL_TARGET/"
cp "$SOURCE_DIR"/scripts/*.py "$SKILL_TARGET/scripts/"
cp "$SOURCE_DIR"/references/*.md "$SKILL_TARGET/references/"
cp "$SOURCE_DIR"/agents/*.yaml "$SKILL_TARGET/agents/"
printf '{"agent":"%s","package_version":"1.0.5"}\n' "$AGENT" > "$SKILL_TARGET/endpoint.json"
printf 'Skill installed: %s\n' "$SKILL_TARGET"
fi
export HERMIMO_LINK_DIR="$SHARED_DIR"
export HERMIMO_AGENT="$AGENT"
export HERMIMO_POLL_INTERVAL="$POLL_INTERVAL"
PROFILE_FILE="${HERMIMO_PROFILE_FILE:-$HOME/.bashrc}"
touch "$PROFILE_FILE"
PROFILE_TEMP="$(mktemp "${PROFILE_FILE}.hermimo.XXXXXX")"
awk '
$0 == "# >>> hermimo-link >>>" { skip=1; next }
$0 == "# <<< hermimo-link <<<" { skip=0; next }
!skip { print }
' "$PROFILE_FILE" > "$PROFILE_TEMP"
{
printf '\n# >>> hermimo-link >>>\n'
printf 'export HERMIMO_LINK_DIR=%q\n' "$SHARED_DIR"
printf 'export HERMIMO_POLL_INTERVAL=%q\n' "$POLL_INTERVAL"
printf '# <<< hermimo-link <<<\n'
} >> "$PROFILE_TEMP"
mv "$PROFILE_TEMP" "$PROFILE_FILE"
PYTHON_BIN=""
if command -v python3 >/dev/null 2>&1; then
PYTHON_BIN="$(command -v python3)"
elif command -v python >/dev/null 2>&1; then
PYTHON_BIN="$(command -v python)"
fi
if [[ -n "$PYTHON_BIN" ]]; then
"$PYTHON_BIN" "$SOURCE_DIR/scripts/self_test.py"
else
printf 'Warning: Python 3 was not found; runtime self-test was skipped.\n' >&2
fi
printf 'Hermimo Link v1.0.5 installed\n'
printf 'Shared directory: %s\n' "$SHARED_DIR"
printf 'Endpoint identity: %s\n' "$AGENT"
printf 'Polling interval: %ss\n' "$POLL_INTERVAL"
printf 'Open a new terminal, then start: python3 %s/scripts/worker.py --agent %s\n' "$SHARED_DIR" "$AGENT"