claude-memory-layer 1.0.31 → 1.0.33

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 (343) hide show
  1. package/README.md +9 -2
  2. package/dist/cli/index.js +1110 -72
  3. package/dist/cli/index.js.map +4 -4
  4. package/dist/core/index.js +414 -25
  5. package/dist/core/index.js.map +2 -2
  6. package/dist/hooks/post-tool-use.js +416 -27
  7. package/dist/hooks/post-tool-use.js.map +2 -2
  8. package/dist/hooks/semantic-daemon.js +416 -27
  9. package/dist/hooks/semantic-daemon.js.map +2 -2
  10. package/dist/hooks/session-end.js +416 -27
  11. package/dist/hooks/session-end.js.map +2 -2
  12. package/dist/hooks/session-start.js +416 -27
  13. package/dist/hooks/session-start.js.map +2 -2
  14. package/dist/hooks/stop.js +416 -27
  15. package/dist/hooks/stop.js.map +2 -2
  16. package/dist/hooks/user-prompt-submit.js +504 -34
  17. package/dist/hooks/user-prompt-submit.js.map +2 -2
  18. package/dist/index.js +416 -27
  19. package/dist/index.js.map +2 -2
  20. package/dist/mcp/index.js +407 -32
  21. package/dist/mcp/index.js.map +2 -2
  22. package/dist/server/api/index.js +850 -44
  23. package/dist/server/api/index.js.map +3 -3
  24. package/dist/server/index.js +1073 -64
  25. package/dist/server/index.js.map +3 -3
  26. package/dist/services/memory-service.js +416 -27
  27. package/dist/services/memory-service.js.map +2 -2
  28. package/dist/ui/assets/js/bootstrap.js +2 -0
  29. package/dist/ui/assets/js/overview.js +166 -3
  30. package/dist/ui/assets/js/state.js +3 -0
  31. package/dist/ui/index.html +20 -0
  32. package/dist/ui/style.css +193 -0
  33. package/package.json +15 -2
  34. package/scripts/postinstall-embedding-backend.cjs +16 -12
  35. package/AGENTS.md +0 -71
  36. package/CLAUDE.md +0 -30
  37. package/HANDOFF.md +0 -92
  38. package/Memo.txt +0 -558
  39. package/benchmarks/replay/anonymized-real-sessions.json +0 -48
  40. package/config/kpi-thresholds.json +0 -7
  41. package/context.md +0 -636
  42. package/docs/ARCHITECTURE_COMPARISON_AND_RECOMMENDATIONS.md +0 -627
  43. package/docs/HERMES_MEMORY_INGESTION_ANALYSIS.md +0 -440
  44. package/docs/MCP_MEMORY_SERVICE_COMPARATIVE_REVIEW.md +0 -271
  45. package/docs/MEMORY_USEFULNESS_AUDIT.md +0 -371
  46. package/docs/MEMORY_USEFULNESS_AUDIT_RAW.json +0 -80
  47. package/docs/MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md +0 -333
  48. package/docs/MEMU_ADOPTION.md +0 -40
  49. package/docs/OPERATIONS.md +0 -18
  50. package/docs/PRODUCT_VALIDATION_MATRIX.md +0 -82
  51. package/docs/PROJECT_STRUCTURE_ANALYSIS.md +0 -421
  52. package/docs/REFACTORING_MILESTONES_AND_ISSUES.md +0 -501
  53. package/docs/REFACTORING_PLAN_THIN_CORE.md +0 -414
  54. package/docs/REFERENCE_PROJECT_ANALYSES.md +0 -25
  55. package/docs/SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md +0 -452
  56. package/docs/TARGET_ARCHITECTURE_AND_FOLDER_STRUCTURE.md +0 -446
  57. package/docs/architecture/comparison-index.md +0 -47
  58. package/docs/reports/codex-real-data-validation-20260505T040447Z.md +0 -46
  59. package/plan.md +0 -1642
  60. package/scripts/build.ts +0 -159
  61. package/scripts/bump-patch-version.sh +0 -18
  62. package/scripts/delete-unknown-projects.js +0 -154
  63. package/scripts/fix-sync-gap.js +0 -32
  64. package/scripts/generate-session-qrels.ts +0 -126
  65. package/scripts/heartbeat-memory-orchestrator.sh +0 -28
  66. package/scripts/replay-retrieval-benchmark.ts +0 -69
  67. package/scripts/report-sync-gap.js +0 -26
  68. package/scripts/review-queue-auto-resolve.js +0 -21
  69. package/scripts/sync-gap-auto-heal.sh +0 -17
  70. package/spec.md +0 -624
  71. package/specs/20260207-dashboard-upgrade/context.md +0 -38
  72. package/specs/20260207-dashboard-upgrade/spec.md +0 -96
  73. package/specs/citations-system/context.md +0 -243
  74. package/specs/citations-system/plan.md +0 -495
  75. package/specs/citations-system/spec.md +0 -371
  76. package/specs/endless-mode/context.md +0 -305
  77. package/specs/endless-mode/plan.md +0 -620
  78. package/specs/endless-mode/spec.md +0 -455
  79. package/specs/entity-edge-model/context.md +0 -401
  80. package/specs/entity-edge-model/plan.md +0 -459
  81. package/specs/entity-edge-model/spec.md +0 -391
  82. package/specs/evidence-aligner-v2/context.md +0 -401
  83. package/specs/evidence-aligner-v2/plan.md +0 -303
  84. package/specs/evidence-aligner-v2/spec.md +0 -312
  85. package/specs/mcp-desktop-integration/context.md +0 -278
  86. package/specs/mcp-desktop-integration/plan.md +0 -550
  87. package/specs/mcp-desktop-integration/spec.md +0 -494
  88. package/specs/memory-utilization-improvements/context.md +0 -145
  89. package/specs/memory-utilization-improvements/plan.md +0 -361
  90. package/specs/memory-utilization-improvements/spec.md +0 -361
  91. package/specs/post-tool-use-hook/context.md +0 -319
  92. package/specs/post-tool-use-hook/plan.md +0 -469
  93. package/specs/post-tool-use-hook/spec.md +0 -364
  94. package/specs/private-tags/context.md +0 -288
  95. package/specs/private-tags/plan.md +0 -412
  96. package/specs/private-tags/spec.md +0 -345
  97. package/specs/progressive-disclosure/context.md +0 -346
  98. package/specs/progressive-disclosure/plan.md +0 -663
  99. package/specs/progressive-disclosure/spec.md +0 -415
  100. package/specs/selective-tool-observation/context.md +0 -100
  101. package/specs/selective-tool-observation/plan.md +0 -158
  102. package/specs/selective-tool-observation/spec.md +0 -127
  103. package/specs/task-entity-system/context.md +0 -297
  104. package/specs/task-entity-system/plan.md +0 -301
  105. package/specs/task-entity-system/spec.md +0 -314
  106. package/specs/thin-core-refactor/context.md +0 -275
  107. package/specs/thin-core-refactor/plan.md +0 -536
  108. package/specs/thin-core-refactor/spec.md +0 -465
  109. package/specs/vector-outbox-v2/context.md +0 -470
  110. package/specs/vector-outbox-v2/plan.md +0 -562
  111. package/specs/vector-outbox-v2/spec.md +0 -466
  112. package/specs/web-viewer-ui/context.md +0 -384
  113. package/specs/web-viewer-ui/plan.md +0 -797
  114. package/specs/web-viewer-ui/spec.md +0 -516
  115. package/src/adapters/claude/capture/index.ts +0 -3
  116. package/src/adapters/claude/context/index.ts +0 -3
  117. package/src/adapters/claude/hooks/index.ts +0 -21
  118. package/src/adapters/claude/hooks/post-tool-use.ts +0 -239
  119. package/src/adapters/claude/hooks/prompt-injection-policy.ts +0 -104
  120. package/src/adapters/claude/hooks/semantic-daemon-client.ts +0 -209
  121. package/src/adapters/claude/hooks/semantic-daemon.ts +0 -283
  122. package/src/adapters/claude/hooks/session-end.ts +0 -59
  123. package/src/adapters/claude/hooks/session-start.ts +0 -73
  124. package/src/adapters/claude/hooks/stop.ts +0 -128
  125. package/src/adapters/claude/hooks/user-prompt-submit.ts +0 -361
  126. package/src/adapters/claude/index.ts +0 -4
  127. package/src/adapters/claude/transcript/index.ts +0 -4
  128. package/src/adapters/claude/transcript/transcript-reader.ts +0 -57
  129. package/src/adapters/claude/transcript/turn-reconstructor.ts +0 -65
  130. package/src/apps/cli/claude-settings-hooks.ts +0 -138
  131. package/src/apps/cli/codex-import-runner.ts +0 -125
  132. package/src/apps/cli/codex-validation-output.ts +0 -95
  133. package/src/apps/cli/hermes-import-runner.ts +0 -130
  134. package/src/apps/cli/hermes-validation-output.ts +0 -91
  135. package/src/apps/cli/index.ts +0 -1735
  136. package/src/apps/cli/mcp-install.ts +0 -106
  137. package/src/apps/cli/retrieval-disclosure-output.ts +0 -196
  138. package/src/apps/dashboard/assets/js/bootstrap.js +0 -244
  139. package/src/apps/dashboard/assets/js/chat.js +0 -373
  140. package/src/apps/dashboard/assets/js/disclosure.js +0 -232
  141. package/src/apps/dashboard/assets/js/modals.js +0 -298
  142. package/src/apps/dashboard/assets/js/overview.js +0 -655
  143. package/src/apps/dashboard/assets/js/state.js +0 -72
  144. package/src/apps/dashboard/assets/js/views.js +0 -468
  145. package/src/apps/dashboard/index.html +0 -543
  146. package/src/apps/dashboard/index.ts +0 -3
  147. package/src/apps/dashboard/style.css +0 -1750
  148. package/src/apps/index.ts +0 -5
  149. package/src/apps/server/api/chat.ts +0 -244
  150. package/src/apps/server/api/citations.ts +0 -105
  151. package/src/apps/server/api/events.ts +0 -137
  152. package/src/apps/server/api/health.ts +0 -53
  153. package/src/apps/server/api/index.ts +0 -26
  154. package/src/apps/server/api/projects.ts +0 -74
  155. package/src/apps/server/api/search.ts +0 -184
  156. package/src/apps/server/api/sessions.ts +0 -115
  157. package/src/apps/server/api/stats.ts +0 -723
  158. package/src/apps/server/api/turns.ts +0 -143
  159. package/src/apps/server/api/utils.ts +0 -65
  160. package/src/apps/server/index.ts +0 -111
  161. package/src/cli/index.ts +0 -3
  162. package/src/cli/retrieval-disclosure-output.ts +0 -2
  163. package/src/compat/index.ts +0 -5
  164. package/src/core/canonical-key.ts +0 -186
  165. package/src/core/citation-generator.ts +0 -63
  166. package/src/core/consolidated-store.ts +0 -356
  167. package/src/core/consolidation-worker.ts +0 -493
  168. package/src/core/context-formatter.ts +0 -276
  169. package/src/core/continuity-manager.ts +0 -341
  170. package/src/core/db-wrapper.ts +0 -64
  171. package/src/core/derive/fact-deriver.ts +0 -170
  172. package/src/core/derive/index.ts +0 -2
  173. package/src/core/derive/summary-deriver.ts +0 -76
  174. package/src/core/edge-repo.ts +0 -333
  175. package/src/core/embedder.ts +0 -4
  176. package/src/core/engine/embedding-maintenance-service.ts +0 -187
  177. package/src/core/engine/endless-memory-services.ts +0 -4
  178. package/src/core/engine/index.ts +0 -19
  179. package/src/core/engine/memory-engine-services.ts +0 -170
  180. package/src/core/engine/memory-ingest-service.ts +0 -317
  181. package/src/core/engine/memory-query-service.ts +0 -173
  182. package/src/core/engine/memory-runtime-service.ts +0 -162
  183. package/src/core/engine/memory-service-composition.ts +0 -231
  184. package/src/core/engine/retrieval-analytics-service.ts +0 -181
  185. package/src/core/engine/retrieval-disclosure-service.ts +0 -420
  186. package/src/core/engine/retrieval-orchestrator.ts +0 -377
  187. package/src/core/engine/retrieval-services.ts +0 -176
  188. package/src/core/engine/shared-memory-services.ts +0 -4
  189. package/src/core/entity-repo.ts +0 -349
  190. package/src/core/event-store.ts +0 -779
  191. package/src/core/evidence-aligner.ts +0 -635
  192. package/src/core/external-market-context.ts +0 -582
  193. package/src/core/graduation-worker.ts +0 -171
  194. package/src/core/graduation.ts +0 -377
  195. package/src/core/index.ts +0 -64
  196. package/src/core/ingest-interceptor.ts +0 -80
  197. package/src/core/markdown-mirror.ts +0 -70
  198. package/src/core/matcher.ts +0 -208
  199. package/src/core/md-mirror.ts +0 -92
  200. package/src/core/metadata-extractor.ts +0 -203
  201. package/src/core/model/memory-fact.ts +0 -30
  202. package/src/core/model/memory-rule.ts +0 -14
  203. package/src/core/model/memory-summary.ts +0 -21
  204. package/src/core/model/raw-event.ts +0 -28
  205. package/src/core/model/retrieval-result.ts +0 -35
  206. package/src/core/mongo-sync-config.ts +0 -165
  207. package/src/core/mongo-sync-worker.ts +0 -381
  208. package/src/core/privacy/filter.ts +0 -190
  209. package/src/core/privacy/index.ts +0 -20
  210. package/src/core/privacy/tag-parser.ts +0 -145
  211. package/src/core/product-validation-matrix.ts +0 -314
  212. package/src/core/progressive-retriever.ts +0 -414
  213. package/src/core/registry/project-path.ts +0 -54
  214. package/src/core/registry/session-registry.ts +0 -69
  215. package/src/core/replay-evaluator.ts +0 -625
  216. package/src/core/retrieval-benchmark.ts +0 -117
  217. package/src/core/retrieval-quality.ts +0 -109
  218. package/src/core/retriever.ts +0 -800
  219. package/src/core/session-qrels.ts +0 -360
  220. package/src/core/shared-event-store.ts +0 -114
  221. package/src/core/shared-promoter.ts +0 -249
  222. package/src/core/shared-store.ts +0 -289
  223. package/src/core/shared-vector-store.ts +0 -203
  224. package/src/core/sqlite-event-store.ts +0 -1846
  225. package/src/core/sqlite-wrapper.ts +0 -116
  226. package/src/core/sync-worker.ts +0 -228
  227. package/src/core/tag-taxonomy.ts +0 -51
  228. package/src/core/task/blocker-resolver.ts +0 -333
  229. package/src/core/task/index.ts +0 -9
  230. package/src/core/task/task-matcher.ts +0 -240
  231. package/src/core/task/task-projector.ts +0 -358
  232. package/src/core/task/task-resolver.ts +0 -421
  233. package/src/core/turn-state.ts +0 -207
  234. package/src/core/types.ts +0 -952
  235. package/src/core/vector-outbox.ts +0 -299
  236. package/src/core/vector-store.ts +0 -231
  237. package/src/core/vector-worker.ts +0 -521
  238. package/src/core/working-set-store.ts +0 -257
  239. package/src/extensions/endless-memory/endless-memory-services.ts +0 -350
  240. package/src/extensions/endless-memory/index.ts +0 -1
  241. package/src/extensions/index.ts +0 -5
  242. package/src/extensions/mcp/handlers.ts +0 -960
  243. package/src/extensions/mcp/index.ts +0 -48
  244. package/src/extensions/mcp/tools.ts +0 -252
  245. package/src/extensions/shared-memory/index.ts +0 -1
  246. package/src/extensions/shared-memory/shared-memory-services.ts +0 -211
  247. package/src/extensions/vector/embedder.ts +0 -234
  248. package/src/extensions/vector/index.ts +0 -1
  249. package/src/hooks/post-tool-use.ts +0 -9
  250. package/src/hooks/semantic-daemon-client.ts +0 -1
  251. package/src/hooks/semantic-daemon.ts +0 -11
  252. package/src/hooks/session-end.ts +0 -9
  253. package/src/hooks/session-start.ts +0 -9
  254. package/src/hooks/stop.ts +0 -9
  255. package/src/hooks/user-prompt-submit.ts +0 -9
  256. package/src/index.ts +0 -13
  257. package/src/mcp/handlers.ts +0 -2
  258. package/src/mcp/index.ts +0 -4
  259. package/src/mcp/tools.ts +0 -2
  260. package/src/server/api/chat.ts +0 -2
  261. package/src/server/api/citations.ts +0 -2
  262. package/src/server/api/events.ts +0 -2
  263. package/src/server/api/health.ts +0 -2
  264. package/src/server/api/index.ts +0 -2
  265. package/src/server/api/projects.ts +0 -2
  266. package/src/server/api/search.ts +0 -2
  267. package/src/server/api/sessions.ts +0 -2
  268. package/src/server/api/stats.ts +0 -2
  269. package/src/server/api/turns.ts +0 -2
  270. package/src/server/api/utils.ts +0 -2
  271. package/src/server/index.ts +0 -2
  272. package/src/services/bootstrap-organizer.ts +0 -463
  273. package/src/services/codex-session-history-importer.ts +0 -966
  274. package/src/services/hermes-session-history-importer.ts +0 -733
  275. package/src/services/memory-service-config.ts +0 -36
  276. package/src/services/memory-service-registry.ts +0 -150
  277. package/src/services/memory-service.ts +0 -688
  278. package/src/services/session-history-importer.ts +0 -629
  279. package/tests/README.md +0 -23
  280. package/tests/adapters/claude/claude-semantic-daemon-adapter.test.ts +0 -54
  281. package/tests/adapters/claude/claude-transcript-reconstructor.test.ts +0 -98
  282. package/tests/adapters/claude-hook-prompt-injection-policy.test.ts +0 -99
  283. package/tests/apps/app-layer-boundary.test.ts +0 -48
  284. package/tests/apps/claude-settings-hooks.test.ts +0 -107
  285. package/tests/apps/cli-disclosure-output.test.ts +0 -212
  286. package/tests/apps/codex-import-runner.test.ts +0 -99
  287. package/tests/apps/codex-validation-output.test.ts +0 -100
  288. package/tests/apps/hermes-import-runner.test.ts +0 -99
  289. package/tests/apps/mcp-install-command.test.ts +0 -59
  290. package/tests/apps/package-build-entrypoints.test.ts +0 -30
  291. package/tests/apps/postinstall-embedding-backend.test.ts +0 -185
  292. package/tests/apps/search-api-disclosure.test.ts +0 -162
  293. package/tests/apps/stats-api-lightweight.test.ts +0 -67
  294. package/tests/apps/ui-disclosure-output.test.ts +0 -140
  295. package/tests/core/bootstrap-organizer.test.ts +0 -111
  296. package/tests/core/canonical-key.test.ts +0 -101
  297. package/tests/core/codex-session-history-importer-validation.test.ts +0 -185
  298. package/tests/core/consolidation-worker.test.ts +0 -75
  299. package/tests/core/embedding-maintenance-service.test.ts +0 -282
  300. package/tests/core/evidence-aligner.test.ts +0 -152
  301. package/tests/core/external-market-context.test.ts +0 -209
  302. package/tests/core/fact-deriver.test.ts +0 -79
  303. package/tests/core/hermes-session-history-importer-validation.test.ts +0 -609
  304. package/tests/core/ingest-interceptor.test.ts +0 -38
  305. package/tests/core/markdown-mirror.test.ts +0 -85
  306. package/tests/core/matcher.test.ts +0 -112
  307. package/tests/core/md-mirror.test.ts +0 -50
  308. package/tests/core/memory-engine-services.test.ts +0 -240
  309. package/tests/core/memory-ingest-service.test.ts +0 -296
  310. package/tests/core/memory-query-service.test.ts +0 -129
  311. package/tests/core/memory-runtime-service.test.ts +0 -201
  312. package/tests/core/memory-service-composition.test.ts +0 -192
  313. package/tests/core/memory-service-config.test.ts +0 -41
  314. package/tests/core/memory-service-facade.test.ts +0 -30
  315. package/tests/core/memory-service-registry.test.ts +0 -206
  316. package/tests/core/product-validation-matrix.test.ts +0 -61
  317. package/tests/core/project-registry.test.ts +0 -78
  318. package/tests/core/replay-evaluator.test.ts +0 -181
  319. package/tests/core/retrieval-analytics-service.test.ts +0 -210
  320. package/tests/core/retrieval-benchmark.test.ts +0 -93
  321. package/tests/core/retrieval-disclosure-service.test.ts +0 -264
  322. package/tests/core/retrieval-orchestrator.test.ts +0 -403
  323. package/tests/core/retrieval-quality.test.ts +0 -31
  324. package/tests/core/retrieval-services.test.ts +0 -185
  325. package/tests/core/retriever-fallback-chain.test.ts +0 -223
  326. package/tests/core/retriever-strategy-scope.test.ts +0 -164
  327. package/tests/core/retriever.memu-adoption.test.ts +0 -122
  328. package/tests/core/session-history-importer-filter.test.ts +0 -78
  329. package/tests/core/session-qrels.test.ts +0 -250
  330. package/tests/core/sqlite-event-store-replication.test.ts +0 -127
  331. package/tests/core/summary-deriver.test.ts +0 -66
  332. package/tests/extensions/embedder-warning-suppression.test.ts +0 -84
  333. package/tests/extensions/endless-memory-extension-boundary.test.ts +0 -17
  334. package/tests/extensions/endless-memory-services.test.ts +0 -325
  335. package/tests/extensions/mcp-context-tools.test.ts +0 -905
  336. package/tests/extensions/mcp-extension-boundary.test.ts +0 -21
  337. package/tests/extensions/mcp-package-build.test.ts +0 -22
  338. package/tests/extensions/mcp-project-aware-tools.test.ts +0 -102
  339. package/tests/extensions/shared-memory-extension-boundary.test.ts +0 -24
  340. package/tests/extensions/shared-memory-services.test.ts +0 -309
  341. package/tests/extensions/vector-extension-boundary.test.ts +0 -21
  342. package/tsconfig.json +0 -24
  343. package/vitest.config.ts +0 -15
