claude-memory-layer 1.0.14 → 1.0.16

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 (40) hide show
  1. package/.npm-cache/_cacache/content-v2/sha512/04/76/c098f88dfe584a2b80870bff7421b05d17d3d9ee1027f77772332a22d3f93a9a57101a2855107f6ad82077a818bba912b2bc317f2361b5ddb09ad284d9ce +0 -0
  2. package/.npm-cache/_cacache/content-v2/sha512/60/25/d2ecd39cfc7cab58351162814be77f935c6d6491c10c3745d456da7ddb2117ffd90c10e53fe3c0f1ed16b403307841543634504398b16ee4e6b6dd8e0c45 +0 -0
  3. package/.npm-cache/_cacache/index-v5/2b/9a/7f8f40206ed8a2e0a84efaa953ccaed1f5d001e14b931083f2e7a0738007 +2 -0
  4. package/.npm-cache/_cacache/index-v5/2e/d9/fcfa5c6a6abdc2a3644ab84a95936047298c465a2f47ee03db8f7fe1e946 +3 -0
  5. package/.npm-cache/_cacache/index-v5/a9/42/e519633356d12d3d2f19da66a8301016d496c8f5c3e0554124aaa62dc043 +2 -0
  6. package/.npm-cache/_logs/2026-02-26T12_04_52_729Z-debug-0.log +256 -0
  7. package/.npm-cache/_logs/2026-02-26T12_05_36_835Z-debug-0.log +18 -0
  8. package/.npm-cache/_logs/2026-02-26T12_05_45_982Z-debug-0.log +32 -0
  9. package/.npm-cache/_logs/2026-02-26T12_05_48_515Z-debug-0.log +260 -0
  10. package/.npm-cache/_logs/2026-02-26T12_05_53_567Z-debug-0.log +69 -0
  11. package/.npm-cache/_update-notifier-last-checked +0 -0
  12. package/README.md +3 -0
  13. package/claude-memory-layer-1.0.14.tgz +0 -0
  14. package/dist/cli/index.js +63 -48
  15. package/dist/cli/index.js.map +2 -2
  16. package/dist/core/index.js +53 -40
  17. package/dist/core/index.js.map +2 -2
  18. package/dist/hooks/post-tool-use.js +53 -40
  19. package/dist/hooks/post-tool-use.js.map +2 -2
  20. package/dist/hooks/session-end.js +53 -40
  21. package/dist/hooks/session-end.js.map +2 -2
  22. package/dist/hooks/session-start.js +53 -40
  23. package/dist/hooks/session-start.js.map +2 -2
  24. package/dist/hooks/stop.js +53 -40
  25. package/dist/hooks/stop.js.map +2 -2
  26. package/dist/hooks/user-prompt-submit.js +72 -43
  27. package/dist/hooks/user-prompt-submit.js.map +2 -2
  28. package/dist/server/api/index.js +53 -40
  29. package/dist/server/api/index.js.map +2 -2
  30. package/dist/server/index.js +53 -40
  31. package/dist/server/index.js.map +2 -2
  32. package/dist/services/memory-service.js +53 -40
  33. package/dist/services/memory-service.js.map +2 -2
  34. package/memory/_index.md +2 -0
  35. package/memory/tool_observation/uncategorized/2026-02-26.md +201 -0
  36. package/memory/user_prompt/uncategorized/2026-02-26.md +10 -0
  37. package/package.json +1 -1
  38. package/src/core/sqlite-event-store.ts +52 -40
  39. package/src/hooks/user-prompt-submit.ts +22 -3
  40. package/src/services/session-history-importer.ts +15 -7
@@ -2032,49 +2032,62 @@ var SQLiteEventStore = class {
2032
2032
  }
