@devflow-tools/memory-engine 0.17.8 → 0.18.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/dist/consolidator.d.ts.map +1 -1
  3. package/dist/consolidator.js +2 -0
  4. package/dist/consolidator.js.map +1 -1
  5. package/dist/embedding-model-store.d.ts +1 -4
  6. package/dist/embedding-model-store.d.ts.map +1 -1
  7. package/dist/embedding-model-store.js +3 -75
  8. package/dist/embedding-model-store.js.map +1 -1
  9. package/dist/embedding-provider.d.ts +3 -2
  10. package/dist/embedding-provider.d.ts.map +1 -1
  11. package/dist/embedding-provider.js +151 -43
  12. package/dist/embedding-provider.js.map +1 -1
  13. package/dist/hybrid-search.d.ts +5 -1
  14. package/dist/hybrid-search.d.ts.map +1 -1
  15. package/dist/hybrid-search.js +92 -56
  16. package/dist/hybrid-search.js.map +1 -1
  17. package/dist/index.d.ts +16 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +8 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/lease-store.d.ts.map +1 -1
  22. package/dist/lease-store.js +30 -0
  23. package/dist/lease-store.js.map +1 -1
  24. package/dist/memory-command-service.d.ts +73 -0
  25. package/dist/memory-command-service.d.ts.map +1 -0
  26. package/dist/memory-command-service.js +283 -0
  27. package/dist/memory-command-service.js.map +1 -0
  28. package/dist/memory-engine.d.ts +19 -15
  29. package/dist/memory-engine.d.ts.map +1 -1
  30. package/dist/memory-engine.js +207 -158
  31. package/dist/memory-engine.js.map +1 -1
  32. package/dist/memory-episode-repository.d.ts +77 -0
  33. package/dist/memory-episode-repository.d.ts.map +1 -0
  34. package/dist/memory-episode-repository.js +262 -0
  35. package/dist/memory-episode-repository.js.map +1 -0
  36. package/dist/memory-fact-provider-port.d.ts +83 -0
  37. package/dist/memory-fact-provider-port.d.ts.map +1 -0
  38. package/dist/memory-fact-provider-port.js +22 -0
  39. package/dist/memory-fact-provider-port.js.map +1 -0
  40. package/dist/memory-fact-validator.d.ts +16 -0
  41. package/dist/memory-fact-validator.d.ts.map +1 -0
  42. package/dist/memory-fact-validator.js +52 -0
  43. package/dist/memory-fact-validator.js.map +1 -0
  44. package/dist/memory-gate.d.ts +14 -17
  45. package/dist/memory-gate.d.ts.map +1 -1
  46. package/dist/memory-gate.js +369 -329
  47. package/dist/memory-gate.js.map +1 -1
  48. package/dist/memory-identity-compiler.d.ts +18 -0
  49. package/dist/memory-identity-compiler.d.ts.map +1 -0
  50. package/dist/memory-identity-compiler.js +26 -0
  51. package/dist/memory-identity-compiler.js.map +1 -0
  52. package/dist/memory-index-projector.d.ts +22 -0
  53. package/dist/memory-index-projector.d.ts.map +1 -0
  54. package/dist/memory-index-projector.js +11 -0
  55. package/dist/memory-index-projector.js.map +1 -0
  56. package/dist/memory-lifecycle-reducer.d.ts +21 -0
  57. package/dist/memory-lifecycle-reducer.d.ts.map +1 -0
  58. package/dist/memory-lifecycle-reducer.js +34 -0
  59. package/dist/memory-lifecycle-reducer.js.map +1 -0
  60. package/dist/memory-maintenance.d.ts +1 -4
  61. package/dist/memory-maintenance.d.ts.map +1 -1
  62. package/dist/memory-maintenance.js +3 -20
  63. package/dist/memory-maintenance.js.map +1 -1
  64. package/dist/memory-query-service.d.ts +24 -0
  65. package/dist/memory-query-service.d.ts.map +1 -0
  66. package/dist/memory-query-service.js +180 -0
  67. package/dist/memory-query-service.js.map +1 -0
  68. package/dist/memory-relevance.d.ts +16 -1
  69. package/dist/memory-relevance.d.ts.map +1 -1
  70. package/dist/memory-relevance.js +83 -139
  71. package/dist/memory-relevance.js.map +1 -1
  72. package/dist/memory-store.d.ts +52 -36
  73. package/dist/memory-store.d.ts.map +1 -1
  74. package/dist/memory-store.js +406 -704
  75. package/dist/memory-store.js.map +1 -1
  76. package/dist/semantic-memory-compiler.d.ts +0 -2
  77. package/dist/semantic-memory-compiler.d.ts.map +1 -1
  78. package/dist/semantic-memory-compiler.js +4 -4
  79. package/dist/semantic-memory-compiler.js.map +1 -1
  80. package/dist/session-summarizer.d.ts +3 -0
  81. package/dist/session-summarizer.d.ts.map +1 -1
  82. package/dist/session-summarizer.js.map +1 -1
  83. package/dist/signal-analyzer.d.ts +2 -2
  84. package/dist/signal-analyzer.d.ts.map +1 -1
  85. package/dist/signal-analyzer.js +10 -16
  86. package/dist/signal-analyzer.js.map +1 -1
  87. package/package.json +14 -5
  88. package/dist/lease-store.test.d.ts +0 -2
  89. package/dist/lease-store.test.d.ts.map +0 -1
  90. package/dist/lease-store.test.js +0 -182
  91. package/dist/lease-store.test.js.map +0 -1
  92. package/dist/migrations/v10-to-v11.d.ts +0 -3
  93. package/dist/migrations/v10-to-v11.d.ts.map +0 -1
  94. package/dist/migrations/v10-to-v11.js +0 -21
  95. package/dist/migrations/v10-to-v11.js.map +0 -1
  96. package/dist/migrations/v11-to-v12.d.ts +0 -66
  97. package/dist/migrations/v11-to-v12.d.ts.map +0 -1
  98. package/dist/migrations/v11-to-v12.js +0 -577
  99. package/dist/migrations/v11-to-v12.js.map +0 -1
  100. package/dist/migrations/v12-to-v13.d.ts +0 -3
  101. package/dist/migrations/v12-to-v13.d.ts.map +0 -1
  102. package/dist/migrations/v12-to-v13.js +0 -50
  103. package/dist/migrations/v12-to-v13.js.map +0 -1
  104. package/dist/migrations/v2-to-v3.d.ts +0 -3
  105. package/dist/migrations/v2-to-v3.d.ts.map +0 -1
  106. package/dist/migrations/v2-to-v3.js +0 -122
  107. package/dist/migrations/v2-to-v3.js.map +0 -1
  108. package/dist/migrations/v2-to-v3.test.d.ts +0 -2
  109. package/dist/migrations/v2-to-v3.test.d.ts.map +0 -1
  110. package/dist/migrations/v2-to-v3.test.js +0 -88
  111. package/dist/migrations/v2-to-v3.test.js.map +0 -1
  112. package/dist/migrations/v3-to-v4.d.ts +0 -3
  113. package/dist/migrations/v3-to-v4.d.ts.map +0 -1
  114. package/dist/migrations/v3-to-v4.js +0 -97
  115. package/dist/migrations/v3-to-v4.js.map +0 -1
  116. package/dist/migrations/v4-to-v5.d.ts +0 -3
  117. package/dist/migrations/v4-to-v5.d.ts.map +0 -1
  118. package/dist/migrations/v4-to-v5.js +0 -34
  119. package/dist/migrations/v4-to-v5.js.map +0 -1
  120. package/dist/migrations/v4-to-v5.test.d.ts +0 -2
  121. package/dist/migrations/v4-to-v5.test.d.ts.map +0 -1
  122. package/dist/migrations/v4-to-v5.test.js +0 -32
  123. package/dist/migrations/v4-to-v5.test.js.map +0 -1
  124. package/dist/migrations/v6-to-v7.d.ts +0 -3
  125. package/dist/migrations/v6-to-v7.d.ts.map +0 -1
  126. package/dist/migrations/v6-to-v7.js +0 -18
  127. package/dist/migrations/v6-to-v7.js.map +0 -1
  128. package/dist/migrations/v6-to-v7.test.d.ts +0 -2
  129. package/dist/migrations/v6-to-v7.test.d.ts.map +0 -1
  130. package/dist/migrations/v6-to-v7.test.js +0 -33
  131. package/dist/migrations/v6-to-v7.test.js.map +0 -1
  132. package/dist/migrations/v7-to-v8.d.ts +0 -3
  133. package/dist/migrations/v7-to-v8.d.ts.map +0 -1
  134. package/dist/migrations/v7-to-v8.js +0 -20
  135. package/dist/migrations/v7-to-v8.js.map +0 -1
  136. package/dist/migrations/v8-to-v9.d.ts +0 -3
  137. package/dist/migrations/v8-to-v9.d.ts.map +0 -1
  138. package/dist/migrations/v8-to-v9.js +0 -18
  139. package/dist/migrations/v8-to-v9.js.map +0 -1
  140. package/dist/migrations/v9-to-v10.d.ts +0 -3
  141. package/dist/migrations/v9-to-v10.d.ts.map +0 -1
  142. package/dist/migrations/v9-to-v10.js +0 -45
  143. package/dist/migrations/v9-to-v10.js.map +0 -1
  144. package/dist/migrations/v9-to-v10.test.d.ts +0 -2
  145. package/dist/migrations/v9-to-v10.test.d.ts.map +0 -1
  146. package/dist/migrations/v9-to-v10.test.js +0 -40
  147. package/dist/migrations/v9-to-v10.test.js.map +0 -1
  148. package/dist/preference-conflicts.test.d.ts +0 -2
  149. package/dist/preference-conflicts.test.d.ts.map +0 -1
  150. package/dist/preference-conflicts.test.js +0 -80
  151. package/dist/preference-conflicts.test.js.map +0 -1
  152. package/dist/semantic-memory.test.d.ts +0 -2
  153. package/dist/semantic-memory.test.d.ts.map +0 -1
  154. package/dist/semantic-memory.test.js +0 -61
  155. package/dist/semantic-memory.test.js.map +0 -1
