@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.
Files changed (231) hide show
  1. package/README.md +10 -0
  2. package/docs/direct-channels.md +17 -0
  3. package/docs/mcp.md +54 -0
  4. package/docs/memory-quality.md +26 -0
  5. package/docs/releases/2.3.0.md +29 -0
  6. package/docs/releases/2.4.0.md +11 -0
  7. package/lib/agent-runtime.d.ts.map +1 -1
  8. package/lib/agent-runtime.js +16 -9
  9. package/lib/agent-runtime.js.map +1 -1
  10. package/lib/api/features/mcp-api.d.ts +4 -0
  11. package/lib/api/features/mcp-api.d.ts.map +1 -0
  12. package/lib/api/features/mcp-api.js +37 -0
  13. package/lib/api/features/mcp-api.js.map +1 -0
  14. package/lib/api/features/memory-layers-api.d.ts.map +1 -1
  15. package/lib/api/features/memory-layers-api.js +10 -1
  16. package/lib/api/features/memory-layers-api.js.map +1 -1
  17. package/lib/api.d.ts +2 -0
  18. package/lib/api.d.ts.map +1 -1
  19. package/lib/api.js +11 -2
  20. package/lib/api.js.map +1 -1
  21. package/lib/capabilities.d.ts +1 -1
  22. package/lib/capabilities.d.ts.map +1 -1
  23. package/lib/capabilities.js +2 -2
  24. package/lib/capabilities.js.map +1 -1
  25. package/lib/channels/direct/discovery.d.ts.map +1 -1
  26. package/lib/channels/direct/discovery.js +9 -4
  27. package/lib/channels/direct/discovery.js.map +1 -1
  28. package/lib/channels/direct/dispatcher.d.ts +16 -0
  29. package/lib/channels/direct/dispatcher.d.ts.map +1 -0
  30. package/lib/channels/direct/dispatcher.js +46 -0
  31. package/lib/channels/direct/dispatcher.js.map +1 -0
  32. package/lib/channels/direct/matrix-timeline.d.ts +4 -0
  33. package/lib/channels/direct/matrix-timeline.d.ts.map +1 -0
  34. package/lib/channels/direct/matrix-timeline.js +49 -0
  35. package/lib/channels/direct/matrix-timeline.js.map +1 -0
  36. package/lib/channels/direct/retry-policy.d.ts +3 -0
  37. package/lib/channels/direct/retry-policy.d.ts.map +1 -0
  38. package/lib/channels/direct/retry-policy.js +9 -0
  39. package/lib/channels/direct/retry-policy.js.map +1 -0
  40. package/lib/channels/direct/transport.d.ts.map +1 -1
  41. package/lib/channels/direct/transport.js +9 -3
  42. package/lib/channels/direct/transport.js.map +1 -1
  43. package/lib/channels/manager.d.ts +2 -1
  44. package/lib/channels/manager.d.ts.map +1 -1
  45. package/lib/channels/manager.js +104 -54
  46. package/lib/channels/manager.js.map +1 -1
  47. package/lib/client-api.d.ts +1 -0
  48. package/lib/client-api.d.ts.map +1 -1
  49. package/lib/client.d.ts.map +1 -1
  50. package/lib/client.js +2508 -1976
  51. package/lib/client.js.map +4 -4
  52. package/lib/collaboration/composition.d.ts +3 -0
  53. package/lib/collaboration/composition.d.ts.map +1 -1
  54. package/lib/collaboration/composition.js +5 -1
  55. package/lib/collaboration/composition.js.map +1 -1
  56. package/lib/collaboration/domain.d.ts +3 -0
  57. package/lib/collaboration/domain.d.ts.map +1 -1
  58. package/lib/collaboration/domain.js.map +1 -1
  59. package/lib/collaboration/review-dispatch.d.ts +5 -0
  60. package/lib/collaboration/review-dispatch.d.ts.map +1 -0
  61. package/lib/collaboration/review-dispatch.js +23 -0
  62. package/lib/collaboration/review-dispatch.js.map +1 -0
  63. package/lib/collaboration/service.d.ts.map +1 -1
  64. package/lib/collaboration/service.js +12 -3
  65. package/lib/collaboration/service.js.map +1 -1
  66. package/lib/companions/management.d.ts +4 -4
  67. package/lib/companions/removal.d.ts.map +1 -1
  68. package/lib/companions/removal.js +2 -0
  69. package/lib/companions/removal.js.map +1 -1
  70. package/lib/companions/session-configuration.d.ts.map +1 -1
  71. package/lib/companions/session-configuration.js +2 -0
  72. package/lib/companions/session-configuration.js.map +1 -1
  73. package/lib/domain.d.ts +2 -0
  74. package/lib/domain.d.ts.map +1 -1
  75. package/lib/domain.js.map +1 -1
  76. package/lib/execution/service.d.ts +3 -1
  77. package/lib/execution/service.d.ts.map +1 -1
  78. package/lib/execution/service.js +4 -0
  79. package/lib/execution/service.js.map +1 -1
  80. package/lib/index.d.ts.map +1 -1
  81. package/lib/index.js +31 -5
  82. package/lib/index.js.map +1 -1
  83. package/lib/mcp/config.d.ts +10 -0
  84. package/lib/mcp/config.d.ts.map +1 -0
  85. package/lib/mcp/config.js +54 -0
  86. package/lib/mcp/config.js.map +1 -0
  87. package/lib/mcp/connection-error.d.ts +3 -0
  88. package/lib/mcp/connection-error.d.ts.map +1 -0
  89. package/lib/mcp/connection-error.js +31 -0
  90. package/lib/mcp/connection-error.js.map +1 -0
  91. package/lib/mcp/connections.d.ts +11 -0
  92. package/lib/mcp/connections.d.ts.map +1 -0
  93. package/lib/mcp/connections.js +91 -0
  94. package/lib/mcp/connections.js.map +1 -0
  95. package/lib/mcp/credentials.d.ts +11 -0
  96. package/lib/mcp/credentials.d.ts.map +1 -0
  97. package/lib/mcp/credentials.js +25 -0
  98. package/lib/mcp/credentials.js.map +1 -0
  99. package/lib/mcp/domain.d.ts +41 -0
  100. package/lib/mcp/domain.d.ts.map +1 -0
  101. package/lib/mcp/domain.js +2 -0
  102. package/lib/mcp/domain.js.map +1 -0
  103. package/lib/mcp/edit-config.d.ts +6 -0
  104. package/lib/mcp/edit-config.d.ts.map +1 -0
  105. package/lib/mcp/edit-config.js +36 -0
  106. package/lib/mcp/edit-config.js.map +1 -0
  107. package/lib/mcp/service.d.ts +31 -0
  108. package/lib/mcp/service.d.ts.map +1 -0
  109. package/lib/mcp/service.js +227 -0
  110. package/lib/mcp/service.js.map +1 -0
  111. package/lib/mcp/state.d.ts +4 -0
  112. package/lib/mcp/state.d.ts.map +1 -0
  113. package/lib/mcp/state.js +29 -0
  114. package/lib/mcp/state.js.map +1 -0
  115. package/lib/memory-domain.d.ts +3 -0
  116. package/lib/memory-domain.d.ts.map +1 -1
  117. package/lib/memory-journal.d.ts +3 -0
  118. package/lib/memory-journal.d.ts.map +1 -1
  119. package/lib/memory-journal.js +32 -3
  120. package/lib/memory-journal.js.map +1 -1
  121. package/lib/memory-quality.d.ts +2 -0
  122. package/lib/memory-quality.d.ts.map +1 -1
  123. package/lib/memory-quality.js +8 -0
  124. package/lib/memory-quality.js.map +1 -1
  125. package/lib/memory-reflection.d.ts +1 -1
  126. package/lib/memory-reflection.d.ts.map +1 -1
  127. package/lib/memory-reflection.js +26 -13
  128. package/lib/memory-reflection.js.map +1 -1
  129. package/lib/memory-scope-migration.d.ts +4 -0
  130. package/lib/memory-scope-migration.d.ts.map +1 -0
  131. package/lib/memory-scope-migration.js +48 -0
  132. package/lib/memory-scope-migration.js.map +1 -0
  133. package/lib/memory-scope.d.ts +11 -0
  134. package/lib/memory-scope.d.ts.map +1 -0
  135. package/lib/memory-scope.js +7 -0
  136. package/lib/memory-scope.js.map +1 -0
  137. package/lib/memory-store.d.ts +9 -0
  138. package/lib/memory-store.d.ts.map +1 -1
  139. package/lib/memory-store.js +52 -3
  140. package/lib/memory-store.js.map +1 -1
  141. package/lib/persona/domain.d.ts +6 -0
  142. package/lib/persona/domain.d.ts.map +1 -0
  143. package/lib/persona/domain.js +44 -0
  144. package/lib/persona/domain.js.map +1 -0
  145. package/lib/persona/migration.d.ts +4 -0
  146. package/lib/persona/migration.d.ts.map +1 -0
  147. package/lib/persona/migration.js +22 -0
  148. package/lib/persona/migration.js.map +1 -0
  149. package/lib/persona/service.d.ts +20 -0
  150. package/lib/persona/service.d.ts.map +1 -0
  151. package/lib/persona/service.js +69 -0
  152. package/lib/persona/service.js.map +1 -0
  153. package/lib/persona/store.d.ts +11 -0
  154. package/lib/persona/store.d.ts.map +1 -0
  155. package/lib/persona/store.js +153 -0
  156. package/lib/persona/store.js.map +1 -0
  157. package/lib/persona/types.d.ts +41 -0
  158. package/lib/persona/types.d.ts.map +1 -0
  159. package/lib/persona/types.js +2 -0
  160. package/lib/persona/types.js.map +1 -0
  161. package/lib/profile-domain.d.ts.map +1 -1
  162. package/lib/profile-domain.js +2 -1
  163. package/lib/profile-domain.js.map +1 -1
  164. package/lib/requirements/plan-schema.d.ts +1 -0
  165. package/lib/requirements/plan-schema.d.ts.map +1 -1
  166. package/lib/requirements/plan-schema.js +2 -2
  167. package/lib/requirements/plan-schema.js.map +1 -1
  168. package/lib/skills/task-planning.d.ts +2 -2
  169. package/lib/skills/task-planning.d.ts.map +1 -1
  170. package/lib/skills/task-planning.js +3 -2
  171. package/lib/skills/task-planning.js.map +1 -1
  172. package/lib/storage/migrate-layout.d.ts.map +1 -1
  173. package/lib/storage/migrate-layout.js +1 -0
  174. package/lib/storage/migrate-layout.js.map +1 -1
  175. package/lib/storage/split-state.js +2 -2
  176. package/lib/storage/split-state.js.map +1 -1
  177. package/lib/store.d.ts.map +1 -1
  178. package/lib/store.js +2 -0
  179. package/lib/store.js.map +1 -1
  180. package/lib/tasks/scheduling.d.ts.map +1 -1
  181. package/lib/tasks/scheduling.js +3 -0
  182. package/lib/tasks/scheduling.js.map +1 -1
  183. package/lib/ui/capability-editor.d.ts.map +1 -1
  184. package/lib/ui/capability-editor.js +26 -17
  185. package/lib/ui/capability-editor.js.map +1 -1
  186. package/lib/ui/capability-resources.d.ts +12 -0
  187. package/lib/ui/capability-resources.d.ts.map +1 -0
  188. package/lib/ui/capability-resources.js +39 -0
  189. package/lib/ui/capability-resources.js.map +1 -0
  190. package/lib/ui/companion-access-panel.d.ts +2 -1
  191. package/lib/ui/companion-access-panel.d.ts.map +1 -1
  192. package/lib/ui/companion-access-panel.js +5 -1
  193. package/lib/ui/companion-access-panel.js.map +1 -1
  194. package/lib/ui/mcp-capabilities.d.ts +6 -0
  195. package/lib/ui/mcp-capabilities.d.ts.map +1 -0
  196. package/lib/ui/mcp-capabilities.js +53 -0
  197. package/lib/ui/mcp-capabilities.js.map +1 -0
  198. package/lib/ui/mcp-editor.d.ts +7 -0
  199. package/lib/ui/mcp-editor.d.ts.map +1 -0
  200. package/lib/ui/mcp-editor.js +85 -0
  201. package/lib/ui/mcp-editor.js.map +1 -0
  202. package/lib/ui/mcp-panel.d.ts +2 -0
  203. package/lib/ui/mcp-panel.d.ts.map +1 -0
  204. package/lib/ui/mcp-panel.js +61 -0
  205. package/lib/ui/mcp-panel.js.map +1 -0
  206. package/lib/ui/memory/memory-library.d.ts +2 -1
  207. package/lib/ui/memory/memory-library.d.ts.map +1 -1
  208. package/lib/ui/memory/memory-library.js +7 -6
  209. package/lib/ui/memory/memory-library.js.map +1 -1
  210. package/lib/ui/memory/memory-panel.d.ts.map +1 -1
  211. package/lib/ui/memory/memory-panel.js +10 -3
  212. package/lib/ui/memory/memory-panel.js.map +1 -1
  213. package/lib/ui/memory/persona-view.d.ts +9 -0
  214. package/lib/ui/memory/persona-view.d.ts.map +1 -0
  215. package/lib/ui/memory/persona-view.js +43 -0
  216. package/lib/ui/memory/persona-view.js.map +1 -0
  217. package/lib/ui/memory/types.d.ts +1 -1
  218. package/lib/ui/memory/types.d.ts.map +1 -1
  219. package/lib/ui/skills-panel.d.ts +2 -1
  220. package/lib/ui/skills-panel.d.ts.map +1 -1
  221. package/lib/ui/skills-panel.js +5 -1
  222. package/lib/ui/skills-panel.js.map +1 -1
  223. package/lib/ui/workspace-components.d.ts +2 -1
  224. package/lib/ui/workspace-components.d.ts.map +1 -1
  225. package/lib/ui/workspace-components.js +10 -5
  226. package/lib/ui/workspace-components.js.map +1 -1
  227. package/lib/ui/workspace-navigation.d.ts +9 -1
  228. package/lib/ui/workspace-navigation.d.ts.map +1 -1
  229. package/lib/ui/workspace-navigation.js +1 -0
  230. package/lib/ui/workspace-navigation.js.map +1 -1
  231. 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;IAqBlB,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;AAmCD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAiB7D;AAiBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAe/D"}
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"}
@@ -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 = groundMemoryCandidates(result.memories, [turn]);
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.0,"importance":0.0,"operation":"upsert|complete|remove","expiresInDays":3}],"concerns":[{"subject":"尚未闭环的具体事情","reason":"为什么伙伴应该继续惦记","operation":"upsert|resolve|dismiss","priority":0.0,"confidence":0.0,"watchKind":"auto|knowledge|workspace|web","watchQuery":"用于观察变化的具体对象或问题"}]}
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":"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"}
@@ -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"}
@@ -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":"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"}
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
@@ -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 = buildProfileSnapshot(companionId, scopeId, memories);
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 buildProfileSnapshot(companionId, scopeId, rows.map(memoryFromRow));
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]) => buildProfileSnapshot(companionId, 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) {