mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
chore: release v1.35.0
This commit is contained in:
@@ -1,147 +0,0 @@
|
||||
#!/bin/bash
|
||||
# 插件包构建脚本
|
||||
# 用法: ./scripts/build-plugin.sh <plugin_name> [version]
|
||||
# 示例: ./scripts/build-plugin.sh machine-id-tool 0.1.0
|
||||
#
|
||||
# 此脚本将插件目录打包为 zip 格式,用于分发和安装
|
||||
# _需求: 6.1_
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 打印带颜色的消息
|
||||
info() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 检查参数
|
||||
if [ -z "$1" ]; then
|
||||
echo "用法: $0 <plugin_name> [version]"
|
||||
echo "示例: $0 machine-id-tool 0.1.0"
|
||||
echo ""
|
||||
echo "参数:"
|
||||
echo " plugin_name 插件名称(对应 plugins/ 目录下的文件夹名)"
|
||||
echo " version 可选,覆盖 plugin.json 中的版本号"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PLUGIN_NAME="$1"
|
||||
VERSION_OVERRIDE="$2"
|
||||
|
||||
# 获取脚本和项目目录
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||
PLUGINS_DIR="$PROJECT_ROOT/plugins"
|
||||
PLUGIN_DIR="$PLUGINS_DIR/$PLUGIN_NAME"
|
||||
OUTPUT_DIR="$PROJECT_ROOT/dist/plugins"
|
||||
|
||||
# 检查插件目录是否存在
|
||||
if [ ! -d "$PLUGIN_DIR" ]; then
|
||||
error "插件目录不存在: $PLUGIN_DIR"
|
||||
fi
|
||||
|
||||
# 检查 plugin.json 是否存在
|
||||
MANIFEST_FILE="$PLUGIN_DIR/plugin.json"
|
||||
if [ ! -f "$MANIFEST_FILE" ]; then
|
||||
error "插件清单文件不存在: $MANIFEST_FILE"
|
||||
fi
|
||||
|
||||
# 读取版本号
|
||||
if [ -n "$VERSION_OVERRIDE" ]; then
|
||||
VERSION="$VERSION_OVERRIDE"
|
||||
info "使用覆盖版本: $VERSION"
|
||||
else
|
||||
# 从 plugin.json 读取版本
|
||||
VERSION=$(grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' "$MANIFEST_FILE" | head -1 | sed 's/.*"\([^"]*\)"$/\1/')
|
||||
if [ -z "$VERSION" ]; then
|
||||
error "无法从 plugin.json 读取版本号"
|
||||
fi
|
||||
info "从 plugin.json 读取版本: $VERSION"
|
||||
fi
|
||||
|
||||
# 创建输出目录
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
# 定义输出文件名
|
||||
OUTPUT_FILE="$OUTPUT_DIR/${PLUGIN_NAME}-${VERSION}.zip"
|
||||
|
||||
info "开始打包插件: $PLUGIN_NAME v$VERSION"
|
||||
info "源目录: $PLUGIN_DIR"
|
||||
info "输出文件: $OUTPUT_FILE"
|
||||
|
||||
# 如果输出文件已存在,先删除
|
||||
if [ -f "$OUTPUT_FILE" ]; then
|
||||
warn "输出文件已存在,将被覆盖"
|
||||
rm -f "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
# 创建临时目录用于打包
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
TEMP_PLUGIN_DIR="$TEMP_DIR/$PLUGIN_NAME"
|
||||
|
||||
# 复制插件文件到临时目录
|
||||
info "复制插件文件..."
|
||||
mkdir -p "$TEMP_PLUGIN_DIR"
|
||||
cp -r "$PLUGIN_DIR"/* "$TEMP_PLUGIN_DIR/"
|
||||
|
||||
# 如果指定了版本覆盖,更新 plugin.json
|
||||
if [ -n "$VERSION_OVERRIDE" ]; then
|
||||
info "更新 plugin.json 版本号..."
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# macOS
|
||||
sed -i '' "s/\"version\"[[:space:]]*:[[:space:]]*\"[^\"]*\"/\"version\": \"$VERSION_OVERRIDE\"/" "$TEMP_PLUGIN_DIR/plugin.json"
|
||||
else
|
||||
# Linux
|
||||
sed -i "s/\"version\"[[:space:]]*:[[:space:]]*\"[^\"]*\"/\"version\": \"$VERSION_OVERRIDE\"/" "$TEMP_PLUGIN_DIR/plugin.json"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 创建 zip 包
|
||||
info "创建 zip 包..."
|
||||
cd "$TEMP_DIR"
|
||||
zip -r "$OUTPUT_FILE" "$PLUGIN_NAME" -x "*.DS_Store" -x "*__MACOSX*"
|
||||
|
||||
# 清理临时目录
|
||||
rm -rf "$TEMP_DIR"
|
||||
|
||||
# 计算校验和
|
||||
info "计算校验和..."
|
||||
if command -v sha256sum &> /dev/null; then
|
||||
CHECKSUM=$(sha256sum "$OUTPUT_FILE" | awk '{print $1}')
|
||||
elif command -v shasum &> /dev/null; then
|
||||
CHECKSUM=$(shasum -a 256 "$OUTPUT_FILE" | awk '{print $1}')
|
||||
else
|
||||
warn "无法计算校验和:未找到 sha256sum 或 shasum 命令"
|
||||
CHECKSUM="N/A"
|
||||
fi
|
||||
|
||||
# 输出结果
|
||||
echo ""
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo -e "${GREEN}插件打包完成!${NC}"
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo ""
|
||||
echo "插件名称: $PLUGIN_NAME"
|
||||
echo "版本: $VERSION"
|
||||
echo "输出文件: $OUTPUT_FILE"
|
||||
echo "文件大小: $(du -h "$OUTPUT_FILE" | cut -f1)"
|
||||
echo "SHA256: $CHECKSUM"
|
||||
echo ""
|
||||
echo "安装方式:"
|
||||
echo " 1. 在 Lime 中打开插件管理器"
|
||||
echo " 2. 点击「从文件安装」"
|
||||
echo " 3. 选择 $OUTPUT_FILE"
|
||||
@@ -23,7 +23,6 @@ const serialTestFiles = new Set([
|
||||
"src/components/agent/chat/index.test.tsx",
|
||||
"src/components/agent/chat/hooks/useAsterAgentChat.test.tsx",
|
||||
"src/components/workspace/WorkbenchPage.test.tsx",
|
||||
"src/components/plugins/PluginManager.test.tsx",
|
||||
"src/components/agent/chat/components/HarnessStatusPanel.test.tsx",
|
||||
"src/components/agent/chat/components/ThemeWorkbenchSidebar.test.tsx",
|
||||
"src/components/agent/chat/components/TeamWorkspaceBoard.test.tsx",
|
||||
|
||||
@@ -1090,27 +1090,19 @@ TRANSLATIONS = {
|
||||
"开始安装": "Start installation",
|
||||
"跳过安装": "Skip installation",
|
||||
"设置完成": "Setup complete",
|
||||
"所有插件已成功安装": "All plugins installed successfully",
|
||||
"您可以开始使用": "You can start using",
|
||||
"个安装失败": "installation failed",
|
||||
"您可以稍后在插件中心重试": "You can retry later in Plugin Center",
|
||||
"您已跳过插件安装": "You skipped plugin installation",
|
||||
"可以稍后在插件中心安装需要的插件": "Can install needed plugins later in Plugin Center",
|
||||
"您可以在左侧导航栏的": "You can find in the left navigation bar",
|
||||
"随时安装插件": "install plugins anytime",
|
||||
"开始使用": "Get started",
|
||||
"等待安装": "Waiting to install",
|
||||
"准备下载": "Preparing download",
|
||||
"请稍候": "Please wait",
|
||||
"正在为您安装选中的插件": "Installing selected plugins for you",
|
||||
"已为程序员推荐配置管理和": "Configuration management recommended for programmers and",
|
||||
"您可以根据需要选择插件": "You can select plugins as needed",
|
||||
"或稍后在插件中心安装": "or install later in Plugin Center",
|
||||
"您是哪类用户": "What type of user are you",
|
||||
"欢迎使用": "Welcome to",
|
||||
"聚合代理": "Aggregation proxy",
|
||||
"让我们花一分钟时间": "Let's take a minute",
|
||||
"根据您的使用场景推荐合适的插件": "to recommend suitable plugins based on your use case",
|
||||
"提升您的使用体验": "to enhance your experience",
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user