Skip to content

Commit fb7492f

Browse files
committed
refactor: 将项目名称从 innies-cli 统一更改为 qwen-cli
更新所有相关文件中的项目名称、路径引用和配置项,包括: - 将 innies-cli 替换为 qwen-cli - 将 .innies/ 目录替换为 .qwen/ - 更新相关文档和注释 - 修改 OAuth 相关配置和凭证管理
1 parent e3242f3 commit fb7492f

22 files changed

Lines changed: 97 additions & 97 deletions

src/pages/Animation.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ function AnimStep({ visible, from, fromColor, to, message, messageColor, extra }
114114
);
115115
}
116116

117-
// 动画步骤数据 - 对应 innies-cli 实际流程
117+
// 动画步骤数据 - 对应 qwen-cli 实际流程
118118
const animSteps = [
119119
{
120120
from: '👤 用户',
@@ -188,7 +188,7 @@ ReadFileToolInvocation.execute({
188188
message: '返回 ToolResult',
189189
messageColor: 'bg-[var(--amber)]/10',
190190
extra: `{
191-
llmContent: "{\\"name\\": \\"@innies/innies-cli\\", ...}",
191+
llmContent: "{\\"name\\": \\"@qwen/qwen-cli\\", ...}",
192192
returnDisplay: "package.json (1.2KB)"
193193
}`,
194194
},
@@ -214,7 +214,7 @@ ReadFileToolInvocation.execute({
214214
message: '最终回复 (finishReason: STOP)',
215215
messageColor: 'bg-[var(--purple)]/10',
216216
extra: `{
217-
content: "package.json 的 name 是 @innies/innies-cli",
217+
content: "package.json 的 name 是 @qwen/qwen-cli",
218218
finishReason: "STOP" // 无更多工具调用
219219
}`,
220220
},
@@ -294,7 +294,7 @@ export function Animation() {
294294
</div>
295295

296296
<p className="text-sm text-[var(--text-muted)] font-mono mb-6">
297-
// 展示 innies-cli 的核心交互循环:用户输入 → AI 思考 → 工具审批 → 执行 → Continuation
297+
// 展示 qwen-cli 的核心交互循环:用户输入 → AI 思考 → 工具审批 → 执行 → Continuation
298298
</p>
299299

300300
{/* 介绍部分 */}

src/pages/AtFileProcessorAnimation.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { useState, useCallback } from 'react';
77
* 1. @{...} 文件引用语法解析
88
* 2. 文件路径提取与验证
99
* 3. 文件内容读取
10-
* 4. 忽略规则检查 (.gitignore, .inniesignore)
10+
* 4. 忽略规则检查 (.gitignore, .qwenignore)
1111
* 5. 内容注入到 Prompt
1212
*
1313
* 源码位置:
@@ -209,7 +209,7 @@ export default function AtFileProcessorAnimation() {
209209
...s,
210210
currentStep: 2,
211211
steps: s.steps.map((step, i) => i === 2 ? { ...step, status: 'active' } : step),
212-
message: '检查 .gitignore 和 .inniesignore 规则...',
212+
message: '检查 .gitignore 和 .qwenignore 规则...',
213213
}));
214214
await sleep(800);
215215

@@ -573,7 +573,7 @@ export default function AtFileProcessorAnimation() {
573573
</div>
574574
<div className="flex items-center gap-2">
575575
<span className="text-yellow-400">⚠️</span>
576-
<span className="text-gray-300">.inniesignore 匹配的文件会被跳过</span>
576+
<span className="text-gray-300">.qwenignore 匹配的文件会被跳过</span>
577577
</div>
578578
<div className="flex items-center gap-2">
579579
<span className="text-blue-400">ℹ️</span>

src/pages/FunctionResponseAnimation.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ private buildFromString(
121121
id: "call_abc123",
122122
name: "read_file",
123123
response: {
124-
output: "{\\"name\\": \\"innies-cli\\", \\"version\\": \\"1.0.0\\"}"
124+
output: "{\\"name\\": \\"qwen-cli\\", \\"version\\": \\"1.0.0\\"}"
125125
}
126126
}
127127
}`,
@@ -400,7 +400,7 @@ function ResponseStructure({ phase }: { phase: BuildPhase }) {
400400
</span>
401401
) : (
402402
<span className="text-[var(--terminal-green)]">
403-
output: "{'{'}\"name\": \"innies-cli\"...{'}'}"
403+
output: "{'{'}\"name\": \"qwen-cli\"...{'}'}"
404404
</span>
405405
)}
406406
</div>

src/pages/LearningPathGuide.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function Introduction({
5656
</h4>
5757
<p className="text-[var(--text-secondary)] text-sm">
5858
本指南根据不同的学习目标提供了多条学习路径。每条路径都有清晰的里程碑和检查点,
59-
帮助你系统性地理解 Innies CLI 的架构。<strong>选择一条路径,按顺序学习</strong>
59+
帮助你系统性地理解 Qwen CLI 的架构。<strong>选择一条路径,按顺序学习</strong>
6060
是最高效的方式。
6161
</p>
6262
</div>
@@ -380,7 +380,7 @@ const learningPaths: LearningPath[] = [
380380
'了解依赖注入模式',
381381
],
382382
estimatedTime: '1.5 小时',
383-
checkpoint: '能描述从 innies 命令到 interactionLoop 的启动过程吗?',
383+
checkpoint: '能描述从 qwen 命令到 interactionLoop 的启动过程吗?',
384384
},
385385
{
386386
title: 'Turn 状态机',
@@ -593,7 +593,7 @@ export function LearningPathGuide() {
593593
<h2 className="text-xl font-bold text-[var(--text-primary)] mb-4 flex items-center gap-2">
594594
<span>🗺️</span> 架构全景图
595595
</h2>
596-
<MermaidDiagram chart={architectureMap} title="Innies CLI 架构层次" />
596+
<MermaidDiagram chart={architectureMap} title="Qwen CLI 架构层次" />
597597
<p className="text-sm text-[var(--text-muted)] mt-2 text-center">
598598
每条学习路径都会覆盖上图的不同部分
599599
</p>

src/pages/MCPDiscoveryAnimation.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ const discoveryPhases = [
268268
];
269269

270270
const phaseDescriptions = [
271-
'从 .innies/mcp.json 和用户配置加载服务器定义',
271+
'从 .qwen/mcp.json 和用户配置加载服务器定义',
272272
'使用 Promise.all() 并行启动所有服务器进程',
273273
'与每个服务器进行 MCP 协议握手,交换能力信息',
274274
'将发现的工具注册到工具注册表,供 AI 调用',
@@ -283,11 +283,11 @@ async loadServerConfigs(): Promise<MCPServerConfig[]> {
283283
// 1. 内置服务器
284284
configs.push(...BUILTIN_SERVERS);
285285
286-
// 2. 用户全局配置 ~/.innies/mcp.json
286+
// 2. 用户全局配置 ~/.qwen/mcp.json
287287
const userConfig = await this.loadUserConfig();
288288
configs.push(...userConfig.mcpServers);
289289
290-
// 3. 项目配置 .innies/mcp.json
290+
// 3. 项目配置 .qwen/mcp.json
291291
const projectConfig = await this.loadProjectConfig();
292292
configs.push(...projectConfig.mcpServers);
293293
@@ -329,7 +329,7 @@ async negotiate(): Promise<ServerCapabilities> {
329329
sampling: {},
330330
},
331331
clientInfo: {
332-
name: 'innies-cli',
332+
name: 'qwen-cli',
333333
version: VERSION,
334334
},
335335
});
@@ -598,15 +598,15 @@ export function MCPDiscoveryAnimation() {
598598
<div className="text-center">
599599
<div className="text-2xl mb-1">👤</div>
600600
<div className="text-xs font-mono text-[var(--cyber-blue)]">user</div>
601-
<div className="text-xs font-mono text-[var(--text-muted)]">~/.innies/</div>
601+
<div className="text-xs font-mono text-[var(--text-muted)]">~/.qwen/</div>
602602
</div>
603603
</div>
604604
<span className="text-[var(--text-muted)]"></span>
605605
<div className="p-3 rounded-lg bg-[var(--amber)]/10 border border-[var(--amber-dim)]">
606606
<div className="text-center">
607607
<div className="text-2xl mb-1">📁</div>
608608
<div className="text-xs font-mono text-[var(--amber)]">project</div>
609-
<div className="text-xs font-mono text-[var(--text-muted)]">.innies/</div>
609+
<div className="text-xs font-mono text-[var(--text-muted)]">.qwen/</div>
610610
</div>
611611
</div>
612612
</div>

src/pages/MCPHandshakeAnimation.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class McpClient {
6161
6262
constructor(serverConfig: MCPServerConfig) {
6363
this.serverConfig = serverConfig;
64-
this.client = new Client({ name: 'innies-cli' });
64+
this.client = new Client({ name: 'qwen-cli' });
6565
}
6666
}`,
6767
},

src/pages/MultiProviderArchitecture.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ function ProviderRoutingAnimation() {
158158
icon: '🐧',
159159
},
160160
{
161-
id: 'innies-oauth',
162-
name: 'Innies OAuth',
163-
provider: 'InniesContentGenerator',
161+
id: 'qwen-oauth',
162+
name: 'Qwen OAuth',
163+
provider: 'QwenContentGenerator',
164164
color: 'var(--cyber-blue)',
165165
icon: '🏠',
166166
},
@@ -636,7 +636,7 @@ export function MultiProviderArchitecture() {
636636
CLOUD_SHELL = 'cloud-shell', // Google Cloud Shell
637637
USE_OPENAI = 'openai', // OpenAI-compatible
638638
QWEN_OAUTH = 'qwen-oauth', // Qwen OAuth (推荐)
639-
INNIES_OAUTH = 'innies-oauth', // Innies OAuth
639+
QWEN_OAUTH = 'qwen-oauth', // Qwen OAuth
640640
}`}
641641
/>
642642
</div>
@@ -653,8 +653,8 @@ export function MultiProviderArchitecture() {
653653
/>
654654
<Module
655655
icon="🏠"
656-
name="InniesContentGenerator"
657-
path="packages/core/src/innies"
656+
name="QwenContentGenerator"
657+
path="packages/core/src/qwen"
658658
description="继承 OpenAI,模型配置缓存"
659659
/>
660660
<Module
@@ -695,7 +695,7 @@ export function MultiProviderArchitecture() {
695695
├─ QwenContentGenerator
696696
</div>
697697
<div className="ml-8 text-[var(--cyber-blue)]">
698-
└─ InniesContentGenerator
698+
└─ QwenContentGenerator
699699
</div>
700700
</div>
701701
</HighlightBox>
@@ -810,7 +810,7 @@ normalize("gemini-2.5-pro-preview") → "gemini-2.5-pro"`}
810810

811811
<div className="bg-[var(--bg-panel)] rounded-lg p-4 border border-[var(--cyber-blue)]/30">
812812
<div className="text-[var(--cyber-blue)] font-bold mb-2">
813-
Innies 双重回退
813+
Qwen 双重回退
814814
</div>
815815
<ul className="text-sm text-[var(--text-secondary)] space-y-1">
816816
<li>• 模型特定配置优先</li>

src/pages/OAuthDeviceFlowAnimation.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import { useState, useEffect, useCallback } from 'react';
44
/**
55
* OAuth 设备授权流动画
66
*
7-
* 可视化 inniesOAuth2.ts 设备授权流程
8-
* 源码: packages/core/src/innies/inniesOAuth2.ts
7+
* 可视化 qwenOAuth2.ts 设备授权流程
8+
* 源码: packages/core/src/qwen/qwenOAuth2.ts
99
*
1010
* 核心流程:
1111
* 1. requestDeviceAuthorization() - 获取 deviceCode
1212
* 2. 打开浏览器验证页面
1313
* 3. pollDeviceToken() - 轮询等待用户授权
1414
* 4. 获取 access_token + refresh_token
15-
* 5. cacheInniesCredentials() - 缓存凭证
15+
* 5. cacheQwenCredentials() - 缓存凭证
1616
*/
1717

1818
type AuthPhase =
@@ -76,7 +76,7 @@ export default function OAuthDeviceFlowAnimation() {
7676

7777
switch (phase) {
7878
case 'idle':
79-
addLog('🔐 getInniesOAuthClient() 开始');
79+
addLog('🔐 getQwenOAuthClient() 开始');
8080
setPhase('requesting_device_code');
8181
break;
8282

@@ -147,7 +147,7 @@ export default function OAuthDeviceFlowAnimation() {
147147

148148
case 'success':
149149
addLog('✅ 认证成功!');
150-
addLog('💾 cacheInniesCredentials()');
150+
addLog('💾 cacheQwenCredentials()');
151151
timer = setTimeout(() => {
152152
addLog('🔒 凭证已安全存储');
153153
setIsPlaying(false);
@@ -193,7 +193,7 @@ export default function OAuthDeviceFlowAnimation() {
193193
OAuth 设备授权流
194194
</h1>
195195
<p className="text-[var(--muted)] text-sm mt-1">
196-
inniesOAuth2 - Device Code Grant Flow (RFC 8628)
196+
qwenOAuth2 - Device Code Grant Flow (RFC 8628)
197197
</p>
198198
</div>
199199
<div className="flex items-center gap-4">
@@ -367,7 +367,7 @@ export default function OAuthDeviceFlowAnimation() {
367367
<div className="col-span-5">
368368
<div className="bg-[var(--bg-secondary)] rounded-lg p-4 border border-[var(--border)] h-full">
369369
<h3 className="text-sm font-semibold text-[var(--amber)] mb-4 font-mono">
370-
InniesCredentials
370+
QwenCredentials
371371
</h3>
372372

373373
<div className="space-y-4">
@@ -462,10 +462,10 @@ export default function OAuthDeviceFlowAnimation() {
462462
{/* 源码说明 */}
463463
<div className="bg-[var(--bg-secondary)] rounded-lg p-4 border border-[var(--border)]">
464464
<h3 className="text-sm font-semibold text-[var(--text-primary)] mb-3">
465-
源码: inniesOAuth2.ts
465+
源码: qwenOAuth2.ts
466466
</h3>
467467
<pre className="text-xs font-mono text-[var(--text-secondary)] bg-black/30 p-3 rounded overflow-x-auto">
468-
{`async function authWithInniesDeviceFlow(client, config): Promise<AuthResult> {
468+
{`async function authWithQwenDeviceFlow(client, config): Promise<AuthResult> {
469469
// 1. 请求设备授权码
470470
const deviceAuth = await client.requestDeviceAuthorization();
471471
const verificationUrl = \`\${BASE_URL}/login?device_code=\${deviceAuth.deviceCode}\`;
@@ -490,7 +490,7 @@ export default function OAuthDeviceFlowAnimation() {
490490
expiry_date: Date.now() + tokenResponse.expiresIn * 1000,
491491
};
492492
client.setCredentials(credentials);
493-
await cacheInniesCredentials(credentials);
493+
await cacheQwenCredentials(credentials);
494494
return { success: true };
495495
}
496496

src/pages/PromptProcessingPipelineAnimation.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ function ProcessorCards() {
298298
},
299299
features: [
300300
'支持相对/绝对路径',
301-
'尊重 .gitignore/.inniesignore',
301+
'尊重 .gitignore/.qwenignore',
302302
'支持图片等多模态内容',
303303
'文件不存在时保留原文',
304304
],

src/pages/PromptTemplateAnimation.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useState, useEffect, useCallback } from 'react';
44
/**
55
* Prompt 模板引擎动画
66
*
7-
* 可视化 innies-cli 的系统提示词构建流程
7+
* 可视化 qwen-cli 的系统提示词构建流程
88
* 源码: packages/core/src/core/prompts.ts
99
*
1010
* 核心函数:
@@ -209,7 +209,7 @@ export default function PromptTemplateAnimation() {
209209
case 'memory-append':
210210
addLog('💾 追加用户记忆 - User Memory Suffix');
211211
timers.push(setTimeout(() => {
212-
addLog(' 📂 Loading ~/.config/innies/CLAUDE.md');
212+
addLog(' 📂 Loading ~/.config/qwen/CLAUDE.md');
213213
}, 300));
214214

215215
timers.push(setTimeout(() => {

0 commit comments

Comments
 (0)