a2a-memory 0.11.5 โ†’ 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) 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.d.ts +8 -2
  10. package/dist/claude/sync.js +1 -298
  11. package/dist/cli/commands/add.js +1 -80
  12. package/dist/cli/commands/claude-sync.d.ts +3 -3
  13. package/dist/cli/commands/claude-sync.js +1 -70
  14. package/dist/cli/commands/cleanup.js +1 -83
  15. package/dist/cli/commands/config.js +1 -79
  16. package/dist/cli/commands/edit.js +1 -69
  17. package/dist/cli/commands/embed.js +1 -92
  18. package/dist/cli/commands/extract.js +1 -103
  19. package/dist/cli/commands/health.js +1 -105
  20. package/dist/cli/commands/list.js +1 -46
  21. package/dist/cli/commands/migrate-chunks.js +1 -205
  22. package/dist/cli/commands/migrate-file-refs.js +1 -183
  23. package/dist/cli/commands/proficiency.js +1 -146
  24. package/dist/cli/commands/rm.js +1 -64
  25. package/dist/cli/commands/search.js +1 -90
  26. package/dist/cli/commands/setup-wizard.js +1 -387
  27. package/dist/cli/commands/setup.js +1 -170
  28. package/dist/cli/commands/skill.js +1 -151
  29. package/dist/cli/commands/status.js +1 -70
  30. package/dist/cli/commands/sync.js +1 -202
  31. package/dist/cli/commands/team.js +1 -142
  32. package/dist/cli/index.js +1 -87
  33. package/dist/config/manager.js +1 -372
  34. package/dist/db/database.d.ts +36 -0
  35. package/dist/db/database.js +1 -1400
  36. package/dist/embedding/e5-provider.js +1 -147
  37. package/dist/embedding/index.js +1 -34
  38. package/dist/embedding/local-provider.js +1 -157
  39. package/dist/embedding/openai-provider.js +1 -92
  40. package/dist/embedding/quantization.js +1 -89
  41. package/dist/extraction/dedup-manager.js +1 -161
  42. package/dist/extraction/emotion-filter.js +1 -33
  43. package/dist/extraction/extractor.d.ts +0 -3
  44. package/dist/extraction/extractor.js +1 -648
  45. package/dist/extraction/file-reference.js +1 -77
  46. package/dist/extraction/filter.js +1 -86
  47. package/dist/extraction/scorer.js +1 -142
  48. package/dist/extraction/similarity.js +1 -85
  49. package/dist/hooks/client-factory.js +1 -44
  50. package/dist/hooks/post-tool-use.js +1 -518
  51. package/dist/hooks/pre-compact.js +1 -209
  52. package/dist/hooks/session-end.js +1 -633
  53. package/dist/hooks/session-start.js +1 -549
  54. package/dist/hooks/shared.js +1 -110
  55. package/dist/hooks/stop.d.ts +21 -0
  56. package/dist/hooks/stop.js +1 -0
  57. package/dist/hooks/user-prompt-submit.js +1 -316
  58. package/dist/i18n/index.js +1 -2
  59. package/dist/i18n/messages.js +1 -150
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.js +1 -43
  62. package/dist/lifecycle/cleanup-scheduler.js +1 -137
  63. package/dist/lifecycle/cleanup.d.ts +1 -0
  64. package/dist/lifecycle/cleanup.js +1 -116
  65. package/dist/lifecycle/consolidation.d.ts +22 -0
  66. package/dist/lifecycle/consolidation.js +1 -0
  67. package/dist/lifecycle/index.d.ts +2 -0
  68. package/dist/lifecycle/index.js +1 -13
  69. package/dist/lifecycle/injection-flush.d.ts +24 -0
  70. package/dist/lifecycle/injection-flush.js +1 -0
  71. package/dist/lifecycle/quality-scorer.d.ts +5 -6
  72. package/dist/lifecycle/quality-scorer.js +1 -46
  73. package/dist/lifecycle/tiering.js +1 -246
  74. package/dist/llm/client.js +1 -226
  75. package/dist/llm/index.js +1 -5
  76. package/dist/proficiency/actr-engine.js +1 -106
  77. package/dist/proficiency/detection.js +1 -77
  78. package/dist/proficiency/index.js +1 -9
  79. package/dist/proficiency/tracker.js +1 -173
  80. package/dist/proficiency/types.js +1 -8
  81. package/dist/providers/adapters.js +1 -140
  82. package/dist/providers/detector.js +1 -57
  83. package/dist/search/adaptive-router.js +1 -93
  84. package/dist/search/index.js +1 -9
  85. package/dist/search/ranker.js +1 -171
  86. package/dist/search/reranker.js +1 -155
  87. package/dist/session/parser.js +1 -130
  88. package/dist/skill/evaluator.js +1 -509
  89. package/dist/skill/index.js +1 -7
  90. package/dist/skill/types.js +1 -7
  91. package/dist/sync/client.d.ts +7 -0
  92. package/dist/sync/client.js +1 -597
  93. package/dist/sync/encryption.js +1 -203
  94. package/dist/sync/index.js +1 -12
  95. package/dist/sync/queue.js +1 -214
  96. package/dist/sync/scheduler.js +1 -140
  97. package/dist/sync/synchronizer.js +1 -241
  98. package/dist/sync/team-synchronizer.js +1 -204
  99. package/dist/sync/vector-clock.js +1 -70
  100. package/dist/types/index.d.ts +13 -1
  101. package/dist/types/index.js +1 -132
  102. package/dist/utils/keychain.js +1 -170
  103. package/dist/utils/logger.js +1 -128
  104. package/package.json +15 -10
  105. package/dist/a2a/client.d.ts.map +0 -1
  106. package/dist/a2a/client.js.map +0 -1
  107. package/dist/a2a/discovery.d.ts.map +0 -1
  108. package/dist/a2a/discovery.js.map +0 -1
  109. package/dist/a2a/index.d.ts.map +0 -1
  110. package/dist/a2a/index.js.map +0 -1
  111. package/dist/a2a/types.d.ts.map +0 -1
  112. package/dist/a2a/types.js.map +0 -1
  113. package/dist/adapters/anthropic.d.ts.map +0 -1
  114. package/dist/adapters/anthropic.js.map +0 -1
  115. package/dist/chunking/chunker.d.ts.map +0 -1
  116. package/dist/chunking/chunker.js.map +0 -1
  117. package/dist/claude/sync.d.ts.map +0 -1
  118. package/dist/claude/sync.js.map +0 -1
  119. package/dist/cli/commands/add.d.ts.map +0 -1
  120. package/dist/cli/commands/add.js.map +0 -1
  121. package/dist/cli/commands/claude-sync.d.ts.map +0 -1
  122. package/dist/cli/commands/claude-sync.js.map +0 -1
  123. package/dist/cli/commands/cleanup.d.ts.map +0 -1
  124. package/dist/cli/commands/cleanup.js.map +0 -1
  125. package/dist/cli/commands/config.d.ts.map +0 -1
  126. package/dist/cli/commands/config.js.map +0 -1
  127. package/dist/cli/commands/edit.d.ts.map +0 -1
  128. package/dist/cli/commands/edit.js.map +0 -1
  129. package/dist/cli/commands/embed.d.ts.map +0 -1
  130. package/dist/cli/commands/embed.js.map +0 -1
  131. package/dist/cli/commands/extract.d.ts.map +0 -1
  132. package/dist/cli/commands/extract.js.map +0 -1
  133. package/dist/cli/commands/health.d.ts.map +0 -1
  134. package/dist/cli/commands/health.js.map +0 -1
  135. package/dist/cli/commands/list.d.ts.map +0 -1
  136. package/dist/cli/commands/list.js.map +0 -1
  137. package/dist/cli/commands/migrate-chunks.d.ts.map +0 -1
  138. package/dist/cli/commands/migrate-chunks.js.map +0 -1
  139. package/dist/cli/commands/migrate-file-refs.d.ts.map +0 -1
  140. package/dist/cli/commands/migrate-file-refs.js.map +0 -1
  141. package/dist/cli/commands/proficiency.d.ts.map +0 -1
  142. package/dist/cli/commands/proficiency.js.map +0 -1
  143. package/dist/cli/commands/rm.d.ts.map +0 -1
  144. package/dist/cli/commands/rm.js.map +0 -1
  145. package/dist/cli/commands/search.d.ts.map +0 -1
  146. package/dist/cli/commands/search.js.map +0 -1
  147. package/dist/cli/commands/setup-wizard.d.ts.map +0 -1
  148. package/dist/cli/commands/setup-wizard.js.map +0 -1
  149. package/dist/cli/commands/setup.d.ts.map +0 -1
  150. package/dist/cli/commands/setup.js.map +0 -1
  151. package/dist/cli/commands/skill.d.ts.map +0 -1
  152. package/dist/cli/commands/skill.js.map +0 -1
  153. package/dist/cli/commands/status.d.ts.map +0 -1
  154. package/dist/cli/commands/status.js.map +0 -1
  155. package/dist/cli/commands/sync.d.ts.map +0 -1
  156. package/dist/cli/commands/sync.js.map +0 -1
  157. package/dist/cli/commands/team.d.ts.map +0 -1
  158. package/dist/cli/commands/team.js.map +0 -1
  159. package/dist/cli/index.d.ts.map +0 -1
  160. package/dist/cli/index.js.map +0 -1
  161. package/dist/config/manager.d.ts.map +0 -1
  162. package/dist/config/manager.js.map +0 -1
  163. package/dist/db/database.d.ts.map +0 -1
  164. package/dist/db/database.js.map +0 -1
  165. package/dist/embedding/e5-provider.d.ts.map +0 -1
  166. package/dist/embedding/e5-provider.js.map +0 -1
  167. package/dist/embedding/index.d.ts.map +0 -1
  168. package/dist/embedding/index.js.map +0 -1
  169. package/dist/embedding/local-provider.d.ts.map +0 -1
  170. package/dist/embedding/local-provider.js.map +0 -1
  171. package/dist/embedding/openai-provider.d.ts.map +0 -1
  172. package/dist/embedding/openai-provider.js.map +0 -1
  173. package/dist/embedding/quantization.d.ts.map +0 -1
  174. package/dist/embedding/quantization.js.map +0 -1
  175. package/dist/extraction/dedup-manager.d.ts.map +0 -1
  176. package/dist/extraction/dedup-manager.js.map +0 -1
  177. package/dist/extraction/emotion-filter.d.ts.map +0 -1
  178. package/dist/extraction/emotion-filter.js.map +0 -1
  179. package/dist/extraction/extractor.d.ts.map +0 -1
  180. package/dist/extraction/extractor.js.map +0 -1
  181. package/dist/extraction/file-reference.d.ts.map +0 -1
  182. package/dist/extraction/file-reference.js.map +0 -1
  183. package/dist/extraction/filter.d.ts.map +0 -1
  184. package/dist/extraction/filter.js.map +0 -1
  185. package/dist/extraction/scorer.d.ts.map +0 -1
  186. package/dist/extraction/scorer.js.map +0 -1
  187. package/dist/extraction/similarity.d.ts.map +0 -1
  188. package/dist/extraction/similarity.js.map +0 -1
  189. package/dist/hooks/client-factory.d.ts.map +0 -1
  190. package/dist/hooks/client-factory.js.map +0 -1
  191. package/dist/hooks/post-tool-use.d.ts.map +0 -1
  192. package/dist/hooks/post-tool-use.js.map +0 -1
  193. package/dist/hooks/pre-compact.d.ts.map +0 -1
  194. package/dist/hooks/pre-compact.js.map +0 -1
  195. package/dist/hooks/session-end.d.ts.map +0 -1
  196. package/dist/hooks/session-end.js.map +0 -1
  197. package/dist/hooks/session-start.d.ts.map +0 -1
  198. package/dist/hooks/session-start.js.map +0 -1
  199. package/dist/hooks/shared.d.ts.map +0 -1
  200. package/dist/hooks/shared.js.map +0 -1
  201. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  202. package/dist/hooks/user-prompt-submit.js.map +0 -1
  203. package/dist/i18n/index.d.ts.map +0 -1
  204. package/dist/i18n/index.js.map +0 -1
  205. package/dist/i18n/messages.d.ts.map +0 -1
  206. package/dist/i18n/messages.js.map +0 -1
  207. package/dist/index.d.ts.map +0 -1
  208. package/dist/index.js.map +0 -1
  209. package/dist/lifecycle/cleanup-scheduler.d.ts.map +0 -1
  210. package/dist/lifecycle/cleanup-scheduler.js.map +0 -1
  211. package/dist/lifecycle/cleanup.d.ts.map +0 -1
  212. package/dist/lifecycle/cleanup.js.map +0 -1
  213. package/dist/lifecycle/index.d.ts.map +0 -1
  214. package/dist/lifecycle/index.js.map +0 -1
  215. package/dist/lifecycle/quality-scorer.d.ts.map +0 -1
  216. package/dist/lifecycle/quality-scorer.js.map +0 -1
  217. package/dist/lifecycle/tiering.d.ts.map +0 -1
  218. package/dist/lifecycle/tiering.js.map +0 -1
  219. package/dist/llm/client.d.ts.map +0 -1
  220. package/dist/llm/client.js.map +0 -1
  221. package/dist/llm/index.d.ts.map +0 -1
  222. package/dist/llm/index.js.map +0 -1
  223. package/dist/proficiency/actr-engine.d.ts.map +0 -1
  224. package/dist/proficiency/actr-engine.js.map +0 -1
  225. package/dist/proficiency/detection.d.ts.map +0 -1
  226. package/dist/proficiency/detection.js.map +0 -1
  227. package/dist/proficiency/index.d.ts.map +0 -1
  228. package/dist/proficiency/index.js.map +0 -1
  229. package/dist/proficiency/tracker.d.ts.map +0 -1
  230. package/dist/proficiency/tracker.js.map +0 -1
  231. package/dist/proficiency/types.d.ts.map +0 -1
  232. package/dist/proficiency/types.js.map +0 -1
  233. package/dist/providers/adapters.d.ts.map +0 -1
  234. package/dist/providers/adapters.js.map +0 -1
  235. package/dist/providers/detector.d.ts.map +0 -1
  236. package/dist/providers/detector.js.map +0 -1
  237. package/dist/search/adaptive-router.d.ts.map +0 -1
  238. package/dist/search/adaptive-router.js.map +0 -1
  239. package/dist/search/index.d.ts.map +0 -1
  240. package/dist/search/index.js.map +0 -1
  241. package/dist/search/ranker.d.ts.map +0 -1
  242. package/dist/search/ranker.js.map +0 -1
  243. package/dist/search/reranker.d.ts.map +0 -1
  244. package/dist/search/reranker.js.map +0 -1
  245. package/dist/session/parser.d.ts.map +0 -1
  246. package/dist/session/parser.js.map +0 -1
  247. package/dist/skill/evaluator.d.ts.map +0 -1
  248. package/dist/skill/evaluator.js.map +0 -1
  249. package/dist/skill/index.d.ts.map +0 -1
  250. package/dist/skill/index.js.map +0 -1
  251. package/dist/skill/types.d.ts.map +0 -1
  252. package/dist/skill/types.js.map +0 -1
  253. package/dist/sync/client.d.ts.map +0 -1
  254. package/dist/sync/client.js.map +0 -1
  255. package/dist/sync/encryption.d.ts.map +0 -1
  256. package/dist/sync/encryption.js.map +0 -1
  257. package/dist/sync/index.d.ts.map +0 -1
  258. package/dist/sync/index.js.map +0 -1
  259. package/dist/sync/queue.d.ts.map +0 -1
  260. package/dist/sync/queue.js.map +0 -1
  261. package/dist/sync/scheduler.d.ts.map +0 -1
  262. package/dist/sync/scheduler.js.map +0 -1
  263. package/dist/sync/synchronizer.d.ts.map +0 -1
  264. package/dist/sync/synchronizer.js.map +0 -1
  265. package/dist/sync/team-synchronizer.d.ts.map +0 -1
  266. package/dist/sync/team-synchronizer.js.map +0 -1
  267. package/dist/sync/vector-clock.d.ts.map +0 -1
  268. package/dist/sync/vector-clock.js.map +0 -1
  269. package/dist/types/index.d.ts.map +0 -1
  270. package/dist/types/index.js.map +0 -1
  271. package/dist/utils/keychain.d.ts.map +0 -1
  272. package/dist/utils/keychain.js.map +0 -1
  273. package/dist/utils/logger.d.ts.map +0 -1
  274. package/dist/utils/logger.js.map +0 -1