@@ -1,96 +0,0 @@
1
- # Dashboard Upgrade Spec
2
-
3
- ## Overview
4
- 대시보드에 인터랙티브 기능 추가. 메모리 이벤트 클릭 시 상세 모달, stat 카드 클릭 시 관련 데이터 목록, 사이드바 네비게이션으로 페이지 전환.
5
-
6
- ## User Stories
7
-
8
- ### US-1: 메모리 이벤트 상세 모달
9
- - **As a** 사용자
10
- - **I want** 메모리 이벤트를 클릭하면 전체 내용을 모달로 볼 수 있다
11
- - **So that** 잘린 preview가 아닌 전체 content와 context를 확인할 수 있다
12
-
13
- ### US-2: Stat 카드 클릭 → 관련 데이터 표시
14
- - **As a** 사용자
15
- - **I want** Total Events, Active Sessions, Shared Items, Vector Nodes 카드를 클릭하면 해당 데이터 목록을 볼 수 있다
16
- - **So that** 대시보드 숫자의 실제 데이터를 탐색할 수 있다
17
-
18
- ### US-3: 사이드바 네비게이션 페이지 전환
19
- - **As a** 사용자
20
- - **I want** Knowledge Graph, Memory Banks, Configuration을 클릭하면 메인 콘텐츠 영역이 해당 뷰로 전환된다
21
- - **So that** 대시보드 외의 기능에도 접근할 수 있다
22
-
23
- ## Acceptance Criteria
24
-
25
- ### AC-1: 메모리 이벤트 모달
26
- - [ ] 이벤트 아이템 클릭 시 모달 오픈
27
- - [ ] 모달에 전체 content 표시 (잘림 없이)
28
- - [ ] eventType, timestamp, sessionId 메타데이터 표시
29
- - [ ] context (앞뒤 이벤트) 표시
30
- - [ ] ESC 키 또는 오버레이 클릭으로 모달 닫기
31
- - [ ] 로딩 상태 표시
32
-
33
- ### AC-2: Stat 카드 클릭
34
- - [ ] **Total Events** 클릭 → 전체 이벤트 목록 모달 (타입별 필터, 페이지네이션)
35
- - [ ] **Active Sessions** 클릭 → 세션 목록 모달 (세션 ID, 이벤트 수, 시작/종료 시간)
36
- - [ ] **Shared Items** 클릭 → 공유 아이템 상세 모달 (Troubleshooting, Best Practices, Common Errors 카운트)
37
- - [ ] **Vector Nodes** 클릭 → 벡터 노드 정보 모달 (벡터 수, 메모리 사용량)
38
-
39
- ### AC-3: 사이드바 네비게이션
40
- - [ ] **Overview** → 현재 대시보드 (기존 동작 유지)
41
- - [ ] **Knowledge Graph** → 가장 많이 접근된 메모리, 토픽별 분포 표시
42
- - [ ] **Memory Banks** → 레벨별 메모리 목록 (L0~L4), 졸업 기준 표시
43
- - [ ] **Configuration** → 졸업 기준 설정, 시스템 정보 표시
44
- - [ ] active nav-item 하이라이트 전환
45
- - [ ] 페이지 전환 시 부드러운 트랜지션
46
-
47
- ## Technical Constraints
48
- - 순수 HTML/CSS/JS (프레임워크 없음)
49
- - 기존 `app.js`, `style.css`, `index.html` 수정
50
- - 기존 API 엔드포인트 최대한 활용
51
- - ApexCharts는 Overview 페이지에서만 사용
52
-
53
- ## API Endpoints (기존)
54
-
55
- | Endpoint | Method | 용도 |
56
- |----------|--------|------|
57
- | `/api/events/:id` | GET | 이벤트 상세 (content + context) |
58
- | `/api/events` | GET | 이벤트 목록 (level, sort, limit, offset) |
59
- | `/api/sessions` | GET | 세션 목록 (page, pageSize) |
60
- | `/api/sessions/:id` | GET | 세션 상세 |
61
- | `/api/stats` | GET | 전체 통계 |
62
- | `/api/stats/shared` | GET | 공유 스토어 통계 |
63
- | `/api/stats/most-accessed` | GET | 가장 많이 접근된 메모리 |
64
- | `/api/stats/levels/:level` | GET | 레벨별 이벤트 |
65
- | `/api/stats/graduation` | GET | 졸업 기준 정보 |
66
- | `/api/stats/helpfulness` | GET | 도움됨 통계 |
67
- | `/api/stats/timeline` | GET | 활동 타임라인 |
68
- | `/api/search?q=` | GET | 메모리 검색 |
69
-
70
- ## UI Components (신규)
71
-
72
- ### 1. Detail Modal (`#detail-modal`)
73
- - overlay + centered content box
74
- - header: 타입 배지 + 타임스탬프 + 닫기 버튼
75
- - body: 전체 content (코드 블록 포맷팅)
76
- - footer: context 이벤트 목록
77
- - 애니메이션: fadeIn/fadeOut
78
-
79
- ### 2. List Modal (`#list-modal`)
80
- - stat 카드 클릭 시 사용하는 범용 목록 모달
81
- - header: 제목 + 닫기 버튼
82
- - body: 스크롤 가능한 아이템 목록
83
- - 각 아이템 클릭 시 detail modal 열기 가능
84
-
85
- ### 3. Page Views
86
- - `#view-overview` - 기존 대시보드 (기본)
87
- - `#view-knowledge-graph` - Knowledge Graph 뷰
88
- - `#view-memory-banks` - Memory Banks 뷰
89
- - `#view-configuration` - Configuration 뷰
90
- - 한 번에 하나만 visible (display: none/block 전환)
91
-
92
- ## Design Guidelines
93
- - 기존 Deep Space 테마 유지
94
- - 모달: `var(--bg-panel)` 배경, `var(--glass-border)` 테두리
95
- - 애니메이션: 200~300ms ease 트랜지션
96
- - 모바일 대응: 모달 full-width on mobile
@@ -1,243 +0,0 @@
1
- # Citations System Context
2
-
3
- > **Version**: 1.0.0
4
- > **Created**: 2026-02-01
5
-
6
- ## 1. 배경
7
-
8
- ### 1.1 claude-mem의 접근 방식
9
-
10
- claude-mem은 observation에 ID를 부여하여 참조 가능하게 함:
11
-
12
- ```
13
- [mem:abc123] 에서 참조한 정보입니다.
14
- ```
15
-
16
- **특징**:
17
- - 모든 observation에 고유 ID
18
- - 검색 결과에 ID 표시
19
- - ID로 원본 조회 가능
20
-
21
- ### 1.2 현재 code-memory의 상황
22
-
23
- 현재 이벤트 ID는 존재하지만 인용 시스템 없음:
24
-
25
- ```typescript
26
- // 현재 검색 결과
27
- {
28
- eventId: "evt_abc123def456...", // 긴 UUID
29
- content: "...",
30
- score: 0.9
31
- }
32
- ```
33
-
34
- **문제**:
35
- 1. eventId가 너무 길어서 참조하기 불편
36
- 2. 컨텍스트에 인용 표시 없음
37
- 3. 출처 확인 어려움
38
-
39
- ### 1.3 인용의 가치
40
-
41
- | 인용 없음 | 인용 있음 |
42
- |----------|----------|
43
- | 출처 불명 | 명확한 출처 |
44
- | 검증 불가 | 원본 확인 가능 |
45
- | 맥락 손실 | 전후 관계 파악 |
46
- | 신뢰도 낮음 | 신뢰도 높음 |
47
-
48
- ## 2. ID 설계
49
-
50
- ### 2.1 고려사항
51
-
52
- | 요소 | 요구사항 |
53
- |------|----------|
54
- | 길이 | 짧고 기억하기 쉬움 |
55
- | 고유성 | 충돌 확률 낮음 |
56
- | 가독성 | 쉽게 읽고 말할 수 있음 |
57
- | 생성 | 빠르고 결정적 |
58
-
59
- ### 2.2 옵션 비교
60
-
61
- | 옵션 | 예시 | 조합 수 | 장점 | 단점 |
62
- |------|------|--------|------|------|
63
- | 4자 base62 | a7Bc | 14.7M | 매우 짧음 | 충돌 위험 |
64
- | **6자 base62** | a7Bc3x | 56.8B | 균형 | - |
65
- | 8자 base62 | a7Bc3xYz | 218T | 충돌 없음 | 다소 김 |
66
- | 8자 hex | ab12cd34 | 4.3B | 익숙함 | 효율 낮음 |
67
-
68
- **선택**: 6자 base62 (56.8억 조합)
69
- - 1000만 이벤트에서 충돌 확률 < 0.0001%
70
-
71
- ### 2.3 생성 알고리즘
72
-
73
- ```typescript
74
- // SHA256 해시 기반 (결정적, 빠름)
75
- function generateCitationId(eventId: string): string {
76
- const hash = crypto.createHash('sha256').update(eventId).digest();
77
-
78
- // base62 인코딩
79
- const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
80
- let id = '';
81
- for (let i = 0; i < 6; i++) {
82
- id += charset[hash[i] % 62];
83
- }
84
- return id;
85
- }
86
- ```
87
-
88
- ## 3. 기존 코드와의 관계
89
-
90
- ### 3.1 event-store.ts
91
-
92
- 인용 테이블 추가:
93
-
94
- ```sql
95
- -- events 테이블과 1:1 관계
96
- CREATE TABLE citations (
97
- citation_id VARCHAR(8) PRIMARY KEY,
98
- event_id VARCHAR NOT NULL UNIQUE REFERENCES events(event_id)
99
- );
100
- ```
101
-
102
- ### 3.2 retriever.ts
103
-
104
- 검색 결과에 인용 포함:
105
-
106
- ```typescript
107
- // 현재
108
- async search(query): Promise<SearchResult[]>
109
-
110
- // 확장
111
- async searchWithCitations(query): Promise<CitedSearchResult[]>
112
- ```
113
-
114
- ### 3.3 context-formatter.ts
115
-
116
- 인용 표시 포맷:
117
-
118
- ```typescript
119
- // 현재
120
- > DuckDB를 사용하여...
121
-
122
- // 확장
123
- > DuckDB를 사용하여...
124
- >
125
- > [mem:a7Bc3x] - 2026-01-30, Session abc123
126
- ```
127
-
128
- ## 4. 설계 결정 사항
129
-
130
- ### 4.1 생성 시점
131
-
132
- **옵션 1: 이벤트 저장 시 즉시 생성**
133
- - 장점: 항상 인용 ID 존재
134
- - 단점: 저장 오버헤드
135
-
136
- **옵션 2: 검색 시 지연 생성**
137
- - 장점: 필요할 때만 생성
138
- - 단점: 첫 검색 약간 느림
139
-
140
- **선택**: 지연 생성 (getOrCreate 패턴)
141
- - 저장 시 오버헤드 없음
142
- - 대부분 이벤트는 검색되지 않음
143
-
144
- ### 4.2 인용 포맷
145
-
146
- **옵션들**:
147
- 1. `[mem:a7Bc3x]` - 명확하고 검색 가능
148
- 2. `(ref: a7Bc3x)` - 간결
149
- 3. `¹` (각주 스타일) - 학술적
150
- 4. `<a7Bc3x>` - 태그 스타일
151
-
152
- **선택**: `[mem:a7Bc3x]`
153
- - `mem:` 접두사로 명확한 의미
154
- - 대괄호로 시각적 구분
155
- - 검색/복사 용이
156
-
157
- ### 4.3 컨텍스트 포함 방식
158
-
159
- **인라인 방식** (선택):
160
- ```markdown
161
- > 내용...
162
- > [mem:a7Bc3x] - 2026-01-30
163
- ```
164
-
165
- **각주 방식**:
166
- ```markdown
167
- DuckDB를 사용[1]...
168
-
169
- ---
170
- [1] mem:a7Bc3x - 2026-01-30
171
- ```
172
-
173
- **참조 방식**:
174
- ```markdown
175
- ## Content
176
- DuckDB를 사용...
177
-
178
- ## References
179
- - [mem:a7Bc3x] Session abc123, 2026-01-30
180
- ```
181
-
182
- ## 5. 사용 추적
183
-
184
- ### 5.1 목적
185
-
186
- - 인기 있는 메모리 파악
187
- - 자주 참조되는 지식 식별
188
- - graduation 우선순위 결정
189
-
190
- ### 5.2 추적 데이터
191
-
192
- ```sql
193
- CREATE TABLE citation_usages (
194
- usage_id VARCHAR PRIMARY KEY,
195
- citation_id VARCHAR NOT NULL,
196
- session_id VARCHAR NOT NULL,
197
- used_at TIMESTAMP,
198
- context VARCHAR -- 검색 쿼리
199
- );
200
- ```
201
-
202
- ### 5.3 통계 활용
203
-
204
- ```typescript
205
- // 인기 인용 → graduation 우선순위
206
- async function graduationCandidates(): Promise<Event[]> {
207
- const popular = await getPopularCitations({ limit: 100 });
208
- return popular.filter(c => c.usageCount >= 5);
209
- }
210
- ```
211
-
212
- ## 6. 성능 고려사항
213
-
214
- ### 6.1 ID 생성
215
-
216
- - SHA256 해시: ~1µs
217
- - DB 조회 (exists): ~1ms
218
- - 충돌 시 재시도: 드묾
219
-
220
- ### 6.2 인덱스
221
-
222
- ```sql
223
- -- 빠른 조회를 위한 인덱스
224
- CREATE INDEX idx_citations_event ON citations(event_id);
225
- CREATE INDEX idx_usages_citation ON citation_usages(citation_id);
226
- ```
227
-
228
- ### 6.3 캐싱
229
-
230
- ```typescript
231
- // 최근 사용된 인용 캐싱
232
- const citationCache = new LRUCache<string, Citation>({
233
- max: 1000,
234
- ttl: 3600000 // 1시간
235
- });
236
- ```
237
-
238
- ## 7. 참고 자료
239
-
240
- - **claude-mem**: Citation system with observation IDs
241
- - **학술 인용**: APA, MLA 스타일
242
- - **GitHub**: Issue/PR 참조 (#123)
243
- - **Notion**: 블록 ID 참조 시스템