refactor: 统一项目名称从OpenFang到ZCLAW
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

重构所有代码和文档中的项目名称,将OpenFang统一更新为ZCLAW。包括:
- 配置文件中的项目名称
- 代码注释和文档引用
- 环境变量和路径
- 类型定义和接口名称
- 测试用例和模拟数据

同时优化部分代码结构,移除未使用的模块,并更新相关依赖项。
This commit is contained in:
iven
2026-03-27 07:36:03 +08:00
parent 4b08804aa9
commit 0d4fa96b82
226 changed files with 7288 additions and 5788 deletions

View File

@@ -1,11 +1,11 @@
/**
* OpenFang
* ZCLAW
*
* E2E OpenFang API
* OpenFang Gateway Protocol v3
* E2E ZCLAW API
* ZCLAW Gateway Protocol v3
*/
export const openFangResponses = {
export const zclawResponses = {
health: {
status: 'ok',
version: '0.4.0',
@@ -155,7 +155,7 @@ export const openFangResponses = {
},
config: {
data_dir: '/Users/user/.openfang',
data_dir: '/Users/user/.zclaw',
default_model: 'qwen3.5-plus',
log_level: 'info',
},

View File

@@ -1,77 +1,77 @@
/**
* OpenFang API
* ZCLAW API
*
* ZCLAW OpenFang REST API
* ZCLAW ZCLAW REST API
*/
import { test, expect, Page } from '@playwright/test';
import { openFangResponses } from '../fixtures/openfang-responses';
import { zclawResponses } from '../fixtures/zclaw-responses';
const BASE_URL = 'http://localhost:1420';
async function setupMockAPI(page: Page) {
await page.route('**/api/health', async route => {
await route.fulfill({ json: openFangResponses.health });
await route.fulfill({ json: zclawResponses.health });
});
await page.route('**/api/status', async route => {
await route.fulfill({ json: openFangResponses.status });
await route.fulfill({ json: zclawResponses.status });
});
await page.route('**/api/agents', async route => {
if (route.request().method() === 'GET') {
await route.fulfill({ json: openFangResponses.agents });
await route.fulfill({ json: zclawResponses.agents });
} else if (route.request().method() === 'POST') {
await route.fulfill({ json: { clone: { id: 'new-agent-001', name: 'New Agent' } } });
}
});
await page.route('**/api/agents/*', async route => {
await route.fulfill({ json: openFangResponses.agent });
await route.fulfill({ json: zclawResponses.agent });
});
await page.route('**/api/models', async route => {
await route.fulfill({ json: openFangResponses.models });
await route.fulfill({ json: zclawResponses.models });
});
await page.route('**/api/hands', async route => {
await route.fulfill({ json: openFangResponses.hands });
await route.fulfill({ json: zclawResponses.hands });
});
await page.route('**/api/hands/*', async route => {
if (route.request().method() === 'GET') {
await route.fulfill({ json: openFangResponses.hand });
await route.fulfill({ json: zclawResponses.hand });
} else if (route.request().url().includes('/activate')) {
await route.fulfill({ json: openFangResponses.handActivation });
await route.fulfill({ json: zclawResponses.handActivation });
}
});
await page.route('**/api/workflows', async route => {
await route.fulfill({ json: openFangResponses.workflows });
await route.fulfill({ json: zclawResponses.workflows });
});
await page.route('**/api/workflows/*', async route => {
await route.fulfill({ json: openFangResponses.workflow });
await route.fulfill({ json: zclawResponses.workflow });
});
await page.route('**/api/sessions', async route => {
await route.fulfill({ json: openFangResponses.sessions });
await route.fulfill({ json: zclawResponses.sessions });
});
await page.route('**/api/config', async route => {
await route.fulfill({ json: openFangResponses.config });
await route.fulfill({ json: zclawResponses.config });
});
await page.route('**/api/channels', async route => {
await route.fulfill({ json: openFangResponses.channels });
await route.fulfill({ json: zclawResponses.channels });
});
await page.route('**/api/skills', async route => {
await route.fulfill({ json: openFangResponses.skills });
await route.fulfill({ json: zclawResponses.skills });
});
}
test.describe('OpenFang API 端点兼容性测试', () => {
test.describe('ZCLAW API 端点兼容性测试', () => {
test.describe('API-01: Health 端点', () => {
test('应返回正确的健康状态', async ({ page }) => {

View File

@@ -1,15 +1,15 @@
/**
* OpenFang
* ZCLAW
*
* ZCLAW OpenFang
* ZCLAW ZCLAW
*/
import { test, expect } from '@playwright/test';
import { openFangResponses, streamEvents, gatewayFrames } from '../fixtures/openfang-responses';
import { zclawResponses, streamEvents, gatewayFrames } from '../fixtures/zclaw-responses';
const BASE_URL = 'http://localhost:1420';
test.describe('OpenFang 协议兼容性测试', () => {
test.describe('ZCLAW 协议兼容性测试', () => {
test.describe('PROTO-01: 流事件类型解析', () => {
test('应正确解析 text_delta 事件', () => {