claude-memory-layer 1.0.27 → 1.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +7 -0
- package/AGENTS.md +11 -0
- package/README.md +374 -49
- package/benchmarks/replay/anonymized-real-sessions.json +48 -0
- package/dist/cli/index.js +10097 -6003
- package/dist/cli/index.js.map +4 -4
- package/dist/core/index.js +9745 -5587
- package/dist/core/index.js.map +4 -4
- package/dist/hooks/post-tool-use.js +6545 -5270
- package/dist/hooks/post-tool-use.js.map +4 -4
- package/dist/hooks/semantic-daemon.js +6646 -5354
- package/dist/hooks/semantic-daemon.js.map +4 -4
- package/dist/hooks/session-end.js +6618 -5347
- package/dist/hooks/session-end.js.map +4 -4
- package/dist/hooks/session-start.js +6619 -5354
- package/dist/hooks/session-start.js.map +4 -4
- package/dist/hooks/stop.js +6614 -5325
- package/dist/hooks/stop.js.map +4 -4
- package/dist/hooks/user-prompt-submit.js +6702 -5356
- package/dist/hooks/user-prompt-submit.js.map +4 -4
- package/dist/index.js +13537 -0
- package/dist/index.js.map +7 -0
- package/dist/mcp/index.js +20770 -0
- package/dist/mcp/index.js.map +7 -0
- package/dist/server/api/index.js +6632 -5319
- package/dist/server/api/index.js.map +4 -4
- package/dist/server/index.js +6667 -5340
- package/dist/server/index.js.map +4 -4
- package/dist/services/memory-service.js +6568 -5350
- package/dist/services/memory-service.js.map +4 -4
- package/dist/ui/assets/js/bootstrap.js +244 -0
- package/dist/ui/assets/js/chat.js +373 -0
- package/dist/ui/assets/js/disclosure.js +232 -0
- package/dist/ui/assets/js/modals.js +298 -0
- package/dist/ui/assets/js/overview.js +655 -0
- package/dist/ui/assets/js/state.js +72 -0
- package/dist/ui/assets/js/views.js +468 -0
- package/dist/ui/index.html +43 -1
- package/dist/ui/index.ts +3 -0
- package/dist/ui/style.css +222 -0
- package/docs/ARCHITECTURE_COMPARISON_AND_RECOMMENDATIONS.md +627 -0
- package/docs/HERMES_MEMORY_INGESTION_ANALYSIS.md +440 -0
- package/docs/MEMORY_USEFULNESS_AUDIT.md +371 -0
- package/docs/MEMORY_USEFULNESS_AUDIT_RAW.json +80 -0
- package/docs/MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md +333 -0
- package/docs/PRODUCT_VALIDATION_MATRIX.md +82 -0
- package/docs/PROJECT_STRUCTURE_ANALYSIS.md +421 -0
- package/docs/REFACTORING_MILESTONES_AND_ISSUES.md +501 -0
- package/docs/REFACTORING_PLAN_THIN_CORE.md +414 -0
- package/docs/REFERENCE_PROJECT_ANALYSES.md +25 -0
- package/docs/SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md +452 -0
- package/docs/TARGET_ARCHITECTURE_AND_FOLDER_STRUCTURE.md +446 -0
- package/docs/architecture/comparison-index.md +47 -0
- package/docs/reports/codex-real-data-validation-20260505T040447Z.md +46 -0
- package/package.json +12 -5
- package/scripts/build.ts +25 -8
- package/scripts/generate-session-qrels.ts +126 -0
- package/scripts/postinstall-embedding-backend.cjs +142 -0
- package/scripts/replay-retrieval-benchmark.ts +69 -0
- package/specs/thin-core-refactor/context.md +275 -0
- package/specs/thin-core-refactor/plan.md +536 -0
- package/specs/thin-core-refactor/spec.md +465 -0
- package/src/adapters/claude/capture/index.ts +3 -0
- package/src/adapters/claude/context/index.ts +3 -0
- package/src/adapters/claude/hooks/index.ts +21 -0
- package/src/adapters/claude/hooks/post-tool-use.ts +239 -0
- package/src/adapters/claude/hooks/prompt-injection-policy.ts +104 -0
- package/src/adapters/claude/hooks/semantic-daemon-client.ts +209 -0
- package/src/adapters/claude/hooks/semantic-daemon.ts +283 -0
- package/src/adapters/claude/hooks/session-end.ts +59 -0
- package/src/adapters/claude/hooks/session-start.ts +73 -0
- package/src/adapters/claude/hooks/stop.ts +128 -0
- package/src/adapters/claude/hooks/user-prompt-submit.ts +361 -0
- package/src/adapters/claude/index.ts +4 -0
- package/src/adapters/claude/transcript/index.ts +4 -0
- package/src/adapters/claude/transcript/transcript-reader.ts +57 -0
- package/src/adapters/claude/transcript/turn-reconstructor.ts +65 -0
- package/src/apps/cli/claude-settings-hooks.ts +138 -0
- package/src/apps/cli/codex-import-runner.ts +125 -0
- package/src/apps/cli/codex-validation-output.ts +95 -0
- package/src/apps/cli/hermes-import-runner.ts +130 -0
- package/src/apps/cli/hermes-validation-output.ts +91 -0
- package/src/apps/cli/index.ts +1731 -0
- package/src/apps/cli/mcp-install.ts +106 -0
- package/src/apps/cli/retrieval-disclosure-output.ts +196 -0
- package/src/apps/dashboard/assets/js/bootstrap.js +244 -0
- package/src/apps/dashboard/assets/js/chat.js +373 -0
- package/src/apps/dashboard/assets/js/disclosure.js +232 -0
- package/src/apps/dashboard/assets/js/modals.js +298 -0
- package/src/apps/dashboard/assets/js/overview.js +655 -0
- package/src/apps/dashboard/assets/js/state.js +72 -0
- package/src/apps/dashboard/assets/js/views.js +468 -0
- package/src/{ui → apps/dashboard}/index.html +43 -1
- package/src/apps/dashboard/index.ts +3 -0
- package/src/{ui → apps/dashboard}/style.css +222 -0
- package/src/apps/index.ts +5 -0
- package/src/apps/server/api/chat.ts +244 -0
- package/src/apps/server/api/citations.ts +105 -0
- package/src/apps/server/api/events.ts +137 -0
- package/src/apps/server/api/health.ts +53 -0
- package/src/apps/server/api/index.ts +26 -0
- package/src/apps/server/api/projects.ts +74 -0
- package/src/apps/server/api/search.ts +184 -0
- package/src/apps/server/api/sessions.ts +115 -0
- package/src/apps/server/api/stats.ts +723 -0
- package/src/apps/server/api/turns.ts +143 -0
- package/src/apps/server/api/utils.ts +65 -0
- package/src/apps/server/index.ts +111 -0
- package/src/cli/index.ts +2 -1311
- package/src/cli/retrieval-disclosure-output.ts +2 -0
- package/src/compat/index.ts +5 -0
- package/src/core/derive/fact-deriver.ts +170 -0
- package/src/core/derive/index.ts +2 -0
- package/src/core/derive/summary-deriver.ts +76 -0
- package/src/core/embedder.ts +4 -152
- package/src/core/engine/embedding-maintenance-service.ts +187 -0
- package/src/core/engine/endless-memory-services.ts +4 -0
- package/src/core/engine/index.ts +19 -0
- package/src/core/engine/memory-engine-services.ts +170 -0
- package/src/core/engine/memory-ingest-service.ts +317 -0
- package/src/core/engine/memory-query-service.ts +173 -0
- package/src/core/engine/memory-runtime-service.ts +162 -0
- package/src/core/engine/memory-service-composition.ts +231 -0
- package/src/core/engine/retrieval-analytics-service.ts +181 -0
- package/src/core/engine/retrieval-disclosure-service.ts +420 -0
- package/src/core/engine/retrieval-orchestrator.ts +377 -0
- package/src/core/engine/retrieval-services.ts +176 -0
- package/src/core/engine/shared-memory-services.ts +4 -0
- package/src/core/entity-repo.ts +1 -3
- package/src/core/event-store.ts +3 -3
- package/src/core/evidence-aligner.ts +2 -2
- package/src/core/external-market-context.ts +582 -0
- package/src/core/graduation.ts +2 -3
- package/src/core/index.ts +21 -0
- package/src/core/matcher.ts +2 -4
- package/src/core/model/memory-fact.ts +30 -0
- package/src/core/model/memory-rule.ts +14 -0
- package/src/core/model/memory-summary.ts +21 -0
- package/src/core/model/raw-event.ts +28 -0
- package/src/core/model/retrieval-result.ts +35 -0
- package/src/core/privacy/filter.ts +21 -10
- package/src/core/product-validation-matrix.ts +314 -0
- package/src/core/progressive-retriever.ts +1 -2
- package/src/core/registry/project-path.ts +54 -0
- package/src/core/registry/session-registry.ts +69 -0
- package/src/core/replay-evaluator.ts +625 -0
- package/src/core/retrieval-benchmark.ts +117 -0
- package/src/core/retrieval-quality.ts +109 -0
- package/src/core/retriever.ts +53 -15
- package/src/core/session-qrels.ts +360 -0
- package/src/core/shared-event-store.ts +1 -1
- package/src/core/sqlite-event-store.ts +35 -11
- package/src/core/task/blocker-resolver.ts +2 -2
- package/src/core/task/task-resolver.ts +0 -1
- package/src/core/vector-outbox.ts +1 -10
- package/src/core/vector-worker.ts +1 -1
- package/src/extensions/endless-memory/endless-memory-services.ts +350 -0
- package/src/extensions/endless-memory/index.ts +1 -0
- package/src/extensions/index.ts +5 -0
- package/src/extensions/mcp/handlers.ts +960 -0
- package/src/extensions/mcp/index.ts +48 -0
- package/src/extensions/mcp/tools.ts +252 -0
- package/src/extensions/shared-memory/index.ts +1 -0
- package/src/extensions/shared-memory/shared-memory-services.ts +211 -0
- package/src/extensions/vector/embedder.ts +197 -0
- package/src/extensions/vector/index.ts +1 -0
- package/src/hooks/post-tool-use.ts +3 -236
- package/src/hooks/semantic-daemon-client.ts +1 -208
- package/src/hooks/semantic-daemon.ts +6 -271
- package/src/hooks/session-end.ts +4 -79
- package/src/hooks/session-start.ts +4 -73
- package/src/hooks/stop.ts +3 -173
- package/src/hooks/user-prompt-submit.ts +3 -338
- package/src/index.ts +13 -0
- package/src/mcp/handlers.ts +2 -212
- package/src/mcp/index.ts +3 -46
- package/src/mcp/tools.ts +2 -78
- package/src/server/api/chat.ts +2 -244
- package/src/server/api/citations.ts +2 -105
- package/src/server/api/events.ts +2 -137
- package/src/server/api/health.ts +2 -53
- package/src/server/api/index.ts +2 -26
- package/src/server/api/projects.ts +2 -74
- package/src/server/api/search.ts +2 -102
- package/src/server/api/sessions.ts +2 -115
- package/src/server/api/stats.ts +2 -724
- package/src/server/api/turns.ts +2 -143
- package/src/server/api/utils.ts +2 -46
- package/src/server/index.ts +2 -100
- package/src/services/bootstrap-organizer.ts +46 -26
- package/src/services/codex-session-history-importer.ts +521 -29
- package/src/services/hermes-session-history-importer.ts +733 -0
- package/src/services/memory-service-config.ts +36 -0
- package/src/services/memory-service-registry.ts +150 -0
- package/src/services/memory-service.ts +211 -1325
- package/src/services/session-history-importer.ts +58 -14
- package/tests/README.md +23 -0
- package/tests/adapters/claude/claude-semantic-daemon-adapter.test.ts +54 -0
- package/tests/adapters/claude/claude-transcript-reconstructor.test.ts +98 -0
- package/tests/adapters/claude-hook-prompt-injection-policy.test.ts +99 -0
- package/tests/apps/app-layer-boundary.test.ts +48 -0
- package/tests/apps/claude-settings-hooks.test.ts +107 -0
- package/tests/apps/cli-disclosure-output.test.ts +212 -0
- package/tests/apps/codex-import-runner.test.ts +99 -0
- package/tests/apps/codex-validation-output.test.ts +100 -0
- package/tests/apps/hermes-import-runner.test.ts +99 -0
- package/tests/apps/mcp-install-command.test.ts +59 -0
- package/tests/apps/package-build-entrypoints.test.ts +30 -0
- package/tests/apps/postinstall-embedding-backend.test.ts +167 -0
- package/tests/apps/search-api-disclosure.test.ts +162 -0
- package/tests/apps/stats-api-lightweight.test.ts +67 -0
- package/tests/apps/ui-disclosure-output.test.ts +140 -0
- package/tests/{bootstrap-organizer.test.ts → core/bootstrap-organizer.test.ts} +1 -1
- package/tests/{canonical-key.test.ts → core/canonical-key.test.ts} +1 -1
- package/tests/core/codex-session-history-importer-validation.test.ts +185 -0
- package/tests/{consolidation-worker.test.ts → core/consolidation-worker.test.ts} +2 -2
- package/tests/core/embedding-maintenance-service.test.ts +282 -0
- package/tests/{evidence-aligner.test.ts → core/evidence-aligner.test.ts} +1 -1
- package/tests/core/external-market-context.test.ts +209 -0
- package/tests/core/fact-deriver.test.ts +79 -0
- package/tests/core/hermes-session-history-importer-validation.test.ts +609 -0
- package/tests/{ingest-interceptor.test.ts → core/ingest-interceptor.test.ts} +1 -1
- package/tests/{markdown-mirror.test.ts → core/markdown-mirror.test.ts} +2 -2
- package/tests/{matcher.test.ts → core/matcher.test.ts} +1 -1
- package/tests/{md-mirror.test.ts → core/md-mirror.test.ts} +2 -2
- package/tests/core/memory-engine-services.test.ts +240 -0
- package/tests/core/memory-ingest-service.test.ts +296 -0
- package/tests/core/memory-query-service.test.ts +129 -0
- package/tests/core/memory-runtime-service.test.ts +201 -0
- package/tests/core/memory-service-composition.test.ts +192 -0
- package/tests/core/memory-service-config.test.ts +41 -0
- package/tests/core/memory-service-facade.test.ts +30 -0
- package/tests/core/memory-service-registry.test.ts +206 -0
- package/tests/core/product-validation-matrix.test.ts +61 -0
- package/tests/core/project-registry.test.ts +78 -0
- package/tests/core/replay-evaluator.test.ts +181 -0
- package/tests/core/retrieval-analytics-service.test.ts +210 -0
- package/tests/core/retrieval-benchmark.test.ts +93 -0
- package/tests/core/retrieval-disclosure-service.test.ts +264 -0
- package/tests/core/retrieval-orchestrator.test.ts +403 -0
- package/tests/core/retrieval-quality.test.ts +31 -0
- package/tests/core/retrieval-services.test.ts +185 -0
- package/tests/{retriever-fallback-chain.test.ts → core/retriever-fallback-chain.test.ts} +3 -3
- package/tests/{retriever-strategy-scope.test.ts → core/retriever-strategy-scope.test.ts} +70 -3
- package/tests/{retriever.memu-adoption.test.ts → core/retriever.memu-adoption.test.ts} +3 -3
- package/tests/core/session-history-importer-filter.test.ts +78 -0
- package/tests/core/session-qrels.test.ts +250 -0
- package/tests/{sqlite-event-store-replication.test.ts → core/sqlite-event-store-replication.test.ts} +36 -1
- package/tests/core/summary-deriver.test.ts +66 -0
- package/tests/extensions/embedder-warning-suppression.test.ts +53 -0
- package/tests/extensions/endless-memory-extension-boundary.test.ts +17 -0
- package/tests/extensions/endless-memory-services.test.ts +325 -0
- package/tests/extensions/mcp-context-tools.test.ts +905 -0
- package/tests/extensions/mcp-extension-boundary.test.ts +21 -0
- package/tests/extensions/mcp-package-build.test.ts +22 -0
- package/tests/extensions/mcp-project-aware-tools.test.ts +102 -0
- package/tests/extensions/shared-memory-extension-boundary.test.ts +24 -0
- package/tests/extensions/shared-memory-services.test.ts +309 -0
- package/tests/extensions/vector-extension-boundary.test.ts +21 -0
- package/.claude/settings.local.json +0 -25
- package/.npm-cache/_cacache/content-v2/sha512/04/76/c098f88dfe584a2b80870bff7421b05d17d3d9ee1027f77772332a22d3f93a9a57101a2855107f6ad82077a818bba912b2bc317f2361b5ddb09ad284d9ce +0 -0
- package/.npm-cache/_cacache/content-v2/sha512/60/25/d2ecd39cfc7cab58351162814be77f935c6d6491c10c3745d456da7ddb2117ffd90c10e53fe3c0f1ed16b403307841543634504398b16ee4e6b6dd8e0c45 +0 -0
- package/.npm-cache/_cacache/index-v5/2b/9a/7f8f40206ed8a2e0a84efaa953ccaed1f5d001e14b931083f2e7a0738007 +0 -2
- package/.npm-cache/_cacache/index-v5/2e/d9/fcfa5c6a6abdc2a3644ab84a95936047298c465a2f47ee03db8f7fe1e946 +0 -3
- package/.npm-cache/_cacache/index-v5/a9/42/e519633356d12d3d2f19da66a8301016d496c8f5c3e0554124aaa62dc043 +0 -2
- package/.npm-cache/_logs/2026-02-26T12_04_52_729Z-debug-0.log +0 -256
- package/.npm-cache/_logs/2026-02-26T12_05_36_835Z-debug-0.log +0 -18
- package/.npm-cache/_logs/2026-02-26T12_05_45_982Z-debug-0.log +0 -32
- package/.npm-cache/_logs/2026-02-26T12_05_48_515Z-debug-0.log +0 -260
- package/.npm-cache/_logs/2026-02-26T12_05_53_567Z-debug-0.log +0 -69
- package/.npm-cache/_update-notifier-last-checked +0 -0
- package/bootstrap-kb/decisions/decisions.md +0 -244
- package/bootstrap-kb/glossary/glossary.md +0 -46
- package/bootstrap-kb/modules/.claude-plugin.md +0 -22
- package/bootstrap-kb/modules/agents.md.md +0 -15
- package/bootstrap-kb/modules/claude.md.md +0 -15
- package/bootstrap-kb/modules/context.md.md +0 -15
- package/bootstrap-kb/modules/docs.md +0 -18
- package/bootstrap-kb/modules/handoff.md.md +0 -15
- package/bootstrap-kb/modules/package-lock.json.md +0 -15
- package/bootstrap-kb/modules/package.json.md +0 -15
- package/bootstrap-kb/modules/plan.md.md +0 -15
- package/bootstrap-kb/modules/readme.md.md +0 -15
- package/bootstrap-kb/modules/scripts.md +0 -26
- package/bootstrap-kb/modules/spec.md.md +0 -15
- package/bootstrap-kb/modules/specs.md +0 -20
- package/bootstrap-kb/modules/src.md +0 -51
- package/bootstrap-kb/modules/tests.md +0 -42
- package/bootstrap-kb/modules/tsconfig.json.md +0 -15
- package/bootstrap-kb/modules/vitest.config.ts.md +0 -15
- package/bootstrap-kb/overview/overview.md +0 -40
- package/bootstrap-kb/sources/manifest.json +0 -950
- package/bootstrap-kb/sources/manifest.md +0 -227
- package/bootstrap-kb/timeline/timeline.md +0 -57
- package/claude-memory-layer-1.0.14.tgz +0 -0
- package/d.sh +0 -3
- package/deploy.sh +0 -3
- package/dist/ui/app.js +0 -2101
- package/memory/.claude-plugin/commands/2026-02-25.md +0 -263
- package/memory/_index.md +0 -419
- package/memory/agent_response/uncategorized/2026-02-26.md +0 -176
- package/memory/agent_response/uncategorized/2026-03-03.md +0 -14
- package/memory/agent_response/uncategorized/2026-03-04.md +0 -1421
- package/memory/agent_response/uncategorized/2026-03-05.md +0 -157
- package/memory/default/uncategorized/2026-02-25.md +0 -4839
- package/memory/session_summary/uncategorized/2026-02-26.md +0 -13
- package/memory/session_summary/uncategorized/2026-03-03.md +0 -5
- package/memory/session_summary/uncategorized/2026-03-04.md +0 -50
- package/memory/specs/20260207-dashboard-upgrade/2026-02-25.md +0 -142
- package/memory/specs/citations-system/2026-02-25.md +0 -1121
- package/memory/specs/endless-mode/2026-02-25.md +0 -1392
- package/memory/specs/entity-edge-model/2026-02-25.md +0 -1263
- package/memory/specs/evidence-aligner-v2/2026-02-25.md +0 -1028
- package/memory/specs/mcp-desktop-integration/2026-02-25.md +0 -1334
- package/memory/specs/post-tool-use-hook/2026-02-25.md +0 -1164
- package/memory/specs/private-tags/2026-02-25.md +0 -1057
- package/memory/specs/progressive-disclosure/2026-02-25.md +0 -1436
- package/memory/specs/task-entity-system/2026-02-25.md +0 -924
- package/memory/specs/vector-outbox-v2/2026-02-25.md +0 -1510
- package/memory/specs/web-viewer-ui/2026-02-25.md +0 -1709
- package/memory/tool_observation/uncategorized/2026-02-26.md +0 -209
- package/memory/tool_observation/uncategorized/2026-03-03.md +0 -21
- package/memory/tool_observation/uncategorized/2026-03-04.md +0 -1033
- package/memory/tool_observation/uncategorized/2026-03-05.md +0 -33
- package/memory/user_prompt/uncategorized/2026-02-26.md +0 -25
- package/memory/user_prompt/uncategorized/2026-03-04.md +0 -634
- package/memory/user_prompt/uncategorized/2026-03-05.md +0 -6
- package/specs/optional-duckdb/context.md +0 -77
- package/specs/optional-duckdb/plan.md +0 -142
- package/specs/optional-duckdb/spec.md +0 -35
- package/src/ui/app.js +0 -2101
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
<!-- Imported from `/Users/namsangboy/workspace/superlocalmemory/docs/PROJECT_STRUCTURE_ANALYSIS.md` as a local comparison snapshot for claude-memory-layer refactoring. -->
|
|
2
|
+
|
|
3
|
+
# superlocalmemory 프로젝트 구조 분석
|
|
4
|
+
|
|
5
|
+
## 한 줄 요약
|
|
6
|
+
`superlocalmemory`는 단순 메모리 라이브러리가 아니라, **SQLite 기반 로컬 메모리 엔진 위에 MCP, CLI, 훅, 대시보드, 코드 그래프, 학습/적응 계층, 멀티에이전트 mesh까지 얹은 거대한 로컬 메모리 플랫폼**이다.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. 프로젝트 목적
|
|
11
|
+
|
|
12
|
+
이 프로젝트의 목적은 매우 넓다.
|
|
13
|
+
|
|
14
|
+
핵심적으로는:
|
|
15
|
+
- 세션 간 persistent memory 제공
|
|
16
|
+
- IDE/에이전트 환경에 자동 주입/회상 제공
|
|
17
|
+
- 로컬 우선 프라이버시 보장
|
|
18
|
+
- MCP 도구 제공
|
|
19
|
+
- 대시보드/운영 화면 제공
|
|
20
|
+
- 코드 그래프와 메모리를 연결
|
|
21
|
+
- 학습/피드백/패턴 마이닝을 통해 점점 더 똑똑한 memory system 구축
|
|
22
|
+
- 멀티에이전트 coordination까지 확장
|
|
23
|
+
|
|
24
|
+
즉, 이 프로젝트는 “메모리 기능”을 넘어서 **agent memory operating system** 에 가깝다.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. 기술 스택
|
|
29
|
+
|
|
30
|
+
### 언어 / 배포
|
|
31
|
+
- Python 중심
|
|
32
|
+
- PyPI + npm 양쪽 배포
|
|
33
|
+
|
|
34
|
+
### 서버 / 인터페이스
|
|
35
|
+
- FastAPI
|
|
36
|
+
- uvicorn
|
|
37
|
+
- websockets
|
|
38
|
+
- static dashboard UI
|
|
39
|
+
|
|
40
|
+
### 저장 / 검색 / 그래프 / ML
|
|
41
|
+
- SQLite/WAL
|
|
42
|
+
- FTS5
|
|
43
|
+
- sentence-transformers
|
|
44
|
+
- torch
|
|
45
|
+
- scikit-learn
|
|
46
|
+
- lightgbm
|
|
47
|
+
- networkx
|
|
48
|
+
- rustworkx
|
|
49
|
+
- tree-sitter
|
|
50
|
+
- watchdog
|
|
51
|
+
|
|
52
|
+
즉, 전형적인 앱/도구 수준을 넘어서,
|
|
53
|
+
**애플리케이션 + 검색엔진 + 분석엔진 + 연구 레이어**가 같이 있는 스택이다.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 3. 엔트리 포인트
|
|
58
|
+
|
|
59
|
+
### CLI
|
|
60
|
+
- `slm` → `superlocalmemory.cli.main:main`
|
|
61
|
+
|
|
62
|
+
### MCP 서버
|
|
63
|
+
- `slm mcp`
|
|
64
|
+
- stdio 기반 MCP surface 제공
|
|
65
|
+
|
|
66
|
+
### 대시보드/서버
|
|
67
|
+
- unified daemon 및 UI server 경로 존재
|
|
68
|
+
|
|
69
|
+
### hooks
|
|
70
|
+
- 저지연 hook fast-path 존재
|
|
71
|
+
|
|
72
|
+
즉, 사용자 접점이 매우 많다.
|
|
73
|
+
- CLI
|
|
74
|
+
- MCP
|
|
75
|
+
- hooks
|
|
76
|
+
- dashboard
|
|
77
|
+
- daemon
|
|
78
|
+
- IDE integrations
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 4. 전체 구조 해석
|
|
83
|
+
|
|
84
|
+
이 저장소는 사실상 **대형 모듈러 모놀리스**다.
|
|
85
|
+
|
|
86
|
+
중심은 `MemoryEngine` 이며,
|
|
87
|
+
그 주변에 여러 서브시스템이 붙는다.
|
|
88
|
+
|
|
89
|
+
대략 구조:
|
|
90
|
+
1. ingestion / encoding
|
|
91
|
+
2. storage / schema / migration
|
|
92
|
+
3. retrieval / ranking / rerank
|
|
93
|
+
4. learning / adaptation / consolidation
|
|
94
|
+
5. hooks / IDE automation
|
|
95
|
+
6. MCP / CLI / dashboard
|
|
96
|
+
7. code graph bridge
|
|
97
|
+
8. mesh / multi-agent coordination
|
|
98
|
+
9. parameterization / soft prompt injection
|
|
99
|
+
10. evolution / skill learning
|
|
100
|
+
|
|
101
|
+
즉, 아주 많은 기능이 하나의 플랫폼으로 엮여 있다.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 5. 디렉터리 구조 분석
|
|
106
|
+
|
|
107
|
+
### `src/superlocalmemory/core/`
|
|
108
|
+
플랫폼 핵심 엔진과 wiring 계층이다.
|
|
109
|
+
|
|
110
|
+
- `engine.py`: top-level orchestrator
|
|
111
|
+
- `engine_wiring.py`: 서브시스템 연결
|
|
112
|
+
- worker/consolidation/config 계층
|
|
113
|
+
|
|
114
|
+
### `storage/`
|
|
115
|
+
DB, schema, migration 레이어다.
|
|
116
|
+
|
|
117
|
+
- primary SQLite schema
|
|
118
|
+
- versioned schema files
|
|
119
|
+
- migration scripts
|
|
120
|
+
- code graph 전용 schema
|
|
121
|
+
|
|
122
|
+
### `encoding/`
|
|
123
|
+
raw memory를 구조화된 fact/entity/scene/observation으로 변환하는 계층이다.
|
|
124
|
+
|
|
125
|
+
예:
|
|
126
|
+
- fact extraction
|
|
127
|
+
- entity resolution
|
|
128
|
+
- temporal parsing
|
|
129
|
+
- graph building
|
|
130
|
+
- entropy gating
|
|
131
|
+
|
|
132
|
+
### `retrieval/`
|
|
133
|
+
가장 중요한 검색 계층 중 하나다.
|
|
134
|
+
|
|
135
|
+
포함 기능:
|
|
136
|
+
- semantic
|
|
137
|
+
- BM25
|
|
138
|
+
- entity graph
|
|
139
|
+
- temporal
|
|
140
|
+
- spreading activation
|
|
141
|
+
- hopfield
|
|
142
|
+
- fusion / rerank / diversity logic
|
|
143
|
+
|
|
144
|
+
### `learning/`
|
|
145
|
+
이 프로젝트를 특별하게 만드는 큰 축이다.
|
|
146
|
+
|
|
147
|
+
포함:
|
|
148
|
+
- reward / feedback
|
|
149
|
+
- outcomes
|
|
150
|
+
- pattern mining
|
|
151
|
+
- ranker retraining
|
|
152
|
+
- bandits
|
|
153
|
+
- consolidation
|
|
154
|
+
- behavioral analysis
|
|
155
|
+
- rollback/shadow test
|
|
156
|
+
|
|
157
|
+
즉, 단순 회상이 아니라 **memory quality를 스스로 개선하려는 시스템**이다.
|
|
158
|
+
|
|
159
|
+
### `code_graph/`
|
|
160
|
+
코드베이스 구조를 memory와 연결하는 계층이다.
|
|
161
|
+
|
|
162
|
+
포함:
|
|
163
|
+
- parser/extractors (Python/TypeScript)
|
|
164
|
+
- incremental updates
|
|
165
|
+
- graph storage/search
|
|
166
|
+
- communities / blast radius / flows
|
|
167
|
+
- event bridge
|
|
168
|
+
|
|
169
|
+
### `hooks/`
|
|
170
|
+
세션 시작, recall gate, tool use checkpoint, observation posting 등 agent workflow에 직접 개입한다.
|
|
171
|
+
|
|
172
|
+
### `mcp/`
|
|
173
|
+
FastMCP 기반 tool/resource 등록 레이어다.
|
|
174
|
+
|
|
175
|
+
### `server/`
|
|
176
|
+
대시보드/API/daemon 계층이다.
|
|
177
|
+
|
|
178
|
+
### `mesh/`
|
|
179
|
+
멀티에이전트 브로커/메시징/락/공유상태를 담당한다.
|
|
180
|
+
|
|
181
|
+
### `parameterization/`
|
|
182
|
+
soft prompt, prompt injection, PII filter 등 “메모리를 파라미터화된 컨텍스트”로 바꾸는 계층이다.
|
|
183
|
+
|
|
184
|
+
### `evolution/`
|
|
185
|
+
스킬 진화 및 학습된 패턴을 다루는 계층이다.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 6. 데이터 모델
|
|
190
|
+
|
|
191
|
+
### 6.1 SQLite primary store
|
|
192
|
+
핵심 저장소는 SQLite/WAL이다.
|
|
193
|
+
|
|
194
|
+
장점:
|
|
195
|
+
- 로컬 배포 쉬움
|
|
196
|
+
- 단일 파일 관리 가능
|
|
197
|
+
- 멀티프로세스 접근에 대한 운영 노하우가 축적됨
|
|
198
|
+
|
|
199
|
+
### 6.2 Raw memory + atomic facts 이중 구조
|
|
200
|
+
중요한 특징:
|
|
201
|
+
- `memories` = raw records
|
|
202
|
+
- `atomic_facts` = 실제 검색 단위
|
|
203
|
+
|
|
204
|
+
이건 꽤 강력한 설계다.
|
|
205
|
+
즉, 원문과 검색용 정규화 fact를 분리한다.
|
|
206
|
+
|
|
207
|
+
### 6.3 매우 풍부한 스키마
|
|
208
|
+
스키마에는 다음이 포함된다.
|
|
209
|
+
- memories
|
|
210
|
+
- atomic facts
|
|
211
|
+
- entities / aliases / profiles
|
|
212
|
+
- graph edges
|
|
213
|
+
- temporal events
|
|
214
|
+
- scenes
|
|
215
|
+
- trust / provenance / feedback
|
|
216
|
+
- behavioral / action outcomes
|
|
217
|
+
- compliance / config
|
|
218
|
+
- soft prompt 관련 테이블
|
|
219
|
+
- mesh 관련 테이블
|
|
220
|
+
- code graph 관련 테이블
|
|
221
|
+
|
|
222
|
+
즉, 단순 memory DB가 아니라 **knowledge + behavior + learning + infra metadata DB**다.
|
|
223
|
+
|
|
224
|
+
### 6.4 FTS + embeddings + lifecycle
|
|
225
|
+
사실 검색 가능한 fact unit에 다음이 다 붙는다.
|
|
226
|
+
- content
|
|
227
|
+
- entity list
|
|
228
|
+
- temporal field
|
|
229
|
+
- confidence
|
|
230
|
+
- importance
|
|
231
|
+
- evidence
|
|
232
|
+
- embedding
|
|
233
|
+
- lifecycle state
|
|
234
|
+
- emotion
|
|
235
|
+
|
|
236
|
+
이건 매우 풍부하지만, 동시에 유지비가 크다.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 7. ingestion / encoding 구조
|
|
241
|
+
|
|
242
|
+
문서상 11단계 pipeline이 설명되어 있고,
|
|
243
|
+
코드도 실제로 꽤 세분화돼 있다.
|
|
244
|
+
|
|
245
|
+
예:
|
|
246
|
+
- metadata
|
|
247
|
+
- entity extraction
|
|
248
|
+
- fact extraction
|
|
249
|
+
- emotion detection
|
|
250
|
+
- belief extraction
|
|
251
|
+
- entity resolution
|
|
252
|
+
- graph wiring
|
|
253
|
+
- foresight tagging
|
|
254
|
+
- observation building
|
|
255
|
+
- entropy gating
|
|
256
|
+
- storage
|
|
257
|
+
|
|
258
|
+
이 구조는 “대화/로그를 그냥 chunk 저장하는 것”보다 훨씬 깊다.
|
|
259
|
+
대신 계산비용과 복잡성이 높다.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## 8. retrieval 구조
|
|
264
|
+
|
|
265
|
+
문서보다 구현이 더 발전해 있다.
|
|
266
|
+
|
|
267
|
+
실제 검색 채널은 대체로 다음과 같다.
|
|
268
|
+
- semantic
|
|
269
|
+
- BM25
|
|
270
|
+
- entity graph
|
|
271
|
+
- temporal
|
|
272
|
+
- spreading activation
|
|
273
|
+
- hopfield
|
|
274
|
+
|
|
275
|
+
그리고 위 결과를 fusion/rerank 한다.
|
|
276
|
+
|
|
277
|
+
장점:
|
|
278
|
+
- 다양한 종류의 기억을 잘 찾을 가능성
|
|
279
|
+
- 단순 검색보다 더 풍부한 연상 가능
|
|
280
|
+
|
|
281
|
+
단점:
|
|
282
|
+
- 설명/디버깅이 어려워짐
|
|
283
|
+
- 성능 튜닝 포인트가 많아짐
|
|
284
|
+
- 문서 drift가 생기기 쉬움
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## 9. 학습/적응 계층
|
|
289
|
+
|
|
290
|
+
이 프로젝트의 가장 큰 차별점 중 하나다.
|
|
291
|
+
|
|
292
|
+
단순히 메모리를 저장하고 꺼내는 것이 아니라,
|
|
293
|
+
- 어떤 기억이 유용했는지
|
|
294
|
+
- 어떤 retrieval 채널이 잘 먹혔는지
|
|
295
|
+
- 어떤 패턴이 반복되는지
|
|
296
|
+
- ranker를 어떻게 개선할지
|
|
297
|
+
- forgetting/consolidation을 어떻게 적용할지
|
|
298
|
+
|
|
299
|
+
를 계속 학습하려고 한다.
|
|
300
|
+
|
|
301
|
+
이건 매우 야심찬 구조다.
|
|
302
|
+
잘 되면 강력하지만,
|
|
303
|
+
잘 관리하지 않으면 가장 무거운 부채가 되기 쉽다.
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## 10. code graph 통합
|
|
308
|
+
|
|
309
|
+
`superlocalmemory`는 code graph를 memory와 직접 연결하려고 한다.
|
|
310
|
+
|
|
311
|
+
예상되는 가치:
|
|
312
|
+
- 대화 메모리와 코드 구조 연결
|
|
313
|
+
- 특정 함수/모듈/파일과 관련된 기억 회상
|
|
314
|
+
- blast radius / dependency 기반 recall
|
|
315
|
+
|
|
316
|
+
이 방향은 매우 좋다.
|
|
317
|
+
다만 일부 구현은 여전히 진행 중인 흔적이 보여,
|
|
318
|
+
완전한 안정 제품보다는 “활발히 발전 중인 연구-제품 중간 단계”로 보인다.
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## 11. hooks / IDE automation
|
|
323
|
+
|
|
324
|
+
이 프로젝트는 단순 assistive memory가 아니라,
|
|
325
|
+
**에이전트 workflow를 강하게 통제하는 계층**도 갖고 있다.
|
|
326
|
+
|
|
327
|
+
예:
|
|
328
|
+
- session init 강제
|
|
329
|
+
- recall gate
|
|
330
|
+
- tool 사용 전후 흐름 제어
|
|
331
|
+
- observation posting
|
|
332
|
+
- learning/evolution 트리거
|
|
333
|
+
|
|
334
|
+
장점:
|
|
335
|
+
- memory system을 실제 워크플로우에 강하게 결합 가능
|
|
336
|
+
|
|
337
|
+
단점:
|
|
338
|
+
- 사용자가 “무겁다/간섭이 많다”고 느낄 수 있음
|
|
339
|
+
- 통합 대상이 많을수록 유지비 증가
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## 12. MCP / CLI / Dashboard 구조
|
|
344
|
+
|
|
345
|
+
### MCP
|
|
346
|
+
도구 수와 범위가 크다.
|
|
347
|
+
core memory뿐 아니라 learning/code graph/mesh/evolution까지 노출한다.
|
|
348
|
+
|
|
349
|
+
### CLI
|
|
350
|
+
기능 폭이 매우 넓다.
|
|
351
|
+
단순 remember/recall 수준이 아니라 setup, doctor, health, migrate, serve, dashboard, warmup 등 운영형 CLI다.
|
|
352
|
+
|
|
353
|
+
### Dashboard
|
|
354
|
+
지식 그래프, 메모리, recall lab, clusters, patterns, timeline, learning, agents, trust, behavioral, compliance, math health, settings 등 탭이 많다.
|
|
355
|
+
|
|
356
|
+
즉, 대시보드는 단순 viewer가 아니라 **운영 콘솔**에 가깝다.
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## 13. 테스트 / 품질 신호
|
|
361
|
+
|
|
362
|
+
장점:
|
|
363
|
+
- 테스트 범위가 매우 넓다
|
|
364
|
+
- cross-platform CI
|
|
365
|
+
- CLI/MCP/hooks/retrieval/learning/mesh 등 다수 계층 테스트 존재
|
|
366
|
+
|
|
367
|
+
의미:
|
|
368
|
+
- 큰 시스템치고는 품질 방어에 많은 노력을 들이고 있다
|
|
369
|
+
|
|
370
|
+
하지만 해석상:
|
|
371
|
+
- 시스템이 워낙 커서 테스트가 많아도 전체 복잡도를 상쇄하긴 어렵다
|
|
372
|
+
- 테스트 유지비도 상당할 것
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## 14. 아키텍처 강점
|
|
377
|
+
|
|
378
|
+
### 강점 1: 제품 완성도 범위가 넓다
|
|
379
|
+
memory, MCP, dashboard, hooks, learning, code graph, mesh까지 모두 갖춘다.
|
|
380
|
+
|
|
381
|
+
### 강점 2: 로컬 우선 철학
|
|
382
|
+
SQLite/WAL 중심이라 배포성과 프라이버시 측면에서 강하다.
|
|
383
|
+
|
|
384
|
+
### 강점 3: retrieval sophistication
|
|
385
|
+
다채널 retrieval과 ranking/fusion은 강력한 경쟁력이다.
|
|
386
|
+
|
|
387
|
+
### 강점 4: 사실상 platform-level ambition
|
|
388
|
+
단순 라이브러리가 아니라 큰 비전을 담고 있다.
|
|
389
|
+
|
|
390
|
+
### 강점 5: 코드 그래프/학습/행동 분석까지 결합
|
|
391
|
+
이건 다른 memory 프로젝트에서 쉽게 보기 어려운 깊이다.
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## 15. 약점 / 리스크
|
|
396
|
+
|
|
397
|
+
### 약점 1: 지나치게 넓은 범위
|
|
398
|
+
memory 시스템 하나에 너무 많은 제품/연구 축이 들어와 있다.
|
|
399
|
+
|
|
400
|
+
### 약점 2: 문서와 구현 drift
|
|
401
|
+
tool count, retrieval channel count, 일부 구조 설명이 최신 구현과 어긋난다.
|
|
402
|
+
|
|
403
|
+
### 약점 3: 모놀리스 비대화
|
|
404
|
+
겉보기엔 모듈화되어 있지만, 실제론 하나의 커다란 플랫폼으로 결합돼 있다.
|
|
405
|
+
|
|
406
|
+
### 약점 4: migration / legacy / compatibility 비용
|
|
407
|
+
versioned schema와 과거 호환 레이어가 계속 쌓인다.
|
|
408
|
+
|
|
409
|
+
### 약점 5: 일부 계층은 여전히 evolving
|
|
410
|
+
code graph 일부, unified daemon vs legacy UI server 공존 등 전환기 흔적이 보인다.
|
|
411
|
+
|
|
412
|
+
### 약점 6: 사용자 경험이 무거울 수 있음
|
|
413
|
+
모든 기능이 다 좋더라도, 실제 사용자 입장에서는 너무 많은 개념과 운영 surface가 부담일 수 있다.
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## 16. 구조적 해석
|
|
418
|
+
|
|
419
|
+
`superlocalmemory`는 매우 인상적이지만,
|
|
420
|
+
핵심적으로는 다음 질문을 던지게 만든다.
|
|
421
|
+
|
|
422
|
+
> “이 프로젝트는 memory engine인가, agent operating platform인가?”
|
|
423
|
+
|
|
424
|
+
현재 답은 거의 후자에 가깝다.
|
|
425
|
+
|
|
426
|
+
즉,
|
|
427
|
+
- 아주 강력하지만
|
|
428
|
+
- 매우 무겁고
|
|
429
|
+
- 유지보수와 제품 집중력 측면에선 큰 discipline이 필요한 구조다.
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## 17. 결론
|
|
434
|
+
|
|
435
|
+
`superlocalmemory`는 **가볍고 단순한 메모리 라이브러리**가 아니다.
|
|
436
|
+
그보다 훨씬 크고 야심차며,
|
|
437
|
+
**로컬 AI memory OS**에 가까운 구조다.
|
|
438
|
+
|
|
439
|
+
배울 점은 많다.
|
|
440
|
+
특히:
|
|
441
|
+
- SQLite 기반 단일 로컬 엔진
|
|
442
|
+
- atomic facts 모델
|
|
443
|
+
- retrieval 채널 다변화
|
|
444
|
+
- learning/feedback 통합
|
|
445
|
+
- code graph bridge
|
|
446
|
+
- 운영 도구/대시보드의 풍부함
|
|
447
|
+
|
|
448
|
+
하지만 동시에,
|
|
449
|
+
이 구조 전체를 그대로 가져오면 작은 프로젝트는 거의 반드시 과체중이 된다.
|
|
450
|
+
|
|
451
|
+
즉, 이 저장소는 “그대로 모방할 대상”이라기보다,
|
|
452
|
+
**어떤 아이디어를 선택적으로 흡수할지 신중히 골라야 하는 참조 아키텍처**라고 보는 것이 맞다.
|