@lemoncat7/dsh-partner 1.11.1 → 1.12.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 (121) hide show
  1. package/README.md +21 -1
  2. package/docs/memory-quality.md +115 -0
  3. package/docs/releases/1.12.0.md +25 -0
  4. package/lib/agent-runtime.d.ts +1 -1
  5. package/lib/agent-runtime.d.ts.map +1 -1
  6. package/lib/agent-runtime.js +16 -11
  7. package/lib/agent-runtime.js.map +1 -1
  8. package/lib/api/features/memory-layers-api.d.ts +5 -0
  9. package/lib/api/features/memory-layers-api.d.ts.map +1 -0
  10. package/lib/api/features/memory-layers-api.js +42 -0
  11. package/lib/api/features/memory-layers-api.js.map +1 -0
  12. package/lib/api.d.ts.map +1 -1
  13. package/lib/api.js +5 -1
  14. package/lib/api.js.map +1 -1
  15. package/lib/client-api.d.ts +2 -0
  16. package/lib/client-api.d.ts.map +1 -1
  17. package/lib/client.d.ts.map +1 -1
  18. package/lib/client.js +2894 -2553
  19. package/lib/client.js.map +4 -4
  20. package/lib/collaboration/composition.js +2 -2
  21. package/lib/collaboration/composition.js.map +1 -1
  22. package/lib/concern-store.d.ts +1 -0
  23. package/lib/concern-store.d.ts.map +1 -1
  24. package/lib/concern-store.js +17 -0
  25. package/lib/concern-store.js.map +1 -1
  26. package/lib/concern-tool.d.ts +1 -1
  27. package/lib/concern-tool.d.ts.map +1 -1
  28. package/lib/concern-tool.js +12 -9
  29. package/lib/concern-tool.js.map +1 -1
  30. package/lib/daily-review.d.ts +1 -0
  31. package/lib/daily-review.d.ts.map +1 -1
  32. package/lib/daily-review.js +14 -3
  33. package/lib/daily-review.js.map +1 -1
  34. package/lib/index.d.ts.map +1 -1
  35. package/lib/index.js +13 -0
  36. package/lib/index.js.map +1 -1
  37. package/lib/memory-artifacts.d.ts +42 -0
  38. package/lib/memory-artifacts.d.ts.map +1 -0
  39. package/lib/memory-artifacts.js +120 -0
  40. package/lib/memory-artifacts.js.map +1 -0
  41. package/lib/memory-domain.d.ts +10 -0
  42. package/lib/memory-domain.d.ts.map +1 -1
  43. package/lib/memory-journal.d.ts +16 -0
  44. package/lib/memory-journal.d.ts.map +1 -0
  45. package/lib/memory-journal.js +51 -0
  46. package/lib/memory-journal.js.map +1 -0
  47. package/lib/memory-prompt-context.d.ts.map +1 -1
  48. package/lib/memory-prompt-context.js +2 -1
  49. package/lib/memory-prompt-context.js.map +1 -1
  50. package/lib/memory-quality.d.ts +4 -0
  51. package/lib/memory-quality.d.ts.map +1 -0
  52. package/lib/memory-quality.js +16 -0
  53. package/lib/memory-quality.js.map +1 -0
  54. package/lib/memory-reflection.d.ts +15 -2
  55. package/lib/memory-reflection.d.ts.map +1 -1
  56. package/lib/memory-reflection.js +103 -17
  57. package/lib/memory-reflection.js.map +1 -1
  58. package/lib/memory-retrieval.d.ts +5 -0
  59. package/lib/memory-retrieval.d.ts.map +1 -0
  60. package/lib/memory-retrieval.js +20 -0
  61. package/lib/memory-retrieval.js.map +1 -0
  62. package/lib/memory-store.d.ts +26 -2
  63. package/lib/memory-store.d.ts.map +1 -1
  64. package/lib/memory-store.js +142 -50
  65. package/lib/memory-store.js.map +1 -1
  66. package/lib/memory-worker.d.ts +25 -0
  67. package/lib/memory-worker.d.ts.map +1 -0
  68. package/lib/memory-worker.js +42 -0
  69. package/lib/memory-worker.js.map +1 -0
  70. package/lib/profile-domain.d.ts.map +1 -1
  71. package/lib/profile-domain.js +12 -4
  72. package/lib/profile-domain.js.map +1 -1
  73. package/lib/ui/memory/automation-settings.d.ts +8 -0
  74. package/lib/ui/memory/automation-settings.d.ts.map +1 -0
  75. package/lib/ui/memory/automation-settings.js +60 -0
  76. package/lib/ui/memory/automation-settings.js.map +1 -0
  77. package/lib/ui/memory/concern-board.d.ts +12 -0
  78. package/lib/ui/memory/concern-board.d.ts.map +1 -0
  79. package/lib/ui/memory/concern-board.js +129 -0
  80. package/lib/ui/memory/concern-board.js.map +1 -0
  81. package/lib/ui/memory/concern-panel.d.ts +7 -0
  82. package/lib/ui/memory/concern-panel.d.ts.map +1 -0
  83. package/lib/ui/memory/concern-panel.js +62 -0
  84. package/lib/ui/memory/concern-panel.js.map +1 -0
  85. package/lib/ui/memory/experience-view.d.ts +8 -0
  86. package/lib/ui/memory/experience-view.d.ts.map +1 -0
  87. package/lib/ui/memory/experience-view.js +52 -0
  88. package/lib/ui/memory/experience-view.js.map +1 -0
  89. package/lib/ui/memory/history-view.d.ts +6 -0
  90. package/lib/ui/memory/history-view.d.ts.map +1 -0
  91. package/lib/ui/memory/history-view.js +40 -0
  92. package/lib/ui/memory/history-view.js.map +1 -0
  93. package/lib/ui/memory/memory-cards.d.ts +14 -0
  94. package/lib/ui/memory/memory-cards.d.ts.map +1 -0
  95. package/lib/ui/memory/memory-cards.js +17 -0
  96. package/lib/ui/memory/memory-cards.js.map +1 -0
  97. package/lib/ui/memory/memory-detail.d.ts +8 -0
  98. package/lib/ui/memory/memory-detail.d.ts.map +1 -0
  99. package/lib/ui/memory/memory-detail.js +45 -0
  100. package/lib/ui/memory/memory-detail.js.map +1 -0
  101. package/lib/ui/memory/memory-graph.d.ts +8 -0
  102. package/lib/ui/memory/memory-graph.d.ts.map +1 -0
  103. package/lib/ui/memory/memory-graph.js +43 -0
  104. package/lib/ui/memory/memory-graph.js.map +1 -0
  105. package/lib/ui/memory/memory-library.d.ts +9 -0
  106. package/lib/ui/memory/memory-library.d.ts.map +1 -0
  107. package/lib/ui/memory/memory-library.js +38 -0
  108. package/lib/ui/memory/memory-library.js.map +1 -0
  109. package/lib/ui/memory/memory-panel.d.ts +10 -0
  110. package/lib/ui/memory/memory-panel.d.ts.map +1 -0
  111. package/lib/ui/memory/memory-panel.js +48 -0
  112. package/lib/ui/memory/memory-panel.js.map +1 -0
  113. package/lib/ui/memory/types.d.ts +44 -0
  114. package/lib/ui/memory/types.d.ts.map +1 -0
  115. package/lib/ui/memory/types.js +2 -0
  116. package/lib/ui/memory/types.js.map +1 -0
  117. package/lib/ui/memory/use-memory-resource.d.ts +9 -0
  118. package/lib/ui/memory/use-memory-resource.d.ts.map +1 -0
  119. package/lib/ui/memory/use-memory-resource.js +65 -0
  120. package/lib/ui/memory/use-memory-resource.js.map +1 -0
  121. package/package.json +3 -1