2033
2033
  async getRecentRetrievalTraces(limit = 50) {
2034
2034
  await this.initialize();
2035
- const rows = sqliteAll(
2036
- this.db,
2037
- `SELECT * FROM retrieval_traces ORDER BY created_at DESC LIMIT ?`,
2038
- [limit]
2039
- );
2040
- return rows.map((row) => ({
2041
- traceId: row.trace_id,
2042
- sessionId: row.session_id || void 0,
2043
- projectHash: row.project_hash || void 0,
2044
- queryText: row.query_text,
2045
- strategy: row.strategy || void 0,
2046
- candidateEventIds: row.candidate_event_ids ? JSON.parse(row.candidate_event_ids) : [],
2047
- selectedEventIds: row.selected_event_ids ? JSON.parse(row.selected_event_ids) : [],
2048
- candidateDetails: row.candidate_details_json ? JSON.parse(row.candidate_details_json) : [],
2049
- selectedDetails: row.selected_details_json ? JSON.parse(row.selected_details_json) : [],
2050
- candidateCount: Number(row.candidate_count || 0),
2051
- selectedCount: Number(row.selected_count || 0),
2052
- confidence: row.confidence || void 0,
2053
- fallbackTrace: row.fallback_trace ? JSON.parse(row.fallback_trace) : [],
2054
- createdAt: toDateFromSQLite(row.created_at)
2055
- }));
2035
+ try {
2036
+ const rows = sqliteAll(
2037
+ this.db,
2038
+ `SELECT * FROM retrieval_traces ORDER BY created_at DESC LIMIT ?`,
2039
+ [limit]
2040
+ );
2041
+ return rows.map((row) => ({
2042
+ traceId: row.trace_id,
2043
+ sessionId: row.session_id || void 0,
2044
+ projectHash: row.project_hash || void 0,
2045
+ queryText: row.query_text,
2046
+ strategy: row.strategy || void 0,
2047
+ candidateEventIds: row.candidate_event_ids ? JSON.parse(row.candidate_event_ids) : [],
2048
+ selectedEventIds: row.selected_event_ids ? JSON.parse(row.selected_event_ids) : [],
2049
+ candidateDetails: row.candidate_details_json ? JSON.parse(row.candidate_details_json) : [],
2050
+ selectedDetails: row.selected_details_json ? JSON.parse(row.selected_details_json) : [],
2051
+ candidateCount: Number(row.candidate_count || 0),
2052
+ selectedCount: Number(row.selected_count || 0),
2053
+ confidence: row.confidence || void 0,
2054
+ fallbackTrace: row.fallback_trace ? JSON.parse(row.fallback_trace) : [],
2055
+ createdAt: toDateFromSQLite(row.created_at)
2056
+ }));
2057
+ } catch (err) {
2058
+ if (err?.message?.includes("no such table"))
2059
+ return [];
2060
+ throw err;
2061
+ }
2056
2062
  }
2057
2063
  async getRetrievalTraceStats() {
2058
2064
  await this.initialize();
2059
- const row = sqliteGet(
2060
- this.db,
2061
- `SELECT
2062
- COUNT(*) as total_queries,
2063
- AVG(candidate_count) as avg_candidate_count,
2064
- AVG(selected_count) as avg_selected_count,
2065
- CASE
2066
- WHEN SUM(candidate_count) > 0 THEN (SUM(selected_count) * 1.0 / SUM(candidate_count))
2067
- ELSE 0
2068
- END as selection_rate
2069
- FROM retrieval_traces`,
2070
- []
2071
- );
2072
- return {
2073
- totalQueries: Number(row?.total_queries || 0),
2074
- avgCandidateCount: Number(row?.avg_candidate_count || 0),
2075
- avgSelectedCount: Number(row?.avg_selected_count || 0),
2076
- selectionRate: Number(row?.selection_rate || 0)
2077
- };
2065
+ try {
2066
+ const row = sqliteGet(
2067
+ this.db,
2068
+ `SELECT
2069
+ COUNT(*) as total_queries,
2070
+ AVG(candidate_count) as avg_candidate_count,
2071
+ AVG(selected_count) as avg_selected_count,
2072
+ CASE
2073
+ WHEN SUM(candidate_count) > 0 THEN (SUM(selected_count) * 1.0 / SUM(candidate_count))
2074
+ ELSE 0
2075
+ END as selection_rate
2076
+ FROM retrieval_traces`,
2077
+ []
2078
+ );
2079
+ return {
2080
+ totalQueries: Number(row?.total_queries || 0),
2081
+ avgCandidateCount: Number(row?.avg_candidate_count || 0),
2082
+ avgSelectedCount: Number(row?.avg_selected_count || 0),
2083
+ selectionRate: Number(row?.selection_rate || 0)
2084
+ };
2085
+ } catch (err) {
2086
+ if (err?.message?.includes("no such table")) {
2087
+ return { totalQueries: 0, avgCandidateCount: 0, avgSelectedCount: 0, selectionRate: 0 };
2088
+ }
2089
+ throw err;
2090
+ }
2078
2091
  }
2079
2092
  /**
2080
2093
  * Close database connection