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
@@ -2616,49 +2616,62 @@ var SQLiteEventStore = class {
2616
2616
  }
2617
2617
  async getRecentRetrievalTraces(limit = 50) {
2618
2618
  await this.initialize();
2619
- const rows = sqliteAll(
2620
- this.db,
2621
- `SELECT * FROM retrieval_traces ORDER BY created_at DESC LIMIT ?`,
2622
- [limit]
2623
- );
2624
- return rows.map((row) => ({
2625
- traceId: row.trace_id,
2626
- sessionId: row.session_id || void 0,
2627
- projectHash: row.project_hash || void 0,
2628
- queryText: row.query_text,
2629
- strategy: row.strategy || void 0,
2630
- candidateEventIds: row.candidate_event_ids ? JSON.parse(row.candidate_event_ids) : [],
2631
- selectedEventIds: row.selected_event_ids ? JSON.parse(row.selected_event_ids) : [],
2632
- candidateDetails: row.candidate_details_json ? JSON.parse(row.candidate_details_json) : [],
2633
- selectedDetails: row.selected_details_json ? JSON.parse(row.selected_details_json) : [],
2634
- candidateCount: Number(row.candidate_count || 0),
2635
- selectedCount: Number(row.selected_count || 0),
2636
- confidence: row.confidence || void 0,
2637
- fallbackTrace: row.fallback_trace ? JSON.parse(row.fallback_trace) : [],
2638
- createdAt: toDateFromSQLite(row.created_at)
2639
- }));
2619
+ try {
2620
+ const rows = sqliteAll(
2621
+ this.db,
2622
+ `SELECT * FROM retrieval_traces ORDER BY created_at DESC LIMIT ?`,
2623
+ [limit]
2624
+ );
2625
+ return rows.map((row) => ({
2626
+ traceId: row.trace_id,
2627
+ sessionId: row.session_id || void 0,
2628
+ projectHash: row.project_hash || void 0,
2629
+ queryText: row.query_text,
2630
+ strategy: row.strategy || void 0,
2631
+ candidateEventIds: row.candidate_event_ids ? JSON.parse(row.candidate_event_ids) : [],
2632
+ selectedEventIds: row.selected_event_ids ? JSON.parse(row.selected_event_ids) : [],
2633
+ candidateDetails: row.candidate_details_json ? JSON.parse(row.candidate_details_json) : [],
2634
+ selectedDetails: row.selected_details_json ? JSON.parse(row.selected_details_json) : [],
2635
+ candidateCount: Number(row.candidate_count || 0),
2636
+ selectedCount: Number(row.selected_count || 0),
2637
+ confidence: row.confidence || void 0,
2638
+ fallbackTrace: row.fallback_trace ? JSON.parse(row.fallback_trace) : [],
2639
+ createdAt: toDateFromSQLite(row.created_at)
2640
+ }));
2641
+ } catch (err) {
2642
+ if (err?.message?.includes("no such table"))
2643
+ return [];
2644
+ throw err;
2645
+ }
2640
2646
  }
2641
2647
  async getRetrievalTraceStats() {
2642
2648
  await this.initialize();
2643
- const row = sqliteGet(
2644
- this.db,
2645
- `SELECT
2646
- COUNT(*) as total_queries,
2647
- AVG(candidate_count) as avg_candidate_count,
2648
- AVG(selected_count) as avg_selected_count,
2649
- CASE
2650
- WHEN SUM(candidate_count) > 0 THEN (SUM(selected_count) * 1.0 / SUM(candidate_count))
2651
- ELSE 0
2652
- END as selection_rate
2653
- FROM retrieval_traces`,
2654
- []
2655
- );
2656
- return {
2657
- totalQueries: Number(row?.total_queries || 0),
2658
- avgCandidateCount: Number(row?.avg_candidate_count || 0),
2659
- avgSelectedCount: Number(row?.avg_selected_count || 0),
2660
- selectionRate: Number(row?.selection_rate || 0)
2661
- };
2649
+ try {
2650
+ const row = sqliteGet(
2651
+ this.db,
2652
+ `SELECT
2653
+ COUNT(*) as total_queries,
2654
+ AVG(candidate_count) as avg_candidate_count,
2655
+ AVG(selected_count) as avg_selected_count,
2656
+ CASE
2657
+ WHEN SUM(candidate_count) > 0 THEN (SUM(selected_count) * 1.0 / SUM(candidate_count))
2658
+ ELSE 0
2659
+ END as selection_rate
2660
+ FROM retrieval_traces`,
2661
+ []
2662
+ );
2663
+ return {
2664
+ totalQueries: Number(row?.total_queries || 0),
2665
+ avgCandidateCount: Number(row?.avg_candidate_count || 0),
2666
+ avgSelectedCount: Number(row?.avg_selected_count || 0),
2667
+ selectionRate: Number(row?.selection_rate || 0)
2668
+ };
2669
+ } catch (err) {
2670
+ if (err?.message?.includes("no such table")) {
2671
+ return { totalQueries: 0, avgCandidateCount: 0, avgSelectedCount: 0, selectionRate: 0 };
2672
+ }
2673
+ throw err;
2674
+ }
2662
2675
  }
2663
2676
  /**
2664
2677
  * Close database connection