@@ -2,34 +2,101 @@ 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';
6
+ import { groundExperiences, parseArtifactProposals } from './memory-artifacts.js';
7
+ import { AsyncSemaphore } from './core/semaphore.js';
5
8
  export class MemoryReflectionService {
6
9
  ctx;
7
10
  store;
8
11
  concerns;
9
- queues = new Map();
12
+ running = new Set();
13
+ controllers = new Set();
14
+ modelSlots = new AsyncSemaphore(1);
15
+ lastPruned = new Map();
16
+ closed = false;
17
+ close() { this.closed = true; for (const controller of this.controllers)
18
+ controller.abort(); this.lastPruned.clear(); }
10
19
  constructor(ctx, store, concerns) {
11
20
  this.ctx = ctx;
12
21
  this.store = store;
13
22
  this.concerns = concerns;
14
23
  }
15
24
  async reflect(companion, turn) {
16
- const key = `${companion.id}:${turn.scopeId}`;
17
- const previous = this.queues.get(key) ?? Promise.resolve([]);
18
- const current = previous.catch(() => { }).then(() => this.run(companion, turn));
19
- this.queues.set(key, current);
25
+ if (this.closed)
26
+ throw new Error('memory service is stopping');
27
+ if (turn.companionId !== companion.id)
28
+ throw new Error('memory turn owner mismatch');
29
+ await this.store.enqueue(turn);
30
+ return [];
31
+ }
32
+ isRunning(companionId) { return this.running.has(companionId); }
33
+ async processPending(companion, notify) {
34
+ if (this.closed || this.running.has(companion.id))
35
+ return undefined;
36
+ this.running.add(companion.id);
20
37
  try {
21
- return await current;
38
+ return await this.modelSlots.use(async () => {
39
+ if (this.closed)
40
+ return undefined;
41
+ const job = await this.store.claimJob(companion.id);
42
+ return job ? this.processJob(companion, job, notify) : undefined;
43
+ });
22
44
  }
23
45
  finally {
24
- if (this.queues.get(key) === current)
25
- this.queues.delete(key);
46
+ this.running.delete(companion.id);
47
+ }
48
+ }
49
+ async processJob(companion, job, notify) {
50
+ try {
51
+ const result = job.result ?? await this.extract(companion, job.turn);
52
+ if (!job.result)
53
+ await this.store.checkpointJob(job, result);
54
+ await this.store.consolidate(job.turn, result, job);
55
+ const created = await this.applyConcerns(companion, job.turn, result);
56
+ if (created.length && notify)
57
+ await notify(job.turn.scopeId, created);
58
+ await this.store.settleJob(job);
59
+ if (Date.now() - (this.lastPruned.get(companion.id) ?? 0) > 6 * 60 * 60_000) {
60
+ try {
61
+ await this.store.prune(companion.id, companion.automation.memory.retentionDays);
62
+ this.lastPruned.set(companion.id, Date.now());
63
+ }
64
+ catch {
65
+ this.ctx.logger.warn('dsh-partner: memory maintenance failed; will retry on the next completed job');
66
+ }
67
+ }
68
+ return { scopeId: job.turn.scopeId, created };
69
+ }
70
+ catch (error) {
71
+ await this.store.settleJob(job, error instanceof Error ? error.message : String(error));
72
+ throw error;
26
73
  }
27
74
  }
28
75
  async reviewDay(companion, target) {
76
+ if (this.closed)
77
+ throw new Error('memory service is stopping');
78
+ if (this.running.has(companion.id))
79
+ throw new Error('记忆提炼正在执行,稍后重试终审');
80
+ this.running.add(companion.id);
81
+ try {
82
+ return await this.modelSlots.use(() => {
83
+ if (this.closed)
84
+ throw new Error('memory service is stopping');
85
+ return this.runDailyReview(companion, target);
86
+ });
87
+ }
88
+ finally {
89
+ this.running.delete(companion.id);
90
+ }
91
+ }
92
+ async runDailyReview(companion, target) {
93
+ if (await this.store.hasPendingTurns(companion.id, target.scopeId))
94
+ throw new Error('该会话还有待提炼轮次,完成后重试终审');
29
95
  const context = await this.store.dailyReviewContext(target);
30
96
  const concerns = await this.concerns.list(companion.id, target.scopeId, false, 40);
31
97
  const selection = modelSelection(this.ctx, companion);
32
98
  const controller = new AbortController();
99
+ this.controllers.add(controller);
33
100
  const timeout = setTimeout(() => controller.abort(), 90_000);
34
101
  let output = '';
35
102
  try {
@@ -46,21 +113,24 @@ export class MemoryReflectionService {
46
113
  }
47
114
  finally {
48
115
  clearTimeout(timeout);
116
+ this.controllers.delete(controller);
49
117
  }
50
118
  const result = parseDailyReview(output);
119
+ result.memories = groundMemoryCandidates(result.memories, context.turns);
120
+ result.experiences = groundExperiences(result.experiences ?? [], context.turns);
51
121
  await this.store.completeDailyReview(target, result);
52
122
  return this.concerns.applyCandidates(companion.id, target.scopeId, result.concerns, 'implicit', Date.now(), {
53
123
  source: 'daily_review',
54
124
  evidence: `每日终审 ${target.date}`,
55
125
  });
56
126
  }
57
- async run(companion, turn) {
58
- await this.store.archive(turn);
59
- const existing = await this.store.recall(companion.id, turn.scopeId, turn.user, 16);
127
+ async extract(companion, turn) {
128
+ const existing = await this.store.candidateMemories(companion.id, turn.scopeId, turn.user);
60
129
  const diaries = await this.store.recentReflectionsForScope(companion.id, turn.scopeId, 1);
61
130
  const concerns = await this.concerns.list(companion.id, turn.scopeId, false, 40);
62
131
  const selection = modelSelection(this.ctx, companion);
63
132
  const controller = new AbortController();
133
+ this.controllers.add(controller);
64
134
  const timeout = setTimeout(() => controller.abort(), 60_000);
65
135
  let output = '';
66
136
  try {
@@ -80,20 +150,25 @@ export class MemoryReflectionService {
80
150
  }
81
151
  finally {
82
152
  clearTimeout(timeout);
153
+ this.controllers.delete(controller);
83
154
  }
84
155
  const result = parseReflection(output);
85
- await this.store.consolidate(turn, result);
156
+ result.memories = groundMemoryCandidates(result.memories, [turn]);
157
+ return result;
158
+ }
159
+ async applyConcerns(companion, turn, result) {
86
160
  const resources = extractConcernResources(turn.user);
87
161
  const reflected = protectConcernDirective(result.concerns, turn.concernDirective);
88
162
  const candidates = resources.length === 0 ? reflected : reflected.map(item => item.operation === 'upsert' ? { ...item, resources } : item);
89
163
  const origin = explicitConcernDirective(turn.user) ? 'explicit' : 'implicit';
90
164
  const created = await this.concerns.applyCandidates(companion.id, turn.scopeId, candidates, origin, turn.at, {
91
- source: 'reflection', sessionId: turn.sessionId, evidence: turn.user,
165
+ source: 'reflection', sessionId: turn.sessionId, evidence: turn.user, batchId: turn.id,
92
166
  });
93
- if (turn.concernDirective !== undefined)
167
+ const current = await this.concerns.list(companion.id, turn.scopeId, true, 1000);
168
+ if (turn.concernDirective !== undefined && current.some(item => item.id === turn.concernDirective?.concernId)) {
94
169
  await this.concerns.act(companion.id, turn.concernDirective.concernId, turn.concernDirective.action, turn.at);
95
- await this.store.prune(companion.id, companion.automation.memory.retentionDays);
96
- return origin === 'implicit' ? created : [];
170
+ }
171
+ return origin === 'implicit' ? created.filter(item => current.some(latest => latest.id === item.id && ['watching', 'active'].includes(latest.state))) : [];
97
172
  }
98
173
  }
99
174
  export function protectConcernDirective(candidates, directive) {
@@ -106,6 +181,8 @@ export function explicitConcernDirective(value) {
106
181
  if (/(?:不要|不用|无需|别|取消|停止).{0,12}(?:关注|留意|盯着|跟进|惦记|记着)/u.test(text))
107
182
  return false;
108
183
  return /(?:请|麻烦|帮我|替我|让(?:伙伴|你)?).{0,24}(?:关注|留意|盯着|跟进|惦记|记着)/u.test(text)
184
+ || /^(?:持续|继续|长期|定期)?\s*(?:关注|留意|盯着|跟进|追踪)(?:一些|一下|这些|这个|下|\s|[\p{L}\p{N}])/u.test(text.trim())
185
+ || /(?:有|出现)(?:新)?(?:变化|更新|进展|消息).{0,8}(?:告诉我|通知我|提醒我)/u.test(text)
109
186
  || /(?:关注|留意|盯着|跟进|惦记).{0,24}(?:一下|这件事|这个|这些)/u.test(text)
110
187
  || /(?:keep\s+an?\s+eye\s+on|watch|track|follow).{0,80}(?:for\s+me|this|these)/iu.test(text);
111
188
  }
@@ -117,7 +194,9 @@ function modelSelection(ctx, companion) {
117
194
  ...(companion.automation.memory.model ? { model: companion.automation.memory.model } : {}),
118
195
  };
119
196
  }
197
+ const MEMORY_QUALITY_RULES = `记忆写入契约:每个 memories 候选(包括 complete/remove)必须附 evidenceQuote(用户原话的连续引用,2-300 字)和 sourceTurnId(该原话所在轮次 id),不能引用助手回答或日记摘要;无证据则不输出。更新同义旧记忆时附 targetMemoryId,必须是输入中的同类型记忆 id,并沿用原 subject;不要凭标题相似合并不同项目或相反偏好。纠错时 confidence 应反映新证据,允许降低。一次性执行请求和过程细节只进 daily,不新增 task;task 仅保留明确跨轮次未完承诺,已有任务完成仍应 complete。持续观察交 concerns,项目技术正文交知识库,记忆不复制整篇资料。emotion 仅限用户明确自述感受,不得把催促、设计反馈或工作要求当情绪。长期偏好、画像默认不设 expiresInDays,只有用户明确有效期时才设置。`;
120
198
  const REFLECTION_SYSTEM = `你是长期伙伴的记忆整理器。你不回答用户,只从有证据的对话中维护每日回顾和结构化记忆。
199
+ ${MEMORY_QUALITY_RULES}
121
200
  只输出一个 JSON 对象,不要 Markdown。格式:
122
201
  {"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":"用于观察变化的具体对象或问题"}]}
123
202
  规则:
@@ -131,6 +210,9 @@ const REFLECTION_SYSTEM = `你是长期伙伴的记忆整理器。你不回答
131
210
  8. 用户说“继续留意、很重要、已经解决、不用管了”时,应对同一 subject 分别 upsert、提高 priority、resolve 或 dismiss。watchKind 按变化来源选择,不能把本地项目问题默认标为 web。
132
211
  9. daily 应综合已有当日日记与新对话,不能只复述最后一句。数组每类最多 20 条,记忆候选最多 12 条。`;
133
212
  const DAILY_REVIEW_SYSTEM = `你是长期伙伴的每日记忆终审器。根据当天每一轮对话的双向代表片段、滚动回顾和已有记忆,输出一次最终整理,不回答用户。
213
+ ${MEMORY_QUALITY_RULES}
214
+ 还可输出 scenes:[{"title":"具体项目或场景名称","memoryIds":["输入中已有的记忆 id"]}],每个场景只关联同一项目的有效事实,最多 8 个,不把不同项目因名称相似而混在一起;无可靠关联返回空数组。
215
+ 还可输出 experiences:[{"title":"可复用方法","steps":["带适用条件的操作步骤"],"evidence":[{"turnId":"原始轮次 id","quote":"用户明确确认成功的连续原话"}]}]。只有至少两个不同会话均有用户明确确认成功,且方法确实可复用时才提出,最多 3 个;重复尝试、反复失败、助手自称成功均不算。这里只生成待人工审核的草稿,不安装、不授权、不修改现有 Skill。没有足够证据返回空数组。
134
216
  只输出 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"}]}
135
217
  要求:合并重复理解;人物画像只使用“基本身份、工作背景、长期职责、常用环境、长期目标”五个稳定槽位,并遵守逐轮提炼中的画像证据与隐私规则;结合所有轮次片段纠正逐轮偏差,对被压缩而证据不足的细节保持原状而非猜测;明确任务完成状态;复核并关闭已经完成或失效的挂念;只有对话原文证明事情会延续到当前轮次之后时才能新增挂念,一次性资料收集、搜索、总结、写作、即时执行和普通问答不得新增挂念;不创造对话中没有的事实;relations 只输出需要新增、更新或明确移除的关系,已有且仍成立的关系无需重复;关系两端必须填写准确 kind,upsert 必须有对话证据且 confidence 至少 0.62;remove 用于已有关系已被纠正或失效;conflicts_with 只用于无法同时为真的明确矛盾,不能把普通差异标成冲突;关系最多 80 条;无变化时 relations 返回空数组。`;
136
218
  export function parseReflection(raw) {
@@ -186,7 +268,7 @@ export function parseDailyReview(raw) {
186
268
  const targetKind = isKind(relation.targetKind) ? relation.targetKind : undefined;
187
269
  return [{ sourceSubject, ...(sourceKind ? { sourceKind } : {}), targetSubject, ...(targetKind ? { targetKind } : {}), kind, label, confidence: number(relation.confidence), operation }];
188
270
  }).slice(0, 80) : [];
189
- return { ...base, relations };
271
+ return { ...base, relations, ...parseArtifactProposals(value) };
190
272
  }
191
273
  function isRelationKind(value) { return value === 'supports' || value === 'depends_on' || value === 'about' || value === 'conflicts_with' || value === 'follows'; }
192
274
  function parseCandidate(value) {
@@ -202,12 +284,16 @@ function parseCandidate(value) {
202
284
  return undefined;
203
285
  const candidate = {
204
286
  kind, operation, subject, content,
287
+ ...(string(item.targetMemoryId, 160) ? { targetMemoryId: string(item.targetMemoryId, 160) } : {}),
288
+ evidenceQuote: string(item.evidenceQuote, 300), sourceTurnId: string(item.sourceTurnId, 160),
205
289
  confidence: number(item.confidence), importance: number(item.importance),
206
290
  };
207
291
  if (kind === 'emotion')
208
292
  candidate.expiresInDays = Math.min(7, Math.max(1, Math.round(finite(item.expiresInDays, 3))));
209
293
  else if (typeof item.expiresInDays === 'number' && item.expiresInDays > 0)
210
294
  candidate.expiresInDays = Math.min(3650, Math.round(item.expiresInDays));
295
+ else if (kind === 'task' || kind === 'event')
296
+ candidate.expiresInDays = 30;
211
297
  return candidate;
212
298
  }
213
299
  function isKind(value) { return value === 'profile' || value === 'preference' || value === 'task' || value === 'event' || value === 'relationship' || value === 'emotion'; }
@@ -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,5 @@
1
+ import type { PartnerMemory } from './memory-domain.js';
2
+ export declare function memoryTerms(value: string): string[];
3
+ export declare function memoryRelevance(memory: Pick<PartnerMemory, 'subject' | 'content'>, terms: string[]): number;
4
+ export declare function rankMemories(memories: PartnerMemory[], query: string, now: number, relevantOnly?: boolean): PartnerMemory[];
5
+ //# sourceMappingURL=memory-retrieval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-retrieval.d.ts","sourceRoot":"","sources":["../src/memory-retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAInD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAI3G;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,aAAa,EAAE,CAQxH"}
@@ -0,0 +1,20 @@
1
+ export function memoryTerms(value) {
2
+ const words = value.normalize('NFKC').toLocaleLowerCase().slice(0, 4000).match(/[a-z0-9_]+|\p{Script=Han}+/gu) ?? [];
3
+ return [...new Set(words.flatMap(word => /^\p{Script=Han}+$/u.test(word) && word.length > 2
4
+ ? Array.from({ length: word.length - 1 }, (_, index) => word.slice(index, index + 2)) : [word]))].slice(0, 80);
5
+ }
6
+ export function memoryRelevance(memory, terms) {
7
+ const haystack = `${memory.subject} ${memory.content}`.normalize('NFKC').toLocaleLowerCase();
8
+ const matches = terms.filter(term => haystack.includes(term)).length;
9
+ return terms.length ? matches / terms.length : 0;
10
+ }
11
+ export function rankMemories(memories, query, now, relevantOnly = true) {
12
+ const terms = memoryTerms(query);
13
+ return memories.map(item => {
14
+ const lexical = memoryRelevance(item, terms);
15
+ const recency = Math.max(0, 1 - (now - item.updatedAt) / (180 * 86_400_000));
16
+ return { item, lexical, score: lexical * .5 + item.importance * .22 + item.confidence * .18 + recency * .1 };
17
+ }).filter(entry => !relevantOnly || entry.lexical > 0)
18
+ .sort((a, b) => b.score - a.score || b.item.updatedAt - a.item.updatedAt).map(entry => entry.item);
19
+ }
20
+ //# sourceMappingURL=memory-retrieval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-retrieval.js","sourceRoot":"","sources":["../src/memory-retrieval.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAA;IACpH,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YACzF,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAClH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAkD,EAAE,KAAe;IACjG,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,CAAA;IAC5F,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IACpE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAyB,EAAE,KAAa,EAAE,GAAW,EAAE,YAAY,GAAG,IAAI;IACrG,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAChC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACzB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAA;QAC5E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,OAAO,GAAG,EAAE,EAAE,CAAA;IAC9G,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;SACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACtG,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { ConversationTurn, DailyReflection, DailyReviewResult, DailyReviewTarget, MemoryCandidate, MemoryRecallContext, MemoryRelation, MemoryRelationReviewContext, PartnerMemory, UserProfileSnapshot } from './memory-domain.js';
2
+ import { type MemoryJob } from './memory-journal.js';
3
+ import type { ReflectionResult } from './memory-domain.js';
4
+ import { readScenes, readExperienceDrafts } from './memory-artifacts.js';
2
5
  type ReflectionResultLike = {
3
6
  daily: Omit<DailyReflection, 'date' | 'companionId' | 'scopeId' | 'updatedAt' | 'turnCount'>;
4
7
  memories: MemoryCandidate[];
@@ -15,13 +18,34 @@ export declare class PartnerMemoryStore {
15
18
  private readonly writes;
16
19
  constructor(root: string, timeZone?: string);
17
20
  day(at: number): string;
21
+ enqueue(turn: ConversationTurn): Promise<void>;
22
+ hasPendingTurns(companionId: string, scopeId: string): Promise<boolean>;
23
+ memoryLayers(companionId: string, scopeId: string): Promise<{
24
+ scenes: ReturnType<typeof readScenes>;
25
+ experiences: ReturnType<typeof readExperienceDrafts>;
26
+ jobs: Array<{
27
+ id: string;
28
+ attempts: number;
29
+ nextAt: number;
30
+ status: string;
31
+ }>;
32
+ }>;
33
+ reviewExperience(companionId: string, scopeId: string, id: string, version: string, action: 'approved' | 'rejected'): Promise<void>;
34
+ exportExperience(companionId: string, scopeId: string, id: string): Promise<string>;
35
+ history(companionId: string, scopeId: string, before?: number, limit?: number, beforeId?: string): Promise<ConversationTurn[]>;
36
+ retryJob(companionId: string, scopeId: string, id: string): Promise<void>;
37
+ claimJob(companionId: string, now?: number): Promise<MemoryJob | undefined>;
38
+ candidateMemories(companionId: string, scopeId: string, query: string): Promise<PartnerMemory[]>;
39
+ checkpointJob(job: MemoryJob, result: ReflectionResult): Promise<void>;
40
+ settleJob(job: MemoryJob, error?: string): Promise<void>;
41
+ private journal;
18
42
  archive(turn: ConversationTurn): Promise<void>;
19
- consolidate(turn: ConversationTurn, result: ReflectionResultLike): Promise<void>;
43
+ consolidate(turn: ConversationTurn, result: ReflectionResultLike, job?: MemoryJob): Promise<void>;
20
44
  recall(companionId: string, scopeId: string, query: string, limit?: number): Promise<PartnerMemory[]>;
21
45
  recallContext(companionId: string, scopeId: string, query: string, limit?: number): Promise<MemoryRecallContext>;
22
46
  profileSnapshot(companionId: string, scopeId: string): Promise<UserProfileSnapshot>;
23
47
  profileSnapshots(companionId: string, knownScopeIds?: string[]): Promise<UserProfileSnapshot[]>;
24
- recentMemories(companionId: string, limit?: number): Promise<PartnerMemory[]>;
48
+ recentMemories(companionId: string, limit?: number, scopeId?: string): Promise<PartnerMemory[]>;
25
49
  legacyHeartbeatFocuses(companionId: string): Promise<LegacyHeartbeatFocus[]>;
26
50
  dropLegacyHeartbeatFocuses(companionId: string): Promise<void>;
27
51
  updateMemory(companionId: string, memoryId: string, subject: string, content: string): Promise<PartnerMemory>;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAuD,mBAAmB,EAAE,cAAc,EAAsB,2BAA2B,EAAgB,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAI/T,KAAK,oBAAoB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAA;AACzJ,MAAM,WAAW,oBAAoB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAG9G,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAU,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAE7B,IAAI,EAAE,MAAM,EAAmB,QAAQ,SAAkB;IAEtF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAEjB,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBhF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAcjG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmB5G,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUnF,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAcnG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAM1E,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAU5E,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAY7G,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAM9E,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAMvG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWtG,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,iBAAiB,EAAE,2BAA2B,EAAE,CAAC;QAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAwB/L,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDxF,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAUhH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMnD,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAoBxD,IAAI;IAkClB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;YAaN,WAAW;IAiCzB,OAAO,CAAC,gBAAgB;YAYV,cAAc;YAuBd,gBAAgB;IAM9B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;YAER,MAAM;YACN,WAAW;CAO1B;AAwID,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAkB,GAAG,MAAM,CAAqC"}
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAuD,mBAAmB,EAAE,cAAc,EAAsB,2BAA2B,EAAgB,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE/T,OAAO,EAAsH,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACxK,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,EAAmD,UAAU,EAAE,oBAAoB,EAAkE,MAAM,uBAAuB,CAAA;AAGzL,KAAK,oBAAoB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAA;AACzJ,MAAM,WAAW,oBAAoB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAG9G,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAU,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAE7B,IAAI,EAAE,MAAM,EAAmB,QAAQ,SAAkB;IAEtF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAEjB,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;QAAC,WAAW,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;QAC5F,IAAI,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/E,CAAC;IAUI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAInI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQnF,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAiB,EAAE,KAAK,SAAK,EAAE,QAAQ,SAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAKpI,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAI/E,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAShG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIhD,OAAO;IAOf,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAWjG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyB5G,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUnF,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAcnG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAS5F,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAU5E,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAY7G,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAM9E,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAMvG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWtG,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,iBAAiB,EAAE,2BAA2B,EAAE,CAAC;QAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IA2B/L,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DxF,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAUhH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMnD,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAwBxD,IAAI;IAsClB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;YAaN,WAAW;IAiCzB,OAAO,CAAC,gBAAgB;YAYV,cAAc;YAuBd,gBAAgB;IAM9B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;YAER,MAAM;YACN,WAAW;CAO1B;AAyID,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAkB,GAAG,MAAM,CAAqC"}