@@ -1,170 +1 @@
1
- /**
2
- * Setup Command
3
- *
4
- * Claude Code Hook ๋“ฑ๋ก ๋ฐ ์ดˆ๊ธฐ ์„ค์ •์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
5
- */
6
- import { Command } from 'commander';
7
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
8
- import { join } from 'node:path';
9
- import { homedir } from 'node:os';
10
- import chalk from 'chalk';
11
- import ora from 'ora';
12
- import { ConfigManager } from '../../config/manager.js';
13
- import { MemoryDatabase } from '../../db/database.js';
14
- import { findSessionFiles } from '../../session/parser.js';
15
- import { runSetupWizard } from './setup-wizard.js';
16
- const CLAUDE_SETTINGS_PATH = join(homedir(), '.claude', 'settings.json');
17
- export function setupCommand() {
18
- return new Command('setup')
19
- .description('Initialize A2A Memory Plugin')
20
- .option('--force', 'Force re-setup even if already configured')
21
- .option('--wizard', 'Interactive setup wizard for one-click configuration')
22
- .option('--url <url>', 'Server URL (used with --wizard)')
23
- .option('--email <email>', 'Admin email (used with --wizard)')
24
- .option('--password <password>', 'Admin password (used with --wizard)')
25
- .action(async (options) => {
26
- if (options.wizard) {
27
- await runSetupWizard({
28
- serverUrl: options.url,
29
- email: options.email,
30
- password: options.password,
31
- force: options.force,
32
- });
33
- return;
34
- }
35
- console.log(chalk.bold('\n๐Ÿš€ A2A Memory Plugin Setup\n'));
36
- // 1. Config ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
37
- let spinner = ora('Creating config directory...').start();
38
- const configManager = new ConfigManager();
39
- const configDir = configManager.getConfigDir();
40
- spinner.succeed(`Config directory: ${chalk.cyan(configDir)}`);
41
- // 2. ์„ค์ • ํŒŒ์ผ ์ดˆ๊ธฐํ™”
42
- spinner = ora('Loading configuration...').start();
43
- const config = configManager.load();
44
- spinner.succeed(`Config loaded (mode: ${chalk.yellow(config.mode)})`);
45
- // 3. DB ์ดˆ๊ธฐํ™”
46
- spinner = ora('Initializing database...').start();
47
- const db = new MemoryDatabase(config.db.path);
48
- db.initialize();
49
- const stats = db.getStats();
50
- db.close();
51
- spinner.succeed(`Database initialized (${chalk.green(stats.totalMemories)} memories)`);
52
- // ๊ธฐ์กด ์„ธ์…˜ ํŒŒ์ผ ๊ฐœ์ˆ˜ ํ‘œ์‹œ
53
- const sessions = findSessionFiles();
54
- if (sessions.length > 0) {
55
- console.log(chalk.blue(` โ„น Found ${sessions.length} existing session file(s)`));
56
- }
57
- // 4. Claude Code hooks ๋“ฑ๋ก
58
- spinner = ora('Registering Claude Code hooks...').start();
59
- const hookRegistered = registerHooks(options.force);
60
- if (hookRegistered) {
61
- spinner.succeed('Claude Code hooks registered');
62
- }
63
- else {
64
- spinner.warn('Claude Code hooks already registered (use --force to overwrite)');
65
- }
66
- console.log(chalk.green.bold('\nโœ“ Setup complete!\n'));
67
- console.log(chalk.dim('Next steps:'));
68
- console.log(` ${chalk.cyan('1.')} Enable auto-capture: ${chalk.white('a2a-memory config set autoCapture.enabled true')}`);
69
- console.log(` ${chalk.cyan('2.')} Extract existing sessions: ${chalk.white('a2a-memory extract')}`);
70
- console.log(` ${chalk.cyan('3.')} Search memories: ${chalk.white('a2a-memory search "your query"')}\n`);
71
- });
72
- }
73
- function registerHooks(force) {
74
- let settings = {};
75
- if (existsSync(CLAUDE_SETTINGS_PATH)) {
76
- try {
77
- settings = JSON.parse(readFileSync(CLAUDE_SETTINGS_PATH, 'utf-8'));
78
- }
79
- catch {
80
- console.error('[a2a] Warning: Could not parse existing Claude settings');
81
- }
82
- }
83
- if (!settings.hooks) {
84
- settings.hooks = {};
85
- }
86
- // a2a-memory ๊ด€๋ จ hook์ด ์ด๋ฏธ ์žˆ๋Š”์ง€ ํ™•์ธ
87
- const hasExisting = Object.values(settings.hooks).some((configs) => configs.some((c) => c.hooks?.some((h) => h.command?.includes('a2a-memory'))));
88
- if (hasExisting && !force) {
89
- return false;
90
- }
91
- // Hook ์„ค์ • ๋“ฑ๋ก
92
- const pluginDir = getPluginDir();
93
- settings.hooks['SessionStart'] = [
94
- ...(settings.hooks['SessionStart'] ?? []).filter((c) => !c.hooks?.some((h) => h.command?.includes('a2a-memory'))),
95
- {
96
- matcher: '',
97
- hooks: [
98
- {
99
- type: 'command',
100
- command: `node ${join(pluginDir, 'dist', 'hooks', 'session-start.js')}`,
101
- },
102
- ],
103
- },
104
- ];
105
- settings.hooks['PostToolUse'] = [
106
- ...(settings.hooks['PostToolUse'] ?? []).filter((c) => !c.hooks?.some((h) => h.command?.includes('a2a-memory'))),
107
- {
108
- matcher: '',
109
- hooks: [
110
- {
111
- type: 'command',
112
- command: `node ${join(pluginDir, 'dist', 'hooks', 'post-tool-use.js')}`,
113
- },
114
- ],
115
- },
116
- ];
117
- settings.hooks['SessionEnd'] = [
118
- ...(settings.hooks['SessionEnd'] ?? []).filter((c) => !c.hooks?.some((h) => h.command?.includes('a2a-memory'))),
119
- {
120
- matcher: '',
121
- hooks: [
122
- {
123
- type: 'command',
124
- command: `node ${join(pluginDir, 'dist', 'hooks', 'session-end.js')}`,
125
- },
126
- ],
127
- },
128
- ];
129
- settings.hooks['UserPromptSubmit'] = [
130
- ...(settings.hooks['UserPromptSubmit'] ?? []).filter((c) => !c.hooks?.some((h) => h.command?.includes('a2a-memory'))),
131
- {
132
- matcher: '',
133
- hooks: [
134
- {
135
- type: 'command',
136
- command: `node ${join(pluginDir, 'dist', 'hooks', 'user-prompt-submit.js')}`,
137
- },
138
- ],
139
- },
140
- ];
141
- settings.hooks['PreCompact'] = [
142
- ...(settings.hooks['PreCompact'] ?? []).filter((c) => !c.hooks?.some((h) => h.command?.includes('a2a-memory'))),
143
- {
144
- matcher: '',
145
- hooks: [
146
- {
147
- type: 'command',
148
- command: `node ${join(pluginDir, 'dist', 'hooks', 'pre-compact.js')}`,
149
- },
150
- ],
151
- },
152
- ];
153
- // settings ๋””๋ ‰ํ† ๋ฆฌ ๋ณด์žฅ
154
- const settingsDir = join(homedir(), '.claude');
155
- if (!existsSync(settingsDir)) {
156
- mkdirSync(settingsDir, { recursive: true });
157
- }
158
- writeFileSync(CLAUDE_SETTINGS_PATH, JSON.stringify(settings, null, 2), 'utf-8');
159
- return true;
160
- }
161
- function getPluginDir() {
162
- // __dirname ๊ธฐ๋ฐ˜์œผ๋กœ plugin ๋ฃจํŠธ ์ฐพ๊ธฐ
163
- // dist/cli/commands/setup.js โ†’ plugin/
164
- const url = new URL(import.meta.url);
165
- const filePath = url.pathname;
166
- // 3๋‹จ๊ณ„ ์ƒ์œ„ = plugin/dist โ†’ plugin
167
- const parts = filePath.split('/');
168
- return parts.slice(0, -4).join('/');
169
- }
170
- //# sourceMappingURL=setup.js.map
1
+ (function(_0x268e61,_0x45d914){function _0x39d53f(_0x254fc0,_0x5a052c){return _0xb427(_0x5a052c- -0x1a2,_0x254fc0);}function _0x538b98(_0x5cdfac,_0xe7555a){return _0xb427(_0xe7555a- -0x210,_0x5cdfac);}const _0x490f0f=_0x268e61();while(!![]){try{const _0x88a53f=-parseInt(_0x538b98(-0x67,-0xa9))/0x1+parseInt(_0x39d53f(-0x60,-0x59))/0x2+-parseInt(_0x39d53f(-0x83,-0x36))/0x3+parseInt(_0x538b98(-0xc7,-0x7a))/0x4+parseInt(_0x39d53f(-0x55,-0x61))/0x5+parseInt(_0x39d53f(-0xb3,-0x68))/0x6+parseInt(_0x39d53f(-0xd8,-0x81))/0x7*(-parseInt(_0x39d53f(-0x41,-0x30))/0x8);if(_0x88a53f===_0x45d914)break;else _0x490f0f['push'](_0x490f0f['shift']());}catch(_0xd5bffd){_0x490f0f['push'](_0x490f0f['shift']());}}}(_0x54db,0x88843));import{Command}from'commander';import{existsSync,readFileSync,writeFileSync,mkdirSync}from'node:fs';function _0xb427(_0x19cfb4,_0x3453b9){_0x19cfb4=_0x19cfb4-0x107;const _0x54dbd4=_0x54db();let _0xb42792=_0x54dbd4[_0x19cfb4];if(_0xb427['ALrYqG']===undefined){var _0xcf3b72=function(_0x33a52b){const _0x9aa31='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x172bcc='',_0x16ee07='';for(let _0x117b99=0x0,_0x38cc0e,_0x38cb73,_0x1a1e9e=0x0;_0x38cb73=_0x33a52b['charAt'](_0x1a1e9e++);~_0x38cb73&&(_0x38cc0e=_0x117b99%0x4?_0x38cc0e*0x40+_0x38cb73:_0x38cb73,_0x117b99++%0x4)?_0x172bcc+=String['fromCharCode'](0xff&_0x38cc0e>>(-0x2*_0x117b99&0x6)):0x0){_0x38cb73=_0x9aa31['indexOf'](_0x38cb73);}for(let _0x4c7d1e=0x0,_0x18d64b=_0x172bcc['length'];_0x4c7d1e<_0x18d64b;_0x4c7d1e++){_0x16ee07+='%'+('00'+_0x172bcc['charCodeAt'](_0x4c7d1e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16ee07);};_0xb427['lPcRvr']=_0xcf3b72,_0xb427['gkXKUt']={},_0xb427['ALrYqG']=!![];}const _0x257fee=_0x54dbd4[0x0],_0x48dca2=_0x19cfb4+_0x257fee,_0x307c56=_0xb427['gkXKUt'][_0x48dca2];return!_0x307c56?(_0xb42792=_0xb427['lPcRvr'](_0xb42792),_0xb427['gkXKUt'][_0x48dca2]=_0xb42792):_0xb42792=_0x307c56,_0xb42792;}import{join}from'node:path';import{homedir}from'node:os';import _0x3404e0 from'chalk';import _0x1e81ac from'ora';function _0x54db(){const _0x135ea2=['Aw5PDgLHBgL6zq','rLb1Ce4','y29TBwfUza','u3jctKy','y3LHBG','A25myLm','Aw1ABKG','BMCGzgf0ywjHCW','ignVBMzPzYbZzq','vw1tBKG','ievUywjSzsbHDq','CevTC2m','DguP','ody1otv3vfHstLi','zxjYB3i','B3b0Aw9U','z2v0u3rHDhm','igv4DhjHy3q','mJqZmtyWmMPqy3jgtW','ls1MB3jJzq','rwjpBgK','Dg8GB3zLCNDYAq','wuX0Bhe','ug9ZDfrVB2XvCW','ohz3EuXeyq','Cg9ZDc10B29Slq','zgvKicHTB2rLoG','idXWyxnZD29Yza','wvzJAxi','ywzbC2u','uxbPrMW','z2v0q29UzMLNra','Aw5NoIbdB3vSza','qNnur1G','Bw9Kzq','zxr1CcbLDMvUia','C3bSAxq','DxrMltG','BwfPBd4','BwrTAw0','C2vZC2LVBI1ZDa','ls1LBwfPBca8zq','CgfZC3DVCMq','zgvZy3jPChrPBW','DxjLlMvUywjSzq','zwn0B3j5oIa','ifnLDhvWcG','CxjAyKS','Cgf0Ag5HBwu','BfHTwvO','q2XHDwrLienVza','Dc1ZDwjTAxqUAG','zs4UlG','qMDbq2G','w2eYyv0Gv2fYBG','uhjLq29TCgfJDa','uwfLEu0','AcaTlxDPEMfYza','C2vZC2LVBI1LBG','CwDRBwu','nda1odi1nKLHDwjutq','BcaODxnLzcb3Aq','B3vYihf1zxj5iG','BgvUz3rO','Ce5mChO','igv4Axn0Aw5Nia','C3nPB25ZoIa','y2XVC2u','B3j5ifbSDwDPBG','lMnSyxvKzq','ihDPDgGGls13Aq','BMzPz3vYyxrPBW','thzIvKy','zgLT','C3rHCNq','C2XPy2u','Bg9Hza','q2XHDwrLihnLDa','zYbdBgf1zguGqW','D2HPDgu','u2vZC2LVBLn0yq','tuHfv0C','ytjHlw1LBw9YEq','D29YzcaODxnLza','icH1C2vKihDPDa','tg9HzgLUzYbJBW','BM9Kzsa','Aw5JBhvKzxm','q29UzMLNigXVyq','Exv5uei','DcbHDxrVq2fWDa','zsbZzxr1Ccb3Aq','Bw9YAwvZoIa','sMLyyM4','q3jLyxrPBMCGyW','zgLZDa','wwTTrNa','z2LZDgvYzwq','Dg8Ty2fWDhvYzq','CgfYC2u','Ag9VA3m','ig5VDcbWyxjZzq','rufVqM8','C3vJy2vLza','EsbqBhvNAw4','Agv6CKm','DxjS','DxnLCI1WCM9TCa','AwyGywXYzwfKEq','zsaTlwzVCMnLia','u2vYDMvYifvsta','z3jLzw4','sw5PDgLHBgL6Aq','ignVBMzPz3vYzq','ig1LBw9YAwvZkq','B25MAwCGzgLYzq','sw5PDgLHBgL6zq','q29UzMLNigrPCG','ywn0Aw9U','mtq0odeYmZzbuunSz0S','ls11CMWGphvYBa','cVcFMOaGqtjbie1LBq','C2v0Dxa','tgnIDve','icaG4Os5iezVDw5K','zc5QCW','B2rLigHVB2TZlG','zw1HAwW','DgLUz3m','B25MAwD1CMf0Aq','vujczw8','tMv4DcbZDgvWCW','ifnLyxjJAcbTzq','EgLZDgLUzYbZzq','Dg90ywXnzw1VCG','tNnlEKe','CKvRBLq','C3rYAw5NAwz5','BML0AwfSAxPLza','yMX1zq','y3rVCNKUlI4','Bg9N','AM9PBG','DxnLlMPZ','ntq4nZe4nLbOB2vrta','uMvNAxn0zxjPBG','DeTIBxG','ihnLyxjJAcaIEq','cUkCKYbtzxr1CcbJ','zMLSDgvY','C2v0DgLUz3mUAG','mZmYmdq1mffMz2rOEG','rgf0ywjHC2uGAq','zcb0CNvL','u3vIBwL0','AwvZ','BI4UlG','u2vZC2LVBKvUza','CeDty20','mtG2mZCYnNrZz2H2BW','BguOCYK','zsbOB29RCYbYzq','sw50zxjHy3rPDG','yxj0lMPZ','yM9Sza','AhzMug0','EMfYzcK','zM9Yy2u','rM9Yy2uGCMuTCW','CMvHzhKGCMvNAq','ls1WyxnZD29Yza','C29Tzq','ieeYqsbnzw1VCG','iev4DhjHy3qGzq','C3rLCMvKicH1CW','ChjLlwnVBxbHyW'];_0x54db=function(){return _0x135ea2;};return _0x54db();}import{ConfigManager}from'../../config/manager.js';function _0x422e19(_0x1303fe,_0x4cd874){return _0xb427(_0x4cd874-0x65,_0x1303fe);}import{MemoryDatabase}from'../../db/database.js';import{findSessionFiles}from'../../session/parser.js';import{runSetupWizard}from'./setup-wizard.js';const CLAUDE_SETTINGS_PATH=join(homedir(),_0x422e19(0x24e,0x204),_0x19023f(0x139,0x11c)+'son');export function setupCommand(){function _0x64f09d(_0x2b09ed,_0x123c6d){return _0x19023f(_0x2b09ed,_0x123c6d-0xc0);}function _0x330529(_0x4e7875,_0x3c2364){return _0x19023f(_0x4e7875,_0x3c2364-0x20b);}const _0x4cc652={'LcbuQ':function(_0x2d9ee8,_0x5df743){return _0x2d9ee8(_0x5df743);},'UBBeo':_0x64f09d(0x291,0x24b)+_0x330529(0x3da,0x388)+_0x64f09d(0x231,0x1e2),'pEmsc':function(_0x49f971,_0x3e776c){return _0x49f971(_0x3e776c);},'EbOli':_0x330529(0x2c2,0x301)+_0x64f09d(0x219,0x1fd)+_0x330529(0x321,0x375),'yuyPB':function(_0x2d612b){return _0x2d612b();},'BsTGX':function(_0xfa1712,_0x540b72){return _0xfa1712>_0x540b72;},'qrZbK':_0x330529(0x347,0x322)+_0x330529(0x3c3,0x38f)+_0x330529(0x361,0x30f)+'..','QaeyM':_0x330529(0x31e,0x373)+_0x64f09d(0x214,0x1e7)+_0x330529(0x2b9,0x2f2),'FMEfS':_0x64f09d(0x215,0x228)+'e\x20hooks\x20al'+_0x64f09d(0x1a1,0x1ef)+_0x64f09d(0x22e,0x1f4)+_0x330529(0x2be,0x2fe)+_0x330529(0x37f,0x356)+_0x64f09d(0x251,0x202),'YkmFp':_0x330529(0x318,0x325)+'omplete!\x0a','tKbmx':_0x330529(0x33b,0x314)+':','pNLpz':_0x330529(0x39e,0x393)+_0x330529(0x367,0x349)+_0x64f09d(0x26b,0x250)+_0x64f09d(0x1e4,0x222)+_0x330529(0x348,0x32a),'QpiFl':_0x64f09d(0x23f,0x1e8)+_0x330529(0x37a,0x39c)+'zard\x20for\x20o'+'ne-click\x20c'+_0x64f09d(0x211,0x1c7)+'on','YLtlq':_0x330529(0x35e,0x309)+'>','VYRaL':_0x64f09d(0x201,0x21f)+_0x330529(0x36c,0x367),'UHWPE':'Admin\x20emai'+_0x330529(0x3a1,0x37e)+'th\x20--wizar'+'d)','uxlsN':_0x64f09d(0x1cb,0x1f0)+_0x64f09d(0x23f,0x211)+'>','UmSnH':'Admin\x20pass'+_0x64f09d(0x241,0x249)+_0x330529(0x3b9,0x387)+_0x64f09d(0x1dc,0x1ec)};return new Command(_0x330529(0x2d7,0x30b))[_0x330529(0x3a7,0x36c)+'n'](_0x64f09d(0x1ed,0x1ba)+_0x330529(0x329,0x33d)+_0x330529(0x2e7,0x2f9))['option'](_0x330529(0x30c,0x354),_0x330529(0x31a,0x339)+_0x330529(0x346,0x364)+_0x330529(0x2ec,0x2fd)+_0x64f09d(0x1ff,0x1b7)+'d')[_0x64f09d(0x217,0x205)]('--wizard',_0x4cc652[_0x64f09d(0x1d6,0x214)])[_0x64f09d(0x1bc,0x205)](_0x4cc652[_0x64f09d(0x225,0x20c)],_0x330529(0x329,0x2ff)+_0x64f09d(0x29f,0x24a)+_0x64f09d(0x23e,0x22f)+')')[_0x330529(0x39a,0x350)](_0x4cc652['VYRaL'],_0x4cc652['UHWPE'])[_0x330529(0x35b,0x350)](_0x4cc652['uxlsN'],_0x4cc652[_0x330529(0x2fb,0x34a)])[_0x330529(0x349,0x307)](async _0x177e58=>{if(_0x177e58['wizard']){await _0x4cc652[_0x4ae9ad(-0x2f8,-0x2b1)](runSetupWizard,{'serverUrl':_0x177e58[_0x4ae9ad(-0x2a2,-0x2c2)],'email':_0x177e58[_0x1e8033(0x258,0x23c)],'password':_0x177e58[_0x4ae9ad(-0x294,-0x252)],'force':_0x177e58['force']});return;}console[_0x4ae9ad(-0x272,-0x29f)](_0x3404e0[_0x4ae9ad(-0x277,-0x288)](_0x4ae9ad(-0x2f8,-0x2b3)+_0x4ae9ad(-0x226,-0x238)+_0x1e8033(0x2a5,0x29b)));let _0x2a8bea=_0x1e81ac(_0x4ae9ad(-0x2e4,-0x2ce)+_0x1e8033(0x23c,0x230)+_0x1e8033(0x247,0x249))[_0x4ae9ad(-0x242,-0x232)]();const _0x27692f=new ConfigManager(),_0x14a6ea=_0x27692f[_0x1e8033(0x28e,0x28c)+'ir']();_0x2a8bea['succeed'](_0x4ae9ad(-0x288,-0x2b7)+_0x1e8033(0x27f,0x29a)+_0x3404e0[_0x1e8033(0x2b4,0x271)](_0x14a6ea)),_0x2a8bea=_0x1e81ac(_0x4cc652[_0x4ae9ad(-0x2cb,-0x2aa)])[_0x4ae9ad(-0x1e8,-0x232)]();const _0x5affcc=_0x27692f[_0x1e8033(0x301,0x2b9)]();_0x2a8bea[_0x1e8033(0x254,0x224)](_0x1e8033(0x28d,0x2c5)+_0x4ae9ad(-0x21b,-0x262)+'\x20'+_0x3404e0['yellow'](_0x5affcc[_0x1e8033(0x2d7,0x28f)])+')'),_0x2a8bea=_0x4cc652[_0x1e8033(0x2c3,0x278)](_0x1e81ac,_0x4cc652[_0x4ae9ad(-0x239,-0x268)])[_0x4ae9ad(-0x222,-0x232)]();const _0x25e45a=new MemoryDatabase(_0x5affcc['db']['path']);_0x25e45a[_0x1e8033(0x2bf,0x26d)]();const _0x47634e=_0x25e45a[_0x1e8033(0x2bd,0x27d)]();_0x25e45a[_0x4ae9ad(-0x268,-0x239)](),_0x2a8bea[_0x1e8033(0x25e,0x224)](_0x1e8033(0x23b,0x255)+_0x4ae9ad(-0x2f6,-0x2a2)+'\x20('+_0x3404e0[_0x1e8033(0x284,0x22c)](_0x47634e[_0x4ae9ad(-0x284,-0x2a6)+_0x4ae9ad(-0x2b1,-0x291)])+_0x1e8033(0x1ec,0x22f));const _0x1394bf=_0x4cc652[_0x4ae9ad(-0x236,-0x223)](findSessionFiles);_0x4cc652[_0x4ae9ad(-0x220,-0x25b)](_0x1394bf[_0x4ae9ad(-0x23a,-0x23d)],0x0)&&console[_0x1e8033(0x211,0x24a)](_0x3404e0[_0x1e8033(0x235,0x248)](_0x1e8033(0x20a,0x239)+'\x20'+_0x1394bf['length']+(_0x4ae9ad(-0x221,-0x23b)+'session\x20fi'+_0x4ae9ad(-0x2a5,-0x28c))));_0x2a8bea=_0x1e81ac(_0x4cc652[_0x4ae9ad(-0x21a,-0x24d)])[_0x4ae9ad(-0x271,-0x232)]();const _0x5e06dc=_0x4cc652[_0x1e8033(0x2ab,0x278)](registerHooks,_0x177e58[_0x4ae9ad(-0x289,-0x285)]);_0x5e06dc?_0x2a8bea[_0x1e8033(0x1ce,0x224)](_0x4cc652[_0x1e8033(0x27e,0x2a5)]):_0x2a8bea['warn'](_0x4cc652['FMEfS']);console['log'](_0x3404e0['green'][_0x4ae9ad(-0x292,-0x288)](_0x4cc652[_0x4ae9ad(-0x275,-0x2cc)])),console[_0x4ae9ad(-0x2b6,-0x29f)](_0x3404e0[_0x4ae9ad(-0x276,-0x233)](_0x4cc652[_0x1e8033(0x28b,0x24f)])),console['log']('\x20\x20'+_0x3404e0[_0x4ae9ad(-0x254,-0x278)]('1.')+(_0x4ae9ad(-0x268,-0x272)+_0x4ae9ad(-0x2d9,-0x2ca)+':\x20')+_0x3404e0[_0x4ae9ad(-0x20f,-0x22d)](_0x4cc652[_0x1e8033(0x258,0x2ad)]));function _0x1e8033(_0x2dd21c,_0x4e33c0){return _0x330529(_0x2dd21c,_0x4e33c0- -0xd4);}function _0x4ae9ad(_0x50e8cb,_0x539161){return _0x330529(_0x50e8cb,_0x539161- -0x5bd);}console['log']('\x20\x20'+_0x3404e0[_0x4ae9ad(-0x234,-0x278)]('2.')+(_0x4ae9ad(-0x248,-0x27f)+_0x1e8033(0x273,0x242)+_0x4ae9ad(-0x28d,-0x23a))+_0x3404e0[_0x1e8033(0x30b,0x2bc)](_0x1e8033(0x28f,0x2bf)+_0x1e8033(0x267,0x27e))),console[_0x1e8033(0x250,0x24a)]('\x20\x20'+_0x3404e0[_0x1e8033(0x292,0x271)]('3.')+(_0x4ae9ad(-0x2c7,-0x2a8)+_0x4ae9ad(-0x224,-0x220))+_0x3404e0['white'](_0x1e8033(0x28f,0x2bf)+_0x4ae9ad(-0x2cb,-0x299)+_0x4ae9ad(-0x276,-0x23e))+'\x0a');});}function registerHooks(_0x4eb400){const _0x2e6e64={'rEknT':function(_0x2a0922,_0x1f0b80,_0x5f48d4){return _0x2a0922(_0x1f0b80,_0x5f48d4);},'YhxHk':_0x4bf773(0x214,0x231),'pGScm':_0x4bf773(0x225,0x27d)+_0x4bf773(0x20f,0x20c)+_0x431036(-0x70,-0x91)+_0x431036(0x1c,-0x3c)+_0x431036(0x28,-0x11)+_0x431036(-0x55,-0x96),'JiXbn':function(_0x3d41d6,_0x2192bc){return _0x3d41d6&&_0x2192bc;},'CbEal':function(_0x1dbda2){return _0x1dbda2();},'NsKzA':_0x431036(0x2b,0x7)+'rt','YVcir':'command','LvbVF':_0x4bf773(0x1a3,0x1cb),'MHEWG':_0x4bf773(0x217,0x1c5)+_0x4bf773(0x1e2,0x1ef),'afAse':_0x4bf773(0x206,0x254)+'e','EAoBo':function(_0x322d8f,_0x4160b4,_0x3635e7,_0x2748af,_0x37399b){return _0x322d8f(_0x4160b4,_0x3635e7,_0x2748af,_0x37399b);},'imZnH':'dist','SrBNF':_0x431036(-0xc,0x39)+_0x431036(-0x46,-0x6),'UiKme':'SessionEnd','qgkme':function(_0x3811b5,_0x274688,_0x40e507,_0xa3bad9,_0x2ca40d){return _0x3811b5(_0x274688,_0x40e507,_0xa3bad9,_0x2ca40d);},'BgACh':_0x4bf773(0x229,0x24e)+_0x4bf773(0x1bc,0x20b),'mdmim':'UserPrompt'+_0x431036(-0x3b,-0x7b),'hezrC':function(_0x42f2dd,_0x1d173e,_0x569035,_0xa319b0,_0x324c86){return _0x42f2dd(_0x1d173e,_0x569035,_0xa319b0,_0x324c86);},'FPupN':_0x4bf773(0x1aa,0x1d9)+_0x431036(0xe,0x43)+'s','lXmYZ':_0x431036(0x12,0x3c),'XWwhW':function(_0x2187d9,_0x12ab6c,_0x11b424,_0x5f1d42,_0x41a92d){return _0x2187d9(_0x12ab6c,_0x11b424,_0x5f1d42,_0x41a92d);},'knLbS':_0x431036(-0x26,-0x5a)+'t.js','hvfPm':function(_0x1fd322,_0x2de96b){return _0x1fd322(_0x2de96b);},'HDZbG':function(_0x508241,_0x10be53,_0x483702,_0x189fb9){return _0x508241(_0x10be53,_0x483702,_0x189fb9);}};let _0x4edc9b={};if(existsSync(CLAUDE_SETTINGS_PATH))try{_0x4edc9b=JSON[_0x4bf773(0x1a2,0x15d)](_0x2e6e64[_0x431036(-0x4d,-0x83)](readFileSync,CLAUDE_SETTINGS_PATH,_0x2e6e64['YhxHk']));}catch{console[_0x431036(-0x17,-0x4a)](_0x2e6e64[_0x4bf773(0x1dd,0x205)]);}!_0x4edc9b[_0x4bf773(0x1a3,0x19b)]&&(_0x4edc9b[_0x431036(-0x71,-0x99)]={});const _0x324fa0=Object['values'](_0x4edc9b['hooks'])[_0x431036(-0x2a,-0x5e)](_0x3f765b=>_0x3f765b[_0x4bf773(0x1ea,0x1aa)](_0x1b4e7c=>_0x1b4e7c[_0x4bf773(0x1a3,0x1cb)]?.[_0x4bf773(0x1ea,0x1e6)](_0x4b678a=>_0x4b678a[_0x431036(-0x23,-0x56)]?.[_0x431036(0x32,0x6b)]('a2a-memory'))));if(_0x2e6e64[_0x4bf773(0x19c,0x199)](_0x324fa0,!_0x4eb400))return![];const _0xc35b56=_0x2e6e64['CbEal'](getPluginDir);_0x4edc9b[_0x431036(-0x71,-0x21)][_0x2e6e64[_0x4bf773(0x1c6,0x1f7)]]=[...(_0x4edc9b[_0x4bf773(0x1a3,0x188)][_0x431036(0x2b,0x3c)+'rt']??[])['filter'](_0x18de47=>!_0x18de47[_0x431036(-0x71,-0x52)]?.[_0x4bf773(0x1ea,0x229)](_0x501d23=>_0x501d23['command']?.['includes'](_0x431036(0x2d,0x15)))),{'matcher':'','hooks':[{'type':_0x2e6e64[_0x4bf773(0x20b,0x25d)],'command':_0x4bf773(0x245,0x29c)+join(_0xc35b56,_0x431036(-0x76,-0x81),_0x2e6e64['LvbVF'],_0x2e6e64[_0x431036(0x2c,0x43)])}]}],_0x4edc9b[_0x431036(-0x71,-0x74)][_0x431036(-0xe,-0x4f)+'e']=[...(_0x4edc9b['hooks'][_0x2e6e64[_0x431036(-0x8,0x2)]]??[])[_0x4bf773(0x1d4,0x1c0)](_0x4fa595=>!_0x4fa595[_0x4bf773(0x1a3,0x1e2)]?.[_0x431036(-0x2a,-0x5d)](_0x5dd79c=>_0x5dd79c[_0x431036(-0x23,-0x19)]?.[_0x4bf773(0x246,0x1f8)](_0x4bf773(0x241,0x251)))),{'matcher':'','hooks':[{'type':_0x431036(-0x23,-0x18),'command':_0x431036(0x31,0x6e)+_0x2e6e64[_0x431036(-0x6f,-0x3d)](join,_0xc35b56,_0x2e6e64[_0x431036(-0x1f,-0x56)],_0x4bf773(0x1a3,0x16c),_0x2e6e64[_0x4bf773(0x1f2,0x219)])}]}];function _0x4bf773(_0x55980e,_0x1ea62a){return _0x422e19(_0x1ea62a,_0x55980e-0x30);}_0x4edc9b[_0x431036(-0x71,-0xb0)][_0x431036(-0x38,-0x12)]=[...(_0x4edc9b[_0x4bf773(0x1a3,0x171)][_0x2e6e64['UiKme']]??[])['filter'](_0x4e1f70=>!_0x4e1f70[_0x431036(-0x71,-0xb9)]?.[_0x431036(-0x2a,-0x54)](_0x232c33=>_0x232c33['command']?.[_0x4bf773(0x246,0x230)](_0x4bf773(0x241,0x254)))),{'matcher':'','hooks':[{'type':'command','command':_0x431036(0x31,0x42)+_0x2e6e64[_0x4bf773(0x22a,0x232)](join,_0xc35b56,_0x2e6e64[_0x4bf773(0x1f5,0x1cc)],_0x2e6e64[_0x431036(0x23,-0x35)],_0x2e6e64[_0x4bf773(0x224,0x20f)])}]}],_0x4edc9b['hooks'][_0x2e6e64[_0x4bf773(0x216,0x1c9)]]=[...(_0x4edc9b[_0x431036(-0x71,-0x44)][_0x2e6e64[_0x431036(0x2,0x1b)]]??[])[_0x431036(-0x40,-0xb)](_0x5431a7=>!_0x5431a7[_0x431036(-0x71,-0xae)]?.['some'](_0x340a49=>_0x340a49['command']?.[_0x431036(0x32,0x6d)]('a2a-memory'))),{'matcher':'','hooks':[{'type':_0x2e6e64[_0x431036(-0x9,0x1f)],'command':_0x4bf773(0x245,0x298)+_0x2e6e64[_0x431036(-0x6c,-0x7b)](join,_0xc35b56,_0x2e6e64[_0x431036(-0x1f,-0x30)],'hooks',_0x2e6e64[_0x4bf773(0x1f0,0x1f6)])}]}],_0x4edc9b[_0x4bf773(0x1a3,0x194)][_0x2e6e64[_0x4bf773(0x220,0x201)]]=[...(_0x4edc9b[_0x431036(-0x71,-0xb5)][_0x2e6e64['lXmYZ']]??[])[_0x4bf773(0x1d4,0x1e1)](_0xfed83a=>!_0xfed83a['hooks']?.['some'](_0x5b47ae=>_0x5b47ae['command']?.[_0x431036(0x32,0x52)](_0x4bf773(0x241,0x1ee)))),{'matcher':'','hooks':[{'type':_0x2e6e64[_0x431036(-0x9,0x2a)],'command':'node\x20'+_0x2e6e64['XWwhW'](join,_0xc35b56,_0x431036(-0x76,-0x54),'hooks',_0x2e6e64[_0x431036(-0x20,-0x4c)])}]}];function _0x431036(_0x216820,_0x1fe324){return _0x422e19(_0x1fe324,_0x216820- -0x1e4);}const _0x18724e=join(homedir(),_0x4bf773(0x234,0x1e4));return!_0x2e6e64[_0x4bf773(0x1e4,0x234)](existsSync,_0x18724e)&&_0x2e6e64[_0x431036(-0x4d,-0x64)](mkdirSync,_0x18724e,{'recursive':!![]}),_0x2e6e64['HDZbG'](writeFileSync,CLAUDE_SETTINGS_PATH,JSON[_0x431036(-0x4c,0x9)](_0x4edc9b,null,0x2),_0x4bf773(0x214,0x22f)),!![];}function _0x19023f(_0x4eb8a5,_0xec98f){return _0xb427(_0xec98f- -0x24,_0x4eb8a5);}function getPluginDir(){function _0x33ddc7(_0x4d4ba1,_0x25fa27){return _0x422e19(_0x4d4ba1,_0x25fa27- -0xdc);}const _0x3b1fa8=new URL(import.meta.url),_0x3a9761=_0x3b1fa8[_0x17ec43(-0x108,-0x123)],_0x45f53e=_0x3a9761[_0x17ec43(-0x114,-0x116)]('/');function _0x17ec43(_0x39a56a,_0x24cd0f){return _0x422e19(_0x24cd0f,_0x39a56a- -0x2f7);}return _0x45f53e[_0x33ddc7(0x142,0x12e)](0x0,-0x4)[_0x17ec43(-0x15a,-0x11b)]('/');}
@@ -1,151 +1 @@
1
- /**
2
- * Skill Command
3
- *
4
- * ์Šคํ‚ฌ ๊ฒฐ์ •ํ™” ๊ด€๋ฆฌ (๋ชฉ๋ก, ์ˆ˜๋™ ํ‰๊ฐ€, ์žฌํ‰๊ฐ€, ์‚ญ์ œ).
5
- */
6
- import { Command } from 'commander';
7
- import chalk from 'chalk';
8
- import ora from 'ora';
9
- import { ConfigManager } from '../../config/manager.js';
10
- import { MemoryDatabase } from '../../db/database.js';
11
- import { SkillEvaluator } from '../../skill/evaluator.js';
12
- import { A2AClient } from '../../sync/client.js';
13
- export function skillCommand() {
14
- const cmd = new Command('skill')
15
- .description('Manage crystallized skills');
16
- // a2a-memory skill list
17
- cmd.command('list')
18
- .description('List all skill memories')
19
- .action(() => {
20
- const config = new ConfigManager().load();
21
- const db = new MemoryDatabase(config.db.path);
22
- try {
23
- db.initialize();
24
- const skills = db.listMemories({ category: 'skill', limit: 100 });
25
- if (skills.length === 0) {
26
- console.log(chalk.dim('No skills found. Enable skillConversion and run "a2a-memory skill evaluate".'));
27
- return;
28
- }
29
- console.log(chalk.cyan(`\nSkills (${skills.length}):\n`));
30
- const evaluator = new SkillEvaluator(db, config);
31
- for (const skill of skills) {
32
- const metadata = evaluator.extractMetadata(skill);
33
- const firstLine = skill.content.split('\n')[0].slice(0, 80);
34
- const sources = metadata?.sourceMemoryIds.length ?? '?';
35
- const confidence = metadata ? `${(metadata.confidence * 100).toFixed(0)}%` : '?';
36
- const reviewDue = metadata?.reviewDueAt
37
- ? new Date(metadata.reviewDueAt).toLocaleDateString()
38
- : '?';
39
- console.log(` ${chalk.bold(skill.id.slice(0, 8))} ${firstLine}`);
40
- console.log(chalk.dim(` Sources: ${sources} Confidence: ${confidence} Review: ${reviewDue} Access: ${skill.accessCount}`));
41
- console.log('');
42
- }
43
- }
44
- catch (error) {
45
- console.error(chalk.red('Error listing skills:'), error);
46
- // TODO: process.exit() โ†’ throw + ์ƒ์œ„ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ฆฌํŒฉํ† ๋ง (P3-3)
47
- process.exit(1);
48
- }
49
- finally {
50
- db.close();
51
- }
52
- });
53
- // a2a-memory skill evaluate
54
- cmd.command('evaluate')
55
- .description('Run skill evaluation manually')
56
- .option('-p, --project <path>', 'Project path to evaluate')
57
- .action(async (options) => {
58
- const config = new ConfigManager().load();
59
- if (!config.skillConversion?.enabled) {
60
- console.log(chalk.yellow('Skill conversion is disabled. Enable it with:'));
61
- console.log(chalk.dim(' a2a-memory config set skillConversion.enabled true'));
62
- return;
63
- }
64
- const db = new MemoryDatabase(config.db.path);
65
- try {
66
- db.initialize();
67
- const spinner = ora('Evaluating skill candidates...').start();
68
- const evaluator = new SkillEvaluator(db, config);
69
- // taxonomy ๋ถ„๋ฅ˜์šฉ A2AClient ์ƒ์„ฑ (์„œ๋ฒ„ ์„ค์ • ์žˆ์„ ๋•Œ๋งŒ)
70
- let taxonomyClient;
71
- if (config.server?.apiKey && config.server?.url) {
72
- taxonomyClient = new A2AClient({
73
- baseUrl: config.server.url,
74
- apiKey: config.server.apiKey,
75
- timeout: 10000,
76
- });
77
- }
78
- const result = await evaluator.evaluate(options.project, taxonomyClient);
79
- spinner.succeed(chalk.green('Evaluation complete'));
80
- console.log(chalk.dim(` Created: ${result.created}`));
81
- console.log(chalk.dim(` Skipped: ${result.skipped}`));
82
- console.log(chalk.dim(` Candidates: ${result.candidates.length}`));
83
- if (result.errors.length > 0) {
84
- console.log(chalk.yellow(` Errors: ${result.errors.join(', ')}`));
85
- }
86
- }
87
- catch (error) {
88
- console.error(chalk.red('Error during evaluation:'), error);
89
- // TODO: process.exit() โ†’ throw + ์ƒ์œ„ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ฆฌํŒฉํ† ๋ง (P3-3)
90
- process.exit(1);
91
- }
92
- finally {
93
- db.close();
94
- }
95
- });
96
- // a2a-memory skill review
97
- cmd.command('review')
98
- .description('Review and refresh skill lifecycle')
99
- .action(() => {
100
- const config = new ConfigManager().load();
101
- const db = new MemoryDatabase(config.db.path);
102
- try {
103
- db.initialize();
104
- const spinner = ora('Reviewing skills...').start();
105
- const evaluator = new SkillEvaluator(db, config);
106
- const result = evaluator.reviewSkills();
107
- spinner.succeed(chalk.green('Review complete'));
108
- console.log(chalk.dim(` Reviewed: ${result.reviewed}`));
109
- console.log(chalk.dim(` Demoted: ${result.demoted}`));
110
- console.log(chalk.dim(` Renewed: ${result.renewed}`));
111
- }
112
- catch (error) {
113
- console.error(chalk.red('Error during review:'), error);
114
- // TODO: process.exit() โ†’ throw + ์ƒ์œ„ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ฆฌํŒฉํ† ๋ง (P3-3)
115
- process.exit(1);
116
- }
117
- finally {
118
- db.close();
119
- }
120
- });
121
- // a2a-memory skill rm <id>
122
- cmd.command('rm <id>')
123
- .description('Delete a skill memory')
124
- .action((id) => {
125
- const config = new ConfigManager().load();
126
- const db = new MemoryDatabase(config.db.path);
127
- try {
128
- db.initialize();
129
- // ํ’€ UUID ๋˜๋Š” prefix ๋งค์น˜
130
- const skills = db.listMemories({ category: 'skill', limit: 1000 });
131
- const target = skills.find((s) => s.id === id || s.id.startsWith(id));
132
- if (!target) {
133
- console.log(chalk.red(`Skill not found: ${id}`));
134
- // TODO: process.exit() โ†’ throw + ์ƒ์œ„ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ฆฌํŒฉํ† ๋ง (P3-3)
135
- process.exit(1);
136
- }
137
- db.deleteMemory(target.id);
138
- console.log(chalk.green(`Deleted skill: ${target.id.slice(0, 8)}`));
139
- }
140
- catch (error) {
141
- console.error(chalk.red('Error deleting skill:'), error);
142
- // TODO: process.exit() โ†’ throw + ์ƒ์œ„ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ฆฌํŒฉํ† ๋ง (P3-3)
143
- process.exit(1);
144
- }
145
- finally {
146
- db.close();
147
- }
148
- });
149
- return cmd;
150
- }
151
- //# sourceMappingURL=skill.js.map
1
+ (function(_0x184970,_0x4b8d9b){function _0xd7c2d3(_0x167052,_0x2dfa7e){return _0x5084(_0x2dfa7e-0x348,_0x167052);}function _0x74d677(_0x253cd5,_0x555da6){return _0x5084(_0x555da6-0x333,_0x253cd5);}const _0x2ee110=_0x184970();while(!![]){try{const _0xe0f51a=-parseInt(_0x74d677(0x4bb,0x4b4))/0x1*(parseInt(_0xd7c2d3(0x481,0x4c4))/0x2)+parseInt(_0x74d677(0x4b2,0x4ab))/0x3+-parseInt(_0x74d677(0x4de,0x4a2))/0x4*(parseInt(_0x74d677(0x490,0x4d6))/0x5)+-parseInt(_0x74d677(0x4a6,0x48e))/0x6*(parseInt(_0x74d677(0x47b,0x473))/0x7)+parseInt(_0x74d677(0x491,0x49d))/0x8+parseInt(_0xd7c2d3(0x4df,0x4d8))/0x9+parseInt(_0xd7c2d3(0x524,0x4fa))/0xa;if(_0xe0f51a===_0x4b8d9b)break;else _0x2ee110['push'](_0x2ee110['shift']());}catch(_0x2831c1){_0x2ee110['push'](_0x2ee110['shift']());}}}(_0xe914,0x67b9a));import{Command}from'commander';function _0x5084(_0x54813c,_0x52c2f6){_0x54813c=_0x54813c-0x12d;const _0xe914c3=_0xe914();let _0x50841c=_0xe914c3[_0x54813c];if(_0x5084['KVxXoX']===undefined){var _0x110817=function(_0x2a2054){const _0x50d043='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x505dc3='',_0xb1662b='';for(let _0x38dd0d=0x0,_0x5d4e03,_0x7e2a8c,_0x47a5f8=0x0;_0x7e2a8c=_0x2a2054['charAt'](_0x47a5f8++);~_0x7e2a8c&&(_0x5d4e03=_0x38dd0d%0x4?_0x5d4e03*0x40+_0x7e2a8c:_0x7e2a8c,_0x38dd0d++%0x4)?_0x505dc3+=String['fromCharCode'](0xff&_0x5d4e03>>(-0x2*_0x38dd0d&0x6)):0x0){_0x7e2a8c=_0x50d043['indexOf'](_0x7e2a8c);}for(let _0x31b0c1=0x0,_0x7e5efc=_0x505dc3['length'];_0x31b0c1<_0x7e5efc;_0x31b0c1++){_0xb1662b+='%'+('00'+_0x505dc3['charCodeAt'](_0x31b0c1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb1662b);};_0x5084['oKScYv']=_0x110817,_0x5084['fVReiH']={},_0x5084['KVxXoX']=!![];}const _0x1c83ed=_0xe914c3[0x0],_0x426d79=_0x54813c+_0x1c83ed,_0x4d201e=_0x5084['fVReiH'][_0x426d79];return!_0x4d201e?(_0x50841c=_0x5084['oKScYv'](_0x50841c),_0x5084['fVReiH'][_0x426d79]=_0x50841c):_0x50841c=_0x4d201e,_0x50841c;}function _0xe914(){const _0x1c3b91=['zgLT','y3jLyxrLza','y3LHBG','C291CMnLtwvTBW','rw5HyMXLigL0ia','y29TBwfUza','yM9Sza','mtK3nZuYmgfPDhfvDG','C3rHBgXPEMvKia','BgLZDa','zxzHBhvHDgu','icbdyw5KAwrHDa','CMvK','BgvUz3rO','rxjYB3iGzgvSzq','ig1HBNvHBgX5','wunYzLC','zxHPDa','uLzPuvq','DgvtDhjPBMC','icbszxzPzxC6ia','Bg9N','Aw5PDgLHBgL6zq','CMv2Awv3u2TPBa','AM9PBG','yw5Kihj1BIaIyq','lxaSic0TChjVAG','Dg9gAxHLza','B252zxjZAw9Uia','rxzHBhvHDgLUzW','uNvUihnRAwXSia','DgLUzYbZA2LSBa','ChjVAMvJDa','AMnqC20','ignVBxbSzxrL','n05eDw9ksG','C2XPy2u','BMCGCMv2Awv3oG','icbby2nLC3m6ia','CgXLDgu','zM91BMqUievUyq','DxjS','uMv2Awv3igfUza','zw5HyMXLza','C3vJy2vLza','uMv2Awv3ignVBq','CNLjzhm','C2TPBgWGzxzHBa','CgTIz0e','y2fUzgLKyxrLCW','ywrHDge','zgvTB3rLza','zMLUza','vxrJD0K','rgvSzxrLzcbZAW','ywn0Aw9U','ywnJzxnZq291BG','CMvUzxDLza','D2L0AdO','tNHlquy','seXHAwC','uhjVAMvJDcbWyq','odmXmti2Aer1wej5','zxzHBhvHDgLVBG','zxH0CMfJDe1LDa','zwn0idXWyxrOpG','icbdB25MAwrLBG','rgvSzxrLigeGCW','Dg9mB2nHBgveyq','B3jXELC','icbezw1VDgvKoG','vur5vwW','tgLZDcbHBgWGCW','EwnSzq','u2TPBgWGy29UDG','mMeTBwvTB3j5ia','Cgf0Aa','ntyWmtK5mMfsvhPVzG','rxjYB3iGzhvYAq','CNKGy29UzMLNia','tNPmDvK','y2XVC2u','ofjxvK5ptq','zgvZy3jPChrPBW','ihnRAwXSignHBG','ktOk','C3rHCNq','y2u6ia','C2TPBgXZ','uMv2Awv3Aw5Nia','A2LSBcbSAwzLyW','odq4otGYwgPqBeHL','CMv2Awv3','yxbPs2v5','Dwf0zsiU','mJeYmZC4se9JvxnZ','B3b0Aw9U','tM8GC2TPBgXZia','EwvSBg93','tuHUCw8','n1HnveHgBW','icaGifnVDxjJzq','zK1ezKC','C2TPBgW','C2v0ihnRAwXSqW','yuXeuK8','zgLKyxrLCY4UlG','zM91BMq6ia','C2TPChbLza','zw5HyMXLzcb0CG','icbfCNjVCNm6ia','vgTUtwS','C2TPBgXdB252zq','rxjYB3iGBgLZDa','C3bSAxq','nJy5ote3n2X5r3jjwq','BMCGzxzHBhvHDa','u2TPBgWGBM90ia','y29UzMLKzw5Jzq','AwXSoIa','z3jLzw4','zxm6ia','icbszxzPzxDLza','zxjYB3jZ','Aw5NihnRAwXSCW','CMv2Awv3rhvLqq','yMXLihnRAwXSqW','Bg9Hza','DLDlu3O','CZOG','qwnKy3u','CMv2Awv3zwq','AePbsM4','Dwf0zq','mtu0nJyXnvHuBLjhzq','BgLZDe1LBw9YAq','zgLZywjSzwqUia','zgvSzxrLtwvTBW','rxzHBhvHDgLVBG','zxjYB3i','A2LSBcbTzw1VCG','C0nWCeu'];_0xe914=function(){return _0x1c3b91;};return _0xe914();}import _0x1d9823 from'chalk';import _0x4c2c6a from'ora';import{ConfigManager}from'../../config/manager.js';import{MemoryDatabase}from'../../db/database.js';import{SkillEvaluator}from'../../skill/evaluator.js';import{A2AClient}from'../../sync/client.js';export function skillCommand(){const _0x2fd98b={'YCrfW':function(_0xf531fd,_0x1ccd71){return _0xf531fd===_0x1ccd71;},'pkbgA':_0x117edb(0x3b5,0x3e0)+_0x356ea1(0x41a,0x3f4)+':','RViQT':function(_0x3df878,_0x155066){return _0x3df878*_0x155066;},'TknMk':_0x356ea1(0x3a3,0x3c2)+'ersion\x20is\x20'+_0x117edb(0x3cc,0x3be)+_0x117edb(0x3d6,0x3eb)+_0x117edb(0x37e,0x3a5),'jcPsm':function(_0x2912e4,_0x560530){return _0x2912e4!==_0x560530;},'aLDRO':_0x117edb(0x37f,0x36f),'orqzW':_0x117edb(0x3c8,0x38b),'vWKSz':_0x117edb(0x3aa,0x3a6),'sCppE':_0x356ea1(0x3d5,0x3a5)+_0x117edb(0x36b,0x3b1),'HLaig':_0x117edb(0x38b,0x349),'MHnqo':_0x117edb(0x392,0x36d)+_0x356ea1(0x3a7,0x39d),'UtcwI':_0x356ea1(0x410,0x3df)};function _0x117edb(_0x10b92e,_0xadba5b){return _0x5084(_0x10b92e-0x227,_0xadba5b);}const _0x5e3850=new Command('skill')[_0x117edb(0x397,0x373)+'n']('Manage\x20cry'+_0x356ea1(0x41e,0x40e)+_0x117edb(0x39c,0x3a4));_0x5e3850[_0x356ea1(0x40c,0x40b)](_0x356ea1(0x3d5,0x40f))[_0x117edb(0x397,0x3b2)+'n'](_0x356ea1(0x39c,0x3c0)+_0x117edb(0x3d0,0x3f8)+'ies')[_0x356ea1(0x3dc,0x3af)](()=>{const _0x45dae4=new ConfigManager()[_0xcad190(-0x223,-0x1e5)](),_0x597b82=new MemoryDatabase(_0x45dae4['db'][_0xcad190(-0x256,-0x217)]);function _0x3bc722(_0x2c1258,_0xb9d6d4){return _0x356ea1(_0xb9d6d4,_0x2c1258- -0x3ac);}function _0xcad190(_0x1ca85c,_0xb3ac77){return _0x356ea1(_0xb3ac77,_0x1ca85c- -0x61a);}try{_0x597b82[_0x3bc722(-0x1e,-0x40)]();const _0x53bee1=_0x597b82[_0x3bc722(0x53,0x32)+'es']({'category':_0xcad190(-0x23b,-0x23a),'limit':0x64});if(_0x2fd98b[_0x3bc722(-0x24,0xc)](_0x53bee1['length'],0x0)){console['log'](_0x1d9823[_0xcad190(-0x214,-0x254)](_0x3bc722(0x2d,0x5d)+_0x3bc722(-0xc,0x24)+_0x3bc722(0x4a,0x1a)+_0x3bc722(-0x18,-0x4c)+_0xcad190(-0x289,-0x264)+_0x3bc722(0x17,-0x2b)+_0xcad190(-0x273,-0x2aa)+_0x3bc722(0x2a,0x1)));return;}console[_0xcad190(-0x28d,-0x28c)](_0x1d9823[_0x3bc722(0x5c,0x2f)]('\x0aSkills\x20('+_0x53bee1[_0x3bc722(0x67,0x40)]+_0x3bc722(0x21,0x32)));const _0xbfd9c3=new SkillEvaluator(_0x597b82,_0x45dae4);for(const _0x505c28 of _0x53bee1){const _0x5250b2=_0xbfd9c3[_0x3bc722(0xc,0x1f)+'adata'](_0x505c28),_0x109127=_0x505c28['content'][_0xcad190(-0x230,-0x205)]('\x0a')[0x0][_0x3bc722(-0x10,-0x23)](0x0,0x50),_0x50489d=_0x5250b2?.['sourceMemo'+_0x3bc722(-0x6,0x38)]['length']??'?',_0x39cd6c=_0x5250b2?(_0x5250b2[_0x3bc722(0x42,0x4d)]*0x64)[_0x3bc722(-0x19,-0x18)](0x0)+'%':'?',_0x2b3052=_0x5250b2?.[_0x3bc722(0x49,0x37)+'t']?new Date(_0x5250b2[_0x3bc722(0x49,0x20)+'t'])[_0xcad190(-0x25e,-0x218)+_0xcad190(-0x28f,-0x26e)]():'?';console[_0x3bc722(-0x1f,-0x3c)]('\x20\x20'+_0x1d9823[_0x3bc722(0x60,0x30)](_0x505c28['id'][_0x3bc722(-0x10,-0x26)](0x0,0x8))+'\x20\x20'+_0x109127),console[_0x3bc722(-0x1f,-0x50)](_0x1d9823[_0x3bc722(0x5a,0x6b)](_0x3bc722(0x31,0x12)+'s:\x20'+_0x50489d+('\x20\x20Confiden'+'ce:\x20')+_0x39cd6c+_0xcad190(-0x28e,-0x28f)+_0x2b3052+_0x3bc722(-0xe,-0x2b)+_0x505c28[_0x3bc722(0x4,0x14)+'t'])),console[_0xcad190(-0x28d,-0x247)]('');}}catch(_0x4f5009){console[_0xcad190(-0x217,-0x250)](_0x1d9823[_0x3bc722(0x66,0x29)](_0x2fd98b[_0xcad190(-0x272,-0x22b)]),_0x4f5009),process[_0xcad190(-0x291,-0x27b)](0x1);}finally{_0x597b82[_0x3bc722(0x1d,-0x18)]();}}),_0x5e3850[_0x117edb(0x3d7,0x403)](_0x356ea1(0x428,0x410))[_0x117edb(0x397,0x3cd)+'n'](_0x117edb(0x362,0x37e)+_0x356ea1(0x3d1,0x3b7)+_0x117edb(0x3e1,0x39d))[_0x117edb(0x3a4,0x397)](_0x356ea1(0x376,0x392)+_0x356ea1(0x3a5,0x3b9),_0x117edb(0x381,0x3a1)+'th\x20to\x20eval'+_0x117edb(0x3c9,0x3f7))['action'](async _0x1b1bd0=>{const _0x51bced={'NzLuY':function(_0x28e991,_0x1348df){function _0x284013(_0x199d71,_0x2704d3){return _0x5084(_0x2704d3- -0x2c9,_0x199d71);}return _0x2fd98b[_0x284013(-0x1dd,-0x19a)](_0x28e991,_0x1348df);}};function _0x40775e(_0x2bd48c,_0x38c96c){return _0x356ea1(_0x38c96c,_0x2bd48c-0xfa);}const _0x19bf2a=new ConfigManager()[_0x40775e(0x4f1,0x524)]();if(!_0x19bf2a[_0x20d468(-0x62,-0x1b)+'rsion']?.[_0x20d468(-0xa7,-0xa6)]){console[_0x40775e(0x487,0x446)](_0x1d9823['yellow'](_0x2fd98b[_0x40775e(0x4e1,0x4e1)])),console[_0x20d468(-0xbd,-0x7d)](_0x1d9823[_0x20d468(-0x44,0x3)]('\x20\x20a2a-memo'+_0x40775e(0x4c1,0x4d4)+_0x20d468(-0x6a,-0x8f)+'onversion.'+_0x40775e(0x4df,0x51c)+'ue'));return;}const _0x381d0a=new MemoryDatabase(_0x19bf2a['db'][_0x40775e(0x4be,0x4d9)]);function _0x20d468(_0x53e0ff,_0x4a4ae0){return _0x356ea1(_0x4a4ae0,_0x53e0ff- -0x44a);}try{_0x381d0a[_0x20d468(-0xbc,-0xc8)]();const _0x3afe18=_0x4c2c6a(_0x40775e(0x48f,0x4c9)+_0x40775e(0x4c6,0x48e)+_0x40775e(0x4dc,0x512))[_0x40775e(0x4c8,0x4fe)](),_0x2df1e5=new SkillEvaluator(_0x381d0a,_0x19bf2a);let _0x26f9ca;if(_0x19bf2a['server']?.[_0x40775e(0x4cf,0x4fc)]&&_0x19bf2a['server']?.[_0x40775e(0x49b,0x4c7)]){if(_0x2fd98b[_0x40775e(0x493,0x4b6)](_0x2fd98b[_0x20d468(-0x69,-0x51)],_0x2fd98b[_0x20d468(-0x8d,-0x6b)]))_0x26f9ca=new A2AClient({'baseUrl':_0x19bf2a['server'][_0x20d468(-0xa9,-0x81)],'apiKey':_0x19bf2a['server'][_0x40775e(0x4cf,0x4d5)],'timeout':0x2710});else{const _0x3faa9d=_0x2ea6c3['extractMet'+_0x40775e(0x4a4,0x4cb)](_0xf64ce5),_0x10f58d=_0x13ac34['content'][_0x40775e(0x4e4,0x4aa)]('\x0a')[0x0][_0x20d468(-0xae,-0x7f)](0x0,0x50),_0x38b039=_0x3faa9d?.[_0x40775e(0x503,0x4c9)+_0x20d468(-0xa4,-0x5d)][_0x40775e(0x50d,0x4de)]??'?',_0x589989=_0x3faa9d?vaoniv[_0x40775e(0x4c2,0x4af)](_0x3faa9d[_0x20d468(-0x5c,-0x26)],0x64)[_0x40775e(0x48d,0x44b)](0x0)+'%':'?',_0x37ac5d=_0x3faa9d?.[_0x20d468(-0x55,-0x3d)+'t']?new _0x1dc93a(_0x3faa9d[_0x20d468(-0x55,-0x8d)+'t'])['toLocaleDa'+_0x20d468(-0xbf,-0xc3)]():'?';_0x43f872['log']('\x20\x20'+_0xc56336['bold'](_0x1c96d9['id'][_0x40775e(0x496,0x4a9)](0x0,0x8))+'\x20\x20'+_0x10f58d),_0x5dd38c[_0x40775e(0x487,0x451)](_0x3a26f1[_0x20d468(-0x44,-0x1d)]('\x20\x20\x20\x20Source'+_0x20d468(-0x51,-0x81)+_0x38b039+(_0x20d468(-0x90,-0x84)+_0x40775e(0x4c9,0x4c0))+_0x589989+_0x20d468(-0xbe,-0xd2)+_0x37ac5d+'\x20\x20Access:\x20'+_0xec3f9e['accessCoun'+'t'])),_0x570b00[_0x40775e(0x487,0x47c)]('');}}const _0x3b8b3f=await _0x2df1e5['evaluate'](_0x1b1bd0[_0x40775e(0x492,0x4c8)],_0x26f9ca);_0x3afe18['succeed'](_0x1d9823[_0x20d468(-0x5a,-0x34)](_0x40775e(0x4fc,0x51c)+_0x40775e(0x494,0x45e))),console[_0x40775e(0x487,0x442)](_0x1d9823[_0x20d468(-0x44,-0x82)]('\x20\x20Created:'+'\x20'+_0x3b8b3f[_0x40775e(0x501,0x4be)])),console[_0x40775e(0x487,0x4c5)](_0x1d9823['dim']('\x20\x20Skipped:'+'\x20'+_0x3b8b3f[_0x20d468(-0x66,-0x32)])),console[_0x20d468(-0xbd,-0x83)](_0x1d9823[_0x40775e(0x500,0x537)](_0x40775e(0x50b,0x51c)+_0x40775e(0x4eb,0x4c9)+_0x3b8b3f[_0x20d468(-0xa1,-0x68)]['length'])),_0x3b8b3f[_0x20d468(-0x57,-0x95)][_0x40775e(0x50d,0x524)]>0x0&&console['log'](_0x1d9823[_0x40775e(0x4d4,0x4d0)](_0x40775e(0x4e0,0x526)+_0x3b8b3f[_0x20d468(-0x57,-0x6d)][_0x20d468(-0xba,-0xde)](',\x20')));}catch(_0x431228){if(_0x2fd98b[_0x40775e(0x4f2,0x51a)]===_0x40775e(0x4d8,0x4b2))console[_0x40775e(0x4fd,0x50f)](_0x1d9823[_0x40775e(0x50c,0x540)](_0x20d468(-0x84,-0x4b)+_0x40775e(0x4e6,0x4f5)+'ion:'),_0x431228),process[_0x20d468(-0xc1,-0xb9)](0x1);else{_0x3fb2a5[_0x40775e(0x488,0x47b)]();const _0x38004a=_0x4ea078[_0x40775e(0x4f9,0x4c2)+'es']({'category':'skill','limit':0x3e8}),_0x257306=_0x38004a['find'](_0xceadf7=>_0xceadf7['id']===_0x43c7d2||_0xceadf7['id']['startsWith'](_0x5a4c07));!_0x257306&&(_0x390026['log'](_0x30e5ed[_0x40775e(0x50c,0x519)]('Skill\x20not\x20'+'found:\x20'+_0x463198)),_0x106db9[_0x40775e(0x483,0x445)](0x1)),_0x3fcd86[_0x40775e(0x4fb,0x4dc)+'ry'](_0x257306['id']),_0x1943d4[_0x20d468(-0xbd,-0xb1)](_0x12b1cf['green'](_0x20d468(-0x9c,-0xb4)+_0x40775e(0x4e9,0x4c5)+_0x257306['id'][_0x20d468(-0xae,-0xc4)](0x0,0x8)));}}finally{_0x381d0a[_0x20d468(-0x81,-0x53)]();}}),_0x5e3850[_0x117edb(0x3d7,0x3b3)](_0x356ea1(0x40f,0x3d4))[_0x356ea1(0x3b2,0x3cb)+'n'](_0x356ea1(0x360,0x3a2)+'\x20refresh\x20s'+_0x117edb(0x39e,0x3d8)+_0x356ea1(0x39c,0x3c1))[_0x356ea1(0x3bb,0x3af)](()=>{function _0x27d969(_0x40d1ed,_0x204513){return _0x117edb(_0x204513-0x126,_0x40d1ed);}function _0x9ee7e(_0x9a1da0,_0xf00fb5){return _0x117edb(_0xf00fb5- -0xba,_0x9a1da0);}const _0x249369=new ConfigManager()['load'](),_0x30b5d8=new MemoryDatabase(_0x249369['db']['path']);try{_0x30b5d8['initialize']();const _0x11129a=_0x4c2c6a(_0x27d969(0x4a3,0x4c3)+'skills...')[_0x27d969(0x487,0x4c0)](),_0x499b8d=new SkillEvaluator(_0x30b5d8,_0x249369),_0x52b5ce=_0x499b8d[_0x27d969(0x4b0,0x481)+'ls']();_0x11129a[_0x27d969(0x4bd,0x496)](_0x1d9823[_0x9ee7e(0x338,0x302)](_0x2fd98b[_0x9ee7e(0x313,0x317)])),console[_0x27d969(0x4bf,0x47f)](_0x1d9823[_0x27d969(0x53b,0x4f8)](_0x27d969(0x4a8,0x4e4)+':\x20'+_0x52b5ce[_0x9ee7e(0x33b,0x30d)])),console[_0x9ee7e(0x277,0x29f)](_0x1d9823['dim'](_0x9ee7e(0x2bb,0x2d0)+'\x20'+_0x52b5ce[_0x27d969(0x484,0x49d)])),console[_0x27d969(0x4b8,0x47f)](_0x1d9823['dim']('\x20\x20Renewed:'+'\x20'+_0x52b5ce[_0x9ee7e(0x2f9,0x2c3)]));}catch(_0x56682e){_0x27d969(0x525,0x4ec)===_0x2fd98b[_0x27d969(0x4c7,0x4a6)]?_0x5264db[_0x27d969(0x4ca,0x4bb)]():(console[_0x9ee7e(0x2e3,0x315)](_0x1d9823[_0x27d969(0x4fb,0x504)](_0x2fd98b[_0x9ee7e(0x2fb,0x2ed)]),_0x56682e),process[_0x27d969(0x494,0x47b)](0x1));}finally{_0x30b5d8[_0x9ee7e(0x2e0,0x2db)]();}}),_0x5e3850[_0x356ea1(0x3cd,0x40b)]('rm\x20<id>')[_0x117edb(0x397,0x3ac)+'n'](_0x356ea1(0x38d,0x3bb)+_0x117edb(0x3d0,0x3b4)+'y')[_0x356ea1(0x3ce,0x3af)](_0x52a949=>{function _0x12d95b(_0xaa1555,_0x1927a0){return _0x356ea1(_0xaa1555,_0x1927a0- -0x36d);}const _0x3a5ace=new ConfigManager()[_0x48f3f5(0x99,0xc9)](),_0x3362a1=new MemoryDatabase(_0x3a5ace['db'][_0x48f3f5(0x56,0x96)]);function _0x48f3f5(_0x498232,_0x21b569){return _0x356ea1(_0x498232,_0x21b569- -0x32e);}try{_0x3362a1['initialize']();const _0x1d5a91=_0x3362a1[_0x48f3f5(0xdb,0xd1)+'es']({'category':_0x2fd98b[_0x12d95b(0x38,0x40)],'limit':0x3e8}),_0x329119=_0x1d5a91[_0x48f3f5(0x42,0x7e)](_0x5e745e=>_0x5e745e['id']===_0x52a949||_0x5e745e['id']['startsWith'](_0x52a949));!_0x329119&&(console[_0x48f3f5(0x7c,0x5f)](_0x1d9823[_0x48f3f5(0x107,0xe4)](_0x12d95b(0x5a,0x80)+_0x48f3f5(0xfb,0xb5)+_0x52a949)),process[_0x48f3f5(0x3c,0x5b)](0x1)),_0x3362a1[_0x48f3f5(0x93,0xd3)+'ry'](_0x329119['id']),console[_0x48f3f5(0x74,0x5f)](_0x1d9823[_0x48f3f5(0xb6,0xc2)]('Deleted\x20sk'+_0x12d95b(0x7e,0x82)+_0x329119['id']['slice'](0x0,0x8)));}catch(_0x5e0c4b){console['error'](_0x1d9823[_0x48f3f5(0xf5,0xe4)](_0x48f3f5(0x12b,0xe6)+_0x12d95b(0x7,0x2a)+':'),_0x5e0c4b),process[_0x12d95b(-0x17,0x1c)](0x1);}finally{_0x3362a1[_0x12d95b(0x95,0x5c)]();}});function _0x356ea1(_0x1472d1,_0x12bc0d){return _0x5084(_0x12bc0d-0x25b,_0x1472d1);}return _0x5e3850;}
@@ -1,70 +1 @@
1
- /**
2
- * Status Command
3
- */
4
- import { Command } from 'commander';
5
- import chalk from 'chalk';
6
- import { ConfigManager } from '../../config/manager.js';
7
- import { MemoryDatabase } from '../../db/database.js';
8
- import { findSessionFiles } from '../../session/parser.js';
9
- export function statusCommand() {
10
- return new Command('status')
11
- .description('Show A2A Memory status')
12
- .action(() => {
13
- const config = new ConfigManager().load();
14
- const db = new MemoryDatabase(config.db.path);
15
- try {
16
- db.initialize();
17
- const stats = db.getStats();
18
- const sessions = findSessionFiles();
19
- console.log(chalk.bold('\n๐Ÿ“Š A2A Memory Status\n'));
20
- // ๊ธฐ๋ณธ ์ •๋ณด
21
- console.log(`${chalk.dim('Mode:')} ${chalk.yellow(config.mode)}`);
22
- console.log(`${chalk.dim('DB Path:')} ${chalk.cyan(config.db.path)}`);
23
- console.log(`${chalk.dim('DB Size:')} ${formatBytes(stats.dbSizeBytes)}`);
24
- console.log(`${chalk.dim('Memories:')} ${chalk.green(stats.totalMemories)}`);
25
- console.log(`${chalk.dim('Sessions Processed:')} ${chalk.blue(stats.totalSessions)}`);
26
- console.log(`${chalk.dim('Sessions Available:')} ${sessions.length}`);
27
- const autoCaptureStatus = config.autoCapture.enabled
28
- ? chalk.green.bold('ON')
29
- : chalk.red('OFF');
30
- const autoInjectStatus = config.autoInject.enabled
31
- ? chalk.green.bold('ON')
32
- : chalk.red('OFF');
33
- console.log(`${chalk.dim('Auto-Capture:')} ${autoCaptureStatus}`);
34
- console.log(`${chalk.dim('Auto-Inject:')} ${autoInjectStatus}`);
35
- // ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ฉ”๋ชจ๋ฆฌ ํ…Œ์ด๋ธ”
36
- if (Object.keys(stats.categoryCounts).length > 0) {
37
- console.log(chalk.bold('\n๐Ÿ“ Memory Categories:\n'));
38
- const categories = Object.entries(stats.categoryCounts)
39
- .sort((a, b) => b[1] - a[1]);
40
- const maxCategoryLength = Math.max(...categories.map(([cat]) => cat.length));
41
- for (const [cat, count] of categories) {
42
- const bar = createBar(count, stats.totalMemories, 20);
43
- const percentage = ((count / stats.totalMemories) * 100).toFixed(1);
44
- console.log(` ${cat.padEnd(maxCategoryLength)} ${bar} ${chalk.cyan(count.toString().padStart(4))} ${chalk.dim(`(${percentage}%)`)}`);
45
- }
46
- }
47
- console.log(); // ๋นˆ ์ค„
48
- }
49
- finally {
50
- db.close();
51
- }
52
- });
53
- }
54
- function formatBytes(bytes) {
55
- if (bytes < 1024) {
56
- return chalk.green(`${bytes} B`);
57
- }
58
- else if (bytes < 1024 * 1024) {
59
- return chalk.green(`${(bytes / 1024).toFixed(1)} KB`);
60
- }
61
- else {
62
- return chalk.green(`${(bytes / (1024 * 1024)).toFixed(1)} MB`);
63
- }
64
- }
65
- function createBar(value, max, width) {
66
- const filled = Math.round((value / max) * width);
67
- const empty = width - filled;
68
- return chalk.blue('โ–ˆ'.repeat(filled)) + chalk.dim('โ–‘'.repeat(empty));
69
- }
70
- //# sourceMappingURL=status.js.map
1
+ (function(_0x3302d9,_0x52239f){const _0x3aabae=_0x3302d9();function _0x2c8db4(_0x28fefe,_0x990956){return _0x4f38(_0x28fefe-0x1b1,_0x990956);}function _0x3cb1f7(_0x2e5e0e,_0x2c400e){return _0x4f38(_0x2c400e-0x3a6,_0x2e5e0e);}while(!![]){try{const _0x29a623=-parseInt(_0x3cb1f7(0x574,0x58d))/0x1*(-parseInt(_0x2c8db4(0x3ca,0x3ee))/0x2)+-parseInt(_0x3cb1f7(0x5ae,0x5cd))/0x3*(parseInt(_0x3cb1f7(0x587,0x58f))/0x4)+parseInt(_0x3cb1f7(0x579,0x596))/0x5*(-parseInt(_0x2c8db4(0x3b6,0x394))/0x6)+-parseInt(_0x2c8db4(0x3d1,0x3f3))/0x7+parseInt(_0x3cb1f7(0x5b2,0x5ae))/0x8*(-parseInt(_0x3cb1f7(0x5ab,0x5a0))/0x9)+-parseInt(_0x2c8db4(0x3a8,0x3b5))/0xa+-parseInt(_0x3cb1f7(0x5b1,0x5ce))/0xb*(-parseInt(_0x2c8db4(0x3d5,0x3d1))/0xc);if(_0x29a623===_0x52239f)break;else _0x3aabae['push'](_0x3aabae['shift']());}catch(_0x56dd94){_0x3aabae['push'](_0x3aabae['shift']());}}}(_0x1750,0xd2293));function _0x4f38(_0x2c71f4,_0x4ed977){_0x2c71f4=_0x2c71f4-0x1e0;const _0x175080=_0x1750();let _0x4f38bb=_0x175080[_0x2c71f4];if(_0x4f38['QNeuzA']===undefined){var _0x5d8634=function(_0x3bbc4f){const _0x5309d5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d0949='',_0x3ef852='';for(let _0x4e634a=0x0,_0x572890,_0x4e3ada,_0x526f2c=0x0;_0x4e3ada=_0x3bbc4f['charAt'](_0x526f2c++);~_0x4e3ada&&(_0x572890=_0x4e634a%0x4?_0x572890*0x40+_0x4e3ada:_0x4e3ada,_0x4e634a++%0x4)?_0x4d0949+=String['fromCharCode'](0xff&_0x572890>>(-0x2*_0x4e634a&0x6)):0x0){_0x4e3ada=_0x5309d5['indexOf'](_0x4e3ada);}for(let _0x596bd4=0x0,_0x4af1cc=_0x4d0949['length'];_0x596bd4<_0x4af1cc;_0x596bd4++){_0x3ef852+='%'+('00'+_0x4d0949['charCodeAt'](_0x596bd4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3ef852);};_0x4f38['gnbqny']=_0x5d8634,_0x4f38['YqlVad']={},_0x4f38['QNeuzA']=!![];}const _0x531380=_0x175080[0x0],_0xbd6713=_0x2c71f4+_0x531380,_0xa705dc=_0x4f38['YqlVad'][_0xbd6713];return!_0xa705dc?(_0x4f38bb=_0x4f38['gnbqny'](_0x4f38bb),_0x4f38['YqlVad'][_0xbd6713]=_0x4f38bb):_0x4f38bb=_0xa705dc,_0x4f38bb;}import{Command}from'commander';import _0x5e8e9c from'chalk';function _0x1750(){const _0x95631=['Dg9gAxHLza','icaGicaGia','tw9KztO','CxzeBum','zw1VCNKGC3rHDa','u3jmwfy','twvTB3jPzxm6','mtaWota0n05dD0fHta','y2f0zwDVCNLdBW','mZzSrNbUDvy','ywn0Aw9U','zeHOteC','DMfPBgfIBgu6','icaGia','D05VB0G','icaGicaGicaGia','mJaWwNn2vxLc','t0zg','B3j5ifn0yxr1CW','icaGicaG','Bu12sfa','BgvUz3rO','u2vZC2LVBNmGqq','ndeWmdGWmePpywHYCq','Dw50CW','CMu6','mJDzzxDqCxC','yM9Sza','yMX1zq','yMzRBLC','BuLvqMW','yxv0B0LUAMvJDa','CM91BMq','ie1c','B2XjBvK','zgjtAxPLqNL0zq','Dg9tDhjPBMC','mJq1ngPfCgDtqq','CgfKrw5K','zw5HyMXLza','mJaXntyWmg9hquTzBW','AwvZ','Bg9N','CMvWzwf0','z3jLzw4','CM9JzxnZzwq6','u3LjD2K','EhbNzw4','CMvK','Dg90ywXnzw1VCG','qxv0BY1dyxb0Dq','zgvZy3jPChrPBW','y3LHBG','zgLT','z2v0u3rHDhm','Bwf4','zw50CMLLCW','mLnQrK9JsG','Bg9Hza','yxv0B0nHChr1CG','y2XVC2u','q2f0zwDVCMLLCW','Cgf0Aa','cVcFK4eGtwvTB3j5ia','nZq0nte1ogv2zK1Sra','qxv0BY1jBMPLyW','A2v5CW','EwvSBg93','mtjXuvv3CfO','BwfW','Egnlvem','mtu1mJe3B01Ys3PV','mJGXotyZnZDHtfv6D2u'];_0x1750=function(){return _0x95631;};return _0x1750();}import{ConfigManager}from'../../config/manager.js';import{MemoryDatabase}from'../../db/database.js';import{findSessionFiles}from'../../session/parser.js';export function statusCommand(){function _0xf69e05(_0x9ef17e,_0x3135f5){return _0x4f38(_0x9ef17e-0x284,_0x3135f5);}function _0x5a1a2d(_0x5a1c75,_0x4442e6){return _0x4f38(_0x5a1c75- -0x40,_0x4442e6);}const _0x3f80c9={'xpgen':function(_0x468c67){return _0x468c67();},'xhmex':_0xf69e05(0x466,0x44b),'dHhLG':'DB\x20Size:','wNooH':_0x5a1a2d(0x1b6,0x1d6)+_0x5a1a2d(0x1ac,0x190),'bfknW':_0xf69e05(0x496,0x484)+_0xf69e05(0x47d,0x46e),'mIUBl':_0x5a1a2d(0x1e1,0x1e8)+'t:','mMvHP':function(_0x58e933,_0x57e43a){return _0x58e933>_0x57e43a;},'qvDmC':function(_0xe9b3cc,_0x4ecef5,_0x3b13a2,_0x58f23f){return _0xe9b3cc(_0x4ecef5,_0x3b13a2,_0x58f23f);},'yqVCM':function(_0x3930ee,_0x4fc5df){return _0x3930ee*_0x4fc5df;},'pFAap':function(_0x44a22c,_0xf21780){return _0x44a22c/_0xf21780;},'bqLKT':'Show\x20A2A\x20M'+_0x5a1a2d(0x1a4,0x1ac)+'us'};return new Command('status')[_0xf69e05(0x497,0x4b6)+'n'](_0x3f80c9['bqLKT'])[_0x5a1a2d(0x1aa,0x1c3)](()=>{function _0x3c6a4c(_0x511f22,_0x4e0b98){return _0xf69e05(_0x4e0b98- -0x145,_0x511f22);}const _0x4a9308=new ConfigManager()[_0xd84927(0x564,0x57b)](),_0x3a1e2f=new MemoryDatabase(_0x4a9308['db'][_0xd84927(0x568,0x55c)]);function _0xd84927(_0x439318,_0x1d94bc){return _0xf69e05(_0x439318-0xc6,_0x1d94bc);}try{_0x3a1e2f['initialize']();const _0x562051=_0x3a1e2f[_0xd84927(0x560,0x552)](),_0x2478dc=_0x3f80c9[_0x3c6a4c(0x332,0x34e)](findSessionFiles);console[_0x3c6a4c(0x355,0x349)](_0x5e8e9c['bold']('\x0a๐Ÿ“Š\x20A2A\x20Mem'+_0x3c6a4c(0x33f,0x331)+'\x0a')),console[_0x3c6a4c(0x362,0x349)](_0x5e8e9c['dim'](_0x3f80c9['xhmex'])+('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3c6a4c(0x34e,0x32c))+_0x5e8e9c[_0xd84927(0x56d,0x567)](_0x4a9308['mode'])),console[_0xd84927(0x554,0x559)](_0x5e8e9c[_0xd84927(0x55f,0x57f)]('DB\x20Path:')+('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+'\x20')+_0x5e8e9c[_0x3c6a4c(0x330,0x353)](_0x4a9308['db'][_0xd84927(0x568,0x584)])),console['log'](_0x5e8e9c[_0x3c6a4c(0x355,0x354)](_0x3f80c9[_0x3c6a4c(0x307,0x32a)])+(_0xd84927(0x539,0x52e)+'\x20')+formatBytes(_0x562051[_0xd84927(0x54d,0x570)+'s'])),console[_0x3c6a4c(0x329,0x349)](_0x5e8e9c['dim'](_0xd84927(0x530,0x544))+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x5e8e9c['green'](_0x562051[_0x3c6a4c(0x32e,0x350)+_0xd84927(0x553,0x531)])),console[_0xd84927(0x554,0x578)](_0x5e8e9c[_0x3c6a4c(0x34a,0x354)]('Sessions\x20P'+_0x3c6a4c(0x363,0x34c))+'\x20'+_0x5e8e9c[_0xd84927(0x546,0x55f)](_0x562051['totalSessi'+'ons'])),console['log'](_0x5e8e9c[_0x3c6a4c(0x337,0x354)](_0x3f80c9[_0x3c6a4c(0x346,0x32d)])+'\x20'+_0x2478dc[_0x3c6a4c(0x32b,0x334)]);const _0x279107=_0x4a9308[_0xd84927(0x565,0x55a)+'e']['enabled']?_0x5e8e9c[_0x3c6a4c(0x34f,0x34b)][_0xd84927(0x545,0x555)]('ON'):_0x5e8e9c['red'](_0xd84927(0x53b,0x552)),_0x275211=_0x4a9308[_0x3c6a4c(0x339,0x33e)][_0x3c6a4c(0x353,0x346)]?_0x5e8e9c[_0xd84927(0x556,0x559)]['bold']('ON'):_0x5e8e9c[_0x3c6a4c(0x335,0x34f)]('OFF');console[_0xd84927(0x554,0x531)](_0x5e8e9c['dim'](_0x3f80c9[_0xd84927(0x547,0x555)])+_0xd84927(0x53d,0x53a)+_0x279107),console['log'](_0x5e8e9c[_0xd84927(0x55f,0x542)](_0x3f80c9[_0x3c6a4c(0x34e,0x33d)])+_0xd84927(0x52b,0x53c)+_0x275211);if(_0x3f80c9[_0x3c6a4c(0x314,0x333)](Object[_0xd84927(0x56c,0x551)](_0x562051['categoryCo'+_0x3c6a4c(0x349,0x337)])[_0x3c6a4c(0x318,0x334)],0x0)){console[_0x3c6a4c(0x352,0x349)](_0x5e8e9c[_0xd84927(0x545,0x520)](_0xd84927(0x569,0x562)+_0x3c6a4c(0x36b,0x35c)+':\x0a'));const _0x2b3cf0=Object[_0x3c6a4c(0x342,0x357)](_0x562051[_0x3c6a4c(0x308,0x327)+'unts'])['sort']((_0x5cebba,_0x3e8d18)=>_0x3e8d18[0x1]-_0x5cebba[0x1]),_0x159bd7=Math[_0xd84927(0x561,0x585)](..._0x2b3cf0[_0xd84927(0x56f,0x569)](([_0xccbdc3])=>_0xccbdc3[_0x3c6a4c(0x31d,0x334)]));for(const [_0x185ed5,_0x5bc267]of _0x2b3cf0){const _0x449f0c=_0x3f80c9[_0x3c6a4c(0x340,0x322)](createBar,_0x5bc267,_0x562051[_0x3c6a4c(0x36b,0x350)+_0xd84927(0x553,0x56b)],0x14),_0x59ea8c=_0x3f80c9['yqVCM'](_0x3f80c9['pFAap'](_0x5bc267,_0x562051[_0xd84927(0x55b,0x576)+_0x3c6a4c(0x368,0x348)]),0x64)['toFixed'](0x1);console[_0xd84927(0x554,0x54f)]('\x20\x20'+_0x185ed5[_0xd84927(0x550,0x54d)](_0x159bd7)+'\x20'+_0x449f0c+'\x20'+_0x5e8e9c['cyan'](_0x5bc267[_0x3c6a4c(0x339,0x343)]()['padStart'](0x4))+'\x20'+_0x5e8e9c['dim']('('+_0x59ea8c+'%)'));}}console[_0x3c6a4c(0x34e,0x349)]();}finally{_0x3a1e2f[_0x3c6a4c(0x34e,0x35b)]();}});}function formatBytes(_0x11288b){const _0x3a8726={'SyIwi':function(_0x387fc6,_0x37b773){return _0x387fc6!==_0x37b773;},'olImY':_0x4b9af8(-0x75,-0x92)};function _0x3d3420(_0x511b03,_0x22f2e7){return _0x4f38(_0x511b03-0x2f1,_0x22f2e7);}function _0x4b9af8(_0x2b3679,_0x25a59c){return _0x4f38(_0x2b3679- -0x29b,_0x25a59c);}if(_0x11288b<0x400)return _0x5e8e9c[_0x4b9af8(-0x8f,-0x91)](_0x11288b+'\x20B');else return _0x11288b<0x400*0x400?_0x3a8726[_0x4b9af8(-0x8d,-0x85)](_0x4b9af8(-0x75,-0x52),_0x3a8726[_0x3d3420(0x4f3,0x4f4)])?_0x3aa202[_0x4b9af8(-0x8f,-0x98)]((_0x16c6f3/0x400)[_0x3d3420(0x4d1,0x4af)](0x1)+'\x20KB'):_0x5e8e9c[_0x4b9af8(-0x8f,-0x9d)]((_0x11288b/0x400)['toFixed'](0x1)+'\x20KB'):_0x5e8e9c[_0x4b9af8(-0x8f,-0x90)]((_0x11288b/(0x400*0x400))[_0x3d3420(0x4d1,0x4c0)](0x1)+_0x3d3420(0x4f2,0x4e1));}function createBar(_0x5adc82,_0x126aad,_0xef7dd6){function _0xe77877(_0x3600c2,_0x458943){return _0x4f38(_0x458943- -0xdb,_0x3600c2);}const _0x4bb052={'hCYoj':function(_0x116ae5,_0x4498e3){return _0x116ae5*_0x4498e3;},'SrLXV':function(_0x3a41e7,_0xe2ce20){return _0x3a41e7+_0xe2ce20;}},_0x4f6694=Math[_0xe77877(0x141,0x125)](_0x4bb052['hCYoj'](_0x5adc82/_0x126aad,_0xef7dd6)),_0x3c48a4=_0xef7dd6-_0x4f6694;function _0x191730(_0x3b3dfb,_0x5a77ff){return _0x4f38(_0x5a77ff-0x2a,_0x3b3dfb);}return _0x4bb052[_0x191730(0x1f6,0x20f)](_0x5e8e9c['blue']('โ–ˆ'[_0xe77877(0x149,0x130)](_0x4f6694)),_0x5e8e9c[_0x191730(0x233,0x23f)]('โ–‘'[_0xe77877(0x136,0x130)](_0x3c48a4)));}