@mnemoai/core 1.1.0 → 1.1.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 (220) hide show
  1. package/dist/cli.d.ts +2 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +7 -0
  4. package/dist/cli.js.map +7 -0
  5. package/dist/index.d.ts +136 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/{index.ts → dist/index.js} +537 -1333
  8. package/dist/index.js.map +7 -0
  9. package/dist/src/access-tracker.d.ts +97 -0
  10. package/dist/src/access-tracker.d.ts.map +1 -0
  11. package/dist/src/access-tracker.js +184 -0
  12. package/dist/src/access-tracker.js.map +7 -0
  13. package/dist/src/adapters/chroma.d.ts +31 -0
  14. package/dist/src/adapters/chroma.d.ts.map +1 -0
  15. package/{src/adapters/chroma.ts → dist/src/adapters/chroma.js} +45 -107
  16. package/dist/src/adapters/chroma.js.map +7 -0
  17. package/dist/src/adapters/lancedb.d.ts +29 -0
  18. package/dist/src/adapters/lancedb.d.ts.map +1 -0
  19. package/{src/adapters/lancedb.ts → dist/src/adapters/lancedb.js} +41 -109
  20. package/dist/src/adapters/lancedb.js.map +7 -0
  21. package/dist/src/adapters/pgvector.d.ts +33 -0
  22. package/dist/src/adapters/pgvector.d.ts.map +1 -0
  23. package/{src/adapters/pgvector.ts → dist/src/adapters/pgvector.js} +42 -104
  24. package/dist/src/adapters/pgvector.js.map +7 -0
  25. package/dist/src/adapters/qdrant.d.ts +34 -0
  26. package/dist/src/adapters/qdrant.d.ts.map +1 -0
  27. package/dist/src/adapters/qdrant.js +132 -0
  28. package/dist/src/adapters/qdrant.js.map +7 -0
  29. package/dist/src/adaptive-retrieval.d.ts +14 -0
  30. package/dist/src/adaptive-retrieval.d.ts.map +1 -0
  31. package/dist/src/adaptive-retrieval.js +52 -0
  32. package/dist/src/adaptive-retrieval.js.map +7 -0
  33. package/dist/src/audit-log.d.ts +56 -0
  34. package/dist/src/audit-log.d.ts.map +1 -0
  35. package/dist/src/audit-log.js +139 -0
  36. package/dist/src/audit-log.js.map +7 -0
  37. package/dist/src/chunker.d.ts +45 -0
  38. package/dist/src/chunker.d.ts.map +1 -0
  39. package/dist/src/chunker.js +157 -0
  40. package/dist/src/chunker.js.map +7 -0
  41. package/dist/src/config.d.ts +70 -0
  42. package/dist/src/config.d.ts.map +1 -0
  43. package/dist/src/config.js +142 -0
  44. package/dist/src/config.js.map +7 -0
  45. package/dist/src/decay-engine.d.ts +73 -0
  46. package/dist/src/decay-engine.d.ts.map +1 -0
  47. package/dist/src/decay-engine.js +119 -0
  48. package/dist/src/decay-engine.js.map +7 -0
  49. package/dist/src/embedder.d.ts +94 -0
  50. package/dist/src/embedder.d.ts.map +1 -0
  51. package/{src/embedder.ts → dist/src/embedder.js} +119 -317
  52. package/dist/src/embedder.js.map +7 -0
  53. package/dist/src/extraction-prompts.d.ts +12 -0
  54. package/dist/src/extraction-prompts.d.ts.map +1 -0
  55. package/dist/src/extraction-prompts.js +311 -0
  56. package/dist/src/extraction-prompts.js.map +7 -0
  57. package/dist/src/license.d.ts +29 -0
  58. package/dist/src/license.d.ts.map +1 -0
  59. package/{src/license.ts → dist/src/license.js} +42 -113
  60. package/dist/src/license.js.map +7 -0
  61. package/dist/src/llm-client.d.ts +23 -0
  62. package/dist/src/llm-client.d.ts.map +1 -0
  63. package/{src/llm-client.ts → dist/src/llm-client.js} +22 -55
  64. package/dist/src/llm-client.js.map +7 -0
  65. package/dist/src/logger.d.ts +33 -0
  66. package/dist/src/logger.d.ts.map +1 -0
  67. package/dist/src/logger.js +35 -0
  68. package/dist/src/logger.js.map +7 -0
  69. package/dist/src/mcp-server.d.ts +16 -0
  70. package/dist/src/mcp-server.d.ts.map +1 -0
  71. package/{src/mcp-server.ts → dist/src/mcp-server.js} +81 -181
  72. package/dist/src/mcp-server.js.map +7 -0
  73. package/dist/src/memory-categories.d.ts +40 -0
  74. package/dist/src/memory-categories.d.ts.map +1 -0
  75. package/dist/src/memory-categories.js +33 -0
  76. package/dist/src/memory-categories.js.map +7 -0
  77. package/dist/src/memory-upgrader.d.ts +71 -0
  78. package/dist/src/memory-upgrader.d.ts.map +1 -0
  79. package/dist/src/memory-upgrader.js +238 -0
  80. package/dist/src/memory-upgrader.js.map +7 -0
  81. package/dist/src/migrate.d.ts +47 -0
  82. package/dist/src/migrate.d.ts.map +1 -0
  83. package/{src/migrate.ts → dist/src/migrate.js} +57 -165
  84. package/dist/src/migrate.js.map +7 -0
  85. package/dist/src/mnemo.d.ts +67 -0
  86. package/dist/src/mnemo.d.ts.map +1 -0
  87. package/dist/src/mnemo.js +66 -0
  88. package/dist/src/mnemo.js.map +7 -0
  89. package/dist/src/noise-filter.d.ts +23 -0
  90. package/dist/src/noise-filter.d.ts.map +1 -0
  91. package/dist/src/noise-filter.js +62 -0
  92. package/dist/src/noise-filter.js.map +7 -0
  93. package/dist/src/noise-prototypes.d.ts +40 -0
  94. package/dist/src/noise-prototypes.d.ts.map +1 -0
  95. package/dist/src/noise-prototypes.js +116 -0
  96. package/dist/src/noise-prototypes.js.map +7 -0
  97. package/dist/src/observability.d.ts +16 -0
  98. package/dist/src/observability.d.ts.map +1 -0
  99. package/dist/src/observability.js +53 -0
  100. package/dist/src/observability.js.map +7 -0
  101. package/dist/src/query-tracker.d.ts +27 -0
  102. package/dist/src/query-tracker.d.ts.map +1 -0
  103. package/dist/src/query-tracker.js +32 -0
  104. package/dist/src/query-tracker.js.map +7 -0
  105. package/dist/src/reflection-event-store.d.ts +44 -0
  106. package/dist/src/reflection-event-store.d.ts.map +1 -0
  107. package/dist/src/reflection-event-store.js +50 -0
  108. package/dist/src/reflection-event-store.js.map +7 -0
  109. package/dist/src/reflection-item-store.d.ts +58 -0
  110. package/dist/src/reflection-item-store.d.ts.map +1 -0
  111. package/dist/src/reflection-item-store.js +69 -0
  112. package/dist/src/reflection-item-store.js.map +7 -0
  113. package/dist/src/reflection-mapped-metadata.d.ts +47 -0
  114. package/dist/src/reflection-mapped-metadata.d.ts.map +1 -0
  115. package/dist/src/reflection-mapped-metadata.js +40 -0
  116. package/dist/src/reflection-mapped-metadata.js.map +7 -0
  117. package/dist/src/reflection-metadata.d.ts +11 -0
  118. package/dist/src/reflection-metadata.d.ts.map +1 -0
  119. package/dist/src/reflection-metadata.js +24 -0
  120. package/dist/src/reflection-metadata.js.map +7 -0
  121. package/dist/src/reflection-ranking.d.ts +13 -0
  122. package/dist/src/reflection-ranking.d.ts.map +1 -0
  123. package/{src/reflection-ranking.ts → dist/src/reflection-ranking.js} +12 -21
  124. package/dist/src/reflection-ranking.js.map +7 -0
  125. package/dist/src/reflection-retry.d.ts +30 -0
  126. package/dist/src/reflection-retry.d.ts.map +1 -0
  127. package/{src/reflection-retry.ts → dist/src/reflection-retry.js} +24 -64
  128. package/dist/src/reflection-retry.js.map +7 -0
  129. package/dist/src/reflection-slices.d.ts +42 -0
  130. package/dist/src/reflection-slices.d.ts.map +1 -0
  131. package/{src/reflection-slices.ts → dist/src/reflection-slices.js} +60 -136
  132. package/dist/src/reflection-slices.js.map +7 -0
  133. package/dist/src/reflection-store.d.ts +85 -0
  134. package/dist/src/reflection-store.d.ts.map +1 -0
  135. package/dist/src/reflection-store.js +407 -0
  136. package/dist/src/reflection-store.js.map +7 -0
  137. package/dist/src/resonance-state.d.ts +19 -0
  138. package/dist/src/resonance-state.d.ts.map +1 -0
  139. package/{src/resonance-state.ts → dist/src/resonance-state.js} +13 -42
  140. package/dist/src/resonance-state.js.map +7 -0
  141. package/dist/src/retriever.d.ts +228 -0
  142. package/dist/src/retriever.d.ts.map +1 -0
  143. package/dist/src/retriever.js +1006 -0
  144. package/dist/src/retriever.js.map +7 -0
  145. package/dist/src/scopes.d.ts +58 -0
  146. package/dist/src/scopes.d.ts.map +1 -0
  147. package/dist/src/scopes.js +252 -0
  148. package/dist/src/scopes.js.map +7 -0
  149. package/dist/src/self-improvement-files.d.ts +20 -0
  150. package/dist/src/self-improvement-files.d.ts.map +1 -0
  151. package/{src/self-improvement-files.ts → dist/src/self-improvement-files.js} +24 -49
  152. package/dist/src/self-improvement-files.js.map +7 -0
  153. package/dist/src/semantic-gate.d.ts +24 -0
  154. package/dist/src/semantic-gate.d.ts.map +1 -0
  155. package/dist/src/semantic-gate.js +86 -0
  156. package/dist/src/semantic-gate.js.map +7 -0
  157. package/dist/src/session-recovery.d.ts +9 -0
  158. package/dist/src/session-recovery.d.ts.map +1 -0
  159. package/{src/session-recovery.ts → dist/src/session-recovery.js} +40 -57
  160. package/dist/src/session-recovery.js.map +7 -0
  161. package/dist/src/smart-extractor.d.ts +107 -0
  162. package/dist/src/smart-extractor.d.ts.map +1 -0
  163. package/{src/smart-extractor.ts → dist/src/smart-extractor.js} +130 -383
  164. package/dist/src/smart-extractor.js.map +7 -0
  165. package/dist/src/smart-metadata.d.ts +103 -0
  166. package/dist/src/smart-metadata.d.ts.map +1 -0
  167. package/dist/src/smart-metadata.js +361 -0
  168. package/dist/src/smart-metadata.js.map +7 -0
  169. package/dist/src/storage-adapter.d.ts +102 -0
  170. package/dist/src/storage-adapter.d.ts.map +1 -0
  171. package/dist/src/storage-adapter.js +22 -0
  172. package/dist/src/storage-adapter.js.map +7 -0
  173. package/dist/src/store.d.ts +108 -0
  174. package/dist/src/store.d.ts.map +1 -0
  175. package/dist/src/store.js +939 -0
  176. package/dist/src/store.js.map +7 -0
  177. package/dist/src/tier-manager.d.ts +57 -0
  178. package/dist/src/tier-manager.d.ts.map +1 -0
  179. package/dist/src/tier-manager.js +80 -0
  180. package/dist/src/tier-manager.js.map +7 -0
  181. package/dist/src/tools.d.ts +43 -0
  182. package/dist/src/tools.d.ts.map +1 -0
  183. package/dist/src/tools.js +1075 -0
  184. package/dist/src/tools.js.map +7 -0
  185. package/dist/src/wal-recovery.d.ts +30 -0
  186. package/dist/src/wal-recovery.d.ts.map +1 -0
  187. package/{src/wal-recovery.ts → dist/src/wal-recovery.js} +26 -79
  188. package/dist/src/wal-recovery.js.map +7 -0
  189. package/package.json +21 -2
  190. package/openclaw.plugin.json +0 -815
  191. package/src/access-tracker.ts +0 -341
  192. package/src/adapters/README.md +0 -78
  193. package/src/adapters/qdrant.ts +0 -191
  194. package/src/adaptive-retrieval.ts +0 -90
  195. package/src/audit-log.ts +0 -238
  196. package/src/chunker.ts +0 -254
  197. package/src/config.ts +0 -271
  198. package/src/decay-engine.ts +0 -238
  199. package/src/extraction-prompts.ts +0 -339
  200. package/src/memory-categories.ts +0 -71
  201. package/src/memory-upgrader.ts +0 -388
  202. package/src/mnemo.ts +0 -142
  203. package/src/noise-filter.ts +0 -97
  204. package/src/noise-prototypes.ts +0 -164
  205. package/src/observability.ts +0 -81
  206. package/src/query-tracker.ts +0 -57
  207. package/src/reflection-event-store.ts +0 -98
  208. package/src/reflection-item-store.ts +0 -112
  209. package/src/reflection-mapped-metadata.ts +0 -84
  210. package/src/reflection-metadata.ts +0 -23
  211. package/src/reflection-store.ts +0 -602
  212. package/src/retriever.ts +0 -1510
  213. package/src/scopes.ts +0 -375
  214. package/src/semantic-gate.ts +0 -121
  215. package/src/smart-metadata.ts +0 -561
  216. package/src/storage-adapter.ts +0 -153
  217. package/src/store.ts +0 -1330
  218. package/src/tier-manager.ts +0 -189
  219. package/src/tools.ts +0 -1292
  220. package/test/core.test.mjs +0 -301
