a2a-memory 0.11.5 → 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 (259) 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 -298
  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 -79
  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 -46
  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 -90
  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.js +1 -1400
  33. package/dist/embedding/e5-provider.js +1 -147
  34. package/dist/embedding/index.js +1 -34
  35. package/dist/embedding/local-provider.js +1 -157
  36. package/dist/embedding/openai-provider.js +1 -92
  37. package/dist/embedding/quantization.js +1 -89
  38. package/dist/extraction/dedup-manager.js +1 -161
  39. package/dist/extraction/emotion-filter.js +1 -33
  40. package/dist/extraction/extractor.js +1 -648
  41. package/dist/extraction/file-reference.js +1 -77
  42. package/dist/extraction/filter.js +1 -86
  43. package/dist/extraction/scorer.js +1 -142
  44. package/dist/extraction/similarity.js +1 -85
  45. package/dist/hooks/client-factory.js +1 -44
  46. package/dist/hooks/post-tool-use.js +1 -518
  47. package/dist/hooks/pre-compact.js +1 -209
  48. package/dist/hooks/session-end.js +1 -633
  49. package/dist/hooks/session-start.js +1 -549
  50. package/dist/hooks/shared.js +1 -110
  51. package/dist/hooks/user-prompt-submit.js +1 -316
  52. package/dist/i18n/index.js +1 -2
  53. package/dist/i18n/messages.js +1 -150
  54. package/dist/index.js +1 -43
  55. package/dist/lifecycle/cleanup-scheduler.js +1 -137
  56. package/dist/lifecycle/cleanup.js +1 -116
  57. package/dist/lifecycle/index.js +1 -13
  58. package/dist/lifecycle/quality-scorer.js +1 -46
  59. package/dist/lifecycle/tiering.js +1 -246
  60. package/dist/llm/client.js +1 -226
  61. package/dist/llm/index.js +1 -5
  62. package/dist/proficiency/actr-engine.js +1 -106
  63. package/dist/proficiency/detection.js +1 -77
  64. package/dist/proficiency/index.js +1 -9
  65. package/dist/proficiency/tracker.js +1 -173
  66. package/dist/proficiency/types.js +1 -8
  67. package/dist/providers/adapters.js +1 -140
  68. package/dist/providers/detector.js +1 -57
  69. package/dist/search/adaptive-router.js +1 -93
  70. package/dist/search/index.js +1 -9
  71. package/dist/search/ranker.js +1 -171
  72. package/dist/search/reranker.js +1 -155
  73. package/dist/session/parser.js +1 -130
  74. package/dist/skill/evaluator.js +1 -509
  75. package/dist/skill/index.js +1 -7
  76. package/dist/skill/types.js +1 -7
  77. package/dist/sync/client.js +1 -597
  78. package/dist/sync/encryption.js +1 -203
  79. package/dist/sync/index.js +1 -12
  80. package/dist/sync/queue.js +1 -214
  81. package/dist/sync/scheduler.js +1 -140
  82. package/dist/sync/synchronizer.js +1 -241
  83. package/dist/sync/team-synchronizer.js +1 -204
  84. package/dist/sync/vector-clock.js +1 -70
  85. package/dist/types/index.d.ts +1 -1
  86. package/dist/types/index.js +1 -132
  87. package/dist/utils/keychain.js +1 -170
  88. package/dist/utils/logger.js +1 -128
  89. package/package.json +14 -10
  90. package/dist/a2a/client.d.ts.map +0 -1
  91. package/dist/a2a/client.js.map +0 -1
  92. package/dist/a2a/discovery.d.ts.map +0 -1
  93. package/dist/a2a/discovery.js.map +0 -1
  94. package/dist/a2a/index.d.ts.map +0 -1
  95. package/dist/a2a/index.js.map +0 -1
  96. package/dist/a2a/types.d.ts.map +0 -1
  97. package/dist/a2a/types.js.map +0 -1
  98. package/dist/adapters/anthropic.d.ts.map +0 -1
  99. package/dist/adapters/anthropic.js.map +0 -1
  100. package/dist/chunking/chunker.d.ts.map +0 -1
  101. package/dist/chunking/chunker.js.map +0 -1
  102. package/dist/claude/sync.d.ts.map +0 -1
  103. package/dist/claude/sync.js.map +0 -1
  104. package/dist/cli/commands/add.d.ts.map +0 -1
  105. package/dist/cli/commands/add.js.map +0 -1
  106. package/dist/cli/commands/claude-sync.d.ts.map +0 -1
  107. package/dist/cli/commands/claude-sync.js.map +0 -1
  108. package/dist/cli/commands/cleanup.d.ts.map +0 -1
  109. package/dist/cli/commands/cleanup.js.map +0 -1
  110. package/dist/cli/commands/config.d.ts.map +0 -1
  111. package/dist/cli/commands/config.js.map +0 -1
  112. package/dist/cli/commands/edit.d.ts.map +0 -1
  113. package/dist/cli/commands/edit.js.map +0 -1
  114. package/dist/cli/commands/embed.d.ts.map +0 -1
  115. package/dist/cli/commands/embed.js.map +0 -1
  116. package/dist/cli/commands/extract.d.ts.map +0 -1
  117. package/dist/cli/commands/extract.js.map +0 -1
  118. package/dist/cli/commands/health.d.ts.map +0 -1
  119. package/dist/cli/commands/health.js.map +0 -1
  120. package/dist/cli/commands/list.d.ts.map +0 -1
  121. package/dist/cli/commands/list.js.map +0 -1
  122. package/dist/cli/commands/migrate-chunks.d.ts.map +0 -1
  123. package/dist/cli/commands/migrate-chunks.js.map +0 -1
  124. package/dist/cli/commands/migrate-file-refs.d.ts.map +0 -1
  125. package/dist/cli/commands/migrate-file-refs.js.map +0 -1
  126. package/dist/cli/commands/proficiency.d.ts.map +0 -1
  127. package/dist/cli/commands/proficiency.js.map +0 -1
  128. package/dist/cli/commands/rm.d.ts.map +0 -1
  129. package/dist/cli/commands/rm.js.map +0 -1
  130. package/dist/cli/commands/search.d.ts.map +0 -1
  131. package/dist/cli/commands/search.js.map +0 -1
  132. package/dist/cli/commands/setup-wizard.d.ts.map +0 -1
  133. package/dist/cli/commands/setup-wizard.js.map +0 -1
  134. package/dist/cli/commands/setup.d.ts.map +0 -1
  135. package/dist/cli/commands/setup.js.map +0 -1
  136. package/dist/cli/commands/skill.d.ts.map +0 -1
  137. package/dist/cli/commands/skill.js.map +0 -1
  138. package/dist/cli/commands/status.d.ts.map +0 -1
  139. package/dist/cli/commands/status.js.map +0 -1
  140. package/dist/cli/commands/sync.d.ts.map +0 -1
  141. package/dist/cli/commands/sync.js.map +0 -1
  142. package/dist/cli/commands/team.d.ts.map +0 -1
  143. package/dist/cli/commands/team.js.map +0 -1
  144. package/dist/cli/index.d.ts.map +0 -1
  145. package/dist/cli/index.js.map +0 -1
  146. package/dist/config/manager.d.ts.map +0 -1
  147. package/dist/config/manager.js.map +0 -1
  148. package/dist/db/database.d.ts.map +0 -1
  149. package/dist/db/database.js.map +0 -1
  150. package/dist/embedding/e5-provider.d.ts.map +0 -1
  151. package/dist/embedding/e5-provider.js.map +0 -1
  152. package/dist/embedding/index.d.ts.map +0 -1
  153. package/dist/embedding/index.js.map +0 -1
  154. package/dist/embedding/local-provider.d.ts.map +0 -1
  155. package/dist/embedding/local-provider.js.map +0 -1
  156. package/dist/embedding/openai-provider.d.ts.map +0 -1
  157. package/dist/embedding/openai-provider.js.map +0 -1
  158. package/dist/embedding/quantization.d.ts.map +0 -1
  159. package/dist/embedding/quantization.js.map +0 -1
  160. package/dist/extraction/dedup-manager.d.ts.map +0 -1
  161. package/dist/extraction/dedup-manager.js.map +0 -1
  162. package/dist/extraction/emotion-filter.d.ts.map +0 -1
  163. package/dist/extraction/emotion-filter.js.map +0 -1
  164. package/dist/extraction/extractor.d.ts.map +0 -1
  165. package/dist/extraction/extractor.js.map +0 -1
  166. package/dist/extraction/file-reference.d.ts.map +0 -1
  167. package/dist/extraction/file-reference.js.map +0 -1
  168. package/dist/extraction/filter.d.ts.map +0 -1
  169. package/dist/extraction/filter.js.map +0 -1
  170. package/dist/extraction/scorer.d.ts.map +0 -1
  171. package/dist/extraction/scorer.js.map +0 -1
  172. package/dist/extraction/similarity.d.ts.map +0 -1
  173. package/dist/extraction/similarity.js.map +0 -1
  174. package/dist/hooks/client-factory.d.ts.map +0 -1
  175. package/dist/hooks/client-factory.js.map +0 -1
  176. package/dist/hooks/post-tool-use.d.ts.map +0 -1
  177. package/dist/hooks/post-tool-use.js.map +0 -1
  178. package/dist/hooks/pre-compact.d.ts.map +0 -1
  179. package/dist/hooks/pre-compact.js.map +0 -1
  180. package/dist/hooks/session-end.d.ts.map +0 -1
  181. package/dist/hooks/session-end.js.map +0 -1
  182. package/dist/hooks/session-start.d.ts.map +0 -1
  183. package/dist/hooks/session-start.js.map +0 -1
  184. package/dist/hooks/shared.d.ts.map +0 -1
  185. package/dist/hooks/shared.js.map +0 -1
  186. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  187. package/dist/hooks/user-prompt-submit.js.map +0 -1
  188. package/dist/i18n/index.d.ts.map +0 -1
  189. package/dist/i18n/index.js.map +0 -1
  190. package/dist/i18n/messages.d.ts.map +0 -1
  191. package/dist/i18n/messages.js.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/index.js.map +0 -1
  194. package/dist/lifecycle/cleanup-scheduler.d.ts.map +0 -1
  195. package/dist/lifecycle/cleanup-scheduler.js.map +0 -1
  196. package/dist/lifecycle/cleanup.d.ts.map +0 -1
  197. package/dist/lifecycle/cleanup.js.map +0 -1
  198. package/dist/lifecycle/index.d.ts.map +0 -1
  199. package/dist/lifecycle/index.js.map +0 -1
  200. package/dist/lifecycle/quality-scorer.d.ts.map +0 -1
  201. package/dist/lifecycle/quality-scorer.js.map +0 -1
  202. package/dist/lifecycle/tiering.d.ts.map +0 -1
  203. package/dist/lifecycle/tiering.js.map +0 -1
  204. package/dist/llm/client.d.ts.map +0 -1
  205. package/dist/llm/client.js.map +0 -1
  206. package/dist/llm/index.d.ts.map +0 -1
  207. package/dist/llm/index.js.map +0 -1
  208. package/dist/proficiency/actr-engine.d.ts.map +0 -1
  209. package/dist/proficiency/actr-engine.js.map +0 -1
  210. package/dist/proficiency/detection.d.ts.map +0 -1
  211. package/dist/proficiency/detection.js.map +0 -1
  212. package/dist/proficiency/index.d.ts.map +0 -1
  213. package/dist/proficiency/index.js.map +0 -1
  214. package/dist/proficiency/tracker.d.ts.map +0 -1
  215. package/dist/proficiency/tracker.js.map +0 -1
  216. package/dist/proficiency/types.d.ts.map +0 -1
  217. package/dist/proficiency/types.js.map +0 -1
  218. package/dist/providers/adapters.d.ts.map +0 -1
  219. package/dist/providers/adapters.js.map +0 -1
  220. package/dist/providers/detector.d.ts.map +0 -1
  221. package/dist/providers/detector.js.map +0 -1
  222. package/dist/search/adaptive-router.d.ts.map +0 -1
  223. package/dist/search/adaptive-router.js.map +0 -1
  224. package/dist/search/index.d.ts.map +0 -1
  225. package/dist/search/index.js.map +0 -1
  226. package/dist/search/ranker.d.ts.map +0 -1
  227. package/dist/search/ranker.js.map +0 -1
  228. package/dist/search/reranker.d.ts.map +0 -1
  229. package/dist/search/reranker.js.map +0 -1
  230. package/dist/session/parser.d.ts.map +0 -1
  231. package/dist/session/parser.js.map +0 -1
  232. package/dist/skill/evaluator.d.ts.map +0 -1
  233. package/dist/skill/evaluator.js.map +0 -1
  234. package/dist/skill/index.d.ts.map +0 -1
  235. package/dist/skill/index.js.map +0 -1
  236. package/dist/skill/types.d.ts.map +0 -1
  237. package/dist/skill/types.js.map +0 -1
  238. package/dist/sync/client.d.ts.map +0 -1
  239. package/dist/sync/client.js.map +0 -1
  240. package/dist/sync/encryption.d.ts.map +0 -1
  241. package/dist/sync/encryption.js.map +0 -1
  242. package/dist/sync/index.d.ts.map +0 -1
  243. package/dist/sync/index.js.map +0 -1
  244. package/dist/sync/queue.d.ts.map +0 -1
  245. package/dist/sync/queue.js.map +0 -1
  246. package/dist/sync/scheduler.d.ts.map +0 -1
  247. package/dist/sync/scheduler.js.map +0 -1
  248. package/dist/sync/synchronizer.d.ts.map +0 -1
  249. package/dist/sync/synchronizer.js.map +0 -1
  250. package/dist/sync/team-synchronizer.d.ts.map +0 -1
  251. package/dist/sync/team-synchronizer.js.map +0 -1
  252. package/dist/sync/vector-clock.d.ts.map +0 -1
  253. package/dist/sync/vector-clock.js.map +0 -1
  254. package/dist/types/index.d.ts.map +0 -1
  255. package/dist/types/index.js.map +0 -1
  256. package/dist/utils/keychain.d.ts.map +0 -1
  257. package/dist/utils/keychain.js.map +0 -1
  258. package/dist/utils/logger.d.ts.map +0 -1
  259. package/dist/utils/logger.js.map +0 -1
