@claude-flow/memory 3.0.0-alpha.1
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.
- package/.agentic-flow/intelligence.json +16 -0
- package/README.md +249 -0
- package/__tests__/coverage/base.css +224 -0
- package/__tests__/coverage/block-navigation.js +87 -0
- package/__tests__/coverage/coverage-final.json +19 -0
- package/__tests__/coverage/favicon.png +0 -0
- package/__tests__/coverage/index.html +206 -0
- package/__tests__/coverage/lcov-report/base.css +224 -0
- package/__tests__/coverage/lcov-report/block-navigation.js +87 -0
- package/__tests__/coverage/lcov-report/favicon.png +0 -0
- package/__tests__/coverage/lcov-report/index.html +206 -0
- package/__tests__/coverage/lcov-report/prettify.css +1 -0
- package/__tests__/coverage/lcov-report/prettify.js +2 -0
- package/__tests__/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/__tests__/coverage/lcov-report/sorter.js +210 -0
- package/__tests__/coverage/lcov-report/src/agentdb-adapter.ts.html +2737 -0
- package/__tests__/coverage/lcov-report/src/agentdb-backend.ts.html +3130 -0
- package/__tests__/coverage/lcov-report/src/application/commands/delete-memory.command.ts.html +601 -0
- package/__tests__/coverage/lcov-report/src/application/commands/index.html +131 -0
- package/__tests__/coverage/lcov-report/src/application/commands/store-memory.command.ts.html +394 -0
- package/__tests__/coverage/lcov-report/src/application/queries/index.html +116 -0
- package/__tests__/coverage/lcov-report/src/application/queries/search-memory.query.ts.html +796 -0
- package/__tests__/coverage/lcov-report/src/application/services/index.html +116 -0
- package/__tests__/coverage/lcov-report/src/application/services/memory-application-service.ts.html +793 -0
- package/__tests__/coverage/lcov-report/src/cache-manager.ts.html +1633 -0
- package/__tests__/coverage/lcov-report/src/database-provider.ts.html +1618 -0
- package/__tests__/coverage/lcov-report/src/domain/entities/index.html +116 -0
- package/__tests__/coverage/lcov-report/src/domain/entities/memory-entry.ts.html +952 -0
- package/__tests__/coverage/lcov-report/src/domain/services/index.html +116 -0
- package/__tests__/coverage/lcov-report/src/domain/services/memory-domain-service.ts.html +1294 -0
- package/__tests__/coverage/lcov-report/src/hnsw-index.ts.html +3124 -0
- package/__tests__/coverage/lcov-report/src/hybrid-backend.ts.html +2167 -0
- package/__tests__/coverage/lcov-report/src/index.html +266 -0
- package/__tests__/coverage/lcov-report/src/infrastructure/repositories/hybrid-memory-repository.ts.html +1633 -0
- package/__tests__/coverage/lcov-report/src/infrastructure/repositories/index.html +116 -0
- package/__tests__/coverage/lcov-report/src/migration.ts.html +2092 -0
- package/__tests__/coverage/lcov-report/src/query-builder.ts.html +1711 -0
- package/__tests__/coverage/lcov-report/src/sqlite-backend.ts.html +2281 -0
- package/__tests__/coverage/lcov-report/src/sqljs-backend.ts.html +2374 -0
- package/__tests__/coverage/lcov-report/src/types.ts.html +2266 -0
- package/__tests__/coverage/lcov.info +10238 -0
- package/__tests__/coverage/prettify.css +1 -0
- package/__tests__/coverage/prettify.js +2 -0
- package/__tests__/coverage/sort-arrow-sprite.png +0 -0
- package/__tests__/coverage/sorter.js +210 -0
- package/__tests__/coverage/src/agentdb-adapter.ts.html +2737 -0
- package/__tests__/coverage/src/agentdb-backend.ts.html +3130 -0
- package/__tests__/coverage/src/application/commands/delete-memory.command.ts.html +601 -0
- package/__tests__/coverage/src/application/commands/index.html +131 -0
- package/__tests__/coverage/src/application/commands/store-memory.command.ts.html +394 -0
- package/__tests__/coverage/src/application/queries/index.html +116 -0
- package/__tests__/coverage/src/application/queries/search-memory.query.ts.html +796 -0
- package/__tests__/coverage/src/application/services/index.html +116 -0
- package/__tests__/coverage/src/application/services/memory-application-service.ts.html +793 -0
- package/__tests__/coverage/src/cache-manager.ts.html +1633 -0
- package/__tests__/coverage/src/database-provider.ts.html +1618 -0
- package/__tests__/coverage/src/domain/entities/index.html +116 -0
- package/__tests__/coverage/src/domain/entities/memory-entry.ts.html +952 -0
- package/__tests__/coverage/src/domain/services/index.html +116 -0
- package/__tests__/coverage/src/domain/services/memory-domain-service.ts.html +1294 -0
- package/__tests__/coverage/src/hnsw-index.ts.html +3124 -0
- package/__tests__/coverage/src/hybrid-backend.ts.html +2167 -0
- package/__tests__/coverage/src/index.html +266 -0
- package/__tests__/coverage/src/infrastructure/repositories/hybrid-memory-repository.ts.html +1633 -0
- package/__tests__/coverage/src/infrastructure/repositories/index.html +116 -0
- package/__tests__/coverage/src/migration.ts.html +2092 -0
- package/__tests__/coverage/src/query-builder.ts.html +1711 -0
- package/__tests__/coverage/src/sqlite-backend.ts.html +2281 -0
- package/__tests__/coverage/src/sqljs-backend.ts.html +2374 -0
- package/__tests__/coverage/src/types.ts.html +2266 -0
- package/benchmarks/cache-hit-rate.bench.ts +535 -0
- package/benchmarks/hnsw-indexing.bench.ts +552 -0
- package/benchmarks/memory-write.bench.ts +469 -0
- package/benchmarks/vector-search.bench.ts +449 -0
- package/dist/agentdb-adapter.d.ts +146 -0
- package/dist/agentdb-adapter.d.ts.map +1 -0
- package/dist/agentdb-adapter.js +679 -0
- package/dist/agentdb-adapter.js.map +1 -0
- package/dist/agentdb-backend.d.ts +214 -0
- package/dist/agentdb-backend.d.ts.map +1 -0
- package/dist/agentdb-backend.js +827 -0
- package/dist/agentdb-backend.js.map +1 -0
- package/dist/agentdb-backend.test.d.ts +7 -0
- package/dist/agentdb-backend.test.d.ts.map +1 -0
- package/dist/agentdb-backend.test.js +258 -0
- package/dist/agentdb-backend.test.js.map +1 -0
- package/dist/application/commands/delete-memory.command.d.ts +65 -0
- package/dist/application/commands/delete-memory.command.d.ts.map +1 -0
- package/dist/application/commands/delete-memory.command.js +129 -0
- package/dist/application/commands/delete-memory.command.js.map +1 -0
- package/dist/application/commands/store-memory.command.d.ts +48 -0
- package/dist/application/commands/store-memory.command.d.ts.map +1 -0
- package/dist/application/commands/store-memory.command.js +72 -0
- package/dist/application/commands/store-memory.command.js.map +1 -0
- package/dist/application/index.d.ts +12 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +15 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/queries/search-memory.query.d.ts +72 -0
- package/dist/application/queries/search-memory.query.d.ts.map +1 -0
- package/dist/application/queries/search-memory.query.js +143 -0
- package/dist/application/queries/search-memory.query.js.map +1 -0
- package/dist/application/services/memory-application-service.d.ts +121 -0
- package/dist/application/services/memory-application-service.d.ts.map +1 -0
- package/dist/application/services/memory-application-service.js +190 -0
- package/dist/application/services/memory-application-service.js.map +1 -0
- package/dist/cache-manager.d.ts +134 -0
- package/dist/cache-manager.d.ts.map +1 -0
- package/dist/cache-manager.js +407 -0
- package/dist/cache-manager.js.map +1 -0
- package/dist/database-provider.d.ts +86 -0
- package/dist/database-provider.d.ts.map +1 -0
- package/dist/database-provider.js +385 -0
- package/dist/database-provider.js.map +1 -0
- package/dist/database-provider.test.d.ts +7 -0
- package/dist/database-provider.test.d.ts.map +1 -0
- package/dist/database-provider.test.js +285 -0
- package/dist/database-provider.test.js.map +1 -0
- package/dist/domain/entities/memory-entry.d.ts +143 -0
- package/dist/domain/entities/memory-entry.d.ts.map +1 -0
- package/dist/domain/entities/memory-entry.js +226 -0
- package/dist/domain/entities/memory-entry.js.map +1 -0
- package/dist/domain/index.d.ts +11 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +12 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/repositories/memory-repository.interface.d.ts +102 -0
- package/dist/domain/repositories/memory-repository.interface.d.ts.map +1 -0
- package/dist/domain/repositories/memory-repository.interface.js +11 -0
- package/dist/domain/repositories/memory-repository.interface.js.map +1 -0
- package/dist/domain/services/memory-domain-service.d.ts +105 -0
- package/dist/domain/services/memory-domain-service.d.ts.map +1 -0
- package/dist/domain/services/memory-domain-service.js +297 -0
- package/dist/domain/services/memory-domain-service.js.map +1 -0
- package/dist/hnsw-index.d.ts +111 -0
- package/dist/hnsw-index.d.ts.map +1 -0
- package/dist/hnsw-index.js +781 -0
- package/dist/hnsw-index.js.map +1 -0
- package/dist/hybrid-backend.d.ts +217 -0
- package/dist/hybrid-backend.d.ts.map +1 -0
- package/dist/hybrid-backend.js +491 -0
- package/dist/hybrid-backend.js.map +1 -0
- package/dist/hybrid-backend.test.d.ts +8 -0
- package/dist/hybrid-backend.test.d.ts.map +1 -0
- package/dist/hybrid-backend.test.js +320 -0
- package/dist/hybrid-backend.test.js.map +1 -0
- package/dist/index.d.ts +188 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +345 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/index.d.ts +17 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +16 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/repositories/hybrid-memory-repository.d.ts +66 -0
- package/dist/infrastructure/repositories/hybrid-memory-repository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/hybrid-memory-repository.js +409 -0
- package/dist/infrastructure/repositories/hybrid-memory-repository.js.map +1 -0
- package/dist/migration.d.ts +68 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +513 -0
- package/dist/migration.js.map +1 -0
- package/dist/query-builder.d.ts +211 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +438 -0
- package/dist/query-builder.js.map +1 -0
- package/dist/sqlite-backend.d.ts +121 -0
- package/dist/sqlite-backend.d.ts.map +1 -0
- package/dist/sqlite-backend.js +564 -0
- package/dist/sqlite-backend.js.map +1 -0
- package/dist/sqljs-backend.d.ts +128 -0
- package/dist/sqljs-backend.d.ts.map +1 -0
- package/dist/sqljs-backend.js +598 -0
- package/dist/sqljs-backend.js.map +1 -0
- package/dist/types.d.ts +481 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +58 -0
- package/dist/types.js.map +1 -0
- package/docs/AGENTDB-INTEGRATION.md +388 -0
- package/docs/CROSS_PLATFORM.md +505 -0
- package/docs/WINDOWS_SUPPORT.md +422 -0
- package/examples/agentdb-example.ts +345 -0
- package/examples/cross-platform-usage.ts +326 -0
- package/framework/benchmark.ts +112 -0
- package/package.json +31 -0
- package/src/agentdb-adapter.ts +884 -0
- package/src/agentdb-backend.test.ts +339 -0
- package/src/agentdb-backend.ts +1016 -0
- package/src/application/commands/delete-memory.command.ts +172 -0
- package/src/application/commands/store-memory.command.ts +103 -0
- package/src/application/index.ts +36 -0
- package/src/application/queries/search-memory.query.ts +237 -0
- package/src/application/services/memory-application-service.ts +236 -0
- package/src/cache-manager.ts +516 -0
- package/src/database-provider.test.ts +364 -0
- package/src/database-provider.ts +511 -0
- package/src/domain/entities/memory-entry.ts +289 -0
- package/src/domain/index.ts +35 -0
- package/src/domain/repositories/memory-repository.interface.ts +120 -0
- package/src/domain/services/memory-domain-service.ts +403 -0
- package/src/hnsw-index.ts +1013 -0
- package/src/hybrid-backend.test.ts +399 -0
- package/src/hybrid-backend.ts +694 -0
- package/src/index.ts +515 -0
- package/src/infrastructure/index.ts +23 -0
- package/src/infrastructure/repositories/hybrid-memory-repository.ts +516 -0
- package/src/migration.ts +669 -0
- package/src/query-builder.ts +542 -0
- package/src/sqlite-backend.ts +732 -0
- package/src/sqljs-backend.ts +763 -0
- package/src/types.ts +727 -0
- package/tsconfig.json +9 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/verify-cross-platform.ts +170 -0
|
@@ -0,0 +1,952 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/domain/entities/memory-entry.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../../index.html">All files</a> / <a href="index.html">src/domain/entities</a> memory-entry.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">0% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>0/289</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/1</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">0% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>0/1</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">0% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>0/289</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
356
|
+
<span class="cline-any cline-no"> </span>
|
|
357
|
+
<span class="cline-any cline-no"> </span>
|
|
358
|
+
<span class="cline-any cline-no"> </span>
|
|
359
|
+
<span class="cline-any cline-no"> </span>
|
|
360
|
+
<span class="cline-any cline-no"> </span>
|
|
361
|
+
<span class="cline-any cline-no"> </span>
|
|
362
|
+
<span class="cline-any cline-no"> </span>
|
|
363
|
+
<span class="cline-any cline-no"> </span>
|
|
364
|
+
<span class="cline-any cline-no"> </span>
|
|
365
|
+
<span class="cline-any cline-no"> </span>
|
|
366
|
+
<span class="cline-any cline-no"> </span>
|
|
367
|
+
<span class="cline-any cline-no"> </span>
|
|
368
|
+
<span class="cline-any cline-no"> </span>
|
|
369
|
+
<span class="cline-any cline-no"> </span>
|
|
370
|
+
<span class="cline-any cline-no"> </span>
|
|
371
|
+
<span class="cline-any cline-no"> </span>
|
|
372
|
+
<span class="cline-any cline-no"> </span>
|
|
373
|
+
<span class="cline-any cline-no"> </span>
|
|
374
|
+
<span class="cline-any cline-no"> </span>
|
|
375
|
+
<span class="cline-any cline-no"> </span>
|
|
376
|
+
<span class="cline-any cline-no"> </span>
|
|
377
|
+
<span class="cline-any cline-no"> </span>
|
|
378
|
+
<span class="cline-any cline-no"> </span>
|
|
379
|
+
<span class="cline-any cline-no"> </span>
|
|
380
|
+
<span class="cline-any cline-no"> </span>
|
|
381
|
+
<span class="cline-any cline-no"> </span>
|
|
382
|
+
<span class="cline-any cline-no"> </span>
|
|
383
|
+
<span class="cline-any cline-no"> </span>
|
|
384
|
+
<span class="cline-any cline-no"> </span>
|
|
385
|
+
<span class="cline-any cline-no"> </span>
|
|
386
|
+
<span class="cline-any cline-no"> </span>
|
|
387
|
+
<span class="cline-any cline-no"> </span>
|
|
388
|
+
<span class="cline-any cline-no"> </span>
|
|
389
|
+
<span class="cline-any cline-no"> </span>
|
|
390
|
+
<span class="cline-any cline-no"> </span>
|
|
391
|
+
<span class="cline-any cline-no"> </span>
|
|
392
|
+
<span class="cline-any cline-no"> </span>
|
|
393
|
+
<span class="cline-any cline-no"> </span>
|
|
394
|
+
<span class="cline-any cline-no"> </span>
|
|
395
|
+
<span class="cline-any cline-no"> </span>
|
|
396
|
+
<span class="cline-any cline-no"> </span>
|
|
397
|
+
<span class="cline-any cline-no"> </span>
|
|
398
|
+
<span class="cline-any cline-no"> </span>
|
|
399
|
+
<span class="cline-any cline-no"> </span>
|
|
400
|
+
<span class="cline-any cline-no"> </span>
|
|
401
|
+
<span class="cline-any cline-no"> </span>
|
|
402
|
+
<span class="cline-any cline-no"> </span>
|
|
403
|
+
<span class="cline-any cline-no"> </span>
|
|
404
|
+
<span class="cline-any cline-no"> </span>
|
|
405
|
+
<span class="cline-any cline-no"> </span>
|
|
406
|
+
<span class="cline-any cline-no"> </span>
|
|
407
|
+
<span class="cline-any cline-no"> </span>
|
|
408
|
+
<span class="cline-any cline-no"> </span>
|
|
409
|
+
<span class="cline-any cline-no"> </span>
|
|
410
|
+
<span class="cline-any cline-no"> </span>
|
|
411
|
+
<span class="cline-any cline-no"> </span>
|
|
412
|
+
<span class="cline-any cline-no"> </span>
|
|
413
|
+
<span class="cline-any cline-no"> </span>
|
|
414
|
+
<span class="cline-any cline-no"> </span>
|
|
415
|
+
<span class="cline-any cline-no"> </span>
|
|
416
|
+
<span class="cline-any cline-no"> </span>
|
|
417
|
+
<span class="cline-any cline-no"> </span>
|
|
418
|
+
<span class="cline-any cline-no"> </span>
|
|
419
|
+
<span class="cline-any cline-no"> </span>
|
|
420
|
+
<span class="cline-any cline-no"> </span>
|
|
421
|
+
<span class="cline-any cline-no"> </span>
|
|
422
|
+
<span class="cline-any cline-no"> </span>
|
|
423
|
+
<span class="cline-any cline-no"> </span>
|
|
424
|
+
<span class="cline-any cline-no"> </span>
|
|
425
|
+
<span class="cline-any cline-no"> </span>
|
|
426
|
+
<span class="cline-any cline-no"> </span>
|
|
427
|
+
<span class="cline-any cline-no"> </span>
|
|
428
|
+
<span class="cline-any cline-no"> </span>
|
|
429
|
+
<span class="cline-any cline-no"> </span>
|
|
430
|
+
<span class="cline-any cline-no"> </span>
|
|
431
|
+
<span class="cline-any cline-no"> </span>
|
|
432
|
+
<span class="cline-any cline-no"> </span>
|
|
433
|
+
<span class="cline-any cline-no"> </span>
|
|
434
|
+
<span class="cline-any cline-no"> </span>
|
|
435
|
+
<span class="cline-any cline-no"> </span>
|
|
436
|
+
<span class="cline-any cline-no"> </span>
|
|
437
|
+
<span class="cline-any cline-no"> </span>
|
|
438
|
+
<span class="cline-any cline-no"> </span>
|
|
439
|
+
<span class="cline-any cline-no"> </span>
|
|
440
|
+
<span class="cline-any cline-no"> </span>
|
|
441
|
+
<span class="cline-any cline-no"> </span>
|
|
442
|
+
<span class="cline-any cline-no"> </span>
|
|
443
|
+
<span class="cline-any cline-no"> </span>
|
|
444
|
+
<span class="cline-any cline-no"> </span>
|
|
445
|
+
<span class="cline-any cline-no"> </span>
|
|
446
|
+
<span class="cline-any cline-no"> </span>
|
|
447
|
+
<span class="cline-any cline-no"> </span>
|
|
448
|
+
<span class="cline-any cline-no"> </span>
|
|
449
|
+
<span class="cline-any cline-no"> </span>
|
|
450
|
+
<span class="cline-any cline-no"> </span>
|
|
451
|
+
<span class="cline-any cline-no"> </span>
|
|
452
|
+
<span class="cline-any cline-no"> </span>
|
|
453
|
+
<span class="cline-any cline-no"> </span>
|
|
454
|
+
<span class="cline-any cline-no"> </span>
|
|
455
|
+
<span class="cline-any cline-no"> </span>
|
|
456
|
+
<span class="cline-any cline-no"> </span>
|
|
457
|
+
<span class="cline-any cline-no"> </span>
|
|
458
|
+
<span class="cline-any cline-no"> </span>
|
|
459
|
+
<span class="cline-any cline-no"> </span>
|
|
460
|
+
<span class="cline-any cline-no"> </span>
|
|
461
|
+
<span class="cline-any cline-no"> </span>
|
|
462
|
+
<span class="cline-any cline-no"> </span>
|
|
463
|
+
<span class="cline-any cline-no"> </span>
|
|
464
|
+
<span class="cline-any cline-no"> </span>
|
|
465
|
+
<span class="cline-any cline-no"> </span>
|
|
466
|
+
<span class="cline-any cline-no"> </span>
|
|
467
|
+
<span class="cline-any cline-no"> </span>
|
|
468
|
+
<span class="cline-any cline-no"> </span>
|
|
469
|
+
<span class="cline-any cline-no"> </span>
|
|
470
|
+
<span class="cline-any cline-no"> </span>
|
|
471
|
+
<span class="cline-any cline-no"> </span>
|
|
472
|
+
<span class="cline-any cline-no"> </span>
|
|
473
|
+
<span class="cline-any cline-no"> </span>
|
|
474
|
+
<span class="cline-any cline-no"> </span>
|
|
475
|
+
<span class="cline-any cline-no"> </span>
|
|
476
|
+
<span class="cline-any cline-no"> </span>
|
|
477
|
+
<span class="cline-any cline-no"> </span>
|
|
478
|
+
<span class="cline-any cline-no"> </span>
|
|
479
|
+
<span class="cline-any cline-no"> </span>
|
|
480
|
+
<span class="cline-any cline-no"> </span>
|
|
481
|
+
<span class="cline-any cline-no"> </span>
|
|
482
|
+
<span class="cline-any cline-no"> </span>
|
|
483
|
+
<span class="cline-any cline-no"> </span>
|
|
484
|
+
<span class="cline-any cline-no"> </span>
|
|
485
|
+
<span class="cline-any cline-no"> </span>
|
|
486
|
+
<span class="cline-any cline-no"> </span>
|
|
487
|
+
<span class="cline-any cline-no"> </span>
|
|
488
|
+
<span class="cline-any cline-no"> </span>
|
|
489
|
+
<span class="cline-any cline-no"> </span>
|
|
490
|
+
<span class="cline-any cline-no"> </span>
|
|
491
|
+
<span class="cline-any cline-no"> </span>
|
|
492
|
+
<span class="cline-any cline-no"> </span>
|
|
493
|
+
<span class="cline-any cline-no"> </span>
|
|
494
|
+
<span class="cline-any cline-no"> </span>
|
|
495
|
+
<span class="cline-any cline-no"> </span>
|
|
496
|
+
<span class="cline-any cline-no"> </span>
|
|
497
|
+
<span class="cline-any cline-no"> </span>
|
|
498
|
+
<span class="cline-any cline-no"> </span>
|
|
499
|
+
<span class="cline-any cline-no"> </span>
|
|
500
|
+
<span class="cline-any cline-no"> </span>
|
|
501
|
+
<span class="cline-any cline-no"> </span>
|
|
502
|
+
<span class="cline-any cline-no"> </span>
|
|
503
|
+
<span class="cline-any cline-no"> </span>
|
|
504
|
+
<span class="cline-any cline-no"> </span>
|
|
505
|
+
<span class="cline-any cline-no"> </span>
|
|
506
|
+
<span class="cline-any cline-no"> </span>
|
|
507
|
+
<span class="cline-any cline-no"> </span>
|
|
508
|
+
<span class="cline-any cline-no"> </span>
|
|
509
|
+
<span class="cline-any cline-no"> </span>
|
|
510
|
+
<span class="cline-any cline-no"> </span>
|
|
511
|
+
<span class="cline-any cline-no"> </span>
|
|
512
|
+
<span class="cline-any cline-no"> </span>
|
|
513
|
+
<span class="cline-any cline-no"> </span>
|
|
514
|
+
<span class="cline-any cline-no"> </span>
|
|
515
|
+
<span class="cline-any cline-no"> </span>
|
|
516
|
+
<span class="cline-any cline-no"> </span>
|
|
517
|
+
<span class="cline-any cline-no"> </span>
|
|
518
|
+
<span class="cline-any cline-no"> </span>
|
|
519
|
+
<span class="cline-any cline-no"> </span>
|
|
520
|
+
<span class="cline-any cline-no"> </span>
|
|
521
|
+
<span class="cline-any cline-no"> </span>
|
|
522
|
+
<span class="cline-any cline-no"> </span>
|
|
523
|
+
<span class="cline-any cline-no"> </span>
|
|
524
|
+
<span class="cline-any cline-no"> </span>
|
|
525
|
+
<span class="cline-any cline-no"> </span>
|
|
526
|
+
<span class="cline-any cline-no"> </span>
|
|
527
|
+
<span class="cline-any cline-no"> </span>
|
|
528
|
+
<span class="cline-any cline-no"> </span>
|
|
529
|
+
<span class="cline-any cline-no"> </span>
|
|
530
|
+
<span class="cline-any cline-no"> </span>
|
|
531
|
+
<span class="cline-any cline-no"> </span>
|
|
532
|
+
<span class="cline-any cline-no"> </span>
|
|
533
|
+
<span class="cline-any cline-no"> </span>
|
|
534
|
+
<span class="cline-any cline-no"> </span>
|
|
535
|
+
<span class="cline-any cline-no"> </span>
|
|
536
|
+
<span class="cline-any cline-no"> </span>
|
|
537
|
+
<span class="cline-any cline-no"> </span>
|
|
538
|
+
<span class="cline-any cline-no"> </span>
|
|
539
|
+
<span class="cline-any cline-no"> </span>
|
|
540
|
+
<span class="cline-any cline-no"> </span>
|
|
541
|
+
<span class="cline-any cline-no"> </span>
|
|
542
|
+
<span class="cline-any cline-no"> </span>
|
|
543
|
+
<span class="cline-any cline-no"> </span>
|
|
544
|
+
<span class="cline-any cline-no"> </span>
|
|
545
|
+
<span class="cline-any cline-no"> </span>
|
|
546
|
+
<span class="cline-any cline-no"> </span>
|
|
547
|
+
<span class="cline-any cline-no"> </span>
|
|
548
|
+
<span class="cline-any cline-no"> </span>
|
|
549
|
+
<span class="cline-any cline-no"> </span>
|
|
550
|
+
<span class="cline-any cline-no"> </span>
|
|
551
|
+
<span class="cline-any cline-no"> </span>
|
|
552
|
+
<span class="cline-any cline-no"> </span>
|
|
553
|
+
<span class="cline-any cline-no"> </span>
|
|
554
|
+
<span class="cline-any cline-no"> </span>
|
|
555
|
+
<span class="cline-any cline-no"> </span>
|
|
556
|
+
<span class="cline-any cline-no"> </span>
|
|
557
|
+
<span class="cline-any cline-no"> </span>
|
|
558
|
+
<span class="cline-any cline-no"> </span>
|
|
559
|
+
<span class="cline-any cline-no"> </span>
|
|
560
|
+
<span class="cline-any cline-no"> </span>
|
|
561
|
+
<span class="cline-any cline-no"> </span>
|
|
562
|
+
<span class="cline-any cline-no"> </span>
|
|
563
|
+
<span class="cline-any cline-no"> </span>
|
|
564
|
+
<span class="cline-any cline-no"> </span>
|
|
565
|
+
<span class="cline-any cline-no"> </span>
|
|
566
|
+
<span class="cline-any cline-no"> </span>
|
|
567
|
+
<span class="cline-any cline-no"> </span>
|
|
568
|
+
<span class="cline-any cline-no"> </span>
|
|
569
|
+
<span class="cline-any cline-no"> </span>
|
|
570
|
+
<span class="cline-any cline-no"> </span>
|
|
571
|
+
<span class="cline-any cline-no"> </span>
|
|
572
|
+
<span class="cline-any cline-no"> </span>
|
|
573
|
+
<span class="cline-any cline-no"> </span>
|
|
574
|
+
<span class="cline-any cline-no"> </span>
|
|
575
|
+
<span class="cline-any cline-no"> </span>
|
|
576
|
+
<span class="cline-any cline-no"> </span>
|
|
577
|
+
<span class="cline-any cline-no"> </span>
|
|
578
|
+
<span class="cline-any cline-no"> </span>
|
|
579
|
+
<span class="cline-any cline-no"> </span>
|
|
580
|
+
<span class="cline-any cline-no"> </span>
|
|
581
|
+
<span class="cline-any cline-no"> </span>
|
|
582
|
+
<span class="cline-any cline-no"> </span>
|
|
583
|
+
<span class="cline-any cline-no"> </span>
|
|
584
|
+
<span class="cline-any cline-no"> </span>
|
|
585
|
+
<span class="cline-any cline-no"> </span>
|
|
586
|
+
<span class="cline-any cline-no"> </span>
|
|
587
|
+
<span class="cline-any cline-no"> </span>
|
|
588
|
+
<span class="cline-any cline-no"> </span>
|
|
589
|
+
<span class="cline-any cline-no"> </span>
|
|
590
|
+
<span class="cline-any cline-no"> </span>
|
|
591
|
+
<span class="cline-any cline-no"> </span>
|
|
592
|
+
<span class="cline-any cline-no"> </span>
|
|
593
|
+
<span class="cline-any cline-no"> </span>
|
|
594
|
+
<span class="cline-any cline-no"> </span>
|
|
595
|
+
<span class="cline-any cline-no"> </span>
|
|
596
|
+
<span class="cline-any cline-no"> </span>
|
|
597
|
+
<span class="cline-any cline-no"> </span>
|
|
598
|
+
<span class="cline-any cline-no"> </span>
|
|
599
|
+
<span class="cline-any cline-no"> </span>
|
|
600
|
+
<span class="cline-any cline-no"> </span>
|
|
601
|
+
<span class="cline-any cline-no"> </span>
|
|
602
|
+
<span class="cline-any cline-no"> </span>
|
|
603
|
+
<span class="cline-any cline-no"> </span>
|
|
604
|
+
<span class="cline-any cline-no"> </span>
|
|
605
|
+
<span class="cline-any cline-no"> </span>
|
|
606
|
+
<span class="cline-any cline-no"> </span>
|
|
607
|
+
<span class="cline-any cline-no"> </span>
|
|
608
|
+
<span class="cline-any cline-no"> </span>
|
|
609
|
+
<span class="cline-any cline-no"> </span>
|
|
610
|
+
<span class="cline-any cline-no"> </span>
|
|
611
|
+
<span class="cline-any cline-no"> </span>
|
|
612
|
+
<span class="cline-any cline-no"> </span>
|
|
613
|
+
<span class="cline-any cline-no"> </span>
|
|
614
|
+
<span class="cline-any cline-no"> </span>
|
|
615
|
+
<span class="cline-any cline-no"> </span>
|
|
616
|
+
<span class="cline-any cline-no"> </span>
|
|
617
|
+
<span class="cline-any cline-no"> </span>
|
|
618
|
+
<span class="cline-any cline-no"> </span>
|
|
619
|
+
<span class="cline-any cline-no"> </span>
|
|
620
|
+
<span class="cline-any cline-no"> </span>
|
|
621
|
+
<span class="cline-any cline-no"> </span>
|
|
622
|
+
<span class="cline-any cline-no"> </span>
|
|
623
|
+
<span class="cline-any cline-no"> </span>
|
|
624
|
+
<span class="cline-any cline-no"> </span>
|
|
625
|
+
<span class="cline-any cline-no"> </span>
|
|
626
|
+
<span class="cline-any cline-no"> </span>
|
|
627
|
+
<span class="cline-any cline-no"> </span>
|
|
628
|
+
<span class="cline-any cline-no"> </span>
|
|
629
|
+
<span class="cline-any cline-no"> </span>
|
|
630
|
+
<span class="cline-any cline-no"> </span>
|
|
631
|
+
<span class="cline-any cline-no"> </span>
|
|
632
|
+
<span class="cline-any cline-no"> </span>
|
|
633
|
+
<span class="cline-any cline-no"> </span>
|
|
634
|
+
<span class="cline-any cline-no"> </span>
|
|
635
|
+
<span class="cline-any cline-no"> </span>
|
|
636
|
+
<span class="cline-any cline-no"> </span>
|
|
637
|
+
<span class="cline-any cline-no"> </span>
|
|
638
|
+
<span class="cline-any cline-no"> </span>
|
|
639
|
+
<span class="cline-any cline-no"> </span>
|
|
640
|
+
<span class="cline-any cline-no"> </span>
|
|
641
|
+
<span class="cline-any cline-no"> </span>
|
|
642
|
+
<span class="cline-any cline-no"> </span>
|
|
643
|
+
<span class="cline-any cline-no"> </span>
|
|
644
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >/**<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
|
|
645
|
+
<span class="cstat-no" title="statement not covered" > * Memory Entry Entity - Domain Layer</span>
|
|
646
|
+
<span class="cstat-no" title="statement not covered" > *</span>
|
|
647
|
+
<span class="cstat-no" title="statement not covered" > * Core domain entity representing a stored memory item.</span>
|
|
648
|
+
<span class="cstat-no" title="statement not covered" > * Implements DDD principles with encapsulated business logic.</span>
|
|
649
|
+
<span class="cstat-no" title="statement not covered" > *</span>
|
|
650
|
+
<span class="cstat-no" title="statement not covered" > * @module v3/memory/domain/entities</span>
|
|
651
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
652
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
653
|
+
<span class="cstat-no" title="statement not covered" >import { randomUUID } from 'crypto';</span>
|
|
654
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
655
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
656
|
+
<span class="cstat-no" title="statement not covered" > * Memory entry types</span>
|
|
657
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
658
|
+
<span class="cstat-no" title="statement not covered" >export type MemoryType = 'semantic' | 'episodic' | 'procedural' | 'working';</span>
|
|
659
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
660
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
661
|
+
<span class="cstat-no" title="statement not covered" > * Memory entry status</span>
|
|
662
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
663
|
+
<span class="cstat-no" title="statement not covered" >export type MemoryStatus = 'active' | 'archived' | 'deleted';</span>
|
|
664
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
665
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
666
|
+
<span class="cstat-no" title="statement not covered" > * Memory entry properties</span>
|
|
667
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
668
|
+
<span class="cstat-no" title="statement not covered" >export interface MemoryEntryProps {</span>
|
|
669
|
+
<span class="cstat-no" title="statement not covered" > id?: string;</span>
|
|
670
|
+
<span class="cstat-no" title="statement not covered" > namespace: string;</span>
|
|
671
|
+
<span class="cstat-no" title="statement not covered" > key: string;</span>
|
|
672
|
+
<span class="cstat-no" title="statement not covered" > value: unknown;</span>
|
|
673
|
+
<span class="cstat-no" title="statement not covered" > type: MemoryType;</span>
|
|
674
|
+
<span class="cstat-no" title="statement not covered" > vector?: Float32Array;</span>
|
|
675
|
+
<span class="cstat-no" title="statement not covered" > metadata?: Record<string, unknown>;</span>
|
|
676
|
+
<span class="cstat-no" title="statement not covered" > accessCount?: number;</span>
|
|
677
|
+
<span class="cstat-no" title="statement not covered" > lastAccessedAt?: Date;</span>
|
|
678
|
+
<span class="cstat-no" title="statement not covered" > createdAt?: Date;</span>
|
|
679
|
+
<span class="cstat-no" title="statement not covered" > updatedAt?: Date;</span>
|
|
680
|
+
<span class="cstat-no" title="statement not covered" > status?: MemoryStatus;</span>
|
|
681
|
+
<span class="cstat-no" title="statement not covered" > ttl?: number; // Time-to-live in milliseconds</span>
|
|
682
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
|
683
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
684
|
+
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
685
|
+
<span class="cstat-no" title="statement not covered" > * Memory Entry - Aggregate Root</span>
|
|
686
|
+
<span class="cstat-no" title="statement not covered" > *</span>
|
|
687
|
+
<span class="cstat-no" title="statement not covered" > * Represents a single memory entry with business logic</span>
|
|
688
|
+
<span class="cstat-no" title="statement not covered" > * for access tracking, expiration, and state management.</span>
|
|
689
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
690
|
+
<span class="cstat-no" title="statement not covered" >export class MemoryEntry {</span>
|
|
691
|
+
<span class="cstat-no" title="statement not covered" > private _id: string;</span>
|
|
692
|
+
<span class="cstat-no" title="statement not covered" > private _namespace: string;</span>
|
|
693
|
+
<span class="cstat-no" title="statement not covered" > private _key: string;</span>
|
|
694
|
+
<span class="cstat-no" title="statement not covered" > private _value: unknown;</span>
|
|
695
|
+
<span class="cstat-no" title="statement not covered" > private _type: MemoryType;</span>
|
|
696
|
+
<span class="cstat-no" title="statement not covered" > private _vector?: Float32Array;</span>
|
|
697
|
+
<span class="cstat-no" title="statement not covered" > private _metadata: Record<string, unknown>;</span>
|
|
698
|
+
<span class="cstat-no" title="statement not covered" > private _accessCount: number;</span>
|
|
699
|
+
<span class="cstat-no" title="statement not covered" > private _lastAccessedAt: Date;</span>
|
|
700
|
+
<span class="cstat-no" title="statement not covered" > private _createdAt: Date;</span>
|
|
701
|
+
<span class="cstat-no" title="statement not covered" > private _updatedAt: Date;</span>
|
|
702
|
+
<span class="cstat-no" title="statement not covered" > private _status: MemoryStatus;</span>
|
|
703
|
+
<span class="cstat-no" title="statement not covered" > private _ttl?: number;</span>
|
|
704
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
705
|
+
<span class="cstat-no" title="statement not covered" > private constructor(props: MemoryEntryProps) {</span>
|
|
706
|
+
<span class="cstat-no" title="statement not covered" > const now = new Date();</span>
|
|
707
|
+
<span class="cstat-no" title="statement not covered" > this._id = props.id ?? randomUUID();</span>
|
|
708
|
+
<span class="cstat-no" title="statement not covered" > this._namespace = props.namespace;</span>
|
|
709
|
+
<span class="cstat-no" title="statement not covered" > this._key = props.key;</span>
|
|
710
|
+
<span class="cstat-no" title="statement not covered" > this._value = props.value;</span>
|
|
711
|
+
<span class="cstat-no" title="statement not covered" > this._type = props.type;</span>
|
|
712
|
+
<span class="cstat-no" title="statement not covered" > this._vector = props.vector;</span>
|
|
713
|
+
<span class="cstat-no" title="statement not covered" > this._metadata = props.metadata ?? {};</span>
|
|
714
|
+
<span class="cstat-no" title="statement not covered" > this._accessCount = props.accessCount ?? 0;</span>
|
|
715
|
+
<span class="cstat-no" title="statement not covered" > this._lastAccessedAt = props.lastAccessedAt ?? now;</span>
|
|
716
|
+
<span class="cstat-no" title="statement not covered" > this._createdAt = props.createdAt ?? now;</span>
|
|
717
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = props.updatedAt ?? now;</span>
|
|
718
|
+
<span class="cstat-no" title="statement not covered" > this._status = props.status ?? 'active';</span>
|
|
719
|
+
<span class="cstat-no" title="statement not covered" > this._ttl = props.ttl;</span>
|
|
720
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
721
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
722
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
723
|
+
<span class="cstat-no" title="statement not covered" > * Factory method - Create new memory entry</span>
|
|
724
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
725
|
+
<span class="cstat-no" title="statement not covered" > static create(props: MemoryEntryProps): MemoryEntry {</span>
|
|
726
|
+
<span class="cstat-no" title="statement not covered" > return new MemoryEntry(props);</span>
|
|
727
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
728
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
729
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
730
|
+
<span class="cstat-no" title="statement not covered" > * Factory method - Reconstruct from persistence</span>
|
|
731
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
732
|
+
<span class="cstat-no" title="statement not covered" > static fromPersistence(props: MemoryEntryProps): MemoryEntry {</span>
|
|
733
|
+
<span class="cstat-no" title="statement not covered" > return new MemoryEntry(props);</span>
|
|
734
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
735
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
736
|
+
<span class="cstat-no" title="statement not covered" > // Getters</span>
|
|
737
|
+
<span class="cstat-no" title="statement not covered" > get id(): string {</span>
|
|
738
|
+
<span class="cstat-no" title="statement not covered" > return this._id;</span>
|
|
739
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
740
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
741
|
+
<span class="cstat-no" title="statement not covered" > get namespace(): string {</span>
|
|
742
|
+
<span class="cstat-no" title="statement not covered" > return this._namespace;</span>
|
|
743
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
744
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
745
|
+
<span class="cstat-no" title="statement not covered" > get key(): string {</span>
|
|
746
|
+
<span class="cstat-no" title="statement not covered" > return this._key;</span>
|
|
747
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
748
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
749
|
+
<span class="cstat-no" title="statement not covered" > get value(): unknown {</span>
|
|
750
|
+
<span class="cstat-no" title="statement not covered" > return this._value;</span>
|
|
751
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
752
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
753
|
+
<span class="cstat-no" title="statement not covered" > get type(): MemoryType {</span>
|
|
754
|
+
<span class="cstat-no" title="statement not covered" > return this._type;</span>
|
|
755
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
756
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
757
|
+
<span class="cstat-no" title="statement not covered" > get vector(): Float32Array | undefined {</span>
|
|
758
|
+
<span class="cstat-no" title="statement not covered" > return this._vector;</span>
|
|
759
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
760
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
761
|
+
<span class="cstat-no" title="statement not covered" > get metadata(): Record<string, unknown> {</span>
|
|
762
|
+
<span class="cstat-no" title="statement not covered" > return { ...this._metadata };</span>
|
|
763
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
764
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
765
|
+
<span class="cstat-no" title="statement not covered" > get accessCount(): number {</span>
|
|
766
|
+
<span class="cstat-no" title="statement not covered" > return this._accessCount;</span>
|
|
767
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
768
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
769
|
+
<span class="cstat-no" title="statement not covered" > get lastAccessedAt(): Date {</span>
|
|
770
|
+
<span class="cstat-no" title="statement not covered" > return new Date(this._lastAccessedAt);</span>
|
|
771
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
772
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
773
|
+
<span class="cstat-no" title="statement not covered" > get createdAt(): Date {</span>
|
|
774
|
+
<span class="cstat-no" title="statement not covered" > return new Date(this._createdAt);</span>
|
|
775
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
776
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
777
|
+
<span class="cstat-no" title="statement not covered" > get updatedAt(): Date {</span>
|
|
778
|
+
<span class="cstat-no" title="statement not covered" > return new Date(this._updatedAt);</span>
|
|
779
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
780
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
781
|
+
<span class="cstat-no" title="statement not covered" > get status(): MemoryStatus {</span>
|
|
782
|
+
<span class="cstat-no" title="statement not covered" > return this._status;</span>
|
|
783
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
784
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
785
|
+
<span class="cstat-no" title="statement not covered" > get ttl(): number | undefined {</span>
|
|
786
|
+
<span class="cstat-no" title="statement not covered" > return this._ttl;</span>
|
|
787
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
788
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
789
|
+
<span class="cstat-no" title="statement not covered" > get compositeKey(): string {</span>
|
|
790
|
+
<span class="cstat-no" title="statement not covered" > return `${this._namespace}:${this._key}`;</span>
|
|
791
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
792
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
793
|
+
<span class="cstat-no" title="statement not covered" > // Business Logic Methods</span>
|
|
794
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
795
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
796
|
+
<span class="cstat-no" title="statement not covered" > * Record an access to this memory entry</span>
|
|
797
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
798
|
+
<span class="cstat-no" title="statement not covered" > recordAccess(): void {</span>
|
|
799
|
+
<span class="cstat-no" title="statement not covered" > this._accessCount++;</span>
|
|
800
|
+
<span class="cstat-no" title="statement not covered" > this._lastAccessedAt = new Date();</span>
|
|
801
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
802
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
803
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
804
|
+
<span class="cstat-no" title="statement not covered" > * Update the value of this memory entry</span>
|
|
805
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
806
|
+
<span class="cstat-no" title="statement not covered" > updateValue(value: unknown): void {</span>
|
|
807
|
+
<span class="cstat-no" title="statement not covered" > this._value = value;</span>
|
|
808
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = new Date();</span>
|
|
809
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
810
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
811
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
812
|
+
<span class="cstat-no" title="statement not covered" > * Update the vector embedding</span>
|
|
813
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
814
|
+
<span class="cstat-no" title="statement not covered" > updateVector(vector: Float32Array): void {</span>
|
|
815
|
+
<span class="cstat-no" title="statement not covered" > this._vector = vector;</span>
|
|
816
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = new Date();</span>
|
|
817
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
818
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
819
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
820
|
+
<span class="cstat-no" title="statement not covered" > * Add or update metadata</span>
|
|
821
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
822
|
+
<span class="cstat-no" title="statement not covered" > setMetadata(key: string, value: unknown): void {</span>
|
|
823
|
+
<span class="cstat-no" title="statement not covered" > this._metadata[key] = value;</span>
|
|
824
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = new Date();</span>
|
|
825
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
826
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
827
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
828
|
+
<span class="cstat-no" title="statement not covered" > * Remove metadata key</span>
|
|
829
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
830
|
+
<span class="cstat-no" title="statement not covered" > removeMetadata(key: string): void {</span>
|
|
831
|
+
<span class="cstat-no" title="statement not covered" > delete this._metadata[key];</span>
|
|
832
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = new Date();</span>
|
|
833
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
834
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
835
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
836
|
+
<span class="cstat-no" title="statement not covered" > * Archive this memory entry</span>
|
|
837
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
838
|
+
<span class="cstat-no" title="statement not covered" > archive(): void {</span>
|
|
839
|
+
<span class="cstat-no" title="statement not covered" > this._status = 'archived';</span>
|
|
840
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = new Date();</span>
|
|
841
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
842
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
843
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
844
|
+
<span class="cstat-no" title="statement not covered" > * Restore archived memory entry</span>
|
|
845
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
846
|
+
<span class="cstat-no" title="statement not covered" > restore(): void {</span>
|
|
847
|
+
<span class="cstat-no" title="statement not covered" > if (this._status === 'archived') {</span>
|
|
848
|
+
<span class="cstat-no" title="statement not covered" > this._status = 'active';</span>
|
|
849
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = new Date();</span>
|
|
850
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
851
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
852
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
853
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
854
|
+
<span class="cstat-no" title="statement not covered" > * Mark as deleted (soft delete)</span>
|
|
855
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
856
|
+
<span class="cstat-no" title="statement not covered" > delete(): void {</span>
|
|
857
|
+
<span class="cstat-no" title="statement not covered" > this._status = 'deleted';</span>
|
|
858
|
+
<span class="cstat-no" title="statement not covered" > this._updatedAt = new Date();</span>
|
|
859
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
860
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
861
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
862
|
+
<span class="cstat-no" title="statement not covered" > * Check if memory has expired based on TTL</span>
|
|
863
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
864
|
+
<span class="cstat-no" title="statement not covered" > isExpired(): boolean {</span>
|
|
865
|
+
<span class="cstat-no" title="statement not covered" > if (!this._ttl) return false;</span>
|
|
866
|
+
<span class="cstat-no" title="statement not covered" > const expiresAt = this._createdAt.getTime() + this._ttl;</span>
|
|
867
|
+
<span class="cstat-no" title="statement not covered" > return Date.now() > expiresAt;</span>
|
|
868
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
869
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
870
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
871
|
+
<span class="cstat-no" title="statement not covered" > * Check if memory is accessible (active and not expired)</span>
|
|
872
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
873
|
+
<span class="cstat-no" title="statement not covered" > isAccessible(): boolean {</span>
|
|
874
|
+
<span class="cstat-no" title="statement not covered" > return this._status === 'active' && !this.isExpired();</span>
|
|
875
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
876
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
877
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
878
|
+
<span class="cstat-no" title="statement not covered" > * Calculate age in milliseconds</span>
|
|
879
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
880
|
+
<span class="cstat-no" title="statement not covered" > getAge(): number {</span>
|
|
881
|
+
<span class="cstat-no" title="statement not covered" > return Date.now() - this._createdAt.getTime();</span>
|
|
882
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
883
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
884
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
885
|
+
<span class="cstat-no" title="statement not covered" > * Calculate time since last access in milliseconds</span>
|
|
886
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
887
|
+
<span class="cstat-no" title="statement not covered" > getTimeSinceLastAccess(): number {</span>
|
|
888
|
+
<span class="cstat-no" title="statement not covered" > return Date.now() - this._lastAccessedAt.getTime();</span>
|
|
889
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
890
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
891
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
892
|
+
<span class="cstat-no" title="statement not covered" > * Check if memory is considered "hot" (frequently accessed)</span>
|
|
893
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
894
|
+
<span class="cstat-no" title="statement not covered" > isHot(threshold: number = 10): boolean {</span>
|
|
895
|
+
<span class="cstat-no" title="statement not covered" > return this._accessCount >= threshold;</span>
|
|
896
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
897
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
898
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
899
|
+
<span class="cstat-no" title="statement not covered" > * Check if memory is considered "cold" (not accessed recently)</span>
|
|
900
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
901
|
+
<span class="cstat-no" title="statement not covered" > isCold(milliseconds: number = 3600000): boolean {</span>
|
|
902
|
+
<span class="cstat-no" title="statement not covered" > return this.getTimeSinceLastAccess() > milliseconds;</span>
|
|
903
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
904
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
905
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
906
|
+
<span class="cstat-no" title="statement not covered" > * Convert to plain object for persistence</span>
|
|
907
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
908
|
+
<span class="cstat-no" title="statement not covered" > toPersistence(): Record<string, unknown> {</span>
|
|
909
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
910
|
+
<span class="cstat-no" title="statement not covered" > id: this._id,</span>
|
|
911
|
+
<span class="cstat-no" title="statement not covered" > namespace: this._namespace,</span>
|
|
912
|
+
<span class="cstat-no" title="statement not covered" > key: this._key,</span>
|
|
913
|
+
<span class="cstat-no" title="statement not covered" > value: this._value,</span>
|
|
914
|
+
<span class="cstat-no" title="statement not covered" > type: this._type,</span>
|
|
915
|
+
<span class="cstat-no" title="statement not covered" > vector: this._vector ? Array.from(this._vector) : undefined,</span>
|
|
916
|
+
<span class="cstat-no" title="statement not covered" > metadata: this._metadata,</span>
|
|
917
|
+
<span class="cstat-no" title="statement not covered" > accessCount: this._accessCount,</span>
|
|
918
|
+
<span class="cstat-no" title="statement not covered" > lastAccessedAt: this._lastAccessedAt.toISOString(),</span>
|
|
919
|
+
<span class="cstat-no" title="statement not covered" > createdAt: this._createdAt.toISOString(),</span>
|
|
920
|
+
<span class="cstat-no" title="statement not covered" > updatedAt: this._updatedAt.toISOString(),</span>
|
|
921
|
+
<span class="cstat-no" title="statement not covered" > status: this._status,</span>
|
|
922
|
+
<span class="cstat-no" title="statement not covered" > ttl: this._ttl,</span>
|
|
923
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
924
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
925
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
926
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
927
|
+
<span class="cstat-no" title="statement not covered" > * Convert to JSON-serializable object</span>
|
|
928
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
929
|
+
<span class="cstat-no" title="statement not covered" > toJSON(): Record<string, unknown> {</span>
|
|
930
|
+
<span class="cstat-no" title="statement not covered" > return this.toPersistence();</span>
|
|
931
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
932
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
|
933
|
+
</pre></td></tr></table></pre>
|
|
934
|
+
|
|
935
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
936
|
+
</div><!-- /wrapper -->
|
|
937
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
938
|
+
Code coverage generated by
|
|
939
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
940
|
+
at 2026-01-05T21:16:54.220Z
|
|
941
|
+
</div>
|
|
942
|
+
<script src="../../../prettify.js"></script>
|
|
943
|
+
<script>
|
|
944
|
+
window.onload = function () {
|
|
945
|
+
prettyPrint();
|
|
946
|
+
};
|
|
947
|
+
</script>
|
|
948
|
+
<script src="../../../sorter.js"></script>
|
|
949
|
+
<script src="../../../block-navigation.js"></script>
|
|
950
|
+
</body>
|
|
951
|
+
</html>
|
|
952
|
+
|