@ai-zen/cli 1.0.0-alpha.27 → 1.0.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +158 -0
- package/README.md +9 -6
- package/README.zh.md +9 -6
- package/dist/clipboard.d.ts +68 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/clipboard.js +177 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/config-editor.d.ts +17 -0
- package/dist/config-editor.d.ts.map +1 -1
- package/dist/config-editor.js +31 -0
- package/dist/config-editor.js.map +1 -1
- package/dist/config.d.ts +53 -15
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +90 -26
- package/dist/config.js.map +1 -1
- package/dist/conversation-commands/registry.d.ts.map +1 -1
- package/dist/conversation-persist-plugin.d.ts.map +1 -1
- package/dist/conversation-persist-plugin.js.map +1 -1
- package/dist/conversation-repository.d.ts +23 -20
- package/dist/conversation-repository.d.ts.map +1 -1
- package/dist/conversation-repository.js +46 -37
- package/dist/conversation-repository.js.map +1 -1
- package/dist/cwd-tracker-plugin.d.ts.map +1 -1
- package/dist/cwd-tracker-plugin.js +17 -6
- package/dist/cwd-tracker-plugin.js.map +1 -1
- package/dist/handoff-service.js.map +1 -1
- package/dist/i18n/en-wizard.d.ts.map +1 -1
- package/dist/i18n/en-wizard.js +9 -6
- package/dist/i18n/en-wizard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +13 -2
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/preferences.d.ts +7 -4
- package/dist/i18n/preferences.d.ts.map +1 -1
- package/dist/i18n/preferences.js +15 -11
- package/dist/i18n/preferences.js.map +1 -1
- package/dist/i18n/zh-wizard.d.ts.map +1 -1
- package/dist/i18n/zh-wizard.js +9 -6
- package/dist/i18n/zh-wizard.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +13 -2
- package/dist/i18n/zh.js.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/sdk-log.d.ts +15 -3
- package/dist/sdk-log.d.ts.map +1 -1
- package/dist/sdk-log.js +29 -9
- package/dist/sdk-log.js.map +1 -1
- package/dist/session-pointer.d.ts.map +1 -1
- package/dist/session-pointer.js +10 -4
- package/dist/session-pointer.js.map +1 -1
- package/dist/sub-agent-guard-plugin.d.ts.map +1 -1
- package/dist/tui/chat-history.d.ts +29 -0
- package/dist/tui/chat-history.d.ts.map +1 -0
- package/dist/tui/chat-history.js +55 -0
- package/dist/tui/chat-history.js.map +1 -0
- package/dist/tui/chat-session.d.ts +31 -2
- package/dist/tui/chat-session.d.ts.map +1 -1
- package/dist/tui/chat-session.js +64 -9
- package/dist/tui/chat-session.js.map +1 -1
- package/dist/tui/components.d.ts +65 -5
- package/dist/tui/components.d.ts.map +1 -1
- package/dist/tui/components.js +85 -13
- package/dist/tui/components.js.map +1 -1
- package/dist/tui/config-wizard/detail.d.ts +6 -4
- package/dist/tui/config-wizard/detail.d.ts.map +1 -1
- package/dist/tui/config-wizard/detail.js +20 -14
- package/dist/tui/config-wizard/detail.js.map +1 -1
- package/dist/tui/config-wizard/engine.d.ts +1 -1
- package/dist/tui/config-wizard/engine.d.ts.map +1 -1
- package/dist/tui/config-wizard/engine.js +18 -6
- package/dist/tui/config-wizard/engine.js.map +1 -1
- package/dist/tui/config-wizard/fields.d.ts.map +1 -1
- package/dist/tui/config-wizard/fields.js +1 -30
- package/dist/tui/config-wizard/fields.js.map +1 -1
- package/dist/tui/config-wizard/frame.js +1 -1
- package/dist/tui/config-wizard/kv-editor.d.ts.map +1 -1
- package/dist/tui/config-wizard/kv-editor.js +4 -0
- package/dist/tui/config-wizard/kv-editor.js.map +1 -1
- package/dist/tui/config-wizard/list.d.ts +3 -1
- package/dist/tui/config-wizard/list.d.ts.map +1 -1
- package/dist/tui/config-wizard/list.js +3 -4
- package/dist/tui/config-wizard/list.js.map +1 -1
- package/dist/tui/config-wizard/prompt-editor.d.ts +8 -1
- package/dist/tui/config-wizard/prompt-editor.d.ts.map +1 -1
- package/dist/tui/config-wizard/prompt-editor.js +7 -4
- package/dist/tui/config-wizard/prompt-editor.js.map +1 -1
- package/dist/tui/config-wizard/step-agents.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-agents.js +25 -13
- package/dist/tui/config-wizard/step-agents.js.map +1 -1
- package/dist/tui/config-wizard/step-endpoints.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-endpoints.js +18 -15
- package/dist/tui/config-wizard/step-endpoints.js.map +1 -1
- package/dist/tui/config-wizard/step-mcp.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-mcp.js +15 -9
- package/dist/tui/config-wizard/step-mcp.js.map +1 -1
- package/dist/tui/config-wizard/step-models.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-models.js +67 -27
- package/dist/tui/config-wizard/step-models.js.map +1 -1
- package/dist/tui/config-wizard/types.d.ts +12 -0
- package/dist/tui/config-wizard/types.d.ts.map +1 -1
- package/dist/tui/file-index.d.ts +38 -0
- package/dist/tui/file-index.d.ts.map +1 -0
- package/dist/tui/file-index.js +117 -0
- package/dist/tui/file-index.js.map +1 -0
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +1 -1
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/key-debug.js.map +1 -1
- package/dist/tui/mention.d.ts +47 -0
- package/dist/tui/mention.d.ts.map +1 -0
- package/dist/tui/mention.js +152 -0
- package/dist/tui/mention.js.map +1 -0
- package/dist/tui/mouse.js.map +1 -1
- package/dist/tui/phase.d.ts.map +1 -1
- package/dist/tui/screens/chat-commands.d.ts +8 -0
- package/dist/tui/screens/chat-commands.d.ts.map +1 -1
- package/dist/tui/screens/chat-commands.js +60 -34
- package/dist/tui/screens/chat-commands.js.map +1 -1
- package/dist/tui/screens/chat.d.ts +37 -0
- package/dist/tui/screens/chat.d.ts.map +1 -1
- package/dist/tui/screens/chat.js +238 -31
- package/dist/tui/screens/chat.js.map +1 -1
- package/dist/tui/screens/common-keys.js.map +1 -1
- package/dist/tui/screens/frame-buffer.d.ts.map +1 -1
- package/dist/tui/screens/frame-buffer.js.map +1 -1
- package/dist/tui/screens/index.d.ts +1 -1
- package/dist/tui/screens/index.d.ts.map +1 -1
- package/dist/tui/screens/index.js +1 -1
- package/dist/tui/screens/index.js.map +1 -1
- package/dist/tui/screens/input.d.ts +30 -1
- package/dist/tui/screens/input.d.ts.map +1 -1
- package/dist/tui/screens/input.js +39 -2
- package/dist/tui/screens/input.js.map +1 -1
- package/dist/tui/screens/layout.d.ts +14 -0
- package/dist/tui/screens/layout.d.ts.map +1 -1
- package/dist/tui/screens/layout.js +22 -11
- package/dist/tui/screens/layout.js.map +1 -1
- package/dist/tui/screens/messages-view.d.ts.map +1 -1
- package/dist/tui/screens/messages-view.js +6 -2
- package/dist/tui/screens/messages-view.js.map +1 -1
- package/dist/tui/screens/notice.d.ts.map +1 -1
- package/dist/tui/screens/notice.js.map +1 -1
- package/dist/tui/screens/overlays.js +1 -1
- package/dist/tui/screens/render.d.ts +1 -1
- package/dist/tui/screens/render.d.ts.map +1 -1
- package/dist/tui/screens/render.js +6 -2
- package/dist/tui/screens/render.js.map +1 -1
- package/dist/tui/screens/use-input-editing.d.ts +29 -4
- package/dist/tui/screens/use-input-editing.d.ts.map +1 -1
- package/dist/tui/screens/use-input-editing.js +42 -14
- package/dist/tui/screens/use-input-editing.js.map +1 -1
- package/dist/tui/screens/use-wizard-host.d.ts +12 -1
- package/dist/tui/screens/use-wizard-host.d.ts.map +1 -1
- package/dist/tui/screens/use-wizard-host.js +26 -7
- package/dist/tui/screens/use-wizard-host.js.map +1 -1
- package/dist/tui/status-segments.js.map +1 -1
- package/dist/tui/text.d.ts +7 -0
- package/dist/tui/text.d.ts.map +1 -1
- package/dist/tui/text.js +5 -1
- package/dist/tui/text.js.map +1 -1
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/token-rate.d.ts.map +1 -1
- package/dist/tui/token-rate.js.map +1 -1
- package/dist/user-content.d.ts +41 -0
- package/dist/user-content.d.ts.map +1 -0
- package/dist/user-content.js +37 -0
- package/dist/user-content.js.map +1 -0
- package/dist/version.js.map +1 -1
- package/package.json +3 -3
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
import { promises as fs } from "node:fs";
|
|
10
10
|
import { dirname, join } from "node:path";
|
|
11
11
|
import { EntityRepository } from "@ai-zen/agents-sdk";
|
|
12
|
-
import { AgentNS } from "@ai-zen/agents-core";
|
|
13
12
|
import { CONVERSATIONS_DIR } from "./config.js";
|
|
14
13
|
import { formatFileStamp } from "./format-time.js";
|
|
15
14
|
import { writeLastSession } from "./session-pointer.js";
|
|
@@ -31,8 +30,26 @@ class AtomicConversationRepository extends EntityRepository {
|
|
|
31
30
|
await fs.writeFile(tmp, JSON.stringify(entity, null, 2), "utf-8");
|
|
32
31
|
await fs.rename(tmp, target);
|
|
33
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* 会话文件的绝对路径(`/save <名字>` 删旧文件名时用)。
|
|
35
|
+
*
|
|
36
|
+
* 只是把 SDK 的 `protected path()` 公开出来,**不另写一套拼接** —— 待 L2 在 `path()`
|
|
37
|
+
* 里加上路径穿越校验后,`/save ../x` 这类名字会自然被拦住。
|
|
38
|
+
*/
|
|
39
|
+
filePath(id) {
|
|
40
|
+
return this.path(id);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 会话仓储。
|
|
45
|
+
*
|
|
46
|
+
* 每次调用新建一个轻对象:仓储本身无内部状态(只包一个目录),而目录(`CONVERSATIONS_DIR`)
|
|
47
|
+
* 是会变的活绑定。若在模块加载时固化成单例,进程内共享模块跑测试时后一个用例会
|
|
48
|
+
* 继续读写前一个用例的目录。
|
|
49
|
+
*/
|
|
50
|
+
export function conversationRepository() {
|
|
51
|
+
return new AtomicConversationRepository(CONVERSATIONS_DIR);
|
|
34
52
|
}
|
|
35
|
-
export const conversationRepository = new AtomicConversationRepository(CONVERSATIONS_DIR);
|
|
36
53
|
/**
|
|
37
54
|
* 生成文件名安全的会话 id:英文前缀 + 全下划线时间戳,中英一致。
|
|
38
55
|
* 形如 `chat_2026_10_28_00_56_34`。
|
|
@@ -48,15 +65,13 @@ export function generateConversationId(date = new Date()) {
|
|
|
48
65
|
* 废弃的 `modelId`。收敛到这里后,各处差异只剩「是否更新指针」一个显式开关。
|
|
49
66
|
*/
|
|
50
67
|
export async function persistConversation(input) {
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
await
|
|
68
|
+
// 仓储**只取一次**:`CONVERSATIONS_DIR` 是活绑定,同一份落盘必须只读一个目录。
|
|
69
|
+
const repository = conversationRepository();
|
|
70
|
+
await repository.write({
|
|
54
71
|
id: input.id,
|
|
55
72
|
agentId: input.agentId || "default",
|
|
56
73
|
messages: input.messages,
|
|
57
74
|
cwd: input.cwd,
|
|
58
|
-
createdAt: existing?.createdAt ?? now,
|
|
59
|
-
updatedAt: now,
|
|
60
75
|
});
|
|
61
76
|
if (input.setAsLastSession !== false)
|
|
62
77
|
await writeLastSession(input.cwd, input.id);
|
|
@@ -73,55 +88,49 @@ export async function saveConversation(ctx) {
|
|
|
73
88
|
cwd: process.cwd(),
|
|
74
89
|
});
|
|
75
90
|
}
|
|
76
|
-
/** 摘要最大字符数(渲染侧还会按终端宽度再裁一次) */
|
|
77
|
-
const PREVIEW_MAX = 80;
|
|
78
91
|
/**
|
|
79
|
-
*
|
|
92
|
+
* 会话文件是否已存在(`/save <名字>` 的重名判断)。
|
|
80
93
|
*
|
|
81
|
-
*
|
|
82
|
-
* 取首行而不是整段:`CwdTrackerPlugin` 会在消息末尾追加工作目录注记,末尾对辨认无意义。
|
|
94
|
+
* 只 `access`:判断重名不需要解析内容,`read()` 会把整个会话 JSON.parse 一遍。
|
|
83
95
|
*/
|
|
84
|
-
export function
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
96
|
+
export async function conversationExists(id) {
|
|
97
|
+
try {
|
|
98
|
+
await fs.access(conversationRepository().filePath(id));
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
89
104
|
}
|
|
90
105
|
/**
|
|
91
|
-
*
|
|
106
|
+
* 列出已保存的会话,按文件 mtime 倒序。供对话内 `/load` 选择器使用。
|
|
92
107
|
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
108
|
+
* 只 `readdir` + `stat`,**不 read 任何会话文件**:列表只显示文件名,摘要(首条消息)
|
|
109
|
+
* 已取消 —— 会话攒到上百条时,逐个 `JSON.parse` 会明显拖慢 `/load`。
|
|
95
110
|
*/
|
|
96
|
-
export async function listConversations(
|
|
111
|
+
export async function listConversations() {
|
|
112
|
+
const dir = CONVERSATIONS_DIR;
|
|
113
|
+
let files;
|
|
97
114
|
try {
|
|
98
|
-
await fs.
|
|
115
|
+
files = await fs.readdir(dir);
|
|
99
116
|
}
|
|
100
117
|
catch {
|
|
101
|
-
return [];
|
|
118
|
+
return []; // 首次启动:会话目录还没建
|
|
102
119
|
}
|
|
103
|
-
const
|
|
104
|
-
const stats = [];
|
|
120
|
+
const entries = [];
|
|
105
121
|
for (const file of files) {
|
|
106
122
|
if (!file.endsWith(".json"))
|
|
107
123
|
continue;
|
|
108
124
|
const id = file.replace(/\.json$/, "");
|
|
109
125
|
try {
|
|
110
|
-
const st = await fs.stat(join(
|
|
111
|
-
|
|
126
|
+
const st = await fs.stat(join(dir, file));
|
|
127
|
+
entries.push({ id, mtime: st.mtimeMs });
|
|
112
128
|
}
|
|
113
129
|
catch {
|
|
114
|
-
/*
|
|
130
|
+
/* 读目录与 stat 之间被别的进程删掉:跳过(不是错误,也不该让 /load 崩) */
|
|
115
131
|
}
|
|
116
132
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// 只会让列表变成一堆谁也分不清的时间戳 id。
|
|
120
|
-
const withPreview = await Promise.all(stats.map(async (item, index) => {
|
|
121
|
-
if (index >= options.previewLimit)
|
|
122
|
-
return { ...item, preview: "" };
|
|
123
|
-
return { ...item, preview: conversationPreview(await conversationRepository.read(item.id)) };
|
|
124
|
-
}));
|
|
125
|
-
return withPreview;
|
|
133
|
+
entries.sort((a, b) => b.mtime - a.mtime);
|
|
134
|
+
return entries.map((entry) => ({ id: entry.id }));
|
|
126
135
|
}
|
|
127
136
|
//# sourceMappingURL=conversation-repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-repository.js","sourceRoot":"","sources":["../src/conversation-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-repository.js","sourceRoot":"","sources":["../src/conversation-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cwd-tracker-plugin.d.ts","sourceRoot":"","sources":["../src/cwd-tracker-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnE,qBAAa,gBAAiB,YAAW,WAAW;IAClD,8BAA8B;IAC9B,OAAO,CAAC,OAAO,CAAuB;IAEhC,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"cwd-tracker-plugin.d.ts","sourceRoot":"","sources":["../src/cwd-tracker-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnE,qBAAa,gBAAiB,YAAW,WAAW;IAClD,8BAA8B;IAC9B,OAAO,CAAC,OAAO,CAAuB;IAEhC,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BtD;CACF"}
|
|
@@ -39,18 +39,29 @@ export class CwdTrackerPlugin {
|
|
|
39
39
|
return;
|
|
40
40
|
const isFirstTime = this.lastCwd === null;
|
|
41
41
|
this.lastCwd = currentCwd;
|
|
42
|
-
// 找到最后一条 user 消息,将 cwd
|
|
43
|
-
const lastUserMsg = [...ctx.agent.messages]
|
|
44
|
-
|
|
45
|
-
.find((m) => m.role === AgentNS.Role.User && typeof m.content === "string");
|
|
46
|
-
if (!lastUserMsg || typeof lastUserMsg.content !== "string")
|
|
42
|
+
// 找到最后一条 user 消息,将 cwd 信息追加到其末尾。
|
|
43
|
+
const lastUserMsg = [...ctx.agent.messages].reverse().find((m) => m.role === AgentNS.Role.User);
|
|
44
|
+
if (!lastUserMsg)
|
|
47
45
|
return;
|
|
48
46
|
// 注入给模型的提示词:用英文,并显式标注「系统注入」—— 翻存档 / 交接文档时
|
|
49
47
|
// 一眼能分辨哪些内容不是用户敲的。(协议内容,不走 i18n)
|
|
50
48
|
const tag = isFirstTime
|
|
51
49
|
? "[system-injected: current working directory — not written by the user]"
|
|
52
50
|
: "[system-injected: working directory changed — not written by the user]";
|
|
53
|
-
|
|
51
|
+
const note = `${tag}\nCurrent working directory: ${currentCwd}`;
|
|
52
|
+
// 粘贴过图片的消息,`content` 是内容块数组(图片 / 文本混排):cwd 要追加到
|
|
53
|
+
// **最后一个 text 段**上,而不是另起一段——另起会多出一条「只有 cwd」的文本块。
|
|
54
|
+
if (Array.isArray(lastUserMsg.content)) {
|
|
55
|
+
const textSection = [...lastUserMsg.content].reverse().find((section) => section.type === "text");
|
|
56
|
+
if (textSection && textSection.type === "text")
|
|
57
|
+
textSection.text += `\n\n${note}`;
|
|
58
|
+
else
|
|
59
|
+
lastUserMsg.content.push({ type: "text", text: note });
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (typeof lastUserMsg.content !== "string")
|
|
63
|
+
return;
|
|
64
|
+
lastUserMsg.content += `\n\n${note}`;
|
|
54
65
|
}
|
|
55
66
|
}
|
|
56
67
|
//# sourceMappingURL=cwd-tracker-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cwd-tracker-plugin.js","sourceRoot":"","sources":["../src/cwd-tracker-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,MAAM,OAAO,gBAAgB;IAC3B,8BAA8B;IACtB,OAAO,GAAkB,IAAI,CAAC;IAEtC,KAAK,CAAC,gBAAgB,CAAC,GAAgB;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,gBAAgB;QAChB,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO;QAExC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAE1B,
|
|
1
|
+
{"version":3,"file":"cwd-tracker-plugin.js","sourceRoot":"","sources":["../src/cwd-tracker-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,MAAM,OAAO,gBAAgB;IAC3B,8BAA8B;IACtB,OAAO,GAAkB,IAAI,CAAC;IAEtC,KAAK,CAAC,gBAAgB,CAAC,GAAgB;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,gBAAgB;QAChB,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO;QAExC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAE1B,iCAAiC;QACjC,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChG,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,0CAA0C;QAC1C,iCAAiC;QACjC,MAAM,GAAG,GAAG,WAAW;YACrB,CAAC,CAAC,wEAAwE;YAC1E,CAAC,CAAC,wEAAwE,CAAC;QAC7E,MAAM,IAAI,GAAG,GAAG,GAAG,gCAAgC,UAAU,EAAE,CAAC;QAEhE,gDAAgD;QAChD,iDAAiD;QACjD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAClG,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;gBAAE,WAAW,CAAC,IAAI,IAAI,OAAO,IAAI,EAAE,CAAC;;gBAC7E,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO;QACpD,WAAW,CAAC,OAAO,IAAI,OAAO,IAAI,EAAE,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-service.js","sourceRoot":"","sources":["../src/handoff-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAEpC,uBAAuB;AACvB,MAAM,UAAU,YAAY,CAAC,IAAiB;IAC5C,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"handoff-service.js","sourceRoot":"","sources":["../src/handoff-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-wizard.d.ts","sourceRoot":"","sources":["../../src/i18n/en-wizard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"en-wizard.d.ts","sourceRoot":"","sources":["../../src/i18n/en-wizard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqTrC,CAAC"}
|
package/dist/i18n/en-wizard.js
CHANGED
|
@@ -18,7 +18,6 @@ export const en = {
|
|
|
18
18
|
"field.handoffThreshold": "Handoff threshold",
|
|
19
19
|
"field.guardThreshold": "Guard threshold",
|
|
20
20
|
"field.vision": "Vision",
|
|
21
|
-
"field.custom": "Custom",
|
|
22
21
|
"field.size": "Size",
|
|
23
22
|
"field.quality": "Quality",
|
|
24
23
|
// ---------- Common ---------------------------------------------------
|
|
@@ -32,7 +31,6 @@ export const en = {
|
|
|
32
31
|
"common.sameAsId": "(same as id)",
|
|
33
32
|
"common.notAdjustable": "(not adjustable)",
|
|
34
33
|
"common.customOnlyNote": "(marked as custom — changes are kept)",
|
|
35
|
-
"common.factoryManaged": "No (factory-managed)",
|
|
36
34
|
// ---------- Validation messages ----------
|
|
37
35
|
"err.nameRequired": "Name cannot be empty",
|
|
38
36
|
"err.baseUrlScheme": "Base URL must start with http:// or https://",
|
|
@@ -48,6 +46,7 @@ export const en = {
|
|
|
48
46
|
"err.functionNameRequired": "Function name cannot be empty",
|
|
49
47
|
"err.mcpNameTaken": "A server named {name} already exists",
|
|
50
48
|
"err.agentIdTaken": "A definition with id {name} already exists",
|
|
49
|
+
"err.noEndpoint": "No usable endpoint — add one under Endpoints first",
|
|
51
50
|
// ---------- More field labels (MCP / Agent detail) ----------
|
|
52
51
|
"field.transport": "Transport",
|
|
53
52
|
"field.command": "Command",
|
|
@@ -67,13 +66,10 @@ export const en = {
|
|
|
67
66
|
"common.transportStdio": "stdio (local subprocess)",
|
|
68
67
|
"common.transportMode": "Transport type",
|
|
69
68
|
"common.enabledState": "Enabled state",
|
|
70
|
-
"common.customQuoted": "\"custom\"",
|
|
71
69
|
// ---------- Persist feedback (full sentences — parameterised, never concatenated) ----------
|
|
72
70
|
"wiz.endpointUpdated": "Endpoint {name}: {label} updated",
|
|
73
71
|
"wiz.modelUpdated": "Model {name}: {label} updated{suffix}",
|
|
74
72
|
"wiz.imageModelUpdated": "Image model {name}: {label} updated{suffix}",
|
|
75
|
-
"wiz.modelCustomSet": "Model {name}: custom set to {value}",
|
|
76
|
-
"wiz.imageModelCustomSet": "Image model {name}: custom set to {value}",
|
|
77
73
|
"wiz.mcpFieldUpdated": "MCP {id}: {label} updated ({scope})",
|
|
78
74
|
"wiz.mcpRenamed": "MCP {id} renamed to {name} ({scope})",
|
|
79
75
|
"wiz.agentFieldUpdated": "{kind} {id}: {label} updated{suffix}",
|
|
@@ -153,17 +149,21 @@ export const en = {
|
|
|
153
149
|
"wiz.models.detailTitle": "◆ Model · {name}",
|
|
154
150
|
"wiz.models.detailLine": "{id} · {kind}",
|
|
155
151
|
"wiz.models.delete": "Delete model",
|
|
152
|
+
"wiz.models.restore": "Restore factory defaults",
|
|
153
|
+
"wiz.models.restored": "Restored model {name} to its factory definition",
|
|
156
154
|
"wiz.models.deleted": "Deleted model {name}",
|
|
157
155
|
"wiz.models.createTitle": "New model · name",
|
|
158
156
|
"wiz.models.createDesc": "Identifies the model in the config and the status bar, e.g. {example}",
|
|
159
157
|
"wiz.models.created": "Created model {name} ({id}, marked as custom)",
|
|
160
|
-
"wiz.models.noEndpoint": "⚠ No endpoint configured
|
|
158
|
+
"wiz.models.noEndpoint": "⚠ No endpoint configured — cannot create; add one under Endpoints first",
|
|
161
159
|
"wiz.models.defaultEndpoint": "Will bind the default endpoint: {endpoint}",
|
|
162
160
|
"wiz.createAndEdit": "Create & edit",
|
|
163
161
|
"wiz.imageModels.newItem": "+ New image model",
|
|
164
162
|
"wiz.imageModels.subtitle": "{n} total · select one to edit / delete in place",
|
|
165
163
|
"wiz.imageModels.detailTitle": "◆ Image model · {name}",
|
|
166
164
|
"wiz.imageModels.delete": "Delete image model",
|
|
165
|
+
"wiz.imageModels.restore": "Restore factory defaults",
|
|
166
|
+
"wiz.imageModels.restored": "Restored image model {name} to its factory definition",
|
|
167
167
|
"wiz.imageModels.deleted": "Deleted image model {name}",
|
|
168
168
|
"wiz.imageModels.createTitle": "New image model · name",
|
|
169
169
|
"wiz.imageModels.created": "Created image model {name} ({id}, marked as custom)",
|
|
@@ -180,6 +180,8 @@ export const en = {
|
|
|
180
180
|
"wiz.agent.detailLine": "{id} · {kind}{subSuffix}",
|
|
181
181
|
"wiz.agent.moveHint": "↑ ↓ move · Enter edit/toggle/open · changes are written to disk immediately",
|
|
182
182
|
"wiz.agent.deleteAction": "Delete {kind}",
|
|
183
|
+
"wiz.agent.restore": "Restore factory defaults",
|
|
184
|
+
"wiz.agentRestored": "Restored the {kind} {id} prompt to its factory definition",
|
|
183
185
|
"wiz.agent.subscreenTitle": "◆ {kind} · {id} · {label}",
|
|
184
186
|
"wiz.agent.permHint": "Format: `allow: a, b` or `deny: x` (comma-separated; empty clears this dimension)",
|
|
185
187
|
"wiz.agent.permMoveHint": "↑ ↓ move · Enter edit · Esc back",
|
|
@@ -214,6 +216,7 @@ export const en = {
|
|
|
214
216
|
"wiz.mcp.serverCount": "{n} server(s)",
|
|
215
217
|
"wiz.mcp.newItem": "+ New server",
|
|
216
218
|
"wiz.mcp.listTitle": "◆ MCP servers · {scope}",
|
|
219
|
+
"wiz.mcp.damaged": "mcp.json cannot be parsed ({error}); this screen shows an empty config",
|
|
217
220
|
"wiz.mcp.listSubtitle": "{n} · {path}",
|
|
218
221
|
"wiz.mcp.detailTitle": "◆ MCP · {id}",
|
|
219
222
|
"wiz.scopePath": "{scope} · {path}",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-wizard.js","sourceRoot":"","sources":["../../src/i18n/en-wizard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,EAAE,GAA2B;IACxC,sDAAsD;IACtD,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,YAAY;IAC9B,mBAAmB,EAAE,aAAa;IAClC,gBAAgB,EAAE,UAAU;IAC5B,iBAAiB,EAAE,YAAY;IAC/B,uBAAuB,EAAE,kBAAkB;IAC3C,wBAAwB,EAAE,mBAAmB;IAC7C,sBAAsB,EAAE,iBAAiB;IACzC,cAAc,EAAE,QAAQ;IACxB,
|
|
1
|
+
{"version":3,"file":"en-wizard.js","sourceRoot":"","sources":["../../src/i18n/en-wizard.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4PrC,CAAC"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export const en = {
|
|
7
7
|
// ---------- Input row ----------
|
|
8
|
-
"input.placeholder": "Type a message, /
|
|
8
|
+
"input.placeholder": "Type a message, / commands, @ files…",
|
|
9
9
|
"input.hint.ready": "Enter send · Ctrl+J newline · / commands · PgUp history",
|
|
10
10
|
"input.hint.scrolling": "↕ scrolling · PgUp/PgDn pages · send to jump to bottom",
|
|
11
11
|
"input.hint.initializing": "Initializing…",
|
|
12
|
+
"mention.scanning": "Scanning project files…",
|
|
13
|
+
"input.pastedImages": "{n} attached · Ctrl+V add more · Esc to clear",
|
|
12
14
|
// ---------- Status bar ----------
|
|
13
15
|
"status.agent": " · agent ",
|
|
14
16
|
"status.effort": " · thinking ",
|
|
@@ -41,7 +43,13 @@ export const en = {
|
|
|
41
43
|
"notice.reloaded": "Session rebuilt with the new config (messages and context kept)",
|
|
42
44
|
"notice.draftSaved": "Draft saved (Ctrl+S to restore)",
|
|
43
45
|
"notice.draftRestored": "Draft restored",
|
|
44
|
-
"notice.
|
|
46
|
+
"notice.imagePasted": "Image pasted ({n} attached). Enter to send",
|
|
47
|
+
"notice.imageLimit": "At most {n} images per message",
|
|
48
|
+
"notice.imageTooLarge": "Image too large ({size}MB), over the 20MB limit",
|
|
49
|
+
"notice.imagesCleared": "Attached images cleared",
|
|
50
|
+
"notice.textTooLarge": "Clipboard text is {size}KB, over the {limit}KB limit — nothing was pasted; save long content to a file and reference it with @",
|
|
51
|
+
"notice.clipboardEmpty": "The clipboard is empty",
|
|
52
|
+
"notice.clipboardUnavailable": "No clipboard tool available (pbpaste on macOS, wl-paste or xclip on Linux)",
|
|
45
53
|
"notice.inputCleared": "Input cleared · press Ctrl+C again to exit",
|
|
46
54
|
"notice.pressCtrlDAgain": "Press Ctrl+D again to exit",
|
|
47
55
|
"notice.languageChanged": "Language switched to English",
|
|
@@ -127,6 +135,8 @@ export const en = {
|
|
|
127
135
|
"cmd.think.failed": "Reasoning effort change failed: {error}",
|
|
128
136
|
"cmd.save.done": "Conversation saved: {id}",
|
|
129
137
|
"cmd.save.failed": "Save failed: {error}",
|
|
138
|
+
"cmd.save.overwrite": "A conversation named {id} already exists. Overwrite it?",
|
|
139
|
+
"cmd.save.cancelled": "Save cancelled",
|
|
130
140
|
"cmd.load.tooMany": "Pick a conversation to load (showing the latest {n})",
|
|
131
141
|
"cmd.load.readFailed": "Conversation not found or unreadable: {id}",
|
|
132
142
|
"cmd.handoff.unknownMode": "Unknown mode: {who} (use self / summary)",
|
|
@@ -160,6 +170,7 @@ export const en = {
|
|
|
160
170
|
"splash.pressAnyKey": "Press any key to start…",
|
|
161
171
|
"splash.preparing": "Preparing",
|
|
162
172
|
"msg.image": "[Image: {url}]",
|
|
173
|
+
"msg.imageInline": "[image]",
|
|
163
174
|
"msg.file": "[File: {name}]",
|
|
164
175
|
"msg.inlineFile": "inline file",
|
|
165
176
|
"msg.userHeader": "❯ You",
|
package/dist/i18n/en.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,EAAE,GAA2B;IACxC,kCAAkC;IAClC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQhD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,iBAAiB,GAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEjE,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAW,IAAI,CAAC;AAE3C,gDAAgD;AAChD,MAAM,KAAK,GAA2C;IACpD,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE;CAC3B,CAAC;AAEF,IAAI,aAAa,GAAW,cAAc,CAAC;AAE3C,WAAW;AACX,MAAM,UAAU,SAAS;IACvB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgC;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+CAA+C;AAC/C,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,13 @@
|
|
|
9
9
|
* 落点与 `conversations/`、`last-session.json` 同级,都是「CLI 运行时数据」。
|
|
10
10
|
*/
|
|
11
11
|
import { type Locale } from "./index.js";
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
/**
|
|
13
|
+
* 偏好文件路径;`AIZ_PREFERENCES_FILE` 可覆盖(测试与特殊部署用)。
|
|
14
|
+
*
|
|
15
|
+
* 每次调用都重新解析:测试会在用例之间换 `AI_ZEN_DIR`,若在模块加载时固化成常量,
|
|
16
|
+
* 进程内共享模块时后一个用例会继续读写前一个用例的目录。
|
|
17
|
+
*/
|
|
18
|
+
export declare function preferencesFile(): string;
|
|
16
19
|
/** CLI 本地偏好 */
|
|
17
20
|
export interface CliPreferences {
|
|
18
21
|
/** 界面语言;缺失表示「还没选过」,由系统语言识别决定 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../src/i18n/preferences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAA4C,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../src/i18n/preferences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAA4C,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAKxC;AAED,eAAe;AACf,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,0CAA0C;AAC1C,wBAAsB,eAAe,CACnC,IAAI,GAAE,MAA0B,GAC/B,OAAO,CAAC,cAAc,CAAC,CAYzB;AAED,2CAA2C;AAC3C,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,cAAc,EACpB,IAAI,GAAE,MAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,MAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlF;AAED,yBAAyB;AACzB,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
package/dist/i18n/preferences.js
CHANGED
|
@@ -11,15 +11,19 @@
|
|
|
11
11
|
import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
|
|
12
12
|
import { dirname, join } from "node:path";
|
|
13
13
|
import { detectLocale, setLocale, normalizeLocale } from "./index.js";
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export
|
|
14
|
+
/**
|
|
15
|
+
* 偏好文件路径;`AIZ_PREFERENCES_FILE` 可覆盖(测试与特殊部署用)。
|
|
16
|
+
*
|
|
17
|
+
* 每次调用都重新解析:测试会在用例之间换 `AI_ZEN_DIR`,若在模块加载时固化成常量,
|
|
18
|
+
* 进程内共享模块时后一个用例会继续读写前一个用例的目录。
|
|
19
|
+
*/
|
|
20
|
+
export function preferencesFile() {
|
|
21
|
+
const root = process.env.AI_ZEN_DIR ||
|
|
22
|
+
join(process.env.HOME || process.env.USERPROFILE || "", ".ai-zen");
|
|
23
|
+
return process.env.AIZ_PREFERENCES_FILE || join(root, "cli", "preferences.json");
|
|
24
|
+
}
|
|
21
25
|
/** 读取偏好:文件缺失 / 损坏 / 字段非法都按「没设置」处理,绝不抛错 */
|
|
22
|
-
export async function readPreferences(file =
|
|
26
|
+
export async function readPreferences(file = preferencesFile()) {
|
|
23
27
|
try {
|
|
24
28
|
const raw = await readFile(file, "utf-8");
|
|
25
29
|
const parsed = JSON.parse(raw);
|
|
@@ -33,7 +37,7 @@ export async function readPreferences(file = PREFERENCES_FILE) {
|
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
/** 写入偏好(先写临时文件再 rename,避免半个 JSON 留在磁盘上) */
|
|
36
|
-
export async function writePreferences(next, file =
|
|
40
|
+
export async function writePreferences(next, file = preferencesFile()) {
|
|
37
41
|
const payload = {};
|
|
38
42
|
if (next.language)
|
|
39
43
|
payload.language = next.language;
|
|
@@ -53,7 +57,7 @@ export async function writePreferences(next, file = PREFERENCES_FILE) {
|
|
|
53
57
|
* 落盘这一步是有意的:识别结果只算一次,用户之后改了系统语言也不会让界面语言
|
|
54
58
|
* 悄悄漂移——想换就 `/lang`。
|
|
55
59
|
*/
|
|
56
|
-
export async function initLocale(file =
|
|
60
|
+
export async function initLocale(file = preferencesFile()) {
|
|
57
61
|
const prefs = await readPreferences(file);
|
|
58
62
|
const locale = prefs.language ?? detectLocale();
|
|
59
63
|
setLocale(locale);
|
|
@@ -62,7 +66,7 @@ export async function initLocale(file = PREFERENCES_FILE) {
|
|
|
62
66
|
return locale;
|
|
63
67
|
}
|
|
64
68
|
/** 切换语言并落盘(`/lang` 用) */
|
|
65
|
-
export async function persistLocale(locale, file =
|
|
69
|
+
export async function persistLocale(locale, file = preferencesFile()) {
|
|
66
70
|
setLocale(locale);
|
|
67
71
|
await writePreferences({ language: locale }, file);
|
|
68
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../src/i18n/preferences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAEnF
|
|
1
|
+
{"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../src/i18n/preferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh-wizard.d.ts","sourceRoot":"","sources":["../../src/i18n/zh-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"zh-wizard.d.ts","sourceRoot":"","sources":["../../src/i18n/zh-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqTrC,CAAC"}
|