@@ -1,130 +1 @@
1
- /**
2
- * Session JSONL Parser
3
- *
4
- * Claude Code 세션 JSONL 파일을 파싱하여 SessionMessage 배열로 변환합니다.
5
- * 세션 파일 위치: ~/.claude/projects/<project-slug>/<session-id>.jsonl
6
- */
7
- import { readFileSync, readdirSync, statSync, existsSync } from 'node:fs';
8
- import { join, basename } from 'node:path';
9
- import { homedir } from 'node:os';
10
- const CLAUDE_PROJECTS_DIR = join(homedir(), '.claude', 'projects');
11
- /**
12
- * JSONL 파일을 파싱하여 SessionMessage 배열 반환
13
- */
14
- export function parseSessionFile(filePath) {
15
- if (!existsSync(filePath)) {
16
- console.error('[a2a] Session file not found:', filePath);
17
- return [];
18
- }
19
- const content = readFileSync(filePath, 'utf-8');
20
- const lines = content.split('\n');
21
- const messages = [];
22
- for (let i = 0; i < lines.length; i++) {
23
- const line = lines[i].trim();
24
- if (!line)
25
- continue;
26
- try {
27
- const parsed = JSON.parse(line);
28
- if (parsed.uuid && parsed.type && parsed.message) {
29
- messages.push(parsed);
30
- }
31
- }
32
- catch {
33
- console.error(`[a2a] Invalid JSON at line ${i + 1} in ${filePath}`);
34
- }
35
- }
36
- return messages;
37
- }
38
- /**
39
- * 프로젝트 경로를 Claude의 디렉토리 slug로 변환
40
- * /Users/name/project → -Users-name-project
41
- */
42
- export function projectPathToSlug(projectPath) {
43
- return projectPath.replace(/\//g, '-');
44
- }
45
- /**
46
- * Claude 디렉토리 slug를 프로젝트 경로로 변환
47
- * -Users-name-project → /Users/name/project
48
- */
49
- export function slugToProjectPath(slug) {
50
- if (slug.startsWith('-')) {
51
- return slug.replace(/-/g, '/');
52
- }
53
- return slug;
54
- }
55
- /**
56
- * JSONL 파일의 줄 수를 빠르게 계산
57
- */
58
- function countLines(filePath) {
59
- const content = readFileSync(filePath, 'utf-8');
60
- return content.split('\n').filter((line) => line.trim().length > 0).length;
61
- }
62
- /**
63
- * 세션 파일 목록 탐색
64
- */
65
- export function findSessionFiles(projectPath) {
66
- if (!existsSync(CLAUDE_PROJECTS_DIR)) {
67
- return [];
68
- }
69
- const results = [];
70
- try {
71
- const projectDirs = projectPath
72
- ? [projectPathToSlug(projectPath)]
73
- : readdirSync(CLAUDE_PROJECTS_DIR);
74
- for (const dir of projectDirs) {
75
- const dirPath = join(CLAUDE_PROJECTS_DIR, dir);
76
- if (!existsSync(dirPath))
77
- continue;
78
- let stat;
79
- try {
80
- stat = statSync(dirPath);
81
- }
82
- catch {
83
- continue;
84
- }
85
- if (!stat.isDirectory())
86
- continue;
87
- let files;
88
- try {
89
- files = readdirSync(dirPath);
90
- }
91
- catch {
92
- continue;
93
- }
94
- for (const file of files) {
95
- if (!file.endsWith('.jsonl'))
96
- continue;
97
- const filePath = join(dirPath, file);
98
- const sessionId = basename(file, '.jsonl');
99
- try {
100
- const fileStat = statSync(filePath);
101
- const messageCount = countLines(filePath);
102
- results.push({
103
- sessionId,
104
- projectPath: slugToProjectPath(dir),
105
- filePath,
106
- messageCount,
107
- sizeBytes: fileStat.size,
108
- modifiedAt: fileStat.mtimeMs,
109
- });
110
- }
111
- catch {
112
- console.error('[a2a] Failed to stat session file:', filePath);
113
- }
114
- }
115
- }
116
- }
117
- catch (err) {
118
- console.error('[a2a] Failed to scan session files:', err);
119
- }
120
- return results;
121
- }
122
- /**
123
- * 특정 세션의 메시지 반환
124
- */
125
- export function getSessionMessages(sessionId, projectPath) {
126
- const slug = projectPathToSlug(projectPath);
127
- const filePath = join(CLAUDE_PROJECTS_DIR, slug, `${sessionId}.jsonl`);
128
- return parseSessionFile(filePath);
129
- }
130
- //# sourceMappingURL=parser.js.map
1
+ (function(_0x5cc448,_0x311603){function _0x1b8519(_0x2d80a5,_0x2374ae){return _0x1ddd(_0x2374ae- -0x243,_0x2d80a5);}function _0x428984(_0x1af531,_0x52cb5f){return _0x1ddd(_0x52cb5f- -0xc8,_0x1af531);}const _0x37be2f=_0x5cc448();while(!![]){try{const _0x42f6e3=-parseInt(_0x428984(0x74,0x63))/0x1+-parseInt(_0x428984(0x8a,0x73))/0x2+-parseInt(_0x428984(0x7c,0x6a))/0x3+parseInt(_0x428984(0x4c,0x69))/0x4*(parseInt(_0x1b8519(-0x150,-0x13c))/0x5)+parseInt(_0x428984(0x68,0x68))/0x6+parseInt(_0x1b8519(-0xfe,-0x11b))/0x7*(-parseInt(_0x1b8519(-0xf9,-0x114))/0x8)+parseInt(_0x1b8519(-0x143,-0x139))/0x9*(parseInt(_0x428984(0x54,0x6f))/0xa);if(_0x42f6e3===_0x311603)break;else _0x37be2f['push'](_0x37be2f['shift']());}catch(_0x8601af){_0x37be2f['push'](_0x37be2f['shift']());}}}(_0x5665,0xe8466));import{readFileSync,readdirSync,statSync,existsSync}from'node:fs';import{join,basename}from'node:path';function _0x4fbb9e(_0x4a4023,_0x3ec523){return _0x1ddd(_0x3ec523- -0x39d,_0x4a4023);}import{homedir}from'node:os';const CLAUDE_PROJECTS_DIR=join(homedir(),_0xee8a42(0x1c1,0x1b9),_0x4fbb9e(-0x292,-0x29a));export function parseSessionFile(_0x19ad75){const _0x2e3331={'CUWfd':'[a2a]\x20Sess'+_0x115e13(-0x251,-0x240)+_0x115e13(-0x23c,-0x23f),'YGhDL':function(_0x18f5d0,_0x4fbed3){return _0x18f5d0(_0x4fbed3);},'DUMop':_0x51bf50(0x77,0x5f),'OKUDe':'NaabT','emRzU':function(_0x1c4495,_0x10dcc1,_0x25bac7){return _0x1c4495(_0x10dcc1,_0x25bac7);},'aGPhy':function(_0x1ad94d,_0x4aa8ce){return _0x1ad94d===_0x4aa8ce;}};function _0x51bf50(_0x3f37b2,_0xcfd293){return _0x4fbb9e(_0xcfd293,_0x3f37b2-0x2df);}if(!_0x2e3331[_0x115e13(-0x24d,-0x230)](existsSync,_0x19ad75))return _0x2e3331[_0x51bf50(0x43,0x33)]===_0x2e3331[_0x51bf50(0x75,0x8e)]?(_0x137af3[_0x115e13(-0x236,-0x221)](_0x2e3331[_0x51bf50(0x7c,0x92)],_0x4f5d67),[]):(console[_0x51bf50(0x7b,0x80)](_0x2e3331[_0x115e13(-0x22e,-0x220)],_0x19ad75),[]);const _0x23d421=_0x2e3331[_0x51bf50(0x6e,0x73)](readFileSync,_0x19ad75,_0x51bf50(0x44,0x2b));function _0x115e13(_0x2e695e,_0x2a8c04){return _0x4fbb9e(_0x2e695e,_0x2a8c04-0x43);}const _0xe6ce06=_0x23d421[_0x115e13(-0x230,-0x242)]('\x0a'),_0x5d337e=[];for(let _0x15455e=0x0;_0x15455e<_0xe6ce06[_0x115e13(-0x230,-0x241)];_0x15455e++){const _0x3b6cca=_0xe6ce06[_0x15455e]['trim']();if(!_0x3b6cca)continue;try{const _0x20cf16=JSON['parse'](_0x3b6cca);_0x20cf16['uuid']&&_0x20cf16[_0x115e13(-0x225,-0x243)]&&_0x20cf16[_0x115e13(-0x24c,-0x255)]&&_0x5d337e[_0x115e13(-0x25b,-0x254)](_0x20cf16);}catch{if(_0x2e3331[_0x115e13(-0x225,-0x23c)](_0x51bf50(0x4e,0x5e),_0x51bf50(0x68,0x4a))){if(_0x43a86b['startsWith']('-'))return _0x36b2a4['replace'](/-/g,'/');return _0x448531;}else console[_0x115e13(-0x20e,-0x221)](_0x115e13(-0x232,-0x236)+_0x115e13(-0x228,-0x23a)+_0x115e13(-0x22c,-0x247)+(_0x15455e+0x1)+_0x51bf50(0x4d,0x38)+_0x19ad75);}}return _0x5d337e;}function _0x1ddd(_0x1558e9,_0x4ed190){_0x1558e9=_0x1558e9-0xff;const _0x566508=_0x5665();let _0x1ddd0c=_0x566508[_0x1558e9];if(_0x1ddd['raEfVy']===undefined){var _0x1c18fd=function(_0x22aecf){const _0x33a662='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f723d='',_0x3f6c61='';for(let _0x137af3=0x0,_0x4f5d67,_0x4bf3f3,_0x372b7b=0x0;_0x4bf3f3=_0x22aecf['charAt'](_0x372b7b++);~_0x4bf3f3&&(_0x4f5d67=_0x137af3%0x4?_0x4f5d67*0x40+_0x4bf3f3:_0x4bf3f3,_0x137af3++%0x4)?_0x2f723d+=String['fromCharCode'](0xff&_0x4f5d67>>(-0x2*_0x137af3&0x6)):0x0){_0x4bf3f3=_0x33a662['indexOf'](_0x4bf3f3);}for(let _0x38ebd8=0x0,_0xb95689=_0x2f723d['length'];_0x38ebd8<_0xb95689;_0x38ebd8++){_0x3f6c61+='%'+('00'+_0x2f723d['charCodeAt'](_0x38ebd8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f6c61);};_0x1ddd['vdvuFD']=_0x1c18fd,_0x1ddd['jjqRIn']={},_0x1ddd['raEfVy']=!![];}const _0x474335=_0x566508[0x0],_0x137450=_0x1558e9+_0x474335,_0x52e974=_0x1ddd['jjqRIn'][_0x137450];return!_0x52e974?(_0x1ddd0c=_0x1ddd['vdvuFD'](_0x1ddd0c),_0x1ddd['jjqRIn'][_0x137450]=_0x1ddd0c):_0x1ddd0c=_0x52e974,_0x1ddd0c;}export function projectPathToSlug(_0x120700){return _0x120700['replace'](/\//g,'-');}function _0xee8a42(_0x43124d,_0x4ba702){return _0x1ddd(_0x4ba702-0x92,_0x43124d);}export function slugToProjectPath(_0x2afe98){function _0x4ca0f9(_0x2ec864,_0x39460a){return _0xee8a42(_0x2ec864,_0x39460a- -0x3e8);}const _0xac5713={'ZfPgM':function(_0x313522,_0xf11b2f){return _0x313522(_0xf11b2f);},'iXzAj':_0xdee586(0x1ae,0x1c0)};function _0xdee586(_0x328fa8,_0x49d828){return _0xee8a42(_0x49d828,_0x328fa8-0xc);}if(_0x2afe98['startsWith']('-')){if(_0xac5713['iXzAj']!==_0x4ca0f9(-0x22f,-0x246))_0x5704c4=_0xac5713['ZfPgM'](_0x1137f9,_0x56d4a5);else return _0x2afe98[_0x4ca0f9(-0x217,-0x235)](/-/g,'/');}return _0x2afe98;}function _0x5665(){const _0x3858b8=['mta3nJHfB1z0qwq','mtaYotKXmJzLCgrjwvm','nhPWvKnPEq','mtmZnJG5nMrquu5UyG','t0Tvrgu','w2eYyv0GrMfPBa','sLjSDvG','ihnLC3nPB24GzG','mJe5otuXmdbWyxvxtvO','zw5KC1DPDgG','zxjYB3i','q1vxzMq','mJe0oduXogvlzu91qW','CKnAzNm','vw5Iq2q','rfvnB3a','DxrMltG','ChjVAMvJDhm','CLPJuui','BwvZC2fNzq','ChvZAa','ntmZmJu1twHczwDj','Bej0tfu','uMvKzeG','ou9Zzu1XzW','igLUia','tKnUwLq','seXtBxK','BxrPBwvnCW','Awz5s1O','rvDOtxq','CNzpAxi','DhjPBq','DcbSAw5Lia','zwqGDg8GC2nHBG','lMPZB25S','y1jJA2i','DhLWzq','C3bSAxq','BgvUz3rO','Aw9UigzPBguGBG','B3qGzM91BMq6','uM9iBei','qLvAALq','yuDqAhK','EK9nCwG','BgLKiePtt04Gyq','CMvWBgfJzq','zMLSDgvY','zwqGDg8GC3rHDa','w2eYyv0Gsw52yq','C2L6zq','C1jnDg8','lMnSyxvKzq','mtK4mwP0qLvKzW','BKrxtfu','wuDOreW','mte3mdq3nxfcD1Pesq','zw1sELu','AxneAxjLy3rVCG','sKDnwfu'];_0x5665=function(){return _0x3858b8;};return _0x5665();}function countLines(_0x1c3165){function _0x721b8c(_0x1d7657,_0x3e0540){return _0x4fbb9e(_0x1d7657,_0x3e0540-0x617);}const _0x447a64={'ReddH':function(_0x2f9324,_0x9a05cb,_0x11d4ff){return _0x2f9324(_0x9a05cb,_0x11d4ff);}};function _0xdbddc1(_0x1dd8f0,_0xf08f99){return _0x4fbb9e(_0xf08f99,_0x1dd8f0-0x258);}const _0x4e38eb=_0x447a64[_0x721b8c(0x393,0x383)](readFileSync,_0x1c3165,_0x721b8c(0x378,0x37c));return _0x4e38eb[_0xdbddc1(-0x2d,-0x2e)]('\x0a')[_0x721b8c(0x392,0x39c)](_0x32efba=>_0x32efba[_0xdbddc1(-0x33,-0x15)]()[_0xdbddc1(-0x2c,-0x3a)]>0x0)[_0xdbddc1(-0x2c,-0x3a)];}export function findSessionFiles(_0x1609cb){function _0x5748b1(_0x5e98b7,_0x56b037){return _0x4fbb9e(_0x5e98b7,_0x56b037-0x52a);}const _0x3b5132={'zOMqh':function(_0x26d425,_0x22e3cb){return _0x26d425(_0x22e3cb);},'HLSmy':_0x8bc813(-0x19e,-0x18a),'rvOir':function(_0xa90654,_0x3a044d){return _0xa90654===_0x3a044d;},'cRckb':function(_0x263adc,_0x741e44){return _0x263adc(_0x741e44);},'VGVtg':function(_0x3d3e8f,_0xcd8d28,_0xa005c5){return _0x3d3e8f(_0xcd8d28,_0xa005c5);},'UFoLD':function(_0x29e1f9,_0x48fdc7,_0x9ae81e){return _0x29e1f9(_0x48fdc7,_0x9ae81e);},'nDWLU':_0x5748b1(0x286,0x2a2),'ifyKZ':'UPRVk','rCZfs':'WkTOw','lBtLU':function(_0x2117c5,_0x1a5767){return _0x2117c5(_0x1a5767);},'UnbCd':_0x8bc813(-0x16c,-0x152)+_0x8bc813(-0x18c,-0x18c)+'\x20session\x20f'+'iles:'};if(!_0x3b5132[_0x8bc813(-0x181,-0x1a0)](existsSync,CLAUDE_PROJECTS_DIR))return[];const _0x4fc465=[];try{const _0x2763bc=_0x1609cb?[_0x3b5132['zOMqh'](projectPathToSlug,_0x1609cb)]:readdirSync(CLAUDE_PROJECTS_DIR);for(const _0x42ef84 of _0x2763bc){const _0x50f053=join(CLAUDE_PROJECTS_DIR,_0x42ef84);if(!existsSync(_0x50f053))continue;let _0x2d2df1;try{if(_0x3b5132[_0x5748b1(0x286,0x29e)](_0x5748b1(0x2af,0x2a9),_0x5748b1(0x29a,0x2aa))){const _0x59ba6a=_0x34bcb1(_0x2a05f6),_0x134278=_0x3b5132['zOMqh'](_0x38e1e3,_0x1169e3);_0x2b9416[_0x8bc813(-0x19a,-0x1a3)]({'sessionId':_0x23b24d,'projectPath':_0x302795(_0x2320cb),'filePath':_0x49d6c9,'messageCount':_0x134278,'sizeBytes':_0x59ba6a[_0x5748b1(0x2c0,0x2b2)],'modifiedAt':_0x59ba6a[_0x5748b1(0x2aa,0x29b)]});}else _0x2d2df1=_0x3b5132[_0x5748b1(0x292,0x2ac)](statSync,_0x50f053);}catch{continue;}if(!_0x2d2df1[_0x8bc813(-0x173,-0x174)+'y']())continue;let _0x21b323;try{_0x21b323=_0x3b5132[_0x5748b1(0x292,0x2a3)](readdirSync,_0x50f053);}catch{continue;}for(const _0x556645 of _0x21b323){if(!_0x556645[_0x8bc813(-0x168,-0x174)](_0x8bc813(-0x18b,-0x178)))continue;const _0x5e3112=_0x3b5132['VGVtg'](join,_0x50f053,_0x556645),_0x237630=_0x3b5132['UFoLD'](basename,_0x556645,_0x3b5132[_0x8bc813(-0x177,-0x168)]);try{if(_0x3b5132[_0x8bc813(-0x18f,-0x176)](_0x3b5132[_0x5748b1(0x2b6,0x29c)],_0x3b5132[_0x8bc813(-0x1a1,-0x1ba)])){const _0x47e48a=_0xfe66e9(_0xb15974,cHXeZM[_0x5748b1(0x2ac,0x29a)]);return _0x47e48a[_0x5748b1(0x29b,0x2a5)]('\x0a')[_0x5748b1(0x2b9,0x2af)](_0x57734d=>_0x57734d['trim']()[_0x8bc813(-0x187,-0x16b)]>0x0)[_0x8bc813(-0x187,-0x1a2)];}else{const _0x521f4b=statSync(_0x5e3112),_0x2fd1f3=_0x3b5132[_0x5748b1(0x28e,0x295)](countLines,_0x5e3112);_0x4fc465[_0x8bc813(-0x19a,-0x180)]({'sessionId':_0x237630,'projectPath':slugToProjectPath(_0x42ef84),'filePath':_0x5e3112,'messageCount':_0x2fd1f3,'sizeBytes':_0x521f4b[_0x8bc813(-0x17b,-0x171)],'modifiedAt':_0x521f4b['mtimeMs']});}}catch{console[_0x8bc813(-0x167,-0x16e)]('[a2a]\x20Fail'+_0x8bc813(-0x17d,-0x16e)+_0x5748b1(0x2bc,0x2c3)+'ile:',_0x5e3112);}}}}catch(_0x15051c){console[_0x8bc813(-0x167,-0x15a)](_0x3b5132[_0x8bc813(-0x1a0,-0x185)],_0x15051c);}function _0x8bc813(_0x4cd67e,_0x45e22d){return _0x4fbb9e(_0x45e22d,_0x4cd67e-0xfd);}return _0x4fc465;}export function getSessionMessages(_0x283359,_0x36803a){const _0x471ec7={'rZcQB':function(_0xdd440f,_0xbdea0d){return _0xdd440f(_0xbdea0d);},'JGMXU':function(_0x271bfd,_0x418746,_0xd470ae,_0x3c8601){return _0x271bfd(_0x418746,_0xd470ae,_0x3c8601);}},_0x57c748=_0x471ec7[_0x1e0392(0x1f5,0x1f9)](projectPathToSlug,_0x36803a),_0x181937=_0x471ec7[_0xe5dfec(0x3c4,0x3c2)](join,CLAUDE_PROJECTS_DIR,_0x57c748,_0x283359+'.jsonl');function _0xe5dfec(_0x3a2ce8,_0x7fdad5){return _0x4fbb9e(_0x3a2ce8,_0x7fdad5-0x631);}function _0x1e0392(_0x47fcfd,_0x328588){return _0x4fbb9e(_0x328588,_0x47fcfd-0x48e);}return _0x471ec7[_0x1e0392(0x1f5,0x1e4)](parseSessionFile,_0x181937);}