agent-working-memory 0.7.0 → 0.7.2

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 (40) hide show
  1. package/README.md +20 -5
  2. package/dist/adapters/common.d.ts.map +1 -1
  3. package/dist/adapters/common.js +9 -1
  4. package/dist/adapters/common.js.map +1 -1
  5. package/dist/api/routes.d.ts.map +1 -1
  6. package/dist/api/routes.js +107 -10
  7. package/dist/api/routes.js.map +1 -1
  8. package/dist/cli.js +103 -103
  9. package/dist/core/auto-tagger.d.ts +29 -0
  10. package/dist/core/auto-tagger.d.ts.map +1 -0
  11. package/dist/core/auto-tagger.js +139 -0
  12. package/dist/core/auto-tagger.js.map +1 -0
  13. package/dist/core/query-expander.d.ts.map +1 -1
  14. package/dist/core/query-expander.js.map +1 -1
  15. package/dist/core/reranker.d.ts.map +1 -1
  16. package/dist/core/reranker.js.map +1 -1
  17. package/dist/engine/consolidation.d.ts +1 -0
  18. package/dist/engine/consolidation.d.ts.map +1 -1
  19. package/dist/engine/consolidation.js +149 -9
  20. package/dist/engine/consolidation.js.map +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/mcp.js +114 -83
  23. package/dist/mcp.js.map +1 -1
  24. package/dist/storage/sqlite.d.ts.map +1 -1
  25. package/dist/storage/sqlite.js +6 -5
  26. package/dist/storage/sqlite.js.map +1 -1
  27. package/dist/types/engram.d.ts +1 -0
  28. package/dist/types/engram.d.ts.map +1 -1
  29. package/package.json +57 -57
  30. package/src/adapters/common.ts +9 -1
  31. package/src/api/routes.ts +723 -602
  32. package/src/cli.ts +719 -719
  33. package/src/core/auto-tagger.ts +168 -0
  34. package/src/core/query-expander.ts +0 -1
  35. package/src/core/reranker.ts +0 -1
  36. package/src/engine/consolidation.ts +165 -9
  37. package/src/index.ts +199 -199
  38. package/src/mcp.ts +1192 -1166
  39. package/src/storage/sqlite.ts +6 -5
  40. package/src/types/engram.ts +1 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Auto-Tagger — generates meta-tags for memories at write time.