@@ -1,6 +1,35 @@
1
1
  export const MEMORY_SEMANTIC_ELIGIBILITY_THRESHOLD = 0.55;
2
2
  export const MEMORY_LEXICAL_ELIGIBILITY_THRESHOLD = 0.25;
3
3
  export const MEMORY_SELECTION_THRESHOLD = 0.35;
4
+ /** Hard safety checks only. Applicability is intentionally not decided here. */
5
+ export function applyMemorySafetyEligibility(input) {
6
+ if (input.resolutionState === 'superseded')
7
+ return { allowed: false, rejectionReason: 'superseded' };
8
+ if (isOperationalObservation(input.type, input.title, input.content)) {
9
+ return { allowed: false, rejectionReason: 'operational_observation' };
10
+ }
11
+ const failureScoped = input.type === 'error_resolution'
12
+ || /\b(?:error|failed?|failure|exception|crash|timeout|fallback)\b|报错|错误|失败|异常/iu
13
+ .test(`${input.title}\n${input.content}`);
14
+ const intent = taskIntent(input.semanticTask?.primaryIntent ?? input.purpose);
15
+ if (failureScoped && input.failureCategory && !isFailureCategoryApplicable(intent)) {
16
+ return { allowed: false, rejectionReason: 'incompatible_failure_category' };
17
+ }
18
+ const hardConstraint = isHardConstraint(input.type, input.source, input.title, input.content);
19
+ const explicitPreference = input.source === 'explicit_intent' && input.type === 'user_preference';
20
+ if (hardConstraint && !explicitPreference && input.evidenceStatus !== 'verified') {
21
+ return { allowed: false, rejectionReason: 'unverified_constraint' };
22
+ }
23
+ if (!isScopeApplicable(input.scope, input.semanticTask?.targetAnchors ?? [])) {
24
+ return { allowed: false, rejectionReason: 'inapplicable_scope' };
25
+ }
26
+ const queryPolarity = input.semanticTask?.queryPolarity ?? 'neutral';
27
+ if (queryPolarity !== 'neutral' && input.semanticPolarity
28
+ && input.semanticPolarity !== 'neutral' && queryPolarity !== input.semanticPolarity) {
29
+ return { allowed: false, rejectionReason: 'incompatible_polarity' };
30
+ }
31
+ return { allowed: true };
32
+ }
4
33
  const STOP_WORDS = new Set([
5
34
  'about', 'after', 'always', 'before', 'component', 'components', 'convention', 'devflow',
6
35
  'from', 'have', 'into', 'project', 'remember', 'should', 'that', 'this', 'use', 'using', 'with',
@@ -28,7 +57,10 @@ const KNOWN_TECHNICAL_ENTITIES = new Set(ENTITY_ALIASES.map(definition => defini
28
57
  export function evaluateMemoryRelevance(input) {
29
58
  const semantic = clamp(input.semanticScore ?? 0);
30
59
  const lexical = clamp(input.lexicalScore ?? 0);
31
- const queryEntities = normalizeMemoryEntities(input.query);
60
+ const queryEntities = normalizeMemoryEntities([
61
+ ...(input.semanticTask?.entities ?? []),
62
+ input.query,
63
+ ].join(' '));
32
64
  const candidateEntities = normalizeMemoryEntities(`${input.title}\n${input.content}\n${(input.concepts ?? []).join(' ')}`);
33
65
  const identityEntities = normalizeMemoryEntities((input.entities ?? []).join(' '));
34
66
  const queryHasTechnicalEntity = [...queryEntities].some(entity => KNOWN_TECHNICAL_ENTITIES.has(entity));
@@ -38,15 +70,13 @@ export function evaluateMemoryRelevance(input) {
38
70
  const rawEntityOverlap = overlapScore(queryEntities, overlapCandidates);
39
71
  const exactTechnicalEntityMatch = [...queryEntities].some(entity => KNOWN_TECHNICAL_ENTITIES.has(entity) && overlapCandidates.has(entity));
40
72
  const entityOverlap = exactTechnicalEntityMatch ? Math.max(rawEntityOverlap, 1) : rawEntityOverlap;
41
- const intent = inferTaskIntent(input.query, input.purpose);
42
- const facet = input.facet ?? inferMemoryFacet(candidateEntities, `${input.title}\n${input.content}`);
43
- const queryDomains = inferDomainFamilies(input.query);
44
- const candidateDomains = inferDomainFamilies(`${input.title}\n${input.content}\n${(input.concepts ?? []).join(' ')}`);
45
- const queryPolarity = inferQueryPolarity(input.query);
46
- const policyApplicable = facet !== 'generic' && facet !== 'animation'
73
+ const intent = taskIntent(input.semanticTask?.primaryIntent ?? input.purpose);
74
+ const facet = input.facet ?? 'generic';
75
+ const queryPolarity = input.semanticTask?.queryPolarity ?? 'neutral';
76
+ const policyApplicable = facet !== 'generic'
47
77
  && (input.requiredPolicyFacets ?? []).includes(facet);
48
78
  const facetApplicable = entityOverlap > 0 || policyApplicable
49
- || isFacetApplicable(facet, intent, input.query, input.action);
79
+ || isFacetApplicable(facet, intent, input.semanticTask?.primaryAction ?? input.action);
50
80
  const evidenceStrength = getEvidenceStrength(input.source, input.evidenceStatus);
51
81
  const taskApplicability = getTaskApplicability(input.type, facet, intent, facetApplicable);
52
82
  const confidence = clamp(input.confidence);
@@ -70,53 +100,35 @@ export function evaluateMemoryRelevance(input) {
70
100
  eligible: false,
71
101
  score: 0,
72
102
  rejectionReason,
103
+ applicabilityStatus: 'unknown',
73
104
  applicability,
74
105
  signals,
75
106
  });
76
- if (input.resolutionState === 'superseded')
77
- return reject('superseded');
78
- if (isOperationalObservation(input.type, input.title, input.content)) {
79
- return reject('operational_observation');
80
- }
81
- const failureScoped = input.type === 'error_resolution'
82
- || /\b(?:error|failed?|failure|exception|crash|timeout|fallback)\b|报错|错误|失败|异常/iu
83
- .test(`${input.title}\n${input.content}`);
84
- if (failureScoped && input.failureCategory
85
- && !isFailureCategoryApplicable(input.failureCategory, intent, input.query)) {
86
- return reject('incompatible_failure_category');
87
- }
107
+ const safety = applyMemorySafetyEligibility(input);
108
+ if (!safety.allowed)
109
+ return reject(safety.rejectionReason);
88
110
  const hardConstraint = isHardConstraint(input.type, input.source, input.title, input.content);
89
- const legacyExplicitPreference = input.source === 'explicit_intent' && input.type === 'user_preference';
90
- if (hardConstraint && !legacyExplicitPreference && input.evidenceStatus !== 'verified') {
91
- return reject('unverified_constraint');
92
- }
93
- if (!isScopeApplicable(input.scope, input.query))
94
- return reject('inapplicable_scope');
95
- if (queryDomains.size > 0 && candidateDomains.size > 0
96
- && !setsOverlap(queryDomains, candidateDomains)
97
- && !policyApplicable) {
98
- return reject('incompatible_domain');
99
- }
100
- if (queryPolarity !== 'neutral' && input.semanticPolarity
101
- && input.semanticPolarity !== 'neutral' && queryPolarity !== input.semanticPolarity) {
102
- return reject('incompatible_polarity');
103
- }
104
- if (facet !== 'generic' && !facetApplicable)
111
+ const requiredFacet = facet !== 'generic' && (input.requiredPolicyFacets ?? []).includes(facet);
112
+ if (requiredFacet && !facetApplicable)
105
113
  return reject('inapplicable_facet');
106
114
  const focusedFrameworkTask = facet === 'framework'
107
115
  && (intent === 'performance' || intent === 'code' || intent === 'debug');
108
116
  const specificEntityOverlap = overlapScore(withoutEntities(queryEntities, ['react']), withoutEntities(candidateEntities, ['react']));
109
- if (focusedFrameworkTask
117
+ if (focusedFrameworkTask && requiredFacet
110
118
  && !policyApplicable
111
119
  && specificEntityOverlap === 0
112
120
  && Math.max(semantic, lexical) < MEMORY_SEMANTIC_ELIGIBILITY_THRESHOLD) {
113
121
  return reject('no_applicable_signal');
114
122
  }
123
+ const facetProvidesTypedApplicability = facet !== 'generic' && facet !== 'framework' && facetApplicable;
124
+ const hasTypedApplicability = entityOverlap > 0
125
+ || policyApplicable
126
+ || facetProvidesTypedApplicability
127
+ || (hardConstraint && facetProvidesTypedApplicability);
128
+ const applicabilityStatus = hasTypedApplicability ? 'known' : 'unknown';
115
129
  const hasEligibilitySignal = semantic >= MEMORY_SEMANTIC_ELIGIBILITY_THRESHOLD
116
130
  || lexical >= MEMORY_LEXICAL_ELIGIBILITY_THRESHOLD
117
- || entityOverlap > 0
118
- || policyApplicable
119
- || (hardConstraint && facetApplicable);
131
+ || hasTypedApplicability;
120
132
  if (!hasEligibilitySignal)
121
133
  return reject('no_applicable_signal');
122
134
  const retrievalEvidence = Math.max(semantic, lexical);
@@ -131,10 +143,12 @@ export function evaluateMemoryRelevance(input) {
131
143
  ? 0.45 + 0.15 * evidenceStrength + 0.10 * taskApplicability
132
144
  + 0.10 * confidence + 0.10 * importance + 0.10 * recency
133
145
  : 0;
134
- const score = Math.max(semanticScore, policyScore);
146
+ // Similarity alone cannot establish applicability. Unknown candidates stay
147
+ // visible to diagnostics/rerankers but receive a conservative score floor.
148
+ const score = Math.max(semanticScore, policyScore) * (applicabilityStatus === 'unknown' ? 0.4 : 1);
135
149
  if (score < MEMORY_SELECTION_THRESHOLD)
136
150
  return reject('below_quality_threshold');
137
- return { eligible: true, score, applicability, signals };
151
+ return { eligible: true, score, applicability, applicabilityStatus, signals };
138
152
  }
139
153
  export function evaluateBootstrapMemory(input) {
140
154
  const evidenceStrength = getEvidenceStrength(input.source, input.evidenceStatus);
@@ -152,14 +166,13 @@ export function evaluateBootstrapMemory(input) {
152
166
  recency,
153
167
  policyApplicability: 0,
154
168
  };
155
- const base = { applicability: ['session_bootstrap'], signals };
169
+ const base = { applicability: ['session_bootstrap'], applicabilityStatus: 'known', signals };
156
170
  if (input.resolutionState === 'superseded') {
157
171
  return { ...base, eligible: false, score: 0, rejectionReason: 'superseded' };
158
172
  }
159
173
  if (isOperationalObservation(input.type, input.title, input.content)) {
160
174
  return { ...base, eligible: false, score: 0, rejectionReason: 'operational_observation' };
161
175
  }
162
- const legacyExplicitPreference = input.source === 'explicit_intent' && input.type === 'user_preference';
163
176
  const durableBootstrapType = input.source === 'explicit_intent'
164
177
  || input.type === 'project_convention'
165
178
  || input.type === 'decision_made'
@@ -167,7 +180,8 @@ export function evaluateBootstrapMemory(input) {
167
180
  if (!durableBootstrapType) {
168
181
  return { ...base, eligible: false, score: 0, rejectionReason: 'no_applicable_signal' };
169
182
  }
170
- if (!legacyExplicitPreference && input.type === 'project_convention'
183
+ const explicitPreference = input.source === 'explicit_intent' && input.type === 'user_preference';
184
+ if (!explicitPreference && input.type === 'project_convention'
171
185
  && input.evidenceStatus !== 'verified') {
172
186
  return { ...base, eligible: false, score: 0, rejectionReason: 'unverified_constraint' };
173
187
  }
@@ -216,80 +230,24 @@ export function normalizeMemoryEntities(value) {
216
230
  }
217
231
  return entities;
218
232
  }
219
- function inferTaskIntent(query, purpose) {
220
- const value = `${purpose ?? ''} ${query}`;
221
- if (/performance|profil(?:e|ing)|render|re-render|latency|memory leak|性能|卡顿|渲染|内存泄漏/iu.test(value))
222
- return 'performance';
223
- if (/animation|motion|transition|animate|动画|动效|过渡/iu.test(value))
224
- return 'animation';
225
- if (/tailwind|shadcn|css|style|layout|样式|布局/iu.test(value))
226
- return 'style';
227
- if (/install|dependency|package manager|lockfile|\b(?:pnpm|npm|yarn|bun)\b|依赖|安装|包管理/iu.test(value))
228
- return 'dependency';
229
- if (/\btest(?:ing)?\b|vitest|jest|测试/iu.test(value))
230
- return 'test';
231
- if (/\bbuild\b|compile|bundle|构建|编译|打包/iu.test(value))
232
- return 'build';
233
- if (/debug|error|failure|exception|fix|报错|错误|失败|修复/iu.test(value))
234
- return 'debug';
235
- if (/component|hook|function|class|module|file|src\/|组件|函数|模块|文件/iu.test(value))
236
- return 'code';
237
- return 'unknown';
238
- }
239
- function inferDomainFamilies(value) {
240
- const domains = new Set();
241
- const normalized = value.normalize('NFKC');
242
- const patterns = [
243
- ['performance', /performance|profil(?:e|ing)|render|re-render|latency|memory leak|性能|卡顿|渲染|内存泄漏/iu],
244
- ['database', /database|sqlite|postgres|mysql|migration|schema|数据库|迁移|数据表/iu],
245
- ['container', /docker|container|kubernetes|image|compose|容器|镜像/iu],
246
- ['dependency', /dependency|package manager|lockfile|pnpm|npm|yarn|bun|依赖|包管理/iu],
247
- ['testing', /vitest|jest|testing|\btests?\b|测试/iu],
248
- ['build', /\bbuild\b|compile|bundle|构建|编译|打包/iu],
249
- ['styling', /tailwind|shadcn|\bcss\b|style|layout|样式|布局/iu],
250
- ['animation', /motion|animation|transition|动画|动效|过渡/iu],
251
- ['auth', /auth|login|logout|session|登录|认证|鉴权/iu],
252
- ['frontend', /react|vue|component|hook|jsx|tsx|前端|组件|钩子/iu],
253
- ['api', /\bapi\b|graphql|rest|endpoint|接口/iu],
254
- ];
255
- for (const [domain, pattern] of patterns)
256
- if (pattern.test(normalized))
257
- domains.add(domain);
258
- return domains;
259
- }
260
- function inferQueryPolarity(value) {
261
- if (/\b(?:avoid|never|do not|don't|must not|without)\b|避免|不要|禁止|不使用|不能使用/iu.test(value))
262
- return 'negative';
263
- if (/\b(?:use|prefer|require|must|always)\b|使用|采用|偏好|必须|统一|一律/iu.test(value))
264
- return 'positive';
265
- return 'neutral';
266
- }
267
- function setsOverlap(left, right) {
268
- for (const item of left)
269
- if (right.has(item))
270
- return true;
271
- return false;
272
- }
273
- function inferMemoryFacet(entities, text) {
274
- if (hasAny(entities, ['pnpm', 'npm', 'yarn', 'bun'])
275
- || /package manager|package-lock|lockfile|legacy-peer-deps|install(?:ing)? dependencies|包管理|安装.{0,8}依赖|依赖.{0,8}(?:安装|更新)/iu.test(text)) {
276
- return 'package_manager';
233
+ function taskIntent(value) {
234
+ switch (value) {
235
+ case 'performance': return 'performance';
236
+ case 'debug': return 'debug';
237
+ case 'style': return 'style';
238
+ case 'animation': return 'animation';
239
+ case 'dependency': return 'dependency';
240
+ case 'test': return 'test';
241
+ case 'build': return 'build';
242
+ case 'code':
243
+ case 'feature':
244
+ case 'refactor':
245
+ case 'review':
246
+ case 'understand': return 'code';
247
+ default: return 'unknown';
277
248
  }
278
- if (entities.has('prettier') || /code formatter|formatting|格式化/iu.test(text))
279
- return 'formatting';
280
- if (hasAny(entities, ['tailwind', 'shadcn']) || /\bcss\b|styling|样式/iu.test(text))
281
- return 'styling';
282
- if (entities.has('motion') || /animation|动画|动效/iu.test(text))
283
- return 'animation';
284
- if (entities.has('react') || /framework|框架/iu.test(text))
285
- return 'framework';
286
- if (hasAny(entities, ['vitest', 'jest']) || /\btests?\b|测试/iu.test(text))
287
- return 'testing';
288
- if (/\bbuild\b|compile|bundle|构建|编译|打包/iu.test(text))
289
- return 'build';
290
- return 'generic';
291
249
  }
292
- function isFacetApplicable(facet, intent, query, action) {
250
+ function isFacetApplicable(facet, intent, action) {
293
251
  if (facet === 'generic')
294
252
  return true;
295
253
  if (facet === 'package_manager')
@@ -305,7 +263,7 @@ function isFacetApplicable(facet, intent, query, action) {
305
263
  if (facet === 'animation')
306
264
  return intent === 'animation';
307
265
  if (facet === 'testing')
308
- return intent === 'test' || /test|测试/iu.test(query);
266
+ return intent === 'test';
309
267
  if (facet === 'build')
310
268
  return intent === 'build' || intent === 'dependency';
311
269
  if (facet === 'generated_files')
@@ -313,8 +271,7 @@ function isFacetApplicable(facet, intent, query, action) {
313
271
  if (facet === 'architecture' || facet === 'api')
314
272
  return intent === 'code' || intent === 'debug';
315
273
  if (facet === 'framework') {
316
- return intent === 'performance' || intent === 'code' || intent === 'debug'
317
- || /react|jsx|tsx|framework|框架/iu.test(query);
274
+ return intent === 'performance' || intent === 'code' || intent === 'debug';
318
275
  }
319
276
  return false;
320
277
  }
@@ -356,18 +313,16 @@ function isOperationalObservation(type, title, content) {
356
313
  && /mcp|hook|tool call|调用工具|会话事件|协议流程/iu.test(value)
357
314
  && !/architecture|架构|project convention|项目约定/iu.test(value);
358
315
  }
359
- function isFailureCategoryApplicable(category, intent, query) {
360
- if (intent !== 'debug')
361
- return false;
362
- const normalized = category.replace(/[_-]+/g, ' ').toLocaleLowerCase('en-US');
363
- return query.toLocaleLowerCase('en-US').includes(normalized)
364
- || normalizeMemoryEntities(query).has(normalized.replace(/\s+/g, '-'));
316
+ function isFailureCategoryApplicable(intent) {
317
+ return intent === 'debug';
365
318
  }
366
- function isScopeApplicable(scope, query) {
319
+ function isScopeApplicable(scope, targetAnchors) {
367
320
  const normalizedScope = normalizeRelativeCodePath(scope);
368
321
  if (!normalizedScope)
369
322
  return true;
370
- const queryPaths = extractRelativeCodePaths(query);
323
+ const queryPaths = targetAnchors
324
+ .map(anchor => normalizeRelativeCodePath(anchor))
325
+ .filter((anchor) => anchor !== null);
371
326
  if (queryPaths.length === 0)
372
327
  return true;
373
328
  return queryPaths.some(path => pathsOverlap(normalizedScope, path));
@@ -383,14 +338,6 @@ function normalizeRelativeCodePath(value) {
383
338
  return null;
384
339
  return segments.join('/');
385
340
  }
386
- function extractRelativeCodePaths(query) {
387
- const candidates = query.replace(/\\/g, '/').match(/(?:^|[\s`'"(])((?:\.?[a-z0-9_@.-]+\/)+[a-z0-9_@.-]+)(?=$|[\s`'"),:;])/giu) ?? [];
388
- const paths = candidates
389
- .map(candidate => candidate.trim().replace(/^[`'"(]+|[`'"),:;]+$/gu, ''))
390
- .map(candidate => normalizeRelativeCodePath(candidate))
391
- .filter((candidate) => candidate !== null);
392
- return [...new Set(paths)];
393
- }
394
341
  function pathsOverlap(left, right) {
395
342
  return left === right || left.startsWith(`${right}/`) || right.startsWith(`${left}/`);
396
343
  }
@@ -414,9 +361,6 @@ function containsAlias(normalized, alias) {
414
361
  .join('[\\s/.-]+');
415
362
  return new RegExp(`(^|[^\\p{L}\\p{N}])${escaped}(?=$|[^\\p{L}\\p{N}])`, 'u').test(normalized);
416
363
  }
417
- function hasAny(values, candidates) {
418
- return candidates.some(candidate => values.has(candidate));
419
- }
420
364
  function withoutEntities(values, excluded) {
421
365
  const filtered = new Set(values);
422
366
  for (const value of excluded)
@@ -1 +1 @@
1
- {"version":3,"file":"memory-relevance.js","sourceRoot":"","sources":["../src/memory-relevance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-relevance.js","sourceRoot":"","sources":["../src/memory-relevance.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,CAAC;AAC1D,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAyE/C,gFAAgF;AAChF,MAAM,UAAU,4BAA4B,CAAC,KAA2B;IACtE,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;IACrG,IAAI,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,KAAK,kBAAkB;WAClD,8EAA8E;aAC9E,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9E,IAAI,aAAa,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,+BAA+B,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAClG,IAAI,cAAc,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACnE,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,EAAE,aAAa,IAAI,SAAS,CAAC;IACrE,IAAI,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,gBAAgB;WACpD,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,aAAa,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACtF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAKD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS;IACxF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IAC/F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC/C,CAAC,CAAC;AAEH,MAAM,cAAc,GAAoD;IACtE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE;IAC9E,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE;IACjE,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,EAAE;IACjG,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9C,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE;IAC/E,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;IACtE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACxC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IACtC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACxC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IACtC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;IAC5C,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACxC,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE;IACpD,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;IAChD,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,EAAE;IAC5G,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;CAC/C,CAAC;AACF,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjG,MAAM,UAAU,uBAAuB,CAAC,KAA2B;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,uBAAuB,CAAC;QAC5C,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;QACvC,KAAK,CAAC,KAAK;KACZ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACb,MAAM,iBAAiB,GAAG,uBAAuB,CAC/C,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACxE,CAAC;IACF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,MAAM,uBAAuB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACxG,MAAM,iBAAiB,GAAG,uBAAuB,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC;QAC5E,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,iBAAiB,CAAC;IACtB,MAAM,gBAAgB,GAAG,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACxE,MAAM,yBAAyB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACjE,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACnG,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;IACvC,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,EAAE,aAAa,IAAI,SAAS,CAAC;IACrE,MAAM,gBAAgB,GAAG,KAAK,KAAK,SAAS;WACvC,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,aAAa,GAAG,CAAC,IAAI,gBAAgB;WACxD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACzF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3F,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;IAC1F,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC1F,IAAI,gBAAgB;QAAE,aAAa,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG;QACd,QAAQ;QACR,OAAO;QACP,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,UAAU;QACV,UAAU;QACV,OAAO;QACP,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9C,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,eAAsC,EAA6B,EAAE,CAAC,CAAC;QACrF,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,CAAC;QACR,eAAe;QACf,mBAAmB,EAAE,SAAS;QAC9B,aAAa;QACb,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,eAAgB,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,aAAa,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChG,IAAI,aAAa,IAAI,CAAC,eAAe;QAAE,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3E,MAAM,oBAAoB,GAAG,KAAK,KAAK,WAAW;WAC7C,CAAC,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC;IAC3E,MAAM,qBAAqB,GAAG,YAAY,CACxC,eAAe,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,EACzC,eAAe,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAC9C,CAAC;IACF,IAAI,oBAAoB,IAAI,aAAa;WACpC,CAAC,gBAAgB;WACjB,qBAAqB,KAAK,CAAC;WAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,qCAAqC,EAAE,CAAC;QACzE,OAAO,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,+BAA+B,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,IAAI,eAAe,CAAC;IACxG,MAAM,qBAAqB,GAAG,aAAa,GAAG,CAAC;WAC1C,gBAAgB;WAChB,+BAA+B;WAC/B,CAAC,cAAc,IAAI,+BAA+B,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAqD,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1H,MAAM,oBAAoB,GAAG,QAAQ,IAAI,qCAAqC;WACzE,OAAO,IAAI,oCAAoC;WAC/C,qBAAqB,CAAC;IAC3B,IAAI,CAAC,oBAAoB;QAAE,OAAO,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAEjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,GAAG,iBAAiB;UAC1C,IAAI,GAAG,aAAa;UACpB,IAAI,GAAG,gBAAgB;UACvB,IAAI,GAAG,iBAAiB;UACxB,IAAI,GAAG,UAAU;UACjB,IAAI,GAAG,UAAU;UACjB,IAAI,GAAG,OAAO,CAAC;IACnB,MAAM,WAAW,GAAG,gBAAgB;QAClC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,GAAG,iBAAiB;cACvD,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO;QAC1D,CAAC,CAAC,CAAC,CAAC;IACN,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,KAAK,GAAG,0BAA0B;QAAE,OAAO,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACjF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAA0C;IAE1C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,CAAC;QAChB,gBAAgB;QAChB,iBAAiB,EAAE,CAAC;QACpB,UAAU;QACV,UAAU;QACV,OAAO;QACP,mBAAmB,EAAE,CAAC;KACvB,CAAC;IACF,MAAM,IAAI,GAAG,EAAE,aAAa,EAAE,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,OAAgB,EAAE,OAAO,EAAE,CAAC;IACtG,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;QAC3C,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;IAC/E,CAAC;IACD,IAAI,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC;IAC5F,CAAC;IACD,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,KAAK,iBAAiB;WAC1D,KAAK,CAAC,IAAI,KAAK,oBAAoB;WACnC,KAAK,CAAC,IAAI,KAAK,eAAe;WAC9B,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC;IACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAClG,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB;WACzD,KAAK,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC1F,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACvG,MAAM,KAAK,GAAG,IAAI,GAAG,cAAc;UAC/B,IAAI,GAAG,gBAAgB;UACvB,IAAI,GAAG,UAAU;UACjB,IAAI,GAAG,UAAU;UACjB,IAAI,GAAG,OAAO,CAAC;IACnB,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACtF,MAAM,UAAU,GAAG,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACvE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,uCAAuC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QACtD,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC/E,IAAI,gBAAgB,EAAE,CAAC;YACrB,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC,CAAC;YACnC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACxE,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAChC,MAAM,sBAAsB,GAAG,UAAU;aACtC,OAAO,CAAC,gCAAgC,EAAE,GAAG,CAAC;aAC9C,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;aAC7B,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC;YAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;QACzC,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;QACrC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC,CAAC,OAAO,MAAM,CAAC;QACjC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAkB,EAClB,MAAkB,EAClB,MAA4B;IAE5B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,KAAK,iBAAiB;QAAE,OAAO,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,OAAO,CAAC;IACtF,IAAI,KAAK,KAAK,yBAAyB;QAAE,OAAO,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,SAAS,CAAC;IAChG,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC;IACrG,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,KAAK,OAAO,CAAC;IACnD,IAAI,KAAK,KAAK,mBAAmB;QAAE,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC;IAC3G,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,MAAM,KAAK,WAAW,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,KAAK,MAAM,CAAC;IAClD,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,YAAY,CAAC;IAC5E,IAAI,KAAK,KAAK,iBAAiB;QAAE,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,CAAC;IACnF,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;IAChG,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAkB,EAClB,MAAkB,EAClB,eAAwB;IAExB,IAAI,CAAC,eAAe;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACrE,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,MAAkC;IAC7E,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,MAAc,EAAE,KAAa,EAAE,OAAe;IACpF,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,MAAM,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,kDAAkD,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe;IAC5E,MAAM,KAAK,GAAG,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC;IACrC,IAAI,+IAA+I,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChK,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,KAAK,eAAe;WAC1B,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC;WACjD,CAAC,2CAA2C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAkB;IACrD,OAAO,MAAM,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB,EAAE,aAAuB;IAC3E,MAAM,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,aAAa;SAC7B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;SAChD,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAyB;IAC1D,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7F,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC;IACrF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAkB,EAClB,KAAkB,EAClB,aAA0B,EAC1B,iBAA8B;IAE9B,MAAM,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,MAAM,EAAE,EAAE,SAAS,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,YAAY,CAAC,IAAiB,EAAE,KAAkB;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,IAAI;QAAE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB,EAAE,KAAa;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;SAC7C,KAAK,CAAC,WAAW,CAAC;SAClB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;SACxD,IAAI,CAAC,WAAW,CAAC,CAAC;IACrB,OAAO,IAAI,MAAM,CAAC,sBAAsB,OAAO,uBAAuB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB,EAAE,QAAkB;IAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,QAAQ;QAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -1,11 +1,13 @@
1
- import type { MemoryCapsule, MemoryProjection } from '@devflow-tools/sdk';
1
+ import { type EmbeddingProfileV1, type MemoryCapsule, type MemoryProjectScope, type MemoryProjection } from '@devflow-tools/sdk';
2
2
  import type { MemoryRelationType } from './memory-relations.js';
3
- import type { ExplicitMemoryEvidence } from './explicit-memory-enricher.js';
4
3
  import type { LeaseStore } from './lease-store.js';
5
4
  import { type ObservationSource, type ObservationType } from './observation-types.js';
6
5
  import { type NormalizedSemanticMemory, type SemanticMemoryPolarity } from './semantic-memory.js';
7
6
  export interface MemoryRow {
8
7
  id: string;
8
+ project_id: string;
9
+ memory_namespace: string;
10
+ actor_id: string;
9
11
  type: string;
10
12
  title: string;
11
13
  content: string;
@@ -18,7 +20,7 @@ export interface MemoryRow {
18
20
  confidence: number;
19
21
  tags: string;
20
22
  scope: string;
21
- session_id: string | null;
23
+ session_id: string;
22
24
  original_text: string | null;
23
25
  source: string;
24
26
  created_at: number;
@@ -34,6 +36,9 @@ export interface MemoryRow {
34
36
  }
35
37
  export interface ObservationRow {
36
38
  id: string;
39
+ project_id: string;
40
+ memory_namespace: string;
41
+ actor_id: string;
37
42
  session_id: string;
38
43
  project: string;
39
44
  type: string;
@@ -141,7 +146,7 @@ export interface DecidedTurnEventReconciliation {
141
146
  export interface RetrievalAccessInput {
142
147
  sourceType: 'memory' | 'observation';
143
148
  sourceId: string;
144
- accessType?: 'exposed' | 'selected' | 'adopted' | 'rejected' | string;
149
+ accessType: 'selected' | 'consumed' | 'verified' | 'rejected' | 'positive_outcome' | 'negative_outcome' | 'unknown_outcome';
145
150
  project?: string;
146
151
  sessionId?: string;
147
152
  requestId?: string;
@@ -206,24 +211,23 @@ export interface SignalRow {
206
211
  payload: string;
207
212
  timestamp: number;
208
213
  }
209
- export declare function isRecoverableObservationFtsError(error: unknown): boolean;
210
214
  export declare class MemoryStore {
215
+ private readonly embeddingProfile;
216
+ private readonly projectIdentity;
211
217
  private db;
212
218
  private dbPath;
213
219
  private defaultProjectRoot;
214
220
  private leaseStore;
215
221
  private retrievalRevision;
216
- constructor(rootPath: string);
222
+ constructor(rootPath: string, embeddingProfile: EmbeddingProfileV1 | undefined, projectIdentity: MemoryProjectScope);
217
223
  setLeaseStore(store: LeaseStore): void;
218
224
  private countTables;
219
- private dropOrphanedObservationFtsTriggers;
220
- private ensureObservationFts;
221
- private migrateV1ToV2;
225
+ private assertCanonicalSchemaOrEmpty;
222
226
  private getTableColumns;
223
227
  add(entry: {
224
228
  id?: string;
229
+ actorId: string;
225
230
  type?: string;
226
- category?: string;
227
231
  content: string;
228
232
  title?: string;
229
233
  originalText?: string;
@@ -232,10 +236,16 @@ export declare class MemoryStore {
232
236
  confidence?: number;
233
237
  strength?: number;
234
238
  scope?: string;
235
- sessionId?: string;
239
+ sessionId: string;
236
240
  }): MemoryRow;
237
241
  get(id: string): MemoryRow | null;
238
- update(id: string, updates: {
242
+ updateScoped(scope: {
243
+ id: string;
244
+ projectId: string;
245
+ memoryNamespace: string;
246
+ actorId: string;
247
+ sessionId: string;
248
+ }, updates: {
239
249
  title?: string;
240
250
  content?: string;
241
251
  context?: string;
@@ -243,17 +253,21 @@ export declare class MemoryStore {
243
253
  strength?: number;
244
254
  confidence?: number;
245
255
  tags?: string;
246
- scope?: string;
247
256
  version?: number;
248
257
  supersedes?: string;
249
258
  superseded_by?: string;
250
259
  reinforce_count?: number;
251
260
  last_reinforced_at?: number;
252
261
  }): void;
253
- delete(id: string): void;
262
+ deleteScoped(scope: {
263
+ id: string;
264
+ projectId: string;
265
+ memoryNamespace: string;
266
+ actorId: string;
267
+ sessionId: string;
268
+ }): void;
254
269
  list(filter?: {
255
270
  type?: string;
256
- category?: string;
257
271
  status?: string;
258
272
  scope?: string;
259
273
  source?: string;
@@ -261,7 +275,6 @@ export declare class MemoryStore {
261
275
  getPending(): MemoryRow[];
262
276
  listByType(type: string, limit?: number): MemoryRow[];
263
277
  listByTypes(types: string[], limit?: number): MemoryRow[];
264
- listByCategory(category: string, limit?: number): MemoryRow[];
265
278
  countByStatus(status: string): number;
266
279
  insertEmbedding(id: string, embedding: Float32Array): void;
267
280
  insertObservationEmbedding(obsId: string, embedding: Float32Array): void;
@@ -291,12 +304,22 @@ export declare class MemoryStore {
291
304
  id: string;
292
305
  rank: number;
293
306
  }>;
294
- private searchObservationFtsWithRecovery;
295
307
  private searchObservationFts;
296
308
  searchVector(embedding: Float32Array, limit?: number): Array<{
297
309
  id: string;
298
310
  distance: number;
299
311
  }>;
312
+ getEmbeddingProfileState(sourceType: 'memory' | 'observation'): {
313
+ status: 'ready' | 'backfill_pending' | 'dimension_mismatch';
314
+ profileHash: string;
315
+ generation: number;
316
+ indexed: number;
317
+ total: number;
318
+ };
319
+ private putEmbeddingProfile;
320
+ private memoryEmbeddingSourceHash;
321
+ private observationEmbeddingSourceHash;
322
+ private assertEmbeddingProfile;
300
323
  addEdge(sourceId: string, targetId: string, type: string, weight?: number): void;
301
324
  getNeighbors(id: string): Array<{
302
325
  targetId: string;
@@ -366,7 +389,6 @@ export declare class MemoryStore {
366
389
  requeueProcessedEventsWithoutAcceptedEvidence(): number;
367
390
  eventWindowExists(tool: string, command: string | undefined, windowMs?: number): boolean;
368
391
  ensureSession(id: string, projectRoot?: string, task?: string): SessionRow;
369
- repairOrphanSessions(projectRoot?: string): number;
370
392
  createSession(id: string, projectRoot: string, task?: string): void;
371
393
  closeSession(id: string): void;
372
394
  getSession(id: string): SessionRow | null;
@@ -380,6 +402,7 @@ export declare class MemoryStore {
380
402
  id?: string;
381
403
  sessionId: string;
382
404
  project?: string;
405
+ actorId: string;
383
406
  type: ObservationType;
384
407
  title: string;
385
408
  narrative?: string;
@@ -396,6 +419,8 @@ export declare class MemoryStore {
396
419
  quarantineReason?: string;
397
420
  qualityDetails?: Record<string, unknown>;
398
421
  failureCategory?: string;
422
+ /** Explicit instance identity for proposal-compiled facts; never provider-authored. */
423
+ dedupKey?: string;
399
424
  resolutionState?: 'current' | 'resolved' | 'superseded';
400
425
  evidenceStatus?: 'verified' | 'unverified';
401
426
  evidenceDetails?: Array<Record<string, unknown>>;
@@ -407,10 +432,6 @@ export declare class MemoryStore {
407
432
  semantic: NormalizedSemanticMemory;
408
433
  preferIncomingNarrative?: boolean;
409
434
  }): SemanticObservationWriteResult;
410
- findCurrentObservationBySemanticKey(project: string, semanticKey: string): ObservationRow | null;
411
- private findCurrentObservationByNarrative;
412
- private findCurrentObservationByDurableNarrative;
413
- findCurrentObservationsByFacetKey(project: string, facetKey: string): ObservationRow[];
414
435
  searchObservationEntities(project: string, entities: string[], limit?: number): ObservationRow[];
415
436
  searchDefaultProjectObservationEntities(entities: string[], limit?: number): ObservationRow[];
416
437
  getObservationEntityDegree(project: string, entity: string): number;
@@ -420,21 +441,9 @@ export declare class MemoryStore {
420
441
  private findCurrentObservationIdsByEntities;
421
442
  private addObservationRelation;
422
443
  addSemanticObservationRelation(sourceObservationId: string, targetObservationId: string, type: MemoryRelationType, createdAt?: number): void;
423
- private supersedeSemanticFacetConflicts;
424
444
  addObservationWithEmbedding(obs: Parameters<MemoryStore['addObservation']>[0], embedding: Float32Array): ObservationRow;
425
- acceptExplicitPreference(input: {
426
- sessionId: string;
427
- project: string;
428
- title: string;
429
- content: string;
430
- sourceEventId?: string;
431
- enrichment?: ExplicitMemoryEvidence;
432
- }): ObservationRow;
433
- applyExplicitMemoryEnrichment(observationId: string, enrichment: ExplicitMemoryEvidence): ObservationRow;
434
- reconcileExplicitPreferenceConflicts(project?: string): number;
445
+ markObservationExplicitlyAccepted(observationId: string, acceptedAt?: number): void;
435
446
  listCurrentExplicitPreferences(project?: string): ObservationRow[];
436
- private explicitPreferenceAcceptanceTime;
437
- private supersedeConflictingExplicitPreferences;
438
447
  getObservation(id: string): ObservationRow | null;
439
448
  linkObservationToEvents(observationId: string, eventIds: string[]): void;
440
449
  findObservationByDedupKey(dedupKey: string): ObservationRow | null;
@@ -461,6 +470,14 @@ export declare class MemoryStore {
461
470
  };
462
471
  quarantineObservation(id: string, reason: string, details?: Record<string, unknown>, now?: number): boolean;
463
472
  setObservationResolution(id: string, state: 'current' | 'resolved' | 'superseded', supersededBy?: string): void;
473
+ reinforceObservation(id: string, input?: {
474
+ sourceEventIds?: string[];
475
+ source?: ObservationSource;
476
+ importance?: number;
477
+ confidence?: number;
478
+ evidenceStatus?: ObservationRow['evidence_status'];
479
+ evidenceDetails?: Array<Record<string, unknown>>;
480
+ }, now?: number): ObservationRow;
464
481
  getObservationsByConcept(concept: string, limit?: number): ObservationRow[];
465
482
  countObservationsByConcept(concept: string): number;
466
483
  getConceptsForObservation(obsId: string): string[];
@@ -506,7 +523,6 @@ export declare class MemoryStore {
506
523
  positive: number;
507
524
  negative: number;
508
525
  };
509
- recordAccess(memoryId: string, accessType: string, sessionId?: string): void;
510
526
  incrementAccess(id: string): void;
511
527
  listRetrievalAccessLog(limit?: number): RetrievalAccessRow[];
512
528
  listRetrievalAccessForAttribution(sessionId: string, executionId?: string): RetrievalAccessRow[];