Some checks failed
SDK CI / python-compile (push) Has been cancelled
- 新增 sdk/app/agent(Hook/Skills/Anti-ban 等)及 NAS/ADB 脚本 - 更新 Android 端、unified、PHP SDK、Docker Compose - Soul 文档迁移至 Soul调研/;移除资料目录内 APK - .gitignore 排除 sdk/tmp、sdk/logs、sdk/tmp_rom Co-authored-by: Cursor <cursoragent@cursor.com>
71 lines
2.4 KiB
Bash
Executable File
71 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
||
#
|
||
# 打包 Agent 代码为 agent.tar.gz,供服务端 /api/v3/agent/download 分发
|
||
#
|
||
# 用法: cd sdk/agent && bash package.sh
|
||
# 输出: sdk/agent/dist/agent.tar.gz
|
||
#
|
||
|
||
set -eo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
DIST_DIR="$SCRIPT_DIR/dist"
|
||
TEMP_DIR=$(mktemp -d)
|
||
|
||
echo "📦 打包 Agent 代码..."
|
||
|
||
# 创建临时目录结构
|
||
mkdir -p "$TEMP_DIR/agent/skills/wechat" \
|
||
"$TEMP_DIR/agent/skills/douyin" \
|
||
"$TEMP_DIR/agent/skills/xhs" \
|
||
"$TEMP_DIR/agent/skills/xianyu" \
|
||
"$TEMP_DIR/agent/skills/soul" \
|
||
"$TEMP_DIR/agent/hawk"
|
||
|
||
# 复制核心文件
|
||
for f in agent.py skill_executor.py skill_bus.py error_handler.py vision_helper.py voice_agent.py requirements.txt config.json.example; do
|
||
if [ -f "$SCRIPT_DIR/$f" ]; then
|
||
cp "$SCRIPT_DIR/$f" "$TEMP_DIR/agent/"
|
||
fi
|
||
done
|
||
|
||
# 复制技能文件
|
||
cp "$SCRIPT_DIR/skills/__init__.py" "$TEMP_DIR/agent/skills/"
|
||
cp "$SCRIPT_DIR/skills/base.py" "$TEMP_DIR/agent/skills/"
|
||
cp "$SCRIPT_DIR/skills/voice_control.py" "$TEMP_DIR/agent/skills/"
|
||
cp "$SCRIPT_DIR/skills/app_manager.py" "$TEMP_DIR/agent/skills/"
|
||
cp "$SCRIPT_DIR/skills/search.py" "$TEMP_DIR/agent/skills/"
|
||
[ -f "$SCRIPT_DIR/skills/network_reconnect.py" ] && cp "$SCRIPT_DIR/skills/network_reconnect.py" "$TEMP_DIR/agent/skills/"
|
||
[ -f "$SCRIPT_DIR/skills/connection_guard.py" ] && cp "$SCRIPT_DIR/skills/connection_guard.py" "$TEMP_DIR/agent/skills/"
|
||
|
||
# Hawk 模块(网络层,与 Agent 隔离)
|
||
for f in __init__.py network.py; do
|
||
[ -f "$SCRIPT_DIR/hawk/$f" ] && cp "$SCRIPT_DIR/hawk/$f" "$TEMP_DIR/agent/hawk/"
|
||
done
|
||
|
||
# Hook 模块(Frida Hook 通道)
|
||
mkdir -p "$TEMP_DIR/agent/hook/scripts"
|
||
for f in README.md setup_redmi11.sh wechat_hook_v1.js; do
|
||
[ -f "$SCRIPT_DIR/hook/$f" ] && cp "$SCRIPT_DIR/hook/$f" "$TEMP_DIR/agent/hook/"
|
||
done
|
||
|
||
for sub in wechat douyin xhs xianyu soul; do
|
||
if [ -d "$SCRIPT_DIR/skills/$sub" ]; then
|
||
cp "$SCRIPT_DIR/skills/$sub/__init__.py" "$TEMP_DIR/agent/skills/$sub/" 2>/dev/null || true
|
||
cp "$SCRIPT_DIR/skills/$sub/skill.py" "$TEMP_DIR/agent/skills/$sub/" 2>/dev/null || true
|
||
fi
|
||
done
|
||
|
||
# 打包
|
||
mkdir -p "$DIST_DIR"
|
||
cd "$TEMP_DIR"
|
||
# 解压后文件直接在当前目录(不带 agent/ 前缀),方便安装脚本
|
||
cd agent
|
||
tar czf "$DIST_DIR/agent.tar.gz" .
|
||
|
||
# 清理
|
||
rm -rf "$TEMP_DIR"
|
||
|
||
SIZE=$(du -sh "$DIST_DIR/agent.tar.gz" | cut -f1)
|
||
echo "✅ 打包完成: $DIST_DIR/agent.tar.gz ($SIZE)"
|