mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
feat: release v0.89.0 and rename Proxycast to Lime
This commit is contained in:
@@ -61,7 +61,7 @@ if (entryFilePath && currentFilePath === entryFilePath) {
|
||||
const repoRoot = path.resolve(path.dirname(currentFilePath), "..");
|
||||
const version = readWorkspaceAppVersion(repoRoot);
|
||||
if (!version) {
|
||||
console.error("[proxycast] 无法从 src-tauri/Cargo.toml 读取 workspace 版本");
|
||||
console.error("[lime] 无法从 src-tauri/Cargo.toml 读取 workspace 版本");
|
||||
process.exit(1);
|
||||
}
|
||||
process.stdout.write(version);
|
||||
|
||||
@@ -142,6 +142,6 @@ echo "文件大小: $(du -h "$OUTPUT_FILE" | cut -f1)"
|
||||
echo "SHA256: $CHECKSUM"
|
||||
echo ""
|
||||
echo "安装方式:"
|
||||
echo " 1. 在 ProxyCast 中打开插件管理器"
|
||||
echo " 1. 在 Lime 中打开插件管理器"
|
||||
echo " 2. 点击「从文件安装」"
|
||||
echo " 3. 选择 $OUTPUT_FILE"
|
||||
|
||||
@@ -57,11 +57,11 @@ if ((tauriHeadlessConfig.version ?? null) !== sourceVersion) {
|
||||
}
|
||||
|
||||
if (issues.length > 0) {
|
||||
console.error("[proxycast] 应用版本一致性检查失败:");
|
||||
console.error("[lime] 应用版本一致性检查失败:");
|
||||
for (const issue of issues) {
|
||||
console.error(`- ${issue}`);
|
||||
}
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`[proxycast] 版本一致性检查通过: ${sourceVersion}`);
|
||||
console.log(`[lime] 版本一致性检查通过: ${sourceVersion}`);
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
import WebSocket from 'ws';
|
||||
|
||||
const SERVER_URL = 'ws://127.0.0.1:8999';
|
||||
const BRIDGE_KEY = 'Proxycast-key11';
|
||||
const BRIDGE_KEY = 'Lime-key11';
|
||||
|
||||
// 连接 Observer 通道查看状态
|
||||
const observerUrl = `${SERVER_URL}/proxycast-chrome-observer/${BRIDGE_KEY}?profileKey=test`;
|
||||
const observerUrl = `${SERVER_URL}/lime-chrome-observer/${BRIDGE_KEY}?profileKey=test`;
|
||||
console.log(`[检查] 连接 Observer 通道: ${observerUrl}`);
|
||||
|
||||
const ws = new WebSocket(observerUrl);
|
||||
|
||||
@@ -10,7 +10,7 @@ const DEFAULTS = {
|
||||
|
||||
function printHelp() {
|
||||
console.log(`
|
||||
ProxyCast DevBridge 健康检查
|
||||
Lime DevBridge 健康检查
|
||||
|
||||
用法:
|
||||
node scripts/check-dev-bridge-health.mjs [选项]
|
||||
|
||||
@@ -44,14 +44,14 @@ function parseArgs(argv) {
|
||||
|
||||
function printHelp() {
|
||||
console.log(`
|
||||
Proxycast Chrome Bridge E2E 联调脚本
|
||||
Lime Chrome Bridge E2E 联调脚本
|
||||
|
||||
用法:
|
||||
node scripts/chrome-bridge-e2e.mjs --key <proxycast_api_key> [选项]
|
||||
node scripts/chrome-bridge-e2e.mjs --key <lime_api_key> [选项]
|
||||
|
||||
选项:
|
||||
--server <ws_url> 服务地址,默认 ws://127.0.0.1:8787
|
||||
--key <api_key> Proxycast API Key(必填)
|
||||
--key <api_key> Lime API Key(必填)
|
||||
--profile <profile_key> profileKey,默认 default
|
||||
--timeout-ms <ms> 单步超时毫秒,默认 15000
|
||||
-h, --help 显示帮助
|
||||
@@ -200,8 +200,8 @@ async function main() {
|
||||
const server = normalizeServer(args.server);
|
||||
const key = encodeURIComponent(args.key);
|
||||
const profile = encodeURIComponent(args.profile || "default");
|
||||
const observerUrl = `${server}/proxycast-chrome-observer/Proxycast_Key=${key}?profileKey=${profile}`;
|
||||
const controlUrl = `${server}/proxycast-chrome-control/Proxycast_Key=${key}`;
|
||||
const observerUrl = `${server}/lime-chrome-observer/Lime_Key=${key}?profileKey=${profile}`;
|
||||
const controlUrl = `${server}/lime-chrome-control/Lime_Key=${key}`;
|
||||
|
||||
console.log("[E2E] observer:", observerUrl);
|
||||
console.log("[E2E] control :", controlUrl);
|
||||
|
||||
+10
-10
@@ -5,7 +5,7 @@ import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import process from "node:process";
|
||||
|
||||
const devPort = process.env.PROXYCAST_DEV_PORT ?? "1420";
|
||||
const devPort = process.env.LIME_DEV_PORT ?? process.env.PROXYCAST_DEV_PORT ?? "1420";
|
||||
const projectRoot = path.resolve(process.cwd());
|
||||
const repoRootMarker = path.join(projectRoot, "package.json");
|
||||
const nestedRepoRootMarker = path.join(projectRoot, "..", "package.json");
|
||||
@@ -15,17 +15,17 @@ const runningInsideSrcTauri =
|
||||
fs.existsSync(nestedRepoRootMarker);
|
||||
|
||||
if (runningInsideSrcTauri) {
|
||||
console.error("[proxycast] 检测到在 src-tauri 子目录启动开发脚本。");
|
||||
console.error("[proxycast] 请回到仓库根目录执行:npm run tauri:dev");
|
||||
console.error("[lime] 检测到在 src-tauri 子目录启动开发脚本。");
|
||||
console.error("[lime] 请回到仓库根目录执行:npm run tauri:dev");
|
||||
console.error(
|
||||
"[proxycast] 这样可以避免生成 src-tauri/src-tauri/target 目录。",
|
||||
"[lime] 这样可以避免生成 src-tauri/src-tauri/target 目录。",
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!fs.existsSync(repoRootMarker)) {
|
||||
console.error(`[proxycast] 当前目录缺少 package.json: ${projectRoot}`);
|
||||
console.error("[proxycast] 请在 proxycast 仓库根目录执行开发命令。");
|
||||
console.error(`[lime] 当前目录缺少 package.json: ${projectRoot}`);
|
||||
console.error("[lime] 请在 lime 仓库根目录执行开发命令。");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -92,11 +92,11 @@ for (const pid of occupiedPids) {
|
||||
}
|
||||
|
||||
if (blockedProcesses.length > 0) {
|
||||
console.error(`[proxycast] 端口 ${devPort} 被其他进程占用,无法自动清理:`);
|
||||
console.error(`[lime] 端口 ${devPort} 被其他进程占用,无法自动清理:`);
|
||||
for (const item of blockedProcesses) {
|
||||
console.error(`- PID ${item.pid}: ${item.command}`);
|
||||
}
|
||||
console.error("[proxycast] 请先结束占用进程后再重试启动。");
|
||||
console.error("[lime] 请先结束占用进程后再重试启动。");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -113,12 +113,12 @@ for (const pid of stillOccupied) {
|
||||
|
||||
const unresolved = listListenPids(devPort);
|
||||
if (unresolved.length > 0) {
|
||||
console.error(`[proxycast] 端口 ${devPort} 仍被占用,请手动清理后重试。`);
|
||||
console.error(`[lime] 端口 ${devPort} 仍被占用,请手动清理后重试。`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (targetPids.length > 0) {
|
||||
console.log(
|
||||
`[proxycast] 已清理 ${targetPids.length} 个残留 vite 进程(端口 ${devPort})。`,
|
||||
`[lime] 已清理 ${targetPids.length} 个残留 vite 进程(端口 ${devPort})。`,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Playwright Login Sidecar
|
||||
|
||||
ProxyCast 的 Playwright 指纹浏览器登录 Sidecar 脚本。
|
||||
Lime 的 Playwright 指纹浏览器登录 Sidecar 脚本。
|
||||
|
||||
## 文件索引
|
||||
|
||||
|
||||
@@ -162,7 +162,7 @@ export function getAvailableBrowserPath() {
|
||||
* @returns {string} 用户数据目录的绝对路径
|
||||
*/
|
||||
export function getUserDataDir() {
|
||||
return join(homedir(), '.proxycast', 'playwright-data');
|
||||
return join(homedir(), '.lime', 'playwright-data');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "playwright-login",
|
||||
"version": "1.0.0",
|
||||
"description": "Playwright sidecar script for ProxyCast fingerprint browser login",
|
||||
"description": "Playwright sidecar script for Lime fingerprint browser login",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
@@ -18,6 +18,6 @@
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
},
|
||||
"author": "ProxyCast",
|
||||
"author": "Lime",
|
||||
"license": "MIT"
|
||||
}
|
||||
|
||||
@@ -40,11 +40,11 @@ describe('Property 2: 浏览器配置完整性', () => {
|
||||
assert.strictEqual(typeof config.userDataDir, 'string');
|
||||
assert.ok(config.userDataDir.length > 0, 'userDataDir 不能为空');
|
||||
|
||||
// 应该包含 .proxycast 目录
|
||||
// 应该包含 .lime 目录
|
||||
assert.ok(
|
||||
config.userDataDir.includes('.proxycast') ||
|
||||
config.userDataDir.includes('proxycast'),
|
||||
'userDataDir 应该在 proxycast 相关目录下'
|
||||
config.userDataDir.includes('.lime') ||
|
||||
config.userDataDir.includes('lime'),
|
||||
'userDataDir 应该在 lime 相关目录下'
|
||||
);
|
||||
}
|
||||
),
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "proxycast-playwright-tools",
|
||||
"name": "lime-playwright-tools",
|
||||
"version": "1.0.0",
|
||||
"description": "Playwright browser automation tools for ProxyCast AI Agent",
|
||||
"description": "Playwright browser automation tools for Lime AI Agent",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"test": "node browser-tool.mjs --action '{\"open\":{\"url\":\"https://example.com\"}}' --no-headless",
|
||||
|
||||
@@ -232,9 +232,9 @@ const rustTextSurfaceMonitors = [
|
||||
description: "Rust 外部模块直接引用 pending/legacy general 子模块",
|
||||
patterns: [
|
||||
"crate::database::legacy_general_chat::",
|
||||
"proxycast_core::database::legacy_general_chat::",
|
||||
"lime_core::database::legacy_general_chat::",
|
||||
"crate::database::pending_general_chat::",
|
||||
"proxycast_core::database::pending_general_chat::",
|
||||
"lime_core::database::pending_general_chat::",
|
||||
],
|
||||
allowedPaths: [],
|
||||
},
|
||||
@@ -267,8 +267,8 @@ const rustTextSurfaceMonitors = [
|
||||
{
|
||||
id: "rust-cross-crate-general-chat-compat",
|
||||
classification: "deprecated",
|
||||
description: "跨 crate 引回 proxycast_services::general_chat 兼容壳",
|
||||
patterns: ["proxycast_services::general_chat::"],
|
||||
description: "跨 crate 引回 lime_services::general_chat 兼容壳",
|
||||
patterns: ["lime_services::general_chat::"],
|
||||
allowedPaths: [],
|
||||
},
|
||||
{
|
||||
@@ -297,7 +297,7 @@ const rustTextSurfaceMonitors = [
|
||||
description: "request_tool_policy 旧服务壳回流",
|
||||
patterns: [
|
||||
"crate::services::request_tool_policy_prompt_service::",
|
||||
"proxycast_lib::services::request_tool_policy_prompt_service::",
|
||||
"lime_lib::services::request_tool_policy_prompt_service::",
|
||||
"services::request_tool_policy_prompt_service::",
|
||||
],
|
||||
allowedPaths: [],
|
||||
@@ -311,7 +311,7 @@ const rustTextSurfaceMonitors = [
|
||||
"services::heartbeat_service::",
|
||||
"HeartbeatServiceState",
|
||||
"heartbeat_service_adapter",
|
||||
"proxycast_core::database::dao::heartbeat",
|
||||
"lime_core::database::dao::heartbeat",
|
||||
"heartbeat_tool",
|
||||
"RunSource::Heartbeat",
|
||||
"source = 'heartbeat'",
|
||||
@@ -342,7 +342,7 @@ const rustTextSurfaceMonitors = [
|
||||
"\"migrated_api_keys_to_pool\"",
|
||||
"\"migrated_provider_ids_v1\"",
|
||||
"\"cleaned_legacy_api_key_credentials\"",
|
||||
"\"migrated_mcp_proxycast_enabled\"",
|
||||
"\"migrated_mcp_lime_enabled\"",
|
||||
"\"migrated_mcp_created_at_to_integer\"",
|
||||
"\"model_registry_refresh_needed\"",
|
||||
"\"model_registry_version\"",
|
||||
@@ -365,7 +365,7 @@ const rustTextSurfaceMonitors = [
|
||||
"migration::check_model_registry_version(",
|
||||
"migration::migrate_api_keys_to_pool(",
|
||||
"migration::cleanup_legacy_api_key_credentials(",
|
||||
"migration::migrate_mcp_proxycast_enabled(",
|
||||
"migration::migrate_mcp_lime_enabled(",
|
||||
"migration::migrate_mcp_created_at_to_integer(",
|
||||
"migration::check_general_chat_migration_status(",
|
||||
"migration::migrate_general_chat_to_unified(",
|
||||
@@ -383,7 +383,7 @@ const rustTextSurfaceMonitors = [
|
||||
"match migration::migrate_provider_ids(",
|
||||
"match migration::migrate_api_keys_to_pool(",
|
||||
"match migration::cleanup_legacy_api_key_credentials(",
|
||||
"match migration::migrate_mcp_proxycast_enabled(",
|
||||
"match migration::migrate_mcp_lime_enabled(",
|
||||
"match migration::migrate_mcp_created_at_to_integer(",
|
||||
"match migration::migrate_general_chat_to_unified(",
|
||||
"match migration_v2::migrate_unified_content_system(",
|
||||
@@ -419,7 +419,7 @@ const rustTextSurfaceMonitors = [
|
||||
id: "rust-hardcoded-projects-path-leak",
|
||||
classification: "deprecated",
|
||||
description: "数据库迁移硬编码 legacy projects 路径",
|
||||
patterns: ["\".proxycast/projects\"", "join(\".proxycast\").join(\"projects\")"],
|
||||
patterns: ["\".lime/projects\"", "join(\".lime\").join(\"projects\")"],
|
||||
includePathPrefixes: ["src-tauri/crates/core/src/database"],
|
||||
allowedPaths: [],
|
||||
},
|
||||
@@ -427,7 +427,7 @@ const rustTextSurfaceMonitors = [
|
||||
id: "rust-hardcoded-session-files-path-leak",
|
||||
classification: "deprecated",
|
||||
description: "session files 硬编码 legacy sessions 路径",
|
||||
patterns: ["~/.proxycast/sessions", "join(\".proxycast\").join(\"sessions\")"],
|
||||
patterns: ["~/.lime/sessions", "join(\".lime\").join(\"sessions\")"],
|
||||
includePathPrefixes: ["src-tauri/crates/core/src/session_files"],
|
||||
allowedPaths: [],
|
||||
},
|
||||
@@ -435,7 +435,7 @@ const rustTextSurfaceMonitors = [
|
||||
id: "rust-hardcoded-legacy-config-path-leak",
|
||||
classification: "deprecated",
|
||||
description: "数据库迁移硬编码 legacy config 路径",
|
||||
patterns: ["~/.proxycast/config.json", "join(\".proxycast\").join(\"config.json\")"],
|
||||
patterns: ["~/.lime/config.json", "join(\".lime\").join(\"config.json\")"],
|
||||
includePathPrefixes: ["src-tauri/crates/core/src/database"],
|
||||
allowedPaths: [],
|
||||
},
|
||||
@@ -443,7 +443,7 @@ const rustTextSurfaceMonitors = [
|
||||
id: "rust-hardcoded-workspace-projects-path-leak",
|
||||
classification: "deprecated",
|
||||
description: "上层命令或桥接层硬编码 workspace projects 路径",
|
||||
patterns: ["~/.proxycast/projects", "join(\".proxycast\").join(\"projects\")"],
|
||||
patterns: ["~/.lime/projects", "join(\".lime\").join(\"projects\")"],
|
||||
includePathPrefixes: ["src-tauri/src"],
|
||||
allowedPaths: [],
|
||||
},
|
||||
@@ -451,7 +451,7 @@ const rustTextSurfaceMonitors = [
|
||||
id: "rust-hardcoded-logger-path-leak",
|
||||
classification: "deprecated",
|
||||
description: "logger fallback 硬编码 legacy logs 路径",
|
||||
patterns: ["~/.proxycast/logs", "join(\".proxycast\").join(\"logs\")"],
|
||||
patterns: ["~/.lime/logs", "join(\".lime\").join(\"logs\")"],
|
||||
includePathPrefixes: ["src-tauri/crates/core/src/logger.rs"],
|
||||
allowedPaths: [],
|
||||
},
|
||||
@@ -459,7 +459,7 @@ const rustTextSurfaceMonitors = [
|
||||
id: "rust-hardcoded-skills-path-leak",
|
||||
classification: "deprecated",
|
||||
description: "skills 相关模块硬编码 legacy skills 路径",
|
||||
patterns: ["~/.proxycast/skills", "join(\".proxycast\").join(\"skills\")"],
|
||||
patterns: ["~/.lime/skills", "join(\".lime\").join(\"skills\")"],
|
||||
includePathPrefixes: ["src-tauri/src"],
|
||||
allowedPaths: [],
|
||||
},
|
||||
@@ -468,10 +468,10 @@ const rustTextSurfaceMonitors = [
|
||||
classification: "deprecated",
|
||||
description: "memory 相关模块硬编码 legacy memory 或 AGENTS 路径",
|
||||
patterns: [
|
||||
"~/.proxycast/AGENTS.md",
|
||||
"join(\".proxycast\").join(\"AGENTS.md\")",
|
||||
"join(\".proxycast\").join(\"memory\")",
|
||||
".proxycast/memory",
|
||||
"~/.lime/AGENTS.md",
|
||||
"join(\".lime\").join(\"AGENTS.md\")",
|
||||
"join(\".lime\").join(\"memory\")",
|
||||
".lime/memory",
|
||||
],
|
||||
includePathPrefixes: ["src-tauri/src"],
|
||||
allowedPaths: [],
|
||||
@@ -1076,7 +1076,7 @@ const violations = [
|
||||
),
|
||||
];
|
||||
|
||||
console.log("[proxycast] legacy surface report");
|
||||
console.log("[lime] legacy surface report");
|
||||
console.log("");
|
||||
console.log("## 入口引用");
|
||||
for (const result of importResults) {
|
||||
@@ -1122,7 +1122,7 @@ for (const violation of violations) {
|
||||
if (violations.length > 0) {
|
||||
console.error("");
|
||||
console.error(
|
||||
"[proxycast] legacy surface report 检测到边界违规,请先治理再继续扩展。",
|
||||
"[lime] legacy surface report 检测到边界违规,请先治理再继续扩展。",
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ const repoRoot = path.resolve(process.cwd());
|
||||
const cargoConfigDir = path.join(repoRoot, ".cargo");
|
||||
const cargoConfigPath = path.join(cargoConfigDir, "config.toml");
|
||||
const defaultAsterRepo = path.resolve(repoRoot, "..", "..", "astercloud", "aster-rust");
|
||||
const blockStart = "# >>> proxycast local aster override >>>";
|
||||
const blockEnd = "# <<< proxycast local aster override <<<";
|
||||
const blockStart = "# >>> lime local aster override >>>";
|
||||
const blockEnd = "# <<< lime local aster override <<<";
|
||||
|
||||
function normalizePath(filePath) {
|
||||
return filePath.split(path.sep).join("/");
|
||||
@@ -47,7 +47,7 @@ function validateAsterRepo(asterRepoPath) {
|
||||
|
||||
for (const cratePath of crates) {
|
||||
if (!fs.existsSync(cratePath)) {
|
||||
console.error(`[proxycast] 未找到 Aster crate: ${cratePath}`);
|
||||
console.error(`[lime] 未找到 Aster crate: ${cratePath}`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
@@ -121,17 +121,17 @@ if (process.argv.includes("--help") || process.argv.includes("-h")) {
|
||||
if (process.argv.includes("--clear")) {
|
||||
const existingContent = readExistingConfig();
|
||||
if (!existingContent) {
|
||||
console.log("[proxycast] 本地 Aster 覆盖配置不存在,无需删除。");
|
||||
console.log("[lime] 本地 Aster 覆盖配置不存在,无需删除。");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const nextContent = removeManagedBlock(existingContent);
|
||||
if (nextContent) {
|
||||
fs.writeFileSync(cargoConfigPath, `${nextContent}\n`, "utf8");
|
||||
console.log(`[proxycast] 已移除本地 Aster 覆盖区块: ${cargoConfigPath}`);
|
||||
console.log(`[lime] 已移除本地 Aster 覆盖区块: ${cargoConfigPath}`);
|
||||
} else {
|
||||
fs.rmSync(cargoConfigPath);
|
||||
console.log(`[proxycast] 已删除本地 Aster 覆盖配置: ${cargoConfigPath}`);
|
||||
console.log(`[lime] 已删除本地 Aster 覆盖配置: ${cargoConfigPath}`);
|
||||
}
|
||||
process.exit(0);
|
||||
}
|
||||
@@ -146,5 +146,5 @@ const nextContent = upsertManagedBlock(
|
||||
);
|
||||
fs.writeFileSync(cargoConfigPath, nextContent, "utf8");
|
||||
|
||||
console.log(`[proxycast] 已生成本地 Aster 覆盖配置: ${cargoConfigPath}`);
|
||||
console.log(`[proxycast] Aster 仓库: ${asterRepoPath}`);
|
||||
console.log(`[lime] 已生成本地 Aster 覆盖配置: ${cargoConfigPath}`);
|
||||
console.log(`[lime] Aster 仓库: ${asterRepoPath}`);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* node scripts/social-workbench-e2e-smoke.mjs --session-id <session_id> --content-id <content_id>
|
||||
*
|
||||
* 前置条件:
|
||||
* 1. ProxyCast 已运行(Dev Bridge: http://127.0.0.1:3030/invoke)
|
||||
* 1. Lime 已运行(Dev Bridge: http://127.0.0.1:3030/invoke)
|
||||
* 2. 该 session 已在 UI 中实际触发过社媒生成
|
||||
*/
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { spawn } from 'node:child_process';
|
||||
const env = { ...process.env };
|
||||
delete env.TAURI_ENV_PLATFORM;
|
||||
|
||||
env.PROXYCAST_BROWSER_BRIDGE = '1';
|
||||
env.LIME_BROWSER_BRIDGE = '1';
|
||||
|
||||
const child = spawn('npx', ['vite'], {
|
||||
stdio: 'inherit',
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Chrome Bridge 测试脚本
|
||||
*
|
||||
* 使用方式:
|
||||
* 1. 确保 ProxyCast 服务器正在运行
|
||||
* 1. 确保 Lime 服务器正在运行
|
||||
* 2. 确保 Chrome Profile 已打开并连接
|
||||
* 3. 运行: node scripts/test-chrome-bridge.mjs
|
||||
*/
|
||||
@@ -12,11 +12,11 @@
|
||||
import WebSocket from 'ws';
|
||||
|
||||
const SERVER_URL = 'ws://127.0.0.1:8999';
|
||||
const BRIDGE_KEY = 'Proxycast-key11';
|
||||
const BRIDGE_KEY = 'Lime-key11';
|
||||
const PROFILE_KEY = 'search_google';
|
||||
|
||||
// 连接 Control 通道
|
||||
const controlUrl = `${SERVER_URL}/proxycast-chrome-control/${BRIDGE_KEY}`;
|
||||
const controlUrl = `${SERVER_URL}/lime-chrome-control/${BRIDGE_KEY}`;
|
||||
console.log(`[测试] 连接 Control 通道: ${controlUrl}`);
|
||||
|
||||
const ws = new WebSocket(controlUrl);
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
import WebSocket from 'ws';
|
||||
|
||||
const serverUrl = 'ws://127.0.0.1:8999';
|
||||
const bridgeKey = 'Proxycast-key11';
|
||||
const bridgeKey = 'Lime-key11';
|
||||
const profileKey = 'search_google';
|
||||
|
||||
const url = `${serverUrl}/proxycast-chrome-observer/${encodeURIComponent(bridgeKey)}?profileKey=${encodeURIComponent(profileKey)}`;
|
||||
const url = `${serverUrl}/lime-chrome-observer/${encodeURIComponent(bridgeKey)}?profileKey=${encodeURIComponent(profileKey)}`;
|
||||
|
||||
console.log(`[测试] 连接 URL: ${url}`);
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@ OpenAI 兼容图像生成 API 测试脚本
|
||||
python scripts/test_image_api.py --base-url http://localhost:8999 --api-key your-key
|
||||
|
||||
环境变量:
|
||||
PROXYCAST_BASE_URL: API 服务器地址(默认: http://localhost:8999)
|
||||
PROXYCAST_API_KEY: API 密钥(默认: pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ)
|
||||
LIME_BASE_URL: API 服务器地址(默认: http://localhost:8999)
|
||||
LIME_API_KEY: API 密钥(默认: pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ)
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -292,12 +292,14 @@ def main():
|
||||
)
|
||||
parser.add_argument(
|
||||
"--base-url",
|
||||
default=os.environ.get("PROXYCAST_BASE_URL", "http://localhost:8999"),
|
||||
default=os.environ.get("LIME_BASE_URL")
|
||||
or os.environ.get("PROXYCAST_BASE_URL", "http://localhost:8999"),
|
||||
help="API 服务器地址"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--api-key",
|
||||
default=os.environ.get("PROXYCAST_API_KEY", "pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ"),
|
||||
default=os.environ.get("LIME_API_KEY")
|
||||
or os.environ.get("PROXYCAST_API_KEY", "pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ"),
|
||||
help="API 密钥"
|
||||
)
|
||||
parser.add_argument(
|
||||
|
||||
@@ -7,7 +7,7 @@ $ErrorActionPreference = "Stop"
|
||||
|
||||
function Write-Step {
|
||||
param([string]$Message)
|
||||
Write-Host "[ProxyCast Support] $Message"
|
||||
Write-Host "[Lime Support] $Message"
|
||||
}
|
||||
|
||||
function Ensure-Directory {
|
||||
@@ -111,14 +111,14 @@ if ([string]::IsNullOrWhiteSpace($OutputRoot)) {
|
||||
$OutputRoot = if ([string]::IsNullOrWhiteSpace($desktop)) { $env:TEMP } else { $desktop }
|
||||
}
|
||||
|
||||
$bundleName = "ProxyCast-Support-$timestamp"
|
||||
$bundleName = "Lime-Support-$timestamp"
|
||||
$bundleDir = Join-Path $OutputRoot $bundleName
|
||||
$zipPath = "$bundleDir.zip"
|
||||
|
||||
$appDataDir = Join-Path $env:APPDATA "proxycast"
|
||||
$legacyDir = Join-Path $env:USERPROFILE ".proxycast"
|
||||
$appDataDir = Join-Path $env:APPDATA "lime"
|
||||
$legacyDir = Join-Path $env:USERPROFILE ".lime"
|
||||
$configPath = Join-Path $appDataDir "config.yaml"
|
||||
$dbPath = Join-Path $legacyDir "proxycast.db"
|
||||
$dbPath = Join-Path $legacyDir "lime.db"
|
||||
$logsDir = Join-Path $legacyDir "logs"
|
||||
$requestLogsDir = Join-Path $legacyDir "request_logs"
|
||||
|
||||
@@ -135,7 +135,7 @@ $systemInfo = [ordered]@{
|
||||
powershell_version = $PSVersionTable.PSVersion.ToString()
|
||||
webview2_version = Get-WebView2Version
|
||||
appdata_dir = $appDataDir
|
||||
legacy_proxycast_dir = $legacyDir
|
||||
legacy_lime_dir = $legacyDir
|
||||
config_path = $configPath
|
||||
database_path = $dbPath
|
||||
shell_paths = @{
|
||||
@@ -162,7 +162,7 @@ $copiedLogs = Copy-DirectoryIfExists -SourcePath $logsDir -DestinationPath (Join
|
||||
$copiedRequestLogs = Copy-DirectoryIfExists -SourcePath $requestLogsDir -DestinationPath (Join-Path $bundleDir "logs/request_logs")
|
||||
|
||||
@(
|
||||
"ProxyCast 支持包已生成。",
|
||||
"Lime 支持包已生成。",
|
||||
"",
|
||||
"已收集内容:",
|
||||
"- system-info.json(系统与路径元数据)",
|
||||
@@ -172,7 +172,7 @@ $copiedRequestLogs = Copy-DirectoryIfExists -SourcePath $requestLogsDir -Destina
|
||||
"",
|
||||
"默认未收集内容:",
|
||||
"- config.yaml 正文(避免泄露 API Key / 凭证)",
|
||||
"- proxycast.db 正文(避免泄露会话与敏感数据)",
|
||||
"- lime.db 正文(避免泄露会话与敏感数据)",
|
||||
"- credentials/ 目录内容",
|
||||
"",
|
||||
"是否复制 logs: $copiedLogs",
|
||||
|
||||
Reference in New Issue
Block a user