@lemoncat7/dsh-partner 2.2.0 → 2.3.0
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/README.md +4 -0
- package/docs/direct-channels.md +17 -0
- package/docs/memory-quality.md +26 -0
- package/docs/releases/2.3.0.md +29 -0
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +12 -9
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api/features/memory-layers-api.d.ts.map +1 -1
- package/lib/api/features/memory-layers-api.js +10 -1
- package/lib/api/features/memory-layers-api.js.map +1 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +8 -2
- package/lib/api.js.map +1 -1
- package/lib/channels/direct/discovery.d.ts.map +1 -1
- package/lib/channels/direct/discovery.js +9 -4
- package/lib/channels/direct/discovery.js.map +1 -1
- package/lib/channels/direct/dispatcher.d.ts +16 -0
- package/lib/channels/direct/dispatcher.d.ts.map +1 -0
- package/lib/channels/direct/dispatcher.js +46 -0
- package/lib/channels/direct/dispatcher.js.map +1 -0
- package/lib/channels/direct/matrix-timeline.d.ts +4 -0
- package/lib/channels/direct/matrix-timeline.d.ts.map +1 -0
- package/lib/channels/direct/matrix-timeline.js +49 -0
- package/lib/channels/direct/matrix-timeline.js.map +1 -0
- package/lib/channels/direct/retry-policy.d.ts +3 -0
- package/lib/channels/direct/retry-policy.d.ts.map +1 -0
- package/lib/channels/direct/retry-policy.js +9 -0
- package/lib/channels/direct/retry-policy.js.map +1 -0
- package/lib/channels/direct/transport.d.ts.map +1 -1
- package/lib/channels/direct/transport.js +9 -3
- package/lib/channels/direct/transport.js.map +1 -1
- package/lib/channels/manager.d.ts +2 -1
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +104 -54
- package/lib/channels/manager.js.map +1 -1
- package/lib/client-api.d.ts +1 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client.js +2012 -1915
- package/lib/client.js.map +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +24 -4
- package/lib/index.js.map +1 -1
- package/lib/memory-domain.d.ts +3 -0
- package/lib/memory-domain.d.ts.map +1 -1
- package/lib/memory-journal.d.ts +3 -0
- package/lib/memory-journal.d.ts.map +1 -1
- package/lib/memory-journal.js +32 -3
- package/lib/memory-journal.js.map +1 -1
- package/lib/memory-quality.d.ts +2 -0
- package/lib/memory-quality.d.ts.map +1 -1
- package/lib/memory-quality.js +8 -0
- package/lib/memory-quality.js.map +1 -1
- package/lib/memory-reflection.d.ts +1 -1
- package/lib/memory-reflection.d.ts.map +1 -1
- package/lib/memory-reflection.js +26 -13
- package/lib/memory-reflection.js.map +1 -1
- package/lib/memory-scope-migration.d.ts +4 -0
- package/lib/memory-scope-migration.d.ts.map +1 -0
- package/lib/memory-scope-migration.js +48 -0
- package/lib/memory-scope-migration.js.map +1 -0
- package/lib/memory-scope.d.ts +11 -0
- package/lib/memory-scope.d.ts.map +1 -0
- package/lib/memory-scope.js +7 -0
- package/lib/memory-scope.js.map +1 -0
- package/lib/memory-store.d.ts +9 -0
- package/lib/memory-store.d.ts.map +1 -1
- package/lib/memory-store.js +52 -3
- package/lib/memory-store.js.map +1 -1
- package/lib/persona/domain.d.ts +6 -0
- package/lib/persona/domain.d.ts.map +1 -0
- package/lib/persona/domain.js +44 -0
- package/lib/persona/domain.js.map +1 -0
- package/lib/persona/migration.d.ts +4 -0
- package/lib/persona/migration.d.ts.map +1 -0
- package/lib/persona/migration.js +22 -0
- package/lib/persona/migration.js.map +1 -0
- package/lib/persona/service.d.ts +20 -0
- package/lib/persona/service.d.ts.map +1 -0
- package/lib/persona/service.js +69 -0
- package/lib/persona/service.js.map +1 -0
- package/lib/persona/store.d.ts +11 -0
- package/lib/persona/store.d.ts.map +1 -0
- package/lib/persona/store.js +153 -0
- package/lib/persona/store.js.map +1 -0
- package/lib/persona/types.d.ts +41 -0
- package/lib/persona/types.d.ts.map +1 -0
- package/lib/persona/types.js +2 -0
- package/lib/persona/types.js.map +1 -0
- package/lib/profile-domain.d.ts.map +1 -1
- package/lib/profile-domain.js +2 -1
- package/lib/profile-domain.js.map +1 -1
- package/lib/ui/memory/memory-library.d.ts +2 -1
- package/lib/ui/memory/memory-library.d.ts.map +1 -1
- package/lib/ui/memory/memory-library.js +7 -6
- package/lib/ui/memory/memory-library.js.map +1 -1
- package/lib/ui/memory/memory-panel.d.ts.map +1 -1
- package/lib/ui/memory/memory-panel.js +10 -3
- package/lib/ui/memory/memory-panel.js.map +1 -1
- package/lib/ui/memory/persona-view.d.ts +9 -0
- package/lib/ui/memory/persona-view.d.ts.map +1 -0
- package/lib/ui/memory/persona-view.js +43 -0
- package/lib/ui/memory/persona-view.js.map +1 -0
- package/lib/ui/memory/types.d.ts +1 -1
- package/lib/ui/memory/types.d.ts.map +1 -1
- package/lib/ui/workspace-components.d.ts.map +1 -1
- package/lib/ui/workspace-components.js +9 -4
- package/lib/ui/workspace-components.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createUserMessage } from '@deepseek-ai/dsh-llm';
|
|
2
|
+
import { memoryFinishError } from '../memory-errors.js';
|
|
3
|
+
import { PERSONA_SYSTEM, parsePersona } from './domain.js';
|
|
4
|
+
/** Runs inside the existing sequential memory worker, never on the reply path. */
|
|
5
|
+
export class PersonaService {
|
|
6
|
+
ctx;
|
|
7
|
+
store;
|
|
8
|
+
closed = false;
|
|
9
|
+
controllers = new Set();
|
|
10
|
+
constructor(ctx, store) {
|
|
11
|
+
this.ctx = ctx;
|
|
12
|
+
this.store = store;
|
|
13
|
+
}
|
|
14
|
+
close() {
|
|
15
|
+
this.closed = true;
|
|
16
|
+
for (const controller of this.controllers)
|
|
17
|
+
controller.abort();
|
|
18
|
+
}
|
|
19
|
+
async process(companion, scopeId) {
|
|
20
|
+
if (this.closed || !companion.automation.memory.enabled)
|
|
21
|
+
return;
|
|
22
|
+
const job = await this.store.claimPersona(companion.id, scopeId);
|
|
23
|
+
if (!job)
|
|
24
|
+
return;
|
|
25
|
+
const controller = new AbortController();
|
|
26
|
+
this.controllers.add(controller);
|
|
27
|
+
const timeout = setTimeout(() => controller.abort(), 90_000);
|
|
28
|
+
try {
|
|
29
|
+
if (this.closed)
|
|
30
|
+
throw new Error('服务停止,画像任务保留');
|
|
31
|
+
const selection = {
|
|
32
|
+
...this.ctx.agentDefaultModel.currentSelection(),
|
|
33
|
+
...(companion.provider ? { provider: companion.provider } : {}),
|
|
34
|
+
...(companion.model ? { model: companion.model } : {}),
|
|
35
|
+
...(companion.automation.memory.provider ? { provider: companion.automation.memory.provider } : {}),
|
|
36
|
+
...(companion.automation.memory.model ? { model: companion.automation.memory.model } : {}),
|
|
37
|
+
};
|
|
38
|
+
let output = '';
|
|
39
|
+
for await (const chunk of this.ctx.llm.stream({
|
|
40
|
+
...selection, system: PERSONA_SYSTEM, temperature: 0.1, maxTokens: 3500, signal: controller.signal,
|
|
41
|
+
messages: [createUserMessage({ content: [{ type: 'text', text: JSON.stringify({
|
|
42
|
+
sources: job.sources, previous: job.previous.map(({ topic, basis, text }) => ({ topic, basis, text })),
|
|
43
|
+
corrections: job.corrections,
|
|
44
|
+
}) }], source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴综合画像' } })],
|
|
45
|
+
})) {
|
|
46
|
+
if (chunk.type === 'text-delta')
|
|
47
|
+
output += chunk.text;
|
|
48
|
+
if (output.length > 24_000)
|
|
49
|
+
throw new Error('画像输出超出限制');
|
|
50
|
+
if (chunk.type === 'finish' && chunk.reason.kind !== 'stop')
|
|
51
|
+
throw new Error(memoryFinishError(chunk.reason));
|
|
52
|
+
}
|
|
53
|
+
if (controller.signal.aborted)
|
|
54
|
+
throw new Error('画像生成中断,将自动重试');
|
|
55
|
+
const paragraphs = parsePersona(output, job.sources);
|
|
56
|
+
if (!paragraphs.length && job.previous.length)
|
|
57
|
+
throw new Error('未生成可替换的画像,保留现有理解并稍后重试');
|
|
58
|
+
await this.store.finishPersona(job, paragraphs);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
await this.store.failPersona(job, error instanceof Error ? error.message : String(error));
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
clearTimeout(timeout);
|
|
65
|
+
this.controllers.delete(controller);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/persona/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAC,cAAc,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AAIxD,kFAAkF;AAClF,MAAM,OAAO,cAAc;IAGI;IAAsC;IAF3D,MAAM,GAAG,KAAK,CAAA;IACL,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAA;IACzD,YAA6B,GAAmB,EAAmB,KAAyB;QAA/D,QAAG,GAAH,GAAG,CAAgB;QAAmB,UAAK,GAAL,KAAK,CAAoB;IAAG,CAAC;IAChG,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW;YAAE,UAAU,CAAC,KAAK,EAAE,CAAA;IAC/D,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,SAAoB,EAAE,OAAe;QACjD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,OAAM;QAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAChE,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAA;QAC5D,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;YAC/C,MAAM,SAAS,GAAG;gBAChB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;gBAChD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACzF,CAAA;YACD,IAAI,MAAM,GAAG,EAAE,CAAA;YACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC5C,GAAG,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;gBAClG,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCAC1E,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,CAAC,CAAC;oCAC9F,WAAW,EAAE,GAAG,CAAC,WAAW;iCAC7B,CAAC,EAAC,CAAC,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAC,EAAC,CAAC,CAAC;aACvG,CAAC,EAAE,CAAC;gBACH,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAA;gBACrD,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;gBACvD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAC/G,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;YAC9D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACpD,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;YACvF,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3F,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
import type { PersonaJob, PersonaParagraph, PersonaSource, PersonaView } from './types.js';
|
|
3
|
+
export declare function initializePersona(db: DatabaseSync): void;
|
|
4
|
+
/** Bounded user evidence only: never derive a user profile from assistant prose. */
|
|
5
|
+
export declare function personaSources(db: DatabaseSync, companionId: string, scopeId: string, now?: number): PersonaSource[];
|
|
6
|
+
export declare function readPersona(db: DatabaseSync, companionId: string, scopeId: string, now?: number, sources?: PersonaSource[]): PersonaView;
|
|
7
|
+
export declare function claimPersona(db: DatabaseSync, companionId: string, scopeId: string, now?: number): PersonaJob | undefined;
|
|
8
|
+
export declare function finishPersona(db: DatabaseSync, job: PersonaJob, paragraphs: PersonaParagraph[], now?: number): void;
|
|
9
|
+
export declare function failPersona(db: DatabaseSync, job: PersonaJob, error: string, now?: number): void;
|
|
10
|
+
export declare function requestPersona(db: DatabaseSync, scopeId: string, version: string, companionId: string, paragraphId?: string, correction?: string): void;
|
|
11
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/persona/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAoB,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAG3G,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CASxD;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,aAAa,EAAE,CA2BxH;AAmBD,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAW,EAAE,OAAO,kBAA2C,GAAG,WAAW,CAkBnK;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAW,GAAG,UAAU,GAAG,SAAS,CAO3H;AAeD,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,GAAG,SAAW,GAAG,IAAI,CAerH;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAW,GAAG,IAAI,CAMlG;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,SAAG,GAAG,IAAI,CAajJ"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { personaHash } from './domain.js';
|
|
3
|
+
const UPDATE_INTERVAL = 10 * 60_000;
|
|
4
|
+
export function initializePersona(db) {
|
|
5
|
+
db.exec(`CREATE TABLE IF NOT EXISTS persona_state (
|
|
6
|
+
scope_id TEXT PRIMARY KEY, source_hash TEXT NOT NULL DEFAULT '', payload TEXT NOT NULL DEFAULT '[]',
|
|
7
|
+
updated_at INTEGER NOT NULL DEFAULT 0, attempts INTEGER NOT NULL DEFAULT 0, next_at INTEGER NOT NULL DEFAULT 0,
|
|
8
|
+
lease_token TEXT, lease_until INTEGER NOT NULL DEFAULT 0, requested INTEGER NOT NULL DEFAULT 0,
|
|
9
|
+
corrections TEXT NOT NULL DEFAULT '[]', revision INTEGER NOT NULL DEFAULT 0, error TEXT NOT NULL DEFAULT ''
|
|
10
|
+
); CREATE TABLE IF NOT EXISTS persona_versions (
|
|
11
|
+
id INTEGER PRIMARY KEY, scope_id TEXT NOT NULL, payload TEXT NOT NULL, updated_at INTEGER NOT NULL
|
|
12
|
+
); CREATE INDEX IF NOT EXISTS persona_versions_scope ON persona_versions(scope_id, id);`);
|
|
13
|
+
}
|
|
14
|
+
/** Bounded user evidence only: never derive a user profile from assistant prose. */
|
|
15
|
+
export function personaSources(db, companionId, scopeId, now = Date.now()) {
|
|
16
|
+
const sources = [];
|
|
17
|
+
const memories = db.prepare(`SELECT * FROM memories WHERE companion_id=? AND scope_id=? AND status='active'
|
|
18
|
+
AND kind IN ('profile','preference','relationship') AND (expires_at IS NULL OR expires_at>?)
|
|
19
|
+
ORDER BY locked DESC, updated_at DESC, id LIMIT 24`).all(companionId, scopeId, now);
|
|
20
|
+
for (const row of memories) {
|
|
21
|
+
const evidence = JSON.parse(String(row.evidence_json)).slice(-2);
|
|
22
|
+
if (!evidence.length)
|
|
23
|
+
continue;
|
|
24
|
+
const text = `${String(row.subject)}:${String(row.content)}\n用户依据:${evidence.map(item => item.excerpt).join(';')}`.slice(0, 350);
|
|
25
|
+
sources.push({ id: `memory:${String(row.id)}`, kind: 'memory', text, at: Number(row.updated_at),
|
|
26
|
+
signature: personaHash([row.content, row.subject, row.locked, row.evidence_json]), turnIds: evidence.map(item => item.turnId) });
|
|
27
|
+
}
|
|
28
|
+
const turns = db.prepare(`SELECT id, at, substr(json_extract(turn_json,'$.user'),1,450) AS user FROM memory_jobs
|
|
29
|
+
WHERE scope_id=? AND length(trim(json_extract(turn_json,'$.user')))>=10 ORDER BY at DESC, id DESC LIMIT 20`).all(scopeId);
|
|
30
|
+
for (const row of turns) {
|
|
31
|
+
const text = String(row.user);
|
|
32
|
+
sources.push({ id: `turn:${String(row.id)}`, kind: 'turn', text, at: Number(row.at), signature: personaHash(text), turnIds: [String(row.id)] });
|
|
33
|
+
}
|
|
34
|
+
// Preserve still-valid older evidence; a moving recent-message window is not forgetting.
|
|
35
|
+
const saved = JSON.parse(String(rowFor(db, scopeId)?.payload ?? '[]'));
|
|
36
|
+
const ids = new Set(sources.map(source => source.id));
|
|
37
|
+
for (const source of saved.flatMap(item => item.evidence)) {
|
|
38
|
+
if (!ids.has(source.id) && evidenceCurrent(db, companionId, scopeId, source, now)) {
|
|
39
|
+
sources.push(source);
|
|
40
|
+
ids.add(source.id);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return sources;
|
|
44
|
+
}
|
|
45
|
+
function evidenceCurrent(db, companionId, scopeId, source, now) {
|
|
46
|
+
if (source.kind === 'memory') {
|
|
47
|
+
const row = db.prepare("SELECT * FROM memories WHERE id=? AND companion_id=? AND scope_id=? AND status='active' AND (expires_at IS NULL OR expires_at>?)")
|
|
48
|
+
.get(source.id.slice('memory:'.length), companionId, scopeId, now);
|
|
49
|
+
return !!row && personaHash([row.content, row.subject, row.locked, row.evidence_json]) === source.signature;
|
|
50
|
+
}
|
|
51
|
+
const row = db.prepare("SELECT substr(json_extract(turn_json,'$.user'),1,450) AS user FROM memory_jobs WHERE id=? AND scope_id=?")
|
|
52
|
+
.get(source.id.slice('turn:'.length), scopeId);
|
|
53
|
+
return !!row && personaHash(String(row.user)) === source.signature;
|
|
54
|
+
}
|
|
55
|
+
function rowFor(db, scopeId) {
|
|
56
|
+
return db.prepare('SELECT * FROM persona_state WHERE scope_id=?').get(scopeId);
|
|
57
|
+
}
|
|
58
|
+
// Regenerate once when the synthesis contract changes, even without new conversation.
|
|
59
|
+
const sourceHash = (sources) => personaHash(['person-centered-v2', sources.map(item => [item.id, item.signature])]);
|
|
60
|
+
export function readPersona(db, companionId, scopeId, now = Date.now(), sources = personaSources(db, companionId, scopeId, now)) {
|
|
61
|
+
const row = rowFor(db, scopeId);
|
|
62
|
+
const hash = sourceHash(sources);
|
|
63
|
+
const saved = JSON.parse(String(row?.payload ?? '[]'));
|
|
64
|
+
const corrections = JSON.parse(String(row?.corrections ?? '[]'));
|
|
65
|
+
const current = new Map(sources.map(source => [source.id, source.signature]));
|
|
66
|
+
// Deleted, corrected or expired evidence stops being injected immediately.
|
|
67
|
+
const paragraphs = saved.filter(item => !corrections.some(c => c.id === item.id)
|
|
68
|
+
&& item.evidence.every(source => current.get(source.id) === source.signature));
|
|
69
|
+
const stale = row?.source_hash !== hash || paragraphs.length !== saved.length;
|
|
70
|
+
const enough = sources.some(item => item.kind === 'memory') || sources.length >= 3;
|
|
71
|
+
const status = Number(row?.lease_until) > now ? 'processing'
|
|
72
|
+
: Number(row?.attempts) > 0 ? 'retrying' : !enough ? 'waiting'
|
|
73
|
+
: stale || Boolean(row?.requested) ? 'pending' : 'ready';
|
|
74
|
+
return { status, paragraphs, stale, version: personaHash([row?.revision ?? 0, paragraphs]),
|
|
75
|
+
...(Number(row?.updated_at) > 0 ? { updatedAt: Number(row?.updated_at) } : {}),
|
|
76
|
+
...(Number(row?.next_at) > 0 ? { nextAt: Number(row?.next_at) } : {}),
|
|
77
|
+
...(row?.error ? { error: String(row.error) } : {}) };
|
|
78
|
+
}
|
|
79
|
+
export function claimPersona(db, companionId, scopeId, now = Date.now()) {
|
|
80
|
+
db.exec('BEGIN IMMEDIATE');
|
|
81
|
+
try {
|
|
82
|
+
const job = claimWithinTransaction(db, companionId, scopeId, now);
|
|
83
|
+
db.exec('COMMIT');
|
|
84
|
+
return job;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
db.exec('ROLLBACK');
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function claimWithinTransaction(db, companionId, scopeId, now) {
|
|
92
|
+
const sources = personaSources(db, companionId, scopeId, now);
|
|
93
|
+
if (!sources.some(item => item.kind === 'memory') && sources.length < 3)
|
|
94
|
+
return undefined;
|
|
95
|
+
db.prepare('INSERT OR IGNORE INTO persona_state(scope_id) VALUES (?)').run(scopeId);
|
|
96
|
+
const row = rowFor(db, scopeId);
|
|
97
|
+
const hash = sourceHash(sources);
|
|
98
|
+
if (Number(row.lease_until) > now || Number(row.next_at) > now || (row.source_hash === hash && !row.requested))
|
|
99
|
+
return undefined;
|
|
100
|
+
const token = randomUUID();
|
|
101
|
+
db.prepare('UPDATE persona_state SET lease_token=?,lease_until=? WHERE scope_id=?').run(token, now + 3 * 60_000, scopeId);
|
|
102
|
+
return { companionId, scopeId, token, sourceHash: hash, sources, previous: readPersona(db, companionId, scopeId, now, sources).paragraphs,
|
|
103
|
+
corrections: JSON.parse(String(row.corrections)) };
|
|
104
|
+
}
|
|
105
|
+
export function finishPersona(db, job, paragraphs, now = Date.now()) {
|
|
106
|
+
db.exec('BEGIN IMMEDIATE');
|
|
107
|
+
try {
|
|
108
|
+
const row = rowFor(db, job.scopeId);
|
|
109
|
+
if (row?.lease_token !== job.token)
|
|
110
|
+
throw new Error('画像任务已失效,将以最新请求为准');
|
|
111
|
+
const latest = personaSources(db, job.companionId, job.scopeId, now);
|
|
112
|
+
const current = new Map(latest.map(source => [source.id, source.signature]));
|
|
113
|
+
if (paragraphs.some(item => item.evidence.some(source => current.get(source.id) !== source.signature)))
|
|
114
|
+
throw new Error('画像依据已更新,将自动重试');
|
|
115
|
+
if (Number(row.updated_at) > 0)
|
|
116
|
+
db.prepare('INSERT INTO persona_versions(scope_id,payload,updated_at) VALUES (?,?,?)').run(job.scopeId, String(row.payload), Number(row.updated_at));
|
|
117
|
+
db.prepare(`DELETE FROM persona_versions WHERE scope_id=? AND id NOT IN
|
|
118
|
+
(SELECT id FROM persona_versions WHERE scope_id=? ORDER BY id DESC LIMIT 5)`).run(job.scopeId, job.scopeId);
|
|
119
|
+
db.prepare(`UPDATE persona_state SET payload=?,source_hash=?,updated_at=?,next_at=?,attempts=0,error='',
|
|
120
|
+
lease_token=NULL,lease_until=0,requested=0,revision=revision+1 WHERE scope_id=?`).run(JSON.stringify(paragraphs), job.sourceHash, now, now + UPDATE_INTERVAL, job.scopeId);
|
|
121
|
+
db.exec('COMMIT');
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
db.exec('ROLLBACK');
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export function failPersona(db, job, error, now = Date.now()) {
|
|
129
|
+
const row = rowFor(db, job.scopeId);
|
|
130
|
+
if (row?.lease_token !== job.token)
|
|
131
|
+
return;
|
|
132
|
+
const attempts = Number(row.attempts) + 1;
|
|
133
|
+
db.prepare(`UPDATE persona_state SET attempts=?,next_at=?,error=?,lease_token=NULL,lease_until=0 WHERE scope_id=? AND lease_token=?`)
|
|
134
|
+
.run(attempts, now + Math.min(3600000, 30000 * 2 ** Math.min(attempts - 1, 7)), error.slice(0, 500), job.scopeId, job.token);
|
|
135
|
+
}
|
|
136
|
+
export function requestPersona(db, scopeId, version, companionId, paragraphId, correction = '') {
|
|
137
|
+
const view = readPersona(db, companionId, scopeId);
|
|
138
|
+
if (view.version !== version)
|
|
139
|
+
throw new Error('画像已更新,请刷新后重试');
|
|
140
|
+
db.prepare('INSERT OR IGNORE INTO persona_state(scope_id) VALUES (?)').run(scopeId);
|
|
141
|
+
const corrections = JSON.parse(String(rowFor(db, scopeId).corrections));
|
|
142
|
+
if (paragraphId) {
|
|
143
|
+
const item = view.paragraphs.find(item => item.id === paragraphId);
|
|
144
|
+
if (!item)
|
|
145
|
+
throw new Error('该画像段落已不存在');
|
|
146
|
+
if (corrections.length >= 30)
|
|
147
|
+
throw new Error('纠正记录已达30条,请先整理已有记忆,避免丢失已确认的纠正');
|
|
148
|
+
corrections.push({ id: item.id, text: item.text, correction: correction.trim().slice(0, 500) || '用户明确否认此结论,不得继续使用或换措辞重复。', at: Date.now() });
|
|
149
|
+
}
|
|
150
|
+
db.prepare(`UPDATE persona_state SET requested=1,next_at=0,attempts=0,error='',corrections=?,revision=revision+1,
|
|
151
|
+
lease_token=NULL,lease_until=0 WHERE scope_id=?`).run(JSON.stringify(corrections), scopeId);
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/persona/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAA;AAGvC,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAA;AACnC,MAAM,UAAU,iBAAiB,CAAC,EAAgB;IAChD,EAAE,CAAC,IAAI,CAAC;;;;;;;0FAOgF,CAAC,CAAA;AAC3F,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,EAAgB,EAAE,WAAmB,EAAE,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACrG,MAAM,OAAO,GAAoB,EAAE,CAAA;IACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;;uDAEyB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IACrF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAA8C,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9G,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,SAAQ;QAC9B,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAChI,OAAO,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,UAAU,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACtF,SAAS,EAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,MAAM,EAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAC,OAAO,EAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;IAC3H,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;+GACoF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3H,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,OAAO,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,SAAS,EAAC,WAAW,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAA;IACrI,CAAC;IACD,yFAAyF;IACzF,MAAM,KAAK,GAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAA;IAC1F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IACrD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,EAAgB,EAAE,WAAmB,EAAE,OAAe,EAAE,MAAqB,EAAE,GAAW;IACjH,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kIAAkI,CAAC;aACvJ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QACpE,OAAO,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,MAAM,EAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAA;IAC1G,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,0GAA0G,CAAC;SAC/H,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;IAChD,OAAO,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAA;AACpE,CAAC;AAED,SAAS,MAAM,CAAC,EAAgB,EAAE,OAAe;IAC/C,OAAO,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAChF,CAAC;AACD,sFAAsF;AACtF,MAAM,UAAU,GAAG,CAAC,OAAwB,EAAU,EAAE,CAAC,WAAW,CAAC,CAAC,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzI,MAAM,UAAU,WAAW,CAAC,EAAgB,EAAE,WAAmB,EAAE,OAAe,EAAE,GAAG,GAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,GAAC,cAAc,CAAC,EAAE,EAAC,WAAW,EAAC,OAAO,EAAC,GAAG,CAAC;IACpJ,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,EAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,KAAK,GAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAA;IAC1E,MAAM,WAAW,GAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAA;IACrF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAA,EAAE,CAAA,CAAC,MAAM,CAAC,EAAE,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1E,2EAA2E;IAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAA,EAAE,CAAA,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,IAAI,CAAC,EAAE,CAAC;WACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAA,EAAE,CAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,GAAG,EAAE,WAAW,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAA;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,IAAI,KAAG,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,IAAE,CAAC,CAAA;IAC5E,MAAM,MAAM,GAA0B,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,YAAY;QAC/E,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC5D,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;IAC1D,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAE,CAAC,EAAC,UAAU,CAAC,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,EAAC,SAAS,EAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC;QACrE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,EAAC,MAAM,EAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC;QAC5D,GAAG,CAAC,GAAG,EAAE,KAAK,CAAA,CAAC,CAAA,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAgB,EAAE,WAAmB,EAAE,OAAe,EAAE,GAAG,GAAC,IAAI,CAAC,GAAG,EAAE;IACjG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QACjE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjB,OAAO,GAAG,CAAA;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,KAAK,CAAA;IAAC,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAgB,EAAE,WAAmB,EAAE,OAAe,EAAE,GAAW;IACjG,MAAM,OAAO,GAAC,cAAc,CAAC,EAAE,EAAC,WAAW,EAAC,OAAO,EAAC,GAAG,CAAC,CAAA;IACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,IAAI,KAAG,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,GAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACnF,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnF,MAAM,GAAG,GAAC,MAAM,CAAC,EAAE,EAAC,OAAO,CAAE,CAAA;IAC7B,MAAM,IAAI,GAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,KAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1H,MAAM,KAAK,GAAC,UAAU,EAAE,CAAA;IACxB,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,GAAC,CAAC,GAAC,MAAM,EAAC,OAAO,CAAC,CAAA;IACnH,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,WAAW,CAAC,EAAE,EAAC,WAAW,EAAC,OAAO,EAAC,GAAG,EAAC,OAAO,CAAC,CAAC,UAAU;QAC3H,WAAW,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAgB,EAAE,GAAe,EAAE,UAA8B,EAAE,GAAG,GAAC,IAAI,CAAC,GAAG,EAAE;IAC7G,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAC,MAAM,CAAC,EAAE,EAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,GAAG,EAAE,WAAW,KAAG,GAAG,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACrE,MAAM,MAAM,GAAC,cAAc,CAAC,EAAE,EAAC,GAAG,CAAC,WAAW,EAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAA,EAAE,CAAA,CAAC,MAAM,CAAC,EAAE,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACvE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAA,EAAE,CAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAClI,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAC,CAAC;YAAE,EAAE,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;QAChL,EAAE,CAAC,OAAO,CAAC;kFACmE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC5G,EAAE,CAAC,OAAO,CAAC;sFACuE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAC,GAAG,CAAC,UAAU,EAAC,GAAG,EAAC,GAAG,GAAC,eAAe,EAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAAA,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAA,MAAM,KAAK,CAAA;IAAA,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAgB,EAAE,GAAe,EAAE,KAAa,EAAE,GAAG,GAAC,IAAI,CAAC,GAAG,EAAE;IAC1F,MAAM,GAAG,GAAC,MAAM,CAAC,EAAE,EAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAChC,IAAI,GAAG,EAAE,WAAW,KAAG,GAAG,CAAC,KAAK;QAAE,OAAM;IACxC,MAAM,QAAQ,GAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAC,CAAC,CAAA;IACrC,EAAE,CAAC,OAAO,CAAC,yHAAyH,CAAC;SAClI,GAAG,CAAC,QAAQ,EAAC,GAAG,GAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAC,KAAK,GAAC,CAAC,IAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC,EAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACjH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAgB,EAAE,OAAe,EAAE,OAAe,EAAE,WAAmB,EAAE,WAAoB,EAAE,UAAU,GAAC,EAAE;IACzI,MAAM,IAAI,GAAC,WAAW,CAAC,EAAE,EAAC,WAAW,EAAC,OAAO,CAAC,CAAA;IAC9C,IAAI,IAAI,CAAC,OAAO,KAAG,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IAC3D,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnF,MAAM,WAAW,GAAsB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAC,OAAO,CAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAC1F,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,EAAE,KAAG,WAAW,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;QACvC,IAAI,WAAW,CAAC,MAAM,IAAE,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC5E,WAAW,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,IAAI,CAAC,EAAE,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,UAAU,EAAC,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC,IAAE,yBAAyB,EAAC,EAAE,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,CAAC,CAAA;IAClI,CAAC;IACD,EAAE,CAAC,OAAO,CAAC;oDACuC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAC,OAAO,CAAC,CAAA;AAC9F,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type PersonaTopic = 'background' | 'interests' | 'collaboration' | 'changes';
|
|
2
|
+
export interface PersonaSource {
|
|
3
|
+
id: string;
|
|
4
|
+
kind: 'memory' | 'turn';
|
|
5
|
+
text: string;
|
|
6
|
+
at: number;
|
|
7
|
+
signature: string;
|
|
8
|
+
turnIds: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface PersonaParagraph {
|
|
11
|
+
id: string;
|
|
12
|
+
topic: PersonaTopic;
|
|
13
|
+
basis: 'explicit' | 'observed';
|
|
14
|
+
text: string;
|
|
15
|
+
evidence: PersonaSource[];
|
|
16
|
+
}
|
|
17
|
+
export interface PersonaView {
|
|
18
|
+
status: 'waiting' | 'pending' | 'processing' | 'ready' | 'retrying';
|
|
19
|
+
paragraphs: PersonaParagraph[];
|
|
20
|
+
version: string;
|
|
21
|
+
updatedAt?: number;
|
|
22
|
+
nextAt?: number;
|
|
23
|
+
error?: string;
|
|
24
|
+
stale: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface PersonaCorrection {
|
|
27
|
+
id: string;
|
|
28
|
+
text: string;
|
|
29
|
+
correction: string;
|
|
30
|
+
at: number;
|
|
31
|
+
}
|
|
32
|
+
export interface PersonaJob {
|
|
33
|
+
companionId: string;
|
|
34
|
+
scopeId: string;
|
|
35
|
+
token: string;
|
|
36
|
+
sourceHash: string;
|
|
37
|
+
sources: PersonaSource[];
|
|
38
|
+
previous: PersonaParagraph[];
|
|
39
|
+
corrections: PersonaCorrection[];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persona/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,CAAA;AACnF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,UAAU,GAAG,UAAU,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B;AACD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,CAAA;IACnE,UAAU,EAAE,gBAAgB,EAAE,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;CACf;AACD,MAAM,WAAW,iBAAiB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AAC/F,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,WAAW,EAAE,iBAAiB,EAAE,CAAA;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/persona/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-domain.d.ts","sourceRoot":"","sources":["../src/profile-domain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE5E,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AACjF,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAc5D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEjF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGrE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"profile-domain.d.ts","sourceRoot":"","sources":["../src/profile-domain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE5E,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AACjF,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAc5D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEjF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGrE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,mBAAmB,CA+BzH"}
|
package/lib/profile-domain.js
CHANGED
|
@@ -33,7 +33,8 @@ export function buildProfileSnapshot(companionId, scopeId, memories) {
|
|
|
33
33
|
break;
|
|
34
34
|
}
|
|
35
35
|
const preferences = memories.filter(item => item.kind === 'preference' && item.status === 'active'
|
|
36
|
-
&& (item.locked || (item.confidence >= .8 && item.importance >= .65 && new Set(item.evidence.map(source => source.turnId)).size >= 2)
|
|
36
|
+
&& (item.locked || (item.confidence >= .8 && item.importance >= .65 && new Set(item.evidence.map(source => source.turnId)).size >= 2)
|
|
37
|
+
|| (item.confidence >= .95 && item.importance >= .8 && item.evidence.some(source => source.excerpt.trim().length >= 2))))
|
|
37
38
|
.sort((a, b) => Number(Boolean(b.locked)) - Number(Boolean(a.locked)) || b.importance - a.importance || b.updatedAt - a.updatedAt).slice(0, 4);
|
|
38
39
|
const baseline = [...entries, ...preferences];
|
|
39
40
|
const version = createHash('sha256').update(baseline.map(entry => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-domain.js","sourceRoot":"","sources":["../src/profile-domain.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"profile-domain.js","sourceRoot":"","sources":["../src/profile-domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type MemoryCollection, type MemoryLayers } from './types.js';
|
|
2
|
-
export declare function MemoryLibrary({ companionId, scopeId, collection, layers, changed }: {
|
|
2
|
+
export declare function MemoryLibrary({ companionId, scopeId, collection, layers, enabled, changed }: {
|
|
3
3
|
companionId: string;
|
|
4
4
|
scopeId: string;
|
|
5
5
|
collection: MemoryCollection;
|
|
6
6
|
layers: MemoryLayers | undefined;
|
|
7
|
+
enabled: boolean;
|
|
7
8
|
changed(): Promise<void>;
|
|
8
9
|
}): JSX.Element;
|
|
9
10
|
//# sourceMappingURL=memory-library.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-library.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/memory-library.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-library.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/memory-library.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAkB,MAAM,YAAY,CAAA;AAEnG,wBAAgB,aAAa,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAC,EAAE;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,GAAG,GAAG,CAAC,OAAO,CAiD3P"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useRef, useState } from 'react';
|
|
3
|
-
import { IconDataOutline16,
|
|
3
|
+
import { IconDataOutline16, IconBrowseOutline16, IconListPenOutline16, IconLinkOutline16 } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
4
|
import { CollectionEmpty, WorkspaceDialog, WorkspaceNotice } from '../workspace-components.js';
|
|
5
5
|
import { relativeTime } from '../partner-components.js';
|
|
6
6
|
import { MemoryDetail } from './memory-detail.js';
|
|
7
7
|
import { DailyReflectionDetail, memoryKind } from './memory-cards.js';
|
|
8
8
|
import { MemoryGraph } from './memory-graph.js';
|
|
9
9
|
import { HistoryView } from './history-view.js';
|
|
10
|
+
import { PersonaView } from './persona-view.js';
|
|
10
11
|
import { ExperienceView } from './experience-view.js';
|
|
11
12
|
import { useMemoryResource } from './use-memory-resource.js';
|
|
12
13
|
import { MEMORY_STATUS } from './types.js';
|
|
13
|
-
export function MemoryLibrary({ companionId, scopeId, collection, layers, changed }) {
|
|
14
|
-
const [mode, setMode] = useState('
|
|
14
|
+
export function MemoryLibrary({ companionId, scopeId, collection, layers, enabled, changed }) {
|
|
15
|
+
const [mode, setMode] = useState('memory');
|
|
15
16
|
const [query, setQuery] = useState('');
|
|
16
17
|
const [status, setStatus] = useState('active');
|
|
17
18
|
const [kind, setKind] = useState('all');
|
|
@@ -29,10 +30,10 @@ export function MemoryLibrary({ companionId, scopeId, collection, layers, change
|
|
|
29
30
|
const selectedDay = reflections.find(item => item.date === date);
|
|
30
31
|
const selectMode = (value) => { setMode(value); setQuery(''); setLimit(20); if (more.current)
|
|
31
32
|
more.current.open = false; };
|
|
32
|
-
const row = (item) => _jsxs("button", { type: "button", className: "dsh-partner-memory-row", onClick: () => setInspecting(item), children: [
|
|
33
|
-
return _jsxs("section", { className: "dsh-partner-memory-library-v2", children: [_jsxs("nav", { className: "dsh-partner-memory-nav", "aria-label": "\u8BB0\u5FC6\u5185\u5BB9", children: [_jsxs("button", { type: "button", "aria-pressed": mode === '
|
|
33
|
+
const row = (item) => _jsxs("button", { type: "button", className: "dsh-partner-memory-row", "aria-label": `${item.subject}:${item.content}`, onClick: () => setInspecting(item), children: [_jsx("span", { className: "dsh-partner-memory-list-kind", children: memoryKind(item.kind) }), _jsx("span", { className: "dsh-partner-memory-row-copy", children: _jsx("p", { children: item.content }) }), _jsx("small", { className: "dsh-partner-memory-list-state", children: MEMORY_STATUS[item.status] }), _jsx("time", { dateTime: new Date(item.updatedAt).toISOString(), title: new Date(item.updatedAt).toLocaleString(), children: relativeTime(item.updatedAt) })] }, item.id);
|
|
34
|
+
return _jsxs("section", { className: "dsh-partner-memory-library-v2", children: [_jsxs("nav", { className: "dsh-partner-memory-nav", "aria-label": "\u8BB0\u5FC6\u5185\u5BB9", children: [_jsxs("button", { type: "button", "aria-pressed": mode === 'memory' || mode === 'scenes', onClick: () => selectMode('memory'), children: [_jsx(IconDataOutline16, { size: 16 }), "\u8BB0\u5FC6"] }), _jsxs("button", { type: "button", "aria-pressed": mode === 'reflection' || mode === 'history', onClick: () => selectMode('reflection'), children: [_jsx(IconBrowseOutline16, { size: 16 }), "\u56DE\u987E"] }), _jsxs("details", { className: "dsh-partner-memory-more", ref: more, onKeyDown: event => { if (event.key === 'Escape' && more.current) {
|
|
34
35
|
more.current.open = false;
|
|
35
36
|
more.current.querySelector('summary')?.focus();
|
|
36
|
-
} }, children: [_jsxs("summary", { "aria-label": "\u66F4\u591A\u8BB0\u5FC6\u5185\u5BB9", children: [mode === 'experiences' ? '经验审核' : mode === 'graph' ? '关系图谱' : '更多', " ", _jsx("span", { "aria-hidden": "true", children: "\u22EF" })] }), _jsxs("div", { children: [_jsxs("button", { type: "button", onClick: () => selectMode('experiences'), children: [_jsx(IconListPenOutline16, { size: 16 }), "\u7ECF\u9A8C\u5BA1\u6838 ", _jsx("small", { children: layers?.experiences.filter(item => item.status === 'draft').length ?? 0 })] }), _jsxs("button", { type: "button", onClick: () => selectMode('graph'), children: [_jsx(IconLinkOutline16, { size: 16 }), "\u5173\u7CFB\u56FE\u8C31"] })] })] })] }),
|
|
37
|
+
} }, children: [_jsxs("summary", { "aria-label": "\u66F4\u591A\u8BB0\u5FC6\u5185\u5BB9", children: [mode === 'experiences' ? '经验审核' : mode === 'graph' ? '关系图谱' : '更多', " ", _jsx("span", { "aria-hidden": "true", children: "\u22EF" })] }), _jsxs("div", { children: [_jsxs("button", { type: "button", onClick: () => selectMode('scenes'), children: [_jsx(IconDataOutline16, { size: 16 }), "\u573A\u666F\u6458\u8981"] }), _jsxs("button", { type: "button", onClick: () => selectMode('experiences'), children: [_jsx(IconListPenOutline16, { size: 16 }), "\u7ECF\u9A8C\u5BA1\u6838 ", _jsx("small", { children: layers?.experiences.filter(item => item.status === 'draft').length ?? 0 })] }), _jsxs("button", { type: "button", onClick: () => selectMode('graph'), children: [_jsx(IconLinkOutline16, { size: 16 }), "\u5173\u7CFB\u56FE\u8C31"] })] })] })] }), mode === 'scenes' && _jsx("h3", { children: "\u573A\u666F\u6458\u8981" }), (mode === 'reflection' || mode === 'history') && _jsxs("div", { className: "dsh-partner-memory-segment", "aria-label": "\u56DE\u987E\u89C6\u56FE", children: [_jsx("button", { type: "button", "aria-pressed": mode === 'reflection', onClick: () => selectMode('reflection'), children: "\u6BCF\u65E5\u56DE\u987E" }), _jsx("button", { type: "button", "aria-pressed": mode === 'history', onClick: () => selectMode('history'), children: "\u5BF9\u8BDD\u5386\u53F2" })] }), mode === 'memory' && _jsx(PersonaView, { view: profile?.persona, base: base, scopeId: scopeId, enabled: enabled, changed: changed }), mode !== 'experiences' && _jsxs("div", { className: "dsh-partner-memory-toolbar", children: [_jsxs("label", { className: "dsh-partner-memory-search", children: [_jsx("span", { className: "sr-only", children: "\u641C\u7D22\u5F53\u524D\u5185\u5BB9" }), _jsx("input", { type: "search", placeholder: mode === 'history' ? '搜索已加载的历史' : '搜索记忆内容', value: query, onChange: event => { setQuery(event.target.value); setLimit(20); } })] }), mode === 'memory' && _jsxs(_Fragment, { children: [_jsxs("label", { children: [_jsx("span", { className: "sr-only", children: "\u8BB0\u5FC6\u72B6\u6001" }), _jsxs("select", { "aria-label": "\u8BB0\u5FC6\u72B6\u6001", value: status, onChange: event => { setStatus(event.target.value); setLimit(20); }, children: [_jsx("option", { value: "all", children: "\u5168\u90E8\u72B6\u6001" }), Object.entries(MEMORY_STATUS).map(([value, label]) => _jsx("option", { value: value, children: label }, value))] })] }), _jsxs("label", { children: [_jsx("span", { className: "sr-only", children: "\u8BB0\u5FC6\u7C7B\u578B" }), _jsxs("select", { "aria-label": "\u8BB0\u5FC6\u7C7B\u578B", value: kind, onChange: event => { setKind(event.target.value); setLimit(20); }, children: [_jsx("option", { value: "all", children: "\u5168\u90E8\u7C7B\u578B" }), ['profile', 'preference', 'task', 'event', 'relationship', 'emotion'].map(value => _jsx("option", { value: value, children: memoryKind(value) }, value))] })] })] })] }), mode === 'memory' && _jsxs(_Fragment, { children: [_jsxs("p", { className: "dsh-partner-memory-hint", children: ["\u5F53\u524D\u8BB0\u5FC6\u8303\u56F4\u6700\u8FD1 100 \u6761\u4E2D\uFF0C\u5339\u914D ", filtered.length, " \u6761\u3002\u70B9\u51FB\u67E5\u770B\u4F9D\u636E\u3001\u53EF\u4FE1\u5EA6\u6216\u4FEE\u6539\u5185\u5BB9\u3002"] }), _jsx("div", { className: "dsh-partner-memory-rows dsh-partner-memory-list", children: filtered.slice(0, limit).map(row) }), !filtered.length && _jsx(CollectionEmpty, { title: "\u6CA1\u6709\u5339\u914D\u7684\u8BB0\u5FC6", detail: "\u53EF\u4EE5\u5207\u6362\u7C7B\u578B\u6216\u72B6\u6001\u67E5\u770B\u5176\u4ED6\u8BB0\u5FC6\u3002" }), filtered.length > limit && _jsx("button", { type: "button", onClick: () => setLimit(value => value + 20), children: "\u518D\u663E\u793A 20 \u6761" })] }), mode === 'scenes' && _jsxs(_Fragment, { children: [_jsx("p", { className: "dsh-partner-memory-hint", children: "\u6458\u8981\u5F15\u7528\u5F53\u524D\u6709\u6548\u8BB0\u5FC6\uFF0C\u539F\u8BB0\u5FC6\u4FEE\u6B63\u540E\u540C\u6B65\u53D8\u5316\u3002\u6BCF\u65E5\u7EC8\u5BA1\u65F6\u6574\u7406\u3002" }), layers?.scenes.filter(scene => !normalized || `${scene.title} ${scene.summary}`.toLocaleLowerCase().includes(normalized)).map(scene => _jsxs("details", { className: "dsh-partner-memory-record", children: [_jsxs("summary", { children: [_jsx("strong", { children: scene.title }), _jsxs("small", { children: [scene.memoryIds.length, " \u6761\u4F9D\u636E"] })] }), _jsxs("div", { children: [_jsx("p", { children: scene.summary }), _jsx("small", { children: relativeTime(scene.updatedAt) })] })] }, scene.id)), !layers?.scenes.some(scene => !normalized || (scene.title + ' ' + scene.summary).toLocaleLowerCase().includes(normalized)) && _jsx(CollectionEmpty, { title: normalized ? "没有匹配的场景摘要" : "还没有场景摘要", detail: "\u5F00\u542F\u6BCF\u65E5\u7EC8\u5BA1\u540E\uFF0C\u4F1A\u9010\u6B65\u5C06\u76F8\u5173\u7684\u6709\u6548\u8BB0\u5FC6\u7EC4\u7EC7\u5728\u4E00\u8D77\u3002" })] }), mode === 'reflection' && _jsxs(_Fragment, { children: [_jsx("div", { className: "dsh-partner-memory-rows", children: reflections.map(day => _jsxs("button", { className: "dsh-partner-memory-row", type: "button", onClick: () => setDate(day.date), children: [_jsxs("span", { children: [_jsx("strong", { children: day.date }), _jsx("p", { children: day.summary }), _jsxs("small", { children: [day.turnCount, " \u8F6E\u4EA4\u6D41 \u00B7 ", day.completedTasks.length, " \u9879\u5B8C\u6210"] })] }), _jsx("small", { children: "\u67E5\u770B" })] }, `${day.scopeId}:${day.date}`)) }), !reflections.length && _jsx(CollectionEmpty, { title: "\u8FD8\u6CA1\u6709\u5339\u914D\u7684\u56DE\u987E", detail: "\u5B66\u4E60\u5F00\u542F\u540E\uFF0C\u5728\u540E\u53F0\u5B8C\u6210\u63D0\u70BC\u65F6\u66F4\u65B0\u3002" })] }), mode === 'history' && _jsx(HistoryView, { base: base, scopeId: scopeId, query: normalized }, scopeId), mode === 'experiences' && _jsx(ExperienceView, { items: layers?.experiences ?? [], base: base, scopeId: scopeId, changed: changed }), mode === 'graph' && _jsxs(_Fragment, { children: [graph.error && _jsxs(WorkspaceNotice, { children: [graph.error, " ", _jsx("button", { type: "button", onClick: () => { void graph.reload(); }, children: "\u91CD\u8BD5" })] }), graph.data ? _jsx(MemoryGraph, { graph: { memories: graph.data.memories.filter(item => item.scopeId === scopeId), relations: graph.data.relations.filter(item => item.scopeId === scopeId) }, profiles: collection.profiles.filter(item => item.scopeId === scopeId), query: normalized, inspect: setInspecting }) : !graph.error && _jsx(CollectionEmpty, { title: "\u6B63\u5728\u8BFB\u53D6\u5173\u7CFB\u56FE\u8C31" })] }), inspecting && _jsx(MemoryDetail, { companionId: companionId, item: inspecting, close: () => setInspecting(undefined), changed: changed }, inspecting.id), selectedDay && _jsx(WorkspaceDialog, { title: `${selectedDay.date} 每日回顾`, detail: "\u8FC7\u7A0B\u8BB0\u5F55\u4E0E\u5F53\u65E5\u603B\u7ED3\uFF0C\u4E0D\u76F4\u63A5\u4F5C\u4E3A\u957F\u671F\u4E8B\u5B9E\u3002", close: () => setDate(undefined), children: _jsx(DailyReflectionDetail, { entry: selectedDay }) })] });
|
|
37
38
|
}
|
|
38
39
|
//# sourceMappingURL=memory-library.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-library.js","sourceRoot":"","sources":["../../../src/ui/memory/memory-library.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-library.js","sourceRoot":"","sources":["../../../src/ui/memory/memory-library.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-panel.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/memory-panel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-panel.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/memory-panel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAM,KAAK,aAAa,EAAE,KAAK,eAAe,EAAC,MAAM,qBAAqB,CAAA;AAQjF,wBAAgB,WAAW,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAC,EAAE;IACrG,SAAS,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3H,GAAG,GAAG,CAAC,OAAO,CA0Cd"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useRef, useState } from 'react';
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { conversationMemoryScope } from '../../memory-scope.js';
|
|
3
4
|
import { IconRefreshOutline16 } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
5
|
import { api } from '../../client-api.js';
|
|
5
6
|
import { WorkspaceHero, WorkspaceNotice, CollectionEmpty, errorMessage } from '../workspace-components.js';
|
|
@@ -16,10 +17,16 @@ export function MemoryPanel({ companion, snapshot, openSession, startSession, re
|
|
|
16
17
|
const [error, setError] = useState();
|
|
17
18
|
const [notice, setNotice] = useState();
|
|
18
19
|
const base = `/companions/${encodeURIComponent(companion.id)}`;
|
|
19
|
-
const initialScope = sessions[0] ?
|
|
20
|
+
const initialScope = sessions[0] ? conversationMemoryScope(sessions[0], sessions) : '';
|
|
20
21
|
const requested = requestedScope || initialScope;
|
|
21
22
|
const collection = useMemoryResource(`${base}/memory${requested ? `?${new URLSearchParams({ scopeId: requested })}` : ''}`, 15_000);
|
|
22
23
|
const scopeId = requested || collection.data?.profiles[0]?.scopeId || '';
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
const profiles = collection.data?.profiles;
|
|
26
|
+
if (!profiles?.length || profiles.some(profile => profile.scopeId === requested))
|
|
27
|
+
return;
|
|
28
|
+
setScope(profiles.find(profile => profile.scopeId === initialScope)?.scopeId ?? profiles[0].scopeId);
|
|
29
|
+
}, [collection.data, requested, initialScope]);
|
|
23
30
|
const layers = useMemoryResource(scopeId ? `${base}/memory/layers?${new URLSearchParams({ scopeId })}` : undefined, 15_000);
|
|
24
31
|
const reload = async () => { await Promise.all([collection.reload(), layers.reload()]); };
|
|
25
32
|
const run = async (action, success) => {
|
|
@@ -45,6 +52,6 @@ export function MemoryPanel({ companion, snapshot, openSession, startSession, re
|
|
|
45
52
|
const retries = layers.data?.retryCount ?? layers.data?.jobs.filter(job => job.status === 'retrying').length ?? 0;
|
|
46
53
|
const [showAllJobs, setShowAllJobs] = useState(false);
|
|
47
54
|
const scopes = collection.data?.profiles ?? [];
|
|
48
|
-
return _jsxs("div", { className: "dsh-partner-memory-page", children: [_jsx(WorkspaceHero, { eyebrow: "MEMORY & CONTEXT", title: "\u8BB0\u5FC6\u5E93", detail: "\u77E5\u9053\u8BB0\u4F4F\u4E86\u4EC0\u4E48\u3001\u4F9D\u636E\u662F\u4EC0\u4E48\uFF0C\u4E5F\u80FD\u7EA0\u6B63\u5DF2\u7ECF\u8FC7\u65F6\u7684\u7406\u89E3\u3002", actions: _jsx("button", { type: "button", onClick: () => setSettings(true), children: "\u8BB0\u5FC6\u8BBE\u7F6E" }) }), _jsxs("div", { className: "dsh-partner-memory-context", children: [_jsxs("label", { children: [_jsx("span", { children: "\
|
|
55
|
+
return _jsxs("div", { className: "dsh-partner-memory-page", children: [_jsx(WorkspaceHero, { eyebrow: "MEMORY & CONTEXT", title: "\u8BB0\u5FC6\u5E93", detail: "\u77E5\u9053\u8BB0\u4F4F\u4E86\u4EC0\u4E48\u3001\u4F9D\u636E\u662F\u4EC0\u4E48\uFF0C\u4E5F\u80FD\u7EA0\u6B63\u5DF2\u7ECF\u8FC7\u65F6\u7684\u7406\u89E3\u3002", actions: _jsx("button", { type: "button", onClick: () => setSettings(true), children: "\u8BB0\u5FC6\u8BBE\u7F6E" }) }), _jsxs("div", { className: "dsh-partner-memory-context", children: [_jsxs("label", { children: [_jsx("span", { children: "\u8BB0\u5FC6\u8303\u56F4" }), _jsxs("select", { "aria-label": "\u8BB0\u5FC6\u8303\u56F4", value: scopeId, onChange: event => { setScope(event.target.value); setError(undefined); setNotice(undefined); }, children: [!scopes.length && _jsx("option", { value: scopeId, children: scopeId ? '统一会话记忆' : '暂无记忆' }), scopes.map(profile => _jsx("option", { value: profile.scopeId, children: profile.label }, profile.scopeId))] })] }), _jsx("span", { className: "dsh-partner-memory-badge", children: companion.automation.memory.enabled ? '学习已开启' : '学习已暂停' }), _jsx("button", { type: "button", "aria-label": "\u5237\u65B0\u8BB0\u5FC6", disabled: collection.loading || layers.loading, onClick: () => { void reload(); }, children: _jsx(IconRefreshOutline16, { size: 16 }) })] }), (error || collection.error || layers.error) && _jsx(WorkspaceNotice, { children: error || collection.error || layers.error }), notice && _jsx(WorkspaceNotice, { kind: "success", children: notice }), !!layers.data?.jobs.length && _jsxs("details", { className: "dsh-partner-memory-jobs", children: [_jsxs("summary", { children: [layers.data.jobCount ?? layers.data.jobs.length, " \u9879\u5C1A\u672A\u6574\u7406 \u00B7 ", retries, " \u9879\u5931\u8D25\u91CD\u8BD5", _jsx("small", { children: "\u539F\u59CB\u5BF9\u8BDD\u5DF2\u4FDD\u5B58\uFF0C\u4E0D\u5F71\u54CD\u7EE7\u7EED\u804A\u5929" })] }), _jsxs("div", { children: [layers.data.jobs.slice(0, showAllJobs ? 100 : 10).map(job => _jsxs("div", { children: [_jsxs("span", { children: [job.at && _jsx("small", { children: new Date(job.at).toLocaleString() }), job.status === 'processing' ? '正在整理' : job.status === 'retrying' ? `已失败 ${job.attempts} 次 · 下次 ${new Date(job.nextAt).toLocaleTimeString()}` : '等待执行,无需重复提交', _jsx(MemoryJobFeedback, { status: job.status, ...(job.error ? { error: job.error } : {}) }), job.attempts >= 3 && job.status === 'retrying' && _jsx("small", { children: "\u9000\u907F\u671F\u95F4\u5141\u8BB8\u540E\u7EED\u4EFB\u52A1\u7EE7\u7EED\u6574\u7406" })] }), job.status === 'retrying' && _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(async () => { await api(`${base}/memory/jobs/${encodeURIComponent(job.id)}?${new URLSearchParams({ scopeId })}`, { method: 'POST' }); }, '已安排重试,当前执行结束后处理'); }, children: "\u91CD\u65B0\u6392\u961F" })] }, job.id)), layers.data.jobs.length > 10 && _jsx("button", { type: "button", onClick: () => setShowAllJobs(!showAllJobs), children: showAllJobs ? '收起' : '显示更多任务' }), (layers.data.jobCount ?? 0) > 100 && _jsx("p", { children: "\u4EC5\u5C55\u793A\u6700\u65E9100\u9879\uFF0C\u5B8C\u6210\u540E\u81EA\u52A8\u8865\u5145\u540E\u7EED\u4EFB\u52A1\u3002" })] })] }), !collection.data ? _jsx(CollectionEmpty, { title: collection.error ? '记忆读取失败' : '正在读取记忆', action: collection.error ? _jsx("button", { type: "button", onClick: () => { void reload(); }, children: "\u91CD\u8BD5" }) : undefined }) : _jsx(MemoryLibrary, { companionId: companion.id, scopeId: scopeId, collection: collection.data, layers: layers.data, enabled: companion.automation.memory.enabled, changed: reload }, scopeId), _jsxs("details", { className: "dsh-partner-memory-record is-sessions", children: [_jsxs("summary", { children: ["\u4F19\u4F34\u4F1A\u8BDD ", _jsx("small", { children: sessions.length })] }), _jsxs("div", { children: [sessions.map(session => _jsxs("div", { className: "dsh-partner-memory-session", children: [_jsxs("span", { children: [_jsx("strong", { children: session.kind === 'local' ? '本地对话' : `渠道联系人 · ${session.userId.slice(-6)}` }), _jsx("small", { children: session.archived ? '已归档' : '可继续对话' })] }), _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(() => session.archived ? renewSession(session.id) : openSession(session.id, session.sessionId), session.archived ? '新会话已创建' : '会话已打开'); }, children: session.archived ? '新建会话' : '打开会话' })] }, session.id)), !sessions.length && _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(() => startSession(companion.id), '会话已创建'); }, children: "\u5F00\u59CB\u5BF9\u8BDD" })] })] }), settings && _jsx(AutomationSettings, { companion: companion, kind: "memory", close: () => setSettings(false), onChanged: async () => { await onChanged(); await reload(); } })] });
|
|
49
56
|
}
|
|
50
57
|
//# sourceMappingURL=memory-panel.js.map
|