dsh-diary-memory 0.1.0 → 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-parameters.js","sourceRoot":"","sources":["../src/model-parameters.ts"],"names":[],"mappings":"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"}
@@ -74,7 +74,7 @@ export class DiaryOrchestrator extends BasicCompactionEngine {
74
74
  if (!await this.ctx.sessions.flush(agent.session))
75
75
  throw new Error('缺少会话持久化提供方,拒绝压缩');
76
76
  const span = captureSpan(agent.session, input.messages);
77
- const { config, store, client } = this.memory;
77
+ const { config, store, client } = this.memory.snapshot();
78
78
  if (!config.apiKey)
79
79
  throw new Error('请先配置百炼 apiKey;原会话上下文已保留');
80
80
  const existing = store.findSource(config.namespace, agent.session.id, span.sourceHash, client.embeddingKey);
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -33,16 +33,25 @@ export interface RecallHit {
33
33
  score: number;
34
34
  }
35
35
  export declare class RetrievalService extends Service {
36
- readonly config: ResolvedConfig;
37
- readonly client: BailianClient;
38
36
  readonly store: MemoryStore;
39
37
  readonly lifetime: AbortController;
40
38
  private readonly jobs;
41
39
  private readonly recovery;
42
- constructor(ctx: Context, config: ResolvedConfig, dependencies?: {
40
+ private readonly configuration;
41
+ private readonly fixedClient?;
42
+ private cachedClient?;
43
+ constructor(ctx: Context, config: ResolvedConfig | (() => ResolvedConfig), dependencies?: {
43
44
  store?: MemoryStore;
44
45
  client?: BailianClient;
45
46
  });
47
+ get config(): ResolvedConfig;
48
+ get client(): BailianClient;
49
+ /** One operation keeps its route and vector space even if settings change in flight. */
50
+ snapshot(): {
51
+ config: ResolvedConfig;
52
+ client: BailianClient;
53
+ store: MemoryStore;
54
+ };
46
55
  initialize(): Promise<void>;
47
56
  stateOf(session: Session): DiaryProjectionState;
48
57
  track<T>(operation: () => Promise<T>): Promise<T>;
@@ -5,21 +5,32 @@ import { MemoryStore } from './memory-store.js';
5
5
  import { renderDiary } from './diary.js';
6
6
  import { diaryProjection } from './projection.js';
7
7
  export class RetrievalService extends Service {
8
- config;
9
- client;
10
8
  store;
11
9
  lifetime = new AbortController();
12
10
  jobs = new Set();
13
11
  recovery = new WeakMap();
12
+ configuration;
13
+ fixedClient;
14
+ cachedClient;
14
15
  constructor(ctx, config, dependencies = {}) {
15
16
  super(ctx, 'diaryMemory');
16
- this.config = config;
17
- this.store = dependencies.store ?? new MemoryStore(config.databasePath);
18
- this.client = dependencies.client ?? new BailianClient(config, { signal: this.lifetime.signal });
17
+ this.configuration = typeof config === 'function' ? config : () => config;
18
+ this.store = dependencies.store ?? new MemoryStore(this.config.databasePath);
19
+ this.fixedClient = dependencies.client;
19
20
  ctx.effect(() => () => this.dispose(), 'diaryMemory.lifecycle()');
20
21
  }
22
+ get config() { return this.configuration(); }
23
+ get client() { return this.snapshot().client; }
24
+ /** One operation keeps its route and vector space even if settings change in flight. */
25
+ snapshot() {
26
+ const config = this.config;
27
+ const key = JSON.stringify([config.apiKey, config.baseUrl, config.embeddingModel, config.embeddingDimensions, config.embeddingParameters, config.rerankModel, config.rerankParameters, config.timeoutMs, config.retries]);
28
+ if (!this.fixedClient && this.cachedClient?.key !== key)
29
+ this.cachedClient = { key, client: new BailianClient(config, { signal: this.lifetime.signal }) };
30
+ return { config, client: this.fixedClient ?? this.cachedClient.client, store: this.store };
31
+ }
21
32
  async initialize() {
22
- this.ctx.sessionProjections.register(diaryProjection);
33
+ await this.ctx.sessionProjections.register(diaryProjection);
23
34
  this.ctx.on('session/created', session => {
24
35
  void this.track(() => this.reconcile(session)).catch(() => this.ctx.logger.warn('日记恢复未完成;保留待提交记录,下次使用时重试'));
25
36
  });
@@ -53,25 +64,26 @@ export class RetrievalService extends Service {
53
64
  }
54
65
  recall(query, options = {}) {
55
66
  return this.track(async () => {
67
+ const { config, client } = this.snapshot();
56
68
  const text = query.trim();
57
69
  if (!text || text.length > 8000)
58
70
  throw new TypeError('recall query 必须为 1–8000 字符');
59
- const limit = options.limit ?? this.config.recallCount;
60
- if (!Number.isInteger(limit) || limit < 1 || limit > this.config.candidateCount)
71
+ const limit = options.limit ?? config.recallCount;
72
+ if (!Number.isInteger(limit) || limit < 1 || limit > config.candidateCount)
61
73
  throw new TypeError('recall limit 超出候选数量');
62
74
  const signal = AbortSignal.any([this.lifetime.signal, ...options.signal ? [options.signal] : []]);
63
75
  signal.throwIfAborted();
64
- const namespace = this.config.namespace;
65
- if (!this.store.count(namespace, this.client.embeddingKey)) {
76
+ const namespace = config.namespace;
77
+ if (!this.store.count(namespace, client.embeddingKey)) {
66
78
  if (this.store.count(namespace))
67
79
  throw new Error('已有日记使用不同的 embedding 模型、维度或端点,请使用原向量配置或重新索引');
68
80
  return [];
69
81
  }
70
- const vector = await this.client.embed(text, { textType: 'query', signal });
71
- const candidates = this.store.search(vector, { namespace, embeddingKey: this.client.embeddingKey, limit: this.config.candidateCount, sessionId: options.sessionId });
82
+ const vector = await client.embed(text, { textType: 'query', signal });
83
+ const candidates = this.store.search(vector, { namespace, embeddingKey: client.embeddingKey, limit: config.candidateCount, sessionId: options.sessionId });
72
84
  if (!candidates.length)
73
85
  return [];
74
- const ranking = await this.client.rerank(text, candidates.map(item => item.search_text), { topN: Math.min(limit, candidates.length), signal });
86
+ const ranking = await client.rerank(text, candidates.map(item => item.search_text), { topN: Math.min(limit, candidates.length), signal });
75
87
  signal.throwIfAborted();
76
88
  return ranking.map(item => {
77
89
  const match = candidates[item.index];
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval-service.js","sourceRoot":"","sources":["../src/retrieval-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retrieval-service.js","sourceRoot":"","sources":["../src/retrieval-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,41 @@
1
1
  {
2
2
  "name": "dsh-diary-memory",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "为 DSH 的陪伴与个人数字分身提供有温度、可演化的日记记忆、百炼检索和安全压缩。",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
8
8
  "license": "MIT",
9
- "engines": { "node": ">=22.15", "dsh": "0.2.1-rc.3" },
10
- "files": ["lib", "src", "locale", "icon.svg", "cordis.patch.yml", "README.md", "LICENSE"],
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/cyhddyx/dsh-diary-memory.git"
12
+ },
13
+ "homepage": "https://github.com/cyhddyx/dsh-diary-memory#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/cyhddyx/dsh-diary-memory/issues"
16
+ },
17
+ "engines": {
18
+ "node": ">=22.15",
19
+ "dsh": ">=0.2.1-rc.2 <0.3.0"
20
+ },
21
+ "files": [
22
+ "lib",
23
+ "src",
24
+ "locale",
25
+ "icon.svg",
26
+ "cordis.patch.yml",
27
+ "README.md",
28
+ "LICENSE"
29
+ ],
11
30
  "exports": {
12
- ".": { "types": "./lib/index.d.ts", "default": "./lib/index.js" },
31
+ "./client": {
32
+ "types": "./lib/client/index.d.ts",
33
+ "default": "./lib/client.js"
34
+ },
35
+ ".": {
36
+ "types": "./lib/index.d.ts",
37
+ "default": "./lib/index.js"
38
+ },
13
39
  "./compaction": "./lib/orchestrator.js",
14
40
  "./compaction/locale/*.json": "./locale/compaction/*.json",
15
41
  "./compaction/icon": "./icon.svg",
@@ -23,51 +49,122 @@
23
49
  "./package.json": "./package.json"
24
50
  },
25
51
  "scripts": {
26
- "build": "tsc -p tsconfig.json",
52
+ "build": "tsc -p tsconfig.json && node scripts/build-client.mjs",
27
53
  "check": "tsc -p tsconfig.json --noEmit",
28
- "test": "tsc -p tsconfig.json && node --test test/*.test.mjs",
54
+ "test": "npm run build && node --test test/*.test.mjs",
29
55
  "prepack": "npm run build"
30
56
  },
31
- "dependencies": { "better-sqlite3": "^12.4.1", "zod": "4.4.3" },
57
+ "dependencies": {
58
+ "better-sqlite3": "^12.4.1",
59
+ "zod": "4.4.3"
60
+ },
32
61
  "peerDependencies": {
33
62
  "@deepseek-ai/cordis": "~4.0.5",
34
- "@deepseek-ai/schemastery": "~3.18.5",
35
- "@deepseek-ai/dsh-agent": "0.2.1-rc.3",
36
- "@deepseek-ai/dsh-compaction": "0.2.1-rc.3",
37
- "@deepseek-ai/dsh-compaction-basic": "0.2.1-rc.3",
38
- "@deepseek-ai/dsh-llm": "0.2.1-rc.3",
39
- "@deepseek-ai/dsh-session": "0.2.1-rc.3",
40
- "@deepseek-ai/dsh-session-projection": "0.2.1-rc.3",
41
- "@deepseek-ai/dsh-tools": "0.2.1-rc.3"
63
+ "@deepseek-ai/dsh-agent": ">=0.2.1-rc.2 <0.3.0",
64
+ "@deepseek-ai/dsh-compaction": ">=0.2.1-rc.2 <0.3.0",
65
+ "@deepseek-ai/dsh-compaction-basic": ">=0.2.1-rc.2 <0.3.0",
66
+ "@deepseek-ai/dsh-llm": ">=0.2.1-rc.2 <0.3.0",
67
+ "@deepseek-ai/dsh-session": ">=0.2.1-rc.2 <0.3.0",
68
+ "@deepseek-ai/dsh-session-projection": ">=0.2.1-rc.2 <0.3.0",
69
+ "@deepseek-ai/dsh-settings": ">=0.2.1-rc.2 <0.3.0",
70
+ "@deepseek-ai/dsh-tools": ">=0.2.1-rc.2 <0.3.0",
71
+ "@deepseek-ai/schemastery": "~3.18.5"
42
72
  },
43
73
  "peerDependenciesMeta": {
44
- "@deepseek-ai/cordis": { "optional": true },
45
- "@deepseek-ai/schemastery": { "optional": true },
46
- "@deepseek-ai/dsh-agent": { "optional": true },
47
- "@deepseek-ai/dsh-compaction": { "optional": true },
48
- "@deepseek-ai/dsh-compaction-basic": { "optional": true },
49
- "@deepseek-ai/dsh-llm": { "optional": true },
50
- "@deepseek-ai/dsh-session": { "optional": true },
51
- "@deepseek-ai/dsh-session-projection": { "optional": true },
52
- "@deepseek-ai/dsh-tools": { "optional": true }
74
+ "@deepseek-ai/cordis": {
75
+ "optional": true
76
+ },
77
+ "@deepseek-ai/schemastery": {
78
+ "optional": true
79
+ },
80
+ "@deepseek-ai/dsh-agent": {
81
+ "optional": true
82
+ },
83
+ "@deepseek-ai/dsh-compaction": {
84
+ "optional": true
85
+ },
86
+ "@deepseek-ai/dsh-compaction-basic": {
87
+ "optional": true
88
+ },
89
+ "@deepseek-ai/dsh-llm": {
90
+ "optional": true
91
+ },
92
+ "@deepseek-ai/dsh-session": {
93
+ "optional": true
94
+ },
95
+ "@deepseek-ai/dsh-session-projection": {
96
+ "optional": true
97
+ },
98
+ "@deepseek-ai/dsh-tools": {
99
+ "optional": true
100
+ },
101
+ "@deepseek-ai/dsh-settings": {
102
+ "optional": true
103
+ }
53
104
  },
54
105
  "devDependencies": {
55
106
  "@deepseek-ai/cordis": "4.0.5",
56
- "@deepseek-ai/schemastery": "3.18.5",
107
+ "@deepseek-ai/cosmokit": "1.8.6",
57
108
  "@deepseek-ai/dsh-agent": "0.2.1-rc.3",
109
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-rc.3",
110
+ "@deepseek-ai/dsh-app-boot": "0.2.1-rc.3",
111
+ "@deepseek-ai/dsh-client-store": "0.2.1-rc.3",
112
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-rc.3",
113
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.3",
114
+ "@deepseek-ai/dsh-client-ui-settings": "0.2.1-rc.3",
115
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-rc.3",
58
116
  "@deepseek-ai/dsh-compaction": "0.2.1-rc.3",
59
117
  "@deepseek-ai/dsh-compaction-basic": "0.2.1-rc.3",
118
+ "@deepseek-ai/dsh-config-editor": "0.2.1-rc.3",
60
119
  "@deepseek-ai/dsh-llm": "0.2.1-rc.3",
61
120
  "@deepseek-ai/dsh-session": "0.2.1-rc.3",
62
121
  "@deepseek-ai/dsh-session-projection": "0.2.1-rc.3",
122
+ "@deepseek-ai/dsh-settings": "0.2.1-rc.3",
63
123
  "@deepseek-ai/dsh-token-meter": "0.2.1-rc.3",
64
124
  "@deepseek-ai/dsh-tools": "0.2.1-rc.3",
125
+ "@deepseek-ai/schemastery": "3.18.5",
126
+ "@shikijs/langs": "4.4.3",
65
127
  "@types/better-sqlite3": "^7.6.13",
66
128
  "@types/node": "^24.0.0",
129
+ "@types/react": "18.3.31",
130
+ "@types/react-dom": "18.3.7",
131
+ "anser": "2.3.5",
132
+ "clsx": "2.1.1",
133
+ "diff": "9.0.0",
134
+ "esbuild": "0.28.2",
135
+ "immer": "10.2.0",
136
+ "katex": "0.18.7",
137
+ "mdast-util-from-markdown": "2.1.0",
138
+ "mdast-util-gfm": "3.1.0",
139
+ "mdast-util-math": "3.0.0",
140
+ "micromark-core-commonmark": "2.0.4",
141
+ "micromark-extension-gfm": "3.0.0",
142
+ "micromark-extension-math": "3.1.0",
143
+ "micromark-factory-space": "2.1.0",
144
+ "micromark-util-character": "2.1.1",
145
+ "micromark-util-classify-character": "2.0.1",
146
+ "micromark-util-sanitize-uri": "2.0.1",
147
+ "micromark-util-symbol": "2.0.1",
148
+ "micromark-util-types": "2.0.3",
149
+ "react": "18.3.1",
150
+ "react-dom": "18.3.1",
151
+ "semver": "7.8.5",
152
+ "shiki": "4.4.3",
153
+ "simple-icons": "16.31.0",
67
154
  "typescript": "^5.9.3",
68
- "yaml": "^2.8.1"
155
+ "yaml": "^2.8.1",
156
+ "zustand": "5.0.16"
69
157
  },
70
158
  "dsh": {
71
- "bundle": { "patch": "./cordis.patch.yml" }
159
+ "client": {
160
+ "inject": [
161
+ "@deepseek-ai/dsh-client-ui-settings",
162
+ "@deepseek-ai/dsh-client-ui-renderer"
163
+ ],
164
+ "platform": "web"
165
+ },
166
+ "bundle": {
167
+ "patch": "./cordis.patch.yml"
168
+ }
72
169
  }
73
170
  }
@@ -1,5 +1,6 @@
1
1
  import { setTimeout as delay } from 'node:timers/promises'
2
2
  import type { ResolvedConfig } from './config.js'
3
+ import { stableParameters } from './model-parameters.js'
3
4
 
4
5
  interface BailianFailure {
5
6
  status?: number
@@ -38,7 +39,10 @@ export class BailianClient {
38
39
  this.fetch = fetchImpl
39
40
  this.signal = signal
40
41
  // Model names alone do not identify the vector space across endpoints/dimensions.
41
- this.embeddingKey = JSON.stringify([config.baseUrl, config.embeddingModel, config.embeddingDimensions])
42
+ const space: unknown[] = [config.baseUrl, config.embeddingModel, config.embeddingDimensions]
43
+ // Keep the original vector-space key when no extra parameters were chosen.
44
+ if (Object.keys(config.embeddingParameters).length) space.push(stableParameters(config.embeddingParameters))
45
+ this.embeddingKey = JSON.stringify(space)
42
46
  }
43
47
 
44
48
  async request(path: string, body: unknown, callerSignal?: AbortSignal): Promise<unknown> {
@@ -95,7 +99,7 @@ export class BailianClient {
95
99
  const output = await this.request('/api/v1/services/embeddings/text-embedding/text-embedding', {
96
100
  model: embeddingModel,
97
101
  input: { texts: [text] },
98
- parameters: { text_type: textType, dimension: embeddingDimensions },
102
+ parameters: { ...this.config.embeddingParameters, text_type: textType, dimension: embeddingDimensions },
99
103
  }, signal) as { embeddings?: { text_index?: unknown; embedding?: unknown }[] }
100
104
  if (output.embeddings?.length !== 1 || output.embeddings[0].text_index !== 0) throw new BailianError('百炼 embedding 的 text_index 无效')
101
105
  return validateVector(output.embeddings[0].embedding, embeddingDimensions)
@@ -108,7 +112,7 @@ export class BailianClient {
108
112
  const output = await this.request('/api/v1/services/rerank/text-rerank/text-rerank', {
109
113
  model: this.config.rerankModel,
110
114
  input: { query, documents },
111
- parameters: { top_n: topN, return_documents: false },
115
+ parameters: { return_documents: false, ...this.config.rerankParameters, top_n: topN },
112
116
  }, signal) as { results?: RerankResult[] }
113
117
  if (!Array.isArray(output.results) || output.results.length !== topN) throw new BailianError('百炼 rerank 结果数量无效')
114
118
  const seen = new Set()
@@ -0,0 +1,81 @@
1
+ import { SettingsFormModel, settingsTextField } from '@deepseek-ai/dsh-client-ui-primitives'
2
+ import type { SettingsFieldSpec, SettingsFieldState, SettingsFormScope, SettingsFormShell } from '@deepseek-ai/dsh-client-ui-primitives'
3
+ import type { SnapshotStore } from '@deepseek-ai/dsh-client-store'
4
+ import type { DiaryConfig } from '../config.js'
5
+ import { validateModelParameters } from '../model-parameters.js'
6
+
7
+ export const editableFields = ['apiKey', 'baseUrl', 'embeddingModel', 'embeddingDimensions', 'embeddingParameters', 'rerankModel', 'rerankParameters', 'candidateCount', 'recallCount', 'compressionRounds', 'retainRounds', 'autoRecall'] as const
8
+ export type EditableField = typeof editableFields[number]
9
+ export type FormValues = Partial<Pick<DiaryConfig, EditableField>>
10
+ export interface DiarySettingsState extends SettingsFormShell {
11
+ fields: Record<EditableField, SettingsFieldState>
12
+ keyConfigured: boolean
13
+ error: string | null
14
+ }
15
+
16
+ function numberField(field: string, min: number, max: number): SettingsFieldSpec {
17
+ return {
18
+ field, format: value => typeof value === 'number' ? String(value) : '',
19
+ parse: text => !text.trim() ? { kind: 'clear' }
20
+ : Number.isSafeInteger(Number(text)) && Number(text) >= min && Number(text) <= max ? { kind: 'set', value: Number(text) } : undefined,
21
+ }
22
+ }
23
+ function parametersField(field: string, kind: 'embedding' | 'rerank'): SettingsFieldSpec {
24
+ return {
25
+ field, format: value => value && typeof value === 'object' ? JSON.stringify(value, null, 2) : '{}',
26
+ parse: text => {
27
+ if (!text.trim()) return { kind: 'clear' }
28
+ try { return { kind: 'set', value: validateModelParameters(JSON.parse(text), kind) } } catch { return undefined }
29
+ },
30
+ }
31
+ }
32
+ const specs: SettingsFieldSpec[] = [
33
+ ...['apiKey', 'baseUrl', 'embeddingModel', 'rerankModel'].map(settingsTextField),
34
+ numberField('embeddingDimensions', 1, 4096), numberField('candidateCount', 1, 100), numberField('recallCount', 1, 100),
35
+ numberField('compressionRounds', 2, 1000000), numberField('retainRounds', 1, 1000000),
36
+ parametersField('embeddingParameters', 'embedding'), parametersField('rerankParameters', 'rerank'),
37
+ { field: 'autoRecall', format: value => String(value ?? true), parse: text => text === 'true' || text === 'false' ? { kind: 'set', value: text === 'true' } : undefined },
38
+ ]
39
+
40
+ /** Native staged form: only edited paths are sent, preserving undisclosed secrets. */
41
+ export class DiarySettingsController {
42
+ readonly form: SettingsFormModel<FormValues>
43
+ readonly store: SnapshotStore<DiarySettingsState>
44
+
45
+ constructor(private readonly scope: SettingsFormScope<FormValues>, private readonly keyConfigured: () => boolean = () => false) {
46
+ this.form = new SettingsFormModel(scope, specs)
47
+ this.store = this.form.bind(() => this.projection())
48
+ }
49
+
50
+ private projection(): DiarySettingsState {
51
+ const fields = Object.fromEntries(editableFields.map(field => [field, this.form.field(field)])) as DiarySettingsState['fields']
52
+ const base = this.scope.getSnapshot().base as FormValues | undefined
53
+ const number = (field: 'compressionRounds' | 'retainRounds' | 'recallCount' | 'candidateCount', fallback: number) => fields[field].text.trim() ? Number(fields[field].text) : base?.[field] ?? fallback
54
+ let error: string | null = null
55
+ if (number('compressionRounds', 20) <= number('retainRounds', 2)) error = '压缩轮次必须大于保留轮次。'
56
+ if (number('recallCount', 6) > number('candidateCount', 30)) error = '召回条数不能大于候选数量。'
57
+ for (const kind of ['embedding', 'rerank'] as const) {
58
+ const text = fields[`${kind}Parameters`].text.trim()
59
+ try { validateModelParameters(JSON.parse(text || '{}'), kind) }
60
+ catch (failure) { error = failure instanceof SyntaxError ? `${kind} 参数需要合法的 JSON 对象。` : (failure as Error).message }
61
+ }
62
+ const endpoint = fields.baseUrl.text.trim()
63
+ try {
64
+ if (endpoint) {
65
+ const url = new URL(endpoint)
66
+ if (url.username || url.password || url.search || url.hash || url.pathname !== '/' || url.protocol !== 'https:' && !(url.protocol === 'http:' && ['localhost', '127.0.0.1', '[::1]'].includes(url.hostname))) throw new Error()
67
+ }
68
+ } catch { fields.baseUrl.invalid = true; error = '百炼端点需要 HTTPS origin,例如 https://dashscope.aliyuncs.com。' }
69
+ for (const field of ['embeddingModel', 'rerankModel'] as const) {
70
+ if (fields[field].text.trim().length > 200) { fields[field].invalid = true; error = '模型名不能超过 200 字符。' }
71
+ }
72
+ const shell = this.form.shell()
73
+ return { ...shell, invalid: shell.invalid || Boolean(error) || !shell.writable, fields, keyConfigured: this.keyConfigured(), error }
74
+ }
75
+
76
+ async save(): Promise<void> { if (!this.projection().invalid) await this.form.save() }
77
+ inject() {
78
+ return { hooks: { diarySettings: this.store }, ...this.form.actions(), save: () => { void this.save() } }
79
+ }
80
+ dispose(): void { this.form.dispose() }
81
+ }
@@ -0,0 +1,21 @@
1
+ import type { Context } from '@deepseek-ai/cordis'
2
+ import type {} from '@deepseek-ai/dsh-client-ui-settings/client'
3
+ import type {} from '@deepseek-ai/dsh-client-ui-renderer/client'
4
+ import { DiarySettingsController } from './controller.js'
5
+ import type { FormValues } from './controller.js'
6
+ import { DiarySettingsPage } from './page.js'
7
+
8
+ export { DiarySettingsController } from './controller.js'
9
+ export { DiarySettingsPage } from './page.js'
10
+ export const inject = ['slots', 'configForms']
11
+
12
+ export function apply(ctx: Context): void {
13
+ const controller = new DiarySettingsController(ctx.configForms.get<FormValues>('diary-memory'), () => {
14
+ const entry = ctx.configForms.describe().getSnapshot().view?.namespaces.find(item => item.ns === 'diary-memory')
15
+ return entry?.secrets?.some(item => item.path.length === 1 && item.path[0] === 'apiKey' && item.set) ?? false
16
+ })
17
+ ctx.effect(() => () => controller.dispose(), 'diary-memory: settings form')
18
+ ctx.effect(() => ctx.configForms.whileServed(['diary-memory'], () => ctx.slots.inject('settings.section', () => ctx.slots.register({
19
+ name: 'settings.section', id: 'diary-memory', order: 65, label: '陪伴日记', inject: () => controller.inject(),
20
+ }, DiarySettingsPage))), 'diary-memory: settings page')
21
+ }
@@ -0,0 +1,68 @@
1
+ import { SettingsForm, SettingsSecretField, SettingsValueField, Switch } from '@deepseek-ai/dsh-client-ui-primitives'
2
+ import type { CSSProperties, ReactNode } from 'react'
3
+ import type { InjectFace } from '@deepseek-ai/dsh-client-ui-slots'
4
+ import type { DiarySettingsController, EditableField } from './controller.js'
5
+
6
+ type PageProps = InjectFace<ReturnType<DiarySettingsController['inject']>>
7
+ const card: CSSProperties = { border: '1px solid var(--dsw-alias-border-l2)', borderRadius: 14, padding: '16px 20px', marginTop: 16, minWidth: 0 }
8
+ const hint: CSSProperties = { fontSize: 12, lineHeight: 1.6, color: 'var(--dsw-alias-label-tertiary)', margin: '8px 0 0' }
9
+ const textarea: CSSProperties = { display: 'block', width: '100%', boxSizing: 'border-box', minHeight: 110, padding: 12, borderRadius: 8, border: '1px solid var(--dsw-alias-border-l2)', background: 'var(--dsw-alias-bg-layer-3)', color: 'var(--dsw-alias-label-primary)', fontFamily: 'var(--dsw-font-mono, monospace)', fontSize: 12, lineHeight: 1.6, resize: 'vertical' }
10
+
11
+ function Group({ title, children }: { title: string; children: ReactNode }) {
12
+ return <section aria-label={title} style={card}><h3 style={{ fontSize: 14, margin: '0 0 8px' }}>{title}</h3>{children}</section>
13
+ }
14
+
15
+ export function DiarySettingsPage(props: PageProps) {
16
+ const state = props.useDiarySettings(value => value)
17
+ const disabled = !state.writable || state.saving
18
+ const valueField = (field: EditableField, label: string, description: string, numeric = false) => <SettingsValueField
19
+ key={field} id={`diary-${field}`} label={label} hint={description} numeric={numeric}
20
+ {...state.fields[field]} disabled={disabled} overriddenLabel="已自定义" resetLabel="恢复默认"
21
+ invalidLabel={numeric ? '请填写范围内的整数。' : '请检查填写的内容。'}
22
+ onEdit={text => props.edit(field, text)} onReset={() => props.resetField(field)}
23
+ />
24
+ const parameters = (field: 'embeddingParameters' | 'rerankParameters', description: string) => <div style={{ padding: '12px 0' }}>
25
+ <label htmlFor={`diary-${field}`} style={{ display: 'block', fontSize: 13, fontWeight: 500, marginBottom: 8 }}>额外参数(JSON)</label>
26
+ <textarea id={`diary-${field}`} aria-describedby={`diary-${field}-hint`} aria-invalid={state.fields[field].invalid || undefined}
27
+ value={state.fields[field].text} onChange={event => props.edit(field, event.target.value)} disabled={disabled}
28
+ spellCheck={false} rows={5} style={textarea} />
29
+ <p id={`diary-${field}-hint`} style={hint}>{description}</p>
30
+ </div>
31
+ return <div data-diary-settings style={{ color: 'var(--dsw-alias-label-primary)', paddingBottom: 16 }}>
32
+ <h2 style={{ fontSize: 18, margin: '0 0 8px' }}>陪伴日记</h2>
33
+ <p style={hint}>设置百炼连接、回忆模型与日记压缩方式。填写后点击保存。</p>
34
+ <SettingsForm state={state} onSave={props.save} onDiscard={props.discard} labels={{
35
+ unavailable: '正在加载配置;若持续不可用,请检查陪伴日记插件是否已启用。', readOnly: '当前配置只读。',
36
+ saveFailed: '保存失败或配置已在其他窗口修改。输入已保留,请检查后重试。', save: '保存配置', saving: '正在保存…',
37
+ }}>
38
+ <Group title="百炼连接">
39
+ <SettingsSecretField id="diary-apiKey" label="百炼 API Key" hint="密钥不会回显;留空保留已保存的 Key。也可通过 DSH 的环境变量提供。"
40
+ text={state.fields.apiKey.text} configured={state.keyConfigured} stateLabel={state.keyConfigured ? '已保存(不回显)' : '尚未保存'}
41
+ disabled={disabled} onEdit={text => props.edit('apiKey', text)} />
42
+ {valueField('baseUrl', '百炼 API 地址', '需要与 API Key 的地域一致,例如 https://dashscope.aliyuncs.com。')}
43
+ </Group>
44
+ <Group title="Embedding · 向量召回">
45
+ {valueField('embeddingModel', 'Embedding 模型名', '可手动填写百炼支持的文本向量模型,例如 text-embedding-v4。')}
46
+ {valueField('embeddingDimensions', '向量维度', '1–4096;请填写所选模型支持的维度。', true)}
47
+ {parameters('embeddingParameters', '填写该模型支持的 parameters,例如 {"output_type":"dense"}。dimension 在上方填写,text_type 由入库与召回自动设置。')}
48
+ <p style={hint}>更改 Embedding 模型、维度或参数后,旧向量不会参与新配置的检索。</p>
49
+ </Group>
50
+ <Group title="Rerank · 回忆排序">
51
+ {valueField('rerankModel', 'Rerank 模型名', '可手动填写百炼支持的重排模型,例如 gte-rerank-v2。')}
52
+ {valueField('candidateCount', '候选数量', '1–100;先由向量检索选出这些日记交给 Rerank。', true)}
53
+ {valueField('recallCount', '召回条数(top_n)', '1–100,且不大于候选数量。', true)}
54
+ {parameters('rerankParameters', '填写该模型支持的 parameters,例如 {"return_documents":false}。top_n 由上方的召回条数设置。')}
55
+ </Group>
56
+ <Group title="日记与陪伴">
57
+ {valueField('compressionRounds', '触发压缩的轮次', '完成多少轮后保存日记并安全压缩;须大于保留轮次。', true)}
58
+ {valueField('retainRounds', '保留最近轮次', '至少保留最近多少个用户输入及后续消息。', true)}
59
+ <div style={{ display: 'flex', gap: 10, justifyContent: 'space-between', alignItems: 'center', padding: '12px 0', fontSize: 13 }}>
60
+ <span>自动回想相关日记</span>
61
+ <Switch label="自动回想相关日记" checked={state.fields.autoRecall.text === 'true'} disabled={disabled}
62
+ onChange={value => props.edit('autoRecall', String(value))} />
63
+ </div>
64
+ </Group>
65
+ {state.error ? <p role="alert" style={{ ...hint, color: 'var(--dsw-alias-label-error)' }}>{state.error}</p> : null}
66
+ </SettingsForm>
67
+ </div>
68
+ }