@lemoncat7/dsh-partner 2.2.0 → 2.4.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 +10 -0
- package/docs/direct-channels.md +17 -0
- package/docs/mcp.md +54 -0
- package/docs/memory-quality.md +26 -0
- package/docs/releases/2.3.0.md +29 -0
- package/docs/releases/2.4.0.md +11 -0
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +16 -9
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api/features/mcp-api.d.ts +4 -0
- package/lib/api/features/mcp-api.d.ts.map +1 -0
- package/lib/api/features/mcp-api.js +37 -0
- package/lib/api/features/mcp-api.js.map +1 -0
- 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 +2 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +11 -2
- package/lib/api.js.map +1 -1
- package/lib/capabilities.d.ts +1 -1
- package/lib/capabilities.d.ts.map +1 -1
- package/lib/capabilities.js +2 -2
- package/lib/capabilities.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.d.ts.map +1 -1
- package/lib/client.js +2508 -1976
- package/lib/client.js.map +4 -4
- package/lib/collaboration/composition.d.ts +3 -0
- package/lib/collaboration/composition.d.ts.map +1 -1
- package/lib/collaboration/composition.js +5 -1
- package/lib/collaboration/composition.js.map +1 -1
- package/lib/collaboration/domain.d.ts +3 -0
- package/lib/collaboration/domain.d.ts.map +1 -1
- package/lib/collaboration/domain.js.map +1 -1
- package/lib/collaboration/review-dispatch.d.ts +5 -0
- package/lib/collaboration/review-dispatch.d.ts.map +1 -0
- package/lib/collaboration/review-dispatch.js +23 -0
- package/lib/collaboration/review-dispatch.js.map +1 -0
- package/lib/collaboration/service.d.ts.map +1 -1
- package/lib/collaboration/service.js +12 -3
- package/lib/collaboration/service.js.map +1 -1
- package/lib/companions/management.d.ts +4 -4
- package/lib/companions/removal.d.ts.map +1 -1
- package/lib/companions/removal.js +2 -0
- package/lib/companions/removal.js.map +1 -1
- package/lib/companions/session-configuration.d.ts.map +1 -1
- package/lib/companions/session-configuration.js +2 -0
- package/lib/companions/session-configuration.js.map +1 -1
- package/lib/domain.d.ts +2 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/execution/service.d.ts +3 -1
- package/lib/execution/service.d.ts.map +1 -1
- package/lib/execution/service.js +4 -0
- package/lib/execution/service.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +31 -5
- package/lib/index.js.map +1 -1
- package/lib/mcp/config.d.ts +10 -0
- package/lib/mcp/config.d.ts.map +1 -0
- package/lib/mcp/config.js +54 -0
- package/lib/mcp/config.js.map +1 -0
- package/lib/mcp/connection-error.d.ts +3 -0
- package/lib/mcp/connection-error.d.ts.map +1 -0
- package/lib/mcp/connection-error.js +31 -0
- package/lib/mcp/connection-error.js.map +1 -0
- package/lib/mcp/connections.d.ts +11 -0
- package/lib/mcp/connections.d.ts.map +1 -0
- package/lib/mcp/connections.js +91 -0
- package/lib/mcp/connections.js.map +1 -0
- package/lib/mcp/credentials.d.ts +11 -0
- package/lib/mcp/credentials.d.ts.map +1 -0
- package/lib/mcp/credentials.js +25 -0
- package/lib/mcp/credentials.js.map +1 -0
- package/lib/mcp/domain.d.ts +41 -0
- package/lib/mcp/domain.d.ts.map +1 -0
- package/lib/mcp/domain.js +2 -0
- package/lib/mcp/domain.js.map +1 -0
- package/lib/mcp/edit-config.d.ts +6 -0
- package/lib/mcp/edit-config.d.ts.map +1 -0
- package/lib/mcp/edit-config.js +36 -0
- package/lib/mcp/edit-config.js.map +1 -0
- package/lib/mcp/service.d.ts +31 -0
- package/lib/mcp/service.d.ts.map +1 -0
- package/lib/mcp/service.js +227 -0
- package/lib/mcp/service.js.map +1 -0
- package/lib/mcp/state.d.ts +4 -0
- package/lib/mcp/state.d.ts.map +1 -0
- package/lib/mcp/state.js +29 -0
- package/lib/mcp/state.js.map +1 -0
- 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/requirements/plan-schema.d.ts +1 -0
- package/lib/requirements/plan-schema.d.ts.map +1 -1
- package/lib/requirements/plan-schema.js +2 -2
- package/lib/requirements/plan-schema.js.map +1 -1
- package/lib/skills/task-planning.d.ts +2 -2
- package/lib/skills/task-planning.d.ts.map +1 -1
- package/lib/skills/task-planning.js +3 -2
- package/lib/skills/task-planning.js.map +1 -1
- package/lib/storage/migrate-layout.d.ts.map +1 -1
- package/lib/storage/migrate-layout.js +1 -0
- package/lib/storage/migrate-layout.js.map +1 -1
- package/lib/storage/split-state.js +2 -2
- package/lib/storage/split-state.js.map +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2 -0
- package/lib/store.js.map +1 -1
- package/lib/tasks/scheduling.d.ts.map +1 -1
- package/lib/tasks/scheduling.js +3 -0
- package/lib/tasks/scheduling.js.map +1 -1
- package/lib/ui/capability-editor.d.ts.map +1 -1
- package/lib/ui/capability-editor.js +26 -17
- package/lib/ui/capability-editor.js.map +1 -1
- package/lib/ui/capability-resources.d.ts +12 -0
- package/lib/ui/capability-resources.d.ts.map +1 -0
- package/lib/ui/capability-resources.js +39 -0
- package/lib/ui/capability-resources.js.map +1 -0
- package/lib/ui/companion-access-panel.d.ts +2 -1
- package/lib/ui/companion-access-panel.d.ts.map +1 -1
- package/lib/ui/companion-access-panel.js +5 -1
- package/lib/ui/companion-access-panel.js.map +1 -1
- package/lib/ui/mcp-capabilities.d.ts +6 -0
- package/lib/ui/mcp-capabilities.d.ts.map +1 -0
- package/lib/ui/mcp-capabilities.js +53 -0
- package/lib/ui/mcp-capabilities.js.map +1 -0
- package/lib/ui/mcp-editor.d.ts +7 -0
- package/lib/ui/mcp-editor.d.ts.map +1 -0
- package/lib/ui/mcp-editor.js +85 -0
- package/lib/ui/mcp-editor.js.map +1 -0
- package/lib/ui/mcp-panel.d.ts +2 -0
- package/lib/ui/mcp-panel.d.ts.map +1 -0
- package/lib/ui/mcp-panel.js +61 -0
- package/lib/ui/mcp-panel.js.map +1 -0
- 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/skills-panel.d.ts +2 -1
- package/lib/ui/skills-panel.d.ts.map +1 -1
- package/lib/ui/skills-panel.js +5 -1
- package/lib/ui/skills-panel.js.map +1 -1
- package/lib/ui/workspace-components.d.ts +2 -1
- package/lib/ui/workspace-components.d.ts.map +1 -1
- package/lib/ui/workspace-components.js +10 -5
- package/lib/ui/workspace-components.js.map +1 -1
- package/lib/ui/workspace-navigation.d.ts +9 -1
- package/lib/ui/workspace-navigation.d.ts.map +1 -1
- package/lib/ui/workspace-navigation.js +1 -0
- package/lib/ui/workspace-navigation.js.map +1 -1
- package/package.json +7 -3
|
@@ -34,7 +34,7 @@ export declare class MemoryReflectionService {
|
|
|
34
34
|
}
|
|
35
35
|
export declare function protectConcernDirective(candidates: ConcernCandidate[], directive: ConversationTurn['concernDirective']): ConcernCandidate[];
|
|
36
36
|
export declare function explicitConcernDirective(value: string): boolean;
|
|
37
|
-
export declare function parseReflection(raw: string): ReflectionResult;
|
|
37
|
+
export declare function parseReflection(raw: string, strict?: boolean): ReflectionResult;
|
|
38
38
|
export declare function parseDailyReview(raw: string): DailyReviewResult;
|
|
39
39
|
export {};
|
|
40
40
|
//# sourceMappingURL=memory-reflection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-reflection.d.ts","sourceRoot":"","sources":["../src/memory-reflection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAEnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAqD,KAAK,gBAAgB,EAAyB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1J,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAmD,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACnK,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAU7D,KAAK,iBAAiB,GAAG,OAAO,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAAC,iBAAiB,EAAE,uBAAuB,CAAA;CAAE,CAAA;AAEtG,qBAAa,uBAAuB;IAOtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAqB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAsB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN1H,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,MAAM,CAAQ;IACtB,KAAK,IAAI,IAAI;gBACgB,GAAG,EAAE,iBAAiB,EAAmB,KAAK,EAAE,kBAAkB,EAAmB,QAAQ,EAAE,mBAAmB;IAEzI,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOtF,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAEjC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;YAYzK,UAAU;
|
|
1
|
+
{"version":3,"file":"memory-reflection.d.ts","sourceRoot":"","sources":["../src/memory-reflection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAEnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAqD,KAAK,gBAAgB,EAAyB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1J,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAmD,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACnK,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAU7D,KAAK,iBAAiB,GAAG,OAAO,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAAC,iBAAiB,EAAE,uBAAuB,CAAA;CAAE,CAAA;AAEtG,qBAAa,uBAAuB;IAOtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAqB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAsB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN1H,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,MAAM,CAAQ;IACtB,KAAK,IAAI,IAAI;gBACgB,GAAG,EAAE,iBAAiB,EAAmB,KAAK,EAAE,kBAAkB,EAAmB,QAAQ,EAAE,mBAAmB;IAEzI,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOtF,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAEjC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;YAYzK,UAAU;IA0BlB,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAW7E,cAAc;YA6Bd,OAAO;YAgCP,aAAa;CAc5B;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,SAAS,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,GAC9C,gBAAgB,EAAE,CAIpB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ/D;AAyCD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,gBAAgB,CAoB7E;AAiBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAe/D"}
|
package/lib/memory-reflection.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createUserMessage } from '@deepseek-ai/dsh-llm';
|
|
|
2
2
|
import { concernSubjectSimilarity, extractConcernResources } from './concern-domain.js';
|
|
3
3
|
import { canonicalProfileSubject } from './profile-domain.js';
|
|
4
4
|
import { dailyReviewPromptInput, reflectionPromptInput } from './memory-prompt-context.js';
|
|
5
|
-
import { groundMemoryCandidates } from './memory-quality.js';
|
|
5
|
+
import { groundMemoryCandidates, requireGroundedMemories } from './memory-quality.js';
|
|
6
6
|
import { groundExperiences, parseArtifactProposals } from './memory-artifacts.js';
|
|
7
7
|
import { AsyncSemaphore } from './core/semaphore.js';
|
|
8
8
|
import { redactObservationError } from './observation-errors.js';
|
|
@@ -50,13 +50,18 @@ export class MemoryReflectionService {
|
|
|
50
50
|
}
|
|
51
51
|
async processJob(companion, job, notify) {
|
|
52
52
|
try {
|
|
53
|
-
const result = job.result ?? await this.extract(companion, job.turn);
|
|
53
|
+
const result = job.result ?? await this.extract(companion, job.turn, job.repair);
|
|
54
54
|
if (!job.result)
|
|
55
55
|
await this.store.checkpointJob(job, result);
|
|
56
|
+
if (job.repair) {
|
|
57
|
+
await this.store.restoreProfileJob(job, result);
|
|
58
|
+
await this.store.settleJob(job);
|
|
59
|
+
return { scopeId: job.turn.scopeId, created: [] };
|
|
60
|
+
}
|
|
56
61
|
await this.store.consolidate(job.turn, result, job);
|
|
57
62
|
const created = await this.applyConcerns(companion, job.turn, result);
|
|
58
63
|
if (created.length && notify)
|
|
59
|
-
await notify(job.turn.scopeId, created);
|
|
64
|
+
await notify(job.turn.concernScopeId ?? job.turn.scopeId, created);
|
|
60
65
|
await this.store.settleJob(job);
|
|
61
66
|
if (Date.now() - (this.lastPruned.get(companion.id) ?? 0) > 6 * 60 * 60_000) {
|
|
62
67
|
try {
|
|
@@ -67,7 +72,7 @@ export class MemoryReflectionService {
|
|
|
67
72
|
this.ctx.logger.warn('dsh-partner: memory maintenance failed; will retry on the next completed job');
|
|
68
73
|
}
|
|
69
74
|
}
|
|
70
|
-
return { scopeId: job.turn.scopeId, created };
|
|
75
|
+
return { scopeId: job.turn.concernScopeId ?? job.turn.scopeId, created };
|
|
71
76
|
}
|
|
72
77
|
catch (error) {
|
|
73
78
|
await this.store.settleJob(job, error instanceof Error ? error.message : String(error));
|
|
@@ -126,10 +131,10 @@ export class MemoryReflectionService {
|
|
|
126
131
|
evidence: `每日终审 ${target.date}`,
|
|
127
132
|
});
|
|
128
133
|
}
|
|
129
|
-
async extract(companion, turn) {
|
|
134
|
+
async extract(companion, turn, repair = false) {
|
|
130
135
|
const existing = await this.store.candidateMemories(companion.id, turn.scopeId, turn.user);
|
|
131
136
|
const diaries = await this.store.recentReflectionsForScope(companion.id, turn.scopeId, 1);
|
|
132
|
-
const concerns = await this.concerns.list(companion.id, turn.scopeId, false, 40);
|
|
137
|
+
const concerns = await this.concerns.list(companion.id, turn.concernScopeId ?? turn.scopeId, false, 40);
|
|
133
138
|
const selection = modelSelection(this.ctx, companion);
|
|
134
139
|
const controller = new AbortController();
|
|
135
140
|
this.controllers.add(controller);
|
|
@@ -141,7 +146,7 @@ export class MemoryReflectionService {
|
|
|
141
146
|
for await (const chunk of this.ctx.llm.stream({
|
|
142
147
|
...selection,
|
|
143
148
|
messages: [createUserMessage({ content: [{ type: 'text', text: reflectionPromptInput(this.store.day(turn.at), turn, existing, diaries.find(item => item.date === this.store.day(turn.at)), concerns) }], source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴记忆提炼' } })],
|
|
144
|
-
system: REFLECTION_SYSTEM,
|
|
149
|
+
system: REFLECTION_SYSTEM + (repair ? '\n本次是历史画像修复:只输出有原话证据的 profile/preference upsert。不要生成任务、事件、挂念或撤销操作;concerns 返回空数组。不能把助手的话当用户事实。' : ''),
|
|
145
150
|
temperature: 0.1,
|
|
146
151
|
maxTokens: 1800,
|
|
147
152
|
signal: controller.signal,
|
|
@@ -160,8 +165,8 @@ export class MemoryReflectionService {
|
|
|
160
165
|
clearTimeout(timeout);
|
|
161
166
|
this.controllers.delete(controller);
|
|
162
167
|
}
|
|
163
|
-
const result = parseReflection(output);
|
|
164
|
-
result.memories =
|
|
168
|
+
const result = parseReflection(output, true);
|
|
169
|
+
result.memories = requireGroundedMemories(result.memories, [turn]);
|
|
165
170
|
return result;
|
|
166
171
|
}
|
|
167
172
|
async applyConcerns(companion, turn, result) {
|
|
@@ -169,10 +174,10 @@ export class MemoryReflectionService {
|
|
|
169
174
|
const reflected = protectConcernDirective(result.concerns, turn.concernDirective);
|
|
170
175
|
const candidates = resources.length === 0 ? reflected : reflected.map(item => item.operation === 'upsert' ? { ...item, resources } : item);
|
|
171
176
|
const origin = explicitConcernDirective(turn.user) ? 'explicit' : 'implicit';
|
|
172
|
-
const created = await this.concerns.applyCandidates(companion.id, turn.scopeId, candidates, origin, turn.at, {
|
|
177
|
+
const created = await this.concerns.applyCandidates(companion.id, turn.concernScopeId ?? turn.scopeId, candidates, origin, turn.at, {
|
|
173
178
|
source: 'reflection', sessionId: turn.sessionId, evidence: turn.user, batchId: turn.id,
|
|
174
179
|
});
|
|
175
|
-
const current = await this.concerns.list(companion.id, turn.scopeId, true, 1000);
|
|
180
|
+
const current = await this.concerns.list(companion.id, turn.concernScopeId ?? turn.scopeId, true, 1000);
|
|
176
181
|
if (turn.concernDirective !== undefined && current.some(item => item.id === turn.concernDirective?.concernId)) {
|
|
177
182
|
await this.concerns.act(companion.id, turn.concernDirective.concernId, turn.concernDirective.action, turn.at);
|
|
178
183
|
}
|
|
@@ -203,10 +208,14 @@ function modelSelection(ctx, companion) {
|
|
|
203
208
|
};
|
|
204
209
|
}
|
|
205
210
|
const MEMORY_QUALITY_RULES = `记忆写入契约:每个 memories 候选(包括 complete/remove)必须附 evidenceQuote(用户原话的连续引用,2-300 字)和 sourceTurnId(该原话所在轮次 id),不能引用助手回答或日记摘要;无证据则不输出。更新同义旧记忆时附 targetMemoryId,必须是输入中的同类型记忆 id,并沿用原 subject;不要凭标题相似合并不同项目或相反偏好。纠错时 confidence 应反映新证据,允许降低。一次性执行请求和过程细节只进 daily,不新增 task;task 仅保留明确跨轮次未完承诺,已有任务完成仍应 complete。持续观察交 concerns,项目技术正文交知识库,记忆不复制整篇资料。emotion 仅限用户明确自述感受,不得把催促、设计反馈或工作要求当情绪。长期偏好、画像默认不设 expiresInDays,只有用户明确有效期时才设置。`;
|
|
211
|
+
function memoryCandidateContract() {
|
|
212
|
+
return `memories 每项必须包含完整字段,例如:{"kind":"profile","subject":"常用环境","content":"用户日常使用 macOS。","confidence":0.95,"importance":0.8,"operation":"upsert","evidenceQuote":"我平时用 macOS","sourceTurnId":"复制输入中对应的 id"}。该例仅说明格式,不是待记录事实。evidenceQuote 必须来自输入 user 的连续原话,不能包含压缩标记省略号;sourceTurnId 取 newTurn.id 或 turns[].id。targetMemoryId 仅更新已有记忆时填写;长期画像和偏好不要填写 expiresInDays。用户明确陈述的长期背景和明确的长期协作偏好,应当及时提炼,不要求先重复多次;不能从临时任务推断身份。`;
|
|
213
|
+
}
|
|
206
214
|
const REFLECTION_SYSTEM = `你是长期伙伴的记忆整理器。你不回答用户,只从有证据的对话中维护每日回顾和结构化记忆。
|
|
207
215
|
${MEMORY_QUALITY_RULES}
|
|
216
|
+
${memoryCandidateContract()}
|
|
208
217
|
只输出一个 JSON 对象,不要 Markdown。格式:
|
|
209
|
-
{"daily":{"summary":"当天截至当前的简洁总结","events":[],"openTasks":[],"completedTasks":[],"learnings":[]},"memories":[{"kind":"profile|preference|task|event|relationship|emotion","subject":"稳定且简短的索引主题","content":"带场景边界的准确内容","confidence":0.
|
|
218
|
+
{"daily":{"summary":"当天截至当前的简洁总结","events":[],"openTasks":[],"completedTasks":[],"learnings":[]},"memories":[{"kind":"profile|preference|task|event|relationship|emotion","subject":"稳定且简短的索引主题","content":"带场景边界的准确内容","confidence":0.9,"importance":0.8,"operation":"upsert|complete|remove","evidenceQuote":"用户连续原话","sourceTurnId":"newTurn.id"}],"concerns":[{"subject":"尚未闭环的具体事情","reason":"为什么伙伴应该继续惦记","operation":"upsert|resolve|dismiss","priority":0.0,"confidence":0.0,"watchKind":"auto|knowledge|workspace|web","watchQuery":"用于观察变化的具体对象或问题"}]}
|
|
210
219
|
规则:
|
|
211
220
|
1. 不把寒暄、模型猜测、助手自述当成用户事实;没有长期价值时 memories 返回空数组。
|
|
212
221
|
2. 偏好必须保留适用场景和例外;任务只记录用户明确提出或双方明确承诺的事项。
|
|
@@ -219,17 +228,21 @@ ${MEMORY_QUALITY_RULES}
|
|
|
219
228
|
9. daily 应综合已有当日日记与新对话,不能只复述最后一句。数组每类最多 20 条,记忆候选最多 12 条。`;
|
|
220
229
|
const DAILY_REVIEW_SYSTEM = `你是长期伙伴的每日记忆终审器。根据当天每一轮对话的双向代表片段、滚动回顾和已有记忆,输出一次最终整理,不回答用户。
|
|
221
230
|
${MEMORY_QUALITY_RULES}
|
|
231
|
+
${memoryCandidateContract()}
|
|
222
232
|
还可输出 scenes:[{"title":"具体项目或场景名称","memoryIds":["输入中已有的记忆 id"]}],每个场景只关联同一项目的有效事实,最多 8 个,不把不同项目因名称相似而混在一起;无可靠关联返回空数组。
|
|
223
233
|
还可输出 experiences:[{"title":"可复用方法","steps":["带适用条件的操作步骤"],"evidence":[{"turnId":"原始轮次 id","quote":"用户明确确认成功的连续原话"}]}]。只有至少两个不同会话均有用户明确确认成功,且方法确实可复用时才提出,最多 3 个;重复尝试、反复失败、助手自称成功均不算。这里只生成待人工审核的草稿,不安装、不授权、不修改现有 Skill。没有足够证据返回空数组。
|
|
224
234
|
只输出 JSON:{"daily":{"summary":"","events":[],"openTasks":[],"completedTasks":[],"learnings":[]},"memories":[与逐轮提炼相同的候选格式],"concerns":[与逐轮提炼相同的挂念格式],"relations":[{"sourceSubject":"必须等于已有或候选记忆主题","sourceKind":"profile|preference|task|event|relationship|emotion","targetSubject":"必须等于已有或候选记忆主题","targetKind":"同上","kind":"supports|depends_on|about|conflicts_with|follows","label":"有证据的简短关系说明","confidence":0.0,"operation":"upsert|remove"}]}
|
|
225
235
|
要求:合并重复理解;人物画像只使用“基本身份、工作背景、长期职责、常用环境、长期目标”五个稳定槽位,并遵守逐轮提炼中的画像证据与隐私规则;结合所有轮次片段纠正逐轮偏差,对被压缩而证据不足的细节保持原状而非猜测;明确任务完成状态;复核并关闭已经完成或失效的挂念;只有对话原文证明事情会延续到当前轮次之后时才能新增挂念,一次性资料收集、搜索、总结、写作、即时执行和普通问答不得新增挂念;不创造对话中没有的事实;relations 只输出需要新增、更新或明确移除的关系,已有且仍成立的关系无需重复;关系两端必须填写准确 kind,upsert 必须有对话证据且 confidence 至少 0.62;remove 用于已有关系已被纠正或失效;conflicts_with 只用于无法同时为真的明确矛盾,不能把普通差异标成冲突;关系最多 80 条;无变化时 relations 返回空数组。`;
|
|
226
|
-
export function parseReflection(raw) {
|
|
236
|
+
export function parseReflection(raw, strict = false) {
|
|
227
237
|
const match = raw.trim().match(/\{[\s\S]*\}/);
|
|
228
238
|
if (!match)
|
|
229
239
|
throw new Error('memory reflection returned no JSON object');
|
|
230
240
|
const value = JSON.parse(match[0]);
|
|
231
241
|
const daily = record(value.daily);
|
|
232
242
|
const memories = Array.isArray(value.memories) ? value.memories.map(parseCandidate).filter((item) => item !== undefined).slice(0, 12) : [];
|
|
243
|
+
if (strict && value.memories !== undefined && (!Array.isArray(value.memories) || value.memories.length !== memories.length)) {
|
|
244
|
+
throw new Error('记忆候选格式无效:请使用支持的类型、画像主题及完整字段;将自动重试');
|
|
245
|
+
}
|
|
233
246
|
const concerns = Array.isArray(value.concerns)
|
|
234
247
|
? value.concerns.map(parseConcern).filter((item) => item !== undefined)
|
|
235
248
|
: [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-reflection.js","sourceRoot":"","sources":["../src/memory-reflection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-reflection.js","sourceRoot":"","sources":["../src/memory-reflection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
/** Caller serializes writes. Preserve IDs, evidence, history and review state. */
|
|
3
|
+
export declare function mergeConversationMemoryScopes(db: DatabaseSync, companionId: string, target: string, sources: string[], recoverLeases?: boolean): void;
|
|
4
|
+
//# sourceMappingURL=memory-scope-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-scope-migration.d.ts","sourceRoot":"","sources":["../src/memory-scope-migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,kFAAkF;AAClF,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,UAAQ,GAAG,IAAI,CAwCnJ"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { mergePersonaScope } from './persona/migration.js';
|
|
2
|
+
/** Caller serializes writes. Preserve IDs, evidence, history and review state. */
|
|
3
|
+
export function mergeConversationMemoryScopes(db, companionId, target, sources, recoverLeases = false) {
|
|
4
|
+
db.exec('BEGIN IMMEDIATE');
|
|
5
|
+
try {
|
|
6
|
+
for (const source of new Set(sources.filter(value => value !== target))) {
|
|
7
|
+
if (!['memories', 'memory_relations', 'memory_jobs', 'daily_reflections', 'memory_scenes', 'memory_experiences', 'persona_state']
|
|
8
|
+
.some(table => db.prepare(`SELECT 1 FROM ${table} WHERE scope_id=? LIMIT 1`).get(source)))
|
|
9
|
+
continue;
|
|
10
|
+
if (recoverLeases)
|
|
11
|
+
db.prepare('UPDATE memory_jobs SET lease_until=0, lease_token=NULL WHERE scope_id IN (?, ?)').run(source, target);
|
|
12
|
+
// Never move a job while another worker owns its extraction result.
|
|
13
|
+
if (db.prepare('SELECT 1 FROM memory_jobs WHERE scope_id IN (?, ?) AND lease_until>? LIMIT 1').get(source, target, Date.now())) {
|
|
14
|
+
throw new Error('记忆正在整理,稍后重试归并');
|
|
15
|
+
}
|
|
16
|
+
mergePersonaScope(db, source, target);
|
|
17
|
+
for (const table of ['memories', 'memory_relations']) {
|
|
18
|
+
db.prepare(`UPDATE ${table} SET scope_id=? WHERE companion_id=? AND scope_id=?`).run(target, companionId, source);
|
|
19
|
+
}
|
|
20
|
+
for (const table of ['memory_scenes', 'memory_experiences']) {
|
|
21
|
+
db.prepare(`UPDATE ${table} SET scope_id=? WHERE scope_id=?`).run(target, source);
|
|
22
|
+
}
|
|
23
|
+
db.prepare(`UPDATE memory_jobs SET scope_id=?, turn_json=json_set(turn_json, '$.concernScopeId',
|
|
24
|
+
coalesce(json_extract(turn_json, '$.concernScopeId'), scope_id), '$.scopeId', ?) WHERE scope_id=?`).run(target, target, source);
|
|
25
|
+
const days = db.prepare('SELECT * FROM daily_reflections WHERE companion_id=? AND scope_id=?').all(companionId, source);
|
|
26
|
+
for (const day of days) {
|
|
27
|
+
const date = String(day.date);
|
|
28
|
+
const existing = db.prepare('SELECT * FROM daily_reflections WHERE scope_id=? AND date=?').get(target, date);
|
|
29
|
+
if (!existing) {
|
|
30
|
+
db.prepare('UPDATE daily_reflections SET scope_id=? WHERE scope_id=? AND date=?').run(target, source, date);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const arrays = ['events_json', 'open_tasks_json', 'completed_tasks_json', 'learnings_json'].map(key => JSON.stringify([...new Set([...JSON.parse(String(existing[key])), ...JSON.parse(String(day[key]))])]));
|
|
34
|
+
const summary = [...new Set([String(existing.summary), String(day.summary)].filter(Boolean))].join('\n\n');
|
|
35
|
+
db.prepare(`UPDATE daily_reflections SET summary=?, events_json=?, open_tasks_json=?, completed_tasks_json=?,
|
|
36
|
+
learnings_json=?, updated_at=?, turn_count=?, reviewed_at=NULL, review_attempts=0, review_error=NULL, next_review_at=0
|
|
37
|
+
WHERE scope_id=? AND date=?`).run(summary, ...arrays, Math.max(Number(existing.updated_at), Number(day.updated_at)), Number(existing.turn_count) + Number(day.turn_count), target, date);
|
|
38
|
+
db.prepare('DELETE FROM daily_reflections WHERE scope_id=? AND date=?').run(source, date);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
db.exec('COMMIT');
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
db.exec('ROLLBACK');
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=memory-scope-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-scope-migration.js","sourceRoot":"","sources":["../src/memory-scope-migration.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAA;AAExD,kFAAkF;AAClF,MAAM,UAAU,6BAA6B,CAAC,EAAgB,EAAE,WAAmB,EAAE,MAAc,EAAE,OAAiB,EAAE,aAAa,GAAG,KAAK;IAC3I,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1B,IAAI,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,CAAC,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,CAAC;iBAC9H,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,KAAK,2BAA2B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAAE,SAAQ;YACrG,IAAI,aAAa;gBAAE,EAAE,CAAC,OAAO,CAAC,iFAAiF,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACpI,oEAAoE;YACpE,IAAI,EAAE,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC/H,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;YAClC,CAAC;YACD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YACrC,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBACrD,EAAE,CAAC,OAAO,CAAC,UAAU,KAAK,qDAAqD,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YACnH,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,EAAE,CAAC;gBAC5D,EAAE,CAAC,OAAO,CAAC,UAAU,KAAK,kCAAkC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACnF,CAAC;YACD,EAAE,CAAC,OAAO,CAAC;0GACyF,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YACjI,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YACvH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC5G,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;oBAC3G,SAAQ;gBACV,CAAC;gBACD,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACpG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxG,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC1G,EAAE,CAAC,OAAO,CAAC;;sCAEmB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EACjH,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;gBACvE,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAC3F,CAAC;QACH,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,KAAK,CAAA;IAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface MemoryRoute {
|
|
2
|
+
companionId: string;
|
|
3
|
+
sessionId: string;
|
|
4
|
+
channelId: string;
|
|
5
|
+
userId: string;
|
|
6
|
+
kind?: string;
|
|
7
|
+
}
|
|
8
|
+
/** Only routes already attached to the same conversation share memory. */
|
|
9
|
+
export declare function conversationMemoryScope(route: MemoryRoute, routes: readonly MemoryRoute[]): string;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=memory-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-scope.d.ts","sourceRoot":"","sources":["../src/memory-scope.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAElH,0EAA0E;AAC1E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAIlG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Only routes already attached to the same conversation share memory. */
|
|
2
|
+
export function conversationMemoryScope(route, routes) {
|
|
3
|
+
const primary = routes.find(item => item.companionId === route.companionId
|
|
4
|
+
&& item.sessionId === route.sessionId && item.kind === 'local');
|
|
5
|
+
return primary ? `${primary.channelId}:${primary.userId}` : `${route.channelId}:${route.userId}`;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=memory-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-scope.js","sourceRoot":"","sources":["../src/memory-scope.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,MAAM,UAAU,uBAAuB,CAAC,KAAkB,EAAE,MAA8B;IACxF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;WACrE,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;IACjE,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;AAClG,CAAC"}
|
package/lib/memory-store.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ConversationTurn, DailyReflection, DailyReviewResult, DailyReviewTarget, MemoryCandidate, MemoryRecallContext, MemoryRelation, MemoryRelationReviewContext, PartnerMemory, UserProfileSnapshot } from './memory-domain.js';
|
|
2
|
+
import type { PersonaJob, PersonaParagraph } from './persona/types.js';
|
|
2
3
|
import { type MemoryJob } from './memory-journal.js';
|
|
3
4
|
import type { ReflectionResult } from './memory-domain.js';
|
|
4
5
|
import { readScenes, readExperienceDrafts } from './memory-artifacts.js';
|
|
@@ -21,6 +22,14 @@ export declare class PartnerMemoryStore {
|
|
|
21
22
|
constructor(root: string, timeZone?: string, privateRoot?: ((id: string) => string) | undefined);
|
|
22
23
|
freeze(): Promise<void>;
|
|
23
24
|
day(at: number): string;
|
|
25
|
+
claimPersona(companionId: string, scopeId: string): Promise<PersonaJob | undefined>;
|
|
26
|
+
finishPersona(job: PersonaJob, paragraphs: PersonaParagraph[]): Promise<void>;
|
|
27
|
+
failPersona(job: PersonaJob, error: string): Promise<void>;
|
|
28
|
+
requestPersona(companionId: string, scopeId: string, version: string, paragraphId?: string, correction?: string): Promise<void>;
|
|
29
|
+
private profileWithPersona;
|
|
30
|
+
mergeScopes(companionId: string, target: string, sources: string[], recoverLeases?: boolean): Promise<void>;
|
|
31
|
+
scheduleProfileRepair(companionId: string, scopeId: string): Promise<number>;
|
|
32
|
+
restoreProfileJob(job: MemoryJob, result: ReflectionResult): Promise<void>;
|
|
24
33
|
enqueue(turn: ConversationTurn): Promise<void>;
|
|
25
34
|
hasPendingTurns(companionId: string, scopeId: string): Promise<boolean>;
|
|
26
35
|
memoryLayers(companionId: string, scopeId: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAuD,mBAAmB,EAAE,cAAc,EAAsB,2BAA2B,EAAgB,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
|
package/lib/memory-store.js
CHANGED
|
@@ -3,6 +3,10 @@ import { appendFile, mkdir, readFile, readdir, rename, rm } from 'node:fs/promis
|
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { DatabaseSync } from 'node:sqlite';
|
|
5
5
|
import { buildProfileSnapshot, canonicalProfileSubject, isProfileBaselineEntry } from './profile-domain.js';
|
|
6
|
+
import { initializePersona, readPersona, claimPersona, finishPersona, failPersona, requestPersona } from './persona/store.js';
|
|
7
|
+
import { personaHash } from './persona/domain.js';
|
|
8
|
+
import { mergeConversationMemoryScopes } from './memory-scope-migration.js';
|
|
9
|
+
import { scheduleProfileRepair } from './memory-journal.js';
|
|
6
10
|
import { initializeMemoryJournal, enqueueMemoryJob, claimMemoryJob, checkpointMemoryJob, settleMemoryJob, assertMemoryLease } from './memory-journal.js';
|
|
7
11
|
import { redactObservationError } from './observation-errors.js';
|
|
8
12
|
import { rankMemories, memoryRelevance, memoryTerms } from './memory-retrieval.js';
|
|
@@ -20,6 +24,50 @@ export class PartnerMemoryStore {
|
|
|
20
24
|
}
|
|
21
25
|
async freeze() { this.frozen = true; await Promise.allSettled(this.writes.values()); }
|
|
22
26
|
day(at) { return localDay(at, this.timeZone); }
|
|
27
|
+
async claimPersona(companionId, scopeId) {
|
|
28
|
+
return this.journal(companionId, db => claimPersona(db, companionId, scopeId));
|
|
29
|
+
}
|
|
30
|
+
async finishPersona(job, paragraphs) {
|
|
31
|
+
await this.journal(job.companionId, db => finishPersona(db, job, paragraphs));
|
|
32
|
+
}
|
|
33
|
+
async failPersona(job, error) {
|
|
34
|
+
await this.journal(job.companionId, db => failPersona(db, job, redactObservationError(error)));
|
|
35
|
+
}
|
|
36
|
+
async requestPersona(companionId, scopeId, version, paragraphId, correction) {
|
|
37
|
+
await this.journal(companionId, db => requestPersona(db, scopeId, version, companionId, paragraphId, correction));
|
|
38
|
+
}
|
|
39
|
+
profileWithPersona(db, companionId, scopeId, memories) {
|
|
40
|
+
const profile = buildProfileSnapshot(companionId, scopeId, memories);
|
|
41
|
+
const persona = readPersona(db, companionId, scopeId);
|
|
42
|
+
const updatedAt = Math.max(profile.updatedAt ?? 0, persona.updatedAt ?? 0);
|
|
43
|
+
return { ...profile, persona, version: personaHash([profile.version, persona.version]).slice(0, 12),
|
|
44
|
+
...(updatedAt ? { updatedAt } : {}) };
|
|
45
|
+
}
|
|
46
|
+
async mergeScopes(companionId, target, sources, recoverLeases = false) {
|
|
47
|
+
await this.journal(companionId, db => mergeConversationMemoryScopes(db, companionId, target, sources, recoverLeases));
|
|
48
|
+
}
|
|
49
|
+
async scheduleProfileRepair(companionId, scopeId) {
|
|
50
|
+
return this.journal(companionId, db => scheduleProfileRepair(db, scopeId));
|
|
51
|
+
}
|
|
52
|
+
async restoreProfileJob(job, result) {
|
|
53
|
+
await this.journal(job.turn.companionId, db => {
|
|
54
|
+
db.exec('BEGIN IMMEDIATE');
|
|
55
|
+
try {
|
|
56
|
+
assertMemoryLease(db, job);
|
|
57
|
+
if (Number(db.prepare('SELECT repair FROM memory_jobs WHERE id=?').get(job.turn.id)?.repair) === 1) {
|
|
58
|
+
const candidates = result.memories.filter(item => item.operation === 'upsert' && (item.kind === 'profile' || item.kind === 'preference'));
|
|
59
|
+
for (const memory of mergeMemories(this.memoriesForScope(db, job.turn.companionId, job.turn.scopeId), candidates, job.turn))
|
|
60
|
+
this.upsertMemory(db, memory);
|
|
61
|
+
db.prepare('UPDATE memory_jobs SET repair=2 WHERE id=?').run(job.turn.id);
|
|
62
|
+
}
|
|
63
|
+
db.exec('COMMIT');
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
rollback(db);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
23
71
|
async enqueue(turn) {
|
|
24
72
|
await this.journal(turn.companionId, db => enqueueMemoryJob(db, turn));
|
|
25
73
|
}
|
|
@@ -157,7 +205,7 @@ export class PartnerMemoryStore {
|
|
|
157
205
|
const memories = database.prepare(`SELECT * FROM memories
|
|
158
206
|
WHERE companion_id = ? AND scope_id = ? AND status = 'active' AND (expires_at IS NULL OR expires_at > ?)
|
|
159
207
|
ORDER BY updated_at DESC`).all(companionId, scopeId, now).map(memoryFromRow);
|
|
160
|
-
const profile =
|
|
208
|
+
const profile = this.profileWithPersona(database, companionId, scopeId, memories);
|
|
161
209
|
const baselineIds = new Set([...profile.entries, ...(profile.preferences ?? [])].map(entry => entry.id));
|
|
162
210
|
const scored = rankMemories(memories.filter(item => !baselineIds.has(item.id) && (item.kind !== 'profile' || isProfileBaselineEntry(item))), query, now);
|
|
163
211
|
const recall = expandRecallWithRelations(database, companionId, scopeId, memories, scored, baselineIds, Math.max(0, Math.min(100, limit)));
|
|
@@ -182,7 +230,7 @@ export class PartnerMemoryStore {
|
|
|
182
230
|
const rows = database.prepare(`SELECT * FROM memories WHERE companion_id = ? AND scope_id = ?
|
|
183
231
|
AND kind IN ('profile', 'preference') AND status = 'active' AND (expires_at IS NULL OR expires_at > ?)
|
|
184
232
|
ORDER BY updated_at DESC`).all(companionId, scopeId, Date.now());
|
|
185
|
-
return
|
|
233
|
+
return this.profileWithPersona(database, companionId, scopeId, rows.map(memoryFromRow));
|
|
186
234
|
}
|
|
187
235
|
finally {
|
|
188
236
|
database.close();
|
|
@@ -200,7 +248,7 @@ export class PartnerMemoryStore {
|
|
|
200
248
|
for (const scopeId of knownScopeIds)
|
|
201
249
|
if (!grouped.has(scopeId))
|
|
202
250
|
grouped.set(scopeId, []);
|
|
203
|
-
return [...grouped].map(([scopeId, memories]) =>
|
|
251
|
+
return [...grouped].map(([scopeId, memories]) => this.profileWithPersona(database, companionId, scopeId, memories))
|
|
204
252
|
.sort((a, b) => (b.updatedAt ?? 0) - (a.updatedAt ?? 0));
|
|
205
253
|
}
|
|
206
254
|
finally {
|
|
@@ -505,6 +553,7 @@ export class PartnerMemoryStore {
|
|
|
505
553
|
ensureColumn(database, 'daily_reflections', 'next_review_at', 'INTEGER NOT NULL DEFAULT 0');
|
|
506
554
|
initializeMemoryJournal(database);
|
|
507
555
|
initializeMemoryArtifacts(database);
|
|
556
|
+
initializePersona(database);
|
|
508
557
|
return database;
|
|
509
558
|
}
|
|
510
559
|
catch (error) {
|