3
+ *
4
+ * Meta-tags serve as categorical signals that boost BM25 recall.
5
+ * They're indexed in FTS5 alongside concept/content/tags, so queries
6
+ * that match a category tag get better BM25 scores.
7
+ *
8
+ * Three sources of tags:
9
+ * 1. Content analysis — extract topics, entities, categories from the text
10
+ * 2. Context propagation — inherit relevant tags from related memories
11
+ * 3. Type classification — fact/experience/belief/entity markers
12
+ *
13
+ * Design: lightweight heuristics, no LLM calls. Tags are additive —
14
+ * they enrich the existing tag set without replacing user-provided tags.
15
+ */
16
+ /**
17
+ * Extract meta-tags from memory content using keyword patterns.
18
+ * Returns tags prefixed with 'cat:' to distinguish from user tags.
19
+ */
20
+ export declare function extractMetaTags(concept: string, content: string): string[];
21
+ /**
22
+ * Propagate relevant tags from related memories to a new memory.
23
+ * Called after connection engine links the new memory to existing ones.
24
+ *
25
+ * Strategy: inherit meta-tags from strongly connected neighbors,
26
+ * but only tags that appear in 2+ neighbors (consensus filtering).
27
+ */
28
+ export declare function propagateTagsFromNeighbors(existingTags: string[], neighborTagSets: string[][]): string[];
29
+ //# sourceMappingURL=auto-tagger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-tagger.d.ts","sourceRoot":"","sources":["../../src/core/auto-tagger.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA8G1E;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,EAAE,MAAM,EAAE,EAAE,GAC1B,MAAM,EAAE,CAuBV"}
@@ -0,0 +1,139 @@
1
+ // Copyright 2026 Robert Winter / Complete Ideas
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Auto-Tagger — generates meta-tags for memories at write time.
5
+ *
6
+ * Meta-tags serve as categorical signals that boost BM25 recall.
7
+ * They're indexed in FTS5 alongside concept/content/tags, so queries
8
+ * that match a category tag get better BM25 scores.
9
+ *
10
+ * Three sources of tags:
11
+ * 1. Content analysis — extract topics, entities, categories from the text
12
+ * 2. Context propagation — inherit relevant tags from related memories
13
+ * 3. Type classification — fact/experience/belief/entity markers
14
+ *
15
+ * Design: lightweight heuristics, no LLM calls. Tags are additive —
16
+ * they enrich the existing tag set without replacing user-provided tags.
17
+ */
18
+ /**
19
+ * Extract meta-tags from memory content using keyword patterns.
20
+ * Returns tags prefixed with 'cat:' to distinguish from user tags.
21
+ */
22
+ export function extractMetaTags(concept, content) {
23
+ const tags = [];
24
+ const text = `${concept} ${content}`.toLowerCase();
25
+ // --- Category tags (broad topic classification) ---
26
+ // People / personal
27
+ if (/\b(i |my |i'm |i've |we |our |me )\b/.test(text)) {
28
+ tags.push('cat:personal');
29
+ }
30
+ // Work / professional
31
+ if (/\b(work|job|office|meeting|project|team|manager|colleague|career|salary|hired)\b/.test(text)) {
32
+ tags.push('cat:work');
33
+ }
34
+ // Technology / computing
35
+ if (/\b(code|programming|software|database|api|server|deploy|bug|git|typescript|python|react|node)\b/.test(text)) {
36
+ tags.push('cat:tech');
37
+ }
38
+ // Health / wellness
39
+ if (/\b(health|doctor|exercise|yoga|gym|diet|sleep|meditation|therapy|medicine|symptom)\b/.test(text)) {
40
+ tags.push('cat:health');
41
+ }
42
+ // Finance / money
43
+ if (/\b(money|budget|savings|invest|salary|cost|price|payment|bank|credit|expense|coupon|store|bought|purchased)\b/.test(text)) {
44
+ tags.push('cat:finance');
45
+ }
46
+ // Home / living
47
+ if (/\b(home|house|apartment|room|kitchen|bedroom|furniture|garden|repair|renovation|neighbor|moved)\b/.test(text)) {
48
+ tags.push('cat:home');
49
+ }
50
+ // Travel / location
51
+ if (/\b(travel|trip|vacation|flight|hotel|restaurant|city|country|visited|downtown|park)\b/.test(text)) {
52
+ tags.push('cat:location');
53
+ }
54
+ // Education / learning
55
+ if (/\b(school|university|college|degree|course|class|study|learn|graduate|student|teacher|exam)\b/.test(text)) {
56
+ tags.push('cat:education');
57
+ }
58
+ // Social / relationships
59
+ if (/\b(friend|family|partner|spouse|child|parent|sibling|birthday|party|dinner|wedding|date)\b/.test(text)) {
60
+ tags.push('cat:social');
61
+ }
62
+ // Hobbies / entertainment
63
+ if (/\b(music|movie|book|game|sport|hobby|play|concert|theater|playlist|podcast|guitar|tennis|yoga|painting)\b/.test(text)) {
64
+ tags.push('cat:hobby');
65
+ }
66
+ // Shopping / consumer
67
+ if (/\b(bought|purchased|ordered|shop|store|amazon|target|walmart|coupon|sale|discount|delivery)\b/.test(text)) {
68
+ tags.push('cat:shopping');
69
+ }
70
+ // Food / cooking
71
+ if (/\b(cook|recipe|restaurant|meal|food|dinner|lunch|breakfast|coffee|tea|bake|kitchen)\b/.test(text)) {
72
+ tags.push('cat:food');
73
+ }
74
+ // Pets / animals
75
+ if (/\b(pet|dog|cat|animal|vet|shelter|walk|breed)\b/.test(text)) {
76
+ tags.push('cat:pets');
77
+ }
78
+ // Time markers
79
+ if (/\b(yesterday|today|last week|last month|tomorrow|next week|this morning|this evening|monday|tuesday|wednesday|thursday|friday|saturday|sunday)\b/.test(text)) {
80
+ tags.push('cat:temporal');
81
+ }
82
+ // --- Entity extraction (simple noun phrase patterns) ---
83
+ // Proper nouns (capitalized words that aren't sentence starters)
84
+ const properNouns = content.match(/(?:^|\.\s+)?([A-Z][a-z]+(?:\s+[A-Z][a-z]+)*)/g);
85
+ if (properNouns) {
86
+ const unique = [...new Set(properNouns.map(n => n.trim()).filter(n => n.length > 2 && n.length < 30))];
87
+ for (const noun of unique.slice(0, 5)) {
88
+ tags.push(`entity:${noun}`);
89
+ }
90
+ }
91
+ // --- Knowledge type tags ---
92
+ // Preference (I like/prefer/enjoy/love/hate)
93
+ if (/\b(i like|i prefer|i enjoy|i love|i hate|my favorite|i don't like)\b/.test(text)) {
94
+ tags.push('cat:preference');
95
+ }
96
+ // Fact (declarative statements about identity/attributes)
97
+ if (/\b(my name is|i am a|i work at|i live in|i graduated|my birthday|i was born)\b/.test(text)) {
98
+ tags.push('cat:identity');
99
+ }
100
+ // Plan / intention
101
+ if (/\b(i plan to|i'm going to|i want to|i'm thinking of|i'm considering|next week i|planning to)\b/.test(text)) {
102
+ tags.push('cat:plan');
103
+ }
104
+ // Experience / event
105
+ if (/\b(i went|i visited|i attended|i tried|i saw|i heard|i found|i discovered)\b/.test(text)) {
106
+ tags.push('cat:experience');
107
+ }
108
+ return tags;
109
+ }
110
+ /**
111
+ * Propagate relevant tags from related memories to a new memory.
112
+ * Called after connection engine links the new memory to existing ones.
113
+ *
114
+ * Strategy: inherit meta-tags from strongly connected neighbors,
115
+ * but only tags that appear in 2+ neighbors (consensus filtering).
116
+ */
117
+ export function propagateTagsFromNeighbors(existingTags, neighborTagSets) {
118
+ if (neighborTagSets.length === 0)
119
+ return [];
120
+ // Count meta-tag occurrences across neighbors
121
+ const tagCounts = new Map();
122
+ for (const tags of neighborTagSets) {
123
+ for (const tag of tags) {
124
+ if (tag.startsWith('cat:') || tag.startsWith('entity:')) {
125
+ tagCounts.set(tag, (tagCounts.get(tag) ?? 0) + 1);
126
+ }
127
+ }
128
+ }
129
+ // Only propagate tags that appear in 2+ neighbors (consensus)
130
+ const propagated = [];
131
+ const existingSet = new Set(existingTags);
132
+ for (const [tag, count] of tagCounts) {
133
+ if (count >= 2 && !existingSet.has(tag)) {
134
+ propagated.push(tag);
135
+ }
136
+ }
137
+ return propagated.slice(0, 5); // Cap to avoid tag bloat
138
+ }
139
+ //# sourceMappingURL=auto-tagger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-tagger.js","sourceRoot":"","sources":["../../src/core/auto-tagger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-expander.d.ts","sourceRoot":"","sources":["../../src/core/query-expander.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAAY,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAOvF;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAaxE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBxE"}
1
+ {"version":3,"file":"query-expander.d.ts","sourceRoot":"","sources":["../../src/core/query-expander.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAAY,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAMvF;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAaxE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-expander.js","sourceRoot":"","sources":["../../src/core/query-expander.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAoC,MAAM,2BAA2B,CAAC;AAEvF,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC,IAAI,QAAQ,GAAuC,IAAI,CAAC;AACxD,IAAI,WAAW,GAAgD,IAAI,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,WAAW,GAAG,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,EAAE;QACvD,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACb,QAAQ,GAAG,IAAmC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAqB;IACrD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,8HAA8H,aAAa,qBAAqB,CAAC;QAEhL,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;YACpC,cAAc,EAAE,EAAE;YAClB,oBAAoB,EAAE,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,CAAS,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,aAAa,IAAI,aAAa,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"query-expander.js","sourceRoot":"","sources":["../../src/core/query-expander.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAoC,MAAM,2BAA2B,CAAC;AAEvF,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AACxC,IAAI,QAAQ,GAAuC,IAAI,CAAC;AACxD,IAAI,WAAW,GAAgD,IAAI,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,WAAW,GAAG,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,EAAE;QACvD,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACb,QAAQ,GAAG,IAAmC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAqB;IACrD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,8HAA8H,aAAa,qBAAqB,CAAC;QAEhL,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;YACpC,cAAc,EAAE,EAAE;YAClB,oBAAoB,EAAE,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,CAAS,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,aAAa,IAAI,aAAa,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AA+BH,yEAAyE;AACzE,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAGhD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;GAGG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAiCzB"}
1
+ {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AA8BH,yEAAyE;AACzE,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAGhD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;GAGG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAiCzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,aAAa,EACb,kCAAkC,GAGnC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,aAAa,GAAG,+BAA+B,CAAC;AACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,aAAa,CAAC;AAEjE,IAAI,SAAS,GAA+B,IAAI,CAAC;AACjD,IAAI,KAAK,GAA2B,IAAI,CAAC;AACzC,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C,KAAK,UAAU,YAAY;IACzB,IAAI,SAAS,IAAI,KAAK;QAAE,OAAO;IAC/B,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;QACxB,SAAS,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1D,KAAK,GAAG,MAAM,kCAAkC,CAAC,eAAe,CAAC,QAAQ,EAAE;YACzE,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,YAAY,EAAE,CAAC;IACrB,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,QAAkB;IAElB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,YAAY,EAAE,CAAC;IAErB,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,MAAM,GAAG,SAAU,CAAC,KAAK,EAAE;gBAC/B,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACtB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,KAAM,CAAC,MAAM,CAAC,CAAC;YAEpC,gEAAgE;YAChE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC;YAE1C,0CAA0C;YAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,aAAa,EACb,kCAAkC,GAGnC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,aAAa,GAAG,+BAA+B,CAAC;AACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,aAAa,CAAC;AACjE,IAAI,SAAS,GAA+B,IAAI,CAAC;AACjD,IAAI,KAAK,GAA2B,IAAI,CAAC;AACzC,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C,KAAK,UAAU,YAAY;IACzB,IAAI,SAAS,IAAI,KAAK;QAAE,OAAO;IAC/B,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;QACxB,SAAS,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1D,KAAK,GAAG,MAAM,kCAAkC,CAAC,eAAe,CAAC,QAAQ,EAAE;YACzE,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,YAAY,EAAE,CAAC;IACrB,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,QAAkB;IAElB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,YAAY,EAAE,CAAC;IAErB,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,MAAM,GAAG,SAAU,CAAC,KAAK,EAAE;gBAC/B,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACtB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,KAAM,CAAC,MAAM,CAAC,CAAC;YAEpC,gEAAgE;YAChE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC;YAE1C,0CAA0C;YAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -33,6 +33,7 @@ export interface ConsolidationResult {
33
33
  stagingPromoted: number;
34
34
  stagingDiscarded: number;
35
35
  engramsProcessed: number;
36
+ synthesesCreated: number;
36
37
  }
37
38
  export declare class ConsolidationEngine {
38
39
  private store;
@@ -1 +1 @@
1
- {"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../src/engine/consolidation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA6DxD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAc;gBAEf,KAAK,EAAE,WAAW;IAI9B;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuZhE;;;;OAIG;IACH;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA4DpB;;OAEG;IACH,OAAO,CAAC,eAAe;CAgBxB"}
1
+ {"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../src/engine/consolidation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA6DxD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAYD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAc;gBAEf,KAAK,EAAE,WAAW;IAI9B;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwiBhE;;;;OAIG;IACH;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA4DpB;;OAEG;IACH,OAAO,CAAC,eAAe;CAgBxB"}
@@ -62,6 +62,14 @@ const MAX_REDUNDANCY_PRUNE_PER_CYCLE = 25;
62
62
  const CONFIDENCE_DRIFT_CAP = 0.03;
63
63
  /** Days without recall before confidence starts drifting down */
64
64
  const CONFIDENCE_NEGLECT_DAYS = 30;
65
+ const MAX_SYNTHESES_PER_CYCLE = 5;
66
+ const MIN_CLUSTER_SIZE_FOR_SYNTHESIS = 3;
67
+ /** Shared stopwords for synthesis keyword extraction */
68
+ const SYNTH_STOPWORDS = new Set(['the', 'is', 'a', 'an', 'and', 'or', 'of', 'to', 'in', 'for',
69
+ 'on', 'with', 'that', 'this', 'it', 'was', 'are', 'be', 'has', 'had', 'but', 'not', 'from',
70
+ 'by', 'as', 'at', 'i', 'you', 'we', 'my', 'your', 'can', 'will', 'do', 'did', 'if', 'user',
71
+ 'assistant', 'would', 'like', 'just', 'also', 'about', 'really', 'think', 'know', 'want',
72
+ 'here', 'there', 'some', 'more', 'very', 'been', 'have', 'what', 'when', 'how', 'they']);
65
73
  export class ConsolidationEngine {
66
74
  store;
67
75
  constructor(store) {
@@ -95,6 +103,7 @@ export class ConsolidationEngine {
95
103
  stagingPromoted: 0,
96
104
  stagingDiscarded: 0,
97
105
  engramsProcessed: 0,
106
+ synthesesCreated: 0,
98
107
  };
99
108
  // --- Phase 1: Replay ---
100
109
  // Get all active engrams, backfill missing embeddings
@@ -155,6 +164,140 @@ export class ConsolidationEngine {
155
164
  }
156
165
  }
157
166
  }
167
+ // --- Phase 2.5: Two types of synthesis ---
168
+ //
169
+ // Type A: SESSION SYNTHESIS (perfect recall)
170
+ // Groups by shared metadata tags (sid=, proj=, topic=).
171
+ // Summarizes what happened in a conversation/project session.
172
+ // Helps find specific facts by providing a topical anchor.
173
+ //
174
+ // Type B: PATTERN SYNTHESIS (novel recall)
175
+ // Uses the existing vector-similarity clusters.
176
+ // Finds structural patterns across disparate topics.
177
+ // "Debugging X by Y" + "Resolving A by B" → pattern: "conflict → ordering"
178
+ // Lower confidence — these are speculative connections, not facts.
179
+ let synthCount = 0;
180
+ // --- Type A: Session synthesis (tag-based grouping) ---
181
+ // Group engrams by shared session/project tags, NOT vector similarity
182
+ const tagGroups = new Map();
183
+ for (const e of engrams) {
184
+ if (e.tags.includes('synth=true'))
185
+ continue; // Skip existing syntheses
186
+ for (const tag of e.tags) {
187
+ if (tag.startsWith('sid=') || tag.startsWith('proj=') || tag.startsWith('topic=')) {
188
+ const group = tagGroups.get(tag) ?? [];
189
+ group.push(e);
190
+ tagGroups.set(tag, group);
191
+ }
192
+ }
193
+ }
194
+ for (const [tag, group] of tagGroups) {
195
+ if (group.length < MIN_CLUSTER_SIZE_FOR_SYNTHESIS)
196
+ continue;
197
+ if (synthCount >= MAX_SYNTHESES_PER_CYCLE)
198
+ break;
199
+ // Check if a synthesis for this tag already exists
200
+ const existing = engrams.find(e => e.tags.includes('synth=true') && e.tags.includes(tag));
201
+ if (existing)
202
+ continue;
203
+ // Extract key terms from this group
204
+ const wordCounts = new Map();
205
+ for (const e of group) {
206
+ const words = e.content.toLowerCase().replace(/[^\w\s]/g, '').split(/\s+/);
207
+ for (const w of words) {
208
+ if (w.length > 3 && !SYNTH_STOPWORDS.has(w)) {
209
+ wordCounts.set(w, (wordCounts.get(w) ?? 0) + 1);
210
+ }
211
+ }
212
+ }
213
+ const keyTerms = [...wordCounts.entries()]
214
+ .sort((a, b) => b[1] - a[1])
215
+ .slice(0, 15)
216
+ .map(([word]) => word);
217
+ // Extract unique concepts (deduplicated)
218
+ const concepts = [...new Set(group.map(e => e.concept))];
219
+ const synthContent = [
220
+ `Session summary (${tag}, ${group.length} turns).`,
221
+ `Key topics: ${keyTerms.slice(0, 8).join(', ')}.`,
222
+ `Discussed: ${keyTerms.slice(8).join(', ')}.`,
223
+ ].join(' ');
224
+ const synthEngram = this.store.createEngram({
225
+ agentId,
226
+ concept: `session: ${tag} (${keyTerms.slice(0, 3).join(', ')})`,
227
+ content: synthContent,
228
+ tags: [tag, 'synth=true', 'synth-type=session'],
229
+ salience: 0.6,
230
+ confidence: 0.55,
231
+ memoryType: 'semantic',
232
+ });
233
+ // Set embedding to group centroid
234
+ const centroid = this.computeCentroid(group);
235
+ if (centroid.length > 0) {
236
+ this.store.updateEmbedding(synthEngram.id, centroid);
237
+ }
238
+ // Link to sources
239
+ for (const source of group.slice(0, 10)) { // Cap links to prevent explosion
240
+ this.store.upsertAssociation(synthEngram.id, source.id, 0.4, 'causal');
241
+ }
242
+ synthCount++;
243
+ result.synthesesCreated++;
244
+ }
245
+ // --- Type B: Pattern synthesis (vector-similarity clusters, speculative) ---
246
+ // Only create these for clusters where members come from DIFFERENT sessions/projects.
247
+ // This finds cross-domain patterns: "debugging technique A" + "architecture pattern B"
248
+ for (const cluster of clusters) {
249
+ if (cluster.length < MIN_CLUSTER_SIZE_FOR_SYNTHESIS)
250
+ continue;
251
+ if (synthCount >= MAX_SYNTHESES_PER_CYCLE)
252
+ break;
253
+ if (cluster.some(e => e.tags.includes('synth=true')))
254
+ continue;
255
+ // Only create pattern synthesis if cluster spans multiple sessions
256
+ const sessionTags = new Set();
257
+ for (const e of cluster) {
258
+ for (const tag of e.tags) {
259
+ if (tag.startsWith('sid=') || tag.startsWith('proj='))
260
+ sessionTags.add(tag);
261
+ }
262
+ }
263
+ if (sessionTags.size < 2)
264
+ continue; // Same session → skip (Type A handles it)
265
+ const wordCounts = new Map();
266
+ for (const e of cluster) {
267
+ const words = e.content.toLowerCase().replace(/[^\w\s]/g, '').split(/\s+/);
268
+ for (const w of words) {
269
+ if (w.length > 3 && !SYNTH_STOPWORDS.has(w)) {
270
+ wordCounts.set(w, (wordCounts.get(w) ?? 0) + 1);
271
+ }
272
+ }
273
+ }
274
+ const keyTerms = [...wordCounts.entries()]
275
+ .sort((a, b) => b[1] - a[1])
276
+ .slice(0, 10)
277
+ .map(([word]) => word);
278
+ const synthContent = [
279
+ `Pattern across ${sessionTags.size} sessions (${cluster.length} memories).`,
280
+ `Common themes: ${keyTerms.join(', ')}.`,
281
+ ].join(' ');
282
+ const synthEngram = this.store.createEngram({
283
+ agentId,
284
+ concept: `pattern: ${keyTerms.slice(0, 3).join(', ')}`,
285
+ content: synthContent,
286
+ tags: [...sessionTags, 'synth=true', 'synth-type=pattern'],
287
+ salience: 0.5, // Lower — speculative
288
+ confidence: 0.4, // Lower — these are hypotheses not facts
289
+ memoryType: 'semantic',
290
+ });
291
+ const centroid = this.computeCentroid(cluster);
292
+ if (centroid.length > 0) {
293
+ this.store.updateEmbedding(synthEngram.id, centroid);
294
+ }
295
+ for (const source of cluster.slice(0, 8)) {
296
+ this.store.upsertAssociation(synthEngram.id, source.id, 0.3, 'bridge');
297
+ }
298
+ synthCount++;
299
+ result.synthesesCreated++;
300
+ }
158
301
  // --- Phase 3: Direct cross-cluster bridging ---
159
302
  // Find the closest pair of memories between each cluster pair and bridge them.
160
303
  if (clusters.length >= 2) {
@@ -196,20 +339,17 @@ export class ConsolidationEngine {
196
339
  // that received positive feedback are more durable — just like how
197
340
  // practiced memories are more resistant to forgetting in the brain.
198
341
  // Base half-life: 7 days. High-confidence (0.8+) gets up to 30 days.
199
- const engramConfMap = new Map(engrams.map(e => [e.id, e.confidence]));
342
+ const engramMap = new Map(engrams.map(e => [e.id, e]));
200
343
  const associations = this.store.getAllAssociations(agentId);
201
344
  for (const assoc of associations) {
202
345
  const daysSince = (Date.now() - assoc.lastActivated.getTime()) / (1000 * 60 * 60 * 24);
203
346
  if (daysSince < 0.5)
204
- continue; // Skip recently activated
205
- // Confidence + access-count modulated half-life (synaptic tagging for edges)
206
- // Base: 7 days. High confidence (0.8+): up to 21 days.
207
- // High access count: further extends half-life (log-scaled, capped at 2x boost).
208
- const fromConf = engramConfMap.get(assoc.fromEngramId) ?? 0.5;
209
- const toConf = engramConfMap.get(assoc.toEngramId) ?? 0.5;
347
+ continue;
348
+ const fromEngram = engramMap.get(assoc.fromEngramId);
349
+ const toEngram = engramMap.get(assoc.toEngramId);
350
+ const fromConf = fromEngram?.confidence ?? 0.5;
351
+ const toConf = toEngram?.confidence ?? 0.5;
210
352
  const maxConf = Math.max(fromConf, toConf);
211
- const fromEngram = engrams.find(e => e.id === assoc.fromEngramId);
212
- const toEngram = engrams.find(e => e.id === assoc.toEngramId);
213
353
  const maxAccess = Math.max(fromEngram?.accessCount ?? 0, toEngram?.accessCount ?? 0);
214
354
  const accessBoost = Math.min(2.0, 1.0 + 0.5 * Math.log1p(maxAccess));
215
355
  const halfLifeDays = Math.min(7 * (1 + 2 * Math.max(0, (maxConf - 0.5) / 0.5)) * accessBoost, 42 // Hard cap: 6 weeks max
@@ -1 +1 @@
1
- {"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../src/engine/consolidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../src/engine/consolidation.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI7E,iFAAiF;AACjF,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;iFACiF;AACjF,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,iEAAiE;AACjE,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,4EAA4E;AAC5E,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,wEAAwE;AACxE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,2DAA2D;AAC3D,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,oDAAoD;AACpD,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,+DAA+D;AAC/D,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,iEAAiE;AACjE,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,iFAAiF;AACjF,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,gEAAgE;AAChE,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,sFAAsF;AACtF,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B;;sFAEsF;AACtF,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;yEAEyE;AACzE,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC,iEAAiE;AACjE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAoBnC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,wDAAwD;AACxD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;IAC3F,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;IAC1F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;IAC1F,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IACxF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3F,MAAM,OAAO,mBAAmB;IACtB,KAAK,CAAc;IAE3B,YAAY,KAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,MAAM,GAAwB;YAClC,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,CAAC;YACpB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;YACnB,kBAAkB,EAAE,CAAC;YACrB,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;SACpB,CAAC;QAEF,0BAA0B;QAC1B,sDAAsD;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACvF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBACzE,MAAM,UAAU,GAAG,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,SAAS,CAAC;gBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3D,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;oBACtD,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC1D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;wBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;4BAC1D,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;gBAClD,CAAC;gBACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,8BAA8B,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,uBAAuB,OAAO,GAAG,CAAC,CAAC;gBAC9J,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,mCAAmC,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7E,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QAEtC,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;QAEvC,gDAAgD;QAChD,qEAAqE;QACrE,6EAA6E;QAC7E,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACrB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAErB,kEAAkE;oBAClE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,GAAG,EACH,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CACvE,CAAC;oBAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvD,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,SAAS,GAAG,qBAAqB,CACrC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,YAAY,EAAE,IAAI,CAC3D,CAAC;wBACF,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAC1D,CAAC;wBACF,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC7B,CAAC;yBAAM,IAAI,QAAQ,GAAG,uBAAuB,EAAE,CAAC;wBAC9C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,GAAG,YAAY,EAAE,YAAY,CAC7D,CAAC;wBACF,QAAQ,EAAE,CAAC;wBACX,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,EAAE;QACF,6CAA6C;QAC7C,0DAA0D;QAC1D,gEAAgE;QAChE,6DAA6D;QAC7D,EAAE;QACF,2CAA2C;QAC3C,kDAAkD;QAClD,uDAAuD;QACvD,6EAA6E;QAC7E,qEAAqE;QAErE,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,yDAAyD;QACzD,sEAAsE;QACtE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAAE,SAAS,CAAC,0BAA0B;YACvE,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBACvC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACd,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,MAAM,GAAG,8BAA8B;gBAAE,SAAS;YAC5D,IAAI,UAAU,IAAI,uBAAuB;gBAAE,MAAM;YAEjD,mDAAmD;YACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CACtD,CAAC;YACF,IAAI,QAAQ;gBAAE,SAAS;YAEvB,oCAAoC;YACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3E,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5C,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;iBACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAEzB,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEzD,MAAM,YAAY,GAAG;gBACnB,oBAAoB,GAAG,KAAK,KAAK,CAAC,MAAM,UAAU;gBAClD,eAAe,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACjD,cAAc,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC9C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC1C,OAAO;gBACP,OAAO,EAAE,YAAY,GAAG,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC/D,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,oBAAoB,CAAC;gBAC/C,QAAQ,EAAE,GAAG;gBACb,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YAEH,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC;YAED,kBAAkB;YAClB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,iCAAiC;gBAC1E,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACzE,CAAC;YAED,UAAU,EAAE,CAAC;YACb,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;QAED,8EAA8E;QAC9E,sFAAsF;QACtF,uFAAuF;QACvF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,8BAA8B;gBAAE,SAAS;YAC9D,IAAI,UAAU,IAAI,uBAAuB;gBAAE,MAAM;YACjD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAAE,SAAS;YAE/D,mEAAmE;YACnE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;wBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;gBAAE,SAAS,CAAC,0CAA0C;YAE9E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3E,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5C,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;iBACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAEzB,MAAM,YAAY,GAAG;gBACnB,kBAAkB,WAAW,CAAC,IAAI,cAAc,OAAO,CAAC,MAAM,aAAa;gBAC3E,kBAAkB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACzC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC1C,OAAO;gBACP,OAAO,EAAE,YAAY,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtD,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,CAAC,GAAG,WAAW,EAAE,YAAY,EAAE,oBAAoB,CAAC;gBAC1D,QAAQ,EAAE,GAAG,EAAQ,sBAAsB;gBAC3C,UAAU,EAAE,GAAG,EAAM,yCAAyC;gBAC9D,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC;YAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACzE,CAAC;YAED,UAAU,EAAE,CAAC;YACb,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;QAED,iDAAiD;QACjD,+EAA+E;QAC/E,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC;YAC5B,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,OAAO,GAAG,0BAA0B,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjF,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,OAAO,GAAG,0BAA0B,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrF,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;oBACjB,IAAI,KAAK,GAAkB,IAAI,CAAC;oBAChC,IAAI,KAAK,GAAkB,IAAI,CAAC;oBAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5B,IAAI,CAAC,CAAC,CAAC,SAAS;4BAAE,SAAS;wBAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC5B,IAAI,CAAC,CAAC,CAAC,SAAS;gCAAE,SAAS;4BAC3B,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;4BACrD,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;gCAAC,OAAO,GAAG,CAAC,CAAC;gCAAC,KAAK,GAAG,CAAC,CAAC;gCAAC,KAAK,GAAG,CAAC,CAAC;4BAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,cAAc,EAAE,CAAC;wBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;4BACpE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;4BACpE,OAAO,EAAE,CAAC;4BACV,MAAM,CAAC,cAAc,EAAE,CAAC;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,wEAAwE;QACxE,mEAAmE;QACnE,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,SAAS,GACb,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,IAAI,SAAS,GAAG,GAAG;gBAAE,SAAS;YAE9B,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,UAAU,EAAE,UAAU,IAAI,GAAG,CAAC;YAC/C,MAAM,MAAM,GAAG,QAAQ,EAAE,UAAU,IAAI,GAAG,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;YACrF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACrE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,WAAW,EAC9D,EAAE,CAAC,wBAAwB;aAC5B,CAAC;YAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC1E,IAAI,SAAS,GAAG,eAAe,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvC,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC1B,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,EACpC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CACxC,CAAC;gBACF,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,0EAA0E;QAC1E,oFAAoF;QACpF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnE,IAAI,WAAW,GAAG,kBAAkB,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,kBAAkB,GAAG,WAAW,CAAC;gBAC/C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACtC,IAAI,SAAS,GAAG,eAAe,EAAE,CAAC;wBAChC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACtC,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC1B,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAClC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CACtC,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,0CAA0C;QAC1C,uDAAuD;QACvD,8DAA8D;QAC9D,yEAAyE;QACzE,sEAAsE;QACtE,6DAA6D;QAC7D,sDAAsD;QACtD,EAAE;QACF,yEAAyE;QACzE,qDAAqD;QACrD,mEAAmE;QACnE,0EAA0E;QAC1E,iFAAiF;QACjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,0BAA0B,CAAC,CAAC;QACjF,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,0DAA0D;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAElE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAClF,IAAI,OAAO,GAAG,iBAAiB;gBAAE,SAAS,CAAC,kCAAkC;YAE7E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE7D,iEAAiE;YACjE,wDAAwD;YACxD,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,GAAG,GAAG;gBAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjG,IAAI,SAAS,GAAG,uBAAuB;gBAAE,SAAS;YAElD,iEAAiE;YACjE,iFAAiF;YACjF,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,IAAI,UAAU,IAAI,sBAAsB,EAAE,CAAC;gBACrE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC9C,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YAED,2EAA2E;YAC3E,6EAA6E;YAC7E,oFAAoF;YACpF,wCAAwC;YACxC,oEAAoE;YACpE,uEAAuE;YACvE,gFAAgF;YAChF,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;YAC9D,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACxE,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACnC,mBAAmB,GAAG,YAAY,GAAG,UAAU,EAC/C,mBAAmB,GAAG,EAAE,CACzB,CAAC;YAEF,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE7F,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,IAAI,OAAO,GAAG,mBAAmB,EAAE,CAAC;gBAC9D,mDAAmD;gBACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC9C,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,eAAe,GAAG,oBAAoB,EAAE,CAAC;gBAC5E,uEAAuE;gBACvE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC9C,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAClF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE7D,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,IAAI,OAAO,GAAG,kBAAkB,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBAChF,kEAAkE;gBAClE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,CAAC;YACD,yEAAyE;QAC3E,CAAC;QAED,wCAAwC;QACxC,yEAAyE;QACzE,2EAA2E;QAC3E,2EAA2E;QAC3E,0EAA0E;QAC1E,mEAAmE;QACnE,wEAAwE;QACxE,8DAA8D;QAC9D,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACxC,CAAC,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,sEAAsE;QACtE,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;QAE7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,eAAe,GAAG,8BAA8B,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9F,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,eAAe,GAAG,8BAA8B,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClG,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;oBAAE,SAAS;gBAEjE,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC;gBAC/E,IAAI,GAAG,IAAI,oBAAoB,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAEjC,uDAAuD;oBACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBAC5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;wBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;wBACpF,IAAI,MAAM,KAAK,UAAU;4BAAE,SAAS,CAAC,kBAAkB;wBACvD,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC5F,CAAC;oBAED,qCAAqC;oBACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvE,IAAI,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBAChD,CAAC;oBAED,sCAAsC;oBACtC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC7C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACrB,eAAe,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAE1C,sCAAsC;QACtC,4EAA4E;QAC5E,0EAA0E;QAC1E,EAAE;QACF,iBAAiB;QACjB,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,mDAAmD;QACnD,sEAAsE;QACtE,yEAAyE;QACzE,EAAE;QACF,oEAAoE;QACpE,6EAA6E;QAC7E,wEAAwE;QACxE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE7F,6CAA6C;YAC7C,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChC,KAAK,IAAI,IAAI,CAAC;YAChB,CAAC;YAED,uCAAuC;YACvC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,KAAK,IAAI,IAAI,CAAC;YAChB,CAAC;YAED,4CAA4C;YAC5C,IAAI,eAAe,GAAG,uBAAuB,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;gBACzE,KAAK,IAAI,IAAI,CAAC;YAChB,CAAC;YAED,iBAAiB;YACjB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC;gBAC5B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,CAAC;oBAClD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;aAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAEtD,gEAAgE;YAChE,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;oBAAE,SAAS;gBACrD,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjE,IAAI,GAAG,GAAG,MAAM;oBAAE,MAAM,GAAG,GAAG,CAAC;YACjC,CAAC;YAED,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAClB,qEAAqE;gBACrE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,CAAC;iBAAM,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACvC,sCAAsC;gBACtC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC;YACD,gDAAgD;QAClD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH;;;;;OAKG;IACK,YAAY,CAAC,OAAiB;QACpC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAErB,oCAAoC;QACpC,MAAM,GAAG,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;oBAAE,SAAS;gBAC7D,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC;gBACzE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAe,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACtD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAEnE,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YACvC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE3B,MAAM,WAAW,GAAa,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,IAAI,CAAC;YAEjB,OAAO,KAAK,EAAE,CAAC;gBACb,KAAK,GAAG,KAAK,CAAC;gBACd,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7C,IAAI,KAAK,GAAG,KAAK,CAAC;oBAClB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;wBAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC;4BAAC,KAAK,GAAG,IAAI,CAAC;4BAAC,MAAM;wBAAC,CAAC;oBACvE,CAAC;oBACD,IAAI,CAAC,KAAK;wBAAE,SAAS;oBAErB,IAAI,SAAS,GAAG,IAAI,CAAC;oBACrB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;wBAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAE,CAAC;4BAAC,SAAS,GAAG,KAAK,CAAC;4BAAC,MAAM;wBAAC,CAAC;oBACvE,CAAC;oBACD,IAAI,CAAC,SAAS;wBAAE,SAAS;oBAEzB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1B,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC3B,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC;YACH,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAiB;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC,MAAM,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC;QAClC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
package/dist/index.js CHANGED
@@ -175,7 +175,7 @@ async function main() {
175
175
  getExpander().catch(err => console.warn('Query expander model unavailable:', err.message));
176
176
  // Start server
177
177
  await app.listen({ port: PORT, host: '0.0.0.0' });
178
- console.log(`AgentWorkingMemory v0.6.0 listening on port ${PORT}`);
178
+ console.log(`AgentWorkingMemory v0.7.2 listening on port ${PORT}`);
179
179
  // Graceful shutdown
180
180
  const shutdown = async () => {
181
181
  clearInterval(backupTimer);