claude-memory-layer 1.0.23 → 1.0.25

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 (58) hide show
  1. package/.claude/settings.local.json +25 -0
  2. package/README.md +2 -0
  3. package/dist/cli/index.js +229 -978
  4. package/dist/cli/index.js.map +4 -4
  5. package/dist/core/index.js +59 -71
  6. package/dist/core/index.js.map +3 -3
  7. package/dist/hooks/post-tool-use.js +287 -976
  8. package/dist/hooks/post-tool-use.js.map +4 -4
  9. package/dist/hooks/semantic-daemon.js +6520 -0
  10. package/dist/hooks/semantic-daemon.js.map +7 -0
  11. package/dist/hooks/session-end.js +209 -973
  12. package/dist/hooks/session-end.js.map +4 -4
  13. package/dist/hooks/session-start.js +293 -978
  14. package/dist/hooks/session-start.js.map +4 -4
  15. package/dist/hooks/stop.js +247 -975
  16. package/dist/hooks/stop.js.map +4 -4
  17. package/dist/hooks/user-prompt-submit.js +406 -1036
  18. package/dist/hooks/user-prompt-submit.js.map +4 -4
  19. package/dist/server/api/index.js +209 -973
  20. package/dist/server/api/index.js.map +4 -4
  21. package/dist/server/index.js +209 -973
  22. package/dist/server/index.js.map +4 -4
  23. package/dist/services/memory-service.js +209 -973
  24. package/dist/services/memory-service.js.map +4 -4
  25. package/dist/ui/app.js +48 -1
  26. package/dist/ui/index.html +11 -3
  27. package/memory/_index.md +1 -0
  28. package/memory/agent_response/uncategorized/2026-03-04.md +1314 -1
  29. package/memory/session_summary/uncategorized/2026-03-04.md +50 -0
  30. package/memory/tool_observation/uncategorized/2026-03-04.md +969 -1
  31. package/memory/user_prompt/uncategorized/2026-03-04.md +555 -1
  32. package/package.json +1 -2
  33. package/scripts/build.ts +2 -1
  34. package/specs/memory-utilization-improvements/context.md +145 -0
  35. package/specs/memory-utilization-improvements/plan.md +361 -0
  36. package/specs/memory-utilization-improvements/spec.md +308 -0
  37. package/specs/optional-duckdb/context.md +77 -0
  38. package/specs/optional-duckdb/plan.md +142 -0
  39. package/specs/optional-duckdb/spec.md +35 -0
  40. package/specs/selective-tool-observation/context.md +100 -0
  41. package/specs/selective-tool-observation/plan.md +158 -0
  42. package/specs/selective-tool-observation/spec.md +127 -0
  43. package/src/cli/index.ts +1 -0
  44. package/src/core/db-wrapper.ts +18 -73
  45. package/src/core/embedder.ts +13 -4
  46. package/src/core/sqlite-event-store.ts +40 -0
  47. package/src/core/turn-state.ts +48 -0
  48. package/src/core/types.ts +1 -0
  49. package/src/hooks/post-tool-use.ts +72 -2
  50. package/src/hooks/semantic-daemon-client.ts +208 -0
  51. package/src/hooks/semantic-daemon.ts +276 -0
  52. package/src/hooks/session-start.ts +11 -0
  53. package/src/hooks/stop.ts +33 -4
  54. package/src/hooks/user-prompt-submit.ts +48 -40
  55. package/src/services/memory-service.ts +112 -65
  56. package/src/services/session-history-importer.ts +18 -0
  57. package/src/ui/app.js +48 -1
  58. package/src/ui/index.html +11 -3
@@ -0,0 +1,25 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(curl -s http://localhost:37777/api/stats | python3 -m json.tool 2>/dev/null || curl -s http://localhost:37777/api/stats)",
5
+ "Bash(curl -s http://localhost:37777/api/projects | python3 -m json.tool 2>/dev/null | head -60)",
6
+ "Bash(curl -s \"http://localhost:37777/api/retrievals?project=f4d5c120&limit=10\" | python3 -m json.tool 2>/dev/null | head -60)",
7
+ "Bash(curl -s \"http://localhost:37777/api/stats/retrieval-traces?project=f4d5c120&limit=5\" | python3 -m json.tool 2>/dev/null | head -30)",
8
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/health?project=f4d5c120\" | python3 -m json.tool)",
9
+ "WebFetch(domain:be2f-222-112-203-51.ngrok-free.app)",
10
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/stats?projectId=f4d5c120\" | jq .)",
11
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/stats\" | jq .)",
12
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/sessions?projectId=f4d5c120&limit=5\" | jq .)",
13
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/retrieval-traces?projectId=f4d5c120&limit=20\" | jq .)",
14
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/events?projectId=f4d5c120&eventType=session_summary&limit=20\")",
15
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/events?projectId=f4d5c120&limit=20\")",
16
+ "Bash(curl -s -H \"Accept: application/json\" \"https://be2f-222-112-203-51.ngrok-free.app/api/retrieval-traces?projectId=f4d5c120&limit=20\" | head -100)",
17
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/events?projectId=f4d5c120&limit=30\" 2>&1 | jq -r '.eventsByType' 2>/dev/null || echo \"Parse failed, checking raw output:\")",
18
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/events?projectId=f4d5c120&limit=50\" | jq '.events[] | select\\(.eventType == \"retrieval_trace\"\\) | {id, eventType, timestamp, metadata}' | head -100)",
19
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/events?projectId=f4d5c120&limit=100\" | jq '{total, eventCount: \\(.events | length\\), eventTypes: \\(.events | group_by\\(.eventType\\) | map\\({type: .[0].eventType, count: length}\\) | sort_by\\(-.count\\)\\)}')",
20
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/stats?projectId=f4d5c120\" | jq '.')",
21
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/sessions?projectId=f4d5c120&limit=10\" | jq '{total, sessionCount: \\(.sessions | length\\), recentSessions: .sessions[0:3]}')",
22
+ "Bash(curl -s \"https://be2f-222-112-203-51.ngrok-free.app/api/events?projectId=f4d5c120&limit=200\" | jq '{total, eventCount: \\(.events | length\\), allEventTypes: \\(.events | group_by\\(.eventType\\) | map\\({type: .[0].eventType, count: length}\\) | sort_by\\(-.count\\)\\), hasRetrievalTraces: \\(.events | map\\(select\\(.eventType == \"retrieval_trace\"\\)\\) | length > 0\\)}')"
23
+ ]
24
+ }
25
+ }
package/README.md CHANGED
@@ -72,6 +72,8 @@ npx claude-memory-layer search "배포 이슈"
72
72
  - `GET /api/health` (outbox pending/failed 포함 상세 헬스)
73
73
  - `GET /api/stats/retrieval-traces` (검색→컨텍스트 채택 추적)
74
74
  - 주입 임계값 튜닝(환경변수):
75
+ - `CLAUDE_MEMORY_RETRIEVAL_MODE` (기본 `hybrid`, `keyword`/`hybrid`/`semantic`)
76
+ - `CLAUDE_MEMORY_SEMANTIC_DAEMON_IDLE_MS` (기본 `600000`, semantic daemon 유휴 종료 시간)
75
77
  - `CLAUDE_MEMORY_MIN_SCORE` (기본 0.4)
76
78
  - `CLAUDE_MEMORY_FALLBACK_MIN_SCORE` (기본 0.3, 결과 0건일 때 재시도)
77
79