File size: 2,074 Bytes
750b88d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env bash
set -euo pipefail
shopt -s inherit_errexit
cd "$(dirname "$0")"
VENDOR=$(pwd)
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
OUT="$TMP/out"
mkdir "$OUT"

fetch() {  # fetch NAME OWNER/REPO COMMIT: unpack the commit's archive into $TMP/NAME
  mkdir "$TMP/$1"
  curl -fsSL "https://codeload.github.com/$2/tar.gz/$3" -o "$TMP/$1.tar.gz"
  tar xzf "$TMP/$1.tar.gz" -C "$TMP/$1"
}

root() {  # root NAME: the one top-level directory of the unpacked archive
  local d=("$TMP/$1"/*)
  if [ "${#d[@]}" -ne 1 ] || [ ! -d "${d[0]}" ]; then
    echo "unexpected archive layout for $1" >&2
    exit 1
  fi
  echo "${d[0]}"
}

fetch HippoRAG OSU-NLP-Group/HippoRAG e37fba2af1a951ac340d837a7c02efb9d8c9544a
fetch REMem intuit-ai-research/REMem d87840be922c9815a3c97ec24d9c25e4af5c295a
fetch LightMem zjunlp/LightMem b11eccd23c7cf6f0fde390b44c25efef818a5c5e
fetch amem WujiangXu/A-mem 0c8039f28fdcc08189a23c07a3437d9d2482f9c2
fetch letta letta-ai/letta 780d004b12ab214d31fc55cd2681878557fe397c
fetch MIRIX Mirix-AI/MIRIX 5ff2966f8959943953ca0e5a81faca951f86212c
fetch memos MemTensor/MemOS 27c9e71912e33a2f8c6bea6d79c08dbae282e4b8

src=$(root HippoRAG); mkdir "$OUT/HippoRAG"; cp -R "$src/src" "$OUT/HippoRAG/src"
src=$(root REMem); mkdir "$OUT/REMem"; cp -R "$src/src" "$OUT/REMem/src"
src=$(root LightMem); mkdir "$OUT/LightMem"; cp -R "$src/src" "$OUT/LightMem/src"
src=$(root amem); mkdir -p "$OUT/amem/A-mem"
cp "$src"/*.py "$src"/LICENSE "$src"/README.md "$src"/requirements.txt "$OUT/amem/A-mem/"
src=$(root letta); cp -R "$src/letta" "$OUT/letta"; rm -f "$OUT/letta/personas/examples/sqldb/test.db"
src=$(root MIRIX); mkdir "$OUT/MIRIX"; cp -R "$src/mirix" "$OUT/MIRIX/mirix"; rm -f "$OUT/MIRIX/mirix/.DS_Store"
src=$(root memos); mkdir "$OUT/memos"; cp -R "$src/src" "$src/LICENSE" "$src/pyproject.toml" "$OUT/memos/"

cd "$OUT"
for p in "$VENDOR"/patches/*.patch; do
  patch -p1 -s --no-backup-if-mismatch < "$p"
done

cd "$VENDOR"
for e in HippoRAG REMem LightMem amem letta MIRIX memos; do
  rm -rf "$e"
  mv "$OUT/$e" "$e"
done
echo "engines ready in $VENDOR"