@@ -0,0 +1,69 @@
1
+ const REFLECTION_INVARIANT_DECAY_MIDPOINT_DAYS = 45;
2
+ const REFLECTION_INVARIANT_DECAY_K = 0.22;
3
+ const REFLECTION_INVARIANT_BASE_WEIGHT = 1.1;
4
+ const REFLECTION_INVARIANT_QUALITY = 1;
5
+ const REFLECTION_DERIVED_DECAY_MIDPOINT_DAYS = 7;
6
+ const REFLECTION_DERIVED_DECAY_K = 0.65;
7
+ const REFLECTION_DERIVED_BASE_WEIGHT = 1;
8
+ const REFLECTION_DERIVED_QUALITY = 0.95;
9
+ function getReflectionItemDecayDefaults(itemKind) {
10
+ if (itemKind === "invariant") {
11
+ return {
12
+ midpointDays: REFLECTION_INVARIANT_DECAY_MIDPOINT_DAYS,
13
+ k: REFLECTION_INVARIANT_DECAY_K,
14
+ baseWeight: REFLECTION_INVARIANT_BASE_WEIGHT,
15
+ quality: REFLECTION_INVARIANT_QUALITY
16
+ };
17
+ }
18
+ return {
19
+ midpointDays: REFLECTION_DERIVED_DECAY_MIDPOINT_DAYS,
20
+ k: REFLECTION_DERIVED_DECAY_K,
21
+ baseWeight: REFLECTION_DERIVED_BASE_WEIGHT,
22
+ quality: REFLECTION_DERIVED_QUALITY
23
+ };
24
+ }
25
+ function buildReflectionItemPayloads(params) {
26
+ return params.items.map((item) => {
27
+ const defaults = getReflectionItemDecayDefaults(item.itemKind);
28
+ const metadata = {
29
+ type: "memory-reflection-item",
30
+ reflectionVersion: 4,
31
+ stage: "reflect-store",
32
+ eventId: params.eventId,
33
+ itemKind: item.itemKind,
34
+ section: item.section,
35
+ ordinal: item.ordinal,
36
+ groupSize: item.groupSize,
37
+ agentId: params.agentId,
38
+ sessionKey: params.sessionKey,
39
+ sessionId: params.sessionId,
40
+ storedAt: params.runAt,
41
+ usedFallback: params.usedFallback,
42
+ errorSignals: params.toolErrorSignals.map((signal) => signal.signatureHash),
43
+ decayModel: "logistic",
44
+ decayMidpointDays: defaults.midpointDays,
45
+ decayK: defaults.k,
46
+ baseWeight: defaults.baseWeight,
47
+ quality: defaults.quality,
48
+ ...params.sourceReflectionPath ? { sourceReflectionPath: params.sourceReflectionPath } : {}
49
+ };
50
+ return {
51
+ kind: item.itemKind === "invariant" ? "item-invariant" : "item-derived",
52
+ text: item.text,
53
+ metadata
54
+ };
55
+ });
56
+ }
57
+ export {
58
+ REFLECTION_DERIVED_BASE_WEIGHT,
59
+ REFLECTION_DERIVED_DECAY_K,
60
+ REFLECTION_DERIVED_DECAY_MIDPOINT_DAYS,
61
+ REFLECTION_DERIVED_QUALITY,
62
+ REFLECTION_INVARIANT_BASE_WEIGHT,
63
+ REFLECTION_INVARIANT_DECAY_K,
64
+ REFLECTION_INVARIANT_DECAY_MIDPOINT_DAYS,
65
+ REFLECTION_INVARIANT_QUALITY,
66
+ buildReflectionItemPayloads,
67
+ getReflectionItemDecayDefaults
68
+ };
69
+ //# sourceMappingURL=reflection-item-store.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/reflection-item-store.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: LicenseRef-Mnemo-Pro\nimport type { ReflectionSliceItem } from \"./reflection-slices.js\";\n\nexport type ReflectionItemKind = \"invariant\" | \"derived\";\n\nexport interface ReflectionItemMetadata {\n type: \"memory-reflection-item\";\n reflectionVersion: 4;\n stage: \"reflect-store\";\n eventId: string;\n itemKind: ReflectionItemKind;\n section: \"Invariants\" | \"Derived\";\n ordinal: number;\n groupSize: number;\n agentId: string;\n sessionKey: string;\n sessionId: string;\n storedAt: number;\n usedFallback: boolean;\n errorSignals: string[];\n decayModel: \"logistic\";\n decayMidpointDays: number;\n decayK: number;\n baseWeight: number;\n quality: number;\n sourceReflectionPath?: string;\n}\n\nexport interface ReflectionItemPayload {\n kind: \"item-invariant\" | \"item-derived\";\n text: string;\n metadata: ReflectionItemMetadata;\n}\n\nexport interface BuildReflectionItemPayloadsParams {\n items: ReflectionSliceItem[];\n eventId: string;\n agentId: string;\n sessionKey: string;\n sessionId: string;\n runAt: number;\n usedFallback: boolean;\n toolErrorSignals: Array<{ signatureHash: string }>;\n sourceReflectionPath?: string;\n}\n\nexport const REFLECTION_INVARIANT_DECAY_MIDPOINT_DAYS = 45;\nexport const REFLECTION_INVARIANT_DECAY_K = 0.22;\nexport const REFLECTION_INVARIANT_BASE_WEIGHT = 1.1;\nexport const REFLECTION_INVARIANT_QUALITY = 1;\n\nexport const REFLECTION_DERIVED_DECAY_MIDPOINT_DAYS = 7;\nexport const REFLECTION_DERIVED_DECAY_K = 0.65;\nexport const REFLECTION_DERIVED_BASE_WEIGHT = 1;\nexport const REFLECTION_DERIVED_QUALITY = 0.95;\n\nexport function getReflectionItemDecayDefaults(itemKind: ReflectionItemKind): {\n midpointDays: number;\n k: number;\n baseWeight: number;\n quality: number;\n} {\n if (itemKind === \"invariant\") {\n return {\n midpointDays: REFLECTION_INVARIANT_DECAY_MIDPOINT_DAYS,\n k: REFLECTION_INVARIANT_DECAY_K,\n baseWeight: REFLECTION_INVARIANT_BASE_WEIGHT,\n quality: REFLECTION_INVARIANT_QUALITY,\n };\n }\n\n return {\n midpointDays: REFLECTION_DERIVED_DECAY_MIDPOINT_DAYS,\n k: REFLECTION_DERIVED_DECAY_K,\n baseWeight: REFLECTION_DERIVED_BASE_WEIGHT,\n quality: REFLECTION_DERIVED_QUALITY,\n };\n}\n\nexport function buildReflectionItemPayloads(params: BuildReflectionItemPayloadsParams): ReflectionItemPayload[] {\n return params.items.map((item) => {\n const defaults = getReflectionItemDecayDefaults(item.itemKind);\n const metadata: ReflectionItemMetadata = {\n type: \"memory-reflection-item\",\n reflectionVersion: 4,\n stage: \"reflect-store\",\n eventId: params.eventId,\n itemKind: item.itemKind,\n section: item.section,\n ordinal: item.ordinal,\n groupSize: item.groupSize,\n agentId: params.agentId,\n sessionKey: params.sessionKey,\n sessionId: params.sessionId,\n storedAt: params.runAt,\n usedFallback: params.usedFallback,\n errorSignals: params.toolErrorSignals.map((signal) => signal.signatureHash),\n decayModel: \"logistic\",\n decayMidpointDays: defaults.midpointDays,\n decayK: defaults.k,\n baseWeight: defaults.baseWeight,\n quality: defaults.quality,\n ...(params.sourceReflectionPath ? { sourceReflectionPath: params.sourceReflectionPath } : {}),\n };\n\n return {\n kind: item.itemKind === \"invariant\" ? \"item-invariant\" : \"item-derived\",\n text: item.text,\n metadata,\n };\n });\n}\n"],
5
+ "mappings": "AA8CO,MAAM,2CAA2C;AACjD,MAAM,+BAA+B;AACrC,MAAM,mCAAmC;AACzC,MAAM,+BAA+B;AAErC,MAAM,yCAAyC;AAC/C,MAAM,6BAA6B;AACnC,MAAM,iCAAiC;AACvC,MAAM,6BAA6B;AAEnC,SAAS,+BAA+B,UAK7C;AACA,MAAI,aAAa,aAAa;AAC5B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,GAAG;AAAA,MACH,YAAY;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AAAA,IACL,cAAc;AAAA,IACd,GAAG;AAAA,IACH,YAAY;AAAA,IACZ,SAAS;AAAA,EACX;AACF;AAEO,SAAS,4BAA4B,QAAoE;AAC9G,SAAO,OAAO,MAAM,IAAI,CAAC,SAAS;AAChC,UAAM,WAAW,+BAA+B,KAAK,QAAQ;AAC7D,UAAM,WAAmC;AAAA,MACvC,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,OAAO;AAAA,MACP,SAAS,OAAO;AAAA,MAChB,UAAU,KAAK;AAAA,MACf,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,WAAW,KAAK;AAAA,MAChB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,MACnB,WAAW,OAAO;AAAA,MAClB,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,cAAc,OAAO,iBAAiB,IAAI,CAAC,WAAW,OAAO,aAAa;AAAA,MAC1E,YAAY;AAAA,MACZ,mBAAmB,SAAS;AAAA,MAC5B,QAAQ,SAAS;AAAA,MACjB,YAAY,SAAS;AAAA,MACrB,SAAS,SAAS;AAAA,MAClB,GAAI,OAAO,uBAAuB,EAAE,sBAAsB,OAAO,qBAAqB,IAAI,CAAC;AAAA,IAC7F;AAEA,WAAO;AAAA,MACL,MAAM,KAAK,aAAa,cAAc,mBAAmB;AAAA,MACzD,MAAM,KAAK;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,47 @@
1
+ import type { ReflectionMappedMemoryItem } from "./reflection-slices.js";
2
+ export type ReflectionMappedKind = "user-model" | "agent-model" | "lesson" | "decision";
3
+ export type ReflectionMappedCategory = "preference" | "fact" | "decision";
4
+ export interface ReflectionMappedMetadata {
5
+ type: "memory-reflection-mapped";
6
+ reflectionVersion: 4;
7
+ stage: "reflect-store";
8
+ eventId: string;
9
+ mappedKind: ReflectionMappedKind;
10
+ mappedCategory: ReflectionMappedCategory;
11
+ section: string;
12
+ ordinal: number;
13
+ groupSize: number;
14
+ agentId: string;
15
+ sessionKey: string;
16
+ sessionId: string;
17
+ storedAt: number;
18
+ usedFallback: boolean;
19
+ errorSignals: string[];
20
+ decayModel: "logistic";
21
+ decayMidpointDays: number;
22
+ decayK: number;
23
+ baseWeight: number;
24
+ quality: number;
25
+ sourceReflectionPath?: string;
26
+ }
27
+ export interface ReflectionMappedDecayDefaults {
28
+ midpointDays: number;
29
+ k: number;
30
+ baseWeight: number;
31
+ quality: number;
32
+ }
33
+ export declare function getReflectionMappedDecayDefaults(kind: ReflectionMappedKind): ReflectionMappedDecayDefaults;
34
+ export declare function buildReflectionMappedMetadata(params: {
35
+ mappedItem: ReflectionMappedMemoryItem;
36
+ eventId: string;
37
+ agentId: string;
38
+ sessionKey: string;
39
+ sessionId: string;
40
+ runAt: number;
41
+ usedFallback: boolean;
42
+ toolErrorSignals: Array<{
43
+ signatureHash: string;
44
+ }>;
45
+ sourceReflectionPath?: string;
46
+ }): ReflectionMappedMetadata;
47
+ //# sourceMappingURL=reflection-mapped-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-mapped-metadata.d.ts","sourceRoot":"","sources":["../../src/reflection-mapped-metadata.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AACxF,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,0BAA0B,CAAC;IACjC,iBAAiB,EAAE,CAAC,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,oBAAoB,CAAC;IACjC,cAAc,EAAE,wBAAwB,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AASD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,oBAAoB,GAAG,6BAA6B,CAE1G;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,UAAU,EAAE,0BAA0B,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,KAAK,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GAAG,wBAAwB,CAyB3B"}
@@ -0,0 +1,40 @@
1
+ const REFLECTION_MAPPED_DECAY_DEFAULTS = {
2
+ decision: { midpointDays: 45, k: 0.25, baseWeight: 1.1, quality: 1 },
3
+ "user-model": { midpointDays: 21, k: 0.3, baseWeight: 1, quality: 0.95 },
4
+ "agent-model": { midpointDays: 10, k: 0.35, baseWeight: 0.95, quality: 0.93 },
5
+ lesson: { midpointDays: 7, k: 0.45, baseWeight: 0.9, quality: 0.9 }
6
+ };
7
+ function getReflectionMappedDecayDefaults(kind) {
8
+ return REFLECTION_MAPPED_DECAY_DEFAULTS[kind];
9
+ }
10
+ function buildReflectionMappedMetadata(params) {
11
+ const defaults = getReflectionMappedDecayDefaults(params.mappedItem.mappedKind);
12
+ return {
13
+ type: "memory-reflection-mapped",
14
+ reflectionVersion: 4,
15
+ stage: "reflect-store",
16
+ eventId: params.eventId,
17
+ mappedKind: params.mappedItem.mappedKind,
18
+ mappedCategory: params.mappedItem.category,
19
+ section: params.mappedItem.heading,
20
+ ordinal: params.mappedItem.ordinal,
21
+ groupSize: params.mappedItem.groupSize,
22
+ agentId: params.agentId,
23
+ sessionKey: params.sessionKey,
24
+ sessionId: params.sessionId,
25
+ storedAt: params.runAt,
26
+ usedFallback: params.usedFallback,
27
+ errorSignals: params.toolErrorSignals.map((signal) => signal.signatureHash),
28
+ decayModel: "logistic",
29
+ decayMidpointDays: defaults.midpointDays,
30
+ decayK: defaults.k,
31
+ baseWeight: defaults.baseWeight,
32
+ quality: defaults.quality,
33
+ ...params.sourceReflectionPath ? { sourceReflectionPath: params.sourceReflectionPath } : {}
34
+ };
35
+ }
36
+ export {
37
+ buildReflectionMappedMetadata,
38
+ getReflectionMappedDecayDefaults
39
+ };
40
+ //# sourceMappingURL=reflection-mapped-metadata.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/reflection-mapped-metadata.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: LicenseRef-Mnemo-Pro\nimport type { ReflectionMappedMemoryItem } from \"./reflection-slices.js\";\n\nexport type ReflectionMappedKind = \"user-model\" | \"agent-model\" | \"lesson\" | \"decision\";\nexport type ReflectionMappedCategory = \"preference\" | \"fact\" | \"decision\";\n\nexport interface ReflectionMappedMetadata {\n type: \"memory-reflection-mapped\";\n reflectionVersion: 4;\n stage: \"reflect-store\";\n eventId: string;\n mappedKind: ReflectionMappedKind;\n mappedCategory: ReflectionMappedCategory;\n section: string;\n ordinal: number;\n groupSize: number;\n agentId: string;\n sessionKey: string;\n sessionId: string;\n storedAt: number;\n usedFallback: boolean;\n errorSignals: string[];\n decayModel: \"logistic\";\n decayMidpointDays: number;\n decayK: number;\n baseWeight: number;\n quality: number;\n sourceReflectionPath?: string;\n}\n\nexport interface ReflectionMappedDecayDefaults {\n midpointDays: number;\n k: number;\n baseWeight: number;\n quality: number;\n}\n\nconst REFLECTION_MAPPED_DECAY_DEFAULTS: Record<ReflectionMappedKind, ReflectionMappedDecayDefaults> = {\n decision: { midpointDays: 45, k: 0.25, baseWeight: 1.1, quality: 1 },\n \"user-model\": { midpointDays: 21, k: 0.3, baseWeight: 1, quality: 0.95 },\n \"agent-model\": { midpointDays: 10, k: 0.35, baseWeight: 0.95, quality: 0.93 },\n lesson: { midpointDays: 7, k: 0.45, baseWeight: 0.9, quality: 0.9 },\n};\n\nexport function getReflectionMappedDecayDefaults(kind: ReflectionMappedKind): ReflectionMappedDecayDefaults {\n return REFLECTION_MAPPED_DECAY_DEFAULTS[kind];\n}\n\nexport function buildReflectionMappedMetadata(params: {\n mappedItem: ReflectionMappedMemoryItem;\n eventId: string;\n agentId: string;\n sessionKey: string;\n sessionId: string;\n runAt: number;\n usedFallback: boolean;\n toolErrorSignals: Array<{ signatureHash: string }>;\n sourceReflectionPath?: string;\n}): ReflectionMappedMetadata {\n const defaults = getReflectionMappedDecayDefaults(params.mappedItem.mappedKind);\n return {\n type: \"memory-reflection-mapped\",\n reflectionVersion: 4,\n stage: \"reflect-store\",\n eventId: params.eventId,\n mappedKind: params.mappedItem.mappedKind,\n mappedCategory: params.mappedItem.category,\n section: params.mappedItem.heading,\n ordinal: params.mappedItem.ordinal,\n groupSize: params.mappedItem.groupSize,\n agentId: params.agentId,\n sessionKey: params.sessionKey,\n sessionId: params.sessionId,\n storedAt: params.runAt,\n usedFallback: params.usedFallback,\n errorSignals: params.toolErrorSignals.map((signal) => signal.signatureHash),\n decayModel: \"logistic\",\n decayMidpointDays: defaults.midpointDays,\n decayK: defaults.k,\n baseWeight: defaults.baseWeight,\n quality: defaults.quality,\n ...(params.sourceReflectionPath ? { sourceReflectionPath: params.sourceReflectionPath } : {}),\n };\n}\n"],
5
+ "mappings": "AAqCA,MAAM,mCAAgG;AAAA,EACpG,UAAU,EAAE,cAAc,IAAI,GAAG,MAAM,YAAY,KAAK,SAAS,EAAE;AAAA,EACnE,cAAc,EAAE,cAAc,IAAI,GAAG,KAAK,YAAY,GAAG,SAAS,KAAK;AAAA,EACvE,eAAe,EAAE,cAAc,IAAI,GAAG,MAAM,YAAY,MAAM,SAAS,KAAK;AAAA,EAC5E,QAAQ,EAAE,cAAc,GAAG,GAAG,MAAM,YAAY,KAAK,SAAS,IAAI;AACpE;AAEO,SAAS,iCAAiC,MAA2D;AAC1G,SAAO,iCAAiC,IAAI;AAC9C;AAEO,SAAS,8BAA8B,QAUjB;AAC3B,QAAM,WAAW,iCAAiC,OAAO,WAAW,UAAU;AAC9E,SAAO;AAAA,IACL,MAAM;AAAA,IACN,mBAAmB;AAAA,IACnB,OAAO;AAAA,IACP,SAAS,OAAO;AAAA,IAChB,YAAY,OAAO,WAAW;AAAA,IAC9B,gBAAgB,OAAO,WAAW;AAAA,IAClC,SAAS,OAAO,WAAW;AAAA,IAC3B,SAAS,OAAO,WAAW;AAAA,IAC3B,WAAW,OAAO,WAAW;AAAA,IAC7B,SAAS,OAAO;AAAA,IAChB,YAAY,OAAO;AAAA,IACnB,WAAW,OAAO;AAAA,IAClB,UAAU,OAAO;AAAA,IACjB,cAAc,OAAO;AAAA,IACrB,cAAc,OAAO,iBAAiB,IAAI,CAAC,WAAW,OAAO,aAAa;AAAA,IAC1E,YAAY;AAAA,IACZ,mBAAmB,SAAS;AAAA,IAC5B,QAAQ,SAAS;AAAA,IACjB,YAAY,SAAS;AAAA,IACrB,SAAS,SAAS;AAAA,IAClB,GAAI,OAAO,uBAAuB,EAAE,sBAAsB,OAAO,qBAAqB,IAAI,CAAC;AAAA,EAC7F;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ export declare function parseReflectionMetadata(metadataRaw: string | undefined): Record<string, unknown>;
2
+ export declare function isReflectionEntry(entry: {
3
+ category: string;
4
+ metadata?: string;
5
+ }): boolean;
6
+ export declare function getDisplayCategoryTag(entry: {
7
+ category: string;
8
+ scope: string;
9
+ metadata?: string;
10
+ }): string;
11
+ //# sourceMappingURL=reflection-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-metadata.d.ts","sourceRoot":"","sources":["../../src/reflection-metadata.ts"],"names":[],"mappings":"AACA,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQhG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAMzF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG3G"}
@@ -0,0 +1,24 @@
1
+ function parseReflectionMetadata(metadataRaw) {
2
+ if (!metadataRaw) return {};
3
+ try {
4
+ const parsed = JSON.parse(metadataRaw);
5
+ return parsed && typeof parsed === "object" ? parsed : {};
6
+ } catch {
7
+ return {};
8
+ }
9
+ }
10
+ function isReflectionEntry(entry) {
11
+ if (entry.category === "reflection") return true;
12
+ const metadata = parseReflectionMetadata(entry.metadata);
13
+ return metadata.type === "memory-reflection" || metadata.type === "memory-reflection-event" || metadata.type === "memory-reflection-item";
14
+ }
15
+ function getDisplayCategoryTag(entry) {
16
+ if (!isReflectionEntry(entry)) return `${entry.category}:${entry.scope}`;
17
+ return `reflection:${entry.scope}`;
18
+ }
19
+ export {
20
+ getDisplayCategoryTag,
21
+ isReflectionEntry,
22
+ parseReflectionMetadata
23
+ };
24
+ //# sourceMappingURL=reflection-metadata.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/reflection-metadata.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: LicenseRef-Mnemo-Pro\nexport function parseReflectionMetadata(metadataRaw: string | undefined): Record<string, unknown> {\n if (!metadataRaw) return {};\n try {\n const parsed = JSON.parse(metadataRaw);\n return parsed && typeof parsed === \"object\" ? parsed as Record<string, unknown> : {};\n } catch {\n return {};\n }\n}\n\nexport function isReflectionEntry(entry: { category: string; metadata?: string }): boolean {\n if (entry.category === \"reflection\") return true;\n const metadata = parseReflectionMetadata(entry.metadata);\n return metadata.type === \"memory-reflection\" ||\n metadata.type === \"memory-reflection-event\" ||\n metadata.type === \"memory-reflection-item\";\n}\n\nexport function getDisplayCategoryTag(entry: { category: string; scope: string; metadata?: string }): string {\n if (!isReflectionEntry(entry)) return `${entry.category}:${entry.scope}`;\n return `reflection:${entry.scope}`;\n}\n"],
5
+ "mappings": "AACO,SAAS,wBAAwB,aAA0D;AAChG,MAAI,CAAC,YAAa,QAAO,CAAC;AAC1B,MAAI;AACF,UAAM,SAAS,KAAK,MAAM,WAAW;AACrC,WAAO,UAAU,OAAO,WAAW,WAAW,SAAoC,CAAC;AAAA,EACrF,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEO,SAAS,kBAAkB,OAAyD;AACzF,MAAI,MAAM,aAAa,aAAc,QAAO;AAC5C,QAAM,WAAW,wBAAwB,MAAM,QAAQ;AACvD,SAAO,SAAS,SAAS,uBACvB,SAAS,SAAS,6BAClB,SAAS,SAAS;AACtB;AAEO,SAAS,sBAAsB,OAAuE;AAC3G,MAAI,CAAC,kBAAkB,KAAK,EAAG,QAAO,GAAG,MAAM,QAAQ,IAAI,MAAM,KAAK;AACtE,SAAO,cAAc,MAAM,KAAK;AAClC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ export declare const REFLECTION_FALLBACK_SCORE_FACTOR = 0.75;
2
+ export interface ReflectionScoreInput {
3
+ ageDays: number;
4
+ midpointDays: number;
5
+ k: number;
6
+ baseWeight: number;
7
+ quality: number;
8
+ usedFallback: boolean;
9
+ }
10
+ export declare function computeReflectionLogistic(ageDays: number, midpointDays: number, k: number): number;
11
+ export declare function computeReflectionScore(input: ReflectionScoreInput): number;
12
+ export declare function normalizeReflectionLineForAggregation(line: string): string;
13
+ //# sourceMappingURL=reflection-ranking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-ranking.d.ts","sourceRoot":"","sources":["../../src/reflection-ranking.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAM1E;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK1E"}
@@ -1,33 +1,24 @@
1
- // SPDX-License-Identifier: LicenseRef-Mnemo-Pro
2
- export const REFLECTION_FALLBACK_SCORE_FACTOR = 0.75;
3
-
4
- export interface ReflectionScoreInput {
5
- ageDays: number;
6
- midpointDays: number;
7
- k: number;
8
- baseWeight: number;
9
- quality: number;
10
- usedFallback: boolean;
11
- }
12
-
13
- export function computeReflectionLogistic(ageDays: number, midpointDays: number, k: number): number {
1
+ const REFLECTION_FALLBACK_SCORE_FACTOR = 0.75;
2
+ function computeReflectionLogistic(ageDays, midpointDays, k) {
14
3
  const safeAgeDays = Number.isFinite(ageDays) ? Math.max(0, ageDays) : 0;
15
4
  const safeMidpointDays = Number.isFinite(midpointDays) && midpointDays > 0 ? midpointDays : 1;
16
5
  const safeK = Number.isFinite(k) && k > 0 ? k : 0.1;
17
6
  return 1 / (1 + Math.exp(safeK * (safeAgeDays - safeMidpointDays)));
18
7
  }
19
-
20
- export function computeReflectionScore(input: ReflectionScoreInput): number {
8
+ function computeReflectionScore(input) {
21
9
  const logistic = computeReflectionLogistic(input.ageDays, input.midpointDays, input.k);
22
10
  const baseWeight = Number.isFinite(input.baseWeight) && input.baseWeight > 0 ? input.baseWeight : 1;
23
11
  const quality = Number.isFinite(input.quality) ? Math.max(0, Math.min(1, input.quality)) : 1;
24
12
  const fallbackFactor = input.usedFallback ? REFLECTION_FALLBACK_SCORE_FACTOR : 1;
25
13
  return logistic * baseWeight * quality * fallbackFactor;
26
14
  }
27
-
28
- export function normalizeReflectionLineForAggregation(line: string): string {
29
- return String(line)
30
- .trim()
31
- .replace(/\s+/g, " ")
32
- .toLowerCase();
15
+ function normalizeReflectionLineForAggregation(line) {
16
+ return String(line).trim().replace(/\s+/g, " ").toLowerCase();
33
17
  }
18
+ export {
19
+ REFLECTION_FALLBACK_SCORE_FACTOR,
20
+ computeReflectionLogistic,
21
+ computeReflectionScore,
22
+ normalizeReflectionLineForAggregation
23
+ };
24
+ //# sourceMappingURL=reflection-ranking.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/reflection-ranking.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: LicenseRef-Mnemo-Pro\nexport const REFLECTION_FALLBACK_SCORE_FACTOR = 0.75;\n\nexport interface ReflectionScoreInput {\n ageDays: number;\n midpointDays: number;\n k: number;\n baseWeight: number;\n quality: number;\n usedFallback: boolean;\n}\n\nexport function computeReflectionLogistic(ageDays: number, midpointDays: number, k: number): number {\n const safeAgeDays = Number.isFinite(ageDays) ? Math.max(0, ageDays) : 0;\n const safeMidpointDays = Number.isFinite(midpointDays) && midpointDays > 0 ? midpointDays : 1;\n const safeK = Number.isFinite(k) && k > 0 ? k : 0.1;\n return 1 / (1 + Math.exp(safeK * (safeAgeDays - safeMidpointDays)));\n}\n\nexport function computeReflectionScore(input: ReflectionScoreInput): number {\n const logistic = computeReflectionLogistic(input.ageDays, input.midpointDays, input.k);\n const baseWeight = Number.isFinite(input.baseWeight) && input.baseWeight > 0 ? input.baseWeight : 1;\n const quality = Number.isFinite(input.quality) ? Math.max(0, Math.min(1, input.quality)) : 1;\n const fallbackFactor = input.usedFallback ? REFLECTION_FALLBACK_SCORE_FACTOR : 1;\n return logistic * baseWeight * quality * fallbackFactor;\n}\n\nexport function normalizeReflectionLineForAggregation(line: string): string {\n return String(line)\n .trim()\n .replace(/\\s+/g, \" \")\n .toLowerCase();\n}\n"],
5
+ "mappings": "AACO,MAAM,mCAAmC;AAWzC,SAAS,0BAA0B,SAAiB,cAAsB,GAAmB;AAClG,QAAM,cAAc,OAAO,SAAS,OAAO,IAAI,KAAK,IAAI,GAAG,OAAO,IAAI;AACtE,QAAM,mBAAmB,OAAO,SAAS,YAAY,KAAK,eAAe,IAAI,eAAe;AAC5F,QAAM,QAAQ,OAAO,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI;AAChD,SAAO,KAAK,IAAI,KAAK,IAAI,SAAS,cAAc,iBAAiB;AACnE;AAEO,SAAS,uBAAuB,OAAqC;AAC1E,QAAM,WAAW,0BAA0B,MAAM,SAAS,MAAM,cAAc,MAAM,CAAC;AACrF,QAAM,aAAa,OAAO,SAAS,MAAM,UAAU,KAAK,MAAM,aAAa,IAAI,MAAM,aAAa;AAClG,QAAM,UAAU,OAAO,SAAS,MAAM,OAAO,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI;AAC3F,QAAM,iBAAiB,MAAM,eAAe,mCAAmC;AAC/E,SAAO,WAAW,aAAa,UAAU;AAC3C;AAEO,SAAS,sCAAsC,MAAsB;AAC1E,SAAO,OAAO,IAAI,EACf,KAAK,EACL,QAAQ,QAAQ,GAAG,EACnB,YAAY;AACjB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,30 @@
1
+ type RetryClassifierInput = {
2
+ inReflectionScope: boolean;
3
+ retryCount: number;
4
+ usefulOutputChars: number;
5
+ error: unknown;
6
+ };
7
+ type RetryClassifierResult = {
8
+ retryable: boolean;
9
+ reason: "not_reflection_scope" | "retry_already_used" | "useful_output_present" | "non_retry_error" | "non_transient_error" | "transient_upstream_failure";
10
+ normalizedError: string;
11
+ };
12
+ type RetryState = {
13
+ count: number;
14
+ };
15
+ type RetryRunnerParams<T> = {
16
+ scope: "reflection" | "distiller";
17
+ runner: "embedded" | "cli";
18
+ retryState: RetryState;
19
+ execute: () => Promise<T>;
20
+ onLog?: (level: "info" | "warn", message: string) => void;
21
+ random?: () => number;
22
+ sleep?: (ms: number) => Promise<void>;
23
+ };
24
+ export declare function isTransientReflectionUpstreamError(error: unknown): boolean;
25
+ export declare function isReflectionNonRetryError(error: unknown): boolean;
26
+ export declare function classifyReflectionRetry(input: RetryClassifierInput): RetryClassifierResult;
27
+ export declare function computeReflectionRetryDelayMs(random?: () => number): number;
28
+ export declare function runWithReflectionTransientRetryOnce<T>(params: RetryRunnerParams<T>): Promise<T>;
29
+ export {};
30
+ //# sourceMappingURL=reflection-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-retry.d.ts","sourceRoot":"","sources":["../../src/reflection-retry.ts"],"names":[],"mappings":"AACA,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EACJ,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,iBAAiB,GACjB,qBAAqB,GACrB,4BAA4B,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpC,KAAK,iBAAiB,CAAC,CAAC,IAAI;IAC1B,KAAK,EAAE,YAAY,GAAG,WAAW,CAAC;IAClC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AA6EF,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG1E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGjE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CAmB1F;AAED,wBAAgB,6BAA6B,CAAC,MAAM,GAAE,MAAM,MAAoB,GAAG,MAAM,CAIxF;AAED,wBAAsB,mCAAmC,CAAC,CAAC,EACzD,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAkCZ"}
@@ -1,36 +1,4 @@
1
- // SPDX-License-Identifier: LicenseRef-Mnemo-Pro
2
- type RetryClassifierInput = {
3
- inReflectionScope: boolean;
4
- retryCount: number;
5
- usefulOutputChars: number;
6
- error: unknown;
7
- };
8
-
9
- type RetryClassifierResult = {
10
- retryable: boolean;
11
- reason:
12
- | "not_reflection_scope"
13
- | "retry_already_used"
14
- | "useful_output_present"
15
- | "non_retry_error"
16
- | "non_transient_error"
17
- | "transient_upstream_failure";
18
- normalizedError: string;
19
- };
20
-
21
- type RetryState = { count: number };
22
-
23
- type RetryRunnerParams<T> = {
24
- scope: "reflection" | "distiller";
25
- runner: "embedded" | "cli";
26
- retryState: RetryState;
27
- execute: () => Promise<T>;
28
- onLog?: (level: "info" | "warn", message: string) => void;
29
- random?: () => number;
30
- sleep?: (ms: number) => Promise<void>;
31
- };
32
-
33
- const REFLECTION_TRANSIENT_PATTERNS: RegExp[] = [
1
+ const REFLECTION_TRANSIENT_PATTERNS = [
34
2
  /unexpected eof/i,
35
3
  /\beconnreset\b/i,
36
4
  /\beconnaborted\b/i,
@@ -52,10 +20,9 @@ const REFLECTION_TRANSIENT_PATTERNS: RegExp[] = [
52
20
  /\btimeout\b/i,
53
21
  /\bund_err_(?:socket|headers_timeout|body_timeout)\b/i,
54
22
  /network error/i,
55
- /fetch failed/i,
23
+ /fetch failed/i
56
24
  ];
57
-
58
- const REFLECTION_NON_RETRY_PATTERNS: RegExp[] = [
25
+ const REFLECTION_NON_RETRY_PATTERNS = [
59
26
  /\b401\b/i,
60
27
  /\bunauthorized\b/i,
61
28
  /invalid api key/i,
@@ -81,12 +48,10 @@ const REFLECTION_NON_RETRY_PATTERNS: RegExp[] = [
81
48
  /content policy/i,
82
49
  /safety policy/i,
83
50
  /content filter/i,
84
- /disallowed/i,
51
+ /disallowed/i
85
52
  ];
86
-
87
- const DEFAULT_SLEEP = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));
88
-
89
- function toErrorMessage(error: unknown): string {
53
+ const DEFAULT_SLEEP = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
54
+ function toErrorMessage(error) {
90
55
  if (error instanceof Error) {
91
56
  const msg = `${error.name}: ${error.message}`.trim();
92
57
  return msg || "Error";
@@ -98,26 +63,21 @@ function toErrorMessage(error: unknown): string {
98
63
  return String(error);
99
64
  }
100
65
  }
101
-
102
- function clipSingleLine(text: string, maxLen = 260): string {
66
+ function clipSingleLine(text, maxLen = 260) {
103
67
  const oneLine = text.replace(/\s+/g, " ").trim();
104
68
  if (oneLine.length <= maxLen) return oneLine;
105
69
  return `${oneLine.slice(0, maxLen - 3)}...`;
106
70
  }
107
-
108
- export function isTransientReflectionUpstreamError(error: unknown): boolean {
71
+ function isTransientReflectionUpstreamError(error) {
109
72
  const msg = toErrorMessage(error);
110
73
  return REFLECTION_TRANSIENT_PATTERNS.some((pattern) => pattern.test(msg));
111
74
  }
112
-
113
- export function isReflectionNonRetryError(error: unknown): boolean {
75
+ function isReflectionNonRetryError(error) {
114
76
  const msg = toErrorMessage(error);
115
77
  return REFLECTION_NON_RETRY_PATTERNS.some((pattern) => pattern.test(msg));
116
78
  }
117
-
118
- export function classifyReflectionRetry(input: RetryClassifierInput): RetryClassifierResult {
79
+ function classifyReflectionRetry(input) {
119
80
  const normalizedError = clipSingleLine(toErrorMessage(input.error), 260);
120
-
121
81
  if (!input.inReflectionScope) {
122
82
  return { retryable: false, reason: "not_reflection_scope", normalizedError };
123
83
  }
@@ -135,16 +95,12 @@ export function classifyReflectionRetry(input: RetryClassifierInput): RetryClass
135
95
  }
136
96
  return { retryable: false, reason: "non_transient_error", normalizedError };
137
97
  }
138
-
139
- export function computeReflectionRetryDelayMs(random: () => number = Math.random): number {
98
+ function computeReflectionRetryDelayMs(random = Math.random) {
140
99
  const raw = random();
141
100
  const clamped = Number.isFinite(raw) ? Math.min(1, Math.max(0, raw)) : 0;
142
- return 1000 + Math.floor(clamped * 2000);
101
+ return 1e3 + Math.floor(clamped * 2e3);
143
102
  }
144
-
145
- export async function runWithReflectionTransientRetryOnce<T>(
146
- params: RetryRunnerParams<T>
147
- ): Promise<T> {
103
+ async function runWithReflectionTransientRetryOnce(params) {
148
104
  try {
149
105
  return await params.execute();
150
106
  } catch (error) {
@@ -152,19 +108,16 @@ export async function runWithReflectionTransientRetryOnce<T>(
152
108
  inReflectionScope: params.scope === "reflection" || params.scope === "distiller",
153
109
  retryCount: params.retryState.count,
154
110
  usefulOutputChars: 0,
155
- error,
111
+ error
156
112
  });
157
113
  if (!decision.retryable) throw error;
158
-
159
114
  const delayMs = computeReflectionRetryDelayMs(params.random);
160
115
  params.retryState.count += 1;
161
116
  params.onLog?.(
162
117
  "warn",
163
- `memory-${params.scope}: transient upstream failure detected (${params.runner}); ` +
164
- `retrying once in ${delayMs}ms (${decision.reason}). error=${decision.normalizedError}`
118
+ `memory-${params.scope}: transient upstream failure detected (${params.runner}); retrying once in ${delayMs}ms (${decision.reason}). error=${decision.normalizedError}`
165
119
  );
166
120
  await (params.sleep ?? DEFAULT_SLEEP)(delayMs);
167
-
168
121
  try {
169
122
  const result = await params.execute();
170
123
  params.onLog?.("info", `memory-${params.scope}: retry succeeded (${params.runner})`);
@@ -172,10 +125,17 @@ export async function runWithReflectionTransientRetryOnce<T>(
172
125
  } catch (retryError) {
173
126
  params.onLog?.(
174
127
  "warn",
175
- `memory-${params.scope}: retry exhausted (${params.runner}). ` +
176
- `error=${clipSingleLine(toErrorMessage(retryError), 260)}`
128
+ `memory-${params.scope}: retry exhausted (${params.runner}). error=${clipSingleLine(toErrorMessage(retryError), 260)}`
177
129
  );
178
130
  throw retryError;
179
131
  }
180
132
  }
181
133
  }
134
+ export {
135
+ classifyReflectionRetry,
136
+ computeReflectionRetryDelayMs,
137
+ isReflectionNonRetryError,
138
+ isTransientReflectionUpstreamError,
139
+ runWithReflectionTransientRetryOnce
140
+ };
141
+ //# sourceMappingURL=reflection-retry.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/reflection-retry.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: LicenseRef-Mnemo-Pro\ntype RetryClassifierInput = {\n inReflectionScope: boolean;\n retryCount: number;\n usefulOutputChars: number;\n error: unknown;\n};\n\ntype RetryClassifierResult = {\n retryable: boolean;\n reason:\n | \"not_reflection_scope\"\n | \"retry_already_used\"\n | \"useful_output_present\"\n | \"non_retry_error\"\n | \"non_transient_error\"\n | \"transient_upstream_failure\";\n normalizedError: string;\n};\n\ntype RetryState = { count: number };\n\ntype RetryRunnerParams<T> = {\n scope: \"reflection\" | \"distiller\";\n runner: \"embedded\" | \"cli\";\n retryState: RetryState;\n execute: () => Promise<T>;\n onLog?: (level: \"info\" | \"warn\", message: string) => void;\n random?: () => number;\n sleep?: (ms: number) => Promise<void>;\n};\n\nconst REFLECTION_TRANSIENT_PATTERNS: RegExp[] = [\n /unexpected eof/i,\n /\\beconnreset\\b/i,\n /\\beconnaborted\\b/i,\n /\\betimedout\\b/i,\n /\\bepipe\\b/i,\n /connection reset/i,\n /socket hang up/i,\n /socket (?:closed|disconnected)/i,\n /connection (?:closed|aborted|dropped)/i,\n /early close/i,\n /stream (?:ended|closed) unexpectedly/i,\n /temporar(?:y|ily).*unavailable/i,\n /upstream.*unavailable/i,\n /service unavailable/i,\n /bad gateway/i,\n /gateway timeout/i,\n /\\b(?:http|status)\\s*(?:502|503|504)\\b/i,\n /\\btimed out\\b/i,\n /\\btimeout\\b/i,\n /\\bund_err_(?:socket|headers_timeout|body_timeout)\\b/i,\n /network error/i,\n /fetch failed/i,\n];\n\nconst REFLECTION_NON_RETRY_PATTERNS: RegExp[] = [\n /\\b401\\b/i,\n /\\bunauthorized\\b/i,\n /invalid api key/i,\n /invalid[_ -]?token/i,\n /\\bauth(?:entication)?_?unavailable\\b/i,\n /insufficient (?:credit|credits|balance)/i,\n /\\bbilling\\b/i,\n /\\bquota exceeded\\b/i,\n /payment required/i,\n /model .*not found/i,\n /no such model/i,\n /unknown model/i,\n /context length/i,\n /context window/i,\n /request too large/i,\n /payload too large/i,\n /too many tokens/i,\n /token limit/i,\n /prompt too long/i,\n /session expired/i,\n /invalid session/i,\n /refusal/i,\n /content policy/i,\n /safety policy/i,\n /content filter/i,\n /disallowed/i,\n];\n\nconst DEFAULT_SLEEP = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));\n\nfunction toErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n const msg = `${error.name}: ${error.message}`.trim();\n return msg || \"Error\";\n }\n if (typeof error === \"string\") return error;\n try {\n return JSON.stringify(error);\n } catch {\n return String(error);\n }\n}\n\nfunction clipSingleLine(text: string, maxLen = 260): string {\n const oneLine = text.replace(/\\s+/g, \" \").trim();\n if (oneLine.length <= maxLen) return oneLine;\n return `${oneLine.slice(0, maxLen - 3)}...`;\n}\n\nexport function isTransientReflectionUpstreamError(error: unknown): boolean {\n const msg = toErrorMessage(error);\n return REFLECTION_TRANSIENT_PATTERNS.some((pattern) => pattern.test(msg));\n}\n\nexport function isReflectionNonRetryError(error: unknown): boolean {\n const msg = toErrorMessage(error);\n return REFLECTION_NON_RETRY_PATTERNS.some((pattern) => pattern.test(msg));\n}\n\nexport function classifyReflectionRetry(input: RetryClassifierInput): RetryClassifierResult {\n const normalizedError = clipSingleLine(toErrorMessage(input.error), 260);\n\n if (!input.inReflectionScope) {\n return { retryable: false, reason: \"not_reflection_scope\", normalizedError };\n }\n if (input.retryCount > 0) {\n return { retryable: false, reason: \"retry_already_used\", normalizedError };\n }\n if (input.usefulOutputChars > 0) {\n return { retryable: false, reason: \"useful_output_present\", normalizedError };\n }\n if (isReflectionNonRetryError(input.error)) {\n return { retryable: false, reason: \"non_retry_error\", normalizedError };\n }\n if (isTransientReflectionUpstreamError(input.error)) {\n return { retryable: true, reason: \"transient_upstream_failure\", normalizedError };\n }\n return { retryable: false, reason: \"non_transient_error\", normalizedError };\n}\n\nexport function computeReflectionRetryDelayMs(random: () => number = Math.random): number {\n const raw = random();\n const clamped = Number.isFinite(raw) ? Math.min(1, Math.max(0, raw)) : 0;\n return 1000 + Math.floor(clamped * 2000);\n}\n\nexport async function runWithReflectionTransientRetryOnce<T>(\n params: RetryRunnerParams<T>\n): Promise<T> {\n try {\n return await params.execute();\n } catch (error) {\n const decision = classifyReflectionRetry({\n inReflectionScope: params.scope === \"reflection\" || params.scope === \"distiller\",\n retryCount: params.retryState.count,\n usefulOutputChars: 0,\n error,\n });\n if (!decision.retryable) throw error;\n\n const delayMs = computeReflectionRetryDelayMs(params.random);\n params.retryState.count += 1;\n params.onLog?.(\n \"warn\",\n `memory-${params.scope}: transient upstream failure detected (${params.runner}); ` +\n `retrying once in ${delayMs}ms (${decision.reason}). error=${decision.normalizedError}`\n );\n await (params.sleep ?? DEFAULT_SLEEP)(delayMs);\n\n try {\n const result = await params.execute();\n params.onLog?.(\"info\", `memory-${params.scope}: retry succeeded (${params.runner})`);\n return result;\n } catch (retryError) {\n params.onLog?.(\n \"warn\",\n `memory-${params.scope}: retry exhausted (${params.runner}). ` +\n `error=${clipSingleLine(toErrorMessage(retryError), 260)}`\n );\n throw retryError;\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,42 @@
1
+ export interface ReflectionSlices {
2
+ invariants: string[];
3
+ derived: string[];
4
+ }
5
+ export interface ReflectionMappedMemory {
6
+ text: string;
7
+ category: "preference" | "fact" | "decision";
8
+ heading: string;
9
+ }
10
+ export type ReflectionMappedKind = "user-model" | "agent-model" | "lesson" | "decision";
11
+ export interface ReflectionMappedMemoryItem extends ReflectionMappedMemory {
12
+ mappedKind: ReflectionMappedKind;
13
+ ordinal: number;
14
+ groupSize: number;
15
+ }
16
+ export interface ReflectionSliceItem {
17
+ text: string;
18
+ itemKind: "invariant" | "derived";
19
+ section: "Invariants" | "Derived";
20
+ ordinal: number;
21
+ groupSize: number;
22
+ }
23
+ export interface ReflectionGovernanceEntry {
24
+ priority?: string;
25
+ status?: string;
26
+ area?: string;
27
+ summary: string;
28
+ details?: string;
29
+ suggestedAction?: string;
30
+ }
31
+ export declare function extractSectionMarkdown(markdown: string, heading: string): string;
32
+ export declare function parseSectionBullets(markdown: string, heading: string): string[];
33
+ export declare function isPlaceholderReflectionSliceLine(line: string): boolean;
34
+ export declare function normalizeReflectionSliceLine(line: string): string;
35
+ export declare function sanitizeReflectionSliceLines(lines: string[]): string[];
36
+ export declare function extractReflectionLessons(reflectionText: string): string[];
37
+ export declare function extractReflectionLearningGovernanceCandidates(reflectionText: string): ReflectionGovernanceEntry[];
38
+ export declare function extractReflectionMappedMemories(reflectionText: string): ReflectionMappedMemory[];
39
+ export declare function extractReflectionMappedMemoryItems(reflectionText: string): ReflectionMappedMemoryItem[];
40
+ export declare function extractReflectionSlices(reflectionText: string): ReflectionSlices;
41
+ export declare function extractReflectionSliceItems(reflectionText: string): ReflectionSliceItem[];
42
+ //# sourceMappingURL=reflection-slices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-slices.d.ts","sourceRoot":"","sources":["../../src/reflection-slices.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAExF,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBhF;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAW/E;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAStE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAItE;AAgBD,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzE;AAED,wBAAgB,6CAA6C,CAAC,cAAc,EAAE,MAAM,GAAG,yBAAyB,EAAE,CA4BjH;AAgCD,wBAAgB,+BAA+B,CAAC,cAAc,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAEhG;AAED,wBAAgB,kCAAkC,CAAC,cAAc,EAAE,MAAM,GAAG,0BAA0B,EAAE,CAiCvG;AAED,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,CA+BhF;AAED,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAqBzF"}