common-memory-core 0.2.0 → 0.2.1

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.
@@ -1,49 +1,52 @@
1
1
  import * as clack from '@clack/prompts';
2
+ import { isDeepStrictEqual } from 'node:util';
2
3
  import { MemoryModelError } from '../memory-manager/contracts/errors.js';
3
4
  import { describeConfiguredNetwork } from '../config/runtime.js';
4
5
  import { localApiKey, readPrivateEnv } from '../config/private-env.js';
5
6
  import { PRIVATE_PROXY_KEY, PRIVATE_CA_KEY, resolveRoute } from '../memory-manager/network/route.js';
6
- import { configFilePath, defaultConfig, envFilePath, loadConfig, saveNetworkSecret, saveApiKeyToEnvFile, saveConfig, validateConfig } from '../config/config.js';
7
+ import { defaultConfig, envFilePath, loadConfig, saveNetworkSecret, saveApiKeyToEnvFile, saveConfig, validateConfig } from '../config/config.js';
7
8
  import { normalizeOpenAICompatibleBaseUrl } from '../memory-manager/openai/openai-responses-adapter.js';
9
+ import { REASONING_EFFORTS } from '../memory-manager/openai/options.js';
10
+ import { SESSION_CACHE_DEFAULTS } from '../v2/session.js';
8
11
  import { storagePathLines } from './storage-paths.js';
9
12
  import { listProjects } from './operations.js';
10
- import { confirm, expandPath, menu, note, requireInteractive, text, unwrap, UserCancelled } from './tui-prompts.js';
13
+ import { confirm, expandPath, menu, note, numberInput, requireInteractive, terminalText, text, unwrap, UserCancelled } from './tui-prompts.js';
11
14
  export const PROVENANCE_OPTIONS = [
12
- { value: 'user_explicit', label: 'Delivered user expressions', hint: 'Includes corrections and forget requests' },
13
- { value: 'agent_observation', label: 'Agent-reported understanding', hint: 'Init only; attributed material, not user statements' },
14
- { value: 'conversation_context', label: 'Conversation context', hint: 'Assistant/tool and prior context; never evidence' },
15
- { value: 'document_import', label: 'Imported Markdown documents', hint: 'Attributed material, never user statements' },
15
+ { value: 'user_explicit', label: '我在对话中表达的内容', hint: '包括纠正和忘记请求' },
16
+ { value: 'agent_observation', label: '其他 AI 整理的理解', hint: '仅初始化导入,保留 AI 来源' },
17
+ { value: 'conversation_context', label: '助手回复与工具上下文', hint: '仅供理解,不作为你的声明' },
18
+ { value: 'document_import', label: '我选择导入的 Markdown', hint: '保留文件来源,不等于你逐句确认' },
16
19
  ];
17
20
  /** Detect edits made while a form was open rather than silently overwriting them. */
18
21
  export function checkConfigUnchanged(previous) {
19
- if (JSON.stringify(loadConfig()) !== JSON.stringify(previous))
20
- throw new Error('Configuration changed while this form was open. Reopen the form to use the current configuration.');
22
+ if (!isDeepStrictEqual(loadConfig(), previous))
23
+ throw new Error('配置已被其他操作修改,请重新打开表单后再试。');
21
24
  }
22
25
  export function saveSettings(next, previous) {
23
26
  checkConfigUnchanged(previous);
24
27
  saveConfig(next);
25
- clack.log.success('Settings saved. Restart active Pi/MCP/Codex/Work clients to apply; existing sessions are not hot-revoked.');
28
+ clack.log.success('设置已保存。请重启正在运行的助手,新权限不会即时撤销旧会话中的访问。');
26
29
  }
