a2a-memory 0.11.4 → 0.11.6

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 (262) hide show
  1. package/LICENSE +7 -19
  2. package/README.md +1 -1
  3. package/dist/a2a/client.js +1 -252
  4. package/dist/a2a/discovery.js +1 -115
  5. package/dist/a2a/index.js +1 -8
  6. package/dist/a2a/types.js +1 -42
  7. package/dist/adapters/anthropic.js +1 -117
  8. package/dist/chunking/chunker.js +1 -163
  9. package/dist/claude/sync.js +1 -294
  10. package/dist/cli/commands/add.js +1 -80
  11. package/dist/cli/commands/claude-sync.js +1 -70
  12. package/dist/cli/commands/cleanup.js +1 -83
  13. package/dist/cli/commands/config.js +1 -73
  14. package/dist/cli/commands/edit.js +1 -69
  15. package/dist/cli/commands/embed.js +1 -92
  16. package/dist/cli/commands/extract.js +1 -103
  17. package/dist/cli/commands/health.js +1 -105
  18. package/dist/cli/commands/list.js +1 -49
  19. package/dist/cli/commands/migrate-chunks.js +1 -205
  20. package/dist/cli/commands/migrate-file-refs.js +1 -183
  21. package/dist/cli/commands/proficiency.js +1 -146
  22. package/dist/cli/commands/rm.js +1 -64
  23. package/dist/cli/commands/search.js +1 -89
  24. package/dist/cli/commands/setup-wizard.js +1 -387
  25. package/dist/cli/commands/setup.js +1 -170
  26. package/dist/cli/commands/skill.js +1 -151
  27. package/dist/cli/commands/status.js +1 -70
  28. package/dist/cli/commands/sync.js +1 -202
  29. package/dist/cli/commands/team.js +1 -142
  30. package/dist/cli/index.js +1 -87
  31. package/dist/config/manager.js +1 -372
  32. package/dist/db/database.d.ts +10 -1
  33. package/dist/db/database.js +1 -1367
  34. package/dist/embedding/e5-provider.js +1 -147
  35. package/dist/embedding/index.js +1 -34
  36. package/dist/embedding/local-provider.js +1 -157
  37. package/dist/embedding/openai-provider.js +1 -92
  38. package/dist/embedding/quantization.js +1 -89
  39. package/dist/extraction/dedup-manager.js +1 -161
  40. package/dist/extraction/emotion-filter.js +1 -33
  41. package/dist/extraction/extractor.js +1 -642
  42. package/dist/extraction/file-reference.js +1 -77
  43. package/dist/extraction/filter.js +1 -85
  44. package/dist/extraction/scorer.js +1 -142
  45. package/dist/extraction/similarity.js +1 -85
  46. package/dist/hooks/client-factory.js +1 -44
  47. package/dist/hooks/post-tool-use.js +1 -470
  48. package/dist/hooks/pre-compact.js +1 -209
  49. package/dist/hooks/session-end.d.ts +1 -0
  50. package/dist/hooks/session-end.js +1 -623
  51. package/dist/hooks/session-start.js +1 -549
  52. package/dist/hooks/shared.js +1 -110
  53. package/dist/hooks/user-prompt-submit.js +1 -316
  54. package/dist/i18n/index.js +1 -2
  55. package/dist/i18n/messages.js +1 -150
  56. package/dist/index.js +1 -43
  57. package/dist/lifecycle/cleanup-scheduler.js +1 -137
  58. package/dist/lifecycle/cleanup.js +1 -116
  59. package/dist/lifecycle/index.js +1 -13
  60. package/dist/lifecycle/quality-scorer.js +1 -46
  61. package/dist/lifecycle/tiering.js +1 -246
  62. package/dist/llm/client.js +1 -226
  63. package/dist/llm/index.js +1 -5
  64. package/dist/proficiency/actr-engine.js +1 -106
  65. package/dist/proficiency/detection.js +1 -77
  66. package/dist/proficiency/index.js +1 -9
  67. package/dist/proficiency/tracker.js +1 -173
  68. package/dist/proficiency/types.js +1 -8
  69. package/dist/providers/adapters.js +1 -140
  70. package/dist/providers/detector.js +1 -57
  71. package/dist/search/adaptive-router.js +1 -93
  72. package/dist/search/index.js +1 -9
  73. package/dist/search/ranker.js +1 -171
  74. package/dist/search/reranker.js +1 -155
  75. package/dist/session/parser.js +1 -130
  76. package/dist/skill/evaluator.js +1 -509
  77. package/dist/skill/index.js +1 -7
  78. package/dist/skill/types.js +1 -7
  79. package/dist/sync/client.d.ts +1 -0
  80. package/dist/sync/client.js +1 -597
  81. package/dist/sync/encryption.js +1 -203
  82. package/dist/sync/index.js +1 -12
  83. package/dist/sync/queue.js +1 -199
  84. package/dist/sync/scheduler.js +1 -140
  85. package/dist/sync/synchronizer.js +1 -241
  86. package/dist/sync/team-synchronizer.js +1 -204
  87. package/dist/sync/vector-clock.js +1 -70
  88. package/dist/types/index.d.ts +2 -1
  89. package/dist/types/index.js +1 -131
  90. package/dist/utils/keychain.js +1 -170
  91. package/dist/utils/logger.js +1 -128
  92. package/package.json +14 -10
  93. package/dist/a2a/client.d.ts.map +0 -1
  94. package/dist/a2a/client.js.map +0 -1
  95. package/dist/a2a/discovery.d.ts.map +0 -1
  96. package/dist/a2a/discovery.js.map +0 -1
  97. package/dist/a2a/index.d.ts.map +0 -1
  98. package/dist/a2a/index.js.map +0 -1
  99. package/dist/a2a/types.d.ts.map +0 -1
  100. package/dist/a2a/types.js.map +0 -1
  101. package/dist/adapters/anthropic.d.ts.map +0 -1
  102. package/dist/adapters/anthropic.js.map +0 -1
  103. package/dist/chunking/chunker.d.ts.map +0 -1
  104. package/dist/chunking/chunker.js.map +0 -1
  105. package/dist/claude/sync.d.ts.map +0 -1
  106. package/dist/claude/sync.js.map +0 -1
  107. package/dist/cli/commands/add.d.ts.map +0 -1
  108. package/dist/cli/commands/add.js.map +0 -1
  109. package/dist/cli/commands/claude-sync.d.ts.map +0 -1
  110. package/dist/cli/commands/claude-sync.js.map +0 -1
  111. package/dist/cli/commands/cleanup.d.ts.map +0 -1
  112. package/dist/cli/commands/cleanup.js.map +0 -1
  113. package/dist/cli/commands/config.d.ts.map +0 -1
  114. package/dist/cli/commands/config.js.map +0 -1
  115. package/dist/cli/commands/edit.d.ts.map +0 -1
  116. package/dist/cli/commands/edit.js.map +0 -1
  117. package/dist/cli/commands/embed.d.ts.map +0 -1
  118. package/dist/cli/commands/embed.js.map +0 -1
  119. package/dist/cli/commands/extract.d.ts.map +0 -1
  120. package/dist/cli/commands/extract.js.map +0 -1
  121. package/dist/cli/commands/health.d.ts.map +0 -1
  122. package/dist/cli/commands/health.js.map +0 -1
  123. package/dist/cli/commands/list.d.ts.map +0 -1
  124. package/dist/cli/commands/list.js.map +0 -1
  125. package/dist/cli/commands/migrate-chunks.d.ts.map +0 -1
  126. package/dist/cli/commands/migrate-chunks.js.map +0 -1
  127. package/dist/cli/commands/migrate-file-refs.d.ts.map +0 -1
  128. package/dist/cli/commands/migrate-file-refs.js.map +0 -1
  129. package/dist/cli/commands/proficiency.d.ts.map +0 -1
  130. package/dist/cli/commands/proficiency.js.map +0 -1
  131. package/dist/cli/commands/rm.d.ts.map +0 -1
  132. package/dist/cli/commands/rm.js.map +0 -1
  133. package/dist/cli/commands/search.d.ts.map +0 -1
  134. package/dist/cli/commands/search.js.map +0 -1
  135. package/dist/cli/commands/setup-wizard.d.ts.map +0 -1
  136. package/dist/cli/commands/setup-wizard.js.map +0 -1
  137. package/dist/cli/commands/setup.d.ts.map +0 -1
  138. package/dist/cli/commands/setup.js.map +0 -1
  139. package/dist/cli/commands/skill.d.ts.map +0 -1
  140. package/dist/cli/commands/skill.js.map +0 -1
  141. package/dist/cli/commands/status.d.ts.map +0 -1
  142. package/dist/cli/commands/status.js.map +0 -1
  143. package/dist/cli/commands/sync.d.ts.map +0 -1
  144. package/dist/cli/commands/sync.js.map +0 -1
  145. package/dist/cli/commands/team.d.ts.map +0 -1
  146. package/dist/cli/commands/team.js.map +0 -1
  147. package/dist/cli/index.d.ts.map +0 -1
  148. package/dist/cli/index.js.map +0 -1
  149. package/dist/config/manager.d.ts.map +0 -1
  150. package/dist/config/manager.js.map +0 -1
  151. package/dist/db/database.d.ts.map +0 -1
  152. package/dist/db/database.js.map +0 -1
  153. package/dist/embedding/e5-provider.d.ts.map +0 -1
  154. package/dist/embedding/e5-provider.js.map +0 -1
  155. package/dist/embedding/index.d.ts.map +0 -1
  156. package/dist/embedding/index.js.map +0 -1
  157. package/dist/embedding/local-provider.d.ts.map +0 -1
  158. package/dist/embedding/local-provider.js.map +0 -1
  159. package/dist/embedding/openai-provider.d.ts.map +0 -1
  160. package/dist/embedding/openai-provider.js.map +0 -1
  161. package/dist/embedding/quantization.d.ts.map +0 -1
  162. package/dist/embedding/quantization.js.map +0 -1
  163. package/dist/extraction/dedup-manager.d.ts.map +0 -1
  164. package/dist/extraction/dedup-manager.js.map +0 -1
  165. package/dist/extraction/emotion-filter.d.ts.map +0 -1
  166. package/dist/extraction/emotion-filter.js.map +0 -1
  167. package/dist/extraction/extractor.d.ts.map +0 -1
  168. package/dist/extraction/extractor.js.map +0 -1
  169. package/dist/extraction/file-reference.d.ts.map +0 -1
  170. package/dist/extraction/file-reference.js.map +0 -1
  171. package/dist/extraction/filter.d.ts.map +0 -1
  172. package/dist/extraction/filter.js.map +0 -1
  173. package/dist/extraction/scorer.d.ts.map +0 -1
  174. package/dist/extraction/scorer.js.map +0 -1
  175. package/dist/extraction/similarity.d.ts.map +0 -1
  176. package/dist/extraction/similarity.js.map +0 -1
  177. package/dist/hooks/client-factory.d.ts.map +0 -1
  178. package/dist/hooks/client-factory.js.map +0 -1
  179. package/dist/hooks/post-tool-use.d.ts.map +0 -1
  180. package/dist/hooks/post-tool-use.js.map +0 -1
  181. package/dist/hooks/pre-compact.d.ts.map +0 -1
  182. package/dist/hooks/pre-compact.js.map +0 -1
  183. package/dist/hooks/session-end.d.ts.map +0 -1
  184. package/dist/hooks/session-end.js.map +0 -1
  185. package/dist/hooks/session-start.d.ts.map +0 -1
  186. package/dist/hooks/session-start.js.map +0 -1
  187. package/dist/hooks/shared.d.ts.map +0 -1
  188. package/dist/hooks/shared.js.map +0 -1
  189. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  190. package/dist/hooks/user-prompt-submit.js.map +0 -1
  191. package/dist/i18n/index.d.ts.map +0 -1
  192. package/dist/i18n/index.js.map +0 -1
  193. package/dist/i18n/messages.d.ts.map +0 -1
  194. package/dist/i18n/messages.js.map +0 -1
  195. package/dist/index.d.ts.map +0 -1
  196. package/dist/index.js.map +0 -1
  197. package/dist/lifecycle/cleanup-scheduler.d.ts.map +0 -1
  198. package/dist/lifecycle/cleanup-scheduler.js.map +0 -1
  199. package/dist/lifecycle/cleanup.d.ts.map +0 -1
  200. package/dist/lifecycle/cleanup.js.map +0 -1
  201. package/dist/lifecycle/index.d.ts.map +0 -1
  202. package/dist/lifecycle/index.js.map +0 -1
  203. package/dist/lifecycle/quality-scorer.d.ts.map +0 -1
  204. package/dist/lifecycle/quality-scorer.js.map +0 -1
  205. package/dist/lifecycle/tiering.d.ts.map +0 -1
  206. package/dist/lifecycle/tiering.js.map +0 -1
  207. package/dist/llm/client.d.ts.map +0 -1
  208. package/dist/llm/client.js.map +0 -1
  209. package/dist/llm/index.d.ts.map +0 -1
  210. package/dist/llm/index.js.map +0 -1
  211. package/dist/proficiency/actr-engine.d.ts.map +0 -1
  212. package/dist/proficiency/actr-engine.js.map +0 -1
  213. package/dist/proficiency/detection.d.ts.map +0 -1
  214. package/dist/proficiency/detection.js.map +0 -1
  215. package/dist/proficiency/index.d.ts.map +0 -1
  216. package/dist/proficiency/index.js.map +0 -1
  217. package/dist/proficiency/tracker.d.ts.map +0 -1
  218. package/dist/proficiency/tracker.js.map +0 -1
  219. package/dist/proficiency/types.d.ts.map +0 -1
  220. package/dist/proficiency/types.js.map +0 -1
  221. package/dist/providers/adapters.d.ts.map +0 -1
  222. package/dist/providers/adapters.js.map +0 -1
  223. package/dist/providers/detector.d.ts.map +0 -1
  224. package/dist/providers/detector.js.map +0 -1
  225. package/dist/search/adaptive-router.d.ts.map +0 -1
  226. package/dist/search/adaptive-router.js.map +0 -1
  227. package/dist/search/index.d.ts.map +0 -1
  228. package/dist/search/index.js.map +0 -1
  229. package/dist/search/ranker.d.ts.map +0 -1
  230. package/dist/search/ranker.js.map +0 -1
  231. package/dist/search/reranker.d.ts.map +0 -1
  232. package/dist/search/reranker.js.map +0 -1
  233. package/dist/session/parser.d.ts.map +0 -1
  234. package/dist/session/parser.js.map +0 -1
  235. package/dist/skill/evaluator.d.ts.map +0 -1
  236. package/dist/skill/evaluator.js.map +0 -1
  237. package/dist/skill/index.d.ts.map +0 -1
  238. package/dist/skill/index.js.map +0 -1
  239. package/dist/skill/types.d.ts.map +0 -1
  240. package/dist/skill/types.js.map +0 -1
  241. package/dist/sync/client.d.ts.map +0 -1
  242. package/dist/sync/client.js.map +0 -1
  243. package/dist/sync/encryption.d.ts.map +0 -1
  244. package/dist/sync/encryption.js.map +0 -1
  245. package/dist/sync/index.d.ts.map +0 -1
  246. package/dist/sync/index.js.map +0 -1
  247. package/dist/sync/queue.d.ts.map +0 -1
  248. package/dist/sync/queue.js.map +0 -1
  249. package/dist/sync/scheduler.d.ts.map +0 -1
  250. package/dist/sync/scheduler.js.map +0 -1
  251. package/dist/sync/synchronizer.d.ts.map +0 -1
  252. package/dist/sync/synchronizer.js.map +0 -1
  253. package/dist/sync/team-synchronizer.d.ts.map +0 -1
  254. package/dist/sync/team-synchronizer.js.map +0 -1
  255. package/dist/sync/vector-clock.d.ts.map +0 -1
  256. package/dist/sync/vector-clock.js.map +0 -1
  257. package/dist/types/index.d.ts.map +0 -1
  258. package/dist/types/index.js.map +0 -1
  259. package/dist/utils/keychain.d.ts.map +0 -1
  260. package/dist/utils/keychain.js.map +0 -1
  261. package/dist/utils/logger.d.ts.map +0 -1
  262. package/dist/utils/logger.js.map +0 -1