27
30
  export async function runSetupWizard(existing = loadConfig()) {
28
31
  requireInteractive();
29
32
  const current = existing ?? defaultConfig();
30
- const baseUrl = unwrap(await clack.text({ message: 'OpenAI-compatible Base URL', initialValue: current.remote.baseUrl,
33
+ note('填写维护记忆所用的模型。保存不会调用模型;后续可单独测试连接。\nAPI Key 可以暂时不填,之后仍能读取已有记忆。', existing ? '更换模型' : ' 1 · 配置模型');
34
+ const baseUrl = unwrap(await clack.text({ message: 'API 地址(兼容 OpenAI,通常以 /v1 结尾)', initialValue: current.remote.baseUrl,
31
35
  validate: value => { try {
32
36
  normalizeOpenAICompatibleBaseUrl(value ?? '');
33
37
  }
34
38
  catch (error) {
35
39
  return error instanceof Error ? error.message : 'Invalid URL';
36
40
  } } }));
37
- const model = await text('Model name', current.remote.model);
38
- const api = unwrap(await clack.select({ message: 'Request API (explicit; no automatic fallback)', initialValue: current.remote.api ?? 'responses', options: [
39
- { value: 'responses', label: 'Responses strict Structured Outputs' },
40
- { value: 'chat_completions', label: 'Chat Completions JSON object mode' },
41
+ const model = await text('模型名称(按服务商提供的名称填写)', current.remote.model);
42
+ const api = unwrap(await clack.select({ message: '服务商支持哪种接口?(不会自动切换)', initialValue: current.remote.api ?? 'responses', options: [
43
+ { value: 'responses', label: 'Responses', hint: '严格结构化输出,需要服务商支持' },
44
+ { value: 'chat_completions', label: 'Chat Completions', hint: '兼容聊天接口,JSON 模式' },
41
45
  ] }));
42
- const apiKeyEnv = unwrap(await clack.text({ message: 'API key environment variable', initialValue: current.remote.apiKeyEnv,
43
- validate: value => /^[A-Za-z_][A-Za-z0-9_]*$/u.test(value?.trim() ?? '') ? undefined : 'Use a valid environment variable name' }));
44
- const changeKey = await confirm('Store or replace the API key in the private .env? No keeps existing/external credentials (also permits read-only use).');
45
- const apiKey = changeKey ? unwrap(await clack.password({ message: `API key (stored only in ${envFilePath()})`, validate: value => value?.trim() && !/[\r\n\0]/u.test(value) ? undefined : 'A non-empty single line is required' })) : undefined;
46
- const dataRoot = existing ? current.dataRoot : expandPath(await text('Local memory data directory', current.dataRoot));
46
+ const apiKeyEnv = current.remote.apiKeyEnv;
47
+ const changeKey = await confirm(hasApiKey(current) ? '要更换已配置的 API Key 吗?' : '现在填写 API Key?(可暂不填写)');
48
+ const apiKey = changeKey ? await keyInput() : undefined;
49
+ const dataRoot = current.dataRoot;
47
50
  // Preserve every unrelated setting, including optional sessionCache and legacy proxy absence.
48
51
  const { reasoningEffort, thinking, enableThinking, ...remote } = current.remote;
49
52
  const sameApi = api === (current.remote.api ?? 'responses');
@@ -54,8 +57,8 @@ export async function runSetupWizard(existing = loadConfig()) {
54
57
  ...(sameApi && thinking !== undefined ? { thinking } : {}),
55
58
  ...(sameApi && enableThinking !== undefined ? { enableThinking } : {}),
56
59
  } };
57
- note([`Model: ${model} (${api})`, `Data: ${dataRoot}`, `Disclosure: ${next.disclosure.allowedScopes.join(', ')}`, `Writable: ${next.writableScopes.join(', ') || '(none)'}`, `Provenance: ${next.disclosure.allowedProvenance.join(', ')}`, !sameApi ? 'API changed: incompatible thinking options will be cleared.' : 'Other settings are preserved.', 'No model request is sent by saving.'].join('\n'), 'Review configuration');
58
- if (!await confirm('Save this configuration?'))
60
+ note([`模型:${model} · ${api}`, `地址:${next.remote.baseUrl}`, `存储:${dataRoot}`, `密钥:${apiKey !== undefined ? '保存新密钥(不回显)' : hasApiKey(current) ? '保留已有密钥' : '暂未设置,可只读'}`, !sameApi ? '切换接口会清除不兼容的思考选项。' : '其他设置保持不变。', ...(!existing ? ['默认只授权个人记忆和你在对话中表达的内容;项目与导入可稍后单独授权。'] : [])].join('\n'), '确认模型设置');
61
+ if (!await confirm('保存以上设置?'))
59
62
  throw new UserCancelled();
60
63
  validateConfig(next);
61
64
  checkConfigUnchanged(existing);
@@ -63,7 +66,7 @@ export async function runSetupWizard(existing = loadConfig()) {
63
66
  if (apiKey !== undefined)
64
67
  saveApiKeyToEnvFile(next.remote.apiKeyEnv, apiKey);
65
68
  saveConfig(next);
66
- clack.log.success(`Configuration saved to ${configFilePath()}. Restart active clients to apply.`);
69
+ clack.log.success('模型设置已保存。正在运行的助手需要重启后生效。');
67
70
  return loadConfig();
68
71
  }
69
72
  export function hasApiKey(config) {
@@ -92,53 +95,81 @@ export function printStatus() {
92
95
  const config = loadConfig();
93
96
  console.log(config ? statusLines(config).join('\n') : 'Common Memory is not configured. Run: common-memory');
94
97
  }
98
+ export async function runCredentialsWizard(current) {
99
+ note(`当前:${hasApiKey(current) ? '已找到密钥(未测试)' : '未找到密钥'}\n变量:${current.remote.apiKeyEnv}\n密钥只保存在私有 .env,不写进助手配置。`, 'API Key');
100
+ const action = await menu('要怎样设置密钥?', [
101
+ { value: 'set', label: '填写 / 更换 API Key' },
102
+ { value: 'env', label: '使用其他环境变量', hint: '适合已有外部凭据配置' },
103
+ { value: 'back', label: '返回' },
104
+ ]);
105
+ if (action === 'back')
106
+ return;
107
+ if (action === 'env') {
108
+ const name = unwrap(await clack.text({ message: '环境变量名称', initialValue: current.remote.apiKeyEnv,
109
+ validate: value => /^[A-Za-z_][A-Za-z0-9_]*$/u.test(value?.trim() ?? '') ? undefined : '请填写合法的环境变量名,例如 OPENAI_API_KEY' })).trim();
110
+ if (await confirm(`改用 ${name}?现有私有密钥不会被删除。`))
111
+ saveSettings({ ...current, remote: { ...current.remote, apiKeyEnv: name } }, current);
112
+ return;
113
+ }
114
+ const key = await keyInput();
115
+ if (!await confirm('保存新密钥?模型和其他设置保持不变。'))
116
+ return;
117
+ checkConfigUnchanged(current);
118
+ saveApiKeyToEnvFile(current.remote.apiKeyEnv, key);
119
+ clack.log.success('密钥已保存。请重启助手,并用「测试模型连接」检查。');
120
+ }
121
+ async function keyInput() {
122
+ return unwrap(await clack.password({ message: 'API Key(隐藏输入,只存本机私有 .env)', validate: value => value?.trim() && !/[\r\n\0]/u.test(value) ? undefined : '请填写非空、单行的 API Key' }));
123
+ }
95
124
  export async function runPermissionsWizard(current) {
96
- const known = ['global', ...listProjects(current).map(p => `project:${p.id}`), ...current.disclosure.allowedScopes, ...current.writableScopes];
97
- const options = [...new Set(known)].map(value => ({ value, label: value }));
98
- note('Registration, disclosure/read access and write permission are separate. Import provenance never becomes user evidence. Changes do not revoke already running clients.', 'Authorization');
99
- const allowedScopes = unwrap(await clack.multiselect({ message: 'Scopes allowed for disclosure and consumer reads', options, initialValues: [...current.disclosure.allowedScopes], required: true }));
100
- const writableScopes = unwrap(await clack.multiselect({ message: 'Scopes writable by Core (independent of disclosure)', options, initialValues: current.writableScopes, required: false }));
101
- const allowedProvenance = unwrap(await clack.multiselect({ message: 'Material allowed to be sent to the model', options: PROVENANCE_OPTIONS, initialValues: [...current.disclosure.allowedProvenance], required: true }));
102
- note(`Disclosure: ${allowedScopes.join(', ')}\nWritable: ${writableScopes.join(', ') || '(none)'}\nProvenance: ${allowedProvenance.join(', ')}`, 'Review permissions');
103
- if (await confirm('Save these authorizations?'))
125
+ const projects = listProjects(current);
126
+ const known = ['global', ...projects.map(p => `project:${p.id}`), ...current.disclosure.allowedScopes, ...current.writableScopes];
127
+ const scopeName = (value) => value === 'global' ? '个人记忆(背景与偏好)' : projects.find(p => `project:${p.id}` === value)?.name ?? `未登记范围:${value}`;
128
+ const options = [...new Set(known)].map(value => ({ value, label: terminalText(scopeName(value)) }));
129
+ note('空格勾选,Enter 继续。读取和写入分别选择;不勾选写入即可只读。\n获授权的材料可能发送给配置的模型。保存后请重启助手。', '决定助手能接触什么');
130
+ const allowedScopes = unwrap(await clack.multiselect({ message: '1/3 · 哪些记忆允许助手读取、模型处理?', options, initialValues: [...current.disclosure.allowedScopes], required: true }));
131
+ const writableScopes = unwrap(await clack.multiselect({ message: '2/3 · 哪些记忆允许更新?(可全部取消)', options, initialValues: current.writableScopes, required: false }));
132
+ const allowedProvenance = unwrap(await clack.multiselect({ message: '3/3 · 哪些材料允许发送给模型?', options: PROVENANCE_OPTIONS, initialValues: [...current.disclosure.allowedProvenance], required: true }));
133
+ note(`允许读取:${allowedScopes.map(scopeName).join('、')}\n允许更新:${writableScopes.map(scopeName).join('、') || '无(只读)'}\n可发送材料:${allowedProvenance.map(p => PROVENANCE_OPTIONS.find(o => o.value === p).label).join('、')}`, '确认权限');
134
+ if (await confirm('保存这些权限?'))
104
135
  saveSettings({ ...current, writableScopes, disclosure: { ...current.disclosure, allowedScopes, allowedProvenance } }, current);
105
136
  }
106
137
  export async function runNetworkWizard(existing = loadConfig()) {
107
138
  requireInteractive();
108
139
  if (!existing)
109
- throw new Error('Configure the remote API first');
110
- const mode = unwrap(await clack.select({ message: 'Model network route', initialValue: existing.remote.proxy?.mode ?? 'env', options: [
111
- { value: 'env', label: 'Environment proxy', hint: 'HTTPS_PROXY / HTTP_PROXY / ALL_PROXY and NO_PROXY' },
112
- { value: 'direct', label: 'Direct', hint: 'Independent connections; OS VPN/TUN still applies' },
113
- { value: 'custom', label: 'Custom proxy', hint: 'HTTP/HTTPS; SOCKS5 experimental' },
140
+ throw new Error('请先配置模型,再设置网络。');
141
+ const mode = unwrap(await clack.select({ message: '怎样连接模型?', initialValue: existing.remote.proxy?.mode ?? 'env', options: [
142
+ { value: 'env', label: '跟随环境代理', hint: '使用 HTTPS_PROXY 等变量和 NO_PROXY' },
143
+ { value: 'direct', label: '直接连接', hint: '不使用应用代理;系统 VPN/TUN 仍可能生效' },
144
+ { value: 'custom', label: '指定代理地址', hint: 'HTTP / HTTPSSOCKS5 为实验支持' },
114
145
  ] }));
115
146
  let proxy = { mode: mode === 'custom' ? 'env' : mode };
116
147
  let secret;
117
148
  if (mode === 'custom') {
118
- secret = unwrap(await clack.password({ message: 'Proxy URL (stored privately; not in generated integrations)', validate: value => {
149
+ secret = unwrap(await clack.password({ message: '代理地址(隐藏输入,私有保存)', validate: value => {
119
150
  try {
120
151
  resolveRoute(existing.remote.baseUrl, { mode: 'custom', urlEnv: PRIVATE_PROXY_KEY }, { [PRIVATE_PROXY_KEY]: value });
121
152
  }
122
153
  catch {
123
- return 'Use a valid HTTP, HTTPS or SOCKS5 proxy URL';
154
+ return '请填写有效的 HTTPHTTPS SOCKS5 代理地址';
124
155
  }
125
156
  } }));
126
- const noProxy = unwrap(await clack.text({ message: 'Custom bypass hosts (optional)', defaultValue: '', initialValue: existing.remote.proxy?.mode === 'custom' ? existing.remote.proxy.noProxy ?? '' : '', validate: value => {
157
+ const noProxy = unwrap(await clack.text({ message: '哪些主机不走代理?(可留空,逗号分隔)', defaultValue: '', initialValue: existing.remote.proxy?.mode === 'custom' ? existing.remote.proxy.noProxy ?? '' : '', validate: value => {
127
158
  try {
128
159
  resolveRoute(existing.remote.baseUrl, { mode: 'custom', urlEnv: PRIVATE_PROXY_KEY, noProxy: value ?? '' }, { [PRIVATE_PROXY_KEY]: secret });
129
160
  }
130
161
  catch {
131
- return 'Invalid bypass list';
162
+ return '请检查不走代理的主机列表';
132
163
  }
133
164
  } }));
134
165
  proxy = { mode: 'custom', urlEnv: PRIVATE_PROXY_KEY, ...(noProxy.trim() ? { noProxy: noProxy.trim() } : {}) };
135
166
  }
136
- const caAction = await menu('Additional CA certificate', [{ value: 'keep', label: 'Keep current setting' }, { value: 'set', label: 'Set PEM file path' }, { value: 'remove', label: 'Use only Node default trust' }]);
137
- const ca = caAction === 'set' ? expandPath(await text('Additional CA PEM file')) : undefined;
167
+ const caAction = await menu('需要额外的 CA 证书吗?', [{ value: 'keep', label: '保持当前设置', hint: '通常选这个' }, { value: 'set', label: '选择 PEM 证书文件' }, { value: 'remove', label: '仅使用 Node 默认信任证书' }]);
168
+ const ca = caAction === 'set' ? expandPath(await text('CA 证书文件路径(PEM')) : undefined;
138
169
  const { caFileEnv, ...remote } = existing.remote;
139
170
  const next = { ...existing, remote: { ...remote, proxy, ...(ca ? { caFileEnv: PRIVATE_CA_KEY } : caAction === 'keep' && caFileEnv ? { caFileEnv } : {}) } };
140
- note(`Route: ${mode}\nCA: ${caAction}\nNo probe is sent. No process-wide network settings are changed.`, 'Review network');
141
- if (!await confirm('Save network settings?'))
171
+ note(`连接方式:${{ env: '跟随环境代理', direct: '直接连接', custom: '指定代理' }[mode]}\n证书:${{ keep: '保持当前设置', set: '使用所选 PEM 文件', remove: '仅使用默认信任' }[caAction]}\n只影响 Common Memory 的模型请求;保存不会测试连接。`, '确认网络设置');
172
+ if (!await confirm('保存网络设置?'))
142
173
  throw new UserCancelled();
143
174
  validateConfig(next);
144
175
  checkConfigUnchanged(existing);
@@ -147,52 +178,129 @@ export async function runNetworkWizard(existing = loadConfig()) {
147
178
  if (ca)
148
179
  saveNetworkSecret(PRIVATE_CA_KEY, ca);
149
180
  saveConfig(next);
150
- clack.log.success('Network settings saved. Restart active clients to apply.');
181
+ clack.log.success('网络设置已保存。请重启助手;可用「测试模型连接」检查。');
151
182
  return loadConfig();
152
183
  }
153
- /** Less common knobs share the existing validator, not a second configuration schema. */
184
+ /** Edit one setting per visit; validate the complete result with Core's existing schema. */
154
185
  export async function runAdvancedWizard(current) {
155
- const kind = await menu('Advanced settings', [
156
- { value: 'tuning', label: 'Model output / thinking options' },
157
- { value: 'limits', label: 'Scheduler / session cache / disclosure byte limits' },
158
- { value: 'storage', label: 'Change data directory', hint: 'Select another store; does not migrate data' },
159
- { value: 'back', label: 'Back' },
186
+ const kind = await menu('高级设置 · 不确定时保留当前值', [
187
+ { value: 'tuning', label: '输出长度与思考方式' },
188
+ { value: 'limits', label: '处理节奏与容量限制' },
189
+ { value: 'storage', label: '切换存储目录', hint: '不搬迁、不删除原数据' },
190
+ { value: 'back', label: '返回' },
160
191
  ]);
161
192
  if (kind === 'back')
162
193
  return;
163
194
  let next;
195
+ let review;
164
196
  if (kind === 'storage') {
165
- note('Stop all clients before switching stores. Existing Markdown and SQLite remain intact. This does not copy, merge or migrate anything. Integrations need regeneration after switching.', 'Storage authority');
166
- next = { ...current, dataRoot: expandPath(await text('Data directory', current.dataRoot)) };
197
+ note('请先停止所有助手和后台处理器。切换只选择另一份存储,不会搬迁或合并数据。\n原 Markdown SQLite 保留;切换后需要重新生成助手接入配置。', '切换存储前');
198
+ next = { ...current, dataRoot: expandPath(await text('新的存储目录', current.dataRoot)) };
199
+ review = `原目录:${current.dataRoot}\n新目录:${next.dataRoot}`;
167
200
  }
168
- else {
169
- const { maxOutputTokens, reasoningEffort, thinking, enableThinking } = current.remote;
170
- const { maxExcerptBytes, maxCandidateBytes, maxTotalBytes } = current.disclosure;
171
- const initial = kind === 'tuning' ? { maxOutputTokens, reasoningEffort, thinking, enableThinking } : { scheduler: current.scheduler, sessionCache: current.sessionCache, maxExcerptBytes, maxCandidateBytes, maxTotalBytes };
172
- note(kind === 'tuning' ? 'JSON fields: maxOutputTokens (1–16384), reasoningEffort (Responses only), thinking or enableThinking (Chat only, mutually exclusive). {} clears tuning; API/model must support chosen fields.' : 'Edit the shown JSON limits. Session batching remains exactly ten settled interactions; scheduler settings cannot override it. Omitted sessionCache uses defaults.', 'Advanced configuration');
173
- const merge = (raw) => {
174
- const value = JSON.parse(raw);
175
- const keys = kind === 'tuning' ? ['maxOutputTokens', 'reasoningEffort', 'thinking', 'enableThinking'] : ['scheduler', 'sessionCache', 'maxExcerptBytes', 'maxCandidateBytes', 'maxTotalBytes'];
176
- if (!value || Array.isArray(value) || typeof value !== 'object' || Object.keys(value).some(k => !keys.includes(k)))
177
- throw new Error('Only the listed fields are allowed');
178
- if (kind === 'tuning') {
179
- const { maxOutputTokens: _a, reasoningEffort: _b, thinking: _c, enableThinking: _d, ...remote } = current.remote;
180
- return validateConfig({ ...current, remote: { ...remote, ...value } });
201
+ else if (kind === 'tuning') {
202
+ const field = await menu('要调整哪一项?', [
203
+ { value: 'tokens', label: '最大输出长度', hint: `${current.remote.maxOutputTokens ?? '接口默认'} tokens` },
204
+ { value: 'thinking', label: '思考方式', hint: '只选择服务商支持的参数' },
205
+ { value: 'back', label: '返回' },
206
+ ]);
207
+ if (field === 'back')
208
+ return;
209
+ const remote = { ...current.remote };
210
+ if (field === 'tokens') {
211
+ const n = await numberInput('最大输出 tokens(1–16384;留空恢复接口默认)', remote.maxOutputTokens, 1, 16384, true);
212
+ if (n === undefined)
213
+ delete remote.maxOutputTokens;
214
+ else
215
+ remote.maxOutputTokens = n;
216
+ review = `最大输出:${current.remote.maxOutputTokens ?? '接口默认'} → ${n ?? '接口默认'}`;
217
+ }
218
+ else {
219
+ delete remote.reasoningEffort;
220
+ delete remote.thinking;
221
+ delete remote.enableThinking;
222
+ if ((remote.api ?? 'responses') === 'responses') {
223
+ const effort = await menu('思考强度(Responses,需要模型支持)', [
224
+ { value: 'default', label: '使用接口默认', hint: '不发送 reasoningEffort' },
225
+ ...REASONING_EFFORTS.map(value => ({ value, label: value })),
226
+ { value: 'back', label: '返回' },
227
+ ], current.remote.reasoningEffort ?? 'default');
228
+ if (effort === 'back')
229
+ return;
230
+ if (effort !== 'default')
231
+ remote.reasoningEffort = effort;
232
+ review = `思考强度:${current.remote.reasoningEffort ?? '接口默认'} → ${effort === 'default' ? '接口默认' : effort}`;
181
233
  }
182
- const { scheduler, sessionCache, ...limits } = value;
183
- const { sessionCache: _cache, ...base } = current;
184
- return validateConfig({ ...base, scheduler, ...(sessionCache === undefined ? {} : { sessionCache }), disclosure: { ...current.disclosure, ...limits } });
185
- };
186
- const raw = unwrap(await clack.text({ message: 'Settings JSON', initialValue: JSON.stringify(initial), validate: value => { try {
187
- merge(value ?? '');
234
+ else {
235
+ const initial = current.remote.thinking ? `thinking:${current.remote.thinking.type}` : current.remote.enableThinking !== undefined ? `enableThinking:${current.remote.enableThinking}` : 'default';
236
+ const mode = await menu('思考方式(Chat Completions,按服务商文档选择)', [
237
+ { value: 'default', label: '使用接口默认', hint: '不发送思考参数' },
238
+ { value: 'thinking:enabled', label: '开启思考', hint: 'thinking.type = enabled' },
239
+ { value: 'thinking:disabled', label: '关闭思考', hint: 'thinking.type = disabled' },
240
+ { value: 'enableThinking:true', label: '开启思考(布尔参数)', hint: 'enableThinking = true' },
241
+ { value: 'enableThinking:false', label: '关闭思考(布尔参数)', hint: 'enableThinking = false' },
242
+ { value: 'back', label: '返回' },
243
+ ], initial);
244
+ if (mode === 'back')
245
+ return;
246
+ if (mode.startsWith('thinking:'))
247
+ remote.thinking = { type: mode === 'thinking:enabled' ? 'enabled' : 'disabled' };
248
+ else if (mode.startsWith('enableThinking:'))
249
+ remote.enableThinking = mode === 'enableThinking:true';
250
+ review = `思考参数:${initial} → ${mode}`;
188
251
  }
189
- catch (error) {
190
- return error instanceof Error ? error.message : 'Invalid settings';
191
- } } }));
192
- next = merge(raw);
252
+ }
253
+ next = { ...current, remote };
193
254
  }
194
- note(JSON.stringify(kind === 'storage' ? { dataRoot: next.dataRoot } : kind === 'tuning' ? next.remote : { scheduler: next.scheduler, sessionCache: next.sessionCache, disclosure: next.disclosure }, null, 2), 'Review settings (no API key)');
195
- if (await confirm('Save these settings?'))
255
+ else {
256
+ const group = await menu('哪一类限制?', [
257
+ { value: 'scheduler', label: '队列处理节奏', hint: '不改变会话每 10 次交互封批的规则' },
258
+ { value: 'sessionCache', label: '会话暂存容量' },
259
+ { value: 'disclosure', label: '发送给模型的内容上限', hint: '单位为字节' },
260
+ { value: 'back', label: '返回' },
261
+ ]);
262
+ if (group === 'back')
263
+ return;
264
+ const fields = group === 'scheduler' ? [
265
+ { value: 'turnThreshold', label: '普通队列批量阈值', unit: '条' },
266
+ { value: 'byteThreshold', label: '普通队列大小阈值', unit: '字节' },
267
+ { value: 'idleMs', label: '空闲后开始处理', unit: '毫秒' },
268
+ { value: 'maxWaitMs', label: '最长等待时间', unit: '毫秒' },
269
+ { value: 'leaseMs', label: '任务占用期限', unit: '毫秒' },
270
+ { value: 'maxAttempts', label: '最多尝试次数', unit: '次' },
271
+ ] : group === 'sessionCache' ? [
272
+ { value: 'maxSessionBytes', label: '单个会话暂存上限', unit: '字节' },
273
+ { value: 'maxTotalBytes', label: '所有会话暂存上限', unit: '字节' },
274
+ { value: 'contextTailTurns', label: '保留上下文轮数', unit: '轮' },
275
+ ] : [
276
+ { value: 'maxExcerptBytes', label: '单条材料上限', unit: '字节' },
277
+ { value: 'maxCandidateBytes', label: '候选材料上限', unit: '字节' },
278
+ { value: 'maxTotalBytes', label: '总内容上限', unit: '字节' },
279
+ ];
280
+ const values = group === 'scheduler' ? current.scheduler : group === 'sessionCache' ? { ...SESSION_CACHE_DEFAULTS, ...current.sessionCache } : { ...current.disclosure };
281
+ const field = await menu('选择要修改的值', [
282
+ ...fields.map(f => ({ ...f, hint: `当前 ${values[f.value]} ${f.unit}` })),
283
+ ...(group === 'sessionCache' ? [{ value: 'reset', label: '恢复会话暂存默认值' }] : []),
284
+ { value: 'back', label: '返回' },
285
+ ]);
286
+ if (field === 'back')
287
+ return;
288
+ if (field === 'reset') {
289
+ next = { ...current };
290
+ delete next.sessionCache;
291
+ review = '会话暂存将使用内置默认值,其他设置不变。';
292
+ }
293
+ else {
294
+ const option = fields.find(f => f.value === field);
295
+ const n = await numberInput(`${option.label}(${option.unit})`, Number(values[field]), field === 'contextTailTurns' ? 0 : 1);
296
+ const previous = group === 'scheduler' ? current.scheduler : group === 'sessionCache' ? current.sessionCache : current.disclosure;
297
+ next = validateConfig({ ...current, [group]: { ...previous, [field]: n } });
298
+ review = `${option.label}:${values[field]} → ${n} ${option.unit}\n其他设置保持不变。`;
299
+ }
300
+ }
301
+ validateConfig(next);
302
+ note(review, '确认修改');
303
+ if (await confirm('保存这项修改?'))
196
304
  saveSettings(next, current);
197
305
  }
198
306
  //# sourceMappingURL=tui-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui-settings.js","sourceRoot":"","sources":["../../src/cli/tui-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui-settings.js","sourceRoot":"","sources":["../../src/cli/tui-settings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/cli/tui.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAqMjD,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B5C"}
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/cli/tui.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAuOjD,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAkC5C"}