@@ -1,105 +1 @@
1
- /**
2
- * Health Check Command
3
- *
4
- * DB, Config, Logs 상태를 확인합니다.
5
- */
6
- import { Command } from 'commander';
7
- import chalk from 'chalk';
8
- import { existsSync, statSync, readFileSync } from 'node:fs';
9
- import { join } from 'node:path';
10
- import { homedir } from 'node:os';
11
- import { getConfigManager } from '../../config/manager.js';
12
- import { MemoryDatabase } from '../../db/database.js';
13
- function resolvePath(p) {
14
- if (p.startsWith('~')) {
15
- return p.replace('~', homedir());
16
- }
17
- return p;
18
- }
19
- function formatSize(bytes) {
20
- const mb = bytes / (1024 * 1024);
21
- return `${mb.toFixed(1)} MB`;
22
- }
23
- export function healthCommand() {
24
- return new Command('health')
25
- .description('Check A2A Memory system health')
26
- .action(async () => {
27
- console.log(chalk.cyan.bold('\n📊 A2A Memory Health Check\n'));
28
- const configManager = getConfigManager();
29
- const config = configManager.load();
30
- // DB Health
31
- console.log(chalk.bold('DB:'));
32
- const dbPath = resolvePath(config.db.path);
33
- if (!existsSync(dbPath)) {
34
- console.log(` Path: ${dbPath}`);
35
- console.log(` ${chalk.red('✗')} Not initialized`);
36
- }
37
- else {
38
- const dbStats = statSync(dbPath);
39
- console.log(` Path: ${dbPath}`);
40
- console.log(` Size: ${formatSize(dbStats.size)}`);
41
- // DB Integrity Check
42
- try {
43
- const db = new MemoryDatabase(config.db.path);
44
- const isOk = db.getIntegrityStatus();
45
- console.log(` Integrity: ${isOk ? chalk.green('✅ OK') : chalk.red('❌ FAILED')}`);
46
- // Memory Count
47
- const memories = db.listMemories({ limit: 999999 });
48
- console.log(` Memories: ${memories.length}`);
49
- // Pending Sync Count
50
- const pendingCount = db.getPendingSyncCount();
51
- console.log(` Pending sync: ${pendingCount}`);
52
- db.close();
53
- }
54
- catch (err) {
55
- console.log(` ${chalk.red('✗')} Error checking DB: ${err instanceof Error ? err.message : String(err)}`);
56
- }
57
- }
58
- // Config Health
59
- console.log(chalk.bold('\nConfig:'));
60
- console.log(` Mode: ${config.mode}`);
61
- console.log(` Auto-capture: ${config.autoCapture.enabled ? chalk.green('enabled') : chalk.gray('disabled')}`);
62
- console.log(` Auto-inject: ${config.autoInject.enabled ? chalk.green('enabled') : chalk.gray('disabled')}`);
63
- console.log(` Embedding: ${config.embedding?.provider} (${config.embedding?.dimensions}D)`);
64
- // Logs Health
65
- console.log(chalk.bold('\nLogs:'));
66
- if (!config.logging?.enabled) {
67
- console.log(` ${chalk.gray('Logging disabled')}`);
68
- }
69
- else {
70
- const logPath = join(resolvePath(config.logging.outputDir), 'hooks.log');
71
- if (!existsSync(logPath)) {
72
- console.log(` Path: ${logPath}`);
73
- console.log(` ${chalk.gray('No logs yet')}`);
74
- }
75
- else {
76
- const logStats = statSync(logPath);
77
- console.log(` Path: ${logPath}`);
78
- console.log(` Size: ${formatSize(logStats.size)}`);
79
- // Recent Errors Count (last 24h)
80
- try {
81
- const content = readFileSync(logPath, 'utf-8');
82
- const lines = content.split('\n').filter(Boolean);
83
- const now = Date.now();
84
- const oneDayAgo = now - 24 * 60 * 60 * 1000;
85
- const recentErrors = lines.filter(line => {
86
- try {
87
- const parsed = JSON.parse(line);
88
- const timestamp = new Date(parsed.ts).getTime();
89
- return parsed.level === 'error' && timestamp >= oneDayAgo;
90
- }
91
- catch {
92
- return false;
93
- }
94
- }).length;
95
- console.log(` Recent errors: ${recentErrors} (last 24h)`);
96
- }
97
- catch (err) {
98
- console.log(` ${chalk.yellow('⚠')} Error reading logs: ${err instanceof Error ? err.message : String(err)}`);
99
- }
100
- }
101
- }
102
- console.log('');
103
- });
104
- }
105
- //# sourceMappingURL=health.js.map
1
+ (function(_0x5b0200,_0x3eeba9){function _0x276a55(_0x3235e5,_0x2ef63c){return _0x3a39(_0x3235e5- -0x185,_0x2ef63c);}const _0x746314=_0x5b0200();function _0x4e2ecc(_0xb851b0,_0x596c29){return _0x3a39(_0x596c29-0x31e,_0xb851b0);}while(!![]){try{const _0x3f49be=-parseInt(_0x276a55(0xb5,0xb5))/0x1+-parseInt(_0x4e2ecc(0x525,0x501))/0x2*(-parseInt(_0x4e2ecc(0x4e1,0x50a))/0x3)+parseInt(_0x276a55(0x8f,0x6e))/0x4*(-parseInt(_0x276a55(0x8d,0xb2))/0x5)+-parseInt(_0x4e2ecc(0x548,0x519))/0x6*(-parseInt(_0x4e2ecc(0x522,0x4f6))/0x7)+parseInt(_0x4e2ecc(0x574,0x543))/0x8*(parseInt(_0x4e2ecc(0x500,0x535))/0x9)+parseInt(_0x276a55(0x69,0x83))/0xa+-parseInt(_0x276a55(0x57,0x22))/0xb;if(_0x3f49be===_0x3eeba9)break;else _0x746314['push'](_0x746314['shift']());}catch(_0x1ea3c9){_0x746314['push'](_0x746314['shift']());}}}(_0x52a1,0xb1b80));function _0x52a1(){const _0x2372ec=['yxj4suW','CNjVCNm6ia','zw1IzwrKAw5N','ie5VDcbPBML0Aq','ChjVDMLKzxi','CgfYC2u','icbtAxPLoIa','uhnHC0y','rM5UAwS','y2XVC2u','mtiZotK5ne1vDfPhDG','ywn0Aw9U','BM93','thbxvKO','Bg9N','twvTB3j5ihn5CW','tg9Nz2LUzYbKAq','DhLtDgf0Dxm','icbfBwjLzgrPBG','icbqyxrOoIa','4P2miezbsuXfra','mtrHruLnBgC','rufwBee','4PYfie9l','zgvZy3jPChrPBW','mtC2nZeYntHHBw9HBg4','BgvUz3rO','Bw9Kzq','vg9er1q','C3rHCNrZv2L0Aa','z3jLzw4','EhDOEeq','ndKZmtjHEfj3teq','y2TPBMCGrei6ia','AwHHwNy','C3LUyZOG','vwftuxC','C2L6zq','yNr0EhG','Dg9gAxHLza','zLf5EuW','otzSsw1pEM0','yxv0B0nHChr1CG','otq3mJu4mfLwzMLLrq','B3v0Chv0rgLY','icbbDxrVlwLUAG','qwjRC0G','zw5HyMXLza','tM8GBg9NCYb5zq','DwTQBgm','Bg9Hza','icHSyxn0idi0Aa','DejVwum','s2nwBfO','r1f6qvi','zZOG','ndi5ntaWnfbRww5HDW','wwjUDw0','DgvTigHLywX0Aa','q2HLy2SGqtjbia','BwvZC2fNzq','ievYCM9YihjLyq','t1PrzMq','zwn0oIa','zMLSDgvY','wLj4BuC','zxjYB3i','z3jHEq','icbqzw5KAw5Nia','AKzhtK4','icbjBNrLz3jPDa','zgLUzYbSB2DZoG','ievYCM9YignOzq','u0HTEKK','Bg9Nz2LUzW','DNLwugK','cKXVz3m6','tw5iCMC','AMjrzxq','mtm0mZvhq1rgtxC','u3LUy0nVDw50','odGWz0HNqvPJ','Ehnkzwe','vvfNvKG','ndvnBKfeCwi','icbnzw1VCMLLCW','s2ffu28','wwvkuKm','cKnVBMzPzZO','CMvWBgfJzq','Cgf0Aa','z2v0sw50zwDYAq','EwvSBg93','z2v0vgLTzq','ywvZD0O','Ag9VA3mUBg9N','zgLTzw5ZAw9UCW','yM9Sza','mtu5nJiWogTuwfzsCa','qu9MBvG','icbnB2rLoIa','CMvK','uMT3yK4','BgLZDe1LBw9YAq','EtOG','yxv0B0LUAMvJDa','C3bSAxq','zgLZywjSzwq','cVcFK4OGqtjbie1LBq'];_0x52a1=function(){return _0x2372ec;};return _0x52a1();}import{Command}from'commander';import _0x372fe0 from'chalk';import{existsSync,statSync,readFileSync}from'node:fs';import{join}from'node:path';import{homedir}from'node:os';function _0x3a39(_0x4b46cb,_0x120eab){_0x4b46cb=_0x4b46cb-0x1d6;const _0x52a1b9=_0x52a1();let _0x3a39dc=_0x52a1b9[_0x4b46cb];if(_0x3a39['HIfTOz']===undefined){var _0x377d72=function(_0x241e3b){const _0x3552d1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3000a5='',_0x56875e='';for(let _0x453708=0x0,_0x3c56b0,_0x2bf9a6,_0x6db9b9=0x0;_0x2bf9a6=_0x241e3b['charAt'](_0x6db9b9++);~_0x2bf9a6&&(_0x3c56b0=_0x453708%0x4?_0x3c56b0*0x40+_0x2bf9a6:_0x2bf9a6,_0x453708++%0x4)?_0x3000a5+=String['fromCharCode'](0xff&_0x3c56b0>>(-0x2*_0x453708&0x6)):0x0){_0x2bf9a6=_0x3552d1['indexOf'](_0x2bf9a6);}for(let _0x318bb3=0x0,_0x26c79f=_0x3000a5['length'];_0x318bb3<_0x26c79f;_0x318bb3++){_0x56875e+='%'+('00'+_0x3000a5['charCodeAt'](_0x318bb3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56875e);};_0x3a39['fbyISQ']=_0x377d72,_0x3a39['pDYsFj']={},_0x3a39['HIfTOz']=!![];}const _0x16626e=_0x52a1b9[0x0],_0x239c0c=_0x4b46cb+_0x16626e,_0x4909f0=_0x3a39['pDYsFj'][_0x239c0c];return!_0x4909f0?(_0x3a39dc=_0x3a39['fbyISQ'](_0x3a39dc),_0x3a39['pDYsFj'][_0x239c0c]=_0x3a39dc):_0x3a39dc=_0x4909f0,_0x3a39dc;}import{getConfigManager}from'../../config/manager.js';import{MemoryDatabase}from'../../db/database.js';function resolvePath(_0x2b767c){function _0xcc7ea5(_0x251e29,_0x1a3a5e){return _0x3a39(_0x1a3a5e- -0x2d3,_0x251e29);}const _0x3131d2={'jbQet':function(_0x30f66d){return _0x30f66d();}};if(_0x2b767c[_0x5720f9(0x2eb,0x2c8)]('~'))return _0x2b767c[_0xcc7ea5(-0x98,-0xb7)]('~',_0x3131d2[_0x5720f9(0x2f9,0x2f9)](homedir));function _0x5720f9(_0xc050a6,_0x392c17){return _0x3a39(_0x392c17-0xe8,_0xc050a6);}return _0x2b767c;}function formatSize(_0x101bce){const _0x260bdd={'wbCqu':function(_0x58a8b6,_0x53b8db){return _0x58a8b6/_0x53b8db;}},_0x1c22ba=_0x260bdd['wbCqu'](_0x101bce,0x400*0x400);function _0x56dd37(_0x2a4525,_0x193ef6){return _0x3a39(_0x2a4525- -0x36d,_0x193ef6);}return _0x1c22ba[_0x56dd37(-0x183,-0x1a0)](0x1)+'\x20MB';}export function healthCommand(){function _0x181c82(_0x384ff0,_0x12c2ca){return _0x3a39(_0x384ff0- -0x31b,_0x12c2ca);}const _0x276f8c={'vyVPi':_0x49be38(0x1ab,0x1cf),'Fnnik':function(_0x2746e2,_0x3d483d){return _0x2746e2===_0x3d483d;},'UaSQw':_0x49be38(0x1ed,0x1fa),'OZQfd':function(_0x3a063f,_0x689344){return _0x3a063f>=_0x689344;},'xsJea':function(_0x12c9fb,_0x40e985){return _0x12c9fb(_0x40e985);},'KcVlZ':function(_0x4e8c53,_0x1017fa){return _0x4e8c53(_0x1017fa);},'UQgVH':_0x181c82(-0x144,-0x152),'arxIL':function(_0xc73a21,_0x12834e){return _0xc73a21 instanceof _0x12834e;},'PsasF':_0x181c82(-0xec,-0xe6)+'ory\x20Health'+'\x20Check\x0a','ubIju':'DB:','tBoYC':function(_0x6ecb80,_0x36edc9){return _0x6ecb80(_0x36edc9);},'YeJRC':function(_0x100c5b,_0xe9ee4a){return _0x100c5b(_0xe9ee4a);},'aeswJ':function(_0x3b2faa,_0x20610a){return _0x3b2faa===_0x20610a;},'GQzAR':'axTjN','AbksH':_0x181c82(-0x100,-0xfa),'KaESo':_0x49be38(0x1ef,0x1e7),'LpWVJ':_0x49be38(0x236,0x223),'ihaZv':_0x49be38(0x258,0x235)+'sabled','ukjlc':function(_0x1a199d,_0x147564,_0x237436){return _0x1a199d(_0x147564,_0x237436);},'FZHAG':_0x49be38(0x20e,0x217),'MnHrg':function(_0xac2a20,_0x56b440){return _0xac2a20!==_0x56b440;},'fQyyL':_0x49be38(0x24c,0x21b),'DhUNv':function(_0x4a804d,_0x427979){return _0x4a804d!==_0x427979;},'EAVlA':_0x49be38(0x1cc,0x1f1),'xwhxD':'utf-8','ZRxmG':function(_0x250e81,_0x14dbce){return _0x250e81*_0x14dbce;},'ToDGT':_0x49be38(0x21f,0x21e),'bttxx':function(_0x33f64b,_0xd265ff){return _0x33f64b instanceof _0xd265ff;},'yonPI':'health'};function _0x49be38(_0x575a36,_0x2faa72){return _0x3a39(_0x2faa72- -0xb,_0x575a36);}return new Command(_0x276f8c['yonPI'])[_0x49be38(0x1da,0x1d0)+'n'](_0x49be38(0x1e1,0x1f3)+_0x181c82(-0xdc,-0xee)+_0x49be38(0x1f8,0x1f2))[_0x49be38(0x23f,0x230)](async()=>{console['log'](_0x372fe0['cyan'][_0x59f194(0x275,0x25d)](_0x276f8c[_0x59f194(0x288,0x289)]));const _0x17f705=getConfigManager(),_0x28923b=_0x17f705[_0x35d430(0x5b8,0x59d)]();console['log'](_0x372fe0[_0x59f194(0x275,0x292)](_0x276f8c['ubIju']));function _0x35d430(_0x16df28,_0x42cc6b){return _0x181c82(_0x42cc6b-0x6c3,_0x16df28);}const _0x552069=resolvePath(_0x28923b['db'][_0x35d430(0x591,0x5c5)]);function _0x59f194(_0x1844db,_0x5f3abf){return _0x181c82(_0x1844db-0x36c,_0x5f3abf);}if(!_0x276f8c['xsJea'](existsSync,_0x552069)){if(_0x276f8c[_0x59f194(0x289,0x263)]('xuyqj',_0x35d430(0x5cf,0x5b0))){const _0x3873c5=new _0x238e2e(_0x3c1d75['db'][_0x35d430(0x591,0x5c5)]),_0x2a710c=_0x3873c5[_0x59f194(0x26f,0x239)+_0x59f194(0x292,0x2b7)]();_0x5644bf[_0x35d430(0x61c,0x5e6)](_0x59f194(0x25a,0x273)+_0x59f194(0x27c,0x27f)+(_0x2a710c?_0x1cb3c2[_0x59f194(0x232,0x233)](_0x276f8c[_0x59f194(0x25f,0x240)]):_0x588a73[_0x35d430(0x5b1,0x5d0)](_0x35d430(0x549,0x57f))));const _0x470bc2=_0x3873c5[_0x35d430(0x5e8,0x5d2)+'es']({'limit':0xf423f});_0x584845[_0x59f194(0x28f,0x2a8)](_0x59f194(0x269,0x282)+':\x20'+_0x470bc2[_0x59f194(0x22e,0x259)]);const _0x283394=_0x3873c5['getPending'+'SyncCount']();_0x3c97b5[_0x35d430(0x5fb,0x5e6)](_0x59f194(0x258,0x23d)+'sync:\x20'+_0x283394),_0x3873c5[_0x59f194(0x28a,0x287)]();}else console['log'](_0x35d430(0x5ac,0x57e)+_0x552069),console['log']('\x20\x20'+_0x372fe0[_0x59f194(0x279,0x29f)]('✗')+(_0x59f194(0x284,0x269)+'alized'));}else{const _0x5c9f47=_0x276f8c[_0x59f194(0x248,0x24a)](statSync,_0x552069);console['log'](_0x35d430(0x590,0x57e)+_0x552069),console['log'](_0x59f194(0x287,0x2aa)+_0x276f8c[_0x35d430(0x58c,0x5c2)](formatSize,_0x5c9f47['size']));try{if(_0x276f8c[_0x59f194(0x272,0x24c)](_0x276f8c[_0x59f194(0x24a,0x228)],'axTjN')){const _0x4aa4a9=new MemoryDatabase(_0x28923b['db'][_0x59f194(0x26e,0x27a)]),_0x584b0e=_0x4aa4a9['getIntegri'+_0x59f194(0x292,0x2ad)]();console[_0x59f194(0x28f,0x2ba)](_0x35d430(0x5b5,0x5b1)+_0x35d430(0x5b5,0x5d3)+(_0x584b0e?_0x372fe0['green'](_0x276f8c['vyVPi']):_0x372fe0['red'](_0x276f8c['UQgVH'])));const _0x1d813=_0x4aa4a9['listMemori'+'es']({'limit':0xf423f});console[_0x59f194(0x28f,0x2c0)]('\x20\x20Memories'+':\x20'+_0x1d813[_0x35d430(0x5ac,0x585)]);const _0x131fbb=_0x4aa4a9['getPending'+_0x35d430(0x58f,0x5bb)]();console[_0x35d430(0x5d7,0x5e6)]('\x20\x20Pending\x20'+'sync:\x20'+_0x131fbb),_0x4aa4a9['close']();}else return![];}catch(_0x299184){console['log']('\x20\x20'+_0x372fe0[_0x59f194(0x279,0x29a)]('✗')+(_0x59f194(0x25c,0x27b)+_0x35d430(0x592,0x58c))+(_0x299184 instanceof Error?_0x299184[_0x59f194(0x250,0x256)]:_0x276f8c['tBoYC'](String,_0x299184)));}}console[_0x35d430(0x5b9,0x5e6)](_0x372fe0[_0x59f194(0x275,0x257)](_0x276f8c[_0x35d430(0x5a3,0x599)])),console[_0x35d430(0x609,0x5e6)](_0x59f194(0x278,0x246)+_0x28923b[_0x59f194(0x22f,0x263)]),console['log']('\x20\x20Auto-cap'+'ture:\x20'+(_0x28923b[_0x35d430(0x5b9,0x595)+'e']['enabled']?_0x372fe0[_0x59f194(0x232,0x255)](_0x276f8c[_0x59f194(0x26a,0x259)]):_0x372fe0[_0x59f194(0x257,0x25b)](_0x276f8c[_0x59f194(0x28e,0x283)]))),console[_0x59f194(0x28f,0x262)](_0x35d430(0x5a1,0x598)+_0x35d430(0x597,0x5aa)+(_0x28923b[_0x35d430(0x5f0,0x5d4)][_0x35d430(0x5c2,0x59a)]?_0x372fe0[_0x59f194(0x232,0x24e)](_0x276f8c[_0x35d430(0x5de,0x5c1)]):_0x372fe0[_0x59f194(0x257,0x279)](_0x59f194(0x27f,0x25c)))),console[_0x35d430(0x5bd,0x5e6)](_0x59f194(0x293,0x297)+_0x59f194(0x24b,0x262)+_0x28923b['embedding']?.[_0x35d430(0x5e0,0x5dc)]+'\x20('+_0x28923b[_0x59f194(0x283,0x27b)]?.[_0x35d430(0x5d4,0x5cb)]+'D)'),console['log'](_0x372fe0['bold'](_0x35d430(0x598,0x5b7)));if(!_0x28923b[_0x35d430(0x5ca,0x5b5)]?.['enabled'])console[_0x59f194(0x28f,0x28d)]('\x20\x20'+_0x372fe0[_0x35d430(0x57d,0x5ae)](_0x276f8c[_0x35d430(0x5bd,0x58d)]));else{const _0x1e3656=_0x276f8c['ukjlc'](join,_0x276f8c[_0x35d430(0x582,0x5a0)](resolvePath,_0x28923b[_0x59f194(0x25e,0x22f)][_0x35d430(0x599,0x597)]),_0x276f8c['FZHAG']);if(!_0x276f8c['KcVlZ'](existsSync,_0x1e3656))_0x276f8c[_0x59f194(0x261,0x261)](_0x276f8c[_0x59f194(0x23c,0x22f)],_0x35d430(0x580,0x5b4))?(console[_0x35d430(0x5b9,0x5e6)](_0x35d430(0x567,0x57e)+_0x1e3656),console[_0x59f194(0x28f,0x25e)]('\x20\x20'+_0x372fe0[_0x35d430(0x57a,0x5ae)](_0x59f194(0x244,0x24c)+'t'))):(_0x4d2242[_0x59f194(0x28f,0x2a3)](_0x35d430(0x5aa,0x57e)+_0x25e41f),_0x35fa07[_0x35d430(0x5eb,0x5e6)]('\x20\x20'+_0x4b5bdc['gray'](_0x59f194(0x244,0x260)+'t')));else{const _0x267baf=statSync(_0x1e3656);console[_0x35d430(0x613,0x5e6)](_0x35d430(0x582,0x57e)+_0x1e3656),console[_0x59f194(0x28f,0x294)]('\x20\x20Size:\x20'+formatSize(_0x267baf['size']));try{if(_0x276f8c['DhUNv'](_0x276f8c[_0x35d430(0x592,0x581)],'jirMD')){const _0x596319=_0x276f8c[_0x59f194(0x245,0x257)](readFileSync,_0x1e3656,_0x276f8c[_0x35d430(0x5ac,0x58a)]),_0x51d8e2=_0x596319[_0x59f194(0x27e,0x24b)]('\x0a')[_0x35d430(0x5dd,0x5ab)](Boolean),_0x3c1d72=Date[_0x59f194(0x28d,0x2a6)](),_0x353289=_0x3c1d72-_0x276f8c[_0x35d430(0x5e1,0x5ac)](_0x276f8c[_0x59f194(0x255,0x259)](_0x276f8c[_0x35d430(0x5b9,0x5ac)](0x18,0x3c),0x3c),0x3e8),_0x110b62=_0x51d8e2['filter'](_0x39d13a=>{function _0x242273(_0x2b6a60,_0x5a90cc){return _0x35d430(_0x5a90cc,_0x2b6a60- -0x23);}function _0xe2a046(_0x58759e,_0x458606){return _0x35d430(_0x58759e,_0x458606- -0x60e);}try{const _0x132c24=JSON[_0xe2a046(-0x59,-0x31)](_0x39d13a),_0xa6b70f=new Date(_0x132c24['ts'])[_0x242273(0x5a5,0x5a0)]();return _0x276f8c['Fnnik'](_0x132c24['level'],_0x276f8c[_0x242273(0x56c,0x568)])&&_0x276f8c[_0xe2a046(-0x7d,-0x65)](_0xa6b70f,_0x353289);}catch{return![];}})[_0x35d430(0x569,0x585)];console[_0x59f194(0x28f,0x262)]('\x20\x20Recent\x20e'+_0x35d430(0x610,0x5d9)+_0x110b62+(_0x35d430(0x5ad,0x59e)+')'));}else{const _0x36bc95=_0x276f8c[_0x59f194(0x266,0x264)](_0x3a35ae,_0x56a556);_0x3df50c[_0x35d430(0x5d2,0x5e6)](_0x35d430(0x5ac,0x57e)+_0xf7bf18),_0xe6c4d0[_0x35d430(0x5e7,0x5e6)](_0x35d430(0x5f7,0x5de)+_0x276f8c[_0x59f194(0x249,0x273)](_0x2de84e,_0x36bc95[_0x35d430(0x577,0x590)]));try{const _0x3a68ee=new _0x5ba87e(_0x31d88f['db']['path']),_0x9ba4a4=_0x3a68ee[_0x59f194(0x26f,0x272)+_0x35d430(0x600,0x5e9)]();_0x134e64[_0x59f194(0x28f,0x299)](_0x59f194(0x25a,0x23e)+_0x35d430(0x5f1,0x5d3)+(_0x9ba4a4?_0x3a631c[_0x59f194(0x232,0x258)](_0x59f194(0x22b,0x231)):_0x440ef4[_0x35d430(0x5e4,0x5d0)](_0x276f8c[_0x59f194(0x267,0x23d)])));const _0xcdb67d=_0x3a68ee[_0x35d430(0x5cd,0x5d2)+'es']({'limit':0xf423f});_0x2991f6[_0x59f194(0x28f,0x2bb)](_0x35d430(0x5ec,0x5c0)+':\x20'+_0xcdb67d['length']);const _0x47a0a2=_0x3a68ee['getPending'+_0x35d430(0x5d0,0x5bb)]();_0x3db2d6[_0x35d430(0x5eb,0x5e6)](_0x35d430(0x5ab,0x5af)+_0x59f194(0x237,0x26b)+_0x47a0a2),_0x3a68ee[_0x35d430(0x5b7,0x5e1)]();}catch(_0x2c934e){_0x5ea1a9[_0x59f194(0x28f,0x2c6)]('\x20\x20'+_0x14b288[_0x35d430(0x5ce,0x5d0)]('✗')+('\x20Error\x20che'+_0x59f194(0x235,0x220))+(_0x276f8c[_0x59f194(0x281,0x267)](_0x2c934e,_0x4a69bb)?_0x2c934e['message']:_0x8e8f73(_0x2c934e)));}}}catch(_0x4e99eb){if(_0x59f194(0x27a,0x29c)!==_0x276f8c[_0x59f194(0x230,0x22b)]){const _0xfad952=_0x13a6da/(0x400*0x400);return _0xfad952[_0x35d430(0x59f,0x592)](0x1)+'\x20MB';}else console[_0x59f194(0x28f,0x28b)]('\x20\x20'+_0x372fe0[_0x59f194(0x270,0x240)]('⚠')+(_0x59f194(0x251,0x24d)+_0x35d430(0x5d3,0x5b2)+'\x20')+(_0x276f8c[_0x35d430(0x5bd,0x591)](_0x4e99eb,Error)?_0x4e99eb['message']:String(_0x4e99eb)));}}}console['log']('');});}
@@ -1,49 +1 @@
1
- /**
2
- * List Command
3
- */
4
- import { Command } from 'commander';
5
- import { ConfigManager } from '../../config/manager.js';
6
- import { MemoryDatabase } from '../../db/database.js';
7
- export function listCommand() {
8
- return new Command('list')
9
- .description('List memories')
10
- .option('-l, --limit <n>', 'Max results', '20')
11
- .option('-o, --offset <n>', 'Offset', '0')
12
- .option('-c, --category <category>', 'Filter by category')
13
- .option('-t, --tier <tier>', 'Filter by tier')
14
- .option('-p, --project <path>', 'Filter by project path')
15
- .action((options) => {
16
- const config = new ConfigManager().load();
17
- const db = new MemoryDatabase(config.db.path);
18
- try {
19
- db.initialize();
20
- const memories = db.listMemories({
21
- limit: parseInt(options.limit, 10),
22
- offset: parseInt(options.offset, 10),
23
- category: options.category,
24
- tier: options.tier,
25
- projectPath: options.project,
26
- });
27
- const stats = db.getStats();
28
- const totalForFilter = options.category
29
- ? (stats.categoryCounts[options.category] ?? 0)
30
- : stats.totalMemories;
31
- if (memories.length === 0) {
32
- console.log('No memories found.');
33
- return;
34
- }
35
- const offset = parseInt(options.offset, 10);
36
- console.log(`Showing ${offset + 1}-${offset + memories.length} of ${totalForFilter} memories:\n`);
37
- for (const m of memories) {
38
- console.log(`[${m.category}] ${m.id.slice(0, 8)}... | ${m.tier} | ${m.tags.join(', ')}`);
39
- console.log(` ${m.content.slice(0, 120)}${m.content.length > 120 ? '...' : ''}`);
40
- console.log(` Created: ${m.createdAt} | Access: ${m.accessCount}`);
41
- console.log('');
42
- }
43
- }
44
- finally {
45
- db.close();
46
- }
47
- });
48
- }
49
- //# sourceMappingURL=list.js.map
1
+ (function(_0x499b48,_0x2b2d69){function _0x251fde(_0x28aadc,_0x4bac3a){return _0x3335(_0x4bac3a- -0x57,_0x28aadc);}const _0x59a31d=_0x499b48();function _0x3fe692(_0x2892ad,_0x36738b){return _0x3335(_0x2892ad- -0x16c,_0x36738b);}while(!![]){try{const _0x2e8eea=-parseInt(_0x3fe692(0x99,0xa3))/0x1+-parseInt(_0x251fde(0x1c3,0x1be))/0x2+parseInt(_0x251fde(0x1c3,0x1c8))/0x3*(-parseInt(_0x3fe692(0xa3,0x92))/0x4)+-parseInt(_0x251fde(0x1d1,0x1b9))/0x5+parseInt(_0x3fe692(0xa2,0x8c))/0x6+parseInt(_0x3fe692(0xa6,0xb9))/0x7+-parseInt(_0x251fde(0x1a2,0x1ad))/0x8*(-parseInt(_0x251fde(0x1a1,0x198))/0x9);if(_0x2e8eea===_0x2b2d69)break;else _0x59a31d['push'](_0x59a31d['shift']());}catch(_0x2803e4){_0x59a31d['push'](_0x59a31d['shift']());}}}(_0x3da5,0xa5cdf));import{Command}from'commander';import{ConfigManager}from'../../config/manager.js';import{MemoryDatabase}from'../../db/database.js';function _0x3da5(){const _0x55e1e5=['lI4UihWG','Aw5PDgLHBgL6zq','Bg9N','y2XVC2u','y29UDgvUDa','BgLTAxq','ig9Mia','C2XPy2u','nZy0ode4mK5fDgDSAq','mtqWuuDfsfnh','mZy2odiYnwrjvgD4Da','Dca8BJ4','odKZmZe3nKzizwfyyG','AwvZ','B3b0Aw9U','mta3mZa2nNPwAw1ruG','Axnoyu4','ChjVAMvJDcbWyq','CYbMB3vUzc4','u2HVD2LUzYa','qKLLwhm','wwLjEhm','BgLZDe1LBw9YAq','lI4U','z29YEsa8y2f0zq','nZe1nZfhA05YzgK','idX0AwvYpG','y291BNrnzw1VCG','rMLSDgvYigj5ia','lw8Sic0TB2zMCW','tM8GBwvTB3jPzq','uLjOBMq','mJK3nJe0n1DKtKXQDG','ig1LBw9YAwvZoG','B2zMC2v0','BwvpAuO','BgvUz3rO','y3jLyxrLzef0','Bg9Hza','lwmSic0Ty2f0zq','lwWSic0TBgLTAq','zxqGpg4+','ihWG','qwzIC0K','y2f0zwDVCNK','twf4ihjLC3vSDa','ChjVAMvJDa','DgLLCG','z29YEt4','BgLZDa','ywn0Aw9U','AM9PBG','DgfNCW','ogTKwNvqra','otCYndbHC2rftuu'];_0x3da5=function(){return _0x55e1e5;};return _0x3da5();}function _0x3335(_0x9d0298,_0x27aabb){_0x9d0298=_0x9d0298-0x1ed;const _0x3da500=_0x3da5();let _0x3335b3=_0x3da500[_0x9d0298];if(_0x3335['zdpnrv']===undefined){var _0x58730d=function(_0x24ae86){const _0x11a7c1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e09a7='',_0x244a8e='';for(let _0x5e9c87=0x0,_0x2136e9,_0x2583d7,_0x17e713=0x0;_0x2583d7=_0x24ae86['charAt'](_0x17e713++);~_0x2583d7&&(_0x2136e9=_0x5e9c87%0x4?_0x2136e9*0x40+_0x2583d7:_0x2583d7,_0x5e9c87++%0x4)?_0x4e09a7+=String['fromCharCode'](0xff&_0x2136e9>>(-0x2*_0x5e9c87&0x6)):0x0){_0x2583d7=_0x11a7c1['indexOf'](_0x2583d7);}for(let _0x1adee3=0x0,_0x5df9f1=_0x4e09a7['length'];_0x1adee3<_0x5df9f1;_0x1adee3++){_0x244a8e+='%'+('00'+_0x4e09a7['charCodeAt'](_0x1adee3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x244a8e);};_0x3335['oEZFcY']=_0x58730d,_0x3335['InTnqH']={},_0x3335['zdpnrv']=!![];}const _0x487c1d=_0x3da500[0x0],_0x192003=_0x9d0298+_0x487c1d,_0xe81610=_0x3335['InTnqH'][_0x192003];return!_0xe81610?(_0x3335b3=_0x3335['oEZFcY'](_0x3335b3),_0x3335['InTnqH'][_0x192003]=_0x3335b3):_0x3335b3=_0xe81610,_0x3335b3;}export function listCommand(){const _0x141f61={'wTCMK':function(_0x4c5a4f,_0x43676a){return _0x4c5a4f<_0x43676a;},'AfbsI':function(_0x28c52b,_0x4727e3,_0x338c11){return _0x28c52b(_0x4727e3,_0x338c11);},'JHjbm':function(_0x4227b1,_0x3169a8){return _0x4227b1===_0x3169a8;},'meOiJ':function(_0x36c46e,_0x57cc34){return _0x36c46e+_0x57cc34;},'BIeXs':_0x111c2d(0x47a,0x481),'NfLFN':_0xd520ac(0x14b,0x15f),'jgrLl':'List\x20memor'+_0x111c2d(0x470,0x461),'RRhnd':_0x111c2d(0x454,0x44d)+_0xd520ac(0x173,0x170),'ByvHc':'Offset','YiIxs':'-t,\x20--tier'+_0x111c2d(0x47d,0x488)};function _0x111c2d(_0x8f819,_0x2c23e5){return _0x3335(_0x8f819-0x25d,_0x2c23e5);}function _0xd520ac(_0x3924d2,_0x5c606e){return _0x3335(_0x5c606e- -0xa1,_0x3924d2);}return new Command(_0x141f61['NfLFN'])['descriptio'+'n'](_0x141f61['jgrLl'])[_0x111c2d(0x471,0x462)](_0x141f61[_0x111c2d(0x44b,0x448)],_0x111c2d(0x459,0x460)+'s','20')[_0xd520ac(0x16a,0x173)](_0xd520ac(0x193,0x182)+_0xd520ac(0x13d,0x157),_0x141f61['ByvHc'],'0')[_0x111c2d(0x471,0x47d)](_0x111c2d(0x453,0x442)+_0xd520ac(0x181,0x17d)+_0xd520ac(0x175,0x15e),_0xd520ac(0x17d,0x181)+_0x111c2d(0x458,0x453))[_0xd520ac(0x172,0x173)](_0x141f61[_0xd520ac(0x15f,0x17a)],_0x111c2d(0x47f,0x48d)+_0xd520ac(0x16a,0x15d))['option']('-p,\x20--proj'+'ect\x20<path>',_0x111c2d(0x47f,0x496)+_0x111c2d(0x474,0x486)+'th')[_0xd520ac(0x16e,0x160)](_0x4e955f=>{const _0x2bec0f=new ConfigManager()[_0x316ffd(-0xad,-0xb7)]();function _0x146ce3(_0x1c72af,_0x163fc8){return _0x111c2d(_0x163fc8- -0x18f,_0x1c72af);}function _0x316ffd(_0x57fadd,_0x2cce1e){return _0x111c2d(_0x2cce1e- -0x509,_0x57fadd);}const _0x235692=new MemoryDatabase(_0x2bec0f['db']['path']);try{_0x235692[_0x146ce3(0x2db,0x2d5)]();const _0xa5f64c=parseInt(_0x4e955f[_0x316ffd(-0x86,-0xa1)],0xa),_0x1f48f1=Number[_0x316ffd(-0x7b,-0x96)](_0xa5f64c)||_0x141f61['wTCMK'](_0xa5f64c,0x1)?0x14:_0xa5f64c,_0x2e678e=_0x141f61[_0x146ce3(0x2c7,0x2c8)](parseInt,_0x4e955f[_0x146ce3(0x2aa,0x2bf)],0xa),_0x3604a1=Number['isNaN'](_0x2e678e)||_0x2e678e<0x0?0x0:_0x2e678e,_0x5db821=_0x4e955f['category'],_0x4b2b24=_0x4e955f[_0x146ce3(0x2b1,0x2cc)],_0x3c4de9=_0x4e955f[_0x146ce3(0x2c7,0x2cb)],_0x5051c5=_0x235692[_0x316ffd(-0x93,-0x90)+'es']({'limit':_0x1f48f1,'offset':_0x3604a1,'category':_0x5db821,'tier':_0x4b2b24,'projectPath':_0x3c4de9}),_0x4f6a82=_0x235692[_0x316ffd(-0x9a,-0x8b)+'ies']({'category':_0x5db821,'tier':_0x4b2b24,'projectPath':_0x3c4de9});if(_0x141f61['JHjbm'](_0x5051c5[_0x146ce3(0x2b4,0x2c1)],0x0)){console[_0x146ce3(0x2dc,0x2d6)](_0x146ce3(0x2be,0x2bb)+_0x146ce3(0x2f6,0x2e6));return;}console['log'](_0x316ffd(-0x87,-0x93)+_0x141f61[_0x316ffd(-0xc9,-0xba)](_0x3604a1,0x1)+'-'+(_0x3604a1+_0x5051c5[_0x316ffd(-0xbd,-0xb9)])+_0x146ce3(0x2ea,0x2da)+_0x4f6a82+(_0x146ce3(0x2c8,0x2be)+'\x0a'));for(const _0x360420 of _0x5051c5){console[_0x316ffd(-0x8d,-0xa4)]('['+_0x360420[_0x146ce3(0x2e4,0x2c9)]+']\x20'+_0x360420['id']['slice'](0x0,0x8)+_0x316ffd(-0xad,-0xa6)+_0x360420[_0x146ce3(0x2b5,0x2cc)]+_0x146ce3(0x2b6,0x2c7)+_0x360420[_0x146ce3(0x2e1,0x2d1)][_0x146ce3(0x2be,0x2d0)](',\x20')),console['log']('\x20\x20'+_0x360420['content'][_0x316ffd(-0xb6,-0x9f)](0x0,0x78)+(_0x360420[_0x316ffd(-0xa5,-0xa2)][_0x146ce3(0x2d6,0x2c1)]>0x78?_0x141f61[_0x316ffd(-0x8d,-0x92)]:'')),console[_0x316ffd(-0xbb,-0xa4)]('\x20\x20Created:'+'\x20'+_0x360420[_0x316ffd(-0xaf,-0xb8)]+('\x20|\x20Access:'+'\x20')+_0x360420['accessCoun'+'t']),console[_0x146ce3(0x2ee,0x2d6)]('');}}finally{_0x235692[_0x146ce3(0x2de,0x2d7)]();}});}
@@ -1,205 +1 @@
1
- /**
2
- * Migrate-Chunks Command
3
- *
4
- * 레거시 claude-md-sync 메모리(독립 섹션)를 Parent-Child 구조로 마이그레이션합니다.
5
- *
6
- * 동작:
7
- * 1. claude-md-sync 태그 + section:* 태그 + parent_id=NULL인 레거시 메모리 탐색
8
- * 2. source 파일별로 그룹핑
9
- * 3. 원본 파일 읽기 → Parent 생성
10
- * 4. 섹션 재파싱 → Children 생성
11
- * 5. 레거시 메모리 삭제 (tombstone + sync 상태 보존)
12
- */
13
- import { Command } from 'commander';
14
- import chalk from 'chalk';
15
- import { existsSync, readFileSync } from 'node:fs';
16
- import { createHash } from 'node:crypto';
17
- import { ConfigManager } from '../../config/manager.js';
18
- import { MemoryDatabase } from '../../db/database.js';
19
- import { parseClaudeMd, findClaudeMd } from '../../claude/sync.js';
20
- const CLAUDE_MD_TAG = 'claude-md-sync';
21
- /**
22
- * 레거시 claude-md-sync 메모리를 탐색하여 파일별로 그룹핑
23
- */
24
- function findLegacyGroups(db, projectPath) {
25
- // claude-md-sync 태그를 가진 모든 메모리 조회
26
- const allSyncMemories = db.findMemoriesByTag(CLAUDE_MD_TAG);
27
- // 레거시 조건: parent_id=NULL + section:* 태그 보유 + source:* 태그 없음 (또는 있어도 chunk_total 없음)
28
- const legacyMemories = allSyncMemories.filter(m => !m.parentId &&
29
- !m.chunkTotal &&
30
- m.tags.some(t => t.startsWith('section:')));
31
- if (legacyMemories.length === 0)
32
- return [];
33
- // source:* 태그 기반 그룹핑
34
- const groups = new Map();
35
- for (const m of legacyMemories) {
36
- const sourceTag = m.tags.find(t => t.startsWith('source:'));
37
- const filename = sourceTag ? sourceTag.slice(7) : 'CLAUDE.md';
38
- const list = groups.get(filename) ?? [];
39
- list.push(m);
40
- groups.set(filename, list);
41
- }
42
- // 파일 경로 추정
43
- const result = [];
44
- for (const [filename, memories] of groups) {
45
- let filePath = null;
46
- // projectPath 기반 탐색
47
- if (projectPath) {
48
- const candidates = [
49
- `${projectPath}/${filename}`,
50
- `${projectPath}/.claude/${filename}`,
51
- ];
52
- filePath = candidates.find(p => existsSync(p)) ?? null;
53
- }
54
- // 기본 CLAUDE.md 탐색
55
- if (!filePath && filename === 'CLAUDE.md') {
56
- filePath = findClaudeMd(projectPath);
57
- }
58
- result.push({ filename, memories, filePath });
59
- }
60
- return result;
61
- }
62
- /**
63
- * 단일 그룹 마이그레이션 실행
64
- */
65
- function migrateGroup(db, group, options) {
66
- if (!group.filePath) {
67
- return { created: 0, deleted: 0, parentId: null };
68
- }
69
- const content = readFileSync(group.filePath, 'utf-8');
70
- const sections = parseClaudeMd(content);
71
- if (sections.length === 0) {
72
- return { created: 0, deleted: 0, parentId: null };
73
- }
74
- if (options.dryRun) {
75
- return {
76
- created: sections.length + 1, // Parent + Children
77
- deleted: group.memories.length,
78
- parentId: null,
79
- };
80
- }
81
- // sync 상태 보존 (레거시 메모리의 remoteId 수집)
82
- const syncMap = new Map();
83
- for (const m of group.memories) {
84
- const status = db.getSyncStatus(m.id);
85
- if (status?.remoteId) {
86
- const sectionTag = m.tags.find(t => t.startsWith('section:'));
87
- if (sectionTag) {
88
- syncMap.set(sectionTag, status.remoteId);
89
- }
90
- }
91
- }
92
- // 레거시 메모리 삭제 (tombstone 포함)
93
- for (const m of group.memories) {
94
- db.deleteMemory(m.id);
95
- }
96
- // Parent-Child 생성
97
- const contentHash = createHash('sha256').update(content).digest('hex').slice(0, 16);
98
- const projectPath = options.projectPath ?? process.cwd();
99
- const parentTags = [CLAUDE_MD_TAG, `source:${group.filename}`, `hash:${contentHash}`];
100
- const childInputs = sections.map((section) => {
101
- const sectionHash = createHash('sha256').update(section.content).digest('hex').slice(0, 16);
102
- return {
103
- content: `[CLAUDE.md: ${section.title}]\nSource: ${group.filename}\n\n${section.content}`,
104
- category: classifySection(section.title),
105
- tier: 'semantic',
106
- tags: [CLAUDE_MD_TAG, `section:${section.title}`, `hash:${sectionHash}`, `source:${group.filename}`],
107
- projectPath,
108
- };
109
- });
110
- const parentId = db.createMemoryWithChunks({
111
- content,
112
- category: 'project_knowledge',
113
- tier: 'semantic',
114
- tags: parentTags,
115
- projectPath,
116
- }, childInputs);
117
- // sync 상태 복원: Children에 이전 remoteId 매핑
118
- if (syncMap.size > 0) {
119
- const children = db.getChildChunks(parentId);
120
- for (const child of children) {
121
- const sectionTag = child.tags.find(t => t.startsWith('section:'));
122
- if (sectionTag && syncMap.has(sectionTag)) {
123
- db.setSyncStatus(child.id, syncMap.get(sectionTag), 'pending');
124
- }
125
- }
126
- }
127
- return {
128
- created: sections.length + 1,
129
- deleted: group.memories.length,
130
- parentId,
131
- };
132
- }
133
- /**
134
- * 섹션 제목으로 카테고리 분류 (sync.ts와 동일 로직)
135
- */
136
- function classifySection(title) {
137
- const lower = title.toLowerCase();
138
- if (lower.includes('convention') || lower.includes('규칙') || lower.includes('rule') ||
139
- lower.includes('스타일') || lower.includes('style') || lower.includes('패턴') ||
140
- lower.includes('pattern') || lower.includes('원칙'))
141
- return 'convention';
142
- if (lower.includes('결정') || lower.includes('decision') || lower.includes('선택') ||
143
- lower.includes('why') || lower.includes('이유'))
144
- return 'decision';
145
- if (lower.includes('에러') || lower.includes('error') || lower.includes('문제') ||
146
- lower.includes('trouble') || lower.includes('fix') || lower.includes('해결'))
147
- return 'error_solution';
148
- if (lower.includes('학습') || lower.includes('learning') || lower.includes('배운'))
149
- return 'learning';
150
- return 'project_knowledge';
151
- }
152
- export function migrateChunksCommand() {
153
- return new Command('migrate-chunks')
154
- .description('Migrate legacy claude-md-sync memories to Parent-Child pattern')
155
- .option('--dry-run', 'Show what would be migrated without writing')
156
- .option('-p, --project <path>', 'Project path (for CLAUDE.md lookup)')
157
- .action(async (options) => {
158
- const config = new ConfigManager().load();
159
- const db = new MemoryDatabase(config.db.path);
160
- try {
161
- db.initialize();
162
- const groups = findLegacyGroups(db, options.project);
163
- if (groups.length === 0) {
164
- console.log(chalk.green('\n✓ No legacy memories to migrate. Already using Parent-Child pattern.\n'));
165
- return;
166
- }
167
- const prefix = options.dryRun ? chalk.cyan('[DRY RUN] ') : '';
168
- console.log(chalk.bold(`\n${prefix}📦 Migrate-Chunks: Legacy → Parent-Child\n`));
169
- let totalCreated = 0;
170
- let totalDeleted = 0;
171
- for (const group of groups) {
172
- console.log(chalk.dim(`─── ${group.filename} (${group.memories.length} legacy memories) ───`));
173
- if (!group.filePath) {
174
- console.log(chalk.yellow(` ⚠️ Source file not found. Skipping.`));
175
- console.log(chalk.dim(` Use --project <path> to specify project root.\n`));
176
- continue;
177
- }
178
- console.log(chalk.dim(` Source: ${group.filePath}`));
179
- const result = migrateGroup(db, group, {
180
- dryRun: options.dryRun ?? false,
181
- projectPath: options.project,
182
- });
183
- if (result.parentId) {
184
- console.log(chalk.green(` ✓ Parent: ${result.parentId}`));
185
- }
186
- console.log(chalk.dim(` Created: ${result.created} | Deleted: ${result.deleted}\n`));
187
- totalCreated += result.created;
188
- totalDeleted += result.deleted;
189
- }
190
- console.log(chalk.bold('Summary:'));
191
- console.log(` ${chalk.green(`Created: ${totalCreated}`)} | ${chalk.red(`Deleted: ${totalDeleted}`)}`);
192
- console.log();
193
- }
194
- catch (error) {
195
- if (error instanceof Error) {
196
- console.error(chalk.red(`\n❌ Migration error: ${error.message}\n`));
197
- }
198
- process.exit(1);
199
- }
200
- finally {
201
- db.close();
202
- }
203
- });
204
- }
205
- //# sourceMappingURL=migrate-chunks.js.map
1
+ (function(_0x3b0a8c,_0xfe6290){function _0xa21ad4(_0x5152c3,_0x10b648){return _0x2763(_0x10b648-0x32f,_0x5152c3);}const _0x205a70=_0x3b0a8c();function _0x27cc6d(_0x3cbe3a,_0x171fbc){return _0x2763(_0x3cbe3a-0x35f,_0x171fbc);}while(!![]){try{const _0x3df6fa=parseInt(_0x27cc6d(0x47a,0x47e))/0x1+-parseInt(_0xa21ad4(0x3e6,0x3eb))/0x2+-parseInt(_0x27cc6d(0x420,0x45f))/0x3*(-parseInt(_0x27cc6d(0x43d,0x429))/0x4)+-parseInt(_0x27cc6d(0x414,0x3df))/0x5*(-parseInt(_0x27cc6d(0x477,0x46b))/0x6)+-parseInt(_0xa21ad4(0x3fb,0x410))/0x7+-parseInt(_0x27cc6d(0x466,0x447))/0x8*(parseInt(_0x27cc6d(0x3eb,0x3e6))/0x9)+-parseInt(_0xa21ad4(0x3ef,0x3dc))/0xa;if(_0x3df6fa===_0xfe6290)break;else _0x205a70['push'](_0x205a70['shift']());}catch(_0x1eecb5){_0x205a70['push'](_0x205a70['shift']());}}}(_0x3218,0xe0d80));import{Command}from'commander';import _0x226c32 from'chalk';function _0x15d54a(_0x354c52,_0x38ee0b){return _0x2763(_0x38ee0b- -0x36d,_0x354c52);}import{existsSync,readFileSync}from'node:fs';import{createHash}from'node:crypto';function _0x3218(){const _0xf3a1f=['uxzprwy','CMvK','Aw5N','C29Tzq','DxbKyxrL','DgvZDa','y2XHDwrLlw1Klq','CgfYzw50swq','Aw5JBhvKzxm','zhbtqKG','zwn0idXWyxrOpG','y1buwKC','r0TRuxC','BgvHCM5PBMC','zgvSzxrLza','mti4ndbkDxj2sui','zgvZy3jPChrPBW','DcbYB290lGO','B3DSzwrNzq','z2v0','y2H1BMTuB3rHBa','B24GzxjYB3i6ia','CgvUzgLUzW','cUkDJcbnAwDYyxrP','Esb1C2LUzYbqyq','zxjYB3i','z2v0u3LUy1n0yq','z2vXDgG','DMvHDNu','ls1KCNKTCNvU','C2v0u3LUy1n0yq','q0XbvurflM1K','mtmXnty4nKj2s0nPwa','q3jLyxrLzdOG','zMLSDgvY','mtq5otCWnuHHq3DeBq','lY5JBgf1zguV','ChjVAMvJDf9RBG','BgvUz3rO','B2T1CcK','mtC5mxDYqwHsua','CYb0BYbTAwDYyq','wwPAtNi','icbdCMvHDgvKoG','y29UDgvUDa','zs1Tzc1ZEw5Jia','zfHmsNy','yM9Sza','sM1HyMq','BYbqyxjLBNqTqW','rhD3AKe','u2HVDYb3Agf0ia','Awz5ihbYB2PLyW','DxrMltG','DhvZ','4Psa4Psa4Psaia','u09Yuwm','Dg9mB3DLCKnHCW','AgfZ','BwvTB3jPzxm','C2XPy2u','q2H1BMTZoIbmzq','z2v0q2HPBgrdAa','EwvSBg93','C2L6zq','v21Uuhm','ww5rs0m','icbtB3vYy2u6ia','ihbHDhrLCM4UcG','zwvcCxa','BKLvuxm','Cgf0Aa','xqPtB3vYy2u6ia','mJi3ndy4mtbNzxPTCfu','CNLxAxrOq2H1BG','zxHPDa','lxaSic0TChjVAG','zxncEvrHzW','y3DK','BwPpwxu','rxLVBee','mtvgvLLHD0G','ihWG','AwDYyxrLzcb3Aq','Agv4','y29UDMvUDgLVBG','Bg9N','zw50lunOAwXKcG','mtG0nZm2EwTRBhzZ','AKrhq3G','zML4','C2vTyw50Awm','icdINjmGugfYzw50','mtmXmJeXt0vtwNnH','sgrUEui','De1Zvg8','DgLVBG','Bw9YAwvZksdILidILia','BwvZC2fNzq','CNvSzq','DgHVDxqGD3jPDa','C291CMnLoG','DgfNCW','zMLUza','igXLz2fJEsbTzq','D291BgqGyMuGBq','ChvZAa','Ad4GDg8GC3bLyW','icbvC2uGls1WCG','z2fJEsbJBgf1za','y3LHBG','ihWGrgvSzxrLza','rgvSzxrLzdOG','z3jLzw4','zMLSzw5HBwu','A0vUqMy','Dw5RCW','DgL0Bgu','ChjVAMvJDa','y3KGBwvTB3jPzq','B2H4qwC','zgLT','mty4zujeu3Lo','AgfZAdO','twLNCMf0zsbSzq','mJCWoty4nNrYD3jbtG','cUkCKYboBYbSzwDH','Bwf0y2G','Ehjvt2i','zhj5uNvU','DhjVDwjSzq','C3rHCNrZv2L0Aa','y3jLyxrLza','ChjVAMvJDfbHDa','zgvJAxnPB24','zgLNzxn0','B2PLy3qGphbHDa','BNHxrwq','C2vJDgLVBJO','zMLSzvbHDgG','BwvTB3jPzxmGDa','icdIMQdVUi8GifnVDxjJ','C2HHmJu2','8j+tPIbnAwDYyxrLlq','ywn0Aw9U','AM9PBG','uhjVAMvJDcbWyq','C3r5Bgu'];_0x3218=function(){return _0xf3a1f;};return _0x3218();}import{ConfigManager}from'../../config/manager.js';import{MemoryDatabase}from'../../db/database.js';import{parseClaudeMd,findClaudeMd}from'../../claude/sync.js';function _0x2763(_0x1589fd,_0x2de2a2){_0x1589fd=_0x1589fd-0x8a;const _0x3218d7=_0x3218();let _0x27632d=_0x3218d7[_0x1589fd];if(_0x2763['kDFVcq']===undefined){var _0x448356=function(_0x394d9c){const _0x38eb9c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xe10bcc='',_0x34e2fb='';for(let _0x117c41=0x0,_0x3f8412,_0x3a9c37,_0x3218e9=0x0;_0x3a9c37=_0x394d9c['charAt'](_0x3218e9++);~_0x3a9c37&&(_0x3f8412=_0x117c41%0x4?_0x3f8412*0x40+_0x3a9c37:_0x3a9c37,_0x117c41++%0x4)?_0xe10bcc+=String['fromCharCode'](0xff&_0x3f8412>>(-0x2*_0x117c41&0x6)):0x0){_0x3a9c37=_0x38eb9c['indexOf'](_0x3a9c37);}for(let _0x2322df=0x0,_0x1f0976=_0xe10bcc['length'];_0x2322df<_0x1f0976;_0x2322df++){_0x34e2fb+='%'+('00'+_0xe10bcc['charCodeAt'](_0x2322df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34e2fb);};_0x2763['AfjDSE']=_0x448356,_0x2763['thsuNy']={},_0x2763['kDFVcq']=!![];}const _0xfa992a=_0x3218d7[0x0],_0x41eb4b=_0x1589fd+_0xfa992a,_0x416f78=_0x2763['thsuNy'][_0x41eb4b];return!_0x416f78?(_0x27632d=_0x2763['AfjDSE'](_0x27632d),_0x2763['thsuNy'][_0x41eb4b]=_0x27632d):_0x27632d=_0x416f78,_0x27632d;}const CLAUDE_MD_TAG=_0x15d54a(-0x2ac,-0x26f)+'sync';function findLegacyGroups(_0x188f46,_0xed43ad){const _0x2e127a={'YnQKC':function(_0x4d9df4,_0x52d45b){return _0x4d9df4===_0x52d45b;},'xrUOb':_0x130f1e(0x314,0x2cf),'Jmabd':function(_0x10f8e2,_0x5dda86){return _0x10f8e2(_0x5dda86);}},_0x2bb38e=_0x188f46['findMemori'+_0x571807(0x90,0xcc)](CLAUDE_MD_TAG),_0x3592c7=_0x2bb38e[_0x130f1e(0x389,0x3d1)](_0x5488fa=>!_0x5488fa[_0x571807(0xd7,0x11a)]&&!_0x5488fa[_0x571807(0x130,0x127)]&&_0x5488fa['tags'][_0x571807(0x15e,0x116)](_0x26b543=>_0x26b543['startsWith'](_0x130f1e(0x35d,0x33f))));if(_0x2e127a[_0x571807(0x91,0xc1)](_0x3592c7[_0x130f1e(0x2f9,0x2fc)],0x0))return[];function _0x571807(_0x2c23ff,_0x47ad59){return _0x15d54a(_0x2c23ff,_0x47ad59-0x388);}const _0x11ced4=new Map();for(const _0x24b439 of _0x3592c7){if(_0x2e127a[_0x571807(0x11e,0xff)]===_0x130f1e(0x314,0x2dd)){const _0x107b27=_0x24b439[_0x130f1e(0x339,0x33b)][_0x571807(0xeb,0xe6)](_0x23b83e=>_0x23b83e[_0x571807(0x13a,0x102)]('source:')),_0x30e618=_0x107b27?_0x107b27[_0x571807(0x96,0xbb)](0x7):_0x571807(0xf5,0x132),_0x1e2ce3=_0x11ced4[_0x571807(0x10a,0x126)](_0x30e618)??[];_0x1e2ce3[_0x571807(0xce,0xe9)](_0x24b439),_0x11ced4['set'](_0x30e618,_0x1e2ce3);}else _0x2bd55c['setSyncSta'+_0x571807(0xde,0xb5)](_0x183682['id'],_0x2b7a5b[_0x130f1e(0x37a,0x393)](_0x598c77),_0x130f1e(0x37d,0x367));}const _0x12cd10=[];function _0x130f1e(_0x26d42b,_0x2a1c28){return _0x15d54a(_0x2a1c28,_0x26d42b-0x5dc);}for(const [_0x18e523,_0x49c32c]of _0x11ced4){let _0x3193ec=null;if(_0xed43ad){const _0x2f4b4d=[_0xed43ad+'/'+_0x18e523,_0xed43ad+_0x571807(0x121,0x137)+_0x18e523];_0x3193ec=_0x2f4b4d[_0x130f1e(0x33a,0x36b)](_0x5dd54b=>existsSync(_0x5dd54b))??null;}!_0x3193ec&&_0x18e523===_0x571807(0x13d,0x132)&&(_0x3193ec=_0x2e127a[_0x571807(0xbf,0xaf)](findClaudeMd,_0xed43ad)),_0x12cd10[_0x130f1e(0x33d,0x312)]({'filename':_0x18e523,'memories':_0x49c32c,'filePath':_0x3193ec});}return _0x12cd10;}function migrateGroup(_0x5ec928,_0x289094,_0x5bdae9){const _0x1d6208={'veavu':function(_0x3bcf47,_0x44f144,_0x134cdd){return _0x3bcf47(_0x44f144,_0x134cdd);},'nFLSn':function(_0x4b91b5,_0x82dfd0){return _0x4b91b5===_0x82dfd0;},'cPTZG':function(_0x1515c8,_0x5aaeb5){return _0x1515c8(_0x5aaeb5);},'OsNrz':function(_0x10891e,_0x564f5e){return _0x10891e!==_0x564f5e;},'SOrQc':_0x15aa83(-0x273,-0x272),'QvOEf':function(_0x288007,_0xec767c){return _0x288007+_0xec767c;}};if(!_0x289094[_0x15aa83(-0x238,-0x24c)])return{'created':0x0,'deleted':0x0,'parentId':null};const _0x587e40=_0x1d6208[_0x15aa83(-0x213,-0x231)](readFileSync,_0x289094['filePath'],_0x25d0be(0x2c5,0x28e)),_0x3e2e25=parseClaudeMd(_0x587e40);if(_0x1d6208['nFLSn'](_0x3e2e25[_0x15aa83(-0x29d,-0x26c)],0x0))return{'created':0x0,'deleted':0x0,'parentId':null};if(_0x5bdae9['dryRun'])return'tMsTo'!==_0x25d0be(0x2ef,0x2a5)?{'created':_0xd0a788[_0x15aa83(-0x29d,-0x2a0)]+0x1,'deleted':_0x141e65[_0x15aa83(-0x288,-0x298)][_0x15aa83(-0x29d,-0x2a7)],'parentId':null}:{'created':_0x3e2e25[_0x15aa83(-0x29d,-0x293)]+0x1,'deleted':_0x289094[_0x25d0be(0x2cb,0x2c0)][_0x25d0be(0x2b6,0x2f9)],'parentId':null};const _0x1124c3=new Map();for(const _0x42bc23 of _0x289094['memories']){const _0xe6d7f9=_0x5ec928[_0x15aa83(-0x215,-0x23d)+_0x15aa83(-0x28d,-0x296)](_0x42bc23['id']);if(_0xe6d7f9?.['remoteId']){const _0x24ca79=_0x42bc23[_0x15aa83(-0x25d,-0x29f)][_0x15aa83(-0x25c,-0x23e)](_0x206558=>_0x206558[_0x15aa83(-0x240,-0x22c)](_0x15aa83(-0x239,-0x282)));_0x24ca79&&_0x1124c3['set'](_0x24ca79,_0xe6d7f9['remoteId']);}}for(const _0x113457 of _0x289094[_0x15aa83(-0x288,-0x247)]){_0x5ec928['deleteMemo'+'ry'](_0x113457['id']);}const _0x2638d7=_0x1d6208[_0x15aa83(-0x224,-0x266)](createHash,_0x25d0be(0x31e,0x356))[_0x25d0be(0x328,0x35c)](_0x587e40)[_0x25d0be(0x317,0x2fa)](_0x25d0be(0x2e4,0x2cc))[_0x15aa83(-0x287,-0x23e)](0x0,0x10),_0x18a882=_0x5bdae9[_0x15aa83(-0x23e,-0x257)+'h']??process[_0x15aa83(-0x275,-0x2a3)]();function _0x15aa83(_0x5469b5,_0x30c92e){return _0x15d54a(_0x30c92e,_0x5469b5-0x46);}function _0x25d0be(_0x382013,_0x134c53){return _0x15d54a(_0x134c53,_0x382013-0x599);}const _0x4224c0=[CLAUDE_MD_TAG,_0x25d0be(0x2f5,0x310)+_0x289094[_0x15aa83(-0x251,-0x218)],_0x15aa83(-0x248,-0x27e)+_0x2638d7],_0x3fd38b=_0x3e2e25['map'](_0x5c8861=>{const _0x164c29=createHash(_0x298c71(0x4a3,0x47d))['update'](_0x5c8861[_0xc56e3(0x3f,0x41)])['digest'](_0x298c71(0x469,0x491))['slice'](0x0,0x10);function _0xc56e3(_0x47b3d8,_0x18c642){return _0x15aa83(_0x18c642-0x2d8,_0x47b3d8);}function _0x298c71(_0x2b863a,_0x207146){return _0x15aa83(_0x2b863a-0x6d8,_0x207146);}return{'content':'[CLAUDE.md'+':\x20'+_0x5c8861['title']+_0xc56e3(0x51,0x5d)+_0x289094[_0x298c71(0x487,0x472)]+'\x0a\x0a'+_0x5c8861[_0x298c71(0x441,0x487)],'category':classifySection(_0x5c8861[_0xc56e3(0x43,0x8a)],_0x5c8861['content']),'tier':_0x298c71(0x470,0x44f),'tags':[CLAUDE_MD_TAG,_0xc56e3(0xb9,0x9f)+_0x5c8861[_0x298c71(0x48a,0x45a)],'hash:'+_0x164c29,_0xc56e3(0xa7,0x7a)+_0x289094[_0x298c71(0x487,0x46d)]],'projectPath':_0x18a882};}),_0x1e7f6b=_0x5ec928['createMemo'+_0x15aa83(-0x279,-0x279)+'ks']({'content':_0x587e40,'category':_0x25d0be(0x349,0x380)+_0x15aa83(-0x21d,-0x223),'tier':_0x15aa83(-0x268,-0x25e),'tags':_0x4224c0,'projectPath':_0x18a882},_0x3fd38b);if(_0x1124c3[_0x15aa83(-0x283,-0x266)]>0x0){if(_0x1d6208['OsNrz'](_0x25d0be(0x2e0,0x29a),_0x1d6208[_0x25d0be(0x2c8,0x2c8)]))_0x57596c instanceof _0x2a0c52&&_0xbe91a6[_0x15aa83(-0x216,-0x253)](_0x2bd52f[_0x15aa83(-0x22e,-0x238)](_0x25d0be(0x33b,0x34c)+'on\x20error:\x20'+_0x4b0d1a[_0x15aa83(-0x261,-0x293)]+'\x0a')),_0x3d5bad[_0x15aa83(-0x278,-0x27b)](0x1);else{const _0xa345e4=_0x5ec928[_0x15aa83(-0x285,-0x28d)+_0x15aa83(-0x24f,-0x27f)](_0x1e7f6b);for(const _0x47d6d3 of _0xa345e4){const _0x998e25=_0x47d6d3[_0x15aa83(-0x25d,-0x228)]['find'](_0x472292=>_0x472292[_0x15aa83(-0x240,-0x1fa)]('section:'));_0x998e25&&_0x1124c3[_0x15aa83(-0x289,-0x261)](_0x998e25)&&_0x5ec928['setSyncSta'+_0x25d0be(0x2c6,0x2cd)](_0x47d6d3['id'],_0x1124c3['get'](_0x998e25),_0x15aa83(-0x219,-0x256));}}}return{'created':_0x1d6208[_0x25d0be(0x324,0x31f)](_0x3e2e25[_0x15aa83(-0x29d,-0x277)],0x1),'deleted':_0x289094['memories'][_0x15aa83(-0x29d,-0x278)],'parentId':_0x1e7f6b};}function classifySection(_0x30a362,_0x59b2e6){const _0x30767d={'DwwjA':function(_0x570d95,_0x55d4f1){return _0x570d95>=_0x55d4f1;},'kEnBf':'why','OrtcT':_0x30e575(0x2d1,0x30d),'YjZNr':_0x30e575(0x375,0x334),'HdnyB':_0x3cc53e(0x1a1,0x189),'NmuSN':_0x3cc53e(0x1c0,0x17e)},_0x47f834=_0x30a362['toLowerCas'+'e'](),_0x518fe8=_0x59b2e6?_0x59b2e6['split']('\x0a')[_0x3cc53e(0x15b,0x1a2)](0x0,0x5)[_0x3cc53e(0x1b0,0x1e0)]('\x20')[_0x3cc53e(0x158,0x169)+'e']():'',_0x5200b7=/금지|절대|must not|never|mandatory/,_0x4b4600=_0x5200b7[_0x3cc53e(0x1b8,0x173)](_0x47f834),_0x4f7d8f=(_0x518fe8[_0x3cc53e(0x19e,0x18b)](/금지|절대|must not|never|mandatory|필수|반드시|always/g)||[])[_0x3cc53e(0x145,0x133)];if(_0x4b4600||_0x30767d[_0x30e575(0x27a,0x2b9)](_0x4f7d8f,0x2))return _0x30e575(0x2ec,0x2ea);function _0x3cc53e(_0x4b07ab,_0x233906){return _0x15d54a(_0x233906,_0x4b07ab-0x428);}function _0x30e575(_0x50e9f6,_0x129f2f){return _0x15d54a(_0x50e9f6,_0x129f2f-0x590);}if(_0x47f834[_0x30e575(0x31c,0x323)](_0x3cc53e(0x174,0x197))||_0x47f834[_0x30e575(0x2f1,0x323)]('규칙')||_0x47f834[_0x3cc53e(0x1bb,0x1b3)]('rule')||_0x47f834[_0x30e575(0x33d,0x323)]('스타일')||_0x47f834[_0x30e575(0x2ef,0x323)](_0x3cc53e(0x1b2,0x16c))||_0x47f834['includes']('패턴')||_0x47f834[_0x3cc53e(0x1bb,0x1e5)]('pattern')||_0x47f834['includes']('원칙'))return'convention';if(_0x47f834[_0x3cc53e(0x1bb,0x18e)]('결정')||_0x47f834['includes'](_0x30e575(0x347,0x30d))||_0x47f834[_0x30e575(0x317,0x323)]('선택')||_0x47f834[_0x3cc53e(0x1bb,0x18f)](_0x30767d[_0x30e575(0x2e2,0x2fa)])||_0x47f834['includes']('이유'))return _0x30767d['OrtcT'];if(_0x47f834[_0x30e575(0x354,0x323)]('에러')||_0x47f834[_0x3cc53e(0x1bb,0x189)](_0x30767d[_0x3cc53e(0x149,0x173)])||_0x47f834[_0x3cc53e(0x1bb,0x177)]('문제')||_0x47f834[_0x30e575(0x354,0x323)](_0x30767d[_0x30e575(0x2e0,0x2e5)])||_0x47f834[_0x3cc53e(0x1bb,0x18b)](_0x30e575(0x2f5,0x2e1))||_0x47f834['includes']('해결'))return'error_solu'+_0x30e575(0x2e2,0x2e7);if(_0x47f834[_0x30e575(0x368,0x323)]('학습')||_0x47f834[_0x3cc53e(0x1bb,0x188)](_0x30767d['NmuSN'])||_0x47f834[_0x3cc53e(0x1bb,0x197)]('배운'))return _0x3cc53e(0x1c0,0x1c6);return'project_kn'+_0x30e575(0x30b,0x32d);}export function migrateChunksCommand(){function _0x1bab8f(_0x291a9f,_0x5ee104){return _0x15d54a(_0x5ee104,_0x291a9f-0x6b3);}const _0xd4d6c5={'ohxAg':_0x1bab8f(0x459,0x447),'GKkQw':function(_0x37fb42,_0x1c2199,_0x54ad31){return _0x37fb42(_0x1c2199,_0x54ad31);},'izOiP':function(_0x518b93,_0x40d28a){return _0x518b93===_0x40d28a;},'dpSBH':'[DRY\x20RUN]\x20','bJOev':function(_0x1a1e2d,_0x40d2f7,_0xbc72e9,_0x39733e){return _0x1a1e2d(_0x40d2f7,_0xbc72e9,_0x39733e);},'jDGCx':'Summary:','nxWEd':function(_0x3bde78,_0x557501){return _0x3bde78!==_0x557501;},'TRWTd':function(_0x10cb34,_0x2bd6d8){return _0x10cb34 instanceof _0x2bd6d8;},'eeBqp':_0xbc17f1(-0x304,-0x2d6)+_0x1bab8f(0x417,0x3ea)+_0x1bab8f(0x3d7,0x3df)+_0x1bab8f(0x436,0x431)+_0x1bab8f(0x3db,0x3ad)+'hild\x20patte'+'rn','mjOYu':_0x1bab8f(0x3f6,0x402)+_0x1bab8f(0x448,0x470),'nIUQs':_0x1bab8f(0x43c,0x428)+'th\x20(for\x20CL'+'AUDE.md\x20lo'+_0xbc17f1(-0x2f5,-0x32b)};function _0xbc17f1(_0x583dd5,_0x4cc561){return _0x15d54a(_0x583dd5,_0x4cc561- -0x49);}return new Command('migrate-ch'+_0xbc17f1(-0x29b,-0x2de))[_0xbc17f1(-0x2a7,-0x2ae)+'n'](_0xd4d6c5[_0x1bab8f(0x3ef,0x432)])['option'](_0x1bab8f(0x45b,0x464),_0x1bab8f(0x3dd,0x39c)+_0x1bab8f(0x413,0x41d)+_0x1bab8f(0x3fd,0x3b4)+_0xbc17f1(-0x2e7,-0x2ee)+_0xbc17f1(-0x2e6,-0x2bc))['option'](_0xd4d6c5[_0x1bab8f(0x3f9,0x3fd)],_0xd4d6c5[_0x1bab8f(0x3f0,0x402)])[_0x1bab8f(0x43a,0x484)](async _0x564502=>{const _0x16feb0=new ConfigManager()['load']();function _0x317da4(_0x1f2b72,_0x32a822){return _0x1bab8f(_0x1f2b72- -0x4bb,_0x32a822);}const _0x24086d=new MemoryDatabase(_0x16feb0['db'][_0x34901a(0xe3,0x126)]);function _0x34901a(_0x5db4c4,_0x9484de){return _0x1bab8f(_0x9484de- -0x2cb,_0x5db4c4);}try{if(_0x34901a(0x1c4,0x18e)!==_0xd4d6c5[_0x317da4(-0x99,-0x93)])_0xa22d98[_0x34901a(0x149,0x18c)](_0x4b9f41[_0x34901a(0x12c,0x174)](_0x34901a(0x19c,0x18a)+_0x317da4(-0x68,-0x21)+_0x3cf752[_0x34901a(0x161,0x141)]+'\x0a'));else{_0x24086d['initialize']();const _0x132069=_0xd4d6c5[_0x34901a(0x18d,0x17f)](findLegacyGroups,_0x24086d,_0x564502[_0x34901a(0x10c,0x155)]);if(_0xd4d6c5['izOiP'](_0x132069[_0x34901a(0x11c,0x105)],0x0)){console[_0x317da4(-0xbb,-0xb1)](_0x226c32[_0x317da4(-0xa0,-0xc3)](_0x317da4(-0x93,-0x49)+_0x34901a(0x13c,0x156)+_0x34901a(0xca,0x108)+'te.\x20Alread'+_0x317da4(-0x65,-0x40)+'rent-Child'+_0x317da4(-0xcd,-0xf7)));return;}const _0x2a71d2=_0x564502[_0x34901a(0x11b,0x160)]?_0x226c32[_0x34901a(0x18d,0x14d)](_0xd4d6c5[_0x317da4(-0x74,-0x51)]):'';console['log'](_0x226c32[_0x34901a(0xd8,0x10e)]('\x0a'+_0x2a71d2+(_0x34901a(0x19f,0x16e)+_0x317da4(-0xd4,-0x114)+'gacy\x20→\x20Par'+_0x317da4(-0xba,-0xc5))));let _0x1f37a4=0x0,_0x28ceee=0x0;for(const _0x22e560 of _0x132069){console[_0x317da4(-0xbb,-0xeb)](_0x226c32[_0x34901a(0x165,0x158)](_0x317da4(-0xda,-0xef)+_0x22e560[_0x34901a(0x113,0x151)]+'\x20('+_0x22e560[_0x317da4(-0xd6,-0x116)][_0x317da4(-0xeb,-0xc3)]+(_0x317da4(-0xa9,-0x63)+_0x34901a(0x14d,0x140)+'─')));if(!_0x22e560[_0x34901a(0x176,0x16a)]){console['log'](_0x226c32[_0x317da4(-0xd2,-0xb7)](_0x317da4(-0x84,-0x8d)+'e\x20file\x20not'+'\x20found.\x20Sk'+'ipping.')),console[_0x317da4(-0xbb,-0x84)](_0x226c32[_0x34901a(0x18c,0x158)](_0x317da4(-0xa5,-0xdc)+_0x34901a(0x148,0x167)+_0x34901a(0x130,0x14a)+_0x34901a(0x120,0x113)+_0x317da4(-0x6c,-0x6f)));continue;}console['log'](_0x226c32[_0x34901a(0x130,0x158)](_0x34901a(0x139,0x122)+_0x22e560['filePath']));const _0x5a923a=_0xd4d6c5['bJOev'](migrateGroup,_0x24086d,_0x22e560,{'dryRun':_0x564502[_0x317da4(-0x90,-0xd8)]??![],'projectPath':_0x564502['project']});_0x5a923a['parentId']&&console[_0x317da4(-0xbb,-0xeb)](_0x226c32[_0x34901a(0x17e,0x150)](_0x317da4(-0xb5,-0xd5)+':\x20'+_0x5a923a[_0x34901a(0x13d,0x17a)])),console['log'](_0x226c32[_0x317da4(-0x98,-0xc4)](_0x34901a(0x129,0x10a)+'\x20'+_0x5a923a[_0x317da4(-0x8d,-0x68)]+(_0x317da4(-0xa2,-0x61)+':\x20')+_0x5a923a[_0x34901a(0x194,0x181)]+'\x0a')),_0x1f37a4+=_0x5a923a[_0x317da4(-0x8d,-0xd2)],_0x28ceee+=_0x5a923a['deleted'];}console[_0x34901a(0x113,0x135)](_0x226c32['bold'](_0xd4d6c5[_0x317da4(-0xb8,-0xaa)])),console['log']('\x20\x20'+_0x226c32[_0x34901a(0x189,0x150)](_0x317da4(-0x5c,-0x82)+_0x1f37a4)+_0x34901a(0xea,0x131)+_0x226c32[_0x34901a(0x14e,0x174)](_0x317da4(-0xa1,-0xd3)+_0x28ceee)),console[_0x317da4(-0xbb,-0xdc)]();}}catch(_0x4b2492){if(_0xd4d6c5[_0x34901a(0x143,0x168)](_0x317da4(-0xe3,-0xc7),_0x317da4(-0xe3,-0xab))){const _0x5aed4a=_0x4c45ff['tags']['find'](_0x429614=>_0x429614['startsWith'](_0x34901a(0x18a,0x169)));_0x5aed4a&&_0xcd726b[_0x317da4(-0xd7,-0xe0)](_0x5aed4a)&&_0x40a232[_0x34901a(0x15c,0x191)+_0x317da4(-0xdb,-0x93)](_0x45336d['id'],_0x20e295[_0x34901a(0x1c6,0x186)](_0x5aed4a),'pending');}else _0xd4d6c5['TRWTd'](_0x4b2492,Error)&&console[_0x34901a(0x144,0x18c)](_0x226c32[_0x34901a(0x187,0x174)](_0x317da4(-0x66,-0x6f)+_0x317da4(-0x68,-0x93)+_0x4b2492[_0x34901a(0x117,0x141)]+'\x0a')),process['exit'](0x1);}finally{_0x24086d['